Skip to content

Instantly share code, notes, and snippets.

@mpeterv
Created May 18, 2015 15:53
Show Gist options
  • Select an option

  • Save mpeterv/3d1e98f7653100c21ecd to your computer and use it in GitHub Desktop.

Select an option

Save mpeterv/3d1e98f7653100c21ecd to your computer and use it in GitHub Desktop.
pflua #216
./env tools/pflua-compile -O0 'tcp and ((tcp[tcpflags] & tcp-syn) != 0) and ((tcp[20] == 3) or ((tcp[20] != 1) and ((tcp[20 + tcp[21]] == 3) or ((tcp[20 + tcp[21]] != 1) and ((tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1]] == 3) or ((tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1]] != 1) and ((tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 1]] == 3) or ((tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 1]] != 1) and ((tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 1] + tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 1] + 1]] == 3) or ((tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 1] + tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 1] + 1]] != 1) and ((tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 1] + tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 1] + 1] + tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 1] + tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 1] + 1] + 1]] == 3))) or ((tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 1] + tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 1] + 1]] == 1) and ((tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 1] + tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 1] + 1] + 1] == 3))))) or ((tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 1]] == 1) and ((tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 1] + 1] == 3) or ((tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 1] + 1] != 1) and ((tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 1] + 1 + tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 1] + 2]] == 3))) or ((tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 1] + 1] == 1) and ((tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 1] + 2] == 3))))))) or ((tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1]] == 1) and ((tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 1] == 3) or ((tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 1] != 1) and ((tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 1 + tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 2]] == 3) or ((tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 1 + tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 2]] != 1) and ((tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 1 + tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 2] + tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 1 + tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 2] + 1]] == 3))) or ((tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 1 + tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 2]] == 1) and ((tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 1 + tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 2] + 1] == 3))))) or ((tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 1] == 1) and ((tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 2] == 3) or ((tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 2] != 1) and ((tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 2 + tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 3]] == 3))) or ((tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 2] == 1) and ((tcp[20 + tcp[21] + tcp[20 + tcp[21] + 1] + 3] == 3))))))))) or ((tcp[20 + tcp[21]] == 1) and ((tcp[20 + tcp[21] + 1] == 3) or ((tcp[20 + tcp[21] + 1] != 1) and ((tcp[20 + tcp[21] + 1 + tcp[20 + tcp[21] + 2]] == 3) or ((tcp[20 + tcp[21] + 1 + tcp[20 + tcp[21] + 2]] != 1) and ((tcp[20 + tcp[21] + 1 + tcp[20 + tcp[21] + 2] + tcp[20 + tcp[21] + 1 + tcp[20 + tcp[21] + 2] + 1]] == 3) or ((tcp[20 + tcp[21] + 1 + tcp[20 + tcp[21] + 2] + tcp[20 + tcp[21] + 1 + tcp[20 + tcp[21] + 2] + 1]] != 1) and ((tcp[20 + tcp[21] + 1 + tcp[20 + tcp[21] + 2] + tcp[20 + tcp[21] + 1 + tcp[20 + tcp[21] + 2] + 1] + tcp[20 + tcp[21] + 1 + tcp[20 + tcp[21] + 2] + tcp[20 + tcp[21] + 1 + tcp[20 + tcp[21] + 2] + 1] + 1]] == 3))) or ((tcp[20 + tcp[21] + 1 + tcp[20 + tcp[21] + 2] + tcp[20 + tcp[21] + 1 + tcp[20 + tcp[21] + 2] + 1]] == 1) and ((tcp[20 + tcp[21] + 1 + tcp[20 + tcp[21] + 2] + tcp[20 + tcp[21] + 1 + tcp[20 + tcp[21] + 2] + 1] + 1] == 3))))) or ((tcp[20 + tcp[21] + 1 + tcp[20 + tcp[21] + 2]] == 1) and ((tcp[20 + tcp[21] + 1 + tcp[20 + tcp[21] + 2] + 1] == 3) or ((tcp[20 + tcp[21] + 1 + tcp[20 + tcp[21] + 2] + 1] != 1) and ((tcp[20 + tcp[21] + 1 + tcp[20 + tcp[21] + 2] + 1 + tcp[20 + tcp[21] + 1 + tcp[20 + tcp[21] + 2] + 2]] == 3))) or ((tcp[20 + tcp[21] + 1 + tcp[20 + tcp[21] + 2] + 1] == 1) and ((tcp[20 + tcp[21] + 1 + tcp[20 + tcp[21] + 2] + 2] == 3))))))) or ((tcp[20 + tcp[21] + 1] == 1) and ((tcp[20 + tcp[21] + 2] == 3) or ((tcp[20 + tcp[21] + 2] != 1) and ((tcp[20 + tcp[21] + 2 + tcp[20 + tcp[21] + 3]] == 3) or ((tcp[20 + tcp[21] + 2 + tcp[20 + tcp[21] + 3]] != 1) and ((tcp[20 + tcp[21] + 2 + tcp[20 + tcp[21] + 3] + tcp[20 + tcp[21] + 2 + tcp[20 + tcp[21] + 3] + 1]] == 3))) or ((tcp[20 + tcp[21] + 2 + tcp[20 + tcp[21] + 3]] == 1) and ((tcp[20 + tcp[21] + 2 + tcp[20 + tcp[21] + 3] + 1] == 3))))) or ((tcp[20 + tcp[21] + 2] == 1) and ((tcp[20 + tcp[21] + 3] == 3) or ((tcp[20 + tcp[21] + 3] != 1) and ((tcp[20 + tcp[21] + 3 + tcp[20 + tcp[21] + 4]] == 3))) or ((tcp[20 + tcp[21] + 3] == 1) and ((tcp[20 + tcp[21] + 4] == 3))))))))))) or ((tcp[20] == 1) and ((tcp[21] == 3) or ((tcp[21] != 1) and ((tcp[21 + tcp[22]] == 3) or ((tcp[21 + tcp[22]] != 1) and ((tcp[21 + tcp[22] + tcp[21 + tcp[22] + 1]] == 3) or ((tcp[21 + tcp[22] + tcp[21 + tcp[22] + 1]] != 1) and ((tcp[21 + tcp[22] + tcp[21 + tcp[22] + 1] + tcp[21 + tcp[22] + tcp[21 + tcp[22] + 1] + 1]] == 3) or ((tcp[21 + tcp[22] + tcp[21 + tcp[22] + 1] + tcp[21 + tcp[22] + tcp[21 + tcp[22] + 1] + 1]] != 1) and ((tcp[21 + tcp[22] + tcp[21 + tcp[22] + 1] + tcp[21 + tcp[22] + tcp[21 + tcp[22] + 1] + 1] + tcp[21 + tcp[22] + tcp[21 + tcp[22] + 1] + tcp[21 + tcp[22] + tcp[21 + tcp[22] + 1] + 1] + 1]] == 3))) or ((tcp[21 + tcp[22] + tcp[21 + tcp[22] + 1] + tcp[21 + tcp[22] + tcp[21 + tcp[22] + 1] + 1]] == 1) and ((tcp[21 + tcp[22] + tcp[21 + tcp[22] + 1] + tcp[21 + tcp[22] + tcp[21 + tcp[22] + 1] + 1] + 1] == 3))))) or ((tcp[21 + tcp[22] + tcp[21 + tcp[22] + 1]] == 1) and ((tcp[21 + tcp[22] + tcp[21 + tcp[22] + 1] + 1] == 3) or ((tcp[21 + tcp[22] + tcp[21 + tcp[22] + 1] + 1] != 1) and ((tcp[21 + tcp[22] + tcp[21 + tcp[22] + 1] + 1 + tcp[21 + tcp[22] + tcp[21 + tcp[22] + 1] + 2]] == 3))) or ((tcp[21 + tcp[22] + tcp[21 + tcp[22] + 1] + 1] == 1) and ((tcp[21 + tcp[22] + tcp[21 + tcp[22] + 1] + 2] == 3))))))) or ((tcp[21 + tcp[22]] == 1) and ((tcp[21 + tcp[22] + 1] == 3) or ((tcp[21 + tcp[22] + 1] != 1) and ((tcp[21 + tcp[22] + 1 + tcp[21 + tcp[22] + 2]] == 3) or ((tcp[21 + tcp[22] + 1 + tcp[21 + tcp[22] + 2]] != 1) and ((tcp[21 + tcp[22] + 1 + tcp[21 + tcp[22] + 2] + tcp[21 + tcp[22] + 1 + tcp[21 + tcp[22] + 2] + 1]] == 3))) or ((tcp[21 + tcp[22] + 1 + tcp[21 + tcp[22] + 2]] == 1) and ((tcp[21 + tcp[22] + 1 + tcp[21 + tcp[22] + 2] + 1] == 3))))) or ((tcp[21 + tcp[22] + 1] == 1) and ((tcp[21 + tcp[22] + 2] == 3) or ((tcp[21 + tcp[22] + 2] != 1) and ((tcp[21 + tcp[22] + 2 + tcp[21 + tcp[22] + 3]] == 3))) or ((tcp[21 + tcp[22] + 2] == 1) and ((tcp[21 + tcp[22] + 3] == 3))))))))) or ((tcp[21] == 1) and ((tcp[22] == 3) or ((tcp[22] != 1) and ((tcp[22 + tcp[23]] == 3) or ((tcp[22 + tcp[23]] != 1) and ((tcp[22 + tcp[23] + tcp[22 + tcp[23] + 1]] == 3) or ((tcp[22 + tcp[23] + tcp[22 + tcp[23] + 1]] != 1) and ((tcp[22 + tcp[23] + tcp[22 + tcp[23] + 1] + tcp[22 + tcp[23] + tcp[22 + tcp[23] + 1] + 1]] == 3))) or ((tcp[22 + tcp[23] + tcp[22 + tcp[23] + 1]] == 1) and ((tcp[22 + tcp[23] + tcp[22 + tcp[23] + 1] + 1] == 3))))) or ((tcp[22 + tcp[23]] == 1) and ((tcp[22 + tcp[23] + 1] == 3) or ((tcp[22 + tcp[23] + 1] != 1) and ((tcp[22 + tcp[23] + 1 + tcp[22 + tcp[23] + 2]] == 3))) or ((tcp[22 + tcp[23] + 1] == 1) and ((tcp[22 + tcp[23] + 2] == 3))))))) or ((tcp[22] == 1) and ((tcp[23] == 3) or ((tcp[23] != 1) and ((tcp[23 + tcp[24]] == 3) or ((tcp[23 + tcp[24]] != 1) and ((tcp[23 + tcp[24] + tcp[23 + tcp[24] + 1]] == 3))) or ((tcp[23 + tcp[24]] == 1) and ((tcp[23 + tcp[24] + 1] == 3))))) or ((tcp[23] == 1) and ((tcp[24] == 3) or ((tcp[24] != 1) and ((tcp[24 + tcp[25]] == 3))) or ((tcp[24] == 1) and ((tcp[25] == 3))))))))))))'
local rshift = require("bit").rshift
local bswap = require("bit").bswap
local cast = require("ffi").cast
local lshift = require("bit").lshift
local band = require("bit").band
return function(P,length)
local var1 = (0 + 12)
local var2 = (var1 + 2)
if var2 > length then return false end
if rshift(bswap(cast("uint16_t*", P+var1)[0]), 16) == 2048 then
if var2 > length then return false end
if rshift(bswap(cast("uint16_t*", P+var1)[0]), 16) ~= 2048 then return false end
local var11 = (14 + 19)
if (var11 + 1) > length then return false end
if 0 > P[var11] then return false end
local var15 = (14 + 9)
if (var15 + 1) > length then return false end
if P[var15] == 6 then goto L6 end
goto L7
else
if var2 > length then return false end
if rshift(bswap(cast("uint16_t*", P+var1)[0]), 16) ~= 34525 then return false end
if var2 > length then return false end
if rshift(bswap(cast("uint16_t*", P+var1)[0]), 16) ~= 34525 then goto L27 end
do
local var29 = (14 + 39)
if (var29 + 1) > length then return false end
if 0 > P[var29] then goto L27 end
local var33 = (14 + 6)
if (var33 + 1) > length then return false end
if P[var33] == 6 then goto L6 end
goto L27
end
::L27::
if var2 > length then return false end
if rshift(bswap(cast("uint16_t*", P+var1)[0]), 16) ~= 34525 then return false end
local var42 = (14 + 39)
if (var42 + 1) > length then return false end
if 0 > P[var42] then return false end
local var46 = (14 + 6)
if (var46 + 1) > length then return false end
if P[var46] ~= 44 then return false end
if var2 > length then return false end
if rshift(bswap(cast("uint16_t*", P+var1)[0]), 16) ~= 34525 then return false end
local var55 = (14 + 39)
if (var55 + 1) > length then return false end
if 0 > P[var55] then return false end
local var59 = (14 + 40)
if (var59 + 1) > length then return false end
if P[var59] == 6 then goto L6 end
goto L7
end
::L6::
if var2 > length then return false end
do
local var67 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var67 ~= 2048 then return false end
local var68 = (14 + 19)
local var69 = (var68 + 1)
if var69 > length then return false end
local var71 = P[var68]
if 0 > var71 then return false end
if var2 > length then return false end
if var67 ~= 2048 then return false end
if var69 > length then return false end
if 0 > var71 then return false end
local var81 = (14 + 9)
if (var81 + 1) > length then return false end
if P[var81] ~= 6 then return false end
if var2 > length then return false end
if var67 ~= 2048 then return false end
if var69 > length then return false end
if 0 > var71 then return false end
local var94 = (14 + 39)
if (var94 + 1) > length then return false end
if 0 > P[var94] then return false end
if var2 > length then return false end
if var67 ~= 2048 then return false end
if var69 > length then return false end
if 0 > var71 then return false end
local var107 = (14 + 6)
if (var107 + 2) > length then return false end
if (band(rshift(bswap(cast("uint16_t*", P+var107)[0]), 16),8191) % 4294967296) ~= 0 then return false end
local var118 = ((lshift(band(P[14],15),2) + 14) + 13)
if (var118 + 1) > length then return false end
if (band(P[var118],2) % 4294967296) == 0 then return false end
if var2 > length then return false end
local var132 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var132 ~= 2048 then goto L109 end
do
local var133 = (14 + 19)
local var134 = (var133 + 1)
if var134 > length then return false end
local var136 = P[var133]
if 0 > var136 then goto L109 end
if var2 > length then return false end
if var132 ~= 2048 then goto L109 end
if var134 > length then return false end
if 0 > var136 then goto L109 end
local var146 = (14 + 9)
if (var146 + 1) > length then return false end
if P[var146] ~= 6 then goto L109 end
if var2 > length then return false end
if var132 ~= 2048 then goto L109 end
if var134 > length then return false end
if 0 > var136 then goto L109 end
local var159 = (14 + 39)
if (var159 + 1) > length then return false end
if 0 > P[var159] then goto L109 end
if var2 > length then return false end
if var132 ~= 2048 then goto L109 end
if var134 > length then return false end
if 0 > var136 then goto L109 end
local var172 = (14 + 6)
if (var172 + 2) > length then return false end
if (band(rshift(bswap(cast("uint16_t*", P+var172)[0]), 16),8191) % 4294967296) ~= 0 then goto L109 end
local var183 = ((lshift(band(P[14],15),2) + 14) + 20)
if (var183 + 1) > length then return false end
if P[var183] == 3 then return true end
goto L109
end
::L109::
if var2 > length then return false end
local var195 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var195 ~= 2048 then goto L107 end
do
local var196 = (14 + 19)
local var197 = (var196 + 1)
if var197 > length then return false end
local var199 = P[var196]
if 0 > var199 then goto L107 end
if var2 > length then return false end
if var195 ~= 2048 then goto L107 end
if var197 > length then return false end
if 0 > var199 then goto L107 end
local var209 = (14 + 9)
if (var209 + 1) > length then return false end
if P[var209] ~= 6 then goto L107 end
if var2 > length then return false end
if var195 ~= 2048 then goto L107 end
if var197 > length then return false end
if 0 > var199 then goto L107 end
local var222 = (14 + 39)
if (var222 + 1) > length then return false end
if 0 > P[var222] then goto L107 end
if var2 > length then return false end
if var195 ~= 2048 then goto L107 end
if var197 > length then return false end
if 0 > var199 then goto L107 end
local var235 = (14 + 6)
if (var235 + 2) > length then return false end
if (band(rshift(bswap(cast("uint16_t*", P+var235)[0]), 16),8191) % 4294967296) ~= 0 then goto L107 end
local var246 = ((lshift(band(P[14],15),2) + 14) + 20)
if (var246 + 1) > length then return false end
if P[var246] == 1 then goto L107 end
if var2 > length then return false end
local var258 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var258 ~= 2048 then goto L207 end
do
local var259 = (14 + 19)
local var260 = (var259 + 1)
if var260 > length then return false end
local var262 = P[var259]
if 0 > var262 then goto L207 end
if var2 > length then return false end
if var258 ~= 2048 then goto L207 end
if var260 > length then return false end
if 0 > var262 then goto L207 end
local var272 = (14 + 9)
local var273 = (var272 + 1)
if var273 > length then return false end
local var275 = P[var272]
if var275 ~= 6 then goto L207 end
if var2 > length then return false end
if var258 ~= 2048 then goto L207 end
if var260 > length then return false end
if 0 > var262 then goto L207 end
local var285 = (14 + 39)
local var286 = (var285 + 1)
if var286 > length then return false end
local var288 = P[var285]
if 0 > var288 then goto L207 end
if var2 > length then return false end
if var258 ~= 2048 then goto L207 end
if var260 > length then return false end
if 0 > var262 then goto L207 end
local var298 = (14 + 6)
local var299 = (var298 + 2)
if var299 > length then return false end
local var304 = (band(rshift(bswap(cast("uint16_t*", P+var298)[0]), 16),8191) % 4294967296)
if var304 ~= 0 then goto L207 end
if var2 > length then return false end
if var258 ~= 2048 then goto L207 end
if var260 > length then return false end
if 0 > var262 then goto L207 end
if var2 > length then return false end
if var258 ~= 2048 then goto L207 end
if var260 > length then return false end
if 0 > var262 then goto L207 end
if var273 > length then return false end
if var275 ~= 6 then goto L207 end
if var2 > length then return false end
if var258 ~= 2048 then goto L207 end
if var260 > length then return false end
if 0 > var262 then goto L207 end
if var286 > length then return false end
if 0 > var288 then goto L207 end
if var2 > length then return false end
if var258 ~= 2048 then goto L207 end
if var260 > length then return false end
if 0 > var262 then goto L207 end
if var299 > length then return false end
if var304 ~= 0 then goto L207 end
local var359 = (lshift(band(P[14],15),2) + 14)
local var360 = (var359 + 21)
if (var360 + 1) > length then return false end
local var374 = (var359 + ((20 + P[var360]) % 4294967296))
if (var374 + 1) > length then return false end
if P[var374] == 3 then return true end
goto L207
end
::L207::
if var2 > length then return false end
local var394 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var394 ~= 2048 then goto L205 end
do
local var395 = (14 + 19)
local var396 = (var395 + 1)
if var396 > length then return false end
local var398 = P[var395]
if 0 > var398 then goto L205 end
if var2 > length then return false end
if var394 ~= 2048 then goto L205 end
if var396 > length then return false end
if 0 > var398 then goto L205 end
local var408 = (14 + 9)
local var409 = (var408 + 1)
if var409 > length then return false end
local var411 = P[var408]
if var411 ~= 6 then goto L205 end
if var2 > length then return false end
if var394 ~= 2048 then goto L205 end
if var396 > length then return false end
if 0 > var398 then goto L205 end
local var421 = (14 + 39)
local var422 = (var421 + 1)
if var422 > length then return false end
local var424 = P[var421]
if 0 > var424 then goto L205 end
if var2 > length then return false end
if var394 ~= 2048 then goto L205 end
if var396 > length then return false end
if 0 > var398 then goto L205 end
local var434 = (14 + 6)
local var435 = (var434 + 2)
if var435 > length then return false end
local var440 = (band(rshift(bswap(cast("uint16_t*", P+var434)[0]), 16),8191) % 4294967296)
if var440 ~= 0 then goto L205 end
if var2 > length then return false end
if var394 ~= 2048 then goto L205 end
if var396 > length then return false end
if 0 > var398 then goto L205 end
if var2 > length then return false end
if var394 ~= 2048 then goto L205 end
if var396 > length then return false end
if 0 > var398 then goto L205 end
if var409 > length then return false end
if var411 ~= 6 then goto L205 end
if var2 > length then return false end
if var394 ~= 2048 then goto L205 end
if var396 > length then return false end
if 0 > var398 then goto L205 end
if var422 > length then return false end
if 0 > var424 then goto L205 end
if var2 > length then return false end
if var394 ~= 2048 then goto L205 end
if var396 > length then return false end
if 0 > var398 then goto L205 end
if var435 > length then return false end
if var440 ~= 0 then goto L205 end
local var495 = (lshift(band(P[14],15),2) + 14)
local var496 = (var495 + 21)
if (var496 + 1) > length then return false end
local var510 = (var495 + ((20 + P[var496]) % 4294967296))
if (var510 + 1) > length then return false end
if P[var510] == 1 then goto L205 end
if var2 > length then return false end
local var530 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var530 ~= 2048 then goto L397 end
do
local var531 = (14 + 19)
local var532 = (var531 + 1)
if var532 > length then return false end
local var534 = P[var531]
if 0 > var534 then goto L397 end
if var2 > length then return false end
if var530 ~= 2048 then goto L397 end
if var532 > length then return false end
if 0 > var534 then goto L397 end
local var544 = (14 + 9)
local var545 = (var544 + 1)
if var545 > length then return false end
local var547 = P[var544]
if var547 ~= 6 then goto L397 end
if var2 > length then return false end
if var530 ~= 2048 then goto L397 end
if var532 > length then return false end
if 0 > var534 then goto L397 end
local var557 = (14 + 39)
local var558 = (var557 + 1)
if var558 > length then return false end
local var560 = P[var557]
if 0 > var560 then goto L397 end
if var2 > length then return false end
if var530 ~= 2048 then goto L397 end
if var532 > length then return false end
if 0 > var534 then goto L397 end
local var570 = (14 + 6)
local var571 = (var570 + 2)
if var571 > length then return false end
local var576 = (band(rshift(bswap(cast("uint16_t*", P+var570)[0]), 16),8191) % 4294967296)
if var576 ~= 0 then goto L397 end
if var2 > length then return false end
if var530 ~= 2048 then goto L397 end
if var532 > length then return false end
if 0 > var534 then goto L397 end
if var2 > length then return false end
if var530 ~= 2048 then goto L397 end
if var532 > length then return false end
if 0 > var534 then goto L397 end
if var545 > length then return false end
if var547 ~= 6 then goto L397 end
if var2 > length then return false end
if var530 ~= 2048 then goto L397 end
if var532 > length then return false end
if 0 > var534 then goto L397 end
if var558 > length then return false end
if 0 > var560 then goto L397 end
if var2 > length then return false end
if var530 ~= 2048 then goto L397 end
if var532 > length then return false end
if 0 > var534 then goto L397 end
if var571 > length then return false end
if var576 ~= 0 then goto L397 end
local var631 = (lshift(band(P[14],15),2) + 14)
local var632 = (var631 + 21)
local var633 = (var632 + 1)
if var633 > length then return false end
if var2 > length then return false end
if var530 ~= 2048 then goto L397 end
if var532 > length then return false end
if 0 > var534 then goto L397 end
if var2 > length then return false end
if var530 ~= 2048 then goto L397 end
if var532 > length then return false end
if 0 > var534 then goto L397 end
if var545 > length then return false end
if var547 ~= 6 then goto L397 end
if var2 > length then return false end
if var530 ~= 2048 then goto L397 end
if var532 > length then return false end
if 0 > var534 then goto L397 end
if var558 > length then return false end
if 0 > var560 then goto L397 end
if var2 > length then return false end
if var530 ~= 2048 then goto L397 end
if var532 > length then return false end
if 0 > var534 then goto L397 end
if var571 > length then return false end
if var576 ~= 0 then goto L397 end
if var2 > length then return false end
if var530 ~= 2048 then goto L397 end
if var532 > length then return false end
if 0 > var534 then goto L397 end
if var2 > length then return false end
if var530 ~= 2048 then goto L397 end
if var532 > length then return false end
if 0 > var534 then goto L397 end
if var545 > length then return false end
if var547 ~= 6 then goto L397 end
if var2 > length then return false end
if var530 ~= 2048 then goto L397 end
if var532 > length then return false end
if 0 > var534 then goto L397 end
if var558 > length then return false end
if 0 > var560 then goto L397 end
if var2 > length then return false end
if var530 ~= 2048 then goto L397 end
if var532 > length then return false end
if 0 > var534 then goto L397 end
if var571 > length then return false end
if var576 ~= 0 then goto L397 end
if var633 > length then return false end
local var753 = ((20 + P[var632]) % 4294967296)
local var756 = (var631 + ((var753 + 1) % 4294967296))
if (var756 + 1) > length then return false end
local var788 = (var631 + ((var753 + P[var756]) % 4294967296))
if (var788 + 1) > length then return false end
if P[var788] == 3 then return true end
goto L397
end
::L397::
if var2 > length then return false end
local var826 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var826 ~= 2048 then goto L395 end
do
local var827 = (14 + 19)
local var828 = (var827 + 1)
if var828 > length then return false end
local var830 = P[var827]
if 0 > var830 then goto L395 end
if var2 > length then return false end
if var826 ~= 2048 then goto L395 end
if var828 > length then return false end
if 0 > var830 then goto L395 end
local var840 = (14 + 9)
local var841 = (var840 + 1)
if var841 > length then return false end
local var843 = P[var840]
if var843 ~= 6 then goto L395 end
if var2 > length then return false end
if var826 ~= 2048 then goto L395 end
if var828 > length then return false end
if 0 > var830 then goto L395 end
local var853 = (14 + 39)
local var854 = (var853 + 1)
if var854 > length then return false end
local var856 = P[var853]
if 0 > var856 then goto L395 end
if var2 > length then return false end
if var826 ~= 2048 then goto L395 end
if var828 > length then return false end
if 0 > var830 then goto L395 end
local var866 = (14 + 6)
local var867 = (var866 + 2)
if var867 > length then return false end
local var872 = (band(rshift(bswap(cast("uint16_t*", P+var866)[0]), 16),8191) % 4294967296)
if var872 ~= 0 then goto L395 end
if var2 > length then return false end
if var826 ~= 2048 then goto L395 end
if var828 > length then return false end
if 0 > var830 then goto L395 end
if var2 > length then return false end
if var826 ~= 2048 then goto L395 end
if var828 > length then return false end
if 0 > var830 then goto L395 end
if var841 > length then return false end
if var843 ~= 6 then goto L395 end
if var2 > length then return false end
if var826 ~= 2048 then goto L395 end
if var828 > length then return false end
if 0 > var830 then goto L395 end
if var854 > length then return false end
if 0 > var856 then goto L395 end
if var2 > length then return false end
if var826 ~= 2048 then goto L395 end
if var828 > length then return false end
if 0 > var830 then goto L395 end
if var867 > length then return false end
if var872 ~= 0 then goto L395 end
local var927 = (lshift(band(P[14],15),2) + 14)
local var928 = (var927 + 21)
local var929 = (var928 + 1)
if var929 > length then return false end
if var2 > length then return false end
if var826 ~= 2048 then goto L395 end
if var828 > length then return false end
if 0 > var830 then goto L395 end
if var2 > length then return false end
if var826 ~= 2048 then goto L395 end
if var828 > length then return false end
if 0 > var830 then goto L395 end
if var841 > length then return false end
if var843 ~= 6 then goto L395 end
if var2 > length then return false end
if var826 ~= 2048 then goto L395 end
if var828 > length then return false end
if 0 > var830 then goto L395 end
if var854 > length then return false end
if 0 > var856 then goto L395 end
if var2 > length then return false end
if var826 ~= 2048 then goto L395 end
if var828 > length then return false end
if 0 > var830 then goto L395 end
if var867 > length then return false end
if var872 ~= 0 then goto L395 end
if var2 > length then return false end
if var826 ~= 2048 then goto L395 end
if var828 > length then return false end
if 0 > var830 then goto L395 end
if var2 > length then return false end
if var826 ~= 2048 then goto L395 end
if var828 > length then return false end
if 0 > var830 then goto L395 end
if var841 > length then return false end
if var843 ~= 6 then goto L395 end
if var2 > length then return false end
if var826 ~= 2048 then goto L395 end
if var828 > length then return false end
if 0 > var830 then goto L395 end
if var854 > length then return false end
if 0 > var856 then goto L395 end
if var2 > length then return false end
if var826 ~= 2048 then goto L395 end
if var828 > length then return false end
if 0 > var830 then goto L395 end
if var867 > length then return false end
if var872 ~= 0 then goto L395 end
if var929 > length then return false end
local var1049 = ((20 + P[var928]) % 4294967296)
local var1052 = (var927 + ((var1049 + 1) % 4294967296))
if (var1052 + 1) > length then return false end
local var1084 = (var927 + ((var1049 + P[var1052]) % 4294967296))
if (var1084 + 1) > length then return false end
if P[var1084] == 1 then goto L395 end
if var2 > length then return false end
local var1122 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var1122 ~= 2048 then goto L771 end
do
local var1123 = (14 + 19)
local var1124 = (var1123 + 1)
if var1124 > length then return false end
local var1126 = P[var1123]
if 0 > var1126 then goto L771 end
if var2 > length then return false end
if var1122 ~= 2048 then goto L771 end
if var1124 > length then return false end
if 0 > var1126 then goto L771 end
local var1136 = (14 + 9)
local var1137 = (var1136 + 1)
if var1137 > length then return false end
local var1139 = P[var1136]
if var1139 ~= 6 then goto L771 end
if var2 > length then return false end
if var1122 ~= 2048 then goto L771 end
if var1124 > length then return false end
if 0 > var1126 then goto L771 end
local var1149 = (14 + 39)
local var1150 = (var1149 + 1)
if var1150 > length then return false end
local var1152 = P[var1149]
if 0 > var1152 then goto L771 end
if var2 > length then return false end
if var1122 ~= 2048 then goto L771 end
if var1124 > length then return false end
if 0 > var1126 then goto L771 end
local var1162 = (14 + 6)
local var1163 = (var1162 + 2)
if var1163 > length then return false end
local var1168 = (band(rshift(bswap(cast("uint16_t*", P+var1162)[0]), 16),8191) % 4294967296)
if var1168 ~= 0 then goto L771 end
if var2 > length then return false end
if var1122 ~= 2048 then goto L771 end
if var1124 > length then return false end
if 0 > var1126 then goto L771 end
if var2 > length then return false end
if var1122 ~= 2048 then goto L771 end
if var1124 > length then return false end
if 0 > var1126 then goto L771 end
if var1137 > length then return false end
if var1139 ~= 6 then goto L771 end
if var2 > length then return false end
if var1122 ~= 2048 then goto L771 end
if var1124 > length then return false end
if 0 > var1126 then goto L771 end
if var1150 > length then return false end
if 0 > var1152 then goto L771 end
if var2 > length then return false end
if var1122 ~= 2048 then goto L771 end
if var1124 > length then return false end
if 0 > var1126 then goto L771 end
if var1163 > length then return false end
if var1168 ~= 0 then goto L771 end
local var1223 = (lshift(band(P[14],15),2) + 14)
local var1224 = (var1223 + 21)
local var1225 = (var1224 + 1)
if var1225 > length then return false end
if var2 > length then return false end
if var1122 ~= 2048 then goto L771 end
if var1124 > length then return false end
if 0 > var1126 then goto L771 end
if var2 > length then return false end
if var1122 ~= 2048 then goto L771 end
if var1124 > length then return false end
if 0 > var1126 then goto L771 end
if var1137 > length then return false end
if var1139 ~= 6 then goto L771 end
if var2 > length then return false end
if var1122 ~= 2048 then goto L771 end
if var1124 > length then return false end
if 0 > var1126 then goto L771 end
if var1150 > length then return false end
if 0 > var1152 then goto L771 end
if var2 > length then return false end
if var1122 ~= 2048 then goto L771 end
if var1124 > length then return false end
if 0 > var1126 then goto L771 end
if var1163 > length then return false end
if var1168 ~= 0 then goto L771 end
if var2 > length then return false end
if var1122 ~= 2048 then goto L771 end
if var1124 > length then return false end
if 0 > var1126 then goto L771 end
if var2 > length then return false end
if var1122 ~= 2048 then goto L771 end
if var1124 > length then return false end
if 0 > var1126 then goto L771 end
if var1137 > length then return false end
if var1139 ~= 6 then goto L771 end
if var2 > length then return false end
if var1122 ~= 2048 then goto L771 end
if var1124 > length then return false end
if 0 > var1126 then goto L771 end
if var1150 > length then return false end
if 0 > var1152 then goto L771 end
if var2 > length then return false end
if var1122 ~= 2048 then goto L771 end
if var1124 > length then return false end
if 0 > var1126 then goto L771 end
if var1163 > length then return false end
if var1168 ~= 0 then goto L771 end
if var1225 > length then return false end
local var1345 = ((20 + P[var1224]) % 4294967296)
local var1348 = (var1223 + ((var1345 + 1) % 4294967296))
local var1349 = (var1348 + 1)
if var1349 > length then return false end
if var2 > length then return false end
if var1122 ~= 2048 then goto L771 end
if var1124 > length then return false end
if 0 > var1126 then goto L771 end
if var2 > length then return false end
if var1122 ~= 2048 then goto L771 end
if var1124 > length then return false end
if 0 > var1126 then goto L771 end
if var1137 > length then return false end
if var1139 ~= 6 then goto L771 end
if var2 > length then return false end
if var1122 ~= 2048 then goto L771 end
if var1124 > length then return false end
if 0 > var1126 then goto L771 end
if var1150 > length then return false end
if 0 > var1152 then goto L771 end
if var2 > length then return false end
if var1122 ~= 2048 then goto L771 end
if var1124 > length then return false end
if 0 > var1126 then goto L771 end
if var1163 > length then return false end
if var1168 ~= 0 then goto L771 end
if var2 > length then return false end
if var1122 ~= 2048 then goto L771 end
if var1124 > length then return false end
if 0 > var1126 then goto L771 end
if var2 > length then return false end
if var1122 ~= 2048 then goto L771 end
if var1124 > length then return false end
if 0 > var1126 then goto L771 end
if var1137 > length then return false end
if var1139 ~= 6 then goto L771 end
if var2 > length then return false end
if var1122 ~= 2048 then goto L771 end
if var1124 > length then return false end
if 0 > var1126 then goto L771 end
if var1150 > length then return false end
if 0 > var1152 then goto L771 end
if var2 > length then return false end
if var1122 ~= 2048 then goto L771 end
if var1124 > length then return false end
if 0 > var1126 then goto L771 end
if var1163 > length then return false end
if var1168 ~= 0 then goto L771 end
if var1225 > length then return false end
if var2 > length then return false end
if var1122 ~= 2048 then goto L771 end
if var1124 > length then return false end
if 0 > var1126 then goto L771 end
if var2 > length then return false end
if var1122 ~= 2048 then goto L771 end
if var1124 > length then return false end
if 0 > var1126 then goto L771 end
if var1137 > length then return false end
if var1139 ~= 6 then goto L771 end
if var2 > length then return false end
if var1122 ~= 2048 then goto L771 end
if var1124 > length then return false end
if 0 > var1126 then goto L771 end
if var1150 > length then return false end
if 0 > var1152 then goto L771 end
if var2 > length then return false end
if var1122 ~= 2048 then goto L771 end
if var1124 > length then return false end
if 0 > var1126 then goto L771 end
if var1163 > length then return false end
if var1168 ~= 0 then goto L771 end
if var2 > length then return false end
if var1122 ~= 2048 then goto L771 end
if var1124 > length then return false end
if 0 > var1126 then goto L771 end
if var2 > length then return false end
if var1122 ~= 2048 then goto L771 end
if var1124 > length then return false end
if 0 > var1126 then goto L771 end
if var1137 > length then return false end
if var1139 ~= 6 then goto L771 end
if var2 > length then return false end
if var1122 ~= 2048 then goto L771 end
if var1124 > length then return false end
if 0 > var1126 then goto L771 end
if var1150 > length then return false end
if 0 > var1152 then goto L771 end
if var2 > length then return false end
if var1122 ~= 2048 then goto L771 end
if var1124 > length then return false end
if 0 > var1126 then goto L771 end
if var1163 > length then return false end
if var1168 ~= 0 then goto L771 end
if var1225 > length then return false end
if var1349 > length then return false end
local var1611 = ((var1345 + P[var1348]) % 4294967296)
local var1614 = (var1223 + ((var1611 + 1) % 4294967296))
if (var1614 + 1) > length then return false end
local var1682 = (var1223 + ((var1611 + P[var1614]) % 4294967296))
if (var1682 + 1) > length then return false end
if P[var1682] == 3 then return true end
goto L771
end
::L771::
if var2 > length then return false end
local var1756 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var1756 ~= 2048 then goto L769 end
do
local var1757 = (14 + 19)
local var1758 = (var1757 + 1)
if var1758 > length then return false end
local var1760 = P[var1757]
if 0 > var1760 then goto L769 end
if var2 > length then return false end
if var1756 ~= 2048 then goto L769 end
if var1758 > length then return false end
if 0 > var1760 then goto L769 end
local var1770 = (14 + 9)
local var1771 = (var1770 + 1)
if var1771 > length then return false end
local var1773 = P[var1770]
if var1773 ~= 6 then goto L769 end
if var2 > length then return false end
if var1756 ~= 2048 then goto L769 end
if var1758 > length then return false end
if 0 > var1760 then goto L769 end
local var1783 = (14 + 39)
local var1784 = (var1783 + 1)
if var1784 > length then return false end
local var1786 = P[var1783]
if 0 > var1786 then goto L769 end
if var2 > length then return false end
if var1756 ~= 2048 then goto L769 end
if var1758 > length then return false end
if 0 > var1760 then goto L769 end
local var1796 = (14 + 6)
local var1797 = (var1796 + 2)
if var1797 > length then return false end
local var1802 = (band(rshift(bswap(cast("uint16_t*", P+var1796)[0]), 16),8191) % 4294967296)
if var1802 ~= 0 then goto L769 end
if var2 > length then return false end
if var1756 ~= 2048 then goto L769 end
if var1758 > length then return false end
if 0 > var1760 then goto L769 end
if var2 > length then return false end
if var1756 ~= 2048 then goto L769 end
if var1758 > length then return false end
if 0 > var1760 then goto L769 end
if var1771 > length then return false end
if var1773 ~= 6 then goto L769 end
if var2 > length then return false end
if var1756 ~= 2048 then goto L769 end
if var1758 > length then return false end
if 0 > var1760 then goto L769 end
if var1784 > length then return false end
if 0 > var1786 then goto L769 end
if var2 > length then return false end
if var1756 ~= 2048 then goto L769 end
if var1758 > length then return false end
if 0 > var1760 then goto L769 end
if var1797 > length then return false end
if var1802 ~= 0 then goto L769 end
local var1857 = (lshift(band(P[14],15),2) + 14)
local var1858 = (var1857 + 21)
local var1859 = (var1858 + 1)
if var1859 > length then return false end
if var2 > length then return false end
if var1756 ~= 2048 then goto L769 end
if var1758 > length then return false end
if 0 > var1760 then goto L769 end
if var2 > length then return false end
if var1756 ~= 2048 then goto L769 end
if var1758 > length then return false end
if 0 > var1760 then goto L769 end
if var1771 > length then return false end
if var1773 ~= 6 then goto L769 end
if var2 > length then return false end
if var1756 ~= 2048 then goto L769 end
if var1758 > length then return false end
if 0 > var1760 then goto L769 end
if var1784 > length then return false end
if 0 > var1786 then goto L769 end
if var2 > length then return false end
if var1756 ~= 2048 then goto L769 end
if var1758 > length then return false end
if 0 > var1760 then goto L769 end
if var1797 > length then return false end
if var1802 ~= 0 then goto L769 end
if var2 > length then return false end
if var1756 ~= 2048 then goto L769 end
if var1758 > length then return false end
if 0 > var1760 then goto L769 end
if var2 > length then return false end
if var1756 ~= 2048 then goto L769 end
if var1758 > length then return false end
if 0 > var1760 then goto L769 end
if var1771 > length then return false end
if var1773 ~= 6 then goto L769 end
if var2 > length then return false end
if var1756 ~= 2048 then goto L769 end
if var1758 > length then return false end
if 0 > var1760 then goto L769 end
if var1784 > length then return false end
if 0 > var1786 then goto L769 end
if var2 > length then return false end
if var1756 ~= 2048 then goto L769 end
if var1758 > length then return false end
if 0 > var1760 then goto L769 end
if var1797 > length then return false end
if var1802 ~= 0 then goto L769 end
if var1859 > length then return false end
local var1979 = ((20 + P[var1858]) % 4294967296)
local var1982 = (var1857 + ((var1979 + 1) % 4294967296))
local var1983 = (var1982 + 1)
if var1983 > length then return false end
if var2 > length then return false end
if var1756 ~= 2048 then goto L769 end
if var1758 > length then return false end
if 0 > var1760 then goto L769 end
if var2 > length then return false end
if var1756 ~= 2048 then goto L769 end
if var1758 > length then return false end
if 0 > var1760 then goto L769 end
if var1771 > length then return false end
if var1773 ~= 6 then goto L769 end
if var2 > length then return false end
if var1756 ~= 2048 then goto L769 end
if var1758 > length then return false end
if 0 > var1760 then goto L769 end
if var1784 > length then return false end
if 0 > var1786 then goto L769 end
if var2 > length then return false end
if var1756 ~= 2048 then goto L769 end
if var1758 > length then return false end
if 0 > var1760 then goto L769 end
if var1797 > length then return false end
if var1802 ~= 0 then goto L769 end
if var2 > length then return false end
if var1756 ~= 2048 then goto L769 end
if var1758 > length then return false end
if 0 > var1760 then goto L769 end
if var2 > length then return false end
if var1756 ~= 2048 then goto L769 end
if var1758 > length then return false end
if 0 > var1760 then goto L769 end
if var1771 > length then return false end
if var1773 ~= 6 then goto L769 end
if var2 > length then return false end
if var1756 ~= 2048 then goto L769 end
if var1758 > length then return false end
if 0 > var1760 then goto L769 end
if var1784 > length then return false end
if 0 > var1786 then goto L769 end
if var2 > length then return false end
if var1756 ~= 2048 then goto L769 end
if var1758 > length then return false end
if 0 > var1760 then goto L769 end
if var1797 > length then return false end
if var1802 ~= 0 then goto L769 end
if var1859 > length then return false end
if var2 > length then return false end
if var1756 ~= 2048 then goto L769 end
if var1758 > length then return false end
if 0 > var1760 then goto L769 end
if var2 > length then return false end
if var1756 ~= 2048 then goto L769 end
if var1758 > length then return false end
if 0 > var1760 then goto L769 end
if var1771 > length then return false end
if var1773 ~= 6 then goto L769 end
if var2 > length then return false end
if var1756 ~= 2048 then goto L769 end
if var1758 > length then return false end
if 0 > var1760 then goto L769 end
if var1784 > length then return false end
if 0 > var1786 then goto L769 end
if var2 > length then return false end
if var1756 ~= 2048 then goto L769 end
if var1758 > length then return false end
if 0 > var1760 then goto L769 end
if var1797 > length then return false end
if var1802 ~= 0 then goto L769 end
if var2 > length then return false end
if var1756 ~= 2048 then goto L769 end
if var1758 > length then return false end
if 0 > var1760 then goto L769 end
if var2 > length then return false end
if var1756 ~= 2048 then goto L769 end
if var1758 > length then return false end
if 0 > var1760 then goto L769 end
if var1771 > length then return false end
if var1773 ~= 6 then goto L769 end
if var2 > length then return false end
if var1756 ~= 2048 then goto L769 end
if var1758 > length then return false end
if 0 > var1760 then goto L769 end
if var1784 > length then return false end
if 0 > var1786 then goto L769 end
if var2 > length then return false end
if var1756 ~= 2048 then goto L769 end
if var1758 > length then return false end
if 0 > var1760 then goto L769 end
if var1797 > length then return false end
if var1802 ~= 0 then goto L769 end
if var1859 > length then return false end
if var1983 > length then return false end
local var2245 = ((var1979 + P[var1982]) % 4294967296)
local var2248 = (var1857 + ((var2245 + 1) % 4294967296))
if (var2248 + 1) > length then return false end
local var2316 = (var1857 + ((var2245 + P[var2248]) % 4294967296))
if (var2316 + 1) > length then return false end
if P[var2316] == 1 then goto L769 end
if var2 > length then return false end
local var2390 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var2390 ~= 2048 then goto L1513 end
do
local var2391 = (14 + 19)
local var2392 = (var2391 + 1)
if var2392 > length then return false end
local var2394 = P[var2391]
if 0 > var2394 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
local var2404 = (14 + 9)
local var2405 = (var2404 + 1)
if var2405 > length then return false end
local var2407 = P[var2404]
if var2407 ~= 6 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
local var2417 = (14 + 39)
local var2418 = (var2417 + 1)
if var2418 > length then return false end
local var2420 = P[var2417]
if 0 > var2420 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
local var2430 = (14 + 6)
local var2431 = (var2430 + 2)
if var2431 > length then return false end
local var2436 = (band(rshift(bswap(cast("uint16_t*", P+var2430)[0]), 16),8191) % 4294967296)
if var2436 ~= 0 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2405 > length then return false end
if var2407 ~= 6 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2418 > length then return false end
if 0 > var2420 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2431 > length then return false end
if var2436 ~= 0 then goto L1513 end
local var2491 = (lshift(band(P[14],15),2) + 14)
local var2492 = (var2491 + 21)
local var2493 = (var2492 + 1)
if var2493 > length then return false end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2405 > length then return false end
if var2407 ~= 6 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2418 > length then return false end
if 0 > var2420 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2431 > length then return false end
if var2436 ~= 0 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2405 > length then return false end
if var2407 ~= 6 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2418 > length then return false end
if 0 > var2420 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2431 > length then return false end
if var2436 ~= 0 then goto L1513 end
if var2493 > length then return false end
local var2613 = ((20 + P[var2492]) % 4294967296)
local var2616 = (var2491 + ((var2613 + 1) % 4294967296))
local var2617 = (var2616 + 1)
if var2617 > length then return false end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2405 > length then return false end
if var2407 ~= 6 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2418 > length then return false end
if 0 > var2420 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2431 > length then return false end
if var2436 ~= 0 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2405 > length then return false end
if var2407 ~= 6 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2418 > length then return false end
if 0 > var2420 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2431 > length then return false end
if var2436 ~= 0 then goto L1513 end
if var2493 > length then return false end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2405 > length then return false end
if var2407 ~= 6 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2418 > length then return false end
if 0 > var2420 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2431 > length then return false end
if var2436 ~= 0 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2405 > length then return false end
if var2407 ~= 6 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2418 > length then return false end
if 0 > var2420 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2431 > length then return false end
if var2436 ~= 0 then goto L1513 end
if var2493 > length then return false end
if var2617 > length then return false end
local var2879 = ((var2613 + P[var2616]) % 4294967296)
local var2882 = (var2491 + ((var2879 + 1) % 4294967296))
local var2883 = (var2882 + 1)
if var2883 > length then return false end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2405 > length then return false end
if var2407 ~= 6 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2418 > length then return false end
if 0 > var2420 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2431 > length then return false end
if var2436 ~= 0 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2405 > length then return false end
if var2407 ~= 6 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2418 > length then return false end
if 0 > var2420 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2431 > length then return false end
if var2436 ~= 0 then goto L1513 end
if var2493 > length then return false end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2405 > length then return false end
if var2407 ~= 6 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2418 > length then return false end
if 0 > var2420 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2431 > length then return false end
if var2436 ~= 0 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2405 > length then return false end
if var2407 ~= 6 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2418 > length then return false end
if 0 > var2420 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2431 > length then return false end
if var2436 ~= 0 then goto L1513 end
if var2493 > length then return false end
if var2617 > length then return false end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2405 > length then return false end
if var2407 ~= 6 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2418 > length then return false end
if 0 > var2420 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2431 > length then return false end
if var2436 ~= 0 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2405 > length then return false end
if var2407 ~= 6 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2418 > length then return false end
if 0 > var2420 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2431 > length then return false end
if var2436 ~= 0 then goto L1513 end
if var2493 > length then return false end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2405 > length then return false end
if var2407 ~= 6 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2418 > length then return false end
if 0 > var2420 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2431 > length then return false end
if var2436 ~= 0 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2405 > length then return false end
if var2407 ~= 6 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2418 > length then return false end
if 0 > var2420 then goto L1513 end
if var2 > length then return false end
if var2390 ~= 2048 then goto L1513 end
if var2392 > length then return false end
if 0 > var2394 then goto L1513 end
if var2431 > length then return false end
if var2436 ~= 0 then goto L1513 end
if var2493 > length then return false end
if var2617 > length then return false end
if var2883 > length then return false end
local var3447 = ((var2879 + P[var2882]) % 4294967296)
local var3450 = (var2491 + ((var3447 + 1) % 4294967296))
if (var3450 + 1) > length then return false end
local var3590 = (var2491 + ((var3447 + P[var3450]) % 4294967296))
if (var3590 + 1) > length then return false end
if P[var3590] == 3 then return true end
goto L1513
end
::L1513::
if var2 > length then return false end
local var3736 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var3736 ~= 2048 then goto L1511 end
do
local var3737 = (14 + 19)
local var3738 = (var3737 + 1)
if var3738 > length then return false end
local var3740 = P[var3737]
if 0 > var3740 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
local var3750 = (14 + 9)
local var3751 = (var3750 + 1)
if var3751 > length then return false end
local var3753 = P[var3750]
if var3753 ~= 6 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
local var3763 = (14 + 39)
local var3764 = (var3763 + 1)
if var3764 > length then return false end
local var3766 = P[var3763]
if 0 > var3766 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
local var3776 = (14 + 6)
local var3777 = (var3776 + 2)
if var3777 > length then return false end
local var3782 = (band(rshift(bswap(cast("uint16_t*", P+var3776)[0]), 16),8191) % 4294967296)
if var3782 ~= 0 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3751 > length then return false end
if var3753 ~= 6 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3764 > length then return false end
if 0 > var3766 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3777 > length then return false end
if var3782 ~= 0 then goto L1511 end
local var3837 = (lshift(band(P[14],15),2) + 14)
local var3838 = (var3837 + 21)
local var3839 = (var3838 + 1)
if var3839 > length then return false end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3751 > length then return false end
if var3753 ~= 6 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3764 > length then return false end
if 0 > var3766 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3777 > length then return false end
if var3782 ~= 0 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3751 > length then return false end
if var3753 ~= 6 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3764 > length then return false end
if 0 > var3766 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3777 > length then return false end
if var3782 ~= 0 then goto L1511 end
if var3839 > length then return false end
local var3959 = ((20 + P[var3838]) % 4294967296)
local var3962 = (var3837 + ((var3959 + 1) % 4294967296))
local var3963 = (var3962 + 1)
if var3963 > length then return false end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3751 > length then return false end
if var3753 ~= 6 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3764 > length then return false end
if 0 > var3766 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3777 > length then return false end
if var3782 ~= 0 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3751 > length then return false end
if var3753 ~= 6 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3764 > length then return false end
if 0 > var3766 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3777 > length then return false end
if var3782 ~= 0 then goto L1511 end
if var3839 > length then return false end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3751 > length then return false end
if var3753 ~= 6 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3764 > length then return false end
if 0 > var3766 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3777 > length then return false end
if var3782 ~= 0 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3751 > length then return false end
if var3753 ~= 6 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3764 > length then return false end
if 0 > var3766 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3777 > length then return false end
if var3782 ~= 0 then goto L1511 end
if var3839 > length then return false end
if var3963 > length then return false end
local var4225 = ((var3959 + P[var3962]) % 4294967296)
local var4228 = (var3837 + ((var4225 + 1) % 4294967296))
local var4229 = (var4228 + 1)
if var4229 > length then return false end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3751 > length then return false end
if var3753 ~= 6 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3764 > length then return false end
if 0 > var3766 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3777 > length then return false end
if var3782 ~= 0 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3751 > length then return false end
if var3753 ~= 6 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3764 > length then return false end
if 0 > var3766 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3777 > length then return false end
if var3782 ~= 0 then goto L1511 end
if var3839 > length then return false end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3751 > length then return false end
if var3753 ~= 6 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3764 > length then return false end
if 0 > var3766 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3777 > length then return false end
if var3782 ~= 0 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3751 > length then return false end
if var3753 ~= 6 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3764 > length then return false end
if 0 > var3766 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3777 > length then return false end
if var3782 ~= 0 then goto L1511 end
if var3839 > length then return false end
if var3963 > length then return false end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3751 > length then return false end
if var3753 ~= 6 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3764 > length then return false end
if 0 > var3766 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3777 > length then return false end
if var3782 ~= 0 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3751 > length then return false end
if var3753 ~= 6 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3764 > length then return false end
if 0 > var3766 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3777 > length then return false end
if var3782 ~= 0 then goto L1511 end
if var3839 > length then return false end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3751 > length then return false end
if var3753 ~= 6 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3764 > length then return false end
if 0 > var3766 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3777 > length then return false end
if var3782 ~= 0 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3751 > length then return false end
if var3753 ~= 6 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3764 > length then return false end
if 0 > var3766 then goto L1511 end
if var2 > length then return false end
if var3736 ~= 2048 then goto L1511 end
if var3738 > length then return false end
if 0 > var3740 then goto L1511 end
if var3777 > length then return false end
if var3782 ~= 0 then goto L1511 end
if var3839 > length then return false end
if var3963 > length then return false end
if var4229 > length then return false end
local var4793 = ((var4225 + P[var4228]) % 4294967296)
local var4796 = (var3837 + ((var4793 + 1) % 4294967296))
if (var4796 + 1) > length then return false end
local var4936 = (var3837 + ((var4793 + P[var4796]) % 4294967296))
if (var4936 + 1) > length then return false end
if P[var4936] == 1 then goto L1511 end
if var2 > length then return false end
local var5082 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var5082 ~= 2048 then goto L1511 end
local var5083 = (14 + 19)
local var5084 = (var5083 + 1)
if var5084 > length then return false end
local var5086 = P[var5083]
if 0 > var5086 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
local var5096 = (14 + 9)
local var5097 = (var5096 + 1)
if var5097 > length then return false end
local var5099 = P[var5096]
if var5099 ~= 6 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
local var5109 = (14 + 39)
local var5110 = (var5109 + 1)
if var5110 > length then return false end
local var5112 = P[var5109]
if 0 > var5112 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
local var5122 = (14 + 6)
local var5123 = (var5122 + 2)
if var5123 > length then return false end
local var5128 = (band(rshift(bswap(cast("uint16_t*", P+var5122)[0]), 16),8191) % 4294967296)
if var5128 ~= 0 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5097 > length then return false end
if var5099 ~= 6 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5110 > length then return false end
if 0 > var5112 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5123 > length then return false end
if var5128 ~= 0 then goto L1511 end
local var5183 = (lshift(band(P[14],15),2) + 14)
local var5184 = (var5183 + 21)
local var5185 = (var5184 + 1)
if var5185 > length then return false end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5097 > length then return false end
if var5099 ~= 6 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5110 > length then return false end
if 0 > var5112 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5123 > length then return false end
if var5128 ~= 0 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5097 > length then return false end
if var5099 ~= 6 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5110 > length then return false end
if 0 > var5112 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5123 > length then return false end
if var5128 ~= 0 then goto L1511 end
if var5185 > length then return false end
local var5305 = ((20 + P[var5184]) % 4294967296)
local var5308 = (var5183 + ((var5305 + 1) % 4294967296))
local var5309 = (var5308 + 1)
if var5309 > length then return false end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5097 > length then return false end
if var5099 ~= 6 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5110 > length then return false end
if 0 > var5112 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5123 > length then return false end
if var5128 ~= 0 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5097 > length then return false end
if var5099 ~= 6 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5110 > length then return false end
if 0 > var5112 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5123 > length then return false end
if var5128 ~= 0 then goto L1511 end
if var5185 > length then return false end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5097 > length then return false end
if var5099 ~= 6 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5110 > length then return false end
if 0 > var5112 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5123 > length then return false end
if var5128 ~= 0 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5097 > length then return false end
if var5099 ~= 6 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5110 > length then return false end
if 0 > var5112 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5123 > length then return false end
if var5128 ~= 0 then goto L1511 end
if var5185 > length then return false end
if var5309 > length then return false end
local var5571 = ((var5305 + P[var5308]) % 4294967296)
local var5574 = (var5183 + ((var5571 + 1) % 4294967296))
local var5575 = (var5574 + 1)
if var5575 > length then return false end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5097 > length then return false end
if var5099 ~= 6 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5110 > length then return false end
if 0 > var5112 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5123 > length then return false end
if var5128 ~= 0 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5097 > length then return false end
if var5099 ~= 6 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5110 > length then return false end
if 0 > var5112 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5123 > length then return false end
if var5128 ~= 0 then goto L1511 end
if var5185 > length then return false end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5097 > length then return false end
if var5099 ~= 6 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5110 > length then return false end
if 0 > var5112 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5123 > length then return false end
if var5128 ~= 0 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5097 > length then return false end
if var5099 ~= 6 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5110 > length then return false end
if 0 > var5112 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5123 > length then return false end
if var5128 ~= 0 then goto L1511 end
if var5185 > length then return false end
if var5309 > length then return false end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5097 > length then return false end
if var5099 ~= 6 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5110 > length then return false end
if 0 > var5112 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5123 > length then return false end
if var5128 ~= 0 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5097 > length then return false end
if var5099 ~= 6 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5110 > length then return false end
if 0 > var5112 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5123 > length then return false end
if var5128 ~= 0 then goto L1511 end
if var5185 > length then return false end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5097 > length then return false end
if var5099 ~= 6 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5110 > length then return false end
if 0 > var5112 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5123 > length then return false end
if var5128 ~= 0 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5097 > length then return false end
if var5099 ~= 6 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5110 > length then return false end
if 0 > var5112 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5123 > length then return false end
if var5128 ~= 0 then goto L1511 end
if var5185 > length then return false end
if var5309 > length then return false end
if var5575 > length then return false end
local var6139 = ((var5571 + P[var5574]) % 4294967296)
local var6142 = (var5183 + ((var6139 + 1) % 4294967296))
local var6143 = (var6142 + 1)
if var6143 > length then return false end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5097 > length then return false end
if var5099 ~= 6 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5110 > length then return false end
if 0 > var5112 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5123 > length then return false end
if var5128 ~= 0 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5097 > length then return false end
if var5099 ~= 6 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5110 > length then return false end
if 0 > var5112 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5123 > length then return false end
if var5128 ~= 0 then goto L1511 end
if var5185 > length then return false end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5097 > length then return false end
if var5099 ~= 6 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5110 > length then return false end
if 0 > var5112 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5123 > length then return false end
if var5128 ~= 0 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5097 > length then return false end
if var5099 ~= 6 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5110 > length then return false end
if 0 > var5112 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5123 > length then return false end
if var5128 ~= 0 then goto L1511 end
if var5185 > length then return false end
if var5309 > length then return false end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5097 > length then return false end
if var5099 ~= 6 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5110 > length then return false end
if 0 > var5112 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5123 > length then return false end
if var5128 ~= 0 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5097 > length then return false end
if var5099 ~= 6 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5110 > length then return false end
if 0 > var5112 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5123 > length then return false end
if var5128 ~= 0 then goto L1511 end
if var5185 > length then return false end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5097 > length then return false end
if var5099 ~= 6 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5110 > length then return false end
if 0 > var5112 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5123 > length then return false end
if var5128 ~= 0 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5097 > length then return false end
if var5099 ~= 6 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5110 > length then return false end
if 0 > var5112 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5123 > length then return false end
if var5128 ~= 0 then goto L1511 end
if var5185 > length then return false end
if var5309 > length then return false end
if var5575 > length then return false end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5097 > length then return false end
if var5099 ~= 6 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5110 > length then return false end
if 0 > var5112 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5123 > length then return false end
if var5128 ~= 0 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5097 > length then return false end
if var5099 ~= 6 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5110 > length then return false end
if 0 > var5112 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5123 > length then return false end
if var5128 ~= 0 then goto L1511 end
if var5185 > length then return false end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5097 > length then return false end
if var5099 ~= 6 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5110 > length then return false end
if 0 > var5112 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5123 > length then return false end
if var5128 ~= 0 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5097 > length then return false end
if var5099 ~= 6 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5110 > length then return false end
if 0 > var5112 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5123 > length then return false end
if var5128 ~= 0 then goto L1511 end
if var5185 > length then return false end
if var5309 > length then return false end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5097 > length then return false end
if var5099 ~= 6 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5110 > length then return false end
if 0 > var5112 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5123 > length then return false end
if var5128 ~= 0 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5097 > length then return false end
if var5099 ~= 6 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5110 > length then return false end
if 0 > var5112 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5123 > length then return false end
if var5128 ~= 0 then goto L1511 end
if var5185 > length then return false end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5097 > length then return false end
if var5099 ~= 6 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5110 > length then return false end
if 0 > var5112 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5123 > length then return false end
if var5128 ~= 0 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5097 > length then return false end
if var5099 ~= 6 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5110 > length then return false end
if 0 > var5112 then goto L1511 end
if var2 > length then return false end
if var5082 ~= 2048 then goto L1511 end
if var5084 > length then return false end
if 0 > var5086 then goto L1511 end
if var5123 > length then return false end
if var5128 ~= 0 then goto L1511 end
if var5185 > length then return false end
if var5309 > length then return false end
if var5575 > length then return false end
if var6143 > length then return false end
local var7347 = ((var6139 + P[var6142]) % 4294967296)
local var7350 = (var5183 + ((var7347 + 1) % 4294967296))
if (var7350 + 1) > length then return false end
local var7634 = (var5183 + ((var7347 + P[var7350]) % 4294967296))
if (var7634 + 1) > length then return false end
if P[var7634] == 3 then return true end
goto L1511
end
::L1511::
if var2 > length then return false end
local var7924 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var7924 ~= 2048 then goto L769 end
local var7925 = (14 + 19)
local var7926 = (var7925 + 1)
if var7926 > length then return false end
local var7928 = P[var7925]
if 0 > var7928 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
local var7938 = (14 + 9)
local var7939 = (var7938 + 1)
if var7939 > length then return false end
local var7941 = P[var7938]
if var7941 ~= 6 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
local var7951 = (14 + 39)
local var7952 = (var7951 + 1)
if var7952 > length then return false end
local var7954 = P[var7951]
if 0 > var7954 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
local var7964 = (14 + 6)
local var7965 = (var7964 + 2)
if var7965 > length then return false end
local var7970 = (band(rshift(bswap(cast("uint16_t*", P+var7964)[0]), 16),8191) % 4294967296)
if var7970 ~= 0 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7939 > length then return false end
if var7941 ~= 6 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7952 > length then return false end
if 0 > var7954 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7965 > length then return false end
if var7970 ~= 0 then goto L769 end
local var8025 = (lshift(band(P[14],15),2) + 14)
local var8026 = (var8025 + 21)
local var8027 = (var8026 + 1)
if var8027 > length then return false end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7939 > length then return false end
if var7941 ~= 6 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7952 > length then return false end
if 0 > var7954 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7965 > length then return false end
if var7970 ~= 0 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7939 > length then return false end
if var7941 ~= 6 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7952 > length then return false end
if 0 > var7954 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7965 > length then return false end
if var7970 ~= 0 then goto L769 end
if var8027 > length then return false end
local var8147 = ((20 + P[var8026]) % 4294967296)
local var8150 = (var8025 + ((var8147 + 1) % 4294967296))
local var8151 = (var8150 + 1)
if var8151 > length then return false end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7939 > length then return false end
if var7941 ~= 6 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7952 > length then return false end
if 0 > var7954 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7965 > length then return false end
if var7970 ~= 0 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7939 > length then return false end
if var7941 ~= 6 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7952 > length then return false end
if 0 > var7954 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7965 > length then return false end
if var7970 ~= 0 then goto L769 end
if var8027 > length then return false end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7939 > length then return false end
if var7941 ~= 6 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7952 > length then return false end
if 0 > var7954 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7965 > length then return false end
if var7970 ~= 0 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7939 > length then return false end
if var7941 ~= 6 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7952 > length then return false end
if 0 > var7954 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7965 > length then return false end
if var7970 ~= 0 then goto L769 end
if var8027 > length then return false end
if var8151 > length then return false end
local var8413 = ((var8147 + P[var8150]) % 4294967296)
local var8416 = (var8025 + ((var8413 + 1) % 4294967296))
local var8417 = (var8416 + 1)
if var8417 > length then return false end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7939 > length then return false end
if var7941 ~= 6 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7952 > length then return false end
if 0 > var7954 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7965 > length then return false end
if var7970 ~= 0 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7939 > length then return false end
if var7941 ~= 6 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7952 > length then return false end
if 0 > var7954 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7965 > length then return false end
if var7970 ~= 0 then goto L769 end
if var8027 > length then return false end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7939 > length then return false end
if var7941 ~= 6 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7952 > length then return false end
if 0 > var7954 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7965 > length then return false end
if var7970 ~= 0 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7939 > length then return false end
if var7941 ~= 6 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7952 > length then return false end
if 0 > var7954 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7965 > length then return false end
if var7970 ~= 0 then goto L769 end
if var8027 > length then return false end
if var8151 > length then return false end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7939 > length then return false end
if var7941 ~= 6 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7952 > length then return false end
if 0 > var7954 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7965 > length then return false end
if var7970 ~= 0 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7939 > length then return false end
if var7941 ~= 6 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7952 > length then return false end
if 0 > var7954 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7965 > length then return false end
if var7970 ~= 0 then goto L769 end
if var8027 > length then return false end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7939 > length then return false end
if var7941 ~= 6 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7952 > length then return false end
if 0 > var7954 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7965 > length then return false end
if var7970 ~= 0 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7939 > length then return false end
if var7941 ~= 6 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7952 > length then return false end
if 0 > var7954 then goto L769 end
if var2 > length then return false end
if var7924 ~= 2048 then goto L769 end
if var7926 > length then return false end
if 0 > var7928 then goto L769 end
if var7965 > length then return false end
if var7970 ~= 0 then goto L769 end
if var8027 > length then return false end
if var8151 > length then return false end
if var8417 > length then return false end
local var8981 = ((var8413 + P[var8416]) % 4294967296)
local var8984 = (var8025 + ((var8981 + 1) % 4294967296))
if (var8984 + 1) > length then return false end
local var9124 = (var8025 + ((var8981 + P[var8984]) % 4294967296))
if (var9124 + 1) > length then return false end
if P[var9124] ~= 1 then goto L769 end
if var2 > length then return false end
local var9270 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var9270 ~= 2048 then goto L769 end
local var9271 = (14 + 19)
local var9272 = (var9271 + 1)
if var9272 > length then return false end
local var9274 = P[var9271]
if 0 > var9274 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
local var9284 = (14 + 9)
local var9285 = (var9284 + 1)
if var9285 > length then return false end
local var9287 = P[var9284]
if var9287 ~= 6 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
local var9297 = (14 + 39)
local var9298 = (var9297 + 1)
if var9298 > length then return false end
local var9300 = P[var9297]
if 0 > var9300 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
local var9310 = (14 + 6)
local var9311 = (var9310 + 2)
if var9311 > length then return false end
local var9316 = (band(rshift(bswap(cast("uint16_t*", P+var9310)[0]), 16),8191) % 4294967296)
if var9316 ~= 0 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9285 > length then return false end
if var9287 ~= 6 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9298 > length then return false end
if 0 > var9300 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9311 > length then return false end
if var9316 ~= 0 then goto L769 end
local var9371 = (lshift(band(P[14],15),2) + 14)
local var9372 = (var9371 + 21)
local var9373 = (var9372 + 1)
if var9373 > length then return false end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9285 > length then return false end
if var9287 ~= 6 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9298 > length then return false end
if 0 > var9300 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9311 > length then return false end
if var9316 ~= 0 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9285 > length then return false end
if var9287 ~= 6 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9298 > length then return false end
if 0 > var9300 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9311 > length then return false end
if var9316 ~= 0 then goto L769 end
if var9373 > length then return false end
local var9493 = ((20 + P[var9372]) % 4294967296)
local var9496 = (var9371 + ((var9493 + 1) % 4294967296))
local var9497 = (var9496 + 1)
if var9497 > length then return false end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9285 > length then return false end
if var9287 ~= 6 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9298 > length then return false end
if 0 > var9300 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9311 > length then return false end
if var9316 ~= 0 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9285 > length then return false end
if var9287 ~= 6 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9298 > length then return false end
if 0 > var9300 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9311 > length then return false end
if var9316 ~= 0 then goto L769 end
if var9373 > length then return false end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9285 > length then return false end
if var9287 ~= 6 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9298 > length then return false end
if 0 > var9300 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9311 > length then return false end
if var9316 ~= 0 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9285 > length then return false end
if var9287 ~= 6 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9298 > length then return false end
if 0 > var9300 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9311 > length then return false end
if var9316 ~= 0 then goto L769 end
if var9373 > length then return false end
if var9497 > length then return false end
local var9759 = ((var9493 + P[var9496]) % 4294967296)
local var9762 = (var9371 + ((var9759 + 1) % 4294967296))
local var9763 = (var9762 + 1)
if var9763 > length then return false end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9285 > length then return false end
if var9287 ~= 6 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9298 > length then return false end
if 0 > var9300 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9311 > length then return false end
if var9316 ~= 0 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9285 > length then return false end
if var9287 ~= 6 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9298 > length then return false end
if 0 > var9300 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9311 > length then return false end
if var9316 ~= 0 then goto L769 end
if var9373 > length then return false end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9285 > length then return false end
if var9287 ~= 6 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9298 > length then return false end
if 0 > var9300 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9311 > length then return false end
if var9316 ~= 0 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9285 > length then return false end
if var9287 ~= 6 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9298 > length then return false end
if 0 > var9300 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9311 > length then return false end
if var9316 ~= 0 then goto L769 end
if var9373 > length then return false end
if var9497 > length then return false end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9285 > length then return false end
if var9287 ~= 6 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9298 > length then return false end
if 0 > var9300 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9311 > length then return false end
if var9316 ~= 0 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9285 > length then return false end
if var9287 ~= 6 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9298 > length then return false end
if 0 > var9300 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9311 > length then return false end
if var9316 ~= 0 then goto L769 end
if var9373 > length then return false end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9285 > length then return false end
if var9287 ~= 6 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9298 > length then return false end
if 0 > var9300 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9311 > length then return false end
if var9316 ~= 0 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9285 > length then return false end
if var9287 ~= 6 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9298 > length then return false end
if 0 > var9300 then goto L769 end
if var2 > length then return false end
if var9270 ~= 2048 then goto L769 end
if var9272 > length then return false end
if 0 > var9274 then goto L769 end
if var9311 > length then return false end
if var9316 ~= 0 then goto L769 end
if var9373 > length then return false end
if var9497 > length then return false end
if var9763 > length then return false end
local var10327 = ((var9759 + P[var9762]) % 4294967296)
local var10330 = (var9371 + ((var10327 + 1) % 4294967296))
if (var10330 + 1) > length then return false end
local var10472 = (var9371 + ((((var10327 + P[var10330]) % 4294967296) + 1) % 4294967296))
if (var10472 + 1) > length then return false end
if P[var10472] == 3 then return true end
goto L769
end
::L769::
if var2 > length then return false end
local var10620 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var10620 ~= 2048 then goto L395 end
local var10621 = (14 + 19)
local var10622 = (var10621 + 1)
if var10622 > length then return false end
local var10624 = P[var10621]
if 0 > var10624 then goto L395 end
if var2 > length then return false end
if var10620 ~= 2048 then goto L395 end
if var10622 > length then return false end
if 0 > var10624 then goto L395 end
local var10634 = (14 + 9)
local var10635 = (var10634 + 1)
if var10635 > length then return false end
local var10637 = P[var10634]
if var10637 ~= 6 then goto L395 end
if var2 > length then return false end
if var10620 ~= 2048 then goto L395 end
if var10622 > length then return false end
if 0 > var10624 then goto L395 end
local var10647 = (14 + 39)
local var10648 = (var10647 + 1)
if var10648 > length then return false end
local var10650 = P[var10647]
if 0 > var10650 then goto L395 end
if var2 > length then return false end
if var10620 ~= 2048 then goto L395 end
if var10622 > length then return false end
if 0 > var10624 then goto L395 end
local var10660 = (14 + 6)
local var10661 = (var10660 + 2)
if var10661 > length then return false end
local var10666 = (band(rshift(bswap(cast("uint16_t*", P+var10660)[0]), 16),8191) % 4294967296)
if var10666 ~= 0 then goto L395 end
if var2 > length then return false end
if var10620 ~= 2048 then goto L395 end
if var10622 > length then return false end
if 0 > var10624 then goto L395 end
if var2 > length then return false end
if var10620 ~= 2048 then goto L395 end
if var10622 > length then return false end
if 0 > var10624 then goto L395 end
if var10635 > length then return false end
if var10637 ~= 6 then goto L395 end
if var2 > length then return false end
if var10620 ~= 2048 then goto L395 end
if var10622 > length then return false end
if 0 > var10624 then goto L395 end
if var10648 > length then return false end
if 0 > var10650 then goto L395 end
if var2 > length then return false end
if var10620 ~= 2048 then goto L395 end
if var10622 > length then return false end
if 0 > var10624 then goto L395 end
if var10661 > length then return false end
if var10666 ~= 0 then goto L395 end
local var10721 = (lshift(band(P[14],15),2) + 14)
local var10722 = (var10721 + 21)
local var10723 = (var10722 + 1)
if var10723 > length then return false end
if var2 > length then return false end
if var10620 ~= 2048 then goto L395 end
if var10622 > length then return false end
if 0 > var10624 then goto L395 end
if var2 > length then return false end
if var10620 ~= 2048 then goto L395 end
if var10622 > length then return false end
if 0 > var10624 then goto L395 end
if var10635 > length then return false end
if var10637 ~= 6 then goto L395 end
if var2 > length then return false end
if var10620 ~= 2048 then goto L395 end
if var10622 > length then return false end
if 0 > var10624 then goto L395 end
if var10648 > length then return false end
if 0 > var10650 then goto L395 end
if var2 > length then return false end
if var10620 ~= 2048 then goto L395 end
if var10622 > length then return false end
if 0 > var10624 then goto L395 end
if var10661 > length then return false end
if var10666 ~= 0 then goto L395 end
if var2 > length then return false end
if var10620 ~= 2048 then goto L395 end
if var10622 > length then return false end
if 0 > var10624 then goto L395 end
if var2 > length then return false end
if var10620 ~= 2048 then goto L395 end
if var10622 > length then return false end
if 0 > var10624 then goto L395 end
if var10635 > length then return false end
if var10637 ~= 6 then goto L395 end
if var2 > length then return false end
if var10620 ~= 2048 then goto L395 end
if var10622 > length then return false end
if 0 > var10624 then goto L395 end
if var10648 > length then return false end
if 0 > var10650 then goto L395 end
if var2 > length then return false end
if var10620 ~= 2048 then goto L395 end
if var10622 > length then return false end
if 0 > var10624 then goto L395 end
if var10661 > length then return false end
if var10666 ~= 0 then goto L395 end
if var10723 > length then return false end
local var10843 = ((20 + P[var10722]) % 4294967296)
local var10846 = (var10721 + ((var10843 + 1) % 4294967296))
local var10847 = (var10846 + 1)
if var10847 > length then return false end
if var2 > length then return false end
if var10620 ~= 2048 then goto L395 end
if var10622 > length then return false end
if 0 > var10624 then goto L395 end
if var2 > length then return false end
if var10620 ~= 2048 then goto L395 end
if var10622 > length then return false end
if 0 > var10624 then goto L395 end
if var10635 > length then return false end
if var10637 ~= 6 then goto L395 end
if var2 > length then return false end
if var10620 ~= 2048 then goto L395 end
if var10622 > length then return false end
if 0 > var10624 then goto L395 end
if var10648 > length then return false end
if 0 > var10650 then goto L395 end
if var2 > length then return false end
if var10620 ~= 2048 then goto L395 end
if var10622 > length then return false end
if 0 > var10624 then goto L395 end
if var10661 > length then return false end
if var10666 ~= 0 then goto L395 end
if var2 > length then return false end
if var10620 ~= 2048 then goto L395 end
if var10622 > length then return false end
if 0 > var10624 then goto L395 end
if var2 > length then return false end
if var10620 ~= 2048 then goto L395 end
if var10622 > length then return false end
if 0 > var10624 then goto L395 end
if var10635 > length then return false end
if var10637 ~= 6 then goto L395 end
if var2 > length then return false end
if var10620 ~= 2048 then goto L395 end
if var10622 > length then return false end
if 0 > var10624 then goto L395 end
if var10648 > length then return false end
if 0 > var10650 then goto L395 end
if var2 > length then return false end
if var10620 ~= 2048 then goto L395 end
if var10622 > length then return false end
if 0 > var10624 then goto L395 end
if var10661 > length then return false end
if var10666 ~= 0 then goto L395 end
if var10723 > length then return false end
if var2 > length then return false end
if var10620 ~= 2048 then goto L395 end
if var10622 > length then return false end
if 0 > var10624 then goto L395 end
if var2 > length then return false end
if var10620 ~= 2048 then goto L395 end
if var10622 > length then return false end
if 0 > var10624 then goto L395 end
if var10635 > length then return false end
if var10637 ~= 6 then goto L395 end
if var2 > length then return false end
if var10620 ~= 2048 then goto L395 end
if var10622 > length then return false end
if 0 > var10624 then goto L395 end
if var10648 > length then return false end
if 0 > var10650 then goto L395 end
if var2 > length then return false end
if var10620 ~= 2048 then goto L395 end
if var10622 > length then return false end
if 0 > var10624 then goto L395 end
if var10661 > length then return false end
if var10666 ~= 0 then goto L395 end
if var2 > length then return false end
if var10620 ~= 2048 then goto L395 end
if var10622 > length then return false end
if 0 > var10624 then goto L395 end
if var2 > length then return false end
if var10620 ~= 2048 then goto L395 end
if var10622 > length then return false end
if 0 > var10624 then goto L395 end
if var10635 > length then return false end
if var10637 ~= 6 then goto L395 end
if var2 > length then return false end
if var10620 ~= 2048 then goto L395 end
if var10622 > length then return false end
if 0 > var10624 then goto L395 end
if var10648 > length then return false end
if 0 > var10650 then goto L395 end
if var2 > length then return false end
if var10620 ~= 2048 then goto L395 end
if var10622 > length then return false end
if 0 > var10624 then goto L395 end
if var10661 > length then return false end
if var10666 ~= 0 then goto L395 end
if var10723 > length then return false end
if var10847 > length then return false end
local var11109 = ((var10843 + P[var10846]) % 4294967296)
local var11112 = (var10721 + ((var11109 + 1) % 4294967296))
if (var11112 + 1) > length then return false end
local var11180 = (var10721 + ((var11109 + P[var11112]) % 4294967296))
if (var11180 + 1) > length then return false end
if P[var11180] ~= 1 then goto L395 end
if var2 > length then return false end
local var11254 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var11254 ~= 2048 then goto L6307 end
do
local var11255 = (14 + 19)
local var11256 = (var11255 + 1)
if var11256 > length then return false end
local var11258 = P[var11255]
if 0 > var11258 then goto L6307 end
if var2 > length then return false end
if var11254 ~= 2048 then goto L6307 end
if var11256 > length then return false end
if 0 > var11258 then goto L6307 end
local var11268 = (14 + 9)
local var11269 = (var11268 + 1)
if var11269 > length then return false end
local var11271 = P[var11268]
if var11271 ~= 6 then goto L6307 end
if var2 > length then return false end
if var11254 ~= 2048 then goto L6307 end
if var11256 > length then return false end
if 0 > var11258 then goto L6307 end
local var11281 = (14 + 39)
local var11282 = (var11281 + 1)
if var11282 > length then return false end
local var11284 = P[var11281]
if 0 > var11284 then goto L6307 end
if var2 > length then return false end
if var11254 ~= 2048 then goto L6307 end
if var11256 > length then return false end
if 0 > var11258 then goto L6307 end
local var11294 = (14 + 6)
local var11295 = (var11294 + 2)
if var11295 > length then return false end
local var11300 = (band(rshift(bswap(cast("uint16_t*", P+var11294)[0]), 16),8191) % 4294967296)
if var11300 ~= 0 then goto L6307 end
if var2 > length then return false end
if var11254 ~= 2048 then goto L6307 end
if var11256 > length then return false end
if 0 > var11258 then goto L6307 end
if var2 > length then return false end
if var11254 ~= 2048 then goto L6307 end
if var11256 > length then return false end
if 0 > var11258 then goto L6307 end
if var11269 > length then return false end
if var11271 ~= 6 then goto L6307 end
if var2 > length then return false end
if var11254 ~= 2048 then goto L6307 end
if var11256 > length then return false end
if 0 > var11258 then goto L6307 end
if var11282 > length then return false end
if 0 > var11284 then goto L6307 end
if var2 > length then return false end
if var11254 ~= 2048 then goto L6307 end
if var11256 > length then return false end
if 0 > var11258 then goto L6307 end
if var11295 > length then return false end
if var11300 ~= 0 then goto L6307 end
local var11355 = (lshift(band(P[14],15),2) + 14)
local var11356 = (var11355 + 21)
local var11357 = (var11356 + 1)
if var11357 > length then return false end
if var2 > length then return false end
if var11254 ~= 2048 then goto L6307 end
if var11256 > length then return false end
if 0 > var11258 then goto L6307 end
if var2 > length then return false end
if var11254 ~= 2048 then goto L6307 end
if var11256 > length then return false end
if 0 > var11258 then goto L6307 end
if var11269 > length then return false end
if var11271 ~= 6 then goto L6307 end
if var2 > length then return false end
if var11254 ~= 2048 then goto L6307 end
if var11256 > length then return false end
if 0 > var11258 then goto L6307 end
if var11282 > length then return false end
if 0 > var11284 then goto L6307 end
if var2 > length then return false end
if var11254 ~= 2048 then goto L6307 end
if var11256 > length then return false end
if 0 > var11258 then goto L6307 end
if var11295 > length then return false end
if var11300 ~= 0 then goto L6307 end
if var2 > length then return false end
if var11254 ~= 2048 then goto L6307 end
if var11256 > length then return false end
if 0 > var11258 then goto L6307 end
if var2 > length then return false end
if var11254 ~= 2048 then goto L6307 end
if var11256 > length then return false end
if 0 > var11258 then goto L6307 end
if var11269 > length then return false end
if var11271 ~= 6 then goto L6307 end
if var2 > length then return false end
if var11254 ~= 2048 then goto L6307 end
if var11256 > length then return false end
if 0 > var11258 then goto L6307 end
if var11282 > length then return false end
if 0 > var11284 then goto L6307 end
if var2 > length then return false end
if var11254 ~= 2048 then goto L6307 end
if var11256 > length then return false end
if 0 > var11258 then goto L6307 end
if var11295 > length then return false end
if var11300 ~= 0 then goto L6307 end
if var11357 > length then return false end
local var11477 = ((20 + P[var11356]) % 4294967296)
local var11480 = (var11355 + ((var11477 + 1) % 4294967296))
local var11481 = (var11480 + 1)
if var11481 > length then return false end
if var2 > length then return false end
if var11254 ~= 2048 then goto L6307 end
if var11256 > length then return false end
if 0 > var11258 then goto L6307 end
if var2 > length then return false end
if var11254 ~= 2048 then goto L6307 end
if var11256 > length then return false end
if 0 > var11258 then goto L6307 end
if var11269 > length then return false end
if var11271 ~= 6 then goto L6307 end
if var2 > length then return false end
if var11254 ~= 2048 then goto L6307 end
if var11256 > length then return false end
if 0 > var11258 then goto L6307 end
if var11282 > length then return false end
if 0 > var11284 then goto L6307 end
if var2 > length then return false end
if var11254 ~= 2048 then goto L6307 end
if var11256 > length then return false end
if 0 > var11258 then goto L6307 end
if var11295 > length then return false end
if var11300 ~= 0 then goto L6307 end
if var2 > length then return false end
if var11254 ~= 2048 then goto L6307 end
if var11256 > length then return false end
if 0 > var11258 then goto L6307 end
if var2 > length then return false end
if var11254 ~= 2048 then goto L6307 end
if var11256 > length then return false end
if 0 > var11258 then goto L6307 end
if var11269 > length then return false end
if var11271 ~= 6 then goto L6307 end
if var2 > length then return false end
if var11254 ~= 2048 then goto L6307 end
if var11256 > length then return false end
if 0 > var11258 then goto L6307 end
if var11282 > length then return false end
if 0 > var11284 then goto L6307 end
if var2 > length then return false end
if var11254 ~= 2048 then goto L6307 end
if var11256 > length then return false end
if 0 > var11258 then goto L6307 end
if var11295 > length then return false end
if var11300 ~= 0 then goto L6307 end
if var11357 > length then return false end
if var2 > length then return false end
if var11254 ~= 2048 then goto L6307 end
if var11256 > length then return false end
if 0 > var11258 then goto L6307 end
if var2 > length then return false end
if var11254 ~= 2048 then goto L6307 end
if var11256 > length then return false end
if 0 > var11258 then goto L6307 end
if var11269 > length then return false end
if var11271 ~= 6 then goto L6307 end
if var2 > length then return false end
if var11254 ~= 2048 then goto L6307 end
if var11256 > length then return false end
if 0 > var11258 then goto L6307 end
if var11282 > length then return false end
if 0 > var11284 then goto L6307 end
if var2 > length then return false end
if var11254 ~= 2048 then goto L6307 end
if var11256 > length then return false end
if 0 > var11258 then goto L6307 end
if var11295 > length then return false end
if var11300 ~= 0 then goto L6307 end
if var2 > length then return false end
if var11254 ~= 2048 then goto L6307 end
if var11256 > length then return false end
if 0 > var11258 then goto L6307 end
if var2 > length then return false end
if var11254 ~= 2048 then goto L6307 end
if var11256 > length then return false end
if 0 > var11258 then goto L6307 end
if var11269 > length then return false end
if var11271 ~= 6 then goto L6307 end
if var2 > length then return false end
if var11254 ~= 2048 then goto L6307 end
if var11256 > length then return false end
if 0 > var11258 then goto L6307 end
if var11282 > length then return false end
if 0 > var11284 then goto L6307 end
if var2 > length then return false end
if var11254 ~= 2048 then goto L6307 end
if var11256 > length then return false end
if 0 > var11258 then goto L6307 end
if var11295 > length then return false end
if var11300 ~= 0 then goto L6307 end
if var11357 > length then return false end
if var11481 > length then return false end
local var11743 = ((var11477 + P[var11480]) % 4294967296)
local var11746 = (var11355 + ((var11743 + 1) % 4294967296))
if (var11746 + 1) > length then return false end
local var11816 = (var11355 + ((((var11743 + P[var11746]) % 4294967296) + 1) % 4294967296))
if (var11816 + 1) > length then return false end
if P[var11816] == 3 then return true end
goto L6307
end
::L6307::
if var2 > length then return false end
local var11892 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var11892 ~= 2048 then goto L6305 end
do
local var11893 = (14 + 19)
local var11894 = (var11893 + 1)
if var11894 > length then return false end
local var11896 = P[var11893]
if 0 > var11896 then goto L6305 end
if var2 > length then return false end
if var11892 ~= 2048 then goto L6305 end
if var11894 > length then return false end
if 0 > var11896 then goto L6305 end
local var11906 = (14 + 9)
local var11907 = (var11906 + 1)
if var11907 > length then return false end
local var11909 = P[var11906]
if var11909 ~= 6 then goto L6305 end
if var2 > length then return false end
if var11892 ~= 2048 then goto L6305 end
if var11894 > length then return false end
if 0 > var11896 then goto L6305 end
local var11919 = (14 + 39)
local var11920 = (var11919 + 1)
if var11920 > length then return false end
local var11922 = P[var11919]
if 0 > var11922 then goto L6305 end
if var2 > length then return false end
if var11892 ~= 2048 then goto L6305 end
if var11894 > length then return false end
if 0 > var11896 then goto L6305 end
local var11932 = (14 + 6)
local var11933 = (var11932 + 2)
if var11933 > length then return false end
local var11938 = (band(rshift(bswap(cast("uint16_t*", P+var11932)[0]), 16),8191) % 4294967296)
if var11938 ~= 0 then goto L6305 end
if var2 > length then return false end
if var11892 ~= 2048 then goto L6305 end
if var11894 > length then return false end
if 0 > var11896 then goto L6305 end
if var2 > length then return false end
if var11892 ~= 2048 then goto L6305 end
if var11894 > length then return false end
if 0 > var11896 then goto L6305 end
if var11907 > length then return false end
if var11909 ~= 6 then goto L6305 end
if var2 > length then return false end
if var11892 ~= 2048 then goto L6305 end
if var11894 > length then return false end
if 0 > var11896 then goto L6305 end
if var11920 > length then return false end
if 0 > var11922 then goto L6305 end
if var2 > length then return false end
if var11892 ~= 2048 then goto L6305 end
if var11894 > length then return false end
if 0 > var11896 then goto L6305 end
if var11933 > length then return false end
if var11938 ~= 0 then goto L6305 end
local var11993 = (lshift(band(P[14],15),2) + 14)
local var11994 = (var11993 + 21)
local var11995 = (var11994 + 1)
if var11995 > length then return false end
if var2 > length then return false end
if var11892 ~= 2048 then goto L6305 end
if var11894 > length then return false end
if 0 > var11896 then goto L6305 end
if var2 > length then return false end
if var11892 ~= 2048 then goto L6305 end
if var11894 > length then return false end
if 0 > var11896 then goto L6305 end
if var11907 > length then return false end
if var11909 ~= 6 then goto L6305 end
if var2 > length then return false end
if var11892 ~= 2048 then goto L6305 end
if var11894 > length then return false end
if 0 > var11896 then goto L6305 end
if var11920 > length then return false end
if 0 > var11922 then goto L6305 end
if var2 > length then return false end
if var11892 ~= 2048 then goto L6305 end
if var11894 > length then return false end
if 0 > var11896 then goto L6305 end
if var11933 > length then return false end
if var11938 ~= 0 then goto L6305 end
if var2 > length then return false end
if var11892 ~= 2048 then goto L6305 end
if var11894 > length then return false end
if 0 > var11896 then goto L6305 end
if var2 > length then return false end
if var11892 ~= 2048 then goto L6305 end
if var11894 > length then return false end
if 0 > var11896 then goto L6305 end
if var11907 > length then return false end
if var11909 ~= 6 then goto L6305 end
if var2 > length then return false end
if var11892 ~= 2048 then goto L6305 end
if var11894 > length then return false end
if 0 > var11896 then goto L6305 end
if var11920 > length then return false end
if 0 > var11922 then goto L6305 end
if var2 > length then return false end
if var11892 ~= 2048 then goto L6305 end
if var11894 > length then return false end
if 0 > var11896 then goto L6305 end
if var11933 > length then return false end
if var11938 ~= 0 then goto L6305 end
if var11995 > length then return false end
local var12115 = ((20 + P[var11994]) % 4294967296)
local var12118 = (var11993 + ((var12115 + 1) % 4294967296))
local var12119 = (var12118 + 1)
if var12119 > length then return false end
if var2 > length then return false end
if var11892 ~= 2048 then goto L6305 end
if var11894 > length then return false end
if 0 > var11896 then goto L6305 end
if var2 > length then return false end
if var11892 ~= 2048 then goto L6305 end
if var11894 > length then return false end
if 0 > var11896 then goto L6305 end
if var11907 > length then return false end
if var11909 ~= 6 then goto L6305 end
if var2 > length then return false end
if var11892 ~= 2048 then goto L6305 end
if var11894 > length then return false end
if 0 > var11896 then goto L6305 end
if var11920 > length then return false end
if 0 > var11922 then goto L6305 end
if var2 > length then return false end
if var11892 ~= 2048 then goto L6305 end
if var11894 > length then return false end
if 0 > var11896 then goto L6305 end
if var11933 > length then return false end
if var11938 ~= 0 then goto L6305 end
if var2 > length then return false end
if var11892 ~= 2048 then goto L6305 end
if var11894 > length then return false end
if 0 > var11896 then goto L6305 end
if var2 > length then return false end
if var11892 ~= 2048 then goto L6305 end
if var11894 > length then return false end
if 0 > var11896 then goto L6305 end
if var11907 > length then return false end
if var11909 ~= 6 then goto L6305 end
if var2 > length then return false end
if var11892 ~= 2048 then goto L6305 end
if var11894 > length then return false end
if 0 > var11896 then goto L6305 end
if var11920 > length then return false end
if 0 > var11922 then goto L6305 end
if var2 > length then return false end
if var11892 ~= 2048 then goto L6305 end
if var11894 > length then return false end
if 0 > var11896 then goto L6305 end
if var11933 > length then return false end
if var11938 ~= 0 then goto L6305 end
if var11995 > length then return false end
if var2 > length then return false end
if var11892 ~= 2048 then goto L6305 end
if var11894 > length then return false end
if 0 > var11896 then goto L6305 end
if var2 > length then return false end
if var11892 ~= 2048 then goto L6305 end
if var11894 > length then return false end
if 0 > var11896 then goto L6305 end
if var11907 > length then return false end
if var11909 ~= 6 then goto L6305 end
if var2 > length then return false end
if var11892 ~= 2048 then goto L6305 end
if var11894 > length then return false end
if 0 > var11896 then goto L6305 end
if var11920 > length then return false end
if 0 > var11922 then goto L6305 end
if var2 > length then return false end
if var11892 ~= 2048 then goto L6305 end
if var11894 > length then return false end
if 0 > var11896 then goto L6305 end
if var11933 > length then return false end
if var11938 ~= 0 then goto L6305 end
if var2 > length then return false end
if var11892 ~= 2048 then goto L6305 end
if var11894 > length then return false end
if 0 > var11896 then goto L6305 end
if var2 > length then return false end
if var11892 ~= 2048 then goto L6305 end
if var11894 > length then return false end
if 0 > var11896 then goto L6305 end
if var11907 > length then return false end
if var11909 ~= 6 then goto L6305 end
if var2 > length then return false end
if var11892 ~= 2048 then goto L6305 end
if var11894 > length then return false end
if 0 > var11896 then goto L6305 end
if var11920 > length then return false end
if 0 > var11922 then goto L6305 end
if var2 > length then return false end
if var11892 ~= 2048 then goto L6305 end
if var11894 > length then return false end
if 0 > var11896 then goto L6305 end
if var11933 > length then return false end
if var11938 ~= 0 then goto L6305 end
if var11995 > length then return false end
if var12119 > length then return false end
local var12381 = ((var12115 + P[var12118]) % 4294967296)
local var12384 = (var11993 + ((var12381 + 1) % 4294967296))
if (var12384 + 1) > length then return false end
local var12454 = (var11993 + ((((var12381 + P[var12384]) % 4294967296) + 1) % 4294967296))
if (var12454 + 1) > length then return false end
if P[var12454] == 1 then goto L6305 end
if var2 > length then return false end
local var12530 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var12530 ~= 2048 then goto L6305 end
local var12531 = (14 + 19)
local var12532 = (var12531 + 1)
if var12532 > length then return false end
local var12534 = P[var12531]
if 0 > var12534 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
local var12544 = (14 + 9)
local var12545 = (var12544 + 1)
if var12545 > length then return false end
local var12547 = P[var12544]
if var12547 ~= 6 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
local var12557 = (14 + 39)
local var12558 = (var12557 + 1)
if var12558 > length then return false end
local var12560 = P[var12557]
if 0 > var12560 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
local var12570 = (14 + 6)
local var12571 = (var12570 + 2)
if var12571 > length then return false end
local var12576 = (band(rshift(bswap(cast("uint16_t*", P+var12570)[0]), 16),8191) % 4294967296)
if var12576 ~= 0 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12545 > length then return false end
if var12547 ~= 6 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12558 > length then return false end
if 0 > var12560 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12571 > length then return false end
if var12576 ~= 0 then goto L6305 end
local var12631 = (lshift(band(P[14],15),2) + 14)
local var12632 = (var12631 + 21)
local var12633 = (var12632 + 1)
if var12633 > length then return false end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12545 > length then return false end
if var12547 ~= 6 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12558 > length then return false end
if 0 > var12560 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12571 > length then return false end
if var12576 ~= 0 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12545 > length then return false end
if var12547 ~= 6 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12558 > length then return false end
if 0 > var12560 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12571 > length then return false end
if var12576 ~= 0 then goto L6305 end
if var12633 > length then return false end
local var12753 = ((20 + P[var12632]) % 4294967296)
local var12756 = (var12631 + ((var12753 + 1) % 4294967296))
local var12757 = (var12756 + 1)
if var12757 > length then return false end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12545 > length then return false end
if var12547 ~= 6 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12558 > length then return false end
if 0 > var12560 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12571 > length then return false end
if var12576 ~= 0 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12545 > length then return false end
if var12547 ~= 6 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12558 > length then return false end
if 0 > var12560 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12571 > length then return false end
if var12576 ~= 0 then goto L6305 end
if var12633 > length then return false end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12545 > length then return false end
if var12547 ~= 6 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12558 > length then return false end
if 0 > var12560 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12571 > length then return false end
if var12576 ~= 0 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12545 > length then return false end
if var12547 ~= 6 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12558 > length then return false end
if 0 > var12560 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12571 > length then return false end
if var12576 ~= 0 then goto L6305 end
if var12633 > length then return false end
if var12757 > length then return false end
local var13019 = ((var12753 + P[var12756]) % 4294967296)
local var13022 = (var12631 + ((var13019 + 1) % 4294967296))
local var13023 = (var13022 + 1)
if var13023 > length then return false end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12545 > length then return false end
if var12547 ~= 6 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12558 > length then return false end
if 0 > var12560 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12571 > length then return false end
if var12576 ~= 0 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12545 > length then return false end
if var12547 ~= 6 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12558 > length then return false end
if 0 > var12560 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12571 > length then return false end
if var12576 ~= 0 then goto L6305 end
if var12633 > length then return false end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12545 > length then return false end
if var12547 ~= 6 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12558 > length then return false end
if 0 > var12560 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12571 > length then return false end
if var12576 ~= 0 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12545 > length then return false end
if var12547 ~= 6 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12558 > length then return false end
if 0 > var12560 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12571 > length then return false end
if var12576 ~= 0 then goto L6305 end
if var12633 > length then return false end
if var12757 > length then return false end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12545 > length then return false end
if var12547 ~= 6 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12558 > length then return false end
if 0 > var12560 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12571 > length then return false end
if var12576 ~= 0 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12545 > length then return false end
if var12547 ~= 6 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12558 > length then return false end
if 0 > var12560 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12571 > length then return false end
if var12576 ~= 0 then goto L6305 end
if var12633 > length then return false end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12545 > length then return false end
if var12547 ~= 6 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12558 > length then return false end
if 0 > var12560 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12571 > length then return false end
if var12576 ~= 0 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12545 > length then return false end
if var12547 ~= 6 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12558 > length then return false end
if 0 > var12560 then goto L6305 end
if var2 > length then return false end
if var12530 ~= 2048 then goto L6305 end
if var12532 > length then return false end
if 0 > var12534 then goto L6305 end
if var12571 > length then return false end
if var12576 ~= 0 then goto L6305 end
if var12633 > length then return false end
if var12757 > length then return false end
if var13023 > length then return false end
local var13587 = ((var13019 + P[var13022]) % 4294967296)
local var13590 = (var12631 + ((var13587 + 2) % 4294967296))
if (var13590 + 1) > length then return false end
local var13732 = (var12631 + ((((var13587 + 1) % 4294967296) + P[var13590]) % 4294967296))
if (var13732 + 1) > length then return false end
if P[var13732] == 3 then return true end
goto L6305
end
::L6305::
if var2 > length then return false end
local var13880 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var13880 ~= 2048 then goto L395 end
local var13881 = (14 + 19)
local var13882 = (var13881 + 1)
if var13882 > length then return false end
local var13884 = P[var13881]
if 0 > var13884 then goto L395 end
if var2 > length then return false end
if var13880 ~= 2048 then goto L395 end
if var13882 > length then return false end
if 0 > var13884 then goto L395 end
local var13894 = (14 + 9)
local var13895 = (var13894 + 1)
if var13895 > length then return false end
local var13897 = P[var13894]
if var13897 ~= 6 then goto L395 end
if var2 > length then return false end
if var13880 ~= 2048 then goto L395 end
if var13882 > length then return false end
if 0 > var13884 then goto L395 end
local var13907 = (14 + 39)
local var13908 = (var13907 + 1)
if var13908 > length then return false end
local var13910 = P[var13907]
if 0 > var13910 then goto L395 end
if var2 > length then return false end
if var13880 ~= 2048 then goto L395 end
if var13882 > length then return false end
if 0 > var13884 then goto L395 end
local var13920 = (14 + 6)
local var13921 = (var13920 + 2)
if var13921 > length then return false end
local var13926 = (band(rshift(bswap(cast("uint16_t*", P+var13920)[0]), 16),8191) % 4294967296)
if var13926 ~= 0 then goto L395 end
if var2 > length then return false end
if var13880 ~= 2048 then goto L395 end
if var13882 > length then return false end
if 0 > var13884 then goto L395 end
if var2 > length then return false end
if var13880 ~= 2048 then goto L395 end
if var13882 > length then return false end
if 0 > var13884 then goto L395 end
if var13895 > length then return false end
if var13897 ~= 6 then goto L395 end
if var2 > length then return false end
if var13880 ~= 2048 then goto L395 end
if var13882 > length then return false end
if 0 > var13884 then goto L395 end
if var13908 > length then return false end
if 0 > var13910 then goto L395 end
if var2 > length then return false end
if var13880 ~= 2048 then goto L395 end
if var13882 > length then return false end
if 0 > var13884 then goto L395 end
if var13921 > length then return false end
if var13926 ~= 0 then goto L395 end
local var13981 = (lshift(band(P[14],15),2) + 14)
local var13982 = (var13981 + 21)
local var13983 = (var13982 + 1)
if var13983 > length then return false end
if var2 > length then return false end
if var13880 ~= 2048 then goto L395 end
if var13882 > length then return false end
if 0 > var13884 then goto L395 end
if var2 > length then return false end
if var13880 ~= 2048 then goto L395 end
if var13882 > length then return false end
if 0 > var13884 then goto L395 end
if var13895 > length then return false end
if var13897 ~= 6 then goto L395 end
if var2 > length then return false end
if var13880 ~= 2048 then goto L395 end
if var13882 > length then return false end
if 0 > var13884 then goto L395 end
if var13908 > length then return false end
if 0 > var13910 then goto L395 end
if var2 > length then return false end
if var13880 ~= 2048 then goto L395 end
if var13882 > length then return false end
if 0 > var13884 then goto L395 end
if var13921 > length then return false end
if var13926 ~= 0 then goto L395 end
if var2 > length then return false end
if var13880 ~= 2048 then goto L395 end
if var13882 > length then return false end
if 0 > var13884 then goto L395 end
if var2 > length then return false end
if var13880 ~= 2048 then goto L395 end
if var13882 > length then return false end
if 0 > var13884 then goto L395 end
if var13895 > length then return false end
if var13897 ~= 6 then goto L395 end
if var2 > length then return false end
if var13880 ~= 2048 then goto L395 end
if var13882 > length then return false end
if 0 > var13884 then goto L395 end
if var13908 > length then return false end
if 0 > var13910 then goto L395 end
if var2 > length then return false end
if var13880 ~= 2048 then goto L395 end
if var13882 > length then return false end
if 0 > var13884 then goto L395 end
if var13921 > length then return false end
if var13926 ~= 0 then goto L395 end
if var13983 > length then return false end
local var14103 = ((20 + P[var13982]) % 4294967296)
local var14106 = (var13981 + ((var14103 + 1) % 4294967296))
local var14107 = (var14106 + 1)
if var14107 > length then return false end
if var2 > length then return false end
if var13880 ~= 2048 then goto L395 end
if var13882 > length then return false end
if 0 > var13884 then goto L395 end
if var2 > length then return false end
if var13880 ~= 2048 then goto L395 end
if var13882 > length then return false end
if 0 > var13884 then goto L395 end
if var13895 > length then return false end
if var13897 ~= 6 then goto L395 end
if var2 > length then return false end
if var13880 ~= 2048 then goto L395 end
if var13882 > length then return false end
if 0 > var13884 then goto L395 end
if var13908 > length then return false end
if 0 > var13910 then goto L395 end
if var2 > length then return false end
if var13880 ~= 2048 then goto L395 end
if var13882 > length then return false end
if 0 > var13884 then goto L395 end
if var13921 > length then return false end
if var13926 ~= 0 then goto L395 end
if var2 > length then return false end
if var13880 ~= 2048 then goto L395 end
if var13882 > length then return false end
if 0 > var13884 then goto L395 end
if var2 > length then return false end
if var13880 ~= 2048 then goto L395 end
if var13882 > length then return false end
if 0 > var13884 then goto L395 end
if var13895 > length then return false end
if var13897 ~= 6 then goto L395 end
if var2 > length then return false end
if var13880 ~= 2048 then goto L395 end
if var13882 > length then return false end
if 0 > var13884 then goto L395 end
if var13908 > length then return false end
if 0 > var13910 then goto L395 end
if var2 > length then return false end
if var13880 ~= 2048 then goto L395 end
if var13882 > length then return false end
if 0 > var13884 then goto L395 end
if var13921 > length then return false end
if var13926 ~= 0 then goto L395 end
if var13983 > length then return false end
if var2 > length then return false end
if var13880 ~= 2048 then goto L395 end
if var13882 > length then return false end
if 0 > var13884 then goto L395 end
if var2 > length then return false end
if var13880 ~= 2048 then goto L395 end
if var13882 > length then return false end
if 0 > var13884 then goto L395 end
if var13895 > length then return false end
if var13897 ~= 6 then goto L395 end
if var2 > length then return false end
if var13880 ~= 2048 then goto L395 end
if var13882 > length then return false end
if 0 > var13884 then goto L395 end
if var13908 > length then return false end
if 0 > var13910 then goto L395 end
if var2 > length then return false end
if var13880 ~= 2048 then goto L395 end
if var13882 > length then return false end
if 0 > var13884 then goto L395 end
if var13921 > length then return false end
if var13926 ~= 0 then goto L395 end
if var2 > length then return false end
if var13880 ~= 2048 then goto L395 end
if var13882 > length then return false end
if 0 > var13884 then goto L395 end
if var2 > length then return false end
if var13880 ~= 2048 then goto L395 end
if var13882 > length then return false end
if 0 > var13884 then goto L395 end
if var13895 > length then return false end
if var13897 ~= 6 then goto L395 end
if var2 > length then return false end
if var13880 ~= 2048 then goto L395 end
if var13882 > length then return false end
if 0 > var13884 then goto L395 end
if var13908 > length then return false end
if 0 > var13910 then goto L395 end
if var2 > length then return false end
if var13880 ~= 2048 then goto L395 end
if var13882 > length then return false end
if 0 > var13884 then goto L395 end
if var13921 > length then return false end
if var13926 ~= 0 then goto L395 end
if var13983 > length then return false end
if var14107 > length then return false end
local var14369 = ((var14103 + P[var14106]) % 4294967296)
local var14372 = (var13981 + ((var14369 + 1) % 4294967296))
if (var14372 + 1) > length then return false end
local var14442 = (var13981 + ((((var14369 + P[var14372]) % 4294967296) + 1) % 4294967296))
if (var14442 + 1) > length then return false end
if P[var14442] ~= 1 then goto L395 end
if var2 > length then return false end
local var14518 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var14518 ~= 2048 then goto L395 end
local var14519 = (14 + 19)
local var14520 = (var14519 + 1)
if var14520 > length then return false end
local var14522 = P[var14519]
if 0 > var14522 then goto L395 end
if var2 > length then return false end
if var14518 ~= 2048 then goto L395 end
if var14520 > length then return false end
if 0 > var14522 then goto L395 end
local var14532 = (14 + 9)
local var14533 = (var14532 + 1)
if var14533 > length then return false end
local var14535 = P[var14532]
if var14535 ~= 6 then goto L395 end
if var2 > length then return false end
if var14518 ~= 2048 then goto L395 end
if var14520 > length then return false end
if 0 > var14522 then goto L395 end
local var14545 = (14 + 39)
local var14546 = (var14545 + 1)
if var14546 > length then return false end
local var14548 = P[var14545]
if 0 > var14548 then goto L395 end
if var2 > length then return false end
if var14518 ~= 2048 then goto L395 end
if var14520 > length then return false end
if 0 > var14522 then goto L395 end
local var14558 = (14 + 6)
local var14559 = (var14558 + 2)
if var14559 > length then return false end
local var14564 = (band(rshift(bswap(cast("uint16_t*", P+var14558)[0]), 16),8191) % 4294967296)
if var14564 ~= 0 then goto L395 end
if var2 > length then return false end
if var14518 ~= 2048 then goto L395 end
if var14520 > length then return false end
if 0 > var14522 then goto L395 end
if var2 > length then return false end
if var14518 ~= 2048 then goto L395 end
if var14520 > length then return false end
if 0 > var14522 then goto L395 end
if var14533 > length then return false end
if var14535 ~= 6 then goto L395 end
if var2 > length then return false end
if var14518 ~= 2048 then goto L395 end
if var14520 > length then return false end
if 0 > var14522 then goto L395 end
if var14546 > length then return false end
if 0 > var14548 then goto L395 end
if var2 > length then return false end
if var14518 ~= 2048 then goto L395 end
if var14520 > length then return false end
if 0 > var14522 then goto L395 end
if var14559 > length then return false end
if var14564 ~= 0 then goto L395 end
local var14619 = (lshift(band(P[14],15),2) + 14)
local var14620 = (var14619 + 21)
local var14621 = (var14620 + 1)
if var14621 > length then return false end
if var2 > length then return false end
if var14518 ~= 2048 then goto L395 end
if var14520 > length then return false end
if 0 > var14522 then goto L395 end
if var2 > length then return false end
if var14518 ~= 2048 then goto L395 end
if var14520 > length then return false end
if 0 > var14522 then goto L395 end
if var14533 > length then return false end
if var14535 ~= 6 then goto L395 end
if var2 > length then return false end
if var14518 ~= 2048 then goto L395 end
if var14520 > length then return false end
if 0 > var14522 then goto L395 end
if var14546 > length then return false end
if 0 > var14548 then goto L395 end
if var2 > length then return false end
if var14518 ~= 2048 then goto L395 end
if var14520 > length then return false end
if 0 > var14522 then goto L395 end
if var14559 > length then return false end
if var14564 ~= 0 then goto L395 end
if var2 > length then return false end
if var14518 ~= 2048 then goto L395 end
if var14520 > length then return false end
if 0 > var14522 then goto L395 end
if var2 > length then return false end
if var14518 ~= 2048 then goto L395 end
if var14520 > length then return false end
if 0 > var14522 then goto L395 end
if var14533 > length then return false end
if var14535 ~= 6 then goto L395 end
if var2 > length then return false end
if var14518 ~= 2048 then goto L395 end
if var14520 > length then return false end
if 0 > var14522 then goto L395 end
if var14546 > length then return false end
if 0 > var14548 then goto L395 end
if var2 > length then return false end
if var14518 ~= 2048 then goto L395 end
if var14520 > length then return false end
if 0 > var14522 then goto L395 end
if var14559 > length then return false end
if var14564 ~= 0 then goto L395 end
if var14621 > length then return false end
local var14741 = ((20 + P[var14620]) % 4294967296)
local var14744 = (var14619 + ((var14741 + 1) % 4294967296))
local var14745 = (var14744 + 1)
if var14745 > length then return false end
if var2 > length then return false end
if var14518 ~= 2048 then goto L395 end
if var14520 > length then return false end
if 0 > var14522 then goto L395 end
if var2 > length then return false end
if var14518 ~= 2048 then goto L395 end
if var14520 > length then return false end
if 0 > var14522 then goto L395 end
if var14533 > length then return false end
if var14535 ~= 6 then goto L395 end
if var2 > length then return false end
if var14518 ~= 2048 then goto L395 end
if var14520 > length then return false end
if 0 > var14522 then goto L395 end
if var14546 > length then return false end
if 0 > var14548 then goto L395 end
if var2 > length then return false end
if var14518 ~= 2048 then goto L395 end
if var14520 > length then return false end
if 0 > var14522 then goto L395 end
if var14559 > length then return false end
if var14564 ~= 0 then goto L395 end
if var2 > length then return false end
if var14518 ~= 2048 then goto L395 end
if var14520 > length then return false end
if 0 > var14522 then goto L395 end
if var2 > length then return false end
if var14518 ~= 2048 then goto L395 end
if var14520 > length then return false end
if 0 > var14522 then goto L395 end
if var14533 > length then return false end
if var14535 ~= 6 then goto L395 end
if var2 > length then return false end
if var14518 ~= 2048 then goto L395 end
if var14520 > length then return false end
if 0 > var14522 then goto L395 end
if var14546 > length then return false end
if 0 > var14548 then goto L395 end
if var2 > length then return false end
if var14518 ~= 2048 then goto L395 end
if var14520 > length then return false end
if 0 > var14522 then goto L395 end
if var14559 > length then return false end
if var14564 ~= 0 then goto L395 end
if var14621 > length then return false end
if var2 > length then return false end
if var14518 ~= 2048 then goto L395 end
if var14520 > length then return false end
if 0 > var14522 then goto L395 end
if var2 > length then return false end
if var14518 ~= 2048 then goto L395 end
if var14520 > length then return false end
if 0 > var14522 then goto L395 end
if var14533 > length then return false end
if var14535 ~= 6 then goto L395 end
if var2 > length then return false end
if var14518 ~= 2048 then goto L395 end
if var14520 > length then return false end
if 0 > var14522 then goto L395 end
if var14546 > length then return false end
if 0 > var14548 then goto L395 end
if var2 > length then return false end
if var14518 ~= 2048 then goto L395 end
if var14520 > length then return false end
if 0 > var14522 then goto L395 end
if var14559 > length then return false end
if var14564 ~= 0 then goto L395 end
if var2 > length then return false end
if var14518 ~= 2048 then goto L395 end
if var14520 > length then return false end
if 0 > var14522 then goto L395 end
if var2 > length then return false end
if var14518 ~= 2048 then goto L395 end
if var14520 > length then return false end
if 0 > var14522 then goto L395 end
if var14533 > length then return false end
if var14535 ~= 6 then goto L395 end
if var2 > length then return false end
if var14518 ~= 2048 then goto L395 end
if var14520 > length then return false end
if 0 > var14522 then goto L395 end
if var14546 > length then return false end
if 0 > var14548 then goto L395 end
if var2 > length then return false end
if var14518 ~= 2048 then goto L395 end
if var14520 > length then return false end
if 0 > var14522 then goto L395 end
if var14559 > length then return false end
if var14564 ~= 0 then goto L395 end
if var14621 > length then return false end
if var14745 > length then return false end
local var15007 = ((var14741 + P[var14744]) % 4294967296)
local var15010 = (var14619 + ((var15007 + 1) % 4294967296))
if (var15010 + 1) > length then return false end
local var15080 = (var14619 + ((((var15007 + P[var15010]) % 4294967296) + 2) % 4294967296))
if (var15080 + 1) > length then return false end
if P[var15080] == 3 then return true end
goto L395
end
::L395::
if var2 > length then return false end
local var15156 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var15156 ~= 2048 then goto L205 end
local var15157 = (14 + 19)
local var15158 = (var15157 + 1)
if var15158 > length then return false end
local var15160 = P[var15157]
if 0 > var15160 then goto L205 end
if var2 > length then return false end
if var15156 ~= 2048 then goto L205 end
if var15158 > length then return false end
if 0 > var15160 then goto L205 end
local var15170 = (14 + 9)
local var15171 = (var15170 + 1)
if var15171 > length then return false end
local var15173 = P[var15170]
if var15173 ~= 6 then goto L205 end
if var2 > length then return false end
if var15156 ~= 2048 then goto L205 end
if var15158 > length then return false end
if 0 > var15160 then goto L205 end
local var15183 = (14 + 39)
local var15184 = (var15183 + 1)
if var15184 > length then return false end
local var15186 = P[var15183]
if 0 > var15186 then goto L205 end
if var2 > length then return false end
if var15156 ~= 2048 then goto L205 end
if var15158 > length then return false end
if 0 > var15160 then goto L205 end
local var15196 = (14 + 6)
local var15197 = (var15196 + 2)
if var15197 > length then return false end
local var15202 = (band(rshift(bswap(cast("uint16_t*", P+var15196)[0]), 16),8191) % 4294967296)
if var15202 ~= 0 then goto L205 end
if var2 > length then return false end
if var15156 ~= 2048 then goto L205 end
if var15158 > length then return false end
if 0 > var15160 then goto L205 end
if var2 > length then return false end
if var15156 ~= 2048 then goto L205 end
if var15158 > length then return false end
if 0 > var15160 then goto L205 end
if var15171 > length then return false end
if var15173 ~= 6 then goto L205 end
if var2 > length then return false end
if var15156 ~= 2048 then goto L205 end
if var15158 > length then return false end
if 0 > var15160 then goto L205 end
if var15184 > length then return false end
if 0 > var15186 then goto L205 end
if var2 > length then return false end
if var15156 ~= 2048 then goto L205 end
if var15158 > length then return false end
if 0 > var15160 then goto L205 end
if var15197 > length then return false end
if var15202 ~= 0 then goto L205 end
local var15257 = (lshift(band(P[14],15),2) + 14)
local var15258 = (var15257 + 21)
local var15259 = (var15258 + 1)
if var15259 > length then return false end
if var2 > length then return false end
if var15156 ~= 2048 then goto L205 end
if var15158 > length then return false end
if 0 > var15160 then goto L205 end
if var2 > length then return false end
if var15156 ~= 2048 then goto L205 end
if var15158 > length then return false end
if 0 > var15160 then goto L205 end
if var15171 > length then return false end
if var15173 ~= 6 then goto L205 end
if var2 > length then return false end
if var15156 ~= 2048 then goto L205 end
if var15158 > length then return false end
if 0 > var15160 then goto L205 end
if var15184 > length then return false end
if 0 > var15186 then goto L205 end
if var2 > length then return false end
if var15156 ~= 2048 then goto L205 end
if var15158 > length then return false end
if 0 > var15160 then goto L205 end
if var15197 > length then return false end
if var15202 ~= 0 then goto L205 end
if var2 > length then return false end
if var15156 ~= 2048 then goto L205 end
if var15158 > length then return false end
if 0 > var15160 then goto L205 end
if var2 > length then return false end
if var15156 ~= 2048 then goto L205 end
if var15158 > length then return false end
if 0 > var15160 then goto L205 end
if var15171 > length then return false end
if var15173 ~= 6 then goto L205 end
if var2 > length then return false end
if var15156 ~= 2048 then goto L205 end
if var15158 > length then return false end
if 0 > var15160 then goto L205 end
if var15184 > length then return false end
if 0 > var15186 then goto L205 end
if var2 > length then return false end
if var15156 ~= 2048 then goto L205 end
if var15158 > length then return false end
if 0 > var15160 then goto L205 end
if var15197 > length then return false end
if var15202 ~= 0 then goto L205 end
if var15259 > length then return false end
local var15379 = ((20 + P[var15258]) % 4294967296)
local var15382 = (var15257 + ((var15379 + 1) % 4294967296))
if (var15382 + 1) > length then return false end
local var15414 = (var15257 + ((var15379 + P[var15382]) % 4294967296))
if (var15414 + 1) > length then return false end
if P[var15414] ~= 1 then goto L205 end
if var2 > length then return false end
local var15452 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var15452 ~= 2048 then goto L8709 end
do
local var15453 = (14 + 19)
local var15454 = (var15453 + 1)
if var15454 > length then return false end
local var15456 = P[var15453]
if 0 > var15456 then goto L8709 end
if var2 > length then return false end
if var15452 ~= 2048 then goto L8709 end
if var15454 > length then return false end
if 0 > var15456 then goto L8709 end
local var15466 = (14 + 9)
local var15467 = (var15466 + 1)
if var15467 > length then return false end
local var15469 = P[var15466]
if var15469 ~= 6 then goto L8709 end
if var2 > length then return false end
if var15452 ~= 2048 then goto L8709 end
if var15454 > length then return false end
if 0 > var15456 then goto L8709 end
local var15479 = (14 + 39)
local var15480 = (var15479 + 1)
if var15480 > length then return false end
local var15482 = P[var15479]
if 0 > var15482 then goto L8709 end
if var2 > length then return false end
if var15452 ~= 2048 then goto L8709 end
if var15454 > length then return false end
if 0 > var15456 then goto L8709 end
local var15492 = (14 + 6)
local var15493 = (var15492 + 2)
if var15493 > length then return false end
local var15498 = (band(rshift(bswap(cast("uint16_t*", P+var15492)[0]), 16),8191) % 4294967296)
if var15498 ~= 0 then goto L8709 end
if var2 > length then return false end
if var15452 ~= 2048 then goto L8709 end
if var15454 > length then return false end
if 0 > var15456 then goto L8709 end
if var2 > length then return false end
if var15452 ~= 2048 then goto L8709 end
if var15454 > length then return false end
if 0 > var15456 then goto L8709 end
if var15467 > length then return false end
if var15469 ~= 6 then goto L8709 end
if var2 > length then return false end
if var15452 ~= 2048 then goto L8709 end
if var15454 > length then return false end
if 0 > var15456 then goto L8709 end
if var15480 > length then return false end
if 0 > var15482 then goto L8709 end
if var2 > length then return false end
if var15452 ~= 2048 then goto L8709 end
if var15454 > length then return false end
if 0 > var15456 then goto L8709 end
if var15493 > length then return false end
if var15498 ~= 0 then goto L8709 end
local var15553 = (lshift(band(P[14],15),2) + 14)
local var15554 = (var15553 + 21)
local var15555 = (var15554 + 1)
if var15555 > length then return false end
if var2 > length then return false end
if var15452 ~= 2048 then goto L8709 end
if var15454 > length then return false end
if 0 > var15456 then goto L8709 end
if var2 > length then return false end
if var15452 ~= 2048 then goto L8709 end
if var15454 > length then return false end
if 0 > var15456 then goto L8709 end
if var15467 > length then return false end
if var15469 ~= 6 then goto L8709 end
if var2 > length then return false end
if var15452 ~= 2048 then goto L8709 end
if var15454 > length then return false end
if 0 > var15456 then goto L8709 end
if var15480 > length then return false end
if 0 > var15482 then goto L8709 end
if var2 > length then return false end
if var15452 ~= 2048 then goto L8709 end
if var15454 > length then return false end
if 0 > var15456 then goto L8709 end
if var15493 > length then return false end
if var15498 ~= 0 then goto L8709 end
if var2 > length then return false end
if var15452 ~= 2048 then goto L8709 end
if var15454 > length then return false end
if 0 > var15456 then goto L8709 end
if var2 > length then return false end
if var15452 ~= 2048 then goto L8709 end
if var15454 > length then return false end
if 0 > var15456 then goto L8709 end
if var15467 > length then return false end
if var15469 ~= 6 then goto L8709 end
if var2 > length then return false end
if var15452 ~= 2048 then goto L8709 end
if var15454 > length then return false end
if 0 > var15456 then goto L8709 end
if var15480 > length then return false end
if 0 > var15482 then goto L8709 end
if var2 > length then return false end
if var15452 ~= 2048 then goto L8709 end
if var15454 > length then return false end
if 0 > var15456 then goto L8709 end
if var15493 > length then return false end
if var15498 ~= 0 then goto L8709 end
if var15555 > length then return false end
local var15675 = ((20 + P[var15554]) % 4294967296)
local var15678 = (var15553 + ((var15675 + 1) % 4294967296))
if (var15678 + 1) > length then return false end
local var15712 = (var15553 + ((((var15675 + P[var15678]) % 4294967296) + 1) % 4294967296))
if (var15712 + 1) > length then return false end
if P[var15712] == 3 then return true end
goto L8709
end
::L8709::
if var2 > length then return false end
local var15752 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var15752 ~= 2048 then goto L8707 end
do
local var15753 = (14 + 19)
local var15754 = (var15753 + 1)
if var15754 > length then return false end
local var15756 = P[var15753]
if 0 > var15756 then goto L8707 end
if var2 > length then return false end
if var15752 ~= 2048 then goto L8707 end
if var15754 > length then return false end
if 0 > var15756 then goto L8707 end
local var15766 = (14 + 9)
local var15767 = (var15766 + 1)
if var15767 > length then return false end
local var15769 = P[var15766]
if var15769 ~= 6 then goto L8707 end
if var2 > length then return false end
if var15752 ~= 2048 then goto L8707 end
if var15754 > length then return false end
if 0 > var15756 then goto L8707 end
local var15779 = (14 + 39)
local var15780 = (var15779 + 1)
if var15780 > length then return false end
local var15782 = P[var15779]
if 0 > var15782 then goto L8707 end
if var2 > length then return false end
if var15752 ~= 2048 then goto L8707 end
if var15754 > length then return false end
if 0 > var15756 then goto L8707 end
local var15792 = (14 + 6)
local var15793 = (var15792 + 2)
if var15793 > length then return false end
local var15798 = (band(rshift(bswap(cast("uint16_t*", P+var15792)[0]), 16),8191) % 4294967296)
if var15798 ~= 0 then goto L8707 end
if var2 > length then return false end
if var15752 ~= 2048 then goto L8707 end
if var15754 > length then return false end
if 0 > var15756 then goto L8707 end
if var2 > length then return false end
if var15752 ~= 2048 then goto L8707 end
if var15754 > length then return false end
if 0 > var15756 then goto L8707 end
if var15767 > length then return false end
if var15769 ~= 6 then goto L8707 end
if var2 > length then return false end
if var15752 ~= 2048 then goto L8707 end
if var15754 > length then return false end
if 0 > var15756 then goto L8707 end
if var15780 > length then return false end
if 0 > var15782 then goto L8707 end
if var2 > length then return false end
if var15752 ~= 2048 then goto L8707 end
if var15754 > length then return false end
if 0 > var15756 then goto L8707 end
if var15793 > length then return false end
if var15798 ~= 0 then goto L8707 end
local var15853 = (lshift(band(P[14],15),2) + 14)
local var15854 = (var15853 + 21)
local var15855 = (var15854 + 1)
if var15855 > length then return false end
if var2 > length then return false end
if var15752 ~= 2048 then goto L8707 end
if var15754 > length then return false end
if 0 > var15756 then goto L8707 end
if var2 > length then return false end
if var15752 ~= 2048 then goto L8707 end
if var15754 > length then return false end
if 0 > var15756 then goto L8707 end
if var15767 > length then return false end
if var15769 ~= 6 then goto L8707 end
if var2 > length then return false end
if var15752 ~= 2048 then goto L8707 end
if var15754 > length then return false end
if 0 > var15756 then goto L8707 end
if var15780 > length then return false end
if 0 > var15782 then goto L8707 end
if var2 > length then return false end
if var15752 ~= 2048 then goto L8707 end
if var15754 > length then return false end
if 0 > var15756 then goto L8707 end
if var15793 > length then return false end
if var15798 ~= 0 then goto L8707 end
if var2 > length then return false end
if var15752 ~= 2048 then goto L8707 end
if var15754 > length then return false end
if 0 > var15756 then goto L8707 end
if var2 > length then return false end
if var15752 ~= 2048 then goto L8707 end
if var15754 > length then return false end
if 0 > var15756 then goto L8707 end
if var15767 > length then return false end
if var15769 ~= 6 then goto L8707 end
if var2 > length then return false end
if var15752 ~= 2048 then goto L8707 end
if var15754 > length then return false end
if 0 > var15756 then goto L8707 end
if var15780 > length then return false end
if 0 > var15782 then goto L8707 end
if var2 > length then return false end
if var15752 ~= 2048 then goto L8707 end
if var15754 > length then return false end
if 0 > var15756 then goto L8707 end
if var15793 > length then return false end
if var15798 ~= 0 then goto L8707 end
if var15855 > length then return false end
local var15975 = ((20 + P[var15854]) % 4294967296)
local var15978 = (var15853 + ((var15975 + 1) % 4294967296))
if (var15978 + 1) > length then return false end
local var16012 = (var15853 + ((((var15975 + P[var15978]) % 4294967296) + 1) % 4294967296))
if (var16012 + 1) > length then return false end
if P[var16012] == 1 then goto L8707 end
if var2 > length then return false end
local var16052 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var16052 ~= 2048 then goto L9083 end
do
local var16053 = (14 + 19)
local var16054 = (var16053 + 1)
if var16054 > length then return false end
local var16056 = P[var16053]
if 0 > var16056 then goto L9083 end
if var2 > length then return false end
if var16052 ~= 2048 then goto L9083 end
if var16054 > length then return false end
if 0 > var16056 then goto L9083 end
local var16066 = (14 + 9)
local var16067 = (var16066 + 1)
if var16067 > length then return false end
local var16069 = P[var16066]
if var16069 ~= 6 then goto L9083 end
if var2 > length then return false end
if var16052 ~= 2048 then goto L9083 end
if var16054 > length then return false end
if 0 > var16056 then goto L9083 end
local var16079 = (14 + 39)
local var16080 = (var16079 + 1)
if var16080 > length then return false end
local var16082 = P[var16079]
if 0 > var16082 then goto L9083 end
if var2 > length then return false end
if var16052 ~= 2048 then goto L9083 end
if var16054 > length then return false end
if 0 > var16056 then goto L9083 end
local var16092 = (14 + 6)
local var16093 = (var16092 + 2)
if var16093 > length then return false end
local var16098 = (band(rshift(bswap(cast("uint16_t*", P+var16092)[0]), 16),8191) % 4294967296)
if var16098 ~= 0 then goto L9083 end
if var2 > length then return false end
if var16052 ~= 2048 then goto L9083 end
if var16054 > length then return false end
if 0 > var16056 then goto L9083 end
if var2 > length then return false end
if var16052 ~= 2048 then goto L9083 end
if var16054 > length then return false end
if 0 > var16056 then goto L9083 end
if var16067 > length then return false end
if var16069 ~= 6 then goto L9083 end
if var2 > length then return false end
if var16052 ~= 2048 then goto L9083 end
if var16054 > length then return false end
if 0 > var16056 then goto L9083 end
if var16080 > length then return false end
if 0 > var16082 then goto L9083 end
if var2 > length then return false end
if var16052 ~= 2048 then goto L9083 end
if var16054 > length then return false end
if 0 > var16056 then goto L9083 end
if var16093 > length then return false end
if var16098 ~= 0 then goto L9083 end
local var16153 = (lshift(band(P[14],15),2) + 14)
local var16154 = (var16153 + 21)
local var16155 = (var16154 + 1)
if var16155 > length then return false end
if var2 > length then return false end
if var16052 ~= 2048 then goto L9083 end
if var16054 > length then return false end
if 0 > var16056 then goto L9083 end
if var2 > length then return false end
if var16052 ~= 2048 then goto L9083 end
if var16054 > length then return false end
if 0 > var16056 then goto L9083 end
if var16067 > length then return false end
if var16069 ~= 6 then goto L9083 end
if var2 > length then return false end
if var16052 ~= 2048 then goto L9083 end
if var16054 > length then return false end
if 0 > var16056 then goto L9083 end
if var16080 > length then return false end
if 0 > var16082 then goto L9083 end
if var2 > length then return false end
if var16052 ~= 2048 then goto L9083 end
if var16054 > length then return false end
if 0 > var16056 then goto L9083 end
if var16093 > length then return false end
if var16098 ~= 0 then goto L9083 end
if var2 > length then return false end
if var16052 ~= 2048 then goto L9083 end
if var16054 > length then return false end
if 0 > var16056 then goto L9083 end
if var2 > length then return false end
if var16052 ~= 2048 then goto L9083 end
if var16054 > length then return false end
if 0 > var16056 then goto L9083 end
if var16067 > length then return false end
if var16069 ~= 6 then goto L9083 end
if var2 > length then return false end
if var16052 ~= 2048 then goto L9083 end
if var16054 > length then return false end
if 0 > var16056 then goto L9083 end
if var16080 > length then return false end
if 0 > var16082 then goto L9083 end
if var2 > length then return false end
if var16052 ~= 2048 then goto L9083 end
if var16054 > length then return false end
if 0 > var16056 then goto L9083 end
if var16093 > length then return false end
if var16098 ~= 0 then goto L9083 end
if var16155 > length then return false end
local var16275 = ((20 + P[var16154]) % 4294967296)
local var16278 = (var16153 + ((var16275 + 1) % 4294967296))
local var16279 = (var16278 + 1)
if var16279 > length then return false end
if var2 > length then return false end
if var16052 ~= 2048 then goto L9083 end
if var16054 > length then return false end
if 0 > var16056 then goto L9083 end
if var2 > length then return false end
if var16052 ~= 2048 then goto L9083 end
if var16054 > length then return false end
if 0 > var16056 then goto L9083 end
if var16067 > length then return false end
if var16069 ~= 6 then goto L9083 end
if var2 > length then return false end
if var16052 ~= 2048 then goto L9083 end
if var16054 > length then return false end
if 0 > var16056 then goto L9083 end
if var16080 > length then return false end
if 0 > var16082 then goto L9083 end
if var2 > length then return false end
if var16052 ~= 2048 then goto L9083 end
if var16054 > length then return false end
if 0 > var16056 then goto L9083 end
if var16093 > length then return false end
if var16098 ~= 0 then goto L9083 end
if var2 > length then return false end
if var16052 ~= 2048 then goto L9083 end
if var16054 > length then return false end
if 0 > var16056 then goto L9083 end
if var2 > length then return false end
if var16052 ~= 2048 then goto L9083 end
if var16054 > length then return false end
if 0 > var16056 then goto L9083 end
if var16067 > length then return false end
if var16069 ~= 6 then goto L9083 end
if var2 > length then return false end
if var16052 ~= 2048 then goto L9083 end
if var16054 > length then return false end
if 0 > var16056 then goto L9083 end
if var16080 > length then return false end
if 0 > var16082 then goto L9083 end
if var2 > length then return false end
if var16052 ~= 2048 then goto L9083 end
if var16054 > length then return false end
if 0 > var16056 then goto L9083 end
if var16093 > length then return false end
if var16098 ~= 0 then goto L9083 end
if var16155 > length then return false end
if var2 > length then return false end
if var16052 ~= 2048 then goto L9083 end
if var16054 > length then return false end
if 0 > var16056 then goto L9083 end
if var2 > length then return false end
if var16052 ~= 2048 then goto L9083 end
if var16054 > length then return false end
if 0 > var16056 then goto L9083 end
if var16067 > length then return false end
if var16069 ~= 6 then goto L9083 end
if var2 > length then return false end
if var16052 ~= 2048 then goto L9083 end
if var16054 > length then return false end
if 0 > var16056 then goto L9083 end
if var16080 > length then return false end
if 0 > var16082 then goto L9083 end
if var2 > length then return false end
if var16052 ~= 2048 then goto L9083 end
if var16054 > length then return false end
if 0 > var16056 then goto L9083 end
if var16093 > length then return false end
if var16098 ~= 0 then goto L9083 end
if var2 > length then return false end
if var16052 ~= 2048 then goto L9083 end
if var16054 > length then return false end
if 0 > var16056 then goto L9083 end
if var2 > length then return false end
if var16052 ~= 2048 then goto L9083 end
if var16054 > length then return false end
if 0 > var16056 then goto L9083 end
if var16067 > length then return false end
if var16069 ~= 6 then goto L9083 end
if var2 > length then return false end
if var16052 ~= 2048 then goto L9083 end
if var16054 > length then return false end
if 0 > var16056 then goto L9083 end
if var16080 > length then return false end
if 0 > var16082 then goto L9083 end
if var2 > length then return false end
if var16052 ~= 2048 then goto L9083 end
if var16054 > length then return false end
if 0 > var16056 then goto L9083 end
if var16093 > length then return false end
if var16098 ~= 0 then goto L9083 end
if var16155 > length then return false end
if var16279 > length then return false end
local var16541 = ((var16275 + P[var16278]) % 4294967296)
local var16544 = (var16153 + ((var16541 + 2) % 4294967296))
if (var16544 + 1) > length then return false end
local var16614 = (var16153 + ((((var16541 + 1) % 4294967296) + P[var16544]) % 4294967296))
if (var16614 + 1) > length then return false end
if P[var16614] == 3 then return true end
goto L9083
end
::L9083::
if var2 > length then return false end
local var16690 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var16690 ~= 2048 then goto L9081 end
do
local var16691 = (14 + 19)
local var16692 = (var16691 + 1)
if var16692 > length then return false end
local var16694 = P[var16691]
if 0 > var16694 then goto L9081 end
if var2 > length then return false end
if var16690 ~= 2048 then goto L9081 end
if var16692 > length then return false end
if 0 > var16694 then goto L9081 end
local var16704 = (14 + 9)
local var16705 = (var16704 + 1)
if var16705 > length then return false end
local var16707 = P[var16704]
if var16707 ~= 6 then goto L9081 end
if var2 > length then return false end
if var16690 ~= 2048 then goto L9081 end
if var16692 > length then return false end
if 0 > var16694 then goto L9081 end
local var16717 = (14 + 39)
local var16718 = (var16717 + 1)
if var16718 > length then return false end
local var16720 = P[var16717]
if 0 > var16720 then goto L9081 end
if var2 > length then return false end
if var16690 ~= 2048 then goto L9081 end
if var16692 > length then return false end
if 0 > var16694 then goto L9081 end
local var16730 = (14 + 6)
local var16731 = (var16730 + 2)
if var16731 > length then return false end
local var16736 = (band(rshift(bswap(cast("uint16_t*", P+var16730)[0]), 16),8191) % 4294967296)
if var16736 ~= 0 then goto L9081 end
if var2 > length then return false end
if var16690 ~= 2048 then goto L9081 end
if var16692 > length then return false end
if 0 > var16694 then goto L9081 end
if var2 > length then return false end
if var16690 ~= 2048 then goto L9081 end
if var16692 > length then return false end
if 0 > var16694 then goto L9081 end
if var16705 > length then return false end
if var16707 ~= 6 then goto L9081 end
if var2 > length then return false end
if var16690 ~= 2048 then goto L9081 end
if var16692 > length then return false end
if 0 > var16694 then goto L9081 end
if var16718 > length then return false end
if 0 > var16720 then goto L9081 end
if var2 > length then return false end
if var16690 ~= 2048 then goto L9081 end
if var16692 > length then return false end
if 0 > var16694 then goto L9081 end
if var16731 > length then return false end
if var16736 ~= 0 then goto L9081 end
local var16791 = (lshift(band(P[14],15),2) + 14)
local var16792 = (var16791 + 21)
local var16793 = (var16792 + 1)
if var16793 > length then return false end
if var2 > length then return false end
if var16690 ~= 2048 then goto L9081 end
if var16692 > length then return false end
if 0 > var16694 then goto L9081 end
if var2 > length then return false end
if var16690 ~= 2048 then goto L9081 end
if var16692 > length then return false end
if 0 > var16694 then goto L9081 end
if var16705 > length then return false end
if var16707 ~= 6 then goto L9081 end
if var2 > length then return false end
if var16690 ~= 2048 then goto L9081 end
if var16692 > length then return false end
if 0 > var16694 then goto L9081 end
if var16718 > length then return false end
if 0 > var16720 then goto L9081 end
if var2 > length then return false end
if var16690 ~= 2048 then goto L9081 end
if var16692 > length then return false end
if 0 > var16694 then goto L9081 end
if var16731 > length then return false end
if var16736 ~= 0 then goto L9081 end
if var2 > length then return false end
if var16690 ~= 2048 then goto L9081 end
if var16692 > length then return false end
if 0 > var16694 then goto L9081 end
if var2 > length then return false end
if var16690 ~= 2048 then goto L9081 end
if var16692 > length then return false end
if 0 > var16694 then goto L9081 end
if var16705 > length then return false end
if var16707 ~= 6 then goto L9081 end
if var2 > length then return false end
if var16690 ~= 2048 then goto L9081 end
if var16692 > length then return false end
if 0 > var16694 then goto L9081 end
if var16718 > length then return false end
if 0 > var16720 then goto L9081 end
if var2 > length then return false end
if var16690 ~= 2048 then goto L9081 end
if var16692 > length then return false end
if 0 > var16694 then goto L9081 end
if var16731 > length then return false end
if var16736 ~= 0 then goto L9081 end
if var16793 > length then return false end
local var16913 = ((20 + P[var16792]) % 4294967296)
local var16916 = (var16791 + ((var16913 + 1) % 4294967296))
local var16917 = (var16916 + 1)
if var16917 > length then return false end
if var2 > length then return false end
if var16690 ~= 2048 then goto L9081 end
if var16692 > length then return false end
if 0 > var16694 then goto L9081 end
if var2 > length then return false end
if var16690 ~= 2048 then goto L9081 end
if var16692 > length then return false end
if 0 > var16694 then goto L9081 end
if var16705 > length then return false end
if var16707 ~= 6 then goto L9081 end
if var2 > length then return false end
if var16690 ~= 2048 then goto L9081 end
if var16692 > length then return false end
if 0 > var16694 then goto L9081 end
if var16718 > length then return false end
if 0 > var16720 then goto L9081 end
if var2 > length then return false end
if var16690 ~= 2048 then goto L9081 end
if var16692 > length then return false end
if 0 > var16694 then goto L9081 end
if var16731 > length then return false end
if var16736 ~= 0 then goto L9081 end
if var2 > length then return false end
if var16690 ~= 2048 then goto L9081 end
if var16692 > length then return false end
if 0 > var16694 then goto L9081 end
if var2 > length then return false end
if var16690 ~= 2048 then goto L9081 end
if var16692 > length then return false end
if 0 > var16694 then goto L9081 end
if var16705 > length then return false end
if var16707 ~= 6 then goto L9081 end
if var2 > length then return false end
if var16690 ~= 2048 then goto L9081 end
if var16692 > length then return false end
if 0 > var16694 then goto L9081 end
if var16718 > length then return false end
if 0 > var16720 then goto L9081 end
if var2 > length then return false end
if var16690 ~= 2048 then goto L9081 end
if var16692 > length then return false end
if 0 > var16694 then goto L9081 end
if var16731 > length then return false end
if var16736 ~= 0 then goto L9081 end
if var16793 > length then return false end
if var2 > length then return false end
if var16690 ~= 2048 then goto L9081 end
if var16692 > length then return false end
if 0 > var16694 then goto L9081 end
if var2 > length then return false end
if var16690 ~= 2048 then goto L9081 end
if var16692 > length then return false end
if 0 > var16694 then goto L9081 end
if var16705 > length then return false end
if var16707 ~= 6 then goto L9081 end
if var2 > length then return false end
if var16690 ~= 2048 then goto L9081 end
if var16692 > length then return false end
if 0 > var16694 then goto L9081 end
if var16718 > length then return false end
if 0 > var16720 then goto L9081 end
if var2 > length then return false end
if var16690 ~= 2048 then goto L9081 end
if var16692 > length then return false end
if 0 > var16694 then goto L9081 end
if var16731 > length then return false end
if var16736 ~= 0 then goto L9081 end
if var2 > length then return false end
if var16690 ~= 2048 then goto L9081 end
if var16692 > length then return false end
if 0 > var16694 then goto L9081 end
if var2 > length then return false end
if var16690 ~= 2048 then goto L9081 end
if var16692 > length then return false end
if 0 > var16694 then goto L9081 end
if var16705 > length then return false end
if var16707 ~= 6 then goto L9081 end
if var2 > length then return false end
if var16690 ~= 2048 then goto L9081 end
if var16692 > length then return false end
if 0 > var16694 then goto L9081 end
if var16718 > length then return false end
if 0 > var16720 then goto L9081 end
if var2 > length then return false end
if var16690 ~= 2048 then goto L9081 end
if var16692 > length then return false end
if 0 > var16694 then goto L9081 end
if var16731 > length then return false end
if var16736 ~= 0 then goto L9081 end
if var16793 > length then return false end
if var16917 > length then return false end
local var17179 = ((var16913 + P[var16916]) % 4294967296)
local var17182 = (var16791 + ((var17179 + 2) % 4294967296))
if (var17182 + 1) > length then return false end
local var17252 = (var16791 + ((((var17179 + 1) % 4294967296) + P[var17182]) % 4294967296))
if (var17252 + 1) > length then return false end
if P[var17252] == 1 then goto L9081 end
if var2 > length then return false end
local var17328 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var17328 ~= 2048 then goto L9081 end
local var17329 = (14 + 19)
local var17330 = (var17329 + 1)
if var17330 > length then return false end
local var17332 = P[var17329]
if 0 > var17332 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
local var17342 = (14 + 9)
local var17343 = (var17342 + 1)
if var17343 > length then return false end
local var17345 = P[var17342]
if var17345 ~= 6 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
local var17355 = (14 + 39)
local var17356 = (var17355 + 1)
if var17356 > length then return false end
local var17358 = P[var17355]
if 0 > var17358 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
local var17368 = (14 + 6)
local var17369 = (var17368 + 2)
if var17369 > length then return false end
local var17374 = (band(rshift(bswap(cast("uint16_t*", P+var17368)[0]), 16),8191) % 4294967296)
if var17374 ~= 0 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17343 > length then return false end
if var17345 ~= 6 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17356 > length then return false end
if 0 > var17358 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17369 > length then return false end
if var17374 ~= 0 then goto L9081 end
local var17429 = (lshift(band(P[14],15),2) + 14)
local var17430 = (var17429 + 21)
local var17431 = (var17430 + 1)
if var17431 > length then return false end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17343 > length then return false end
if var17345 ~= 6 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17356 > length then return false end
if 0 > var17358 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17369 > length then return false end
if var17374 ~= 0 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17343 > length then return false end
if var17345 ~= 6 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17356 > length then return false end
if 0 > var17358 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17369 > length then return false end
if var17374 ~= 0 then goto L9081 end
if var17431 > length then return false end
local var17551 = ((20 + P[var17430]) % 4294967296)
local var17554 = (var17429 + ((var17551 + 1) % 4294967296))
local var17555 = (var17554 + 1)
if var17555 > length then return false end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17343 > length then return false end
if var17345 ~= 6 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17356 > length then return false end
if 0 > var17358 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17369 > length then return false end
if var17374 ~= 0 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17343 > length then return false end
if var17345 ~= 6 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17356 > length then return false end
if 0 > var17358 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17369 > length then return false end
if var17374 ~= 0 then goto L9081 end
if var17431 > length then return false end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17343 > length then return false end
if var17345 ~= 6 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17356 > length then return false end
if 0 > var17358 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17369 > length then return false end
if var17374 ~= 0 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17343 > length then return false end
if var17345 ~= 6 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17356 > length then return false end
if 0 > var17358 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17369 > length then return false end
if var17374 ~= 0 then goto L9081 end
if var17431 > length then return false end
if var17555 > length then return false end
local var17817 = ((var17551 + P[var17554]) % 4294967296)
local var17820 = (var17429 + ((var17817 + 2) % 4294967296))
local var17821 = (var17820 + 1)
if var17821 > length then return false end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17343 > length then return false end
if var17345 ~= 6 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17356 > length then return false end
if 0 > var17358 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17369 > length then return false end
if var17374 ~= 0 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17343 > length then return false end
if var17345 ~= 6 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17356 > length then return false end
if 0 > var17358 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17369 > length then return false end
if var17374 ~= 0 then goto L9081 end
if var17431 > length then return false end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17343 > length then return false end
if var17345 ~= 6 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17356 > length then return false end
if 0 > var17358 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17369 > length then return false end
if var17374 ~= 0 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17343 > length then return false end
if var17345 ~= 6 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17356 > length then return false end
if 0 > var17358 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17369 > length then return false end
if var17374 ~= 0 then goto L9081 end
if var17431 > length then return false end
if var17555 > length then return false end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17343 > length then return false end
if var17345 ~= 6 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17356 > length then return false end
if 0 > var17358 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17369 > length then return false end
if var17374 ~= 0 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17343 > length then return false end
if var17345 ~= 6 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17356 > length then return false end
if 0 > var17358 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17369 > length then return false end
if var17374 ~= 0 then goto L9081 end
if var17431 > length then return false end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17343 > length then return false end
if var17345 ~= 6 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17356 > length then return false end
if 0 > var17358 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17369 > length then return false end
if var17374 ~= 0 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17343 > length then return false end
if var17345 ~= 6 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17356 > length then return false end
if 0 > var17358 then goto L9081 end
if var2 > length then return false end
if var17328 ~= 2048 then goto L9081 end
if var17330 > length then return false end
if 0 > var17332 then goto L9081 end
if var17369 > length then return false end
if var17374 ~= 0 then goto L9081 end
if var17431 > length then return false end
if var17555 > length then return false end
if var17821 > length then return false end
local var18387 = ((((var17817 + 1) % 4294967296) + P[var17820]) % 4294967296)
local var18390 = (var17429 + ((var18387 + 1) % 4294967296))
if (var18390 + 1) > length then return false end
local var18534 = (var17429 + ((var18387 + P[var18390]) % 4294967296))
if (var18534 + 1) > length then return false end
if P[var18534] == 3 then return true end
goto L9081
end
::L9081::
if var2 > length then return false end
local var18684 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var18684 ~= 2048 then goto L8707 end
local var18685 = (14 + 19)
local var18686 = (var18685 + 1)
if var18686 > length then return false end
local var18688 = P[var18685]
if 0 > var18688 then goto L8707 end
if var2 > length then return false end
if var18684 ~= 2048 then goto L8707 end
if var18686 > length then return false end
if 0 > var18688 then goto L8707 end
local var18698 = (14 + 9)
local var18699 = (var18698 + 1)
if var18699 > length then return false end
local var18701 = P[var18698]
if var18701 ~= 6 then goto L8707 end
if var2 > length then return false end
if var18684 ~= 2048 then goto L8707 end
if var18686 > length then return false end
if 0 > var18688 then goto L8707 end
local var18711 = (14 + 39)
local var18712 = (var18711 + 1)
if var18712 > length then return false end
local var18714 = P[var18711]
if 0 > var18714 then goto L8707 end
if var2 > length then return false end
if var18684 ~= 2048 then goto L8707 end
if var18686 > length then return false end
if 0 > var18688 then goto L8707 end
local var18724 = (14 + 6)
local var18725 = (var18724 + 2)
if var18725 > length then return false end
local var18730 = (band(rshift(bswap(cast("uint16_t*", P+var18724)[0]), 16),8191) % 4294967296)
if var18730 ~= 0 then goto L8707 end
if var2 > length then return false end
if var18684 ~= 2048 then goto L8707 end
if var18686 > length then return false end
if 0 > var18688 then goto L8707 end
if var2 > length then return false end
if var18684 ~= 2048 then goto L8707 end
if var18686 > length then return false end
if 0 > var18688 then goto L8707 end
if var18699 > length then return false end
if var18701 ~= 6 then goto L8707 end
if var2 > length then return false end
if var18684 ~= 2048 then goto L8707 end
if var18686 > length then return false end
if 0 > var18688 then goto L8707 end
if var18712 > length then return false end
if 0 > var18714 then goto L8707 end
if var2 > length then return false end
if var18684 ~= 2048 then goto L8707 end
if var18686 > length then return false end
if 0 > var18688 then goto L8707 end
if var18725 > length then return false end
if var18730 ~= 0 then goto L8707 end
local var18785 = (lshift(band(P[14],15),2) + 14)
local var18786 = (var18785 + 21)
local var18787 = (var18786 + 1)
if var18787 > length then return false end
if var2 > length then return false end
if var18684 ~= 2048 then goto L8707 end
if var18686 > length then return false end
if 0 > var18688 then goto L8707 end
if var2 > length then return false end
if var18684 ~= 2048 then goto L8707 end
if var18686 > length then return false end
if 0 > var18688 then goto L8707 end
if var18699 > length then return false end
if var18701 ~= 6 then goto L8707 end
if var2 > length then return false end
if var18684 ~= 2048 then goto L8707 end
if var18686 > length then return false end
if 0 > var18688 then goto L8707 end
if var18712 > length then return false end
if 0 > var18714 then goto L8707 end
if var2 > length then return false end
if var18684 ~= 2048 then goto L8707 end
if var18686 > length then return false end
if 0 > var18688 then goto L8707 end
if var18725 > length then return false end
if var18730 ~= 0 then goto L8707 end
if var2 > length then return false end
if var18684 ~= 2048 then goto L8707 end
if var18686 > length then return false end
if 0 > var18688 then goto L8707 end
if var2 > length then return false end
if var18684 ~= 2048 then goto L8707 end
if var18686 > length then return false end
if 0 > var18688 then goto L8707 end
if var18699 > length then return false end
if var18701 ~= 6 then goto L8707 end
if var2 > length then return false end
if var18684 ~= 2048 then goto L8707 end
if var18686 > length then return false end
if 0 > var18688 then goto L8707 end
if var18712 > length then return false end
if 0 > var18714 then goto L8707 end
if var2 > length then return false end
if var18684 ~= 2048 then goto L8707 end
if var18686 > length then return false end
if 0 > var18688 then goto L8707 end
if var18725 > length then return false end
if var18730 ~= 0 then goto L8707 end
if var18787 > length then return false end
local var18907 = ((20 + P[var18786]) % 4294967296)
local var18910 = (var18785 + ((var18907 + 1) % 4294967296))
local var18911 = (var18910 + 1)
if var18911 > length then return false end
if var2 > length then return false end
if var18684 ~= 2048 then goto L8707 end
if var18686 > length then return false end
if 0 > var18688 then goto L8707 end
if var2 > length then return false end
if var18684 ~= 2048 then goto L8707 end
if var18686 > length then return false end
if 0 > var18688 then goto L8707 end
if var18699 > length then return false end
if var18701 ~= 6 then goto L8707 end
if var2 > length then return false end
if var18684 ~= 2048 then goto L8707 end
if var18686 > length then return false end
if 0 > var18688 then goto L8707 end
if var18712 > length then return false end
if 0 > var18714 then goto L8707 end
if var2 > length then return false end
if var18684 ~= 2048 then goto L8707 end
if var18686 > length then return false end
if 0 > var18688 then goto L8707 end
if var18725 > length then return false end
if var18730 ~= 0 then goto L8707 end
if var2 > length then return false end
if var18684 ~= 2048 then goto L8707 end
if var18686 > length then return false end
if 0 > var18688 then goto L8707 end
if var2 > length then return false end
if var18684 ~= 2048 then goto L8707 end
if var18686 > length then return false end
if 0 > var18688 then goto L8707 end
if var18699 > length then return false end
if var18701 ~= 6 then goto L8707 end
if var2 > length then return false end
if var18684 ~= 2048 then goto L8707 end
if var18686 > length then return false end
if 0 > var18688 then goto L8707 end
if var18712 > length then return false end
if 0 > var18714 then goto L8707 end
if var2 > length then return false end
if var18684 ~= 2048 then goto L8707 end
if var18686 > length then return false end
if 0 > var18688 then goto L8707 end
if var18725 > length then return false end
if var18730 ~= 0 then goto L8707 end
if var18787 > length then return false end
if var2 > length then return false end
if var18684 ~= 2048 then goto L8707 end
if var18686 > length then return false end
if 0 > var18688 then goto L8707 end
if var2 > length then return false end
if var18684 ~= 2048 then goto L8707 end
if var18686 > length then return false end
if 0 > var18688 then goto L8707 end
if var18699 > length then return false end
if var18701 ~= 6 then goto L8707 end
if var2 > length then return false end
if var18684 ~= 2048 then goto L8707 end
if var18686 > length then return false end
if 0 > var18688 then goto L8707 end
if var18712 > length then return false end
if 0 > var18714 then goto L8707 end
if var2 > length then return false end
if var18684 ~= 2048 then goto L8707 end
if var18686 > length then return false end
if 0 > var18688 then goto L8707 end
if var18725 > length then return false end
if var18730 ~= 0 then goto L8707 end
if var2 > length then return false end
if var18684 ~= 2048 then goto L8707 end
if var18686 > length then return false end
if 0 > var18688 then goto L8707 end
if var2 > length then return false end
if var18684 ~= 2048 then goto L8707 end
if var18686 > length then return false end
if 0 > var18688 then goto L8707 end
if var18699 > length then return false end
if var18701 ~= 6 then goto L8707 end
if var2 > length then return false end
if var18684 ~= 2048 then goto L8707 end
if var18686 > length then return false end
if 0 > var18688 then goto L8707 end
if var18712 > length then return false end
if 0 > var18714 then goto L8707 end
if var2 > length then return false end
if var18684 ~= 2048 then goto L8707 end
if var18686 > length then return false end
if 0 > var18688 then goto L8707 end
if var18725 > length then return false end
if var18730 ~= 0 then goto L8707 end
if var18787 > length then return false end
if var18911 > length then return false end
local var19173 = ((var18907 + P[var18910]) % 4294967296)
local var19176 = (var18785 + ((var19173 + 2) % 4294967296))
if (var19176 + 1) > length then return false end
local var19246 = (var18785 + ((((var19173 + 1) % 4294967296) + P[var19176]) % 4294967296))
if (var19246 + 1) > length then return false end
if P[var19246] ~= 1 then goto L8707 end
if var2 > length then return false end
local var19322 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var19322 ~= 2048 then goto L8707 end
local var19323 = (14 + 19)
local var19324 = (var19323 + 1)
if var19324 > length then return false end
local var19326 = P[var19323]
if 0 > var19326 then goto L8707 end
if var2 > length then return false end
if var19322 ~= 2048 then goto L8707 end
if var19324 > length then return false end
if 0 > var19326 then goto L8707 end
local var19336 = (14 + 9)
local var19337 = (var19336 + 1)
if var19337 > length then return false end
local var19339 = P[var19336]
if var19339 ~= 6 then goto L8707 end
if var2 > length then return false end
if var19322 ~= 2048 then goto L8707 end
if var19324 > length then return false end
if 0 > var19326 then goto L8707 end
local var19349 = (14 + 39)
local var19350 = (var19349 + 1)
if var19350 > length then return false end
local var19352 = P[var19349]
if 0 > var19352 then goto L8707 end
if var2 > length then return false end
if var19322 ~= 2048 then goto L8707 end
if var19324 > length then return false end
if 0 > var19326 then goto L8707 end
local var19362 = (14 + 6)
local var19363 = (var19362 + 2)
if var19363 > length then return false end
local var19368 = (band(rshift(bswap(cast("uint16_t*", P+var19362)[0]), 16),8191) % 4294967296)
if var19368 ~= 0 then goto L8707 end
if var2 > length then return false end
if var19322 ~= 2048 then goto L8707 end
if var19324 > length then return false end
if 0 > var19326 then goto L8707 end
if var2 > length then return false end
if var19322 ~= 2048 then goto L8707 end
if var19324 > length then return false end
if 0 > var19326 then goto L8707 end
if var19337 > length then return false end
if var19339 ~= 6 then goto L8707 end
if var2 > length then return false end
if var19322 ~= 2048 then goto L8707 end
if var19324 > length then return false end
if 0 > var19326 then goto L8707 end
if var19350 > length then return false end
if 0 > var19352 then goto L8707 end
if var2 > length then return false end
if var19322 ~= 2048 then goto L8707 end
if var19324 > length then return false end
if 0 > var19326 then goto L8707 end
if var19363 > length then return false end
if var19368 ~= 0 then goto L8707 end
local var19423 = (lshift(band(P[14],15),2) + 14)
local var19424 = (var19423 + 21)
local var19425 = (var19424 + 1)
if var19425 > length then return false end
if var2 > length then return false end
if var19322 ~= 2048 then goto L8707 end
if var19324 > length then return false end
if 0 > var19326 then goto L8707 end
if var2 > length then return false end
if var19322 ~= 2048 then goto L8707 end
if var19324 > length then return false end
if 0 > var19326 then goto L8707 end
if var19337 > length then return false end
if var19339 ~= 6 then goto L8707 end
if var2 > length then return false end
if var19322 ~= 2048 then goto L8707 end
if var19324 > length then return false end
if 0 > var19326 then goto L8707 end
if var19350 > length then return false end
if 0 > var19352 then goto L8707 end
if var2 > length then return false end
if var19322 ~= 2048 then goto L8707 end
if var19324 > length then return false end
if 0 > var19326 then goto L8707 end
if var19363 > length then return false end
if var19368 ~= 0 then goto L8707 end
if var2 > length then return false end
if var19322 ~= 2048 then goto L8707 end
if var19324 > length then return false end
if 0 > var19326 then goto L8707 end
if var2 > length then return false end
if var19322 ~= 2048 then goto L8707 end
if var19324 > length then return false end
if 0 > var19326 then goto L8707 end
if var19337 > length then return false end
if var19339 ~= 6 then goto L8707 end
if var2 > length then return false end
if var19322 ~= 2048 then goto L8707 end
if var19324 > length then return false end
if 0 > var19326 then goto L8707 end
if var19350 > length then return false end
if 0 > var19352 then goto L8707 end
if var2 > length then return false end
if var19322 ~= 2048 then goto L8707 end
if var19324 > length then return false end
if 0 > var19326 then goto L8707 end
if var19363 > length then return false end
if var19368 ~= 0 then goto L8707 end
if var19425 > length then return false end
local var19545 = ((20 + P[var19424]) % 4294967296)
local var19548 = (var19423 + ((var19545 + 1) % 4294967296))
local var19549 = (var19548 + 1)
if var19549 > length then return false end
if var2 > length then return false end
if var19322 ~= 2048 then goto L8707 end
if var19324 > length then return false end
if 0 > var19326 then goto L8707 end
if var2 > length then return false end
if var19322 ~= 2048 then goto L8707 end
if var19324 > length then return false end
if 0 > var19326 then goto L8707 end
if var19337 > length then return false end
if var19339 ~= 6 then goto L8707 end
if var2 > length then return false end
if var19322 ~= 2048 then goto L8707 end
if var19324 > length then return false end
if 0 > var19326 then goto L8707 end
if var19350 > length then return false end
if 0 > var19352 then goto L8707 end
if var2 > length then return false end
if var19322 ~= 2048 then goto L8707 end
if var19324 > length then return false end
if 0 > var19326 then goto L8707 end
if var19363 > length then return false end
if var19368 ~= 0 then goto L8707 end
if var2 > length then return false end
if var19322 ~= 2048 then goto L8707 end
if var19324 > length then return false end
if 0 > var19326 then goto L8707 end
if var2 > length then return false end
if var19322 ~= 2048 then goto L8707 end
if var19324 > length then return false end
if 0 > var19326 then goto L8707 end
if var19337 > length then return false end
if var19339 ~= 6 then goto L8707 end
if var2 > length then return false end
if var19322 ~= 2048 then goto L8707 end
if var19324 > length then return false end
if 0 > var19326 then goto L8707 end
if var19350 > length then return false end
if 0 > var19352 then goto L8707 end
if var2 > length then return false end
if var19322 ~= 2048 then goto L8707 end
if var19324 > length then return false end
if 0 > var19326 then goto L8707 end
if var19363 > length then return false end
if var19368 ~= 0 then goto L8707 end
if var19425 > length then return false end
if var2 > length then return false end
if var19322 ~= 2048 then goto L8707 end
if var19324 > length then return false end
if 0 > var19326 then goto L8707 end
if var2 > length then return false end
if var19322 ~= 2048 then goto L8707 end
if var19324 > length then return false end
if 0 > var19326 then goto L8707 end
if var19337 > length then return false end
if var19339 ~= 6 then goto L8707 end
if var2 > length then return false end
if var19322 ~= 2048 then goto L8707 end
if var19324 > length then return false end
if 0 > var19326 then goto L8707 end
if var19350 > length then return false end
if 0 > var19352 then goto L8707 end
if var2 > length then return false end
if var19322 ~= 2048 then goto L8707 end
if var19324 > length then return false end
if 0 > var19326 then goto L8707 end
if var19363 > length then return false end
if var19368 ~= 0 then goto L8707 end
if var2 > length then return false end
if var19322 ~= 2048 then goto L8707 end
if var19324 > length then return false end
if 0 > var19326 then goto L8707 end
if var2 > length then return false end
if var19322 ~= 2048 then goto L8707 end
if var19324 > length then return false end
if 0 > var19326 then goto L8707 end
if var19337 > length then return false end
if var19339 ~= 6 then goto L8707 end
if var2 > length then return false end
if var19322 ~= 2048 then goto L8707 end
if var19324 > length then return false end
if 0 > var19326 then goto L8707 end
if var19350 > length then return false end
if 0 > var19352 then goto L8707 end
if var2 > length then return false end
if var19322 ~= 2048 then goto L8707 end
if var19324 > length then return false end
if 0 > var19326 then goto L8707 end
if var19363 > length then return false end
if var19368 ~= 0 then goto L8707 end
if var19425 > length then return false end
if var19549 > length then return false end
local var19811 = ((var19545 + P[var19548]) % 4294967296)
local var19814 = (var19423 + ((var19811 + 2) % 4294967296))
if (var19814 + 1) > length then return false end
local var19886 = (var19423 + ((((((var19811 + 1) % 4294967296) + P[var19814]) % 4294967296) + 1) % 4294967296))
if (var19886 + 1) > length then return false end
if P[var19886] == 3 then return true end
goto L8707
end
::L8707::
if var2 > length then return false end
local var19964 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var19964 ~= 2048 then goto L205 end
local var19965 = (14 + 19)
local var19966 = (var19965 + 1)
if var19966 > length then return false end
local var19968 = P[var19965]
if 0 > var19968 then goto L205 end
if var2 > length then return false end
if var19964 ~= 2048 then goto L205 end
if var19966 > length then return false end
if 0 > var19968 then goto L205 end
local var19978 = (14 + 9)
local var19979 = (var19978 + 1)
if var19979 > length then return false end
local var19981 = P[var19978]
if var19981 ~= 6 then goto L205 end
if var2 > length then return false end
if var19964 ~= 2048 then goto L205 end
if var19966 > length then return false end
if 0 > var19968 then goto L205 end
local var19991 = (14 + 39)
local var19992 = (var19991 + 1)
if var19992 > length then return false end
local var19994 = P[var19991]
if 0 > var19994 then goto L205 end
if var2 > length then return false end
if var19964 ~= 2048 then goto L205 end
if var19966 > length then return false end
if 0 > var19968 then goto L205 end
local var20004 = (14 + 6)
local var20005 = (var20004 + 2)
if var20005 > length then return false end
local var20010 = (band(rshift(bswap(cast("uint16_t*", P+var20004)[0]), 16),8191) % 4294967296)
if var20010 ~= 0 then goto L205 end
if var2 > length then return false end
if var19964 ~= 2048 then goto L205 end
if var19966 > length then return false end
if 0 > var19968 then goto L205 end
if var2 > length then return false end
if var19964 ~= 2048 then goto L205 end
if var19966 > length then return false end
if 0 > var19968 then goto L205 end
if var19979 > length then return false end
if var19981 ~= 6 then goto L205 end
if var2 > length then return false end
if var19964 ~= 2048 then goto L205 end
if var19966 > length then return false end
if 0 > var19968 then goto L205 end
if var19992 > length then return false end
if 0 > var19994 then goto L205 end
if var2 > length then return false end
if var19964 ~= 2048 then goto L205 end
if var19966 > length then return false end
if 0 > var19968 then goto L205 end
if var20005 > length then return false end
if var20010 ~= 0 then goto L205 end
local var20065 = (lshift(band(P[14],15),2) + 14)
local var20066 = (var20065 + 21)
local var20067 = (var20066 + 1)
if var20067 > length then return false end
if var2 > length then return false end
if var19964 ~= 2048 then goto L205 end
if var19966 > length then return false end
if 0 > var19968 then goto L205 end
if var2 > length then return false end
if var19964 ~= 2048 then goto L205 end
if var19966 > length then return false end
if 0 > var19968 then goto L205 end
if var19979 > length then return false end
if var19981 ~= 6 then goto L205 end
if var2 > length then return false end
if var19964 ~= 2048 then goto L205 end
if var19966 > length then return false end
if 0 > var19968 then goto L205 end
if var19992 > length then return false end
if 0 > var19994 then goto L205 end
if var2 > length then return false end
if var19964 ~= 2048 then goto L205 end
if var19966 > length then return false end
if 0 > var19968 then goto L205 end
if var20005 > length then return false end
if var20010 ~= 0 then goto L205 end
if var2 > length then return false end
if var19964 ~= 2048 then goto L205 end
if var19966 > length then return false end
if 0 > var19968 then goto L205 end
if var2 > length then return false end
if var19964 ~= 2048 then goto L205 end
if var19966 > length then return false end
if 0 > var19968 then goto L205 end
if var19979 > length then return false end
if var19981 ~= 6 then goto L205 end
if var2 > length then return false end
if var19964 ~= 2048 then goto L205 end
if var19966 > length then return false end
if 0 > var19968 then goto L205 end
if var19992 > length then return false end
if 0 > var19994 then goto L205 end
if var2 > length then return false end
if var19964 ~= 2048 then goto L205 end
if var19966 > length then return false end
if 0 > var19968 then goto L205 end
if var20005 > length then return false end
if var20010 ~= 0 then goto L205 end
if var20067 > length then return false end
local var20187 = ((20 + P[var20066]) % 4294967296)
local var20190 = (var20065 + ((var20187 + 1) % 4294967296))
if (var20190 + 1) > length then return false end
local var20224 = (var20065 + ((((var20187 + P[var20190]) % 4294967296) + 1) % 4294967296))
if (var20224 + 1) > length then return false end
if P[var20224] ~= 1 then goto L205 end
if var2 > length then return false end
local var20264 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var20264 ~= 2048 then goto L11485 end
do
local var20265 = (14 + 19)
local var20266 = (var20265 + 1)
if var20266 > length then return false end
local var20268 = P[var20265]
if 0 > var20268 then goto L11485 end
if var2 > length then return false end
if var20264 ~= 2048 then goto L11485 end
if var20266 > length then return false end
if 0 > var20268 then goto L11485 end
local var20278 = (14 + 9)
local var20279 = (var20278 + 1)
if var20279 > length then return false end
local var20281 = P[var20278]
if var20281 ~= 6 then goto L11485 end
if var2 > length then return false end
if var20264 ~= 2048 then goto L11485 end
if var20266 > length then return false end
if 0 > var20268 then goto L11485 end
local var20291 = (14 + 39)
local var20292 = (var20291 + 1)
if var20292 > length then return false end
local var20294 = P[var20291]
if 0 > var20294 then goto L11485 end
if var2 > length then return false end
if var20264 ~= 2048 then goto L11485 end
if var20266 > length then return false end
if 0 > var20268 then goto L11485 end
local var20304 = (14 + 6)
local var20305 = (var20304 + 2)
if var20305 > length then return false end
local var20310 = (band(rshift(bswap(cast("uint16_t*", P+var20304)[0]), 16),8191) % 4294967296)
if var20310 ~= 0 then goto L11485 end
if var2 > length then return false end
if var20264 ~= 2048 then goto L11485 end
if var20266 > length then return false end
if 0 > var20268 then goto L11485 end
if var2 > length then return false end
if var20264 ~= 2048 then goto L11485 end
if var20266 > length then return false end
if 0 > var20268 then goto L11485 end
if var20279 > length then return false end
if var20281 ~= 6 then goto L11485 end
if var2 > length then return false end
if var20264 ~= 2048 then goto L11485 end
if var20266 > length then return false end
if 0 > var20268 then goto L11485 end
if var20292 > length then return false end
if 0 > var20294 then goto L11485 end
if var2 > length then return false end
if var20264 ~= 2048 then goto L11485 end
if var20266 > length then return false end
if 0 > var20268 then goto L11485 end
if var20305 > length then return false end
if var20310 ~= 0 then goto L11485 end
local var20365 = (lshift(band(P[14],15),2) + 14)
local var20366 = (var20365 + 21)
local var20367 = (var20366 + 1)
if var20367 > length then return false end
if var2 > length then return false end
if var20264 ~= 2048 then goto L11485 end
if var20266 > length then return false end
if 0 > var20268 then goto L11485 end
if var2 > length then return false end
if var20264 ~= 2048 then goto L11485 end
if var20266 > length then return false end
if 0 > var20268 then goto L11485 end
if var20279 > length then return false end
if var20281 ~= 6 then goto L11485 end
if var2 > length then return false end
if var20264 ~= 2048 then goto L11485 end
if var20266 > length then return false end
if 0 > var20268 then goto L11485 end
if var20292 > length then return false end
if 0 > var20294 then goto L11485 end
if var2 > length then return false end
if var20264 ~= 2048 then goto L11485 end
if var20266 > length then return false end
if 0 > var20268 then goto L11485 end
if var20305 > length then return false end
if var20310 ~= 0 then goto L11485 end
if var2 > length then return false end
if var20264 ~= 2048 then goto L11485 end
if var20266 > length then return false end
if 0 > var20268 then goto L11485 end
if var2 > length then return false end
if var20264 ~= 2048 then goto L11485 end
if var20266 > length then return false end
if 0 > var20268 then goto L11485 end
if var20279 > length then return false end
if var20281 ~= 6 then goto L11485 end
if var2 > length then return false end
if var20264 ~= 2048 then goto L11485 end
if var20266 > length then return false end
if 0 > var20268 then goto L11485 end
if var20292 > length then return false end
if 0 > var20294 then goto L11485 end
if var2 > length then return false end
if var20264 ~= 2048 then goto L11485 end
if var20266 > length then return false end
if 0 > var20268 then goto L11485 end
if var20305 > length then return false end
if var20310 ~= 0 then goto L11485 end
if var20367 > length then return false end
local var20487 = ((20 + P[var20366]) % 4294967296)
local var20490 = (var20365 + ((var20487 + 1) % 4294967296))
if (var20490 + 1) > length then return false end
local var20524 = (var20365 + ((((var20487 + P[var20490]) % 4294967296) + 2) % 4294967296))
if (var20524 + 1) > length then return false end
if P[var20524] == 3 then return true end
goto L11485
end
::L11485::
if var2 > length then return false end
local var20564 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var20564 ~= 2048 then goto L11483 end
do
local var20565 = (14 + 19)
local var20566 = (var20565 + 1)
if var20566 > length then return false end
local var20568 = P[var20565]
if 0 > var20568 then goto L11483 end
if var2 > length then return false end
if var20564 ~= 2048 then goto L11483 end
if var20566 > length then return false end
if 0 > var20568 then goto L11483 end
local var20578 = (14 + 9)
local var20579 = (var20578 + 1)
if var20579 > length then return false end
local var20581 = P[var20578]
if var20581 ~= 6 then goto L11483 end
if var2 > length then return false end
if var20564 ~= 2048 then goto L11483 end
if var20566 > length then return false end
if 0 > var20568 then goto L11483 end
local var20591 = (14 + 39)
local var20592 = (var20591 + 1)
if var20592 > length then return false end
local var20594 = P[var20591]
if 0 > var20594 then goto L11483 end
if var2 > length then return false end
if var20564 ~= 2048 then goto L11483 end
if var20566 > length then return false end
if 0 > var20568 then goto L11483 end
local var20604 = (14 + 6)
local var20605 = (var20604 + 2)
if var20605 > length then return false end
local var20610 = (band(rshift(bswap(cast("uint16_t*", P+var20604)[0]), 16),8191) % 4294967296)
if var20610 ~= 0 then goto L11483 end
if var2 > length then return false end
if var20564 ~= 2048 then goto L11483 end
if var20566 > length then return false end
if 0 > var20568 then goto L11483 end
if var2 > length then return false end
if var20564 ~= 2048 then goto L11483 end
if var20566 > length then return false end
if 0 > var20568 then goto L11483 end
if var20579 > length then return false end
if var20581 ~= 6 then goto L11483 end
if var2 > length then return false end
if var20564 ~= 2048 then goto L11483 end
if var20566 > length then return false end
if 0 > var20568 then goto L11483 end
if var20592 > length then return false end
if 0 > var20594 then goto L11483 end
if var2 > length then return false end
if var20564 ~= 2048 then goto L11483 end
if var20566 > length then return false end
if 0 > var20568 then goto L11483 end
if var20605 > length then return false end
if var20610 ~= 0 then goto L11483 end
local var20665 = (lshift(band(P[14],15),2) + 14)
local var20666 = (var20665 + 21)
local var20667 = (var20666 + 1)
if var20667 > length then return false end
if var2 > length then return false end
if var20564 ~= 2048 then goto L11483 end
if var20566 > length then return false end
if 0 > var20568 then goto L11483 end
if var2 > length then return false end
if var20564 ~= 2048 then goto L11483 end
if var20566 > length then return false end
if 0 > var20568 then goto L11483 end
if var20579 > length then return false end
if var20581 ~= 6 then goto L11483 end
if var2 > length then return false end
if var20564 ~= 2048 then goto L11483 end
if var20566 > length then return false end
if 0 > var20568 then goto L11483 end
if var20592 > length then return false end
if 0 > var20594 then goto L11483 end
if var2 > length then return false end
if var20564 ~= 2048 then goto L11483 end
if var20566 > length then return false end
if 0 > var20568 then goto L11483 end
if var20605 > length then return false end
if var20610 ~= 0 then goto L11483 end
if var2 > length then return false end
if var20564 ~= 2048 then goto L11483 end
if var20566 > length then return false end
if 0 > var20568 then goto L11483 end
if var2 > length then return false end
if var20564 ~= 2048 then goto L11483 end
if var20566 > length then return false end
if 0 > var20568 then goto L11483 end
if var20579 > length then return false end
if var20581 ~= 6 then goto L11483 end
if var2 > length then return false end
if var20564 ~= 2048 then goto L11483 end
if var20566 > length then return false end
if 0 > var20568 then goto L11483 end
if var20592 > length then return false end
if 0 > var20594 then goto L11483 end
if var2 > length then return false end
if var20564 ~= 2048 then goto L11483 end
if var20566 > length then return false end
if 0 > var20568 then goto L11483 end
if var20605 > length then return false end
if var20610 ~= 0 then goto L11483 end
if var20667 > length then return false end
local var20787 = ((20 + P[var20666]) % 4294967296)
local var20790 = (var20665 + ((var20787 + 1) % 4294967296))
if (var20790 + 1) > length then return false end
local var20824 = (var20665 + ((((var20787 + P[var20790]) % 4294967296) + 2) % 4294967296))
if (var20824 + 1) > length then return false end
if P[var20824] == 1 then goto L11483 end
if var2 > length then return false end
local var20864 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var20864 ~= 2048 then goto L11483 end
local var20865 = (14 + 19)
local var20866 = (var20865 + 1)
if var20866 > length then return false end
local var20868 = P[var20865]
if 0 > var20868 then goto L11483 end
if var2 > length then return false end
if var20864 ~= 2048 then goto L11483 end
if var20866 > length then return false end
if 0 > var20868 then goto L11483 end
local var20878 = (14 + 9)
local var20879 = (var20878 + 1)
if var20879 > length then return false end
local var20881 = P[var20878]
if var20881 ~= 6 then goto L11483 end
if var2 > length then return false end
if var20864 ~= 2048 then goto L11483 end
if var20866 > length then return false end
if 0 > var20868 then goto L11483 end
local var20891 = (14 + 39)
local var20892 = (var20891 + 1)
if var20892 > length then return false end
local var20894 = P[var20891]
if 0 > var20894 then goto L11483 end
if var2 > length then return false end
if var20864 ~= 2048 then goto L11483 end
if var20866 > length then return false end
if 0 > var20868 then goto L11483 end
local var20904 = (14 + 6)
local var20905 = (var20904 + 2)
if var20905 > length then return false end
local var20910 = (band(rshift(bswap(cast("uint16_t*", P+var20904)[0]), 16),8191) % 4294967296)
if var20910 ~= 0 then goto L11483 end
if var2 > length then return false end
if var20864 ~= 2048 then goto L11483 end
if var20866 > length then return false end
if 0 > var20868 then goto L11483 end
if var2 > length then return false end
if var20864 ~= 2048 then goto L11483 end
if var20866 > length then return false end
if 0 > var20868 then goto L11483 end
if var20879 > length then return false end
if var20881 ~= 6 then goto L11483 end
if var2 > length then return false end
if var20864 ~= 2048 then goto L11483 end
if var20866 > length then return false end
if 0 > var20868 then goto L11483 end
if var20892 > length then return false end
if 0 > var20894 then goto L11483 end
if var2 > length then return false end
if var20864 ~= 2048 then goto L11483 end
if var20866 > length then return false end
if 0 > var20868 then goto L11483 end
if var20905 > length then return false end
if var20910 ~= 0 then goto L11483 end
local var20965 = (lshift(band(P[14],15),2) + 14)
local var20966 = (var20965 + 21)
local var20967 = (var20966 + 1)
if var20967 > length then return false end
if var2 > length then return false end
if var20864 ~= 2048 then goto L11483 end
if var20866 > length then return false end
if 0 > var20868 then goto L11483 end
if var2 > length then return false end
if var20864 ~= 2048 then goto L11483 end
if var20866 > length then return false end
if 0 > var20868 then goto L11483 end
if var20879 > length then return false end
if var20881 ~= 6 then goto L11483 end
if var2 > length then return false end
if var20864 ~= 2048 then goto L11483 end
if var20866 > length then return false end
if 0 > var20868 then goto L11483 end
if var20892 > length then return false end
if 0 > var20894 then goto L11483 end
if var2 > length then return false end
if var20864 ~= 2048 then goto L11483 end
if var20866 > length then return false end
if 0 > var20868 then goto L11483 end
if var20905 > length then return false end
if var20910 ~= 0 then goto L11483 end
if var2 > length then return false end
if var20864 ~= 2048 then goto L11483 end
if var20866 > length then return false end
if 0 > var20868 then goto L11483 end
if var2 > length then return false end
if var20864 ~= 2048 then goto L11483 end
if var20866 > length then return false end
if 0 > var20868 then goto L11483 end
if var20879 > length then return false end
if var20881 ~= 6 then goto L11483 end
if var2 > length then return false end
if var20864 ~= 2048 then goto L11483 end
if var20866 > length then return false end
if 0 > var20868 then goto L11483 end
if var20892 > length then return false end
if 0 > var20894 then goto L11483 end
if var2 > length then return false end
if var20864 ~= 2048 then goto L11483 end
if var20866 > length then return false end
if 0 > var20868 then goto L11483 end
if var20905 > length then return false end
if var20910 ~= 0 then goto L11483 end
if var20967 > length then return false end
local var21087 = ((20 + P[var20966]) % 4294967296)
local var21090 = (var20965 + ((var21087 + 1) % 4294967296))
local var21091 = (var21090 + 1)
if var21091 > length then return false end
if var2 > length then return false end
if var20864 ~= 2048 then goto L11483 end
if var20866 > length then return false end
if 0 > var20868 then goto L11483 end
if var2 > length then return false end
if var20864 ~= 2048 then goto L11483 end
if var20866 > length then return false end
if 0 > var20868 then goto L11483 end
if var20879 > length then return false end
if var20881 ~= 6 then goto L11483 end
if var2 > length then return false end
if var20864 ~= 2048 then goto L11483 end
if var20866 > length then return false end
if 0 > var20868 then goto L11483 end
if var20892 > length then return false end
if 0 > var20894 then goto L11483 end
if var2 > length then return false end
if var20864 ~= 2048 then goto L11483 end
if var20866 > length then return false end
if 0 > var20868 then goto L11483 end
if var20905 > length then return false end
if var20910 ~= 0 then goto L11483 end
if var2 > length then return false end
if var20864 ~= 2048 then goto L11483 end
if var20866 > length then return false end
if 0 > var20868 then goto L11483 end
if var2 > length then return false end
if var20864 ~= 2048 then goto L11483 end
if var20866 > length then return false end
if 0 > var20868 then goto L11483 end
if var20879 > length then return false end
if var20881 ~= 6 then goto L11483 end
if var2 > length then return false end
if var20864 ~= 2048 then goto L11483 end
if var20866 > length then return false end
if 0 > var20868 then goto L11483 end
if var20892 > length then return false end
if 0 > var20894 then goto L11483 end
if var2 > length then return false end
if var20864 ~= 2048 then goto L11483 end
if var20866 > length then return false end
if 0 > var20868 then goto L11483 end
if var20905 > length then return false end
if var20910 ~= 0 then goto L11483 end
if var20967 > length then return false end
if var2 > length then return false end
if var20864 ~= 2048 then goto L11483 end
if var20866 > length then return false end
if 0 > var20868 then goto L11483 end
if var2 > length then return false end
if var20864 ~= 2048 then goto L11483 end
if var20866 > length then return false end
if 0 > var20868 then goto L11483 end
if var20879 > length then return false end
if var20881 ~= 6 then goto L11483 end
if var2 > length then return false end
if var20864 ~= 2048 then goto L11483 end
if var20866 > length then return false end
if 0 > var20868 then goto L11483 end
if var20892 > length then return false end
if 0 > var20894 then goto L11483 end
if var2 > length then return false end
if var20864 ~= 2048 then goto L11483 end
if var20866 > length then return false end
if 0 > var20868 then goto L11483 end
if var20905 > length then return false end
if var20910 ~= 0 then goto L11483 end
if var2 > length then return false end
if var20864 ~= 2048 then goto L11483 end
if var20866 > length then return false end
if 0 > var20868 then goto L11483 end
if var2 > length then return false end
if var20864 ~= 2048 then goto L11483 end
if var20866 > length then return false end
if 0 > var20868 then goto L11483 end
if var20879 > length then return false end
if var20881 ~= 6 then goto L11483 end
if var2 > length then return false end
if var20864 ~= 2048 then goto L11483 end
if var20866 > length then return false end
if 0 > var20868 then goto L11483 end
if var20892 > length then return false end
if 0 > var20894 then goto L11483 end
if var2 > length then return false end
if var20864 ~= 2048 then goto L11483 end
if var20866 > length then return false end
if 0 > var20868 then goto L11483 end
if var20905 > length then return false end
if var20910 ~= 0 then goto L11483 end
if var20967 > length then return false end
if var21091 > length then return false end
local var21353 = ((var21087 + P[var21090]) % 4294967296)
local var21356 = (var20965 + ((var21353 + 3) % 4294967296))
if (var21356 + 1) > length then return false end
local var21426 = (var20965 + ((((var21353 + 2) % 4294967296) + P[var21356]) % 4294967296))
if (var21426 + 1) > length then return false end
if P[var21426] == 3 then return true end
goto L11483
end
::L11483::
if var2 > length then return false end
local var21502 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var21502 ~= 2048 then goto L205 end
local var21503 = (14 + 19)
local var21504 = (var21503 + 1)
if var21504 > length then return false end
local var21506 = P[var21503]
if 0 > var21506 then goto L205 end
if var2 > length then return false end
if var21502 ~= 2048 then goto L205 end
if var21504 > length then return false end
if 0 > var21506 then goto L205 end
local var21516 = (14 + 9)
local var21517 = (var21516 + 1)
if var21517 > length then return false end
local var21519 = P[var21516]
if var21519 ~= 6 then goto L205 end
if var2 > length then return false end
if var21502 ~= 2048 then goto L205 end
if var21504 > length then return false end
if 0 > var21506 then goto L205 end
local var21529 = (14 + 39)
local var21530 = (var21529 + 1)
if var21530 > length then return false end
local var21532 = P[var21529]
if 0 > var21532 then goto L205 end
if var2 > length then return false end
if var21502 ~= 2048 then goto L205 end
if var21504 > length then return false end
if 0 > var21506 then goto L205 end
local var21542 = (14 + 6)
local var21543 = (var21542 + 2)
if var21543 > length then return false end
local var21548 = (band(rshift(bswap(cast("uint16_t*", P+var21542)[0]), 16),8191) % 4294967296)
if var21548 ~= 0 then goto L205 end
if var2 > length then return false end
if var21502 ~= 2048 then goto L205 end
if var21504 > length then return false end
if 0 > var21506 then goto L205 end
if var2 > length then return false end
if var21502 ~= 2048 then goto L205 end
if var21504 > length then return false end
if 0 > var21506 then goto L205 end
if var21517 > length then return false end
if var21519 ~= 6 then goto L205 end
if var2 > length then return false end
if var21502 ~= 2048 then goto L205 end
if var21504 > length then return false end
if 0 > var21506 then goto L205 end
if var21530 > length then return false end
if 0 > var21532 then goto L205 end
if var2 > length then return false end
if var21502 ~= 2048 then goto L205 end
if var21504 > length then return false end
if 0 > var21506 then goto L205 end
if var21543 > length then return false end
if var21548 ~= 0 then goto L205 end
local var21603 = (lshift(band(P[14],15),2) + 14)
local var21604 = (var21603 + 21)
local var21605 = (var21604 + 1)
if var21605 > length then return false end
if var2 > length then return false end
if var21502 ~= 2048 then goto L205 end
if var21504 > length then return false end
if 0 > var21506 then goto L205 end
if var2 > length then return false end
if var21502 ~= 2048 then goto L205 end
if var21504 > length then return false end
if 0 > var21506 then goto L205 end
if var21517 > length then return false end
if var21519 ~= 6 then goto L205 end
if var2 > length then return false end
if var21502 ~= 2048 then goto L205 end
if var21504 > length then return false end
if 0 > var21506 then goto L205 end
if var21530 > length then return false end
if 0 > var21532 then goto L205 end
if var2 > length then return false end
if var21502 ~= 2048 then goto L205 end
if var21504 > length then return false end
if 0 > var21506 then goto L205 end
if var21543 > length then return false end
if var21548 ~= 0 then goto L205 end
if var2 > length then return false end
if var21502 ~= 2048 then goto L205 end
if var21504 > length then return false end
if 0 > var21506 then goto L205 end
if var2 > length then return false end
if var21502 ~= 2048 then goto L205 end
if var21504 > length then return false end
if 0 > var21506 then goto L205 end
if var21517 > length then return false end
if var21519 ~= 6 then goto L205 end
if var2 > length then return false end
if var21502 ~= 2048 then goto L205 end
if var21504 > length then return false end
if 0 > var21506 then goto L205 end
if var21530 > length then return false end
if 0 > var21532 then goto L205 end
if var2 > length then return false end
if var21502 ~= 2048 then goto L205 end
if var21504 > length then return false end
if 0 > var21506 then goto L205 end
if var21543 > length then return false end
if var21548 ~= 0 then goto L205 end
if var21605 > length then return false end
local var21725 = ((20 + P[var21604]) % 4294967296)
local var21728 = (var21603 + ((var21725 + 1) % 4294967296))
if (var21728 + 1) > length then return false end
local var21762 = (var21603 + ((((var21725 + P[var21728]) % 4294967296) + 2) % 4294967296))
if (var21762 + 1) > length then return false end
if P[var21762] ~= 1 then goto L205 end
if var2 > length then return false end
local var21802 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var21802 ~= 2048 then goto L205 end
local var21803 = (14 + 19)
local var21804 = (var21803 + 1)
if var21804 > length then return false end
local var21806 = P[var21803]
if 0 > var21806 then goto L205 end
if var2 > length then return false end
if var21802 ~= 2048 then goto L205 end
if var21804 > length then return false end
if 0 > var21806 then goto L205 end
local var21816 = (14 + 9)
local var21817 = (var21816 + 1)
if var21817 > length then return false end
local var21819 = P[var21816]
if var21819 ~= 6 then goto L205 end
if var2 > length then return false end
if var21802 ~= 2048 then goto L205 end
if var21804 > length then return false end
if 0 > var21806 then goto L205 end
local var21829 = (14 + 39)
local var21830 = (var21829 + 1)
if var21830 > length then return false end
local var21832 = P[var21829]
if 0 > var21832 then goto L205 end
if var2 > length then return false end
if var21802 ~= 2048 then goto L205 end
if var21804 > length then return false end
if 0 > var21806 then goto L205 end
local var21842 = (14 + 6)
local var21843 = (var21842 + 2)
if var21843 > length then return false end
local var21848 = (band(rshift(bswap(cast("uint16_t*", P+var21842)[0]), 16),8191) % 4294967296)
if var21848 ~= 0 then goto L205 end
if var2 > length then return false end
if var21802 ~= 2048 then goto L205 end
if var21804 > length then return false end
if 0 > var21806 then goto L205 end
if var2 > length then return false end
if var21802 ~= 2048 then goto L205 end
if var21804 > length then return false end
if 0 > var21806 then goto L205 end
if var21817 > length then return false end
if var21819 ~= 6 then goto L205 end
if var2 > length then return false end
if var21802 ~= 2048 then goto L205 end
if var21804 > length then return false end
if 0 > var21806 then goto L205 end
if var21830 > length then return false end
if 0 > var21832 then goto L205 end
if var2 > length then return false end
if var21802 ~= 2048 then goto L205 end
if var21804 > length then return false end
if 0 > var21806 then goto L205 end
if var21843 > length then return false end
if var21848 ~= 0 then goto L205 end
local var21903 = (lshift(band(P[14],15),2) + 14)
local var21904 = (var21903 + 21)
local var21905 = (var21904 + 1)
if var21905 > length then return false end
if var2 > length then return false end
if var21802 ~= 2048 then goto L205 end
if var21804 > length then return false end
if 0 > var21806 then goto L205 end
if var2 > length then return false end
if var21802 ~= 2048 then goto L205 end
if var21804 > length then return false end
if 0 > var21806 then goto L205 end
if var21817 > length then return false end
if var21819 ~= 6 then goto L205 end
if var2 > length then return false end
if var21802 ~= 2048 then goto L205 end
if var21804 > length then return false end
if 0 > var21806 then goto L205 end
if var21830 > length then return false end
if 0 > var21832 then goto L205 end
if var2 > length then return false end
if var21802 ~= 2048 then goto L205 end
if var21804 > length then return false end
if 0 > var21806 then goto L205 end
if var21843 > length then return false end
if var21848 ~= 0 then goto L205 end
if var2 > length then return false end
if var21802 ~= 2048 then goto L205 end
if var21804 > length then return false end
if 0 > var21806 then goto L205 end
if var2 > length then return false end
if var21802 ~= 2048 then goto L205 end
if var21804 > length then return false end
if 0 > var21806 then goto L205 end
if var21817 > length then return false end
if var21819 ~= 6 then goto L205 end
if var2 > length then return false end
if var21802 ~= 2048 then goto L205 end
if var21804 > length then return false end
if 0 > var21806 then goto L205 end
if var21830 > length then return false end
if 0 > var21832 then goto L205 end
if var2 > length then return false end
if var21802 ~= 2048 then goto L205 end
if var21804 > length then return false end
if 0 > var21806 then goto L205 end
if var21843 > length then return false end
if var21848 ~= 0 then goto L205 end
if var21905 > length then return false end
local var22025 = ((20 + P[var21904]) % 4294967296)
local var22028 = (var21903 + ((var22025 + 1) % 4294967296))
if (var22028 + 1) > length then return false end
local var22062 = (var21903 + ((((var22025 + P[var22028]) % 4294967296) + 3) % 4294967296))
if (var22062 + 1) > length then return false end
if P[var22062] == 3 then return true end
goto L205
end
::L205::
if var2 > length then return false end
local var22102 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var22102 ~= 2048 then goto L107 end
local var22103 = (14 + 19)
local var22104 = (var22103 + 1)
if var22104 > length then return false end
local var22106 = P[var22103]
if 0 > var22106 then goto L107 end
if var2 > length then return false end
if var22102 ~= 2048 then goto L107 end
if var22104 > length then return false end
if 0 > var22106 then goto L107 end
local var22116 = (14 + 9)
local var22117 = (var22116 + 1)
if var22117 > length then return false end
local var22119 = P[var22116]
if var22119 ~= 6 then goto L107 end
if var2 > length then return false end
if var22102 ~= 2048 then goto L107 end
if var22104 > length then return false end
if 0 > var22106 then goto L107 end
local var22129 = (14 + 39)
local var22130 = (var22129 + 1)
if var22130 > length then return false end
local var22132 = P[var22129]
if 0 > var22132 then goto L107 end
if var2 > length then return false end
if var22102 ~= 2048 then goto L107 end
if var22104 > length then return false end
if 0 > var22106 then goto L107 end
local var22142 = (14 + 6)
local var22143 = (var22142 + 2)
if var22143 > length then return false end
local var22148 = (band(rshift(bswap(cast("uint16_t*", P+var22142)[0]), 16),8191) % 4294967296)
if var22148 ~= 0 then goto L107 end
if var2 > length then return false end
if var22102 ~= 2048 then goto L107 end
if var22104 > length then return false end
if 0 > var22106 then goto L107 end
if var2 > length then return false end
if var22102 ~= 2048 then goto L107 end
if var22104 > length then return false end
if 0 > var22106 then goto L107 end
if var22117 > length then return false end
if var22119 ~= 6 then goto L107 end
if var2 > length then return false end
if var22102 ~= 2048 then goto L107 end
if var22104 > length then return false end
if 0 > var22106 then goto L107 end
if var22130 > length then return false end
if 0 > var22132 then goto L107 end
if var2 > length then return false end
if var22102 ~= 2048 then goto L107 end
if var22104 > length then return false end
if 0 > var22106 then goto L107 end
if var22143 > length then return false end
if var22148 ~= 0 then goto L107 end
local var22203 = (lshift(band(P[14],15),2) + 14)
local var22204 = (var22203 + 21)
if (var22204 + 1) > length then return false end
local var22218 = (var22203 + ((20 + P[var22204]) % 4294967296))
if (var22218 + 1) > length then return false end
if P[var22218] ~= 1 then goto L107 end
if var2 > length then return false end
local var22238 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var22238 ~= 2048 then goto L12691 end
do
local var22239 = (14 + 19)
local var22240 = (var22239 + 1)
if var22240 > length then return false end
local var22242 = P[var22239]
if 0 > var22242 then goto L12691 end
if var2 > length then return false end
if var22238 ~= 2048 then goto L12691 end
if var22240 > length then return false end
if 0 > var22242 then goto L12691 end
local var22252 = (14 + 9)
local var22253 = (var22252 + 1)
if var22253 > length then return false end
local var22255 = P[var22252]
if var22255 ~= 6 then goto L12691 end
if var2 > length then return false end
if var22238 ~= 2048 then goto L12691 end
if var22240 > length then return false end
if 0 > var22242 then goto L12691 end
local var22265 = (14 + 39)
local var22266 = (var22265 + 1)
if var22266 > length then return false end
local var22268 = P[var22265]
if 0 > var22268 then goto L12691 end
if var2 > length then return false end
if var22238 ~= 2048 then goto L12691 end
if var22240 > length then return false end
if 0 > var22242 then goto L12691 end
local var22278 = (14 + 6)
local var22279 = (var22278 + 2)
if var22279 > length then return false end
local var22284 = (band(rshift(bswap(cast("uint16_t*", P+var22278)[0]), 16),8191) % 4294967296)
if var22284 ~= 0 then goto L12691 end
if var2 > length then return false end
if var22238 ~= 2048 then goto L12691 end
if var22240 > length then return false end
if 0 > var22242 then goto L12691 end
if var2 > length then return false end
if var22238 ~= 2048 then goto L12691 end
if var22240 > length then return false end
if 0 > var22242 then goto L12691 end
if var22253 > length then return false end
if var22255 ~= 6 then goto L12691 end
if var2 > length then return false end
if var22238 ~= 2048 then goto L12691 end
if var22240 > length then return false end
if 0 > var22242 then goto L12691 end
if var22266 > length then return false end
if 0 > var22268 then goto L12691 end
if var2 > length then return false end
if var22238 ~= 2048 then goto L12691 end
if var22240 > length then return false end
if 0 > var22242 then goto L12691 end
if var22279 > length then return false end
if var22284 ~= 0 then goto L12691 end
local var22339 = (lshift(band(P[14],15),2) + 14)
local var22340 = (var22339 + 21)
if (var22340 + 1) > length then return false end
local var22356 = (var22339 + ((((20 + P[var22340]) % 4294967296) + 1) % 4294967296))
if (var22356 + 1) > length then return false end
if P[var22356] == 3 then return true end
goto L12691
end
::L12691::
if var2 > length then return false end
local var22378 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var22378 ~= 2048 then goto L12689 end
do
local var22379 = (14 + 19)
local var22380 = (var22379 + 1)
if var22380 > length then return false end
local var22382 = P[var22379]
if 0 > var22382 then goto L12689 end
if var2 > length then return false end
if var22378 ~= 2048 then goto L12689 end
if var22380 > length then return false end
if 0 > var22382 then goto L12689 end
local var22392 = (14 + 9)
local var22393 = (var22392 + 1)
if var22393 > length then return false end
local var22395 = P[var22392]
if var22395 ~= 6 then goto L12689 end
if var2 > length then return false end
if var22378 ~= 2048 then goto L12689 end
if var22380 > length then return false end
if 0 > var22382 then goto L12689 end
local var22405 = (14 + 39)
local var22406 = (var22405 + 1)
if var22406 > length then return false end
local var22408 = P[var22405]
if 0 > var22408 then goto L12689 end
if var2 > length then return false end
if var22378 ~= 2048 then goto L12689 end
if var22380 > length then return false end
if 0 > var22382 then goto L12689 end
local var22418 = (14 + 6)
local var22419 = (var22418 + 2)
if var22419 > length then return false end
local var22424 = (band(rshift(bswap(cast("uint16_t*", P+var22418)[0]), 16),8191) % 4294967296)
if var22424 ~= 0 then goto L12689 end
if var2 > length then return false end
if var22378 ~= 2048 then goto L12689 end
if var22380 > length then return false end
if 0 > var22382 then goto L12689 end
if var2 > length then return false end
if var22378 ~= 2048 then goto L12689 end
if var22380 > length then return false end
if 0 > var22382 then goto L12689 end
if var22393 > length then return false end
if var22395 ~= 6 then goto L12689 end
if var2 > length then return false end
if var22378 ~= 2048 then goto L12689 end
if var22380 > length then return false end
if 0 > var22382 then goto L12689 end
if var22406 > length then return false end
if 0 > var22408 then goto L12689 end
if var2 > length then return false end
if var22378 ~= 2048 then goto L12689 end
if var22380 > length then return false end
if 0 > var22382 then goto L12689 end
if var22419 > length then return false end
if var22424 ~= 0 then goto L12689 end
local var22479 = (lshift(band(P[14],15),2) + 14)
local var22480 = (var22479 + 21)
if (var22480 + 1) > length then return false end
local var22496 = (var22479 + ((((20 + P[var22480]) % 4294967296) + 1) % 4294967296))
if (var22496 + 1) > length then return false end
if P[var22496] == 1 then goto L12689 end
if var2 > length then return false end
local var22518 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var22518 ~= 2048 then goto L12881 end
do
local var22519 = (14 + 19)
local var22520 = (var22519 + 1)
if var22520 > length then return false end
local var22522 = P[var22519]
if 0 > var22522 then goto L12881 end
if var2 > length then return false end
if var22518 ~= 2048 then goto L12881 end
if var22520 > length then return false end
if 0 > var22522 then goto L12881 end
local var22532 = (14 + 9)
local var22533 = (var22532 + 1)
if var22533 > length then return false end
local var22535 = P[var22532]
if var22535 ~= 6 then goto L12881 end
if var2 > length then return false end
if var22518 ~= 2048 then goto L12881 end
if var22520 > length then return false end
if 0 > var22522 then goto L12881 end
local var22545 = (14 + 39)
local var22546 = (var22545 + 1)
if var22546 > length then return false end
local var22548 = P[var22545]
if 0 > var22548 then goto L12881 end
if var2 > length then return false end
if var22518 ~= 2048 then goto L12881 end
if var22520 > length then return false end
if 0 > var22522 then goto L12881 end
local var22558 = (14 + 6)
local var22559 = (var22558 + 2)
if var22559 > length then return false end
local var22564 = (band(rshift(bswap(cast("uint16_t*", P+var22558)[0]), 16),8191) % 4294967296)
if var22564 ~= 0 then goto L12881 end
if var2 > length then return false end
if var22518 ~= 2048 then goto L12881 end
if var22520 > length then return false end
if 0 > var22522 then goto L12881 end
if var2 > length then return false end
if var22518 ~= 2048 then goto L12881 end
if var22520 > length then return false end
if 0 > var22522 then goto L12881 end
if var22533 > length then return false end
if var22535 ~= 6 then goto L12881 end
if var2 > length then return false end
if var22518 ~= 2048 then goto L12881 end
if var22520 > length then return false end
if 0 > var22522 then goto L12881 end
if var22546 > length then return false end
if 0 > var22548 then goto L12881 end
if var2 > length then return false end
if var22518 ~= 2048 then goto L12881 end
if var22520 > length then return false end
if 0 > var22522 then goto L12881 end
if var22559 > length then return false end
if var22564 ~= 0 then goto L12881 end
local var22619 = (lshift(band(P[14],15),2) + 14)
local var22620 = (var22619 + 21)
local var22621 = (var22620 + 1)
if var22621 > length then return false end
if var2 > length then return false end
if var22518 ~= 2048 then goto L12881 end
if var22520 > length then return false end
if 0 > var22522 then goto L12881 end
if var2 > length then return false end
if var22518 ~= 2048 then goto L12881 end
if var22520 > length then return false end
if 0 > var22522 then goto L12881 end
if var22533 > length then return false end
if var22535 ~= 6 then goto L12881 end
if var2 > length then return false end
if var22518 ~= 2048 then goto L12881 end
if var22520 > length then return false end
if 0 > var22522 then goto L12881 end
if var22546 > length then return false end
if 0 > var22548 then goto L12881 end
if var2 > length then return false end
if var22518 ~= 2048 then goto L12881 end
if var22520 > length then return false end
if 0 > var22522 then goto L12881 end
if var22559 > length then return false end
if var22564 ~= 0 then goto L12881 end
if var2 > length then return false end
if var22518 ~= 2048 then goto L12881 end
if var22520 > length then return false end
if 0 > var22522 then goto L12881 end
if var2 > length then return false end
if var22518 ~= 2048 then goto L12881 end
if var22520 > length then return false end
if 0 > var22522 then goto L12881 end
if var22533 > length then return false end
if var22535 ~= 6 then goto L12881 end
if var2 > length then return false end
if var22518 ~= 2048 then goto L12881 end
if var22520 > length then return false end
if 0 > var22522 then goto L12881 end
if var22546 > length then return false end
if 0 > var22548 then goto L12881 end
if var2 > length then return false end
if var22518 ~= 2048 then goto L12881 end
if var22520 > length then return false end
if 0 > var22522 then goto L12881 end
if var22559 > length then return false end
if var22564 ~= 0 then goto L12881 end
if var22621 > length then return false end
local var22741 = ((20 + P[var22620]) % 4294967296)
local var22744 = (var22619 + ((var22741 + 2) % 4294967296))
if (var22744 + 1) > length then return false end
local var22778 = (var22619 + ((((var22741 + 1) % 4294967296) + P[var22744]) % 4294967296))
if (var22778 + 1) > length then return false end
if P[var22778] == 3 then return true end
goto L12881
end
::L12881::
if var2 > length then return false end
local var22818 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var22818 ~= 2048 then goto L12879 end
do
local var22819 = (14 + 19)
local var22820 = (var22819 + 1)
if var22820 > length then return false end
local var22822 = P[var22819]
if 0 > var22822 then goto L12879 end
if var2 > length then return false end
if var22818 ~= 2048 then goto L12879 end
if var22820 > length then return false end
if 0 > var22822 then goto L12879 end
local var22832 = (14 + 9)
local var22833 = (var22832 + 1)
if var22833 > length then return false end
local var22835 = P[var22832]
if var22835 ~= 6 then goto L12879 end
if var2 > length then return false end
if var22818 ~= 2048 then goto L12879 end
if var22820 > length then return false end
if 0 > var22822 then goto L12879 end
local var22845 = (14 + 39)
local var22846 = (var22845 + 1)
if var22846 > length then return false end
local var22848 = P[var22845]
if 0 > var22848 then goto L12879 end
if var2 > length then return false end
if var22818 ~= 2048 then goto L12879 end
if var22820 > length then return false end
if 0 > var22822 then goto L12879 end
local var22858 = (14 + 6)
local var22859 = (var22858 + 2)
if var22859 > length then return false end
local var22864 = (band(rshift(bswap(cast("uint16_t*", P+var22858)[0]), 16),8191) % 4294967296)
if var22864 ~= 0 then goto L12879 end
if var2 > length then return false end
if var22818 ~= 2048 then goto L12879 end
if var22820 > length then return false end
if 0 > var22822 then goto L12879 end
if var2 > length then return false end
if var22818 ~= 2048 then goto L12879 end
if var22820 > length then return false end
if 0 > var22822 then goto L12879 end
if var22833 > length then return false end
if var22835 ~= 6 then goto L12879 end
if var2 > length then return false end
if var22818 ~= 2048 then goto L12879 end
if var22820 > length then return false end
if 0 > var22822 then goto L12879 end
if var22846 > length then return false end
if 0 > var22848 then goto L12879 end
if var2 > length then return false end
if var22818 ~= 2048 then goto L12879 end
if var22820 > length then return false end
if 0 > var22822 then goto L12879 end
if var22859 > length then return false end
if var22864 ~= 0 then goto L12879 end
local var22919 = (lshift(band(P[14],15),2) + 14)
local var22920 = (var22919 + 21)
local var22921 = (var22920 + 1)
if var22921 > length then return false end
if var2 > length then return false end
if var22818 ~= 2048 then goto L12879 end
if var22820 > length then return false end
if 0 > var22822 then goto L12879 end
if var2 > length then return false end
if var22818 ~= 2048 then goto L12879 end
if var22820 > length then return false end
if 0 > var22822 then goto L12879 end
if var22833 > length then return false end
if var22835 ~= 6 then goto L12879 end
if var2 > length then return false end
if var22818 ~= 2048 then goto L12879 end
if var22820 > length then return false end
if 0 > var22822 then goto L12879 end
if var22846 > length then return false end
if 0 > var22848 then goto L12879 end
if var2 > length then return false end
if var22818 ~= 2048 then goto L12879 end
if var22820 > length then return false end
if 0 > var22822 then goto L12879 end
if var22859 > length then return false end
if var22864 ~= 0 then goto L12879 end
if var2 > length then return false end
if var22818 ~= 2048 then goto L12879 end
if var22820 > length then return false end
if 0 > var22822 then goto L12879 end
if var2 > length then return false end
if var22818 ~= 2048 then goto L12879 end
if var22820 > length then return false end
if 0 > var22822 then goto L12879 end
if var22833 > length then return false end
if var22835 ~= 6 then goto L12879 end
if var2 > length then return false end
if var22818 ~= 2048 then goto L12879 end
if var22820 > length then return false end
if 0 > var22822 then goto L12879 end
if var22846 > length then return false end
if 0 > var22848 then goto L12879 end
if var2 > length then return false end
if var22818 ~= 2048 then goto L12879 end
if var22820 > length then return false end
if 0 > var22822 then goto L12879 end
if var22859 > length then return false end
if var22864 ~= 0 then goto L12879 end
if var22921 > length then return false end
local var23041 = ((20 + P[var22920]) % 4294967296)
local var23044 = (var22919 + ((var23041 + 2) % 4294967296))
if (var23044 + 1) > length then return false end
local var23078 = (var22919 + ((((var23041 + 1) % 4294967296) + P[var23044]) % 4294967296))
if (var23078 + 1) > length then return false end
if P[var23078] == 1 then goto L12879 end
if var2 > length then return false end
local var23118 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var23118 ~= 2048 then goto L13255 end
do
local var23119 = (14 + 19)
local var23120 = (var23119 + 1)
if var23120 > length then return false end
local var23122 = P[var23119]
if 0 > var23122 then goto L13255 end
if var2 > length then return false end
if var23118 ~= 2048 then goto L13255 end
if var23120 > length then return false end
if 0 > var23122 then goto L13255 end
local var23132 = (14 + 9)
local var23133 = (var23132 + 1)
if var23133 > length then return false end
local var23135 = P[var23132]
if var23135 ~= 6 then goto L13255 end
if var2 > length then return false end
if var23118 ~= 2048 then goto L13255 end
if var23120 > length then return false end
if 0 > var23122 then goto L13255 end
local var23145 = (14 + 39)
local var23146 = (var23145 + 1)
if var23146 > length then return false end
local var23148 = P[var23145]
if 0 > var23148 then goto L13255 end
if var2 > length then return false end
if var23118 ~= 2048 then goto L13255 end
if var23120 > length then return false end
if 0 > var23122 then goto L13255 end
local var23158 = (14 + 6)
local var23159 = (var23158 + 2)
if var23159 > length then return false end
local var23164 = (band(rshift(bswap(cast("uint16_t*", P+var23158)[0]), 16),8191) % 4294967296)
if var23164 ~= 0 then goto L13255 end
if var2 > length then return false end
if var23118 ~= 2048 then goto L13255 end
if var23120 > length then return false end
if 0 > var23122 then goto L13255 end
if var2 > length then return false end
if var23118 ~= 2048 then goto L13255 end
if var23120 > length then return false end
if 0 > var23122 then goto L13255 end
if var23133 > length then return false end
if var23135 ~= 6 then goto L13255 end
if var2 > length then return false end
if var23118 ~= 2048 then goto L13255 end
if var23120 > length then return false end
if 0 > var23122 then goto L13255 end
if var23146 > length then return false end
if 0 > var23148 then goto L13255 end
if var2 > length then return false end
if var23118 ~= 2048 then goto L13255 end
if var23120 > length then return false end
if 0 > var23122 then goto L13255 end
if var23159 > length then return false end
if var23164 ~= 0 then goto L13255 end
local var23219 = (lshift(band(P[14],15),2) + 14)
local var23220 = (var23219 + 21)
local var23221 = (var23220 + 1)
if var23221 > length then return false end
if var2 > length then return false end
if var23118 ~= 2048 then goto L13255 end
if var23120 > length then return false end
if 0 > var23122 then goto L13255 end
if var2 > length then return false end
if var23118 ~= 2048 then goto L13255 end
if var23120 > length then return false end
if 0 > var23122 then goto L13255 end
if var23133 > length then return false end
if var23135 ~= 6 then goto L13255 end
if var2 > length then return false end
if var23118 ~= 2048 then goto L13255 end
if var23120 > length then return false end
if 0 > var23122 then goto L13255 end
if var23146 > length then return false end
if 0 > var23148 then goto L13255 end
if var2 > length then return false end
if var23118 ~= 2048 then goto L13255 end
if var23120 > length then return false end
if 0 > var23122 then goto L13255 end
if var23159 > length then return false end
if var23164 ~= 0 then goto L13255 end
if var2 > length then return false end
if var23118 ~= 2048 then goto L13255 end
if var23120 > length then return false end
if 0 > var23122 then goto L13255 end
if var2 > length then return false end
if var23118 ~= 2048 then goto L13255 end
if var23120 > length then return false end
if 0 > var23122 then goto L13255 end
if var23133 > length then return false end
if var23135 ~= 6 then goto L13255 end
if var2 > length then return false end
if var23118 ~= 2048 then goto L13255 end
if var23120 > length then return false end
if 0 > var23122 then goto L13255 end
if var23146 > length then return false end
if 0 > var23148 then goto L13255 end
if var2 > length then return false end
if var23118 ~= 2048 then goto L13255 end
if var23120 > length then return false end
if 0 > var23122 then goto L13255 end
if var23159 > length then return false end
if var23164 ~= 0 then goto L13255 end
if var23221 > length then return false end
local var23341 = ((20 + P[var23220]) % 4294967296)
local var23344 = (var23219 + ((var23341 + 2) % 4294967296))
local var23345 = (var23344 + 1)
if var23345 > length then return false end
if var2 > length then return false end
if var23118 ~= 2048 then goto L13255 end
if var23120 > length then return false end
if 0 > var23122 then goto L13255 end
if var2 > length then return false end
if var23118 ~= 2048 then goto L13255 end
if var23120 > length then return false end
if 0 > var23122 then goto L13255 end
if var23133 > length then return false end
if var23135 ~= 6 then goto L13255 end
if var2 > length then return false end
if var23118 ~= 2048 then goto L13255 end
if var23120 > length then return false end
if 0 > var23122 then goto L13255 end
if var23146 > length then return false end
if 0 > var23148 then goto L13255 end
if var2 > length then return false end
if var23118 ~= 2048 then goto L13255 end
if var23120 > length then return false end
if 0 > var23122 then goto L13255 end
if var23159 > length then return false end
if var23164 ~= 0 then goto L13255 end
if var2 > length then return false end
if var23118 ~= 2048 then goto L13255 end
if var23120 > length then return false end
if 0 > var23122 then goto L13255 end
if var2 > length then return false end
if var23118 ~= 2048 then goto L13255 end
if var23120 > length then return false end
if 0 > var23122 then goto L13255 end
if var23133 > length then return false end
if var23135 ~= 6 then goto L13255 end
if var2 > length then return false end
if var23118 ~= 2048 then goto L13255 end
if var23120 > length then return false end
if 0 > var23122 then goto L13255 end
if var23146 > length then return false end
if 0 > var23148 then goto L13255 end
if var2 > length then return false end
if var23118 ~= 2048 then goto L13255 end
if var23120 > length then return false end
if 0 > var23122 then goto L13255 end
if var23159 > length then return false end
if var23164 ~= 0 then goto L13255 end
if var23221 > length then return false end
if var2 > length then return false end
if var23118 ~= 2048 then goto L13255 end
if var23120 > length then return false end
if 0 > var23122 then goto L13255 end
if var2 > length then return false end
if var23118 ~= 2048 then goto L13255 end
if var23120 > length then return false end
if 0 > var23122 then goto L13255 end
if var23133 > length then return false end
if var23135 ~= 6 then goto L13255 end
if var2 > length then return false end
if var23118 ~= 2048 then goto L13255 end
if var23120 > length then return false end
if 0 > var23122 then goto L13255 end
if var23146 > length then return false end
if 0 > var23148 then goto L13255 end
if var2 > length then return false end
if var23118 ~= 2048 then goto L13255 end
if var23120 > length then return false end
if 0 > var23122 then goto L13255 end
if var23159 > length then return false end
if var23164 ~= 0 then goto L13255 end
if var2 > length then return false end
if var23118 ~= 2048 then goto L13255 end
if var23120 > length then return false end
if 0 > var23122 then goto L13255 end
if var2 > length then return false end
if var23118 ~= 2048 then goto L13255 end
if var23120 > length then return false end
if 0 > var23122 then goto L13255 end
if var23133 > length then return false end
if var23135 ~= 6 then goto L13255 end
if var2 > length then return false end
if var23118 ~= 2048 then goto L13255 end
if var23120 > length then return false end
if 0 > var23122 then goto L13255 end
if var23146 > length then return false end
if 0 > var23148 then goto L13255 end
if var2 > length then return false end
if var23118 ~= 2048 then goto L13255 end
if var23120 > length then return false end
if 0 > var23122 then goto L13255 end
if var23159 > length then return false end
if var23164 ~= 0 then goto L13255 end
if var23221 > length then return false end
if var23345 > length then return false end
local var23609 = ((((var23341 + 1) % 4294967296) + P[var23344]) % 4294967296)
local var23612 = (var23219 + ((var23609 + 1) % 4294967296))
if (var23612 + 1) > length then return false end
local var23684 = (var23219 + ((var23609 + P[var23612]) % 4294967296))
if (var23684 + 1) > length then return false end
if P[var23684] == 3 then return true end
goto L13255
end
::L13255::
if var2 > length then return false end
local var23762 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var23762 ~= 2048 then goto L13253 end
do
local var23763 = (14 + 19)
local var23764 = (var23763 + 1)
if var23764 > length then return false end
local var23766 = P[var23763]
if 0 > var23766 then goto L13253 end
if var2 > length then return false end
if var23762 ~= 2048 then goto L13253 end
if var23764 > length then return false end
if 0 > var23766 then goto L13253 end
local var23776 = (14 + 9)
local var23777 = (var23776 + 1)
if var23777 > length then return false end
local var23779 = P[var23776]
if var23779 ~= 6 then goto L13253 end
if var2 > length then return false end
if var23762 ~= 2048 then goto L13253 end
if var23764 > length then return false end
if 0 > var23766 then goto L13253 end
local var23789 = (14 + 39)
local var23790 = (var23789 + 1)
if var23790 > length then return false end
local var23792 = P[var23789]
if 0 > var23792 then goto L13253 end
if var2 > length then return false end
if var23762 ~= 2048 then goto L13253 end
if var23764 > length then return false end
if 0 > var23766 then goto L13253 end
local var23802 = (14 + 6)
local var23803 = (var23802 + 2)
if var23803 > length then return false end
local var23808 = (band(rshift(bswap(cast("uint16_t*", P+var23802)[0]), 16),8191) % 4294967296)
if var23808 ~= 0 then goto L13253 end
if var2 > length then return false end
if var23762 ~= 2048 then goto L13253 end
if var23764 > length then return false end
if 0 > var23766 then goto L13253 end
if var2 > length then return false end
if var23762 ~= 2048 then goto L13253 end
if var23764 > length then return false end
if 0 > var23766 then goto L13253 end
if var23777 > length then return false end
if var23779 ~= 6 then goto L13253 end
if var2 > length then return false end
if var23762 ~= 2048 then goto L13253 end
if var23764 > length then return false end
if 0 > var23766 then goto L13253 end
if var23790 > length then return false end
if 0 > var23792 then goto L13253 end
if var2 > length then return false end
if var23762 ~= 2048 then goto L13253 end
if var23764 > length then return false end
if 0 > var23766 then goto L13253 end
if var23803 > length then return false end
if var23808 ~= 0 then goto L13253 end
local var23863 = (lshift(band(P[14],15),2) + 14)
local var23864 = (var23863 + 21)
local var23865 = (var23864 + 1)
if var23865 > length then return false end
if var2 > length then return false end
if var23762 ~= 2048 then goto L13253 end
if var23764 > length then return false end
if 0 > var23766 then goto L13253 end
if var2 > length then return false end
if var23762 ~= 2048 then goto L13253 end
if var23764 > length then return false end
if 0 > var23766 then goto L13253 end
if var23777 > length then return false end
if var23779 ~= 6 then goto L13253 end
if var2 > length then return false end
if var23762 ~= 2048 then goto L13253 end
if var23764 > length then return false end
if 0 > var23766 then goto L13253 end
if var23790 > length then return false end
if 0 > var23792 then goto L13253 end
if var2 > length then return false end
if var23762 ~= 2048 then goto L13253 end
if var23764 > length then return false end
if 0 > var23766 then goto L13253 end
if var23803 > length then return false end
if var23808 ~= 0 then goto L13253 end
if var2 > length then return false end
if var23762 ~= 2048 then goto L13253 end
if var23764 > length then return false end
if 0 > var23766 then goto L13253 end
if var2 > length then return false end
if var23762 ~= 2048 then goto L13253 end
if var23764 > length then return false end
if 0 > var23766 then goto L13253 end
if var23777 > length then return false end
if var23779 ~= 6 then goto L13253 end
if var2 > length then return false end
if var23762 ~= 2048 then goto L13253 end
if var23764 > length then return false end
if 0 > var23766 then goto L13253 end
if var23790 > length then return false end
if 0 > var23792 then goto L13253 end
if var2 > length then return false end
if var23762 ~= 2048 then goto L13253 end
if var23764 > length then return false end
if 0 > var23766 then goto L13253 end
if var23803 > length then return false end
if var23808 ~= 0 then goto L13253 end
if var23865 > length then return false end
local var23985 = ((20 + P[var23864]) % 4294967296)
local var23988 = (var23863 + ((var23985 + 2) % 4294967296))
local var23989 = (var23988 + 1)
if var23989 > length then return false end
if var2 > length then return false end
if var23762 ~= 2048 then goto L13253 end
if var23764 > length then return false end
if 0 > var23766 then goto L13253 end
if var2 > length then return false end
if var23762 ~= 2048 then goto L13253 end
if var23764 > length then return false end
if 0 > var23766 then goto L13253 end
if var23777 > length then return false end
if var23779 ~= 6 then goto L13253 end
if var2 > length then return false end
if var23762 ~= 2048 then goto L13253 end
if var23764 > length then return false end
if 0 > var23766 then goto L13253 end
if var23790 > length then return false end
if 0 > var23792 then goto L13253 end
if var2 > length then return false end
if var23762 ~= 2048 then goto L13253 end
if var23764 > length then return false end
if 0 > var23766 then goto L13253 end
if var23803 > length then return false end
if var23808 ~= 0 then goto L13253 end
if var2 > length then return false end
if var23762 ~= 2048 then goto L13253 end
if var23764 > length then return false end
if 0 > var23766 then goto L13253 end
if var2 > length then return false end
if var23762 ~= 2048 then goto L13253 end
if var23764 > length then return false end
if 0 > var23766 then goto L13253 end
if var23777 > length then return false end
if var23779 ~= 6 then goto L13253 end
if var2 > length then return false end
if var23762 ~= 2048 then goto L13253 end
if var23764 > length then return false end
if 0 > var23766 then goto L13253 end
if var23790 > length then return false end
if 0 > var23792 then goto L13253 end
if var2 > length then return false end
if var23762 ~= 2048 then goto L13253 end
if var23764 > length then return false end
if 0 > var23766 then goto L13253 end
if var23803 > length then return false end
if var23808 ~= 0 then goto L13253 end
if var23865 > length then return false end
if var2 > length then return false end
if var23762 ~= 2048 then goto L13253 end
if var23764 > length then return false end
if 0 > var23766 then goto L13253 end
if var2 > length then return false end
if var23762 ~= 2048 then goto L13253 end
if var23764 > length then return false end
if 0 > var23766 then goto L13253 end
if var23777 > length then return false end
if var23779 ~= 6 then goto L13253 end
if var2 > length then return false end
if var23762 ~= 2048 then goto L13253 end
if var23764 > length then return false end
if 0 > var23766 then goto L13253 end
if var23790 > length then return false end
if 0 > var23792 then goto L13253 end
if var2 > length then return false end
if var23762 ~= 2048 then goto L13253 end
if var23764 > length then return false end
if 0 > var23766 then goto L13253 end
if var23803 > length then return false end
if var23808 ~= 0 then goto L13253 end
if var2 > length then return false end
if var23762 ~= 2048 then goto L13253 end
if var23764 > length then return false end
if 0 > var23766 then goto L13253 end
if var2 > length then return false end
if var23762 ~= 2048 then goto L13253 end
if var23764 > length then return false end
if 0 > var23766 then goto L13253 end
if var23777 > length then return false end
if var23779 ~= 6 then goto L13253 end
if var2 > length then return false end
if var23762 ~= 2048 then goto L13253 end
if var23764 > length then return false end
if 0 > var23766 then goto L13253 end
if var23790 > length then return false end
if 0 > var23792 then goto L13253 end
if var2 > length then return false end
if var23762 ~= 2048 then goto L13253 end
if var23764 > length then return false end
if 0 > var23766 then goto L13253 end
if var23803 > length then return false end
if var23808 ~= 0 then goto L13253 end
if var23865 > length then return false end
if var23989 > length then return false end
local var24253 = ((((var23985 + 1) % 4294967296) + P[var23988]) % 4294967296)
local var24256 = (var23863 + ((var24253 + 1) % 4294967296))
if (var24256 + 1) > length then return false end
local var24328 = (var23863 + ((var24253 + P[var24256]) % 4294967296))
if (var24328 + 1) > length then return false end
if P[var24328] == 1 then goto L13253 end
if var2 > length then return false end
local var24406 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var24406 ~= 2048 then goto L13253 end
local var24407 = (14 + 19)
local var24408 = (var24407 + 1)
if var24408 > length then return false end
local var24410 = P[var24407]
if 0 > var24410 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
local var24420 = (14 + 9)
local var24421 = (var24420 + 1)
if var24421 > length then return false end
local var24423 = P[var24420]
if var24423 ~= 6 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
local var24433 = (14 + 39)
local var24434 = (var24433 + 1)
if var24434 > length then return false end
local var24436 = P[var24433]
if 0 > var24436 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
local var24446 = (14 + 6)
local var24447 = (var24446 + 2)
if var24447 > length then return false end
local var24452 = (band(rshift(bswap(cast("uint16_t*", P+var24446)[0]), 16),8191) % 4294967296)
if var24452 ~= 0 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24421 > length then return false end
if var24423 ~= 6 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24434 > length then return false end
if 0 > var24436 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24447 > length then return false end
if var24452 ~= 0 then goto L13253 end
local var24507 = (lshift(band(P[14],15),2) + 14)
local var24508 = (var24507 + 21)
local var24509 = (var24508 + 1)
if var24509 > length then return false end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24421 > length then return false end
if var24423 ~= 6 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24434 > length then return false end
if 0 > var24436 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24447 > length then return false end
if var24452 ~= 0 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24421 > length then return false end
if var24423 ~= 6 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24434 > length then return false end
if 0 > var24436 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24447 > length then return false end
if var24452 ~= 0 then goto L13253 end
if var24509 > length then return false end
local var24629 = ((20 + P[var24508]) % 4294967296)
local var24632 = (var24507 + ((var24629 + 2) % 4294967296))
local var24633 = (var24632 + 1)
if var24633 > length then return false end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24421 > length then return false end
if var24423 ~= 6 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24434 > length then return false end
if 0 > var24436 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24447 > length then return false end
if var24452 ~= 0 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24421 > length then return false end
if var24423 ~= 6 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24434 > length then return false end
if 0 > var24436 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24447 > length then return false end
if var24452 ~= 0 then goto L13253 end
if var24509 > length then return false end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24421 > length then return false end
if var24423 ~= 6 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24434 > length then return false end
if 0 > var24436 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24447 > length then return false end
if var24452 ~= 0 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24421 > length then return false end
if var24423 ~= 6 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24434 > length then return false end
if 0 > var24436 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24447 > length then return false end
if var24452 ~= 0 then goto L13253 end
if var24509 > length then return false end
if var24633 > length then return false end
local var24897 = ((((var24629 + 1) % 4294967296) + P[var24632]) % 4294967296)
local var24900 = (var24507 + ((var24897 + 1) % 4294967296))
local var24901 = (var24900 + 1)
if var24901 > length then return false end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24421 > length then return false end
if var24423 ~= 6 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24434 > length then return false end
if 0 > var24436 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24447 > length then return false end
if var24452 ~= 0 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24421 > length then return false end
if var24423 ~= 6 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24434 > length then return false end
if 0 > var24436 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24447 > length then return false end
if var24452 ~= 0 then goto L13253 end
if var24509 > length then return false end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24421 > length then return false end
if var24423 ~= 6 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24434 > length then return false end
if 0 > var24436 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24447 > length then return false end
if var24452 ~= 0 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24421 > length then return false end
if var24423 ~= 6 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24434 > length then return false end
if 0 > var24436 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24447 > length then return false end
if var24452 ~= 0 then goto L13253 end
if var24509 > length then return false end
if var24633 > length then return false end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24421 > length then return false end
if var24423 ~= 6 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24434 > length then return false end
if 0 > var24436 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24447 > length then return false end
if var24452 ~= 0 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24421 > length then return false end
if var24423 ~= 6 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24434 > length then return false end
if 0 > var24436 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24447 > length then return false end
if var24452 ~= 0 then goto L13253 end
if var24509 > length then return false end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24421 > length then return false end
if var24423 ~= 6 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24434 > length then return false end
if 0 > var24436 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24447 > length then return false end
if var24452 ~= 0 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24421 > length then return false end
if var24423 ~= 6 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24434 > length then return false end
if 0 > var24436 then goto L13253 end
if var2 > length then return false end
if var24406 ~= 2048 then goto L13253 end
if var24408 > length then return false end
if 0 > var24410 then goto L13253 end
if var24447 > length then return false end
if var24452 ~= 0 then goto L13253 end
if var24509 > length then return false end
if var24633 > length then return false end
if var24901 > length then return false end
local var25471 = ((var24897 + P[var24900]) % 4294967296)
local var25474 = (var24507 + ((var25471 + 1) % 4294967296))
if (var25474 + 1) > length then return false end
local var25622 = (var24507 + ((var25471 + P[var25474]) % 4294967296))
if (var25622 + 1) > length then return false end
if P[var25622] == 3 then return true end
goto L13253
end
::L13253::
if var2 > length then return false end
local var25776 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var25776 ~= 2048 then goto L12879 end
local var25777 = (14 + 19)
local var25778 = (var25777 + 1)
if var25778 > length then return false end
local var25780 = P[var25777]
if 0 > var25780 then goto L12879 end
if var2 > length then return false end
if var25776 ~= 2048 then goto L12879 end
if var25778 > length then return false end
if 0 > var25780 then goto L12879 end
local var25790 = (14 + 9)
local var25791 = (var25790 + 1)
if var25791 > length then return false end
local var25793 = P[var25790]
if var25793 ~= 6 then goto L12879 end
if var2 > length then return false end
if var25776 ~= 2048 then goto L12879 end
if var25778 > length then return false end
if 0 > var25780 then goto L12879 end
local var25803 = (14 + 39)
local var25804 = (var25803 + 1)
if var25804 > length then return false end
local var25806 = P[var25803]
if 0 > var25806 then goto L12879 end
if var2 > length then return false end
if var25776 ~= 2048 then goto L12879 end
if var25778 > length then return false end
if 0 > var25780 then goto L12879 end
local var25816 = (14 + 6)
local var25817 = (var25816 + 2)
if var25817 > length then return false end
local var25822 = (band(rshift(bswap(cast("uint16_t*", P+var25816)[0]), 16),8191) % 4294967296)
if var25822 ~= 0 then goto L12879 end
if var2 > length then return false end
if var25776 ~= 2048 then goto L12879 end
if var25778 > length then return false end
if 0 > var25780 then goto L12879 end
if var2 > length then return false end
if var25776 ~= 2048 then goto L12879 end
if var25778 > length then return false end
if 0 > var25780 then goto L12879 end
if var25791 > length then return false end
if var25793 ~= 6 then goto L12879 end
if var2 > length then return false end
if var25776 ~= 2048 then goto L12879 end
if var25778 > length then return false end
if 0 > var25780 then goto L12879 end
if var25804 > length then return false end
if 0 > var25806 then goto L12879 end
if var2 > length then return false end
if var25776 ~= 2048 then goto L12879 end
if var25778 > length then return false end
if 0 > var25780 then goto L12879 end
if var25817 > length then return false end
if var25822 ~= 0 then goto L12879 end
local var25877 = (lshift(band(P[14],15),2) + 14)
local var25878 = (var25877 + 21)
local var25879 = (var25878 + 1)
if var25879 > length then return false end
if var2 > length then return false end
if var25776 ~= 2048 then goto L12879 end
if var25778 > length then return false end
if 0 > var25780 then goto L12879 end
if var2 > length then return false end
if var25776 ~= 2048 then goto L12879 end
if var25778 > length then return false end
if 0 > var25780 then goto L12879 end
if var25791 > length then return false end
if var25793 ~= 6 then goto L12879 end
if var2 > length then return false end
if var25776 ~= 2048 then goto L12879 end
if var25778 > length then return false end
if 0 > var25780 then goto L12879 end
if var25804 > length then return false end
if 0 > var25806 then goto L12879 end
if var2 > length then return false end
if var25776 ~= 2048 then goto L12879 end
if var25778 > length then return false end
if 0 > var25780 then goto L12879 end
if var25817 > length then return false end
if var25822 ~= 0 then goto L12879 end
if var2 > length then return false end
if var25776 ~= 2048 then goto L12879 end
if var25778 > length then return false end
if 0 > var25780 then goto L12879 end
if var2 > length then return false end
if var25776 ~= 2048 then goto L12879 end
if var25778 > length then return false end
if 0 > var25780 then goto L12879 end
if var25791 > length then return false end
if var25793 ~= 6 then goto L12879 end
if var2 > length then return false end
if var25776 ~= 2048 then goto L12879 end
if var25778 > length then return false end
if 0 > var25780 then goto L12879 end
if var25804 > length then return false end
if 0 > var25806 then goto L12879 end
if var2 > length then return false end
if var25776 ~= 2048 then goto L12879 end
if var25778 > length then return false end
if 0 > var25780 then goto L12879 end
if var25817 > length then return false end
if var25822 ~= 0 then goto L12879 end
if var25879 > length then return false end
local var25999 = ((20 + P[var25878]) % 4294967296)
local var26002 = (var25877 + ((var25999 + 2) % 4294967296))
local var26003 = (var26002 + 1)
if var26003 > length then return false end
if var2 > length then return false end
if var25776 ~= 2048 then goto L12879 end
if var25778 > length then return false end
if 0 > var25780 then goto L12879 end
if var2 > length then return false end
if var25776 ~= 2048 then goto L12879 end
if var25778 > length then return false end
if 0 > var25780 then goto L12879 end
if var25791 > length then return false end
if var25793 ~= 6 then goto L12879 end
if var2 > length then return false end
if var25776 ~= 2048 then goto L12879 end
if var25778 > length then return false end
if 0 > var25780 then goto L12879 end
if var25804 > length then return false end
if 0 > var25806 then goto L12879 end
if var2 > length then return false end
if var25776 ~= 2048 then goto L12879 end
if var25778 > length then return false end
if 0 > var25780 then goto L12879 end
if var25817 > length then return false end
if var25822 ~= 0 then goto L12879 end
if var2 > length then return false end
if var25776 ~= 2048 then goto L12879 end
if var25778 > length then return false end
if 0 > var25780 then goto L12879 end
if var2 > length then return false end
if var25776 ~= 2048 then goto L12879 end
if var25778 > length then return false end
if 0 > var25780 then goto L12879 end
if var25791 > length then return false end
if var25793 ~= 6 then goto L12879 end
if var2 > length then return false end
if var25776 ~= 2048 then goto L12879 end
if var25778 > length then return false end
if 0 > var25780 then goto L12879 end
if var25804 > length then return false end
if 0 > var25806 then goto L12879 end
if var2 > length then return false end
if var25776 ~= 2048 then goto L12879 end
if var25778 > length then return false end
if 0 > var25780 then goto L12879 end
if var25817 > length then return false end
if var25822 ~= 0 then goto L12879 end
if var25879 > length then return false end
if var2 > length then return false end
if var25776 ~= 2048 then goto L12879 end
if var25778 > length then return false end
if 0 > var25780 then goto L12879 end
if var2 > length then return false end
if var25776 ~= 2048 then goto L12879 end
if var25778 > length then return false end
if 0 > var25780 then goto L12879 end
if var25791 > length then return false end
if var25793 ~= 6 then goto L12879 end
if var2 > length then return false end
if var25776 ~= 2048 then goto L12879 end
if var25778 > length then return false end
if 0 > var25780 then goto L12879 end
if var25804 > length then return false end
if 0 > var25806 then goto L12879 end
if var2 > length then return false end
if var25776 ~= 2048 then goto L12879 end
if var25778 > length then return false end
if 0 > var25780 then goto L12879 end
if var25817 > length then return false end
if var25822 ~= 0 then goto L12879 end
if var2 > length then return false end
if var25776 ~= 2048 then goto L12879 end
if var25778 > length then return false end
if 0 > var25780 then goto L12879 end
if var2 > length then return false end
if var25776 ~= 2048 then goto L12879 end
if var25778 > length then return false end
if 0 > var25780 then goto L12879 end
if var25791 > length then return false end
if var25793 ~= 6 then goto L12879 end
if var2 > length then return false end
if var25776 ~= 2048 then goto L12879 end
if var25778 > length then return false end
if 0 > var25780 then goto L12879 end
if var25804 > length then return false end
if 0 > var25806 then goto L12879 end
if var2 > length then return false end
if var25776 ~= 2048 then goto L12879 end
if var25778 > length then return false end
if 0 > var25780 then goto L12879 end
if var25817 > length then return false end
if var25822 ~= 0 then goto L12879 end
if var25879 > length then return false end
if var26003 > length then return false end
local var26267 = ((((var25999 + 1) % 4294967296) + P[var26002]) % 4294967296)
local var26270 = (var25877 + ((var26267 + 1) % 4294967296))
if (var26270 + 1) > length then return false end
local var26342 = (var25877 + ((var26267 + P[var26270]) % 4294967296))
if (var26342 + 1) > length then return false end
if P[var26342] ~= 1 then goto L12879 end
if var2 > length then return false end
local var26420 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var26420 ~= 2048 then goto L12879 end
local var26421 = (14 + 19)
local var26422 = (var26421 + 1)
if var26422 > length then return false end
local var26424 = P[var26421]
if 0 > var26424 then goto L12879 end
if var2 > length then return false end
if var26420 ~= 2048 then goto L12879 end
if var26422 > length then return false end
if 0 > var26424 then goto L12879 end
local var26434 = (14 + 9)
local var26435 = (var26434 + 1)
if var26435 > length then return false end
local var26437 = P[var26434]
if var26437 ~= 6 then goto L12879 end
if var2 > length then return false end
if var26420 ~= 2048 then goto L12879 end
if var26422 > length then return false end
if 0 > var26424 then goto L12879 end
local var26447 = (14 + 39)
local var26448 = (var26447 + 1)
if var26448 > length then return false end
local var26450 = P[var26447]
if 0 > var26450 then goto L12879 end
if var2 > length then return false end
if var26420 ~= 2048 then goto L12879 end
if var26422 > length then return false end
if 0 > var26424 then goto L12879 end
local var26460 = (14 + 6)
local var26461 = (var26460 + 2)
if var26461 > length then return false end
local var26466 = (band(rshift(bswap(cast("uint16_t*", P+var26460)[0]), 16),8191) % 4294967296)
if var26466 ~= 0 then goto L12879 end
if var2 > length then return false end
if var26420 ~= 2048 then goto L12879 end
if var26422 > length then return false end
if 0 > var26424 then goto L12879 end
if var2 > length then return false end
if var26420 ~= 2048 then goto L12879 end
if var26422 > length then return false end
if 0 > var26424 then goto L12879 end
if var26435 > length then return false end
if var26437 ~= 6 then goto L12879 end
if var2 > length then return false end
if var26420 ~= 2048 then goto L12879 end
if var26422 > length then return false end
if 0 > var26424 then goto L12879 end
if var26448 > length then return false end
if 0 > var26450 then goto L12879 end
if var2 > length then return false end
if var26420 ~= 2048 then goto L12879 end
if var26422 > length then return false end
if 0 > var26424 then goto L12879 end
if var26461 > length then return false end
if var26466 ~= 0 then goto L12879 end
local var26521 = (lshift(band(P[14],15),2) + 14)
local var26522 = (var26521 + 21)
local var26523 = (var26522 + 1)
if var26523 > length then return false end
if var2 > length then return false end
if var26420 ~= 2048 then goto L12879 end
if var26422 > length then return false end
if 0 > var26424 then goto L12879 end
if var2 > length then return false end
if var26420 ~= 2048 then goto L12879 end
if var26422 > length then return false end
if 0 > var26424 then goto L12879 end
if var26435 > length then return false end
if var26437 ~= 6 then goto L12879 end
if var2 > length then return false end
if var26420 ~= 2048 then goto L12879 end
if var26422 > length then return false end
if 0 > var26424 then goto L12879 end
if var26448 > length then return false end
if 0 > var26450 then goto L12879 end
if var2 > length then return false end
if var26420 ~= 2048 then goto L12879 end
if var26422 > length then return false end
if 0 > var26424 then goto L12879 end
if var26461 > length then return false end
if var26466 ~= 0 then goto L12879 end
if var2 > length then return false end
if var26420 ~= 2048 then goto L12879 end
if var26422 > length then return false end
if 0 > var26424 then goto L12879 end
if var2 > length then return false end
if var26420 ~= 2048 then goto L12879 end
if var26422 > length then return false end
if 0 > var26424 then goto L12879 end
if var26435 > length then return false end
if var26437 ~= 6 then goto L12879 end
if var2 > length then return false end
if var26420 ~= 2048 then goto L12879 end
if var26422 > length then return false end
if 0 > var26424 then goto L12879 end
if var26448 > length then return false end
if 0 > var26450 then goto L12879 end
if var2 > length then return false end
if var26420 ~= 2048 then goto L12879 end
if var26422 > length then return false end
if 0 > var26424 then goto L12879 end
if var26461 > length then return false end
if var26466 ~= 0 then goto L12879 end
if var26523 > length then return false end
local var26643 = ((20 + P[var26522]) % 4294967296)
local var26646 = (var26521 + ((var26643 + 2) % 4294967296))
local var26647 = (var26646 + 1)
if var26647 > length then return false end
if var2 > length then return false end
if var26420 ~= 2048 then goto L12879 end
if var26422 > length then return false end
if 0 > var26424 then goto L12879 end
if var2 > length then return false end
if var26420 ~= 2048 then goto L12879 end
if var26422 > length then return false end
if 0 > var26424 then goto L12879 end
if var26435 > length then return false end
if var26437 ~= 6 then goto L12879 end
if var2 > length then return false end
if var26420 ~= 2048 then goto L12879 end
if var26422 > length then return false end
if 0 > var26424 then goto L12879 end
if var26448 > length then return false end
if 0 > var26450 then goto L12879 end
if var2 > length then return false end
if var26420 ~= 2048 then goto L12879 end
if var26422 > length then return false end
if 0 > var26424 then goto L12879 end
if var26461 > length then return false end
if var26466 ~= 0 then goto L12879 end
if var2 > length then return false end
if var26420 ~= 2048 then goto L12879 end
if var26422 > length then return false end
if 0 > var26424 then goto L12879 end
if var2 > length then return false end
if var26420 ~= 2048 then goto L12879 end
if var26422 > length then return false end
if 0 > var26424 then goto L12879 end
if var26435 > length then return false end
if var26437 ~= 6 then goto L12879 end
if var2 > length then return false end
if var26420 ~= 2048 then goto L12879 end
if var26422 > length then return false end
if 0 > var26424 then goto L12879 end
if var26448 > length then return false end
if 0 > var26450 then goto L12879 end
if var2 > length then return false end
if var26420 ~= 2048 then goto L12879 end
if var26422 > length then return false end
if 0 > var26424 then goto L12879 end
if var26461 > length then return false end
if var26466 ~= 0 then goto L12879 end
if var26523 > length then return false end
if var2 > length then return false end
if var26420 ~= 2048 then goto L12879 end
if var26422 > length then return false end
if 0 > var26424 then goto L12879 end
if var2 > length then return false end
if var26420 ~= 2048 then goto L12879 end
if var26422 > length then return false end
if 0 > var26424 then goto L12879 end
if var26435 > length then return false end
if var26437 ~= 6 then goto L12879 end
if var2 > length then return false end
if var26420 ~= 2048 then goto L12879 end
if var26422 > length then return false end
if 0 > var26424 then goto L12879 end
if var26448 > length then return false end
if 0 > var26450 then goto L12879 end
if var2 > length then return false end
if var26420 ~= 2048 then goto L12879 end
if var26422 > length then return false end
if 0 > var26424 then goto L12879 end
if var26461 > length then return false end
if var26466 ~= 0 then goto L12879 end
if var2 > length then return false end
if var26420 ~= 2048 then goto L12879 end
if var26422 > length then return false end
if 0 > var26424 then goto L12879 end
if var2 > length then return false end
if var26420 ~= 2048 then goto L12879 end
if var26422 > length then return false end
if 0 > var26424 then goto L12879 end
if var26435 > length then return false end
if var26437 ~= 6 then goto L12879 end
if var2 > length then return false end
if var26420 ~= 2048 then goto L12879 end
if var26422 > length then return false end
if 0 > var26424 then goto L12879 end
if var26448 > length then return false end
if 0 > var26450 then goto L12879 end
if var2 > length then return false end
if var26420 ~= 2048 then goto L12879 end
if var26422 > length then return false end
if 0 > var26424 then goto L12879 end
if var26461 > length then return false end
if var26466 ~= 0 then goto L12879 end
if var26523 > length then return false end
if var26647 > length then return false end
local var26911 = ((((var26643 + 1) % 4294967296) + P[var26646]) % 4294967296)
local var26914 = (var26521 + ((var26911 + 1) % 4294967296))
if (var26914 + 1) > length then return false end
local var26988 = (var26521 + ((((var26911 + P[var26914]) % 4294967296) + 1) % 4294967296))
if (var26988 + 1) > length then return false end
if P[var26988] == 3 then return true end
goto L12879
end
::L12879::
if var2 > length then return false end
local var27068 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var27068 ~= 2048 then goto L12689 end
local var27069 = (14 + 19)
local var27070 = (var27069 + 1)
if var27070 > length then return false end
local var27072 = P[var27069]
if 0 > var27072 then goto L12689 end
if var2 > length then return false end
if var27068 ~= 2048 then goto L12689 end
if var27070 > length then return false end
if 0 > var27072 then goto L12689 end
local var27082 = (14 + 9)
local var27083 = (var27082 + 1)
if var27083 > length then return false end
local var27085 = P[var27082]
if var27085 ~= 6 then goto L12689 end
if var2 > length then return false end
if var27068 ~= 2048 then goto L12689 end
if var27070 > length then return false end
if 0 > var27072 then goto L12689 end
local var27095 = (14 + 39)
local var27096 = (var27095 + 1)
if var27096 > length then return false end
local var27098 = P[var27095]
if 0 > var27098 then goto L12689 end
if var2 > length then return false end
if var27068 ~= 2048 then goto L12689 end
if var27070 > length then return false end
if 0 > var27072 then goto L12689 end
local var27108 = (14 + 6)
local var27109 = (var27108 + 2)
if var27109 > length then return false end
local var27114 = (band(rshift(bswap(cast("uint16_t*", P+var27108)[0]), 16),8191) % 4294967296)
if var27114 ~= 0 then goto L12689 end
if var2 > length then return false end
if var27068 ~= 2048 then goto L12689 end
if var27070 > length then return false end
if 0 > var27072 then goto L12689 end
if var2 > length then return false end
if var27068 ~= 2048 then goto L12689 end
if var27070 > length then return false end
if 0 > var27072 then goto L12689 end
if var27083 > length then return false end
if var27085 ~= 6 then goto L12689 end
if var2 > length then return false end
if var27068 ~= 2048 then goto L12689 end
if var27070 > length then return false end
if 0 > var27072 then goto L12689 end
if var27096 > length then return false end
if 0 > var27098 then goto L12689 end
if var2 > length then return false end
if var27068 ~= 2048 then goto L12689 end
if var27070 > length then return false end
if 0 > var27072 then goto L12689 end
if var27109 > length then return false end
if var27114 ~= 0 then goto L12689 end
local var27169 = (lshift(band(P[14],15),2) + 14)
local var27170 = (var27169 + 21)
local var27171 = (var27170 + 1)
if var27171 > length then return false end
if var2 > length then return false end
if var27068 ~= 2048 then goto L12689 end
if var27070 > length then return false end
if 0 > var27072 then goto L12689 end
if var2 > length then return false end
if var27068 ~= 2048 then goto L12689 end
if var27070 > length then return false end
if 0 > var27072 then goto L12689 end
if var27083 > length then return false end
if var27085 ~= 6 then goto L12689 end
if var2 > length then return false end
if var27068 ~= 2048 then goto L12689 end
if var27070 > length then return false end
if 0 > var27072 then goto L12689 end
if var27096 > length then return false end
if 0 > var27098 then goto L12689 end
if var2 > length then return false end
if var27068 ~= 2048 then goto L12689 end
if var27070 > length then return false end
if 0 > var27072 then goto L12689 end
if var27109 > length then return false end
if var27114 ~= 0 then goto L12689 end
if var2 > length then return false end
if var27068 ~= 2048 then goto L12689 end
if var27070 > length then return false end
if 0 > var27072 then goto L12689 end
if var2 > length then return false end
if var27068 ~= 2048 then goto L12689 end
if var27070 > length then return false end
if 0 > var27072 then goto L12689 end
if var27083 > length then return false end
if var27085 ~= 6 then goto L12689 end
if var2 > length then return false end
if var27068 ~= 2048 then goto L12689 end
if var27070 > length then return false end
if 0 > var27072 then goto L12689 end
if var27096 > length then return false end
if 0 > var27098 then goto L12689 end
if var2 > length then return false end
if var27068 ~= 2048 then goto L12689 end
if var27070 > length then return false end
if 0 > var27072 then goto L12689 end
if var27109 > length then return false end
if var27114 ~= 0 then goto L12689 end
if var27171 > length then return false end
local var27291 = ((20 + P[var27170]) % 4294967296)
local var27294 = (var27169 + ((var27291 + 2) % 4294967296))
if (var27294 + 1) > length then return false end
local var27328 = (var27169 + ((((var27291 + 1) % 4294967296) + P[var27294]) % 4294967296))
if (var27328 + 1) > length then return false end
if P[var27328] ~= 1 then goto L12689 end
if var2 > length then return false end
local var27368 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var27368 ~= 2048 then goto L15657 end
do
local var27369 = (14 + 19)
local var27370 = (var27369 + 1)
if var27370 > length then return false end
local var27372 = P[var27369]
if 0 > var27372 then goto L15657 end
if var2 > length then return false end
if var27368 ~= 2048 then goto L15657 end
if var27370 > length then return false end
if 0 > var27372 then goto L15657 end
local var27382 = (14 + 9)
local var27383 = (var27382 + 1)
if var27383 > length then return false end
local var27385 = P[var27382]
if var27385 ~= 6 then goto L15657 end
if var2 > length then return false end
if var27368 ~= 2048 then goto L15657 end
if var27370 > length then return false end
if 0 > var27372 then goto L15657 end
local var27395 = (14 + 39)
local var27396 = (var27395 + 1)
if var27396 > length then return false end
local var27398 = P[var27395]
if 0 > var27398 then goto L15657 end
if var2 > length then return false end
if var27368 ~= 2048 then goto L15657 end
if var27370 > length then return false end
if 0 > var27372 then goto L15657 end
local var27408 = (14 + 6)
local var27409 = (var27408 + 2)
if var27409 > length then return false end
local var27414 = (band(rshift(bswap(cast("uint16_t*", P+var27408)[0]), 16),8191) % 4294967296)
if var27414 ~= 0 then goto L15657 end
if var2 > length then return false end
if var27368 ~= 2048 then goto L15657 end
if var27370 > length then return false end
if 0 > var27372 then goto L15657 end
if var2 > length then return false end
if var27368 ~= 2048 then goto L15657 end
if var27370 > length then return false end
if 0 > var27372 then goto L15657 end
if var27383 > length then return false end
if var27385 ~= 6 then goto L15657 end
if var2 > length then return false end
if var27368 ~= 2048 then goto L15657 end
if var27370 > length then return false end
if 0 > var27372 then goto L15657 end
if var27396 > length then return false end
if 0 > var27398 then goto L15657 end
if var2 > length then return false end
if var27368 ~= 2048 then goto L15657 end
if var27370 > length then return false end
if 0 > var27372 then goto L15657 end
if var27409 > length then return false end
if var27414 ~= 0 then goto L15657 end
local var27469 = (lshift(band(P[14],15),2) + 14)
local var27470 = (var27469 + 21)
local var27471 = (var27470 + 1)
if var27471 > length then return false end
if var2 > length then return false end
if var27368 ~= 2048 then goto L15657 end
if var27370 > length then return false end
if 0 > var27372 then goto L15657 end
if var2 > length then return false end
if var27368 ~= 2048 then goto L15657 end
if var27370 > length then return false end
if 0 > var27372 then goto L15657 end
if var27383 > length then return false end
if var27385 ~= 6 then goto L15657 end
if var2 > length then return false end
if var27368 ~= 2048 then goto L15657 end
if var27370 > length then return false end
if 0 > var27372 then goto L15657 end
if var27396 > length then return false end
if 0 > var27398 then goto L15657 end
if var2 > length then return false end
if var27368 ~= 2048 then goto L15657 end
if var27370 > length then return false end
if 0 > var27372 then goto L15657 end
if var27409 > length then return false end
if var27414 ~= 0 then goto L15657 end
if var2 > length then return false end
if var27368 ~= 2048 then goto L15657 end
if var27370 > length then return false end
if 0 > var27372 then goto L15657 end
if var2 > length then return false end
if var27368 ~= 2048 then goto L15657 end
if var27370 > length then return false end
if 0 > var27372 then goto L15657 end
if var27383 > length then return false end
if var27385 ~= 6 then goto L15657 end
if var2 > length then return false end
if var27368 ~= 2048 then goto L15657 end
if var27370 > length then return false end
if 0 > var27372 then goto L15657 end
if var27396 > length then return false end
if 0 > var27398 then goto L15657 end
if var2 > length then return false end
if var27368 ~= 2048 then goto L15657 end
if var27370 > length then return false end
if 0 > var27372 then goto L15657 end
if var27409 > length then return false end
if var27414 ~= 0 then goto L15657 end
if var27471 > length then return false end
local var27591 = ((20 + P[var27470]) % 4294967296)
local var27594 = (var27469 + ((var27591 + 2) % 4294967296))
if (var27594 + 1) > length then return false end
local var27630 = (var27469 + ((((((var27591 + 1) % 4294967296) + P[var27594]) % 4294967296) + 1) % 4294967296))
if (var27630 + 1) > length then return false end
if P[var27630] == 3 then return true end
goto L15657
end
::L15657::
if var2 > length then return false end
local var27672 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var27672 ~= 2048 then goto L15655 end
do
local var27673 = (14 + 19)
local var27674 = (var27673 + 1)
if var27674 > length then return false end
local var27676 = P[var27673]
if 0 > var27676 then goto L15655 end
if var2 > length then return false end
if var27672 ~= 2048 then goto L15655 end
if var27674 > length then return false end
if 0 > var27676 then goto L15655 end
local var27686 = (14 + 9)
local var27687 = (var27686 + 1)
if var27687 > length then return false end
local var27689 = P[var27686]
if var27689 ~= 6 then goto L15655 end
if var2 > length then return false end
if var27672 ~= 2048 then goto L15655 end
if var27674 > length then return false end
if 0 > var27676 then goto L15655 end
local var27699 = (14 + 39)
local var27700 = (var27699 + 1)
if var27700 > length then return false end
local var27702 = P[var27699]
if 0 > var27702 then goto L15655 end
if var2 > length then return false end
if var27672 ~= 2048 then goto L15655 end
if var27674 > length then return false end
if 0 > var27676 then goto L15655 end
local var27712 = (14 + 6)
local var27713 = (var27712 + 2)
if var27713 > length then return false end
local var27718 = (band(rshift(bswap(cast("uint16_t*", P+var27712)[0]), 16),8191) % 4294967296)
if var27718 ~= 0 then goto L15655 end
if var2 > length then return false end
if var27672 ~= 2048 then goto L15655 end
if var27674 > length then return false end
if 0 > var27676 then goto L15655 end
if var2 > length then return false end
if var27672 ~= 2048 then goto L15655 end
if var27674 > length then return false end
if 0 > var27676 then goto L15655 end
if var27687 > length then return false end
if var27689 ~= 6 then goto L15655 end
if var2 > length then return false end
if var27672 ~= 2048 then goto L15655 end
if var27674 > length then return false end
if 0 > var27676 then goto L15655 end
if var27700 > length then return false end
if 0 > var27702 then goto L15655 end
if var2 > length then return false end
if var27672 ~= 2048 then goto L15655 end
if var27674 > length then return false end
if 0 > var27676 then goto L15655 end
if var27713 > length then return false end
if var27718 ~= 0 then goto L15655 end
local var27773 = (lshift(band(P[14],15),2) + 14)
local var27774 = (var27773 + 21)
local var27775 = (var27774 + 1)
if var27775 > length then return false end
if var2 > length then return false end
if var27672 ~= 2048 then goto L15655 end
if var27674 > length then return false end
if 0 > var27676 then goto L15655 end
if var2 > length then return false end
if var27672 ~= 2048 then goto L15655 end
if var27674 > length then return false end
if 0 > var27676 then goto L15655 end
if var27687 > length then return false end
if var27689 ~= 6 then goto L15655 end
if var2 > length then return false end
if var27672 ~= 2048 then goto L15655 end
if var27674 > length then return false end
if 0 > var27676 then goto L15655 end
if var27700 > length then return false end
if 0 > var27702 then goto L15655 end
if var2 > length then return false end
if var27672 ~= 2048 then goto L15655 end
if var27674 > length then return false end
if 0 > var27676 then goto L15655 end
if var27713 > length then return false end
if var27718 ~= 0 then goto L15655 end
if var2 > length then return false end
if var27672 ~= 2048 then goto L15655 end
if var27674 > length then return false end
if 0 > var27676 then goto L15655 end
if var2 > length then return false end
if var27672 ~= 2048 then goto L15655 end
if var27674 > length then return false end
if 0 > var27676 then goto L15655 end
if var27687 > length then return false end
if var27689 ~= 6 then goto L15655 end
if var2 > length then return false end
if var27672 ~= 2048 then goto L15655 end
if var27674 > length then return false end
if 0 > var27676 then goto L15655 end
if var27700 > length then return false end
if 0 > var27702 then goto L15655 end
if var2 > length then return false end
if var27672 ~= 2048 then goto L15655 end
if var27674 > length then return false end
if 0 > var27676 then goto L15655 end
if var27713 > length then return false end
if var27718 ~= 0 then goto L15655 end
if var27775 > length then return false end
local var27895 = ((20 + P[var27774]) % 4294967296)
local var27898 = (var27773 + ((var27895 + 2) % 4294967296))
if (var27898 + 1) > length then return false end
local var27934 = (var27773 + ((((((var27895 + 1) % 4294967296) + P[var27898]) % 4294967296) + 1) % 4294967296))
if (var27934 + 1) > length then return false end
if P[var27934] == 1 then goto L15655 end
if var2 > length then return false end
local var27976 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var27976 ~= 2048 then goto L15655 end
local var27977 = (14 + 19)
local var27978 = (var27977 + 1)
if var27978 > length then return false end
local var27980 = P[var27977]
if 0 > var27980 then goto L15655 end
if var2 > length then return false end
if var27976 ~= 2048 then goto L15655 end
if var27978 > length then return false end
if 0 > var27980 then goto L15655 end
local var27990 = (14 + 9)
local var27991 = (var27990 + 1)
if var27991 > length then return false end
local var27993 = P[var27990]
if var27993 ~= 6 then goto L15655 end
if var2 > length then return false end
if var27976 ~= 2048 then goto L15655 end
if var27978 > length then return false end
if 0 > var27980 then goto L15655 end
local var28003 = (14 + 39)
local var28004 = (var28003 + 1)
if var28004 > length then return false end
local var28006 = P[var28003]
if 0 > var28006 then goto L15655 end
if var2 > length then return false end
if var27976 ~= 2048 then goto L15655 end
if var27978 > length then return false end
if 0 > var27980 then goto L15655 end
local var28016 = (14 + 6)
local var28017 = (var28016 + 2)
if var28017 > length then return false end
local var28022 = (band(rshift(bswap(cast("uint16_t*", P+var28016)[0]), 16),8191) % 4294967296)
if var28022 ~= 0 then goto L15655 end
if var2 > length then return false end
if var27976 ~= 2048 then goto L15655 end
if var27978 > length then return false end
if 0 > var27980 then goto L15655 end
if var2 > length then return false end
if var27976 ~= 2048 then goto L15655 end
if var27978 > length then return false end
if 0 > var27980 then goto L15655 end
if var27991 > length then return false end
if var27993 ~= 6 then goto L15655 end
if var2 > length then return false end
if var27976 ~= 2048 then goto L15655 end
if var27978 > length then return false end
if 0 > var27980 then goto L15655 end
if var28004 > length then return false end
if 0 > var28006 then goto L15655 end
if var2 > length then return false end
if var27976 ~= 2048 then goto L15655 end
if var27978 > length then return false end
if 0 > var27980 then goto L15655 end
if var28017 > length then return false end
if var28022 ~= 0 then goto L15655 end
local var28077 = (lshift(band(P[14],15),2) + 14)
local var28078 = (var28077 + 21)
local var28079 = (var28078 + 1)
if var28079 > length then return false end
if var2 > length then return false end
if var27976 ~= 2048 then goto L15655 end
if var27978 > length then return false end
if 0 > var27980 then goto L15655 end
if var2 > length then return false end
if var27976 ~= 2048 then goto L15655 end
if var27978 > length then return false end
if 0 > var27980 then goto L15655 end
if var27991 > length then return false end
if var27993 ~= 6 then goto L15655 end
if var2 > length then return false end
if var27976 ~= 2048 then goto L15655 end
if var27978 > length then return false end
if 0 > var27980 then goto L15655 end
if var28004 > length then return false end
if 0 > var28006 then goto L15655 end
if var2 > length then return false end
if var27976 ~= 2048 then goto L15655 end
if var27978 > length then return false end
if 0 > var27980 then goto L15655 end
if var28017 > length then return false end
if var28022 ~= 0 then goto L15655 end
if var2 > length then return false end
if var27976 ~= 2048 then goto L15655 end
if var27978 > length then return false end
if 0 > var27980 then goto L15655 end
if var2 > length then return false end
if var27976 ~= 2048 then goto L15655 end
if var27978 > length then return false end
if 0 > var27980 then goto L15655 end
if var27991 > length then return false end
if var27993 ~= 6 then goto L15655 end
if var2 > length then return false end
if var27976 ~= 2048 then goto L15655 end
if var27978 > length then return false end
if 0 > var27980 then goto L15655 end
if var28004 > length then return false end
if 0 > var28006 then goto L15655 end
if var2 > length then return false end
if var27976 ~= 2048 then goto L15655 end
if var27978 > length then return false end
if 0 > var27980 then goto L15655 end
if var28017 > length then return false end
if var28022 ~= 0 then goto L15655 end
if var28079 > length then return false end
local var28199 = ((20 + P[var28078]) % 4294967296)
local var28202 = (var28077 + ((var28199 + 2) % 4294967296))
local var28203 = (var28202 + 1)
if var28203 > length then return false end
if var2 > length then return false end
if var27976 ~= 2048 then goto L15655 end
if var27978 > length then return false end
if 0 > var27980 then goto L15655 end
if var2 > length then return false end
if var27976 ~= 2048 then goto L15655 end
if var27978 > length then return false end
if 0 > var27980 then goto L15655 end
if var27991 > length then return false end
if var27993 ~= 6 then goto L15655 end
if var2 > length then return false end
if var27976 ~= 2048 then goto L15655 end
if var27978 > length then return false end
if 0 > var27980 then goto L15655 end
if var28004 > length then return false end
if 0 > var28006 then goto L15655 end
if var2 > length then return false end
if var27976 ~= 2048 then goto L15655 end
if var27978 > length then return false end
if 0 > var27980 then goto L15655 end
if var28017 > length then return false end
if var28022 ~= 0 then goto L15655 end
if var2 > length then return false end
if var27976 ~= 2048 then goto L15655 end
if var27978 > length then return false end
if 0 > var27980 then goto L15655 end
if var2 > length then return false end
if var27976 ~= 2048 then goto L15655 end
if var27978 > length then return false end
if 0 > var27980 then goto L15655 end
if var27991 > length then return false end
if var27993 ~= 6 then goto L15655 end
if var2 > length then return false end
if var27976 ~= 2048 then goto L15655 end
if var27978 > length then return false end
if 0 > var27980 then goto L15655 end
if var28004 > length then return false end
if 0 > var28006 then goto L15655 end
if var2 > length then return false end
if var27976 ~= 2048 then goto L15655 end
if var27978 > length then return false end
if 0 > var27980 then goto L15655 end
if var28017 > length then return false end
if var28022 ~= 0 then goto L15655 end
if var28079 > length then return false end
if var2 > length then return false end
if var27976 ~= 2048 then goto L15655 end
if var27978 > length then return false end
if 0 > var27980 then goto L15655 end
if var2 > length then return false end
if var27976 ~= 2048 then goto L15655 end
if var27978 > length then return false end
if 0 > var27980 then goto L15655 end
if var27991 > length then return false end
if var27993 ~= 6 then goto L15655 end
if var2 > length then return false end
if var27976 ~= 2048 then goto L15655 end
if var27978 > length then return false end
if 0 > var27980 then goto L15655 end
if var28004 > length then return false end
if 0 > var28006 then goto L15655 end
if var2 > length then return false end
if var27976 ~= 2048 then goto L15655 end
if var27978 > length then return false end
if 0 > var27980 then goto L15655 end
if var28017 > length then return false end
if var28022 ~= 0 then goto L15655 end
if var2 > length then return false end
if var27976 ~= 2048 then goto L15655 end
if var27978 > length then return false end
if 0 > var27980 then goto L15655 end
if var2 > length then return false end
if var27976 ~= 2048 then goto L15655 end
if var27978 > length then return false end
if 0 > var27980 then goto L15655 end
if var27991 > length then return false end
if var27993 ~= 6 then goto L15655 end
if var2 > length then return false end
if var27976 ~= 2048 then goto L15655 end
if var27978 > length then return false end
if 0 > var27980 then goto L15655 end
if var28004 > length then return false end
if 0 > var28006 then goto L15655 end
if var2 > length then return false end
if var27976 ~= 2048 then goto L15655 end
if var27978 > length then return false end
if 0 > var27980 then goto L15655 end
if var28017 > length then return false end
if var28022 ~= 0 then goto L15655 end
if var28079 > length then return false end
if var28203 > length then return false end
local var28467 = ((((var28199 + 1) % 4294967296) + P[var28202]) % 4294967296)
local var28470 = (var28077 + ((var28467 + 2) % 4294967296))
if (var28470 + 1) > length then return false end
local var28544 = (var28077 + ((((var28467 + 1) % 4294967296) + P[var28470]) % 4294967296))
if (var28544 + 1) > length then return false end
if P[var28544] == 3 then return true end
goto L15655
end
::L15655::
if var2 > length then return false end
local var28624 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var28624 ~= 2048 then goto L12689 end
local var28625 = (14 + 19)
local var28626 = (var28625 + 1)
if var28626 > length then return false end
local var28628 = P[var28625]
if 0 > var28628 then goto L12689 end
if var2 > length then return false end
if var28624 ~= 2048 then goto L12689 end
if var28626 > length then return false end
if 0 > var28628 then goto L12689 end
local var28638 = (14 + 9)
local var28639 = (var28638 + 1)
if var28639 > length then return false end
local var28641 = P[var28638]
if var28641 ~= 6 then goto L12689 end
if var2 > length then return false end
if var28624 ~= 2048 then goto L12689 end
if var28626 > length then return false end
if 0 > var28628 then goto L12689 end
local var28651 = (14 + 39)
local var28652 = (var28651 + 1)
if var28652 > length then return false end
local var28654 = P[var28651]
if 0 > var28654 then goto L12689 end
if var2 > length then return false end
if var28624 ~= 2048 then goto L12689 end
if var28626 > length then return false end
if 0 > var28628 then goto L12689 end
local var28664 = (14 + 6)
local var28665 = (var28664 + 2)
if var28665 > length then return false end
local var28670 = (band(rshift(bswap(cast("uint16_t*", P+var28664)[0]), 16),8191) % 4294967296)
if var28670 ~= 0 then goto L12689 end
if var2 > length then return false end
if var28624 ~= 2048 then goto L12689 end
if var28626 > length then return false end
if 0 > var28628 then goto L12689 end
if var2 > length then return false end
if var28624 ~= 2048 then goto L12689 end
if var28626 > length then return false end
if 0 > var28628 then goto L12689 end
if var28639 > length then return false end
if var28641 ~= 6 then goto L12689 end
if var2 > length then return false end
if var28624 ~= 2048 then goto L12689 end
if var28626 > length then return false end
if 0 > var28628 then goto L12689 end
if var28652 > length then return false end
if 0 > var28654 then goto L12689 end
if var2 > length then return false end
if var28624 ~= 2048 then goto L12689 end
if var28626 > length then return false end
if 0 > var28628 then goto L12689 end
if var28665 > length then return false end
if var28670 ~= 0 then goto L12689 end
local var28725 = (lshift(band(P[14],15),2) + 14)
local var28726 = (var28725 + 21)
local var28727 = (var28726 + 1)
if var28727 > length then return false end
if var2 > length then return false end
if var28624 ~= 2048 then goto L12689 end
if var28626 > length then return false end
if 0 > var28628 then goto L12689 end
if var2 > length then return false end
if var28624 ~= 2048 then goto L12689 end
if var28626 > length then return false end
if 0 > var28628 then goto L12689 end
if var28639 > length then return false end
if var28641 ~= 6 then goto L12689 end
if var2 > length then return false end
if var28624 ~= 2048 then goto L12689 end
if var28626 > length then return false end
if 0 > var28628 then goto L12689 end
if var28652 > length then return false end
if 0 > var28654 then goto L12689 end
if var2 > length then return false end
if var28624 ~= 2048 then goto L12689 end
if var28626 > length then return false end
if 0 > var28628 then goto L12689 end
if var28665 > length then return false end
if var28670 ~= 0 then goto L12689 end
if var2 > length then return false end
if var28624 ~= 2048 then goto L12689 end
if var28626 > length then return false end
if 0 > var28628 then goto L12689 end
if var2 > length then return false end
if var28624 ~= 2048 then goto L12689 end
if var28626 > length then return false end
if 0 > var28628 then goto L12689 end
if var28639 > length then return false end
if var28641 ~= 6 then goto L12689 end
if var2 > length then return false end
if var28624 ~= 2048 then goto L12689 end
if var28626 > length then return false end
if 0 > var28628 then goto L12689 end
if var28652 > length then return false end
if 0 > var28654 then goto L12689 end
if var2 > length then return false end
if var28624 ~= 2048 then goto L12689 end
if var28626 > length then return false end
if 0 > var28628 then goto L12689 end
if var28665 > length then return false end
if var28670 ~= 0 then goto L12689 end
if var28727 > length then return false end
local var28847 = ((20 + P[var28726]) % 4294967296)
local var28850 = (var28725 + ((var28847 + 2) % 4294967296))
if (var28850 + 1) > length then return false end
local var28886 = (var28725 + ((((((var28847 + 1) % 4294967296) + P[var28850]) % 4294967296) + 1) % 4294967296))
if (var28886 + 1) > length then return false end
if P[var28886] ~= 1 then goto L12689 end
if var2 > length then return false end
local var28928 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var28928 ~= 2048 then goto L12689 end
local var28929 = (14 + 19)
local var28930 = (var28929 + 1)
if var28930 > length then return false end
local var28932 = P[var28929]
if 0 > var28932 then goto L12689 end
if var2 > length then return false end
if var28928 ~= 2048 then goto L12689 end
if var28930 > length then return false end
if 0 > var28932 then goto L12689 end
local var28942 = (14 + 9)
local var28943 = (var28942 + 1)
if var28943 > length then return false end
local var28945 = P[var28942]
if var28945 ~= 6 then goto L12689 end
if var2 > length then return false end
if var28928 ~= 2048 then goto L12689 end
if var28930 > length then return false end
if 0 > var28932 then goto L12689 end
local var28955 = (14 + 39)
local var28956 = (var28955 + 1)
if var28956 > length then return false end
local var28958 = P[var28955]
if 0 > var28958 then goto L12689 end
if var2 > length then return false end
if var28928 ~= 2048 then goto L12689 end
if var28930 > length then return false end
if 0 > var28932 then goto L12689 end
local var28968 = (14 + 6)
local var28969 = (var28968 + 2)
if var28969 > length then return false end
local var28974 = (band(rshift(bswap(cast("uint16_t*", P+var28968)[0]), 16),8191) % 4294967296)
if var28974 ~= 0 then goto L12689 end
if var2 > length then return false end
if var28928 ~= 2048 then goto L12689 end
if var28930 > length then return false end
if 0 > var28932 then goto L12689 end
if var2 > length then return false end
if var28928 ~= 2048 then goto L12689 end
if var28930 > length then return false end
if 0 > var28932 then goto L12689 end
if var28943 > length then return false end
if var28945 ~= 6 then goto L12689 end
if var2 > length then return false end
if var28928 ~= 2048 then goto L12689 end
if var28930 > length then return false end
if 0 > var28932 then goto L12689 end
if var28956 > length then return false end
if 0 > var28958 then goto L12689 end
if var2 > length then return false end
if var28928 ~= 2048 then goto L12689 end
if var28930 > length then return false end
if 0 > var28932 then goto L12689 end
if var28969 > length then return false end
if var28974 ~= 0 then goto L12689 end
local var29029 = (lshift(band(P[14],15),2) + 14)
local var29030 = (var29029 + 21)
local var29031 = (var29030 + 1)
if var29031 > length then return false end
if var2 > length then return false end
if var28928 ~= 2048 then goto L12689 end
if var28930 > length then return false end
if 0 > var28932 then goto L12689 end
if var2 > length then return false end
if var28928 ~= 2048 then goto L12689 end
if var28930 > length then return false end
if 0 > var28932 then goto L12689 end
if var28943 > length then return false end
if var28945 ~= 6 then goto L12689 end
if var2 > length then return false end
if var28928 ~= 2048 then goto L12689 end
if var28930 > length then return false end
if 0 > var28932 then goto L12689 end
if var28956 > length then return false end
if 0 > var28958 then goto L12689 end
if var2 > length then return false end
if var28928 ~= 2048 then goto L12689 end
if var28930 > length then return false end
if 0 > var28932 then goto L12689 end
if var28969 > length then return false end
if var28974 ~= 0 then goto L12689 end
if var2 > length then return false end
if var28928 ~= 2048 then goto L12689 end
if var28930 > length then return false end
if 0 > var28932 then goto L12689 end
if var2 > length then return false end
if var28928 ~= 2048 then goto L12689 end
if var28930 > length then return false end
if 0 > var28932 then goto L12689 end
if var28943 > length then return false end
if var28945 ~= 6 then goto L12689 end
if var2 > length then return false end
if var28928 ~= 2048 then goto L12689 end
if var28930 > length then return false end
if 0 > var28932 then goto L12689 end
if var28956 > length then return false end
if 0 > var28958 then goto L12689 end
if var2 > length then return false end
if var28928 ~= 2048 then goto L12689 end
if var28930 > length then return false end
if 0 > var28932 then goto L12689 end
if var28969 > length then return false end
if var28974 ~= 0 then goto L12689 end
if var29031 > length then return false end
local var29151 = ((20 + P[var29030]) % 4294967296)
local var29154 = (var29029 + ((var29151 + 2) % 4294967296))
if (var29154 + 1) > length then return false end
local var29190 = (var29029 + ((((((var29151 + 1) % 4294967296) + P[var29154]) % 4294967296) + 2) % 4294967296))
if (var29190 + 1) > length then return false end
if P[var29190] == 3 then return true end
goto L12689
end
::L12689::
if var2 > length then return false end
local var29232 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var29232 ~= 2048 then goto L107 end
local var29233 = (14 + 19)
local var29234 = (var29233 + 1)
if var29234 > length then return false end
local var29236 = P[var29233]
if 0 > var29236 then goto L107 end
if var2 > length then return false end
if var29232 ~= 2048 then goto L107 end
if var29234 > length then return false end
if 0 > var29236 then goto L107 end
local var29246 = (14 + 9)
local var29247 = (var29246 + 1)
if var29247 > length then return false end
local var29249 = P[var29246]
if var29249 ~= 6 then goto L107 end
if var2 > length then return false end
if var29232 ~= 2048 then goto L107 end
if var29234 > length then return false end
if 0 > var29236 then goto L107 end
local var29259 = (14 + 39)
local var29260 = (var29259 + 1)
if var29260 > length then return false end
local var29262 = P[var29259]
if 0 > var29262 then goto L107 end
if var2 > length then return false end
if var29232 ~= 2048 then goto L107 end
if var29234 > length then return false end
if 0 > var29236 then goto L107 end
local var29272 = (14 + 6)
local var29273 = (var29272 + 2)
if var29273 > length then return false end
local var29278 = (band(rshift(bswap(cast("uint16_t*", P+var29272)[0]), 16),8191) % 4294967296)
if var29278 ~= 0 then goto L107 end
if var2 > length then return false end
if var29232 ~= 2048 then goto L107 end
if var29234 > length then return false end
if 0 > var29236 then goto L107 end
if var2 > length then return false end
if var29232 ~= 2048 then goto L107 end
if var29234 > length then return false end
if 0 > var29236 then goto L107 end
if var29247 > length then return false end
if var29249 ~= 6 then goto L107 end
if var2 > length then return false end
if var29232 ~= 2048 then goto L107 end
if var29234 > length then return false end
if 0 > var29236 then goto L107 end
if var29260 > length then return false end
if 0 > var29262 then goto L107 end
if var2 > length then return false end
if var29232 ~= 2048 then goto L107 end
if var29234 > length then return false end
if 0 > var29236 then goto L107 end
if var29273 > length then return false end
if var29278 ~= 0 then goto L107 end
local var29333 = (lshift(band(P[14],15),2) + 14)
local var29334 = (var29333 + 21)
if (var29334 + 1) > length then return false end
local var29350 = (var29333 + ((((20 + P[var29334]) % 4294967296) + 1) % 4294967296))
if (var29350 + 1) > length then return false end
if P[var29350] ~= 1 then goto L107 end
if var2 > length then return false end
local var29372 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var29372 ~= 2048 then goto L16863 end
do
local var29373 = (14 + 19)
local var29374 = (var29373 + 1)
if var29374 > length then return false end
local var29376 = P[var29373]
if 0 > var29376 then goto L16863 end
if var2 > length then return false end
if var29372 ~= 2048 then goto L16863 end
if var29374 > length then return false end
if 0 > var29376 then goto L16863 end
local var29386 = (14 + 9)
local var29387 = (var29386 + 1)
if var29387 > length then return false end
local var29389 = P[var29386]
if var29389 ~= 6 then goto L16863 end
if var2 > length then return false end
if var29372 ~= 2048 then goto L16863 end
if var29374 > length then return false end
if 0 > var29376 then goto L16863 end
local var29399 = (14 + 39)
local var29400 = (var29399 + 1)
if var29400 > length then return false end
local var29402 = P[var29399]
if 0 > var29402 then goto L16863 end
if var2 > length then return false end
if var29372 ~= 2048 then goto L16863 end
if var29374 > length then return false end
if 0 > var29376 then goto L16863 end
local var29412 = (14 + 6)
local var29413 = (var29412 + 2)
if var29413 > length then return false end
local var29418 = (band(rshift(bswap(cast("uint16_t*", P+var29412)[0]), 16),8191) % 4294967296)
if var29418 ~= 0 then goto L16863 end
if var2 > length then return false end
if var29372 ~= 2048 then goto L16863 end
if var29374 > length then return false end
if 0 > var29376 then goto L16863 end
if var2 > length then return false end
if var29372 ~= 2048 then goto L16863 end
if var29374 > length then return false end
if 0 > var29376 then goto L16863 end
if var29387 > length then return false end
if var29389 ~= 6 then goto L16863 end
if var2 > length then return false end
if var29372 ~= 2048 then goto L16863 end
if var29374 > length then return false end
if 0 > var29376 then goto L16863 end
if var29400 > length then return false end
if 0 > var29402 then goto L16863 end
if var2 > length then return false end
if var29372 ~= 2048 then goto L16863 end
if var29374 > length then return false end
if 0 > var29376 then goto L16863 end
if var29413 > length then return false end
if var29418 ~= 0 then goto L16863 end
local var29473 = (lshift(band(P[14],15),2) + 14)
local var29474 = (var29473 + 21)
if (var29474 + 1) > length then return false end
local var29490 = (var29473 + ((((20 + P[var29474]) % 4294967296) + 2) % 4294967296))
if (var29490 + 1) > length then return false end
if P[var29490] == 3 then return true end
goto L16863
end
::L16863::
if var2 > length then return false end
local var29512 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var29512 ~= 2048 then goto L16861 end
do
local var29513 = (14 + 19)
local var29514 = (var29513 + 1)
if var29514 > length then return false end
local var29516 = P[var29513]
if 0 > var29516 then goto L16861 end
if var2 > length then return false end
if var29512 ~= 2048 then goto L16861 end
if var29514 > length then return false end
if 0 > var29516 then goto L16861 end
local var29526 = (14 + 9)
local var29527 = (var29526 + 1)
if var29527 > length then return false end
local var29529 = P[var29526]
if var29529 ~= 6 then goto L16861 end
if var2 > length then return false end
if var29512 ~= 2048 then goto L16861 end
if var29514 > length then return false end
if 0 > var29516 then goto L16861 end
local var29539 = (14 + 39)
local var29540 = (var29539 + 1)
if var29540 > length then return false end
local var29542 = P[var29539]
if 0 > var29542 then goto L16861 end
if var2 > length then return false end
if var29512 ~= 2048 then goto L16861 end
if var29514 > length then return false end
if 0 > var29516 then goto L16861 end
local var29552 = (14 + 6)
local var29553 = (var29552 + 2)
if var29553 > length then return false end
local var29558 = (band(rshift(bswap(cast("uint16_t*", P+var29552)[0]), 16),8191) % 4294967296)
if var29558 ~= 0 then goto L16861 end
if var2 > length then return false end
if var29512 ~= 2048 then goto L16861 end
if var29514 > length then return false end
if 0 > var29516 then goto L16861 end
if var2 > length then return false end
if var29512 ~= 2048 then goto L16861 end
if var29514 > length then return false end
if 0 > var29516 then goto L16861 end
if var29527 > length then return false end
if var29529 ~= 6 then goto L16861 end
if var2 > length then return false end
if var29512 ~= 2048 then goto L16861 end
if var29514 > length then return false end
if 0 > var29516 then goto L16861 end
if var29540 > length then return false end
if 0 > var29542 then goto L16861 end
if var2 > length then return false end
if var29512 ~= 2048 then goto L16861 end
if var29514 > length then return false end
if 0 > var29516 then goto L16861 end
if var29553 > length then return false end
if var29558 ~= 0 then goto L16861 end
local var29613 = (lshift(band(P[14],15),2) + 14)
local var29614 = (var29613 + 21)
if (var29614 + 1) > length then return false end
local var29630 = (var29613 + ((((20 + P[var29614]) % 4294967296) + 2) % 4294967296))
if (var29630 + 1) > length then return false end
if P[var29630] == 1 then goto L16861 end
if var2 > length then return false end
local var29652 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var29652 ~= 2048 then goto L17053 end
do
local var29653 = (14 + 19)
local var29654 = (var29653 + 1)
if var29654 > length then return false end
local var29656 = P[var29653]
if 0 > var29656 then goto L17053 end
if var2 > length then return false end
if var29652 ~= 2048 then goto L17053 end
if var29654 > length then return false end
if 0 > var29656 then goto L17053 end
local var29666 = (14 + 9)
local var29667 = (var29666 + 1)
if var29667 > length then return false end
local var29669 = P[var29666]
if var29669 ~= 6 then goto L17053 end
if var2 > length then return false end
if var29652 ~= 2048 then goto L17053 end
if var29654 > length then return false end
if 0 > var29656 then goto L17053 end
local var29679 = (14 + 39)
local var29680 = (var29679 + 1)
if var29680 > length then return false end
local var29682 = P[var29679]
if 0 > var29682 then goto L17053 end
if var2 > length then return false end
if var29652 ~= 2048 then goto L17053 end
if var29654 > length then return false end
if 0 > var29656 then goto L17053 end
local var29692 = (14 + 6)
local var29693 = (var29692 + 2)
if var29693 > length then return false end
local var29698 = (band(rshift(bswap(cast("uint16_t*", P+var29692)[0]), 16),8191) % 4294967296)
if var29698 ~= 0 then goto L17053 end
if var2 > length then return false end
if var29652 ~= 2048 then goto L17053 end
if var29654 > length then return false end
if 0 > var29656 then goto L17053 end
if var2 > length then return false end
if var29652 ~= 2048 then goto L17053 end
if var29654 > length then return false end
if 0 > var29656 then goto L17053 end
if var29667 > length then return false end
if var29669 ~= 6 then goto L17053 end
if var2 > length then return false end
if var29652 ~= 2048 then goto L17053 end
if var29654 > length then return false end
if 0 > var29656 then goto L17053 end
if var29680 > length then return false end
if 0 > var29682 then goto L17053 end
if var2 > length then return false end
if var29652 ~= 2048 then goto L17053 end
if var29654 > length then return false end
if 0 > var29656 then goto L17053 end
if var29693 > length then return false end
if var29698 ~= 0 then goto L17053 end
local var29753 = (lshift(band(P[14],15),2) + 14)
local var29754 = (var29753 + 21)
local var29755 = (var29754 + 1)
if var29755 > length then return false end
if var2 > length then return false end
if var29652 ~= 2048 then goto L17053 end
if var29654 > length then return false end
if 0 > var29656 then goto L17053 end
if var2 > length then return false end
if var29652 ~= 2048 then goto L17053 end
if var29654 > length then return false end
if 0 > var29656 then goto L17053 end
if var29667 > length then return false end
if var29669 ~= 6 then goto L17053 end
if var2 > length then return false end
if var29652 ~= 2048 then goto L17053 end
if var29654 > length then return false end
if 0 > var29656 then goto L17053 end
if var29680 > length then return false end
if 0 > var29682 then goto L17053 end
if var2 > length then return false end
if var29652 ~= 2048 then goto L17053 end
if var29654 > length then return false end
if 0 > var29656 then goto L17053 end
if var29693 > length then return false end
if var29698 ~= 0 then goto L17053 end
if var2 > length then return false end
if var29652 ~= 2048 then goto L17053 end
if var29654 > length then return false end
if 0 > var29656 then goto L17053 end
if var2 > length then return false end
if var29652 ~= 2048 then goto L17053 end
if var29654 > length then return false end
if 0 > var29656 then goto L17053 end
if var29667 > length then return false end
if var29669 ~= 6 then goto L17053 end
if var2 > length then return false end
if var29652 ~= 2048 then goto L17053 end
if var29654 > length then return false end
if 0 > var29656 then goto L17053 end
if var29680 > length then return false end
if 0 > var29682 then goto L17053 end
if var2 > length then return false end
if var29652 ~= 2048 then goto L17053 end
if var29654 > length then return false end
if 0 > var29656 then goto L17053 end
if var29693 > length then return false end
if var29698 ~= 0 then goto L17053 end
if var29755 > length then return false end
local var29875 = ((20 + P[var29754]) % 4294967296)
local var29878 = (var29753 + ((var29875 + 3) % 4294967296))
if (var29878 + 1) > length then return false end
local var29912 = (var29753 + ((((var29875 + 2) % 4294967296) + P[var29878]) % 4294967296))
if (var29912 + 1) > length then return false end
if P[var29912] == 3 then return true end
goto L17053
end
::L17053::
if var2 > length then return false end
local var29952 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var29952 ~= 2048 then goto L17051 end
do
local var29953 = (14 + 19)
local var29954 = (var29953 + 1)
if var29954 > length then return false end
local var29956 = P[var29953]
if 0 > var29956 then goto L17051 end
if var2 > length then return false end
if var29952 ~= 2048 then goto L17051 end
if var29954 > length then return false end
if 0 > var29956 then goto L17051 end
local var29966 = (14 + 9)
local var29967 = (var29966 + 1)
if var29967 > length then return false end
local var29969 = P[var29966]
if var29969 ~= 6 then goto L17051 end
if var2 > length then return false end
if var29952 ~= 2048 then goto L17051 end
if var29954 > length then return false end
if 0 > var29956 then goto L17051 end
local var29979 = (14 + 39)
local var29980 = (var29979 + 1)
if var29980 > length then return false end
local var29982 = P[var29979]
if 0 > var29982 then goto L17051 end
if var2 > length then return false end
if var29952 ~= 2048 then goto L17051 end
if var29954 > length then return false end
if 0 > var29956 then goto L17051 end
local var29992 = (14 + 6)
local var29993 = (var29992 + 2)
if var29993 > length then return false end
local var29998 = (band(rshift(bswap(cast("uint16_t*", P+var29992)[0]), 16),8191) % 4294967296)
if var29998 ~= 0 then goto L17051 end
if var2 > length then return false end
if var29952 ~= 2048 then goto L17051 end
if var29954 > length then return false end
if 0 > var29956 then goto L17051 end
if var2 > length then return false end
if var29952 ~= 2048 then goto L17051 end
if var29954 > length then return false end
if 0 > var29956 then goto L17051 end
if var29967 > length then return false end
if var29969 ~= 6 then goto L17051 end
if var2 > length then return false end
if var29952 ~= 2048 then goto L17051 end
if var29954 > length then return false end
if 0 > var29956 then goto L17051 end
if var29980 > length then return false end
if 0 > var29982 then goto L17051 end
if var2 > length then return false end
if var29952 ~= 2048 then goto L17051 end
if var29954 > length then return false end
if 0 > var29956 then goto L17051 end
if var29993 > length then return false end
if var29998 ~= 0 then goto L17051 end
local var30053 = (lshift(band(P[14],15),2) + 14)
local var30054 = (var30053 + 21)
local var30055 = (var30054 + 1)
if var30055 > length then return false end
if var2 > length then return false end
if var29952 ~= 2048 then goto L17051 end
if var29954 > length then return false end
if 0 > var29956 then goto L17051 end
if var2 > length then return false end
if var29952 ~= 2048 then goto L17051 end
if var29954 > length then return false end
if 0 > var29956 then goto L17051 end
if var29967 > length then return false end
if var29969 ~= 6 then goto L17051 end
if var2 > length then return false end
if var29952 ~= 2048 then goto L17051 end
if var29954 > length then return false end
if 0 > var29956 then goto L17051 end
if var29980 > length then return false end
if 0 > var29982 then goto L17051 end
if var2 > length then return false end
if var29952 ~= 2048 then goto L17051 end
if var29954 > length then return false end
if 0 > var29956 then goto L17051 end
if var29993 > length then return false end
if var29998 ~= 0 then goto L17051 end
if var2 > length then return false end
if var29952 ~= 2048 then goto L17051 end
if var29954 > length then return false end
if 0 > var29956 then goto L17051 end
if var2 > length then return false end
if var29952 ~= 2048 then goto L17051 end
if var29954 > length then return false end
if 0 > var29956 then goto L17051 end
if var29967 > length then return false end
if var29969 ~= 6 then goto L17051 end
if var2 > length then return false end
if var29952 ~= 2048 then goto L17051 end
if var29954 > length then return false end
if 0 > var29956 then goto L17051 end
if var29980 > length then return false end
if 0 > var29982 then goto L17051 end
if var2 > length then return false end
if var29952 ~= 2048 then goto L17051 end
if var29954 > length then return false end
if 0 > var29956 then goto L17051 end
if var29993 > length then return false end
if var29998 ~= 0 then goto L17051 end
if var30055 > length then return false end
local var30175 = ((20 + P[var30054]) % 4294967296)
local var30178 = (var30053 + ((var30175 + 3) % 4294967296))
if (var30178 + 1) > length then return false end
local var30212 = (var30053 + ((((var30175 + 2) % 4294967296) + P[var30178]) % 4294967296))
if (var30212 + 1) > length then return false end
if P[var30212] == 1 then goto L17051 end
if var2 > length then return false end
local var30252 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var30252 ~= 2048 then goto L17051 end
local var30253 = (14 + 19)
local var30254 = (var30253 + 1)
if var30254 > length then return false end
local var30256 = P[var30253]
if 0 > var30256 then goto L17051 end
if var2 > length then return false end
if var30252 ~= 2048 then goto L17051 end
if var30254 > length then return false end
if 0 > var30256 then goto L17051 end
local var30266 = (14 + 9)
local var30267 = (var30266 + 1)
if var30267 > length then return false end
local var30269 = P[var30266]
if var30269 ~= 6 then goto L17051 end
if var2 > length then return false end
if var30252 ~= 2048 then goto L17051 end
if var30254 > length then return false end
if 0 > var30256 then goto L17051 end
local var30279 = (14 + 39)
local var30280 = (var30279 + 1)
if var30280 > length then return false end
local var30282 = P[var30279]
if 0 > var30282 then goto L17051 end
if var2 > length then return false end
if var30252 ~= 2048 then goto L17051 end
if var30254 > length then return false end
if 0 > var30256 then goto L17051 end
local var30292 = (14 + 6)
local var30293 = (var30292 + 2)
if var30293 > length then return false end
local var30298 = (band(rshift(bswap(cast("uint16_t*", P+var30292)[0]), 16),8191) % 4294967296)
if var30298 ~= 0 then goto L17051 end
if var2 > length then return false end
if var30252 ~= 2048 then goto L17051 end
if var30254 > length then return false end
if 0 > var30256 then goto L17051 end
if var2 > length then return false end
if var30252 ~= 2048 then goto L17051 end
if var30254 > length then return false end
if 0 > var30256 then goto L17051 end
if var30267 > length then return false end
if var30269 ~= 6 then goto L17051 end
if var2 > length then return false end
if var30252 ~= 2048 then goto L17051 end
if var30254 > length then return false end
if 0 > var30256 then goto L17051 end
if var30280 > length then return false end
if 0 > var30282 then goto L17051 end
if var2 > length then return false end
if var30252 ~= 2048 then goto L17051 end
if var30254 > length then return false end
if 0 > var30256 then goto L17051 end
if var30293 > length then return false end
if var30298 ~= 0 then goto L17051 end
local var30353 = (lshift(band(P[14],15),2) + 14)
local var30354 = (var30353 + 21)
local var30355 = (var30354 + 1)
if var30355 > length then return false end
if var2 > length then return false end
if var30252 ~= 2048 then goto L17051 end
if var30254 > length then return false end
if 0 > var30256 then goto L17051 end
if var2 > length then return false end
if var30252 ~= 2048 then goto L17051 end
if var30254 > length then return false end
if 0 > var30256 then goto L17051 end
if var30267 > length then return false end
if var30269 ~= 6 then goto L17051 end
if var2 > length then return false end
if var30252 ~= 2048 then goto L17051 end
if var30254 > length then return false end
if 0 > var30256 then goto L17051 end
if var30280 > length then return false end
if 0 > var30282 then goto L17051 end
if var2 > length then return false end
if var30252 ~= 2048 then goto L17051 end
if var30254 > length then return false end
if 0 > var30256 then goto L17051 end
if var30293 > length then return false end
if var30298 ~= 0 then goto L17051 end
if var2 > length then return false end
if var30252 ~= 2048 then goto L17051 end
if var30254 > length then return false end
if 0 > var30256 then goto L17051 end
if var2 > length then return false end
if var30252 ~= 2048 then goto L17051 end
if var30254 > length then return false end
if 0 > var30256 then goto L17051 end
if var30267 > length then return false end
if var30269 ~= 6 then goto L17051 end
if var2 > length then return false end
if var30252 ~= 2048 then goto L17051 end
if var30254 > length then return false end
if 0 > var30256 then goto L17051 end
if var30280 > length then return false end
if 0 > var30282 then goto L17051 end
if var2 > length then return false end
if var30252 ~= 2048 then goto L17051 end
if var30254 > length then return false end
if 0 > var30256 then goto L17051 end
if var30293 > length then return false end
if var30298 ~= 0 then goto L17051 end
if var30355 > length then return false end
local var30475 = ((20 + P[var30354]) % 4294967296)
local var30478 = (var30353 + ((var30475 + 3) % 4294967296))
local var30479 = (var30478 + 1)
if var30479 > length then return false end
if var2 > length then return false end
if var30252 ~= 2048 then goto L17051 end
if var30254 > length then return false end
if 0 > var30256 then goto L17051 end
if var2 > length then return false end
if var30252 ~= 2048 then goto L17051 end
if var30254 > length then return false end
if 0 > var30256 then goto L17051 end
if var30267 > length then return false end
if var30269 ~= 6 then goto L17051 end
if var2 > length then return false end
if var30252 ~= 2048 then goto L17051 end
if var30254 > length then return false end
if 0 > var30256 then goto L17051 end
if var30280 > length then return false end
if 0 > var30282 then goto L17051 end
if var2 > length then return false end
if var30252 ~= 2048 then goto L17051 end
if var30254 > length then return false end
if 0 > var30256 then goto L17051 end
if var30293 > length then return false end
if var30298 ~= 0 then goto L17051 end
if var2 > length then return false end
if var30252 ~= 2048 then goto L17051 end
if var30254 > length then return false end
if 0 > var30256 then goto L17051 end
if var2 > length then return false end
if var30252 ~= 2048 then goto L17051 end
if var30254 > length then return false end
if 0 > var30256 then goto L17051 end
if var30267 > length then return false end
if var30269 ~= 6 then goto L17051 end
if var2 > length then return false end
if var30252 ~= 2048 then goto L17051 end
if var30254 > length then return false end
if 0 > var30256 then goto L17051 end
if var30280 > length then return false end
if 0 > var30282 then goto L17051 end
if var2 > length then return false end
if var30252 ~= 2048 then goto L17051 end
if var30254 > length then return false end
if 0 > var30256 then goto L17051 end
if var30293 > length then return false end
if var30298 ~= 0 then goto L17051 end
if var30355 > length then return false end
if var2 > length then return false end
if var30252 ~= 2048 then goto L17051 end
if var30254 > length then return false end
if 0 > var30256 then goto L17051 end
if var2 > length then return false end
if var30252 ~= 2048 then goto L17051 end
if var30254 > length then return false end
if 0 > var30256 then goto L17051 end
if var30267 > length then return false end
if var30269 ~= 6 then goto L17051 end
if var2 > length then return false end
if var30252 ~= 2048 then goto L17051 end
if var30254 > length then return false end
if 0 > var30256 then goto L17051 end
if var30280 > length then return false end
if 0 > var30282 then goto L17051 end
if var2 > length then return false end
if var30252 ~= 2048 then goto L17051 end
if var30254 > length then return false end
if 0 > var30256 then goto L17051 end
if var30293 > length then return false end
if var30298 ~= 0 then goto L17051 end
if var2 > length then return false end
if var30252 ~= 2048 then goto L17051 end
if var30254 > length then return false end
if 0 > var30256 then goto L17051 end
if var2 > length then return false end
if var30252 ~= 2048 then goto L17051 end
if var30254 > length then return false end
if 0 > var30256 then goto L17051 end
if var30267 > length then return false end
if var30269 ~= 6 then goto L17051 end
if var2 > length then return false end
if var30252 ~= 2048 then goto L17051 end
if var30254 > length then return false end
if 0 > var30256 then goto L17051 end
if var30280 > length then return false end
if 0 > var30282 then goto L17051 end
if var2 > length then return false end
if var30252 ~= 2048 then goto L17051 end
if var30254 > length then return false end
if 0 > var30256 then goto L17051 end
if var30293 > length then return false end
if var30298 ~= 0 then goto L17051 end
if var30355 > length then return false end
if var30479 > length then return false end
local var30743 = ((((var30475 + 2) % 4294967296) + P[var30478]) % 4294967296)
local var30746 = (var30353 + ((var30743 + 1) % 4294967296))
if (var30746 + 1) > length then return false end
local var30818 = (var30353 + ((var30743 + P[var30746]) % 4294967296))
if (var30818 + 1) > length then return false end
if P[var30818] == 3 then return true end
goto L17051
end
::L17051::
if var2 > length then return false end
local var30896 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var30896 ~= 2048 then goto L16861 end
local var30897 = (14 + 19)
local var30898 = (var30897 + 1)
if var30898 > length then return false end
local var30900 = P[var30897]
if 0 > var30900 then goto L16861 end
if var2 > length then return false end
if var30896 ~= 2048 then goto L16861 end
if var30898 > length then return false end
if 0 > var30900 then goto L16861 end
local var30910 = (14 + 9)
local var30911 = (var30910 + 1)
if var30911 > length then return false end
local var30913 = P[var30910]
if var30913 ~= 6 then goto L16861 end
if var2 > length then return false end
if var30896 ~= 2048 then goto L16861 end
if var30898 > length then return false end
if 0 > var30900 then goto L16861 end
local var30923 = (14 + 39)
local var30924 = (var30923 + 1)
if var30924 > length then return false end
local var30926 = P[var30923]
if 0 > var30926 then goto L16861 end
if var2 > length then return false end
if var30896 ~= 2048 then goto L16861 end
if var30898 > length then return false end
if 0 > var30900 then goto L16861 end
local var30936 = (14 + 6)
local var30937 = (var30936 + 2)
if var30937 > length then return false end
local var30942 = (band(rshift(bswap(cast("uint16_t*", P+var30936)[0]), 16),8191) % 4294967296)
if var30942 ~= 0 then goto L16861 end
if var2 > length then return false end
if var30896 ~= 2048 then goto L16861 end
if var30898 > length then return false end
if 0 > var30900 then goto L16861 end
if var2 > length then return false end
if var30896 ~= 2048 then goto L16861 end
if var30898 > length then return false end
if 0 > var30900 then goto L16861 end
if var30911 > length then return false end
if var30913 ~= 6 then goto L16861 end
if var2 > length then return false end
if var30896 ~= 2048 then goto L16861 end
if var30898 > length then return false end
if 0 > var30900 then goto L16861 end
if var30924 > length then return false end
if 0 > var30926 then goto L16861 end
if var2 > length then return false end
if var30896 ~= 2048 then goto L16861 end
if var30898 > length then return false end
if 0 > var30900 then goto L16861 end
if var30937 > length then return false end
if var30942 ~= 0 then goto L16861 end
local var30997 = (lshift(band(P[14],15),2) + 14)
local var30998 = (var30997 + 21)
local var30999 = (var30998 + 1)
if var30999 > length then return false end
if var2 > length then return false end
if var30896 ~= 2048 then goto L16861 end
if var30898 > length then return false end
if 0 > var30900 then goto L16861 end
if var2 > length then return false end
if var30896 ~= 2048 then goto L16861 end
if var30898 > length then return false end
if 0 > var30900 then goto L16861 end
if var30911 > length then return false end
if var30913 ~= 6 then goto L16861 end
if var2 > length then return false end
if var30896 ~= 2048 then goto L16861 end
if var30898 > length then return false end
if 0 > var30900 then goto L16861 end
if var30924 > length then return false end
if 0 > var30926 then goto L16861 end
if var2 > length then return false end
if var30896 ~= 2048 then goto L16861 end
if var30898 > length then return false end
if 0 > var30900 then goto L16861 end
if var30937 > length then return false end
if var30942 ~= 0 then goto L16861 end
if var2 > length then return false end
if var30896 ~= 2048 then goto L16861 end
if var30898 > length then return false end
if 0 > var30900 then goto L16861 end
if var2 > length then return false end
if var30896 ~= 2048 then goto L16861 end
if var30898 > length then return false end
if 0 > var30900 then goto L16861 end
if var30911 > length then return false end
if var30913 ~= 6 then goto L16861 end
if var2 > length then return false end
if var30896 ~= 2048 then goto L16861 end
if var30898 > length then return false end
if 0 > var30900 then goto L16861 end
if var30924 > length then return false end
if 0 > var30926 then goto L16861 end
if var2 > length then return false end
if var30896 ~= 2048 then goto L16861 end
if var30898 > length then return false end
if 0 > var30900 then goto L16861 end
if var30937 > length then return false end
if var30942 ~= 0 then goto L16861 end
if var30999 > length then return false end
local var31119 = ((20 + P[var30998]) % 4294967296)
local var31122 = (var30997 + ((var31119 + 3) % 4294967296))
if (var31122 + 1) > length then return false end
local var31156 = (var30997 + ((((var31119 + 2) % 4294967296) + P[var31122]) % 4294967296))
if (var31156 + 1) > length then return false end
if P[var31156] ~= 1 then goto L16861 end
if var2 > length then return false end
local var31196 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var31196 ~= 2048 then goto L16861 end
local var31197 = (14 + 19)
local var31198 = (var31197 + 1)
if var31198 > length then return false end
local var31200 = P[var31197]
if 0 > var31200 then goto L16861 end
if var2 > length then return false end
if var31196 ~= 2048 then goto L16861 end
if var31198 > length then return false end
if 0 > var31200 then goto L16861 end
local var31210 = (14 + 9)
local var31211 = (var31210 + 1)
if var31211 > length then return false end
local var31213 = P[var31210]
if var31213 ~= 6 then goto L16861 end
if var2 > length then return false end
if var31196 ~= 2048 then goto L16861 end
if var31198 > length then return false end
if 0 > var31200 then goto L16861 end
local var31223 = (14 + 39)
local var31224 = (var31223 + 1)
if var31224 > length then return false end
local var31226 = P[var31223]
if 0 > var31226 then goto L16861 end
if var2 > length then return false end
if var31196 ~= 2048 then goto L16861 end
if var31198 > length then return false end
if 0 > var31200 then goto L16861 end
local var31236 = (14 + 6)
local var31237 = (var31236 + 2)
if var31237 > length then return false end
local var31242 = (band(rshift(bswap(cast("uint16_t*", P+var31236)[0]), 16),8191) % 4294967296)
if var31242 ~= 0 then goto L16861 end
if var2 > length then return false end
if var31196 ~= 2048 then goto L16861 end
if var31198 > length then return false end
if 0 > var31200 then goto L16861 end
if var2 > length then return false end
if var31196 ~= 2048 then goto L16861 end
if var31198 > length then return false end
if 0 > var31200 then goto L16861 end
if var31211 > length then return false end
if var31213 ~= 6 then goto L16861 end
if var2 > length then return false end
if var31196 ~= 2048 then goto L16861 end
if var31198 > length then return false end
if 0 > var31200 then goto L16861 end
if var31224 > length then return false end
if 0 > var31226 then goto L16861 end
if var2 > length then return false end
if var31196 ~= 2048 then goto L16861 end
if var31198 > length then return false end
if 0 > var31200 then goto L16861 end
if var31237 > length then return false end
if var31242 ~= 0 then goto L16861 end
local var31297 = (lshift(band(P[14],15),2) + 14)
local var31298 = (var31297 + 21)
local var31299 = (var31298 + 1)
if var31299 > length then return false end
if var2 > length then return false end
if var31196 ~= 2048 then goto L16861 end
if var31198 > length then return false end
if 0 > var31200 then goto L16861 end
if var2 > length then return false end
if var31196 ~= 2048 then goto L16861 end
if var31198 > length then return false end
if 0 > var31200 then goto L16861 end
if var31211 > length then return false end
if var31213 ~= 6 then goto L16861 end
if var2 > length then return false end
if var31196 ~= 2048 then goto L16861 end
if var31198 > length then return false end
if 0 > var31200 then goto L16861 end
if var31224 > length then return false end
if 0 > var31226 then goto L16861 end
if var2 > length then return false end
if var31196 ~= 2048 then goto L16861 end
if var31198 > length then return false end
if 0 > var31200 then goto L16861 end
if var31237 > length then return false end
if var31242 ~= 0 then goto L16861 end
if var2 > length then return false end
if var31196 ~= 2048 then goto L16861 end
if var31198 > length then return false end
if 0 > var31200 then goto L16861 end
if var2 > length then return false end
if var31196 ~= 2048 then goto L16861 end
if var31198 > length then return false end
if 0 > var31200 then goto L16861 end
if var31211 > length then return false end
if var31213 ~= 6 then goto L16861 end
if var2 > length then return false end
if var31196 ~= 2048 then goto L16861 end
if var31198 > length then return false end
if 0 > var31200 then goto L16861 end
if var31224 > length then return false end
if 0 > var31226 then goto L16861 end
if var2 > length then return false end
if var31196 ~= 2048 then goto L16861 end
if var31198 > length then return false end
if 0 > var31200 then goto L16861 end
if var31237 > length then return false end
if var31242 ~= 0 then goto L16861 end
if var31299 > length then return false end
local var31419 = ((20 + P[var31298]) % 4294967296)
local var31422 = (var31297 + ((var31419 + 3) % 4294967296))
if (var31422 + 1) > length then return false end
local var31458 = (var31297 + ((((((var31419 + 2) % 4294967296) + P[var31422]) % 4294967296) + 1) % 4294967296))
if (var31458 + 1) > length then return false end
if P[var31458] == 3 then return true end
goto L16861
end
::L16861::
if var2 > length then return false end
local var31500 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var31500 ~= 2048 then goto L107 end
local var31501 = (14 + 19)
local var31502 = (var31501 + 1)
if var31502 > length then return false end
local var31504 = P[var31501]
if 0 > var31504 then goto L107 end
if var2 > length then return false end
if var31500 ~= 2048 then goto L107 end
if var31502 > length then return false end
if 0 > var31504 then goto L107 end
local var31514 = (14 + 9)
local var31515 = (var31514 + 1)
if var31515 > length then return false end
local var31517 = P[var31514]
if var31517 ~= 6 then goto L107 end
if var2 > length then return false end
if var31500 ~= 2048 then goto L107 end
if var31502 > length then return false end
if 0 > var31504 then goto L107 end
local var31527 = (14 + 39)
local var31528 = (var31527 + 1)
if var31528 > length then return false end
local var31530 = P[var31527]
if 0 > var31530 then goto L107 end
if var2 > length then return false end
if var31500 ~= 2048 then goto L107 end
if var31502 > length then return false end
if 0 > var31504 then goto L107 end
local var31540 = (14 + 6)
local var31541 = (var31540 + 2)
if var31541 > length then return false end
local var31546 = (band(rshift(bswap(cast("uint16_t*", P+var31540)[0]), 16),8191) % 4294967296)
if var31546 ~= 0 then goto L107 end
if var2 > length then return false end
if var31500 ~= 2048 then goto L107 end
if var31502 > length then return false end
if 0 > var31504 then goto L107 end
if var2 > length then return false end
if var31500 ~= 2048 then goto L107 end
if var31502 > length then return false end
if 0 > var31504 then goto L107 end
if var31515 > length then return false end
if var31517 ~= 6 then goto L107 end
if var2 > length then return false end
if var31500 ~= 2048 then goto L107 end
if var31502 > length then return false end
if 0 > var31504 then goto L107 end
if var31528 > length then return false end
if 0 > var31530 then goto L107 end
if var2 > length then return false end
if var31500 ~= 2048 then goto L107 end
if var31502 > length then return false end
if 0 > var31504 then goto L107 end
if var31541 > length then return false end
if var31546 ~= 0 then goto L107 end
local var31601 = (lshift(band(P[14],15),2) + 14)
local var31602 = (var31601 + 21)
if (var31602 + 1) > length then return false end
local var31618 = (var31601 + ((((20 + P[var31602]) % 4294967296) + 2) % 4294967296))
if (var31618 + 1) > length then return false end
if P[var31618] ~= 1 then goto L107 end
if var2 > length then return false end
local var31640 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var31640 ~= 2048 then goto L18259 end
do
local var31641 = (14 + 19)
local var31642 = (var31641 + 1)
if var31642 > length then return false end
local var31644 = P[var31641]
if 0 > var31644 then goto L18259 end
if var2 > length then return false end
if var31640 ~= 2048 then goto L18259 end
if var31642 > length then return false end
if 0 > var31644 then goto L18259 end
local var31654 = (14 + 9)
local var31655 = (var31654 + 1)
if var31655 > length then return false end
local var31657 = P[var31654]
if var31657 ~= 6 then goto L18259 end
if var2 > length then return false end
if var31640 ~= 2048 then goto L18259 end
if var31642 > length then return false end
if 0 > var31644 then goto L18259 end
local var31667 = (14 + 39)
local var31668 = (var31667 + 1)
if var31668 > length then return false end
local var31670 = P[var31667]
if 0 > var31670 then goto L18259 end
if var2 > length then return false end
if var31640 ~= 2048 then goto L18259 end
if var31642 > length then return false end
if 0 > var31644 then goto L18259 end
local var31680 = (14 + 6)
local var31681 = (var31680 + 2)
if var31681 > length then return false end
local var31686 = (band(rshift(bswap(cast("uint16_t*", P+var31680)[0]), 16),8191) % 4294967296)
if var31686 ~= 0 then goto L18259 end
if var2 > length then return false end
if var31640 ~= 2048 then goto L18259 end
if var31642 > length then return false end
if 0 > var31644 then goto L18259 end
if var2 > length then return false end
if var31640 ~= 2048 then goto L18259 end
if var31642 > length then return false end
if 0 > var31644 then goto L18259 end
if var31655 > length then return false end
if var31657 ~= 6 then goto L18259 end
if var2 > length then return false end
if var31640 ~= 2048 then goto L18259 end
if var31642 > length then return false end
if 0 > var31644 then goto L18259 end
if var31668 > length then return false end
if 0 > var31670 then goto L18259 end
if var2 > length then return false end
if var31640 ~= 2048 then goto L18259 end
if var31642 > length then return false end
if 0 > var31644 then goto L18259 end
if var31681 > length then return false end
if var31686 ~= 0 then goto L18259 end
local var31741 = (lshift(band(P[14],15),2) + 14)
local var31742 = (var31741 + 21)
if (var31742 + 1) > length then return false end
local var31758 = (var31741 + ((((20 + P[var31742]) % 4294967296) + 3) % 4294967296))
if (var31758 + 1) > length then return false end
if P[var31758] == 3 then return true end
goto L18259
end
::L18259::
if var2 > length then return false end
local var31780 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var31780 ~= 2048 then goto L18257 end
do
local var31781 = (14 + 19)
local var31782 = (var31781 + 1)
if var31782 > length then return false end
local var31784 = P[var31781]
if 0 > var31784 then goto L18257 end
if var2 > length then return false end
if var31780 ~= 2048 then goto L18257 end
if var31782 > length then return false end
if 0 > var31784 then goto L18257 end
local var31794 = (14 + 9)
local var31795 = (var31794 + 1)
if var31795 > length then return false end
local var31797 = P[var31794]
if var31797 ~= 6 then goto L18257 end
if var2 > length then return false end
if var31780 ~= 2048 then goto L18257 end
if var31782 > length then return false end
if 0 > var31784 then goto L18257 end
local var31807 = (14 + 39)
local var31808 = (var31807 + 1)
if var31808 > length then return false end
local var31810 = P[var31807]
if 0 > var31810 then goto L18257 end
if var2 > length then return false end
if var31780 ~= 2048 then goto L18257 end
if var31782 > length then return false end
if 0 > var31784 then goto L18257 end
local var31820 = (14 + 6)
local var31821 = (var31820 + 2)
if var31821 > length then return false end
local var31826 = (band(rshift(bswap(cast("uint16_t*", P+var31820)[0]), 16),8191) % 4294967296)
if var31826 ~= 0 then goto L18257 end
if var2 > length then return false end
if var31780 ~= 2048 then goto L18257 end
if var31782 > length then return false end
if 0 > var31784 then goto L18257 end
if var2 > length then return false end
if var31780 ~= 2048 then goto L18257 end
if var31782 > length then return false end
if 0 > var31784 then goto L18257 end
if var31795 > length then return false end
if var31797 ~= 6 then goto L18257 end
if var2 > length then return false end
if var31780 ~= 2048 then goto L18257 end
if var31782 > length then return false end
if 0 > var31784 then goto L18257 end
if var31808 > length then return false end
if 0 > var31810 then goto L18257 end
if var2 > length then return false end
if var31780 ~= 2048 then goto L18257 end
if var31782 > length then return false end
if 0 > var31784 then goto L18257 end
if var31821 > length then return false end
if var31826 ~= 0 then goto L18257 end
local var31881 = (lshift(band(P[14],15),2) + 14)
local var31882 = (var31881 + 21)
if (var31882 + 1) > length then return false end
local var31898 = (var31881 + ((((20 + P[var31882]) % 4294967296) + 3) % 4294967296))
if (var31898 + 1) > length then return false end
if P[var31898] == 1 then goto L18257 end
if var2 > length then return false end
local var31920 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var31920 ~= 2048 then goto L18257 end
local var31921 = (14 + 19)
local var31922 = (var31921 + 1)
if var31922 > length then return false end
local var31924 = P[var31921]
if 0 > var31924 then goto L18257 end
if var2 > length then return false end
if var31920 ~= 2048 then goto L18257 end
if var31922 > length then return false end
if 0 > var31924 then goto L18257 end
local var31934 = (14 + 9)
local var31935 = (var31934 + 1)
if var31935 > length then return false end
local var31937 = P[var31934]
if var31937 ~= 6 then goto L18257 end
if var2 > length then return false end
if var31920 ~= 2048 then goto L18257 end
if var31922 > length then return false end
if 0 > var31924 then goto L18257 end
local var31947 = (14 + 39)
local var31948 = (var31947 + 1)
if var31948 > length then return false end
local var31950 = P[var31947]
if 0 > var31950 then goto L18257 end
if var2 > length then return false end
if var31920 ~= 2048 then goto L18257 end
if var31922 > length then return false end
if 0 > var31924 then goto L18257 end
local var31960 = (14 + 6)
local var31961 = (var31960 + 2)
if var31961 > length then return false end
local var31966 = (band(rshift(bswap(cast("uint16_t*", P+var31960)[0]), 16),8191) % 4294967296)
if var31966 ~= 0 then goto L18257 end
if var2 > length then return false end
if var31920 ~= 2048 then goto L18257 end
if var31922 > length then return false end
if 0 > var31924 then goto L18257 end
if var2 > length then return false end
if var31920 ~= 2048 then goto L18257 end
if var31922 > length then return false end
if 0 > var31924 then goto L18257 end
if var31935 > length then return false end
if var31937 ~= 6 then goto L18257 end
if var2 > length then return false end
if var31920 ~= 2048 then goto L18257 end
if var31922 > length then return false end
if 0 > var31924 then goto L18257 end
if var31948 > length then return false end
if 0 > var31950 then goto L18257 end
if var2 > length then return false end
if var31920 ~= 2048 then goto L18257 end
if var31922 > length then return false end
if 0 > var31924 then goto L18257 end
if var31961 > length then return false end
if var31966 ~= 0 then goto L18257 end
local var32021 = (lshift(band(P[14],15),2) + 14)
local var32022 = (var32021 + 21)
local var32023 = (var32022 + 1)
if var32023 > length then return false end
if var2 > length then return false end
if var31920 ~= 2048 then goto L18257 end
if var31922 > length then return false end
if 0 > var31924 then goto L18257 end
if var2 > length then return false end
if var31920 ~= 2048 then goto L18257 end
if var31922 > length then return false end
if 0 > var31924 then goto L18257 end
if var31935 > length then return false end
if var31937 ~= 6 then goto L18257 end
if var2 > length then return false end
if var31920 ~= 2048 then goto L18257 end
if var31922 > length then return false end
if 0 > var31924 then goto L18257 end
if var31948 > length then return false end
if 0 > var31950 then goto L18257 end
if var2 > length then return false end
if var31920 ~= 2048 then goto L18257 end
if var31922 > length then return false end
if 0 > var31924 then goto L18257 end
if var31961 > length then return false end
if var31966 ~= 0 then goto L18257 end
if var2 > length then return false end
if var31920 ~= 2048 then goto L18257 end
if var31922 > length then return false end
if 0 > var31924 then goto L18257 end
if var2 > length then return false end
if var31920 ~= 2048 then goto L18257 end
if var31922 > length then return false end
if 0 > var31924 then goto L18257 end
if var31935 > length then return false end
if var31937 ~= 6 then goto L18257 end
if var2 > length then return false end
if var31920 ~= 2048 then goto L18257 end
if var31922 > length then return false end
if 0 > var31924 then goto L18257 end
if var31948 > length then return false end
if 0 > var31950 then goto L18257 end
if var2 > length then return false end
if var31920 ~= 2048 then goto L18257 end
if var31922 > length then return false end
if 0 > var31924 then goto L18257 end
if var31961 > length then return false end
if var31966 ~= 0 then goto L18257 end
if var32023 > length then return false end
local var32143 = ((20 + P[var32022]) % 4294967296)
local var32146 = (var32021 + ((var32143 + 4) % 4294967296))
if (var32146 + 1) > length then return false end
local var32180 = (var32021 + ((((var32143 + 3) % 4294967296) + P[var32146]) % 4294967296))
if (var32180 + 1) > length then return false end
if P[var32180] == 3 then return true end
goto L18257
end
::L18257::
if var2 > length then return false end
local var32220 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var32220 ~= 2048 then goto L107 end
local var32221 = (14 + 19)
local var32222 = (var32221 + 1)
if var32222 > length then return false end
local var32224 = P[var32221]
if 0 > var32224 then goto L107 end
if var2 > length then return false end
if var32220 ~= 2048 then goto L107 end
if var32222 > length then return false end
if 0 > var32224 then goto L107 end
local var32234 = (14 + 9)
local var32235 = (var32234 + 1)
if var32235 > length then return false end
local var32237 = P[var32234]
if var32237 ~= 6 then goto L107 end
if var2 > length then return false end
if var32220 ~= 2048 then goto L107 end
if var32222 > length then return false end
if 0 > var32224 then goto L107 end
local var32247 = (14 + 39)
local var32248 = (var32247 + 1)
if var32248 > length then return false end
local var32250 = P[var32247]
if 0 > var32250 then goto L107 end
if var2 > length then return false end
if var32220 ~= 2048 then goto L107 end
if var32222 > length then return false end
if 0 > var32224 then goto L107 end
local var32260 = (14 + 6)
local var32261 = (var32260 + 2)
if var32261 > length then return false end
local var32266 = (band(rshift(bswap(cast("uint16_t*", P+var32260)[0]), 16),8191) % 4294967296)
if var32266 ~= 0 then goto L107 end
if var2 > length then return false end
if var32220 ~= 2048 then goto L107 end
if var32222 > length then return false end
if 0 > var32224 then goto L107 end
if var2 > length then return false end
if var32220 ~= 2048 then goto L107 end
if var32222 > length then return false end
if 0 > var32224 then goto L107 end
if var32235 > length then return false end
if var32237 ~= 6 then goto L107 end
if var2 > length then return false end
if var32220 ~= 2048 then goto L107 end
if var32222 > length then return false end
if 0 > var32224 then goto L107 end
if var32248 > length then return false end
if 0 > var32250 then goto L107 end
if var2 > length then return false end
if var32220 ~= 2048 then goto L107 end
if var32222 > length then return false end
if 0 > var32224 then goto L107 end
if var32261 > length then return false end
if var32266 ~= 0 then goto L107 end
local var32321 = (lshift(band(P[14],15),2) + 14)
local var32322 = (var32321 + 21)
if (var32322 + 1) > length then return false end
local var32338 = (var32321 + ((((20 + P[var32322]) % 4294967296) + 3) % 4294967296))
if (var32338 + 1) > length then return false end
if P[var32338] ~= 1 then goto L107 end
if var2 > length then return false end
local var32360 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var32360 ~= 2048 then goto L107 end
local var32361 = (14 + 19)
local var32362 = (var32361 + 1)
if var32362 > length then return false end
local var32364 = P[var32361]
if 0 > var32364 then goto L107 end
if var2 > length then return false end
if var32360 ~= 2048 then goto L107 end
if var32362 > length then return false end
if 0 > var32364 then goto L107 end
local var32374 = (14 + 9)
local var32375 = (var32374 + 1)
if var32375 > length then return false end
local var32377 = P[var32374]
if var32377 ~= 6 then goto L107 end
if var2 > length then return false end
if var32360 ~= 2048 then goto L107 end
if var32362 > length then return false end
if 0 > var32364 then goto L107 end
local var32387 = (14 + 39)
local var32388 = (var32387 + 1)
if var32388 > length then return false end
local var32390 = P[var32387]
if 0 > var32390 then goto L107 end
if var2 > length then return false end
if var32360 ~= 2048 then goto L107 end
if var32362 > length then return false end
if 0 > var32364 then goto L107 end
local var32400 = (14 + 6)
local var32401 = (var32400 + 2)
if var32401 > length then return false end
local var32406 = (band(rshift(bswap(cast("uint16_t*", P+var32400)[0]), 16),8191) % 4294967296)
if var32406 ~= 0 then goto L107 end
if var2 > length then return false end
if var32360 ~= 2048 then goto L107 end
if var32362 > length then return false end
if 0 > var32364 then goto L107 end
if var2 > length then return false end
if var32360 ~= 2048 then goto L107 end
if var32362 > length then return false end
if 0 > var32364 then goto L107 end
if var32375 > length then return false end
if var32377 ~= 6 then goto L107 end
if var2 > length then return false end
if var32360 ~= 2048 then goto L107 end
if var32362 > length then return false end
if 0 > var32364 then goto L107 end
if var32388 > length then return false end
if 0 > var32390 then goto L107 end
if var2 > length then return false end
if var32360 ~= 2048 then goto L107 end
if var32362 > length then return false end
if 0 > var32364 then goto L107 end
if var32401 > length then return false end
if var32406 ~= 0 then goto L107 end
local var32461 = (lshift(band(P[14],15),2) + 14)
local var32462 = (var32461 + 21)
if (var32462 + 1) > length then return false end
local var32478 = (var32461 + ((((20 + P[var32462]) % 4294967296) + 4) % 4294967296))
if (var32478 + 1) > length then return false end
if P[var32478] == 3 then return true end
goto L107
end
::L107::
if var2 > length then return false end
local var32500 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var32500 ~= 2048 then return false end
local var32501 = (14 + 19)
local var32502 = (var32501 + 1)
if var32502 > length then return false end
local var32504 = P[var32501]
if 0 > var32504 then return false end
if var2 > length then return false end
if var32500 ~= 2048 then return false end
if var32502 > length then return false end
if 0 > var32504 then return false end
local var32514 = (14 + 9)
if (var32514 + 1) > length then return false end
if P[var32514] ~= 6 then return false end
if var2 > length then return false end
if var32500 ~= 2048 then return false end
if var32502 > length then return false end
if 0 > var32504 then return false end
local var32527 = (14 + 39)
if (var32527 + 1) > length then return false end
if 0 > P[var32527] then return false end
if var2 > length then return false end
if var32500 ~= 2048 then return false end
if var32502 > length then return false end
if 0 > var32504 then return false end
local var32540 = (14 + 6)
if (var32540 + 2) > length then return false end
if (band(rshift(bswap(cast("uint16_t*", P+var32540)[0]), 16),8191) % 4294967296) ~= 0 then return false end
local var32551 = ((lshift(band(P[14],15),2) + 14) + 20)
if (var32551 + 1) > length then return false end
if P[var32551] ~= 1 then return false end
if var2 > length then return false end
local var32563 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var32563 ~= 2048 then goto L18867 end
do
local var32564 = (14 + 19)
local var32565 = (var32564 + 1)
if var32565 > length then return false end
local var32567 = P[var32564]
if 0 > var32567 then goto L18867 end
if var2 > length then return false end
if var32563 ~= 2048 then goto L18867 end
if var32565 > length then return false end
if 0 > var32567 then goto L18867 end
local var32577 = (14 + 9)
if (var32577 + 1) > length then return false end
if P[var32577] ~= 6 then goto L18867 end
if var2 > length then return false end
if var32563 ~= 2048 then goto L18867 end
if var32565 > length then return false end
if 0 > var32567 then goto L18867 end
local var32590 = (14 + 39)
if (var32590 + 1) > length then return false end
if 0 > P[var32590] then goto L18867 end
if var2 > length then return false end
if var32563 ~= 2048 then goto L18867 end
if var32565 > length then return false end
if 0 > var32567 then goto L18867 end
local var32603 = (14 + 6)
if (var32603 + 2) > length then return false end
if (band(rshift(bswap(cast("uint16_t*", P+var32603)[0]), 16),8191) % 4294967296) ~= 0 then goto L18867 end
local var32614 = ((lshift(band(P[14],15),2) + 14) + 21)
if (var32614 + 1) > length then return false end
if P[var32614] == 3 then return true end
goto L18867
end
::L18867::
if var2 > length then return false end
local var32626 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var32626 ~= 2048 then goto L18865 end
do
local var32627 = (14 + 19)
local var32628 = (var32627 + 1)
if var32628 > length then return false end
local var32630 = P[var32627]
if 0 > var32630 then goto L18865 end
if var2 > length then return false end
if var32626 ~= 2048 then goto L18865 end
if var32628 > length then return false end
if 0 > var32630 then goto L18865 end
local var32640 = (14 + 9)
if (var32640 + 1) > length then return false end
if P[var32640] ~= 6 then goto L18865 end
if var2 > length then return false end
if var32626 ~= 2048 then goto L18865 end
if var32628 > length then return false end
if 0 > var32630 then goto L18865 end
local var32653 = (14 + 39)
if (var32653 + 1) > length then return false end
if 0 > P[var32653] then goto L18865 end
if var2 > length then return false end
if var32626 ~= 2048 then goto L18865 end
if var32628 > length then return false end
if 0 > var32630 then goto L18865 end
local var32666 = (14 + 6)
if (var32666 + 2) > length then return false end
if (band(rshift(bswap(cast("uint16_t*", P+var32666)[0]), 16),8191) % 4294967296) ~= 0 then goto L18865 end
local var32677 = ((lshift(band(P[14],15),2) + 14) + 21)
if (var32677 + 1) > length then return false end
if P[var32677] == 1 then goto L18865 end
if var2 > length then return false end
local var32689 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var32689 ~= 2048 then goto L18965 end
do
local var32690 = (14 + 19)
local var32691 = (var32690 + 1)
if var32691 > length then return false end
local var32693 = P[var32690]
if 0 > var32693 then goto L18965 end
if var2 > length then return false end
if var32689 ~= 2048 then goto L18965 end
if var32691 > length then return false end
if 0 > var32693 then goto L18965 end
local var32703 = (14 + 9)
local var32704 = (var32703 + 1)
if var32704 > length then return false end
local var32706 = P[var32703]
if var32706 ~= 6 then goto L18965 end
if var2 > length then return false end
if var32689 ~= 2048 then goto L18965 end
if var32691 > length then return false end
if 0 > var32693 then goto L18965 end
local var32716 = (14 + 39)
local var32717 = (var32716 + 1)
if var32717 > length then return false end
local var32719 = P[var32716]
if 0 > var32719 then goto L18965 end
if var2 > length then return false end
if var32689 ~= 2048 then goto L18965 end
if var32691 > length then return false end
if 0 > var32693 then goto L18965 end
local var32729 = (14 + 6)
local var32730 = (var32729 + 2)
if var32730 > length then return false end
local var32735 = (band(rshift(bswap(cast("uint16_t*", P+var32729)[0]), 16),8191) % 4294967296)
if var32735 ~= 0 then goto L18965 end
if var2 > length then return false end
if var32689 ~= 2048 then goto L18965 end
if var32691 > length then return false end
if 0 > var32693 then goto L18965 end
if var2 > length then return false end
if var32689 ~= 2048 then goto L18965 end
if var32691 > length then return false end
if 0 > var32693 then goto L18965 end
if var32704 > length then return false end
if var32706 ~= 6 then goto L18965 end
if var2 > length then return false end
if var32689 ~= 2048 then goto L18965 end
if var32691 > length then return false end
if 0 > var32693 then goto L18965 end
if var32717 > length then return false end
if 0 > var32719 then goto L18965 end
if var2 > length then return false end
if var32689 ~= 2048 then goto L18965 end
if var32691 > length then return false end
if 0 > var32693 then goto L18965 end
if var32730 > length then return false end
if var32735 ~= 0 then goto L18965 end
local var32790 = (lshift(band(P[14],15),2) + 14)
local var32791 = (var32790 + 22)
if (var32791 + 1) > length then return false end
local var32805 = (var32790 + ((21 + P[var32791]) % 4294967296))
if (var32805 + 1) > length then return false end
if P[var32805] == 3 then return true end
goto L18965
end
::L18965::
if var2 > length then return false end
local var32825 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var32825 ~= 2048 then goto L18963 end
do
local var32826 = (14 + 19)
local var32827 = (var32826 + 1)
if var32827 > length then return false end
local var32829 = P[var32826]
if 0 > var32829 then goto L18963 end
if var2 > length then return false end
if var32825 ~= 2048 then goto L18963 end
if var32827 > length then return false end
if 0 > var32829 then goto L18963 end
local var32839 = (14 + 9)
local var32840 = (var32839 + 1)
if var32840 > length then return false end
local var32842 = P[var32839]
if var32842 ~= 6 then goto L18963 end
if var2 > length then return false end
if var32825 ~= 2048 then goto L18963 end
if var32827 > length then return false end
if 0 > var32829 then goto L18963 end
local var32852 = (14 + 39)
local var32853 = (var32852 + 1)
if var32853 > length then return false end
local var32855 = P[var32852]
if 0 > var32855 then goto L18963 end
if var2 > length then return false end
if var32825 ~= 2048 then goto L18963 end
if var32827 > length then return false end
if 0 > var32829 then goto L18963 end
local var32865 = (14 + 6)
local var32866 = (var32865 + 2)
if var32866 > length then return false end
local var32871 = (band(rshift(bswap(cast("uint16_t*", P+var32865)[0]), 16),8191) % 4294967296)
if var32871 ~= 0 then goto L18963 end
if var2 > length then return false end
if var32825 ~= 2048 then goto L18963 end
if var32827 > length then return false end
if 0 > var32829 then goto L18963 end
if var2 > length then return false end
if var32825 ~= 2048 then goto L18963 end
if var32827 > length then return false end
if 0 > var32829 then goto L18963 end
if var32840 > length then return false end
if var32842 ~= 6 then goto L18963 end
if var2 > length then return false end
if var32825 ~= 2048 then goto L18963 end
if var32827 > length then return false end
if 0 > var32829 then goto L18963 end
if var32853 > length then return false end
if 0 > var32855 then goto L18963 end
if var2 > length then return false end
if var32825 ~= 2048 then goto L18963 end
if var32827 > length then return false end
if 0 > var32829 then goto L18963 end
if var32866 > length then return false end
if var32871 ~= 0 then goto L18963 end
local var32926 = (lshift(band(P[14],15),2) + 14)
local var32927 = (var32926 + 22)
if (var32927 + 1) > length then return false end
local var32941 = (var32926 + ((21 + P[var32927]) % 4294967296))
if (var32941 + 1) > length then return false end
if P[var32941] == 1 then goto L18963 end
if var2 > length then return false end
local var32961 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var32961 ~= 2048 then goto L19155 end
do
local var32962 = (14 + 19)
local var32963 = (var32962 + 1)
if var32963 > length then return false end
local var32965 = P[var32962]
if 0 > var32965 then goto L19155 end
if var2 > length then return false end
if var32961 ~= 2048 then goto L19155 end
if var32963 > length then return false end
if 0 > var32965 then goto L19155 end
local var32975 = (14 + 9)
local var32976 = (var32975 + 1)
if var32976 > length then return false end
local var32978 = P[var32975]
if var32978 ~= 6 then goto L19155 end
if var2 > length then return false end
if var32961 ~= 2048 then goto L19155 end
if var32963 > length then return false end
if 0 > var32965 then goto L19155 end
local var32988 = (14 + 39)
local var32989 = (var32988 + 1)
if var32989 > length then return false end
local var32991 = P[var32988]
if 0 > var32991 then goto L19155 end
if var2 > length then return false end
if var32961 ~= 2048 then goto L19155 end
if var32963 > length then return false end
if 0 > var32965 then goto L19155 end
local var33001 = (14 + 6)
local var33002 = (var33001 + 2)
if var33002 > length then return false end
local var33007 = (band(rshift(bswap(cast("uint16_t*", P+var33001)[0]), 16),8191) % 4294967296)
if var33007 ~= 0 then goto L19155 end
if var2 > length then return false end
if var32961 ~= 2048 then goto L19155 end
if var32963 > length then return false end
if 0 > var32965 then goto L19155 end
if var2 > length then return false end
if var32961 ~= 2048 then goto L19155 end
if var32963 > length then return false end
if 0 > var32965 then goto L19155 end
if var32976 > length then return false end
if var32978 ~= 6 then goto L19155 end
if var2 > length then return false end
if var32961 ~= 2048 then goto L19155 end
if var32963 > length then return false end
if 0 > var32965 then goto L19155 end
if var32989 > length then return false end
if 0 > var32991 then goto L19155 end
if var2 > length then return false end
if var32961 ~= 2048 then goto L19155 end
if var32963 > length then return false end
if 0 > var32965 then goto L19155 end
if var33002 > length then return false end
if var33007 ~= 0 then goto L19155 end
local var33062 = (lshift(band(P[14],15),2) + 14)
local var33063 = (var33062 + 22)
local var33064 = (var33063 + 1)
if var33064 > length then return false end
if var2 > length then return false end
if var32961 ~= 2048 then goto L19155 end
if var32963 > length then return false end
if 0 > var32965 then goto L19155 end
if var2 > length then return false end
if var32961 ~= 2048 then goto L19155 end
if var32963 > length then return false end
if 0 > var32965 then goto L19155 end
if var32976 > length then return false end
if var32978 ~= 6 then goto L19155 end
if var2 > length then return false end
if var32961 ~= 2048 then goto L19155 end
if var32963 > length then return false end
if 0 > var32965 then goto L19155 end
if var32989 > length then return false end
if 0 > var32991 then goto L19155 end
if var2 > length then return false end
if var32961 ~= 2048 then goto L19155 end
if var32963 > length then return false end
if 0 > var32965 then goto L19155 end
if var33002 > length then return false end
if var33007 ~= 0 then goto L19155 end
if var2 > length then return false end
if var32961 ~= 2048 then goto L19155 end
if var32963 > length then return false end
if 0 > var32965 then goto L19155 end
if var2 > length then return false end
if var32961 ~= 2048 then goto L19155 end
if var32963 > length then return false end
if 0 > var32965 then goto L19155 end
if var32976 > length then return false end
if var32978 ~= 6 then goto L19155 end
if var2 > length then return false end
if var32961 ~= 2048 then goto L19155 end
if var32963 > length then return false end
if 0 > var32965 then goto L19155 end
if var32989 > length then return false end
if 0 > var32991 then goto L19155 end
if var2 > length then return false end
if var32961 ~= 2048 then goto L19155 end
if var32963 > length then return false end
if 0 > var32965 then goto L19155 end
if var33002 > length then return false end
if var33007 ~= 0 then goto L19155 end
if var33064 > length then return false end
local var33184 = ((21 + P[var33063]) % 4294967296)
local var33187 = (var33062 + ((var33184 + 1) % 4294967296))
if (var33187 + 1) > length then return false end
local var33219 = (var33062 + ((var33184 + P[var33187]) % 4294967296))
if (var33219 + 1) > length then return false end
if P[var33219] == 3 then return true end
goto L19155
end
::L19155::
if var2 > length then return false end
local var33257 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var33257 ~= 2048 then goto L19153 end
do
local var33258 = (14 + 19)
local var33259 = (var33258 + 1)
if var33259 > length then return false end
local var33261 = P[var33258]
if 0 > var33261 then goto L19153 end
if var2 > length then return false end
if var33257 ~= 2048 then goto L19153 end
if var33259 > length then return false end
if 0 > var33261 then goto L19153 end
local var33271 = (14 + 9)
local var33272 = (var33271 + 1)
if var33272 > length then return false end
local var33274 = P[var33271]
if var33274 ~= 6 then goto L19153 end
if var2 > length then return false end
if var33257 ~= 2048 then goto L19153 end
if var33259 > length then return false end
if 0 > var33261 then goto L19153 end
local var33284 = (14 + 39)
local var33285 = (var33284 + 1)
if var33285 > length then return false end
local var33287 = P[var33284]
if 0 > var33287 then goto L19153 end
if var2 > length then return false end
if var33257 ~= 2048 then goto L19153 end
if var33259 > length then return false end
if 0 > var33261 then goto L19153 end
local var33297 = (14 + 6)
local var33298 = (var33297 + 2)
if var33298 > length then return false end
local var33303 = (band(rshift(bswap(cast("uint16_t*", P+var33297)[0]), 16),8191) % 4294967296)
if var33303 ~= 0 then goto L19153 end
if var2 > length then return false end
if var33257 ~= 2048 then goto L19153 end
if var33259 > length then return false end
if 0 > var33261 then goto L19153 end
if var2 > length then return false end
if var33257 ~= 2048 then goto L19153 end
if var33259 > length then return false end
if 0 > var33261 then goto L19153 end
if var33272 > length then return false end
if var33274 ~= 6 then goto L19153 end
if var2 > length then return false end
if var33257 ~= 2048 then goto L19153 end
if var33259 > length then return false end
if 0 > var33261 then goto L19153 end
if var33285 > length then return false end
if 0 > var33287 then goto L19153 end
if var2 > length then return false end
if var33257 ~= 2048 then goto L19153 end
if var33259 > length then return false end
if 0 > var33261 then goto L19153 end
if var33298 > length then return false end
if var33303 ~= 0 then goto L19153 end
local var33358 = (lshift(band(P[14],15),2) + 14)
local var33359 = (var33358 + 22)
local var33360 = (var33359 + 1)
if var33360 > length then return false end
if var2 > length then return false end
if var33257 ~= 2048 then goto L19153 end
if var33259 > length then return false end
if 0 > var33261 then goto L19153 end
if var2 > length then return false end
if var33257 ~= 2048 then goto L19153 end
if var33259 > length then return false end
if 0 > var33261 then goto L19153 end
if var33272 > length then return false end
if var33274 ~= 6 then goto L19153 end
if var2 > length then return false end
if var33257 ~= 2048 then goto L19153 end
if var33259 > length then return false end
if 0 > var33261 then goto L19153 end
if var33285 > length then return false end
if 0 > var33287 then goto L19153 end
if var2 > length then return false end
if var33257 ~= 2048 then goto L19153 end
if var33259 > length then return false end
if 0 > var33261 then goto L19153 end
if var33298 > length then return false end
if var33303 ~= 0 then goto L19153 end
if var2 > length then return false end
if var33257 ~= 2048 then goto L19153 end
if var33259 > length then return false end
if 0 > var33261 then goto L19153 end
if var2 > length then return false end
if var33257 ~= 2048 then goto L19153 end
if var33259 > length then return false end
if 0 > var33261 then goto L19153 end
if var33272 > length then return false end
if var33274 ~= 6 then goto L19153 end
if var2 > length then return false end
if var33257 ~= 2048 then goto L19153 end
if var33259 > length then return false end
if 0 > var33261 then goto L19153 end
if var33285 > length then return false end
if 0 > var33287 then goto L19153 end
if var2 > length then return false end
if var33257 ~= 2048 then goto L19153 end
if var33259 > length then return false end
if 0 > var33261 then goto L19153 end
if var33298 > length then return false end
if var33303 ~= 0 then goto L19153 end
if var33360 > length then return false end
local var33480 = ((21 + P[var33359]) % 4294967296)
local var33483 = (var33358 + ((var33480 + 1) % 4294967296))
if (var33483 + 1) > length then return false end
local var33515 = (var33358 + ((var33480 + P[var33483]) % 4294967296))
if (var33515 + 1) > length then return false end
if P[var33515] == 1 then goto L19153 end
if var2 > length then return false end
local var33553 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var33553 ~= 2048 then goto L19529 end
do
local var33554 = (14 + 19)
local var33555 = (var33554 + 1)
if var33555 > length then return false end
local var33557 = P[var33554]
if 0 > var33557 then goto L19529 end
if var2 > length then return false end
if var33553 ~= 2048 then goto L19529 end
if var33555 > length then return false end
if 0 > var33557 then goto L19529 end
local var33567 = (14 + 9)
local var33568 = (var33567 + 1)
if var33568 > length then return false end
local var33570 = P[var33567]
if var33570 ~= 6 then goto L19529 end
if var2 > length then return false end
if var33553 ~= 2048 then goto L19529 end
if var33555 > length then return false end
if 0 > var33557 then goto L19529 end
local var33580 = (14 + 39)
local var33581 = (var33580 + 1)
if var33581 > length then return false end
local var33583 = P[var33580]
if 0 > var33583 then goto L19529 end
if var2 > length then return false end
if var33553 ~= 2048 then goto L19529 end
if var33555 > length then return false end
if 0 > var33557 then goto L19529 end
local var33593 = (14 + 6)
local var33594 = (var33593 + 2)
if var33594 > length then return false end
local var33599 = (band(rshift(bswap(cast("uint16_t*", P+var33593)[0]), 16),8191) % 4294967296)
if var33599 ~= 0 then goto L19529 end
if var2 > length then return false end
if var33553 ~= 2048 then goto L19529 end
if var33555 > length then return false end
if 0 > var33557 then goto L19529 end
if var2 > length then return false end
if var33553 ~= 2048 then goto L19529 end
if var33555 > length then return false end
if 0 > var33557 then goto L19529 end
if var33568 > length then return false end
if var33570 ~= 6 then goto L19529 end
if var2 > length then return false end
if var33553 ~= 2048 then goto L19529 end
if var33555 > length then return false end
if 0 > var33557 then goto L19529 end
if var33581 > length then return false end
if 0 > var33583 then goto L19529 end
if var2 > length then return false end
if var33553 ~= 2048 then goto L19529 end
if var33555 > length then return false end
if 0 > var33557 then goto L19529 end
if var33594 > length then return false end
if var33599 ~= 0 then goto L19529 end
local var33654 = (lshift(band(P[14],15),2) + 14)
local var33655 = (var33654 + 22)
local var33656 = (var33655 + 1)
if var33656 > length then return false end
if var2 > length then return false end
if var33553 ~= 2048 then goto L19529 end
if var33555 > length then return false end
if 0 > var33557 then goto L19529 end
if var2 > length then return false end
if var33553 ~= 2048 then goto L19529 end
if var33555 > length then return false end
if 0 > var33557 then goto L19529 end
if var33568 > length then return false end
if var33570 ~= 6 then goto L19529 end
if var2 > length then return false end
if var33553 ~= 2048 then goto L19529 end
if var33555 > length then return false end
if 0 > var33557 then goto L19529 end
if var33581 > length then return false end
if 0 > var33583 then goto L19529 end
if var2 > length then return false end
if var33553 ~= 2048 then goto L19529 end
if var33555 > length then return false end
if 0 > var33557 then goto L19529 end
if var33594 > length then return false end
if var33599 ~= 0 then goto L19529 end
if var2 > length then return false end
if var33553 ~= 2048 then goto L19529 end
if var33555 > length then return false end
if 0 > var33557 then goto L19529 end
if var2 > length then return false end
if var33553 ~= 2048 then goto L19529 end
if var33555 > length then return false end
if 0 > var33557 then goto L19529 end
if var33568 > length then return false end
if var33570 ~= 6 then goto L19529 end
if var2 > length then return false end
if var33553 ~= 2048 then goto L19529 end
if var33555 > length then return false end
if 0 > var33557 then goto L19529 end
if var33581 > length then return false end
if 0 > var33583 then goto L19529 end
if var2 > length then return false end
if var33553 ~= 2048 then goto L19529 end
if var33555 > length then return false end
if 0 > var33557 then goto L19529 end
if var33594 > length then return false end
if var33599 ~= 0 then goto L19529 end
if var33656 > length then return false end
local var33776 = ((21 + P[var33655]) % 4294967296)
local var33779 = (var33654 + ((var33776 + 1) % 4294967296))
local var33780 = (var33779 + 1)
if var33780 > length then return false end
if var2 > length then return false end
if var33553 ~= 2048 then goto L19529 end
if var33555 > length then return false end
if 0 > var33557 then goto L19529 end
if var2 > length then return false end
if var33553 ~= 2048 then goto L19529 end
if var33555 > length then return false end
if 0 > var33557 then goto L19529 end
if var33568 > length then return false end
if var33570 ~= 6 then goto L19529 end
if var2 > length then return false end
if var33553 ~= 2048 then goto L19529 end
if var33555 > length then return false end
if 0 > var33557 then goto L19529 end
if var33581 > length then return false end
if 0 > var33583 then goto L19529 end
if var2 > length then return false end
if var33553 ~= 2048 then goto L19529 end
if var33555 > length then return false end
if 0 > var33557 then goto L19529 end
if var33594 > length then return false end
if var33599 ~= 0 then goto L19529 end
if var2 > length then return false end
if var33553 ~= 2048 then goto L19529 end
if var33555 > length then return false end
if 0 > var33557 then goto L19529 end
if var2 > length then return false end
if var33553 ~= 2048 then goto L19529 end
if var33555 > length then return false end
if 0 > var33557 then goto L19529 end
if var33568 > length then return false end
if var33570 ~= 6 then goto L19529 end
if var2 > length then return false end
if var33553 ~= 2048 then goto L19529 end
if var33555 > length then return false end
if 0 > var33557 then goto L19529 end
if var33581 > length then return false end
if 0 > var33583 then goto L19529 end
if var2 > length then return false end
if var33553 ~= 2048 then goto L19529 end
if var33555 > length then return false end
if 0 > var33557 then goto L19529 end
if var33594 > length then return false end
if var33599 ~= 0 then goto L19529 end
if var33656 > length then return false end
if var2 > length then return false end
if var33553 ~= 2048 then goto L19529 end
if var33555 > length then return false end
if 0 > var33557 then goto L19529 end
if var2 > length then return false end
if var33553 ~= 2048 then goto L19529 end
if var33555 > length then return false end
if 0 > var33557 then goto L19529 end
if var33568 > length then return false end
if var33570 ~= 6 then goto L19529 end
if var2 > length then return false end
if var33553 ~= 2048 then goto L19529 end
if var33555 > length then return false end
if 0 > var33557 then goto L19529 end
if var33581 > length then return false end
if 0 > var33583 then goto L19529 end
if var2 > length then return false end
if var33553 ~= 2048 then goto L19529 end
if var33555 > length then return false end
if 0 > var33557 then goto L19529 end
if var33594 > length then return false end
if var33599 ~= 0 then goto L19529 end
if var2 > length then return false end
if var33553 ~= 2048 then goto L19529 end
if var33555 > length then return false end
if 0 > var33557 then goto L19529 end
if var2 > length then return false end
if var33553 ~= 2048 then goto L19529 end
if var33555 > length then return false end
if 0 > var33557 then goto L19529 end
if var33568 > length then return false end
if var33570 ~= 6 then goto L19529 end
if var2 > length then return false end
if var33553 ~= 2048 then goto L19529 end
if var33555 > length then return false end
if 0 > var33557 then goto L19529 end
if var33581 > length then return false end
if 0 > var33583 then goto L19529 end
if var2 > length then return false end
if var33553 ~= 2048 then goto L19529 end
if var33555 > length then return false end
if 0 > var33557 then goto L19529 end
if var33594 > length then return false end
if var33599 ~= 0 then goto L19529 end
if var33656 > length then return false end
if var33780 > length then return false end
local var34042 = ((var33776 + P[var33779]) % 4294967296)
local var34045 = (var33654 + ((var34042 + 1) % 4294967296))
if (var34045 + 1) > length then return false end
local var34113 = (var33654 + ((var34042 + P[var34045]) % 4294967296))
if (var34113 + 1) > length then return false end
if P[var34113] == 3 then return true end
goto L19529
end
::L19529::
if var2 > length then return false end
local var34187 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var34187 ~= 2048 then goto L19527 end
do
local var34188 = (14 + 19)
local var34189 = (var34188 + 1)
if var34189 > length then return false end
local var34191 = P[var34188]
if 0 > var34191 then goto L19527 end
if var2 > length then return false end
if var34187 ~= 2048 then goto L19527 end
if var34189 > length then return false end
if 0 > var34191 then goto L19527 end
local var34201 = (14 + 9)
local var34202 = (var34201 + 1)
if var34202 > length then return false end
local var34204 = P[var34201]
if var34204 ~= 6 then goto L19527 end
if var2 > length then return false end
if var34187 ~= 2048 then goto L19527 end
if var34189 > length then return false end
if 0 > var34191 then goto L19527 end
local var34214 = (14 + 39)
local var34215 = (var34214 + 1)
if var34215 > length then return false end
local var34217 = P[var34214]
if 0 > var34217 then goto L19527 end
if var2 > length then return false end
if var34187 ~= 2048 then goto L19527 end
if var34189 > length then return false end
if 0 > var34191 then goto L19527 end
local var34227 = (14 + 6)
local var34228 = (var34227 + 2)
if var34228 > length then return false end
local var34233 = (band(rshift(bswap(cast("uint16_t*", P+var34227)[0]), 16),8191) % 4294967296)
if var34233 ~= 0 then goto L19527 end
if var2 > length then return false end
if var34187 ~= 2048 then goto L19527 end
if var34189 > length then return false end
if 0 > var34191 then goto L19527 end
if var2 > length then return false end
if var34187 ~= 2048 then goto L19527 end
if var34189 > length then return false end
if 0 > var34191 then goto L19527 end
if var34202 > length then return false end
if var34204 ~= 6 then goto L19527 end
if var2 > length then return false end
if var34187 ~= 2048 then goto L19527 end
if var34189 > length then return false end
if 0 > var34191 then goto L19527 end
if var34215 > length then return false end
if 0 > var34217 then goto L19527 end
if var2 > length then return false end
if var34187 ~= 2048 then goto L19527 end
if var34189 > length then return false end
if 0 > var34191 then goto L19527 end
if var34228 > length then return false end
if var34233 ~= 0 then goto L19527 end
local var34288 = (lshift(band(P[14],15),2) + 14)
local var34289 = (var34288 + 22)
local var34290 = (var34289 + 1)
if var34290 > length then return false end
if var2 > length then return false end
if var34187 ~= 2048 then goto L19527 end
if var34189 > length then return false end
if 0 > var34191 then goto L19527 end
if var2 > length then return false end
if var34187 ~= 2048 then goto L19527 end
if var34189 > length then return false end
if 0 > var34191 then goto L19527 end
if var34202 > length then return false end
if var34204 ~= 6 then goto L19527 end
if var2 > length then return false end
if var34187 ~= 2048 then goto L19527 end
if var34189 > length then return false end
if 0 > var34191 then goto L19527 end
if var34215 > length then return false end
if 0 > var34217 then goto L19527 end
if var2 > length then return false end
if var34187 ~= 2048 then goto L19527 end
if var34189 > length then return false end
if 0 > var34191 then goto L19527 end
if var34228 > length then return false end
if var34233 ~= 0 then goto L19527 end
if var2 > length then return false end
if var34187 ~= 2048 then goto L19527 end
if var34189 > length then return false end
if 0 > var34191 then goto L19527 end
if var2 > length then return false end
if var34187 ~= 2048 then goto L19527 end
if var34189 > length then return false end
if 0 > var34191 then goto L19527 end
if var34202 > length then return false end
if var34204 ~= 6 then goto L19527 end
if var2 > length then return false end
if var34187 ~= 2048 then goto L19527 end
if var34189 > length then return false end
if 0 > var34191 then goto L19527 end
if var34215 > length then return false end
if 0 > var34217 then goto L19527 end
if var2 > length then return false end
if var34187 ~= 2048 then goto L19527 end
if var34189 > length then return false end
if 0 > var34191 then goto L19527 end
if var34228 > length then return false end
if var34233 ~= 0 then goto L19527 end
if var34290 > length then return false end
local var34410 = ((21 + P[var34289]) % 4294967296)
local var34413 = (var34288 + ((var34410 + 1) % 4294967296))
local var34414 = (var34413 + 1)
if var34414 > length then return false end
if var2 > length then return false end
if var34187 ~= 2048 then goto L19527 end
if var34189 > length then return false end
if 0 > var34191 then goto L19527 end
if var2 > length then return false end
if var34187 ~= 2048 then goto L19527 end
if var34189 > length then return false end
if 0 > var34191 then goto L19527 end
if var34202 > length then return false end
if var34204 ~= 6 then goto L19527 end
if var2 > length then return false end
if var34187 ~= 2048 then goto L19527 end
if var34189 > length then return false end
if 0 > var34191 then goto L19527 end
if var34215 > length then return false end
if 0 > var34217 then goto L19527 end
if var2 > length then return false end
if var34187 ~= 2048 then goto L19527 end
if var34189 > length then return false end
if 0 > var34191 then goto L19527 end
if var34228 > length then return false end
if var34233 ~= 0 then goto L19527 end
if var2 > length then return false end
if var34187 ~= 2048 then goto L19527 end
if var34189 > length then return false end
if 0 > var34191 then goto L19527 end
if var2 > length then return false end
if var34187 ~= 2048 then goto L19527 end
if var34189 > length then return false end
if 0 > var34191 then goto L19527 end
if var34202 > length then return false end
if var34204 ~= 6 then goto L19527 end
if var2 > length then return false end
if var34187 ~= 2048 then goto L19527 end
if var34189 > length then return false end
if 0 > var34191 then goto L19527 end
if var34215 > length then return false end
if 0 > var34217 then goto L19527 end
if var2 > length then return false end
if var34187 ~= 2048 then goto L19527 end
if var34189 > length then return false end
if 0 > var34191 then goto L19527 end
if var34228 > length then return false end
if var34233 ~= 0 then goto L19527 end
if var34290 > length then return false end
if var2 > length then return false end
if var34187 ~= 2048 then goto L19527 end
if var34189 > length then return false end
if 0 > var34191 then goto L19527 end
if var2 > length then return false end
if var34187 ~= 2048 then goto L19527 end
if var34189 > length then return false end
if 0 > var34191 then goto L19527 end
if var34202 > length then return false end
if var34204 ~= 6 then goto L19527 end
if var2 > length then return false end
if var34187 ~= 2048 then goto L19527 end
if var34189 > length then return false end
if 0 > var34191 then goto L19527 end
if var34215 > length then return false end
if 0 > var34217 then goto L19527 end
if var2 > length then return false end
if var34187 ~= 2048 then goto L19527 end
if var34189 > length then return false end
if 0 > var34191 then goto L19527 end
if var34228 > length then return false end
if var34233 ~= 0 then goto L19527 end
if var2 > length then return false end
if var34187 ~= 2048 then goto L19527 end
if var34189 > length then return false end
if 0 > var34191 then goto L19527 end
if var2 > length then return false end
if var34187 ~= 2048 then goto L19527 end
if var34189 > length then return false end
if 0 > var34191 then goto L19527 end
if var34202 > length then return false end
if var34204 ~= 6 then goto L19527 end
if var2 > length then return false end
if var34187 ~= 2048 then goto L19527 end
if var34189 > length then return false end
if 0 > var34191 then goto L19527 end
if var34215 > length then return false end
if 0 > var34217 then goto L19527 end
if var2 > length then return false end
if var34187 ~= 2048 then goto L19527 end
if var34189 > length then return false end
if 0 > var34191 then goto L19527 end
if var34228 > length then return false end
if var34233 ~= 0 then goto L19527 end
if var34290 > length then return false end
if var34414 > length then return false end
local var34676 = ((var34410 + P[var34413]) % 4294967296)
local var34679 = (var34288 + ((var34676 + 1) % 4294967296))
if (var34679 + 1) > length then return false end
local var34747 = (var34288 + ((var34676 + P[var34679]) % 4294967296))
if (var34747 + 1) > length then return false end
if P[var34747] == 1 then goto L19527 end
if var2 > length then return false end
local var34821 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var34821 ~= 2048 then goto L19527 end
local var34822 = (14 + 19)
local var34823 = (var34822 + 1)
if var34823 > length then return false end
local var34825 = P[var34822]
if 0 > var34825 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
local var34835 = (14 + 9)
local var34836 = (var34835 + 1)
if var34836 > length then return false end
local var34838 = P[var34835]
if var34838 ~= 6 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
local var34848 = (14 + 39)
local var34849 = (var34848 + 1)
if var34849 > length then return false end
local var34851 = P[var34848]
if 0 > var34851 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
local var34861 = (14 + 6)
local var34862 = (var34861 + 2)
if var34862 > length then return false end
local var34867 = (band(rshift(bswap(cast("uint16_t*", P+var34861)[0]), 16),8191) % 4294967296)
if var34867 ~= 0 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34836 > length then return false end
if var34838 ~= 6 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34849 > length then return false end
if 0 > var34851 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34862 > length then return false end
if var34867 ~= 0 then goto L19527 end
local var34922 = (lshift(band(P[14],15),2) + 14)
local var34923 = (var34922 + 22)
local var34924 = (var34923 + 1)
if var34924 > length then return false end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34836 > length then return false end
if var34838 ~= 6 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34849 > length then return false end
if 0 > var34851 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34862 > length then return false end
if var34867 ~= 0 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34836 > length then return false end
if var34838 ~= 6 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34849 > length then return false end
if 0 > var34851 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34862 > length then return false end
if var34867 ~= 0 then goto L19527 end
if var34924 > length then return false end
local var35044 = ((21 + P[var34923]) % 4294967296)
local var35047 = (var34922 + ((var35044 + 1) % 4294967296))
local var35048 = (var35047 + 1)
if var35048 > length then return false end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34836 > length then return false end
if var34838 ~= 6 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34849 > length then return false end
if 0 > var34851 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34862 > length then return false end
if var34867 ~= 0 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34836 > length then return false end
if var34838 ~= 6 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34849 > length then return false end
if 0 > var34851 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34862 > length then return false end
if var34867 ~= 0 then goto L19527 end
if var34924 > length then return false end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34836 > length then return false end
if var34838 ~= 6 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34849 > length then return false end
if 0 > var34851 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34862 > length then return false end
if var34867 ~= 0 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34836 > length then return false end
if var34838 ~= 6 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34849 > length then return false end
if 0 > var34851 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34862 > length then return false end
if var34867 ~= 0 then goto L19527 end
if var34924 > length then return false end
if var35048 > length then return false end
local var35310 = ((var35044 + P[var35047]) % 4294967296)
local var35313 = (var34922 + ((var35310 + 1) % 4294967296))
local var35314 = (var35313 + 1)
if var35314 > length then return false end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34836 > length then return false end
if var34838 ~= 6 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34849 > length then return false end
if 0 > var34851 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34862 > length then return false end
if var34867 ~= 0 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34836 > length then return false end
if var34838 ~= 6 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34849 > length then return false end
if 0 > var34851 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34862 > length then return false end
if var34867 ~= 0 then goto L19527 end
if var34924 > length then return false end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34836 > length then return false end
if var34838 ~= 6 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34849 > length then return false end
if 0 > var34851 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34862 > length then return false end
if var34867 ~= 0 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34836 > length then return false end
if var34838 ~= 6 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34849 > length then return false end
if 0 > var34851 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34862 > length then return false end
if var34867 ~= 0 then goto L19527 end
if var34924 > length then return false end
if var35048 > length then return false end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34836 > length then return false end
if var34838 ~= 6 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34849 > length then return false end
if 0 > var34851 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34862 > length then return false end
if var34867 ~= 0 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34836 > length then return false end
if var34838 ~= 6 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34849 > length then return false end
if 0 > var34851 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34862 > length then return false end
if var34867 ~= 0 then goto L19527 end
if var34924 > length then return false end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34836 > length then return false end
if var34838 ~= 6 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34849 > length then return false end
if 0 > var34851 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34862 > length then return false end
if var34867 ~= 0 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34836 > length then return false end
if var34838 ~= 6 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34849 > length then return false end
if 0 > var34851 then goto L19527 end
if var2 > length then return false end
if var34821 ~= 2048 then goto L19527 end
if var34823 > length then return false end
if 0 > var34825 then goto L19527 end
if var34862 > length then return false end
if var34867 ~= 0 then goto L19527 end
if var34924 > length then return false end
if var35048 > length then return false end
if var35314 > length then return false end
local var35878 = ((var35310 + P[var35313]) % 4294967296)
local var35881 = (var34922 + ((var35878 + 1) % 4294967296))
if (var35881 + 1) > length then return false end
local var36021 = (var34922 + ((var35878 + P[var35881]) % 4294967296))
if (var36021 + 1) > length then return false end
if P[var36021] == 3 then return true end
goto L19527
end
::L19527::
if var2 > length then return false end
local var36167 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var36167 ~= 2048 then goto L19153 end
local var36168 = (14 + 19)
local var36169 = (var36168 + 1)
if var36169 > length then return false end
local var36171 = P[var36168]
if 0 > var36171 then goto L19153 end
if var2 > length then return false end
if var36167 ~= 2048 then goto L19153 end
if var36169 > length then return false end
if 0 > var36171 then goto L19153 end
local var36181 = (14 + 9)
local var36182 = (var36181 + 1)
if var36182 > length then return false end
local var36184 = P[var36181]
if var36184 ~= 6 then goto L19153 end
if var2 > length then return false end
if var36167 ~= 2048 then goto L19153 end
if var36169 > length then return false end
if 0 > var36171 then goto L19153 end
local var36194 = (14 + 39)
local var36195 = (var36194 + 1)
if var36195 > length then return false end
local var36197 = P[var36194]
if 0 > var36197 then goto L19153 end
if var2 > length then return false end
if var36167 ~= 2048 then goto L19153 end
if var36169 > length then return false end
if 0 > var36171 then goto L19153 end
local var36207 = (14 + 6)
local var36208 = (var36207 + 2)
if var36208 > length then return false end
local var36213 = (band(rshift(bswap(cast("uint16_t*", P+var36207)[0]), 16),8191) % 4294967296)
if var36213 ~= 0 then goto L19153 end
if var2 > length then return false end
if var36167 ~= 2048 then goto L19153 end
if var36169 > length then return false end
if 0 > var36171 then goto L19153 end
if var2 > length then return false end
if var36167 ~= 2048 then goto L19153 end
if var36169 > length then return false end
if 0 > var36171 then goto L19153 end
if var36182 > length then return false end
if var36184 ~= 6 then goto L19153 end
if var2 > length then return false end
if var36167 ~= 2048 then goto L19153 end
if var36169 > length then return false end
if 0 > var36171 then goto L19153 end
if var36195 > length then return false end
if 0 > var36197 then goto L19153 end
if var2 > length then return false end
if var36167 ~= 2048 then goto L19153 end
if var36169 > length then return false end
if 0 > var36171 then goto L19153 end
if var36208 > length then return false end
if var36213 ~= 0 then goto L19153 end
local var36268 = (lshift(band(P[14],15),2) + 14)
local var36269 = (var36268 + 22)
local var36270 = (var36269 + 1)
if var36270 > length then return false end
if var2 > length then return false end
if var36167 ~= 2048 then goto L19153 end
if var36169 > length then return false end
if 0 > var36171 then goto L19153 end
if var2 > length then return false end
if var36167 ~= 2048 then goto L19153 end
if var36169 > length then return false end
if 0 > var36171 then goto L19153 end
if var36182 > length then return false end
if var36184 ~= 6 then goto L19153 end
if var2 > length then return false end
if var36167 ~= 2048 then goto L19153 end
if var36169 > length then return false end
if 0 > var36171 then goto L19153 end
if var36195 > length then return false end
if 0 > var36197 then goto L19153 end
if var2 > length then return false end
if var36167 ~= 2048 then goto L19153 end
if var36169 > length then return false end
if 0 > var36171 then goto L19153 end
if var36208 > length then return false end
if var36213 ~= 0 then goto L19153 end
if var2 > length then return false end
if var36167 ~= 2048 then goto L19153 end
if var36169 > length then return false end
if 0 > var36171 then goto L19153 end
if var2 > length then return false end
if var36167 ~= 2048 then goto L19153 end
if var36169 > length then return false end
if 0 > var36171 then goto L19153 end
if var36182 > length then return false end
if var36184 ~= 6 then goto L19153 end
if var2 > length then return false end
if var36167 ~= 2048 then goto L19153 end
if var36169 > length then return false end
if 0 > var36171 then goto L19153 end
if var36195 > length then return false end
if 0 > var36197 then goto L19153 end
if var2 > length then return false end
if var36167 ~= 2048 then goto L19153 end
if var36169 > length then return false end
if 0 > var36171 then goto L19153 end
if var36208 > length then return false end
if var36213 ~= 0 then goto L19153 end
if var36270 > length then return false end
local var36390 = ((21 + P[var36269]) % 4294967296)
local var36393 = (var36268 + ((var36390 + 1) % 4294967296))
local var36394 = (var36393 + 1)
if var36394 > length then return false end
if var2 > length then return false end
if var36167 ~= 2048 then goto L19153 end
if var36169 > length then return false end
if 0 > var36171 then goto L19153 end
if var2 > length then return false end
if var36167 ~= 2048 then goto L19153 end
if var36169 > length then return false end
if 0 > var36171 then goto L19153 end
if var36182 > length then return false end
if var36184 ~= 6 then goto L19153 end
if var2 > length then return false end
if var36167 ~= 2048 then goto L19153 end
if var36169 > length then return false end
if 0 > var36171 then goto L19153 end
if var36195 > length then return false end
if 0 > var36197 then goto L19153 end
if var2 > length then return false end
if var36167 ~= 2048 then goto L19153 end
if var36169 > length then return false end
if 0 > var36171 then goto L19153 end
if var36208 > length then return false end
if var36213 ~= 0 then goto L19153 end
if var2 > length then return false end
if var36167 ~= 2048 then goto L19153 end
if var36169 > length then return false end
if 0 > var36171 then goto L19153 end
if var2 > length then return false end
if var36167 ~= 2048 then goto L19153 end
if var36169 > length then return false end
if 0 > var36171 then goto L19153 end
if var36182 > length then return false end
if var36184 ~= 6 then goto L19153 end
if var2 > length then return false end
if var36167 ~= 2048 then goto L19153 end
if var36169 > length then return false end
if 0 > var36171 then goto L19153 end
if var36195 > length then return false end
if 0 > var36197 then goto L19153 end
if var2 > length then return false end
if var36167 ~= 2048 then goto L19153 end
if var36169 > length then return false end
if 0 > var36171 then goto L19153 end
if var36208 > length then return false end
if var36213 ~= 0 then goto L19153 end
if var36270 > length then return false end
if var2 > length then return false end
if var36167 ~= 2048 then goto L19153 end
if var36169 > length then return false end
if 0 > var36171 then goto L19153 end
if var2 > length then return false end
if var36167 ~= 2048 then goto L19153 end
if var36169 > length then return false end
if 0 > var36171 then goto L19153 end
if var36182 > length then return false end
if var36184 ~= 6 then goto L19153 end
if var2 > length then return false end
if var36167 ~= 2048 then goto L19153 end
if var36169 > length then return false end
if 0 > var36171 then goto L19153 end
if var36195 > length then return false end
if 0 > var36197 then goto L19153 end
if var2 > length then return false end
if var36167 ~= 2048 then goto L19153 end
if var36169 > length then return false end
if 0 > var36171 then goto L19153 end
if var36208 > length then return false end
if var36213 ~= 0 then goto L19153 end
if var2 > length then return false end
if var36167 ~= 2048 then goto L19153 end
if var36169 > length then return false end
if 0 > var36171 then goto L19153 end
if var2 > length then return false end
if var36167 ~= 2048 then goto L19153 end
if var36169 > length then return false end
if 0 > var36171 then goto L19153 end
if var36182 > length then return false end
if var36184 ~= 6 then goto L19153 end
if var2 > length then return false end
if var36167 ~= 2048 then goto L19153 end
if var36169 > length then return false end
if 0 > var36171 then goto L19153 end
if var36195 > length then return false end
if 0 > var36197 then goto L19153 end
if var2 > length then return false end
if var36167 ~= 2048 then goto L19153 end
if var36169 > length then return false end
if 0 > var36171 then goto L19153 end
if var36208 > length then return false end
if var36213 ~= 0 then goto L19153 end
if var36270 > length then return false end
if var36394 > length then return false end
local var36656 = ((var36390 + P[var36393]) % 4294967296)
local var36659 = (var36268 + ((var36656 + 1) % 4294967296))
if (var36659 + 1) > length then return false end
local var36727 = (var36268 + ((var36656 + P[var36659]) % 4294967296))
if (var36727 + 1) > length then return false end
if P[var36727] ~= 1 then goto L19153 end
if var2 > length then return false end
local var36801 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var36801 ~= 2048 then goto L19153 end
local var36802 = (14 + 19)
local var36803 = (var36802 + 1)
if var36803 > length then return false end
local var36805 = P[var36802]
if 0 > var36805 then goto L19153 end
if var2 > length then return false end
if var36801 ~= 2048 then goto L19153 end
if var36803 > length then return false end
if 0 > var36805 then goto L19153 end
local var36815 = (14 + 9)
local var36816 = (var36815 + 1)
if var36816 > length then return false end
local var36818 = P[var36815]
if var36818 ~= 6 then goto L19153 end
if var2 > length then return false end
if var36801 ~= 2048 then goto L19153 end
if var36803 > length then return false end
if 0 > var36805 then goto L19153 end
local var36828 = (14 + 39)
local var36829 = (var36828 + 1)
if var36829 > length then return false end
local var36831 = P[var36828]
if 0 > var36831 then goto L19153 end
if var2 > length then return false end
if var36801 ~= 2048 then goto L19153 end
if var36803 > length then return false end
if 0 > var36805 then goto L19153 end
local var36841 = (14 + 6)
local var36842 = (var36841 + 2)
if var36842 > length then return false end
local var36847 = (band(rshift(bswap(cast("uint16_t*", P+var36841)[0]), 16),8191) % 4294967296)
if var36847 ~= 0 then goto L19153 end
if var2 > length then return false end
if var36801 ~= 2048 then goto L19153 end
if var36803 > length then return false end
if 0 > var36805 then goto L19153 end
if var2 > length then return false end
if var36801 ~= 2048 then goto L19153 end
if var36803 > length then return false end
if 0 > var36805 then goto L19153 end
if var36816 > length then return false end
if var36818 ~= 6 then goto L19153 end
if var2 > length then return false end
if var36801 ~= 2048 then goto L19153 end
if var36803 > length then return false end
if 0 > var36805 then goto L19153 end
if var36829 > length then return false end
if 0 > var36831 then goto L19153 end
if var2 > length then return false end
if var36801 ~= 2048 then goto L19153 end
if var36803 > length then return false end
if 0 > var36805 then goto L19153 end
if var36842 > length then return false end
if var36847 ~= 0 then goto L19153 end
local var36902 = (lshift(band(P[14],15),2) + 14)
local var36903 = (var36902 + 22)
local var36904 = (var36903 + 1)
if var36904 > length then return false end
if var2 > length then return false end
if var36801 ~= 2048 then goto L19153 end
if var36803 > length then return false end
if 0 > var36805 then goto L19153 end
if var2 > length then return false end
if var36801 ~= 2048 then goto L19153 end
if var36803 > length then return false end
if 0 > var36805 then goto L19153 end
if var36816 > length then return false end
if var36818 ~= 6 then goto L19153 end
if var2 > length then return false end
if var36801 ~= 2048 then goto L19153 end
if var36803 > length then return false end
if 0 > var36805 then goto L19153 end
if var36829 > length then return false end
if 0 > var36831 then goto L19153 end
if var2 > length then return false end
if var36801 ~= 2048 then goto L19153 end
if var36803 > length then return false end
if 0 > var36805 then goto L19153 end
if var36842 > length then return false end
if var36847 ~= 0 then goto L19153 end
if var2 > length then return false end
if var36801 ~= 2048 then goto L19153 end
if var36803 > length then return false end
if 0 > var36805 then goto L19153 end
if var2 > length then return false end
if var36801 ~= 2048 then goto L19153 end
if var36803 > length then return false end
if 0 > var36805 then goto L19153 end
if var36816 > length then return false end
if var36818 ~= 6 then goto L19153 end
if var2 > length then return false end
if var36801 ~= 2048 then goto L19153 end
if var36803 > length then return false end
if 0 > var36805 then goto L19153 end
if var36829 > length then return false end
if 0 > var36831 then goto L19153 end
if var2 > length then return false end
if var36801 ~= 2048 then goto L19153 end
if var36803 > length then return false end
if 0 > var36805 then goto L19153 end
if var36842 > length then return false end
if var36847 ~= 0 then goto L19153 end
if var36904 > length then return false end
local var37024 = ((21 + P[var36903]) % 4294967296)
local var37027 = (var36902 + ((var37024 + 1) % 4294967296))
local var37028 = (var37027 + 1)
if var37028 > length then return false end
if var2 > length then return false end
if var36801 ~= 2048 then goto L19153 end
if var36803 > length then return false end
if 0 > var36805 then goto L19153 end
if var2 > length then return false end
if var36801 ~= 2048 then goto L19153 end
if var36803 > length then return false end
if 0 > var36805 then goto L19153 end
if var36816 > length then return false end
if var36818 ~= 6 then goto L19153 end
if var2 > length then return false end
if var36801 ~= 2048 then goto L19153 end
if var36803 > length then return false end
if 0 > var36805 then goto L19153 end
if var36829 > length then return false end
if 0 > var36831 then goto L19153 end
if var2 > length then return false end
if var36801 ~= 2048 then goto L19153 end
if var36803 > length then return false end
if 0 > var36805 then goto L19153 end
if var36842 > length then return false end
if var36847 ~= 0 then goto L19153 end
if var2 > length then return false end
if var36801 ~= 2048 then goto L19153 end
if var36803 > length then return false end
if 0 > var36805 then goto L19153 end
if var2 > length then return false end
if var36801 ~= 2048 then goto L19153 end
if var36803 > length then return false end
if 0 > var36805 then goto L19153 end
if var36816 > length then return false end
if var36818 ~= 6 then goto L19153 end
if var2 > length then return false end
if var36801 ~= 2048 then goto L19153 end
if var36803 > length then return false end
if 0 > var36805 then goto L19153 end
if var36829 > length then return false end
if 0 > var36831 then goto L19153 end
if var2 > length then return false end
if var36801 ~= 2048 then goto L19153 end
if var36803 > length then return false end
if 0 > var36805 then goto L19153 end
if var36842 > length then return false end
if var36847 ~= 0 then goto L19153 end
if var36904 > length then return false end
if var2 > length then return false end
if var36801 ~= 2048 then goto L19153 end
if var36803 > length then return false end
if 0 > var36805 then goto L19153 end
if var2 > length then return false end
if var36801 ~= 2048 then goto L19153 end
if var36803 > length then return false end
if 0 > var36805 then goto L19153 end
if var36816 > length then return false end
if var36818 ~= 6 then goto L19153 end
if var2 > length then return false end
if var36801 ~= 2048 then goto L19153 end
if var36803 > length then return false end
if 0 > var36805 then goto L19153 end
if var36829 > length then return false end
if 0 > var36831 then goto L19153 end
if var2 > length then return false end
if var36801 ~= 2048 then goto L19153 end
if var36803 > length then return false end
if 0 > var36805 then goto L19153 end
if var36842 > length then return false end
if var36847 ~= 0 then goto L19153 end
if var2 > length then return false end
if var36801 ~= 2048 then goto L19153 end
if var36803 > length then return false end
if 0 > var36805 then goto L19153 end
if var2 > length then return false end
if var36801 ~= 2048 then goto L19153 end
if var36803 > length then return false end
if 0 > var36805 then goto L19153 end
if var36816 > length then return false end
if var36818 ~= 6 then goto L19153 end
if var2 > length then return false end
if var36801 ~= 2048 then goto L19153 end
if var36803 > length then return false end
if 0 > var36805 then goto L19153 end
if var36829 > length then return false end
if 0 > var36831 then goto L19153 end
if var2 > length then return false end
if var36801 ~= 2048 then goto L19153 end
if var36803 > length then return false end
if 0 > var36805 then goto L19153 end
if var36842 > length then return false end
if var36847 ~= 0 then goto L19153 end
if var36904 > length then return false end
if var37028 > length then return false end
local var37290 = ((var37024 + P[var37027]) % 4294967296)
local var37293 = (var36902 + ((var37290 + 1) % 4294967296))
if (var37293 + 1) > length then return false end
local var37363 = (var36902 + ((((var37290 + P[var37293]) % 4294967296) + 1) % 4294967296))
if (var37363 + 1) > length then return false end
if P[var37363] == 3 then return true end
goto L19153
end
::L19153::
if var2 > length then return false end
local var37439 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var37439 ~= 2048 then goto L18963 end
local var37440 = (14 + 19)
local var37441 = (var37440 + 1)
if var37441 > length then return false end
local var37443 = P[var37440]
if 0 > var37443 then goto L18963 end
if var2 > length then return false end
if var37439 ~= 2048 then goto L18963 end
if var37441 > length then return false end
if 0 > var37443 then goto L18963 end
local var37453 = (14 + 9)
local var37454 = (var37453 + 1)
if var37454 > length then return false end
local var37456 = P[var37453]
if var37456 ~= 6 then goto L18963 end
if var2 > length then return false end
if var37439 ~= 2048 then goto L18963 end
if var37441 > length then return false end
if 0 > var37443 then goto L18963 end
local var37466 = (14 + 39)
local var37467 = (var37466 + 1)
if var37467 > length then return false end
local var37469 = P[var37466]
if 0 > var37469 then goto L18963 end
if var2 > length then return false end
if var37439 ~= 2048 then goto L18963 end
if var37441 > length then return false end
if 0 > var37443 then goto L18963 end
local var37479 = (14 + 6)
local var37480 = (var37479 + 2)
if var37480 > length then return false end
local var37485 = (band(rshift(bswap(cast("uint16_t*", P+var37479)[0]), 16),8191) % 4294967296)
if var37485 ~= 0 then goto L18963 end
if var2 > length then return false end
if var37439 ~= 2048 then goto L18963 end
if var37441 > length then return false end
if 0 > var37443 then goto L18963 end
if var2 > length then return false end
if var37439 ~= 2048 then goto L18963 end
if var37441 > length then return false end
if 0 > var37443 then goto L18963 end
if var37454 > length then return false end
if var37456 ~= 6 then goto L18963 end
if var2 > length then return false end
if var37439 ~= 2048 then goto L18963 end
if var37441 > length then return false end
if 0 > var37443 then goto L18963 end
if var37467 > length then return false end
if 0 > var37469 then goto L18963 end
if var2 > length then return false end
if var37439 ~= 2048 then goto L18963 end
if var37441 > length then return false end
if 0 > var37443 then goto L18963 end
if var37480 > length then return false end
if var37485 ~= 0 then goto L18963 end
local var37540 = (lshift(band(P[14],15),2) + 14)
local var37541 = (var37540 + 22)
local var37542 = (var37541 + 1)
if var37542 > length then return false end
if var2 > length then return false end
if var37439 ~= 2048 then goto L18963 end
if var37441 > length then return false end
if 0 > var37443 then goto L18963 end
if var2 > length then return false end
if var37439 ~= 2048 then goto L18963 end
if var37441 > length then return false end
if 0 > var37443 then goto L18963 end
if var37454 > length then return false end
if var37456 ~= 6 then goto L18963 end
if var2 > length then return false end
if var37439 ~= 2048 then goto L18963 end
if var37441 > length then return false end
if 0 > var37443 then goto L18963 end
if var37467 > length then return false end
if 0 > var37469 then goto L18963 end
if var2 > length then return false end
if var37439 ~= 2048 then goto L18963 end
if var37441 > length then return false end
if 0 > var37443 then goto L18963 end
if var37480 > length then return false end
if var37485 ~= 0 then goto L18963 end
if var2 > length then return false end
if var37439 ~= 2048 then goto L18963 end
if var37441 > length then return false end
if 0 > var37443 then goto L18963 end
if var2 > length then return false end
if var37439 ~= 2048 then goto L18963 end
if var37441 > length then return false end
if 0 > var37443 then goto L18963 end
if var37454 > length then return false end
if var37456 ~= 6 then goto L18963 end
if var2 > length then return false end
if var37439 ~= 2048 then goto L18963 end
if var37441 > length then return false end
if 0 > var37443 then goto L18963 end
if var37467 > length then return false end
if 0 > var37469 then goto L18963 end
if var2 > length then return false end
if var37439 ~= 2048 then goto L18963 end
if var37441 > length then return false end
if 0 > var37443 then goto L18963 end
if var37480 > length then return false end
if var37485 ~= 0 then goto L18963 end
if var37542 > length then return false end
local var37662 = ((21 + P[var37541]) % 4294967296)
local var37665 = (var37540 + ((var37662 + 1) % 4294967296))
if (var37665 + 1) > length then return false end
local var37697 = (var37540 + ((var37662 + P[var37665]) % 4294967296))
if (var37697 + 1) > length then return false end
if P[var37697] ~= 1 then goto L18963 end
if var2 > length then return false end
local var37735 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var37735 ~= 2048 then goto L21931 end
do
local var37736 = (14 + 19)
local var37737 = (var37736 + 1)
if var37737 > length then return false end
local var37739 = P[var37736]
if 0 > var37739 then goto L21931 end
if var2 > length then return false end
if var37735 ~= 2048 then goto L21931 end
if var37737 > length then return false end
if 0 > var37739 then goto L21931 end
local var37749 = (14 + 9)
local var37750 = (var37749 + 1)
if var37750 > length then return false end
local var37752 = P[var37749]
if var37752 ~= 6 then goto L21931 end
if var2 > length then return false end
if var37735 ~= 2048 then goto L21931 end
if var37737 > length then return false end
if 0 > var37739 then goto L21931 end
local var37762 = (14 + 39)
local var37763 = (var37762 + 1)
if var37763 > length then return false end
local var37765 = P[var37762]
if 0 > var37765 then goto L21931 end
if var2 > length then return false end
if var37735 ~= 2048 then goto L21931 end
if var37737 > length then return false end
if 0 > var37739 then goto L21931 end
local var37775 = (14 + 6)
local var37776 = (var37775 + 2)
if var37776 > length then return false end
local var37781 = (band(rshift(bswap(cast("uint16_t*", P+var37775)[0]), 16),8191) % 4294967296)
if var37781 ~= 0 then goto L21931 end
if var2 > length then return false end
if var37735 ~= 2048 then goto L21931 end
if var37737 > length then return false end
if 0 > var37739 then goto L21931 end
if var2 > length then return false end
if var37735 ~= 2048 then goto L21931 end
if var37737 > length then return false end
if 0 > var37739 then goto L21931 end
if var37750 > length then return false end
if var37752 ~= 6 then goto L21931 end
if var2 > length then return false end
if var37735 ~= 2048 then goto L21931 end
if var37737 > length then return false end
if 0 > var37739 then goto L21931 end
if var37763 > length then return false end
if 0 > var37765 then goto L21931 end
if var2 > length then return false end
if var37735 ~= 2048 then goto L21931 end
if var37737 > length then return false end
if 0 > var37739 then goto L21931 end
if var37776 > length then return false end
if var37781 ~= 0 then goto L21931 end
local var37836 = (lshift(band(P[14],15),2) + 14)
local var37837 = (var37836 + 22)
local var37838 = (var37837 + 1)
if var37838 > length then return false end
if var2 > length then return false end
if var37735 ~= 2048 then goto L21931 end
if var37737 > length then return false end
if 0 > var37739 then goto L21931 end
if var2 > length then return false end
if var37735 ~= 2048 then goto L21931 end
if var37737 > length then return false end
if 0 > var37739 then goto L21931 end
if var37750 > length then return false end
if var37752 ~= 6 then goto L21931 end
if var2 > length then return false end
if var37735 ~= 2048 then goto L21931 end
if var37737 > length then return false end
if 0 > var37739 then goto L21931 end
if var37763 > length then return false end
if 0 > var37765 then goto L21931 end
if var2 > length then return false end
if var37735 ~= 2048 then goto L21931 end
if var37737 > length then return false end
if 0 > var37739 then goto L21931 end
if var37776 > length then return false end
if var37781 ~= 0 then goto L21931 end
if var2 > length then return false end
if var37735 ~= 2048 then goto L21931 end
if var37737 > length then return false end
if 0 > var37739 then goto L21931 end
if var2 > length then return false end
if var37735 ~= 2048 then goto L21931 end
if var37737 > length then return false end
if 0 > var37739 then goto L21931 end
if var37750 > length then return false end
if var37752 ~= 6 then goto L21931 end
if var2 > length then return false end
if var37735 ~= 2048 then goto L21931 end
if var37737 > length then return false end
if 0 > var37739 then goto L21931 end
if var37763 > length then return false end
if 0 > var37765 then goto L21931 end
if var2 > length then return false end
if var37735 ~= 2048 then goto L21931 end
if var37737 > length then return false end
if 0 > var37739 then goto L21931 end
if var37776 > length then return false end
if var37781 ~= 0 then goto L21931 end
if var37838 > length then return false end
local var37958 = ((21 + P[var37837]) % 4294967296)
local var37961 = (var37836 + ((var37958 + 1) % 4294967296))
if (var37961 + 1) > length then return false end
local var37995 = (var37836 + ((((var37958 + P[var37961]) % 4294967296) + 1) % 4294967296))
if (var37995 + 1) > length then return false end
if P[var37995] == 3 then return true end
goto L21931
end
::L21931::
if var2 > length then return false end
local var38035 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var38035 ~= 2048 then goto L21929 end
do
local var38036 = (14 + 19)
local var38037 = (var38036 + 1)
if var38037 > length then return false end
local var38039 = P[var38036]
if 0 > var38039 then goto L21929 end
if var2 > length then return false end
if var38035 ~= 2048 then goto L21929 end
if var38037 > length then return false end
if 0 > var38039 then goto L21929 end
local var38049 = (14 + 9)
local var38050 = (var38049 + 1)
if var38050 > length then return false end
local var38052 = P[var38049]
if var38052 ~= 6 then goto L21929 end
if var2 > length then return false end
if var38035 ~= 2048 then goto L21929 end
if var38037 > length then return false end
if 0 > var38039 then goto L21929 end
local var38062 = (14 + 39)
local var38063 = (var38062 + 1)
if var38063 > length then return false end
local var38065 = P[var38062]
if 0 > var38065 then goto L21929 end
if var2 > length then return false end
if var38035 ~= 2048 then goto L21929 end
if var38037 > length then return false end
if 0 > var38039 then goto L21929 end
local var38075 = (14 + 6)
local var38076 = (var38075 + 2)
if var38076 > length then return false end
local var38081 = (band(rshift(bswap(cast("uint16_t*", P+var38075)[0]), 16),8191) % 4294967296)
if var38081 ~= 0 then goto L21929 end
if var2 > length then return false end
if var38035 ~= 2048 then goto L21929 end
if var38037 > length then return false end
if 0 > var38039 then goto L21929 end
if var2 > length then return false end
if var38035 ~= 2048 then goto L21929 end
if var38037 > length then return false end
if 0 > var38039 then goto L21929 end
if var38050 > length then return false end
if var38052 ~= 6 then goto L21929 end
if var2 > length then return false end
if var38035 ~= 2048 then goto L21929 end
if var38037 > length then return false end
if 0 > var38039 then goto L21929 end
if var38063 > length then return false end
if 0 > var38065 then goto L21929 end
if var2 > length then return false end
if var38035 ~= 2048 then goto L21929 end
if var38037 > length then return false end
if 0 > var38039 then goto L21929 end
if var38076 > length then return false end
if var38081 ~= 0 then goto L21929 end
local var38136 = (lshift(band(P[14],15),2) + 14)
local var38137 = (var38136 + 22)
local var38138 = (var38137 + 1)
if var38138 > length then return false end
if var2 > length then return false end
if var38035 ~= 2048 then goto L21929 end
if var38037 > length then return false end
if 0 > var38039 then goto L21929 end
if var2 > length then return false end
if var38035 ~= 2048 then goto L21929 end
if var38037 > length then return false end
if 0 > var38039 then goto L21929 end
if var38050 > length then return false end
if var38052 ~= 6 then goto L21929 end
if var2 > length then return false end
if var38035 ~= 2048 then goto L21929 end
if var38037 > length then return false end
if 0 > var38039 then goto L21929 end
if var38063 > length then return false end
if 0 > var38065 then goto L21929 end
if var2 > length then return false end
if var38035 ~= 2048 then goto L21929 end
if var38037 > length then return false end
if 0 > var38039 then goto L21929 end
if var38076 > length then return false end
if var38081 ~= 0 then goto L21929 end
if var2 > length then return false end
if var38035 ~= 2048 then goto L21929 end
if var38037 > length then return false end
if 0 > var38039 then goto L21929 end
if var2 > length then return false end
if var38035 ~= 2048 then goto L21929 end
if var38037 > length then return false end
if 0 > var38039 then goto L21929 end
if var38050 > length then return false end
if var38052 ~= 6 then goto L21929 end
if var2 > length then return false end
if var38035 ~= 2048 then goto L21929 end
if var38037 > length then return false end
if 0 > var38039 then goto L21929 end
if var38063 > length then return false end
if 0 > var38065 then goto L21929 end
if var2 > length then return false end
if var38035 ~= 2048 then goto L21929 end
if var38037 > length then return false end
if 0 > var38039 then goto L21929 end
if var38076 > length then return false end
if var38081 ~= 0 then goto L21929 end
if var38138 > length then return false end
local var38258 = ((21 + P[var38137]) % 4294967296)
local var38261 = (var38136 + ((var38258 + 1) % 4294967296))
if (var38261 + 1) > length then return false end
local var38295 = (var38136 + ((((var38258 + P[var38261]) % 4294967296) + 1) % 4294967296))
if (var38295 + 1) > length then return false end
if P[var38295] == 1 then goto L21929 end
if var2 > length then return false end
local var38335 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var38335 ~= 2048 then goto L21929 end
local var38336 = (14 + 19)
local var38337 = (var38336 + 1)
if var38337 > length then return false end
local var38339 = P[var38336]
if 0 > var38339 then goto L21929 end
if var2 > length then return false end
if var38335 ~= 2048 then goto L21929 end
if var38337 > length then return false end
if 0 > var38339 then goto L21929 end
local var38349 = (14 + 9)
local var38350 = (var38349 + 1)
if var38350 > length then return false end
local var38352 = P[var38349]
if var38352 ~= 6 then goto L21929 end
if var2 > length then return false end
if var38335 ~= 2048 then goto L21929 end
if var38337 > length then return false end
if 0 > var38339 then goto L21929 end
local var38362 = (14 + 39)
local var38363 = (var38362 + 1)
if var38363 > length then return false end
local var38365 = P[var38362]
if 0 > var38365 then goto L21929 end
if var2 > length then return false end
if var38335 ~= 2048 then goto L21929 end
if var38337 > length then return false end
if 0 > var38339 then goto L21929 end
local var38375 = (14 + 6)
local var38376 = (var38375 + 2)
if var38376 > length then return false end
local var38381 = (band(rshift(bswap(cast("uint16_t*", P+var38375)[0]), 16),8191) % 4294967296)
if var38381 ~= 0 then goto L21929 end
if var2 > length then return false end
if var38335 ~= 2048 then goto L21929 end
if var38337 > length then return false end
if 0 > var38339 then goto L21929 end
if var2 > length then return false end
if var38335 ~= 2048 then goto L21929 end
if var38337 > length then return false end
if 0 > var38339 then goto L21929 end
if var38350 > length then return false end
if var38352 ~= 6 then goto L21929 end
if var2 > length then return false end
if var38335 ~= 2048 then goto L21929 end
if var38337 > length then return false end
if 0 > var38339 then goto L21929 end
if var38363 > length then return false end
if 0 > var38365 then goto L21929 end
if var2 > length then return false end
if var38335 ~= 2048 then goto L21929 end
if var38337 > length then return false end
if 0 > var38339 then goto L21929 end
if var38376 > length then return false end
if var38381 ~= 0 then goto L21929 end
local var38436 = (lshift(band(P[14],15),2) + 14)
local var38437 = (var38436 + 22)
local var38438 = (var38437 + 1)
if var38438 > length then return false end
if var2 > length then return false end
if var38335 ~= 2048 then goto L21929 end
if var38337 > length then return false end
if 0 > var38339 then goto L21929 end
if var2 > length then return false end
if var38335 ~= 2048 then goto L21929 end
if var38337 > length then return false end
if 0 > var38339 then goto L21929 end
if var38350 > length then return false end
if var38352 ~= 6 then goto L21929 end
if var2 > length then return false end
if var38335 ~= 2048 then goto L21929 end
if var38337 > length then return false end
if 0 > var38339 then goto L21929 end
if var38363 > length then return false end
if 0 > var38365 then goto L21929 end
if var2 > length then return false end
if var38335 ~= 2048 then goto L21929 end
if var38337 > length then return false end
if 0 > var38339 then goto L21929 end
if var38376 > length then return false end
if var38381 ~= 0 then goto L21929 end
if var2 > length then return false end
if var38335 ~= 2048 then goto L21929 end
if var38337 > length then return false end
if 0 > var38339 then goto L21929 end
if var2 > length then return false end
if var38335 ~= 2048 then goto L21929 end
if var38337 > length then return false end
if 0 > var38339 then goto L21929 end
if var38350 > length then return false end
if var38352 ~= 6 then goto L21929 end
if var2 > length then return false end
if var38335 ~= 2048 then goto L21929 end
if var38337 > length then return false end
if 0 > var38339 then goto L21929 end
if var38363 > length then return false end
if 0 > var38365 then goto L21929 end
if var2 > length then return false end
if var38335 ~= 2048 then goto L21929 end
if var38337 > length then return false end
if 0 > var38339 then goto L21929 end
if var38376 > length then return false end
if var38381 ~= 0 then goto L21929 end
if var38438 > length then return false end
local var38558 = ((21 + P[var38437]) % 4294967296)
local var38561 = (var38436 + ((var38558 + 1) % 4294967296))
local var38562 = (var38561 + 1)
if var38562 > length then return false end
if var2 > length then return false end
if var38335 ~= 2048 then goto L21929 end
if var38337 > length then return false end
if 0 > var38339 then goto L21929 end
if var2 > length then return false end
if var38335 ~= 2048 then goto L21929 end
if var38337 > length then return false end
if 0 > var38339 then goto L21929 end
if var38350 > length then return false end
if var38352 ~= 6 then goto L21929 end
if var2 > length then return false end
if var38335 ~= 2048 then goto L21929 end
if var38337 > length then return false end
if 0 > var38339 then goto L21929 end
if var38363 > length then return false end
if 0 > var38365 then goto L21929 end
if var2 > length then return false end
if var38335 ~= 2048 then goto L21929 end
if var38337 > length then return false end
if 0 > var38339 then goto L21929 end
if var38376 > length then return false end
if var38381 ~= 0 then goto L21929 end
if var2 > length then return false end
if var38335 ~= 2048 then goto L21929 end
if var38337 > length then return false end
if 0 > var38339 then goto L21929 end
if var2 > length then return false end
if var38335 ~= 2048 then goto L21929 end
if var38337 > length then return false end
if 0 > var38339 then goto L21929 end
if var38350 > length then return false end
if var38352 ~= 6 then goto L21929 end
if var2 > length then return false end
if var38335 ~= 2048 then goto L21929 end
if var38337 > length then return false end
if 0 > var38339 then goto L21929 end
if var38363 > length then return false end
if 0 > var38365 then goto L21929 end
if var2 > length then return false end
if var38335 ~= 2048 then goto L21929 end
if var38337 > length then return false end
if 0 > var38339 then goto L21929 end
if var38376 > length then return false end
if var38381 ~= 0 then goto L21929 end
if var38438 > length then return false end
if var2 > length then return false end
if var38335 ~= 2048 then goto L21929 end
if var38337 > length then return false end
if 0 > var38339 then goto L21929 end
if var2 > length then return false end
if var38335 ~= 2048 then goto L21929 end
if var38337 > length then return false end
if 0 > var38339 then goto L21929 end
if var38350 > length then return false end
if var38352 ~= 6 then goto L21929 end
if var2 > length then return false end
if var38335 ~= 2048 then goto L21929 end
if var38337 > length then return false end
if 0 > var38339 then goto L21929 end
if var38363 > length then return false end
if 0 > var38365 then goto L21929 end
if var2 > length then return false end
if var38335 ~= 2048 then goto L21929 end
if var38337 > length then return false end
if 0 > var38339 then goto L21929 end
if var38376 > length then return false end
if var38381 ~= 0 then goto L21929 end
if var2 > length then return false end
if var38335 ~= 2048 then goto L21929 end
if var38337 > length then return false end
if 0 > var38339 then goto L21929 end
if var2 > length then return false end
if var38335 ~= 2048 then goto L21929 end
if var38337 > length then return false end
if 0 > var38339 then goto L21929 end
if var38350 > length then return false end
if var38352 ~= 6 then goto L21929 end
if var2 > length then return false end
if var38335 ~= 2048 then goto L21929 end
if var38337 > length then return false end
if 0 > var38339 then goto L21929 end
if var38363 > length then return false end
if 0 > var38365 then goto L21929 end
if var2 > length then return false end
if var38335 ~= 2048 then goto L21929 end
if var38337 > length then return false end
if 0 > var38339 then goto L21929 end
if var38376 > length then return false end
if var38381 ~= 0 then goto L21929 end
if var38438 > length then return false end
if var38562 > length then return false end
local var38824 = ((var38558 + P[var38561]) % 4294967296)
local var38827 = (var38436 + ((var38824 + 2) % 4294967296))
if (var38827 + 1) > length then return false end
local var38897 = (var38436 + ((((var38824 + 1) % 4294967296) + P[var38827]) % 4294967296))
if (var38897 + 1) > length then return false end
if P[var38897] == 3 then return true end
goto L21929
end
::L21929::
if var2 > length then return false end
local var38973 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var38973 ~= 2048 then goto L18963 end
local var38974 = (14 + 19)
local var38975 = (var38974 + 1)
if var38975 > length then return false end
local var38977 = P[var38974]
if 0 > var38977 then goto L18963 end
if var2 > length then return false end
if var38973 ~= 2048 then goto L18963 end
if var38975 > length then return false end
if 0 > var38977 then goto L18963 end
local var38987 = (14 + 9)
local var38988 = (var38987 + 1)
if var38988 > length then return false end
local var38990 = P[var38987]
if var38990 ~= 6 then goto L18963 end
if var2 > length then return false end
if var38973 ~= 2048 then goto L18963 end
if var38975 > length then return false end
if 0 > var38977 then goto L18963 end
local var39000 = (14 + 39)
local var39001 = (var39000 + 1)
if var39001 > length then return false end
local var39003 = P[var39000]
if 0 > var39003 then goto L18963 end
if var2 > length then return false end
if var38973 ~= 2048 then goto L18963 end
if var38975 > length then return false end
if 0 > var38977 then goto L18963 end
local var39013 = (14 + 6)
local var39014 = (var39013 + 2)
if var39014 > length then return false end
local var39019 = (band(rshift(bswap(cast("uint16_t*", P+var39013)[0]), 16),8191) % 4294967296)
if var39019 ~= 0 then goto L18963 end
if var2 > length then return false end
if var38973 ~= 2048 then goto L18963 end
if var38975 > length then return false end
if 0 > var38977 then goto L18963 end
if var2 > length then return false end
if var38973 ~= 2048 then goto L18963 end
if var38975 > length then return false end
if 0 > var38977 then goto L18963 end
if var38988 > length then return false end
if var38990 ~= 6 then goto L18963 end
if var2 > length then return false end
if var38973 ~= 2048 then goto L18963 end
if var38975 > length then return false end
if 0 > var38977 then goto L18963 end
if var39001 > length then return false end
if 0 > var39003 then goto L18963 end
if var2 > length then return false end
if var38973 ~= 2048 then goto L18963 end
if var38975 > length then return false end
if 0 > var38977 then goto L18963 end
if var39014 > length then return false end
if var39019 ~= 0 then goto L18963 end
local var39074 = (lshift(band(P[14],15),2) + 14)
local var39075 = (var39074 + 22)
local var39076 = (var39075 + 1)
if var39076 > length then return false end
if var2 > length then return false end
if var38973 ~= 2048 then goto L18963 end
if var38975 > length then return false end
if 0 > var38977 then goto L18963 end
if var2 > length then return false end
if var38973 ~= 2048 then goto L18963 end
if var38975 > length then return false end
if 0 > var38977 then goto L18963 end
if var38988 > length then return false end
if var38990 ~= 6 then goto L18963 end
if var2 > length then return false end
if var38973 ~= 2048 then goto L18963 end
if var38975 > length then return false end
if 0 > var38977 then goto L18963 end
if var39001 > length then return false end
if 0 > var39003 then goto L18963 end
if var2 > length then return false end
if var38973 ~= 2048 then goto L18963 end
if var38975 > length then return false end
if 0 > var38977 then goto L18963 end
if var39014 > length then return false end
if var39019 ~= 0 then goto L18963 end
if var2 > length then return false end
if var38973 ~= 2048 then goto L18963 end
if var38975 > length then return false end
if 0 > var38977 then goto L18963 end
if var2 > length then return false end
if var38973 ~= 2048 then goto L18963 end
if var38975 > length then return false end
if 0 > var38977 then goto L18963 end
if var38988 > length then return false end
if var38990 ~= 6 then goto L18963 end
if var2 > length then return false end
if var38973 ~= 2048 then goto L18963 end
if var38975 > length then return false end
if 0 > var38977 then goto L18963 end
if var39001 > length then return false end
if 0 > var39003 then goto L18963 end
if var2 > length then return false end
if var38973 ~= 2048 then goto L18963 end
if var38975 > length then return false end
if 0 > var38977 then goto L18963 end
if var39014 > length then return false end
if var39019 ~= 0 then goto L18963 end
if var39076 > length then return false end
local var39196 = ((21 + P[var39075]) % 4294967296)
local var39199 = (var39074 + ((var39196 + 1) % 4294967296))
if (var39199 + 1) > length then return false end
local var39233 = (var39074 + ((((var39196 + P[var39199]) % 4294967296) + 1) % 4294967296))
if (var39233 + 1) > length then return false end
if P[var39233] ~= 1 then goto L18963 end
if var2 > length then return false end
local var39273 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var39273 ~= 2048 then goto L18963 end
local var39274 = (14 + 19)
local var39275 = (var39274 + 1)
if var39275 > length then return false end
local var39277 = P[var39274]
if 0 > var39277 then goto L18963 end
if var2 > length then return false end
if var39273 ~= 2048 then goto L18963 end
if var39275 > length then return false end
if 0 > var39277 then goto L18963 end
local var39287 = (14 + 9)
local var39288 = (var39287 + 1)
if var39288 > length then return false end
local var39290 = P[var39287]
if var39290 ~= 6 then goto L18963 end
if var2 > length then return false end
if var39273 ~= 2048 then goto L18963 end
if var39275 > length then return false end
if 0 > var39277 then goto L18963 end
local var39300 = (14 + 39)
local var39301 = (var39300 + 1)
if var39301 > length then return false end
local var39303 = P[var39300]
if 0 > var39303 then goto L18963 end
if var2 > length then return false end
if var39273 ~= 2048 then goto L18963 end
if var39275 > length then return false end
if 0 > var39277 then goto L18963 end
local var39313 = (14 + 6)
local var39314 = (var39313 + 2)
if var39314 > length then return false end
local var39319 = (band(rshift(bswap(cast("uint16_t*", P+var39313)[0]), 16),8191) % 4294967296)
if var39319 ~= 0 then goto L18963 end
if var2 > length then return false end
if var39273 ~= 2048 then goto L18963 end
if var39275 > length then return false end
if 0 > var39277 then goto L18963 end
if var2 > length then return false end
if var39273 ~= 2048 then goto L18963 end
if var39275 > length then return false end
if 0 > var39277 then goto L18963 end
if var39288 > length then return false end
if var39290 ~= 6 then goto L18963 end
if var2 > length then return false end
if var39273 ~= 2048 then goto L18963 end
if var39275 > length then return false end
if 0 > var39277 then goto L18963 end
if var39301 > length then return false end
if 0 > var39303 then goto L18963 end
if var2 > length then return false end
if var39273 ~= 2048 then goto L18963 end
if var39275 > length then return false end
if 0 > var39277 then goto L18963 end
if var39314 > length then return false end
if var39319 ~= 0 then goto L18963 end
local var39374 = (lshift(band(P[14],15),2) + 14)
local var39375 = (var39374 + 22)
local var39376 = (var39375 + 1)
if var39376 > length then return false end
if var2 > length then return false end
if var39273 ~= 2048 then goto L18963 end
if var39275 > length then return false end
if 0 > var39277 then goto L18963 end
if var2 > length then return false end
if var39273 ~= 2048 then goto L18963 end
if var39275 > length then return false end
if 0 > var39277 then goto L18963 end
if var39288 > length then return false end
if var39290 ~= 6 then goto L18963 end
if var2 > length then return false end
if var39273 ~= 2048 then goto L18963 end
if var39275 > length then return false end
if 0 > var39277 then goto L18963 end
if var39301 > length then return false end
if 0 > var39303 then goto L18963 end
if var2 > length then return false end
if var39273 ~= 2048 then goto L18963 end
if var39275 > length then return false end
if 0 > var39277 then goto L18963 end
if var39314 > length then return false end
if var39319 ~= 0 then goto L18963 end
if var2 > length then return false end
if var39273 ~= 2048 then goto L18963 end
if var39275 > length then return false end
if 0 > var39277 then goto L18963 end
if var2 > length then return false end
if var39273 ~= 2048 then goto L18963 end
if var39275 > length then return false end
if 0 > var39277 then goto L18963 end
if var39288 > length then return false end
if var39290 ~= 6 then goto L18963 end
if var2 > length then return false end
if var39273 ~= 2048 then goto L18963 end
if var39275 > length then return false end
if 0 > var39277 then goto L18963 end
if var39301 > length then return false end
if 0 > var39303 then goto L18963 end
if var2 > length then return false end
if var39273 ~= 2048 then goto L18963 end
if var39275 > length then return false end
if 0 > var39277 then goto L18963 end
if var39314 > length then return false end
if var39319 ~= 0 then goto L18963 end
if var39376 > length then return false end
local var39496 = ((21 + P[var39375]) % 4294967296)
local var39499 = (var39374 + ((var39496 + 1) % 4294967296))
if (var39499 + 1) > length then return false end
local var39533 = (var39374 + ((((var39496 + P[var39499]) % 4294967296) + 2) % 4294967296))
if (var39533 + 1) > length then return false end
if P[var39533] == 3 then return true end
goto L18963
end
::L18963::
if var2 > length then return false end
local var39573 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var39573 ~= 2048 then goto L18865 end
local var39574 = (14 + 19)
local var39575 = (var39574 + 1)
if var39575 > length then return false end
local var39577 = P[var39574]
if 0 > var39577 then goto L18865 end
if var2 > length then return false end
if var39573 ~= 2048 then goto L18865 end
if var39575 > length then return false end
if 0 > var39577 then goto L18865 end
local var39587 = (14 + 9)
local var39588 = (var39587 + 1)
if var39588 > length then return false end
local var39590 = P[var39587]
if var39590 ~= 6 then goto L18865 end
if var2 > length then return false end
if var39573 ~= 2048 then goto L18865 end
if var39575 > length then return false end
if 0 > var39577 then goto L18865 end
local var39600 = (14 + 39)
local var39601 = (var39600 + 1)
if var39601 > length then return false end
local var39603 = P[var39600]
if 0 > var39603 then goto L18865 end
if var2 > length then return false end
if var39573 ~= 2048 then goto L18865 end
if var39575 > length then return false end
if 0 > var39577 then goto L18865 end
local var39613 = (14 + 6)
local var39614 = (var39613 + 2)
if var39614 > length then return false end
local var39619 = (band(rshift(bswap(cast("uint16_t*", P+var39613)[0]), 16),8191) % 4294967296)
if var39619 ~= 0 then goto L18865 end
if var2 > length then return false end
if var39573 ~= 2048 then goto L18865 end
if var39575 > length then return false end
if 0 > var39577 then goto L18865 end
if var2 > length then return false end
if var39573 ~= 2048 then goto L18865 end
if var39575 > length then return false end
if 0 > var39577 then goto L18865 end
if var39588 > length then return false end
if var39590 ~= 6 then goto L18865 end
if var2 > length then return false end
if var39573 ~= 2048 then goto L18865 end
if var39575 > length then return false end
if 0 > var39577 then goto L18865 end
if var39601 > length then return false end
if 0 > var39603 then goto L18865 end
if var2 > length then return false end
if var39573 ~= 2048 then goto L18865 end
if var39575 > length then return false end
if 0 > var39577 then goto L18865 end
if var39614 > length then return false end
if var39619 ~= 0 then goto L18865 end
local var39674 = (lshift(band(P[14],15),2) + 14)
local var39675 = (var39674 + 22)
if (var39675 + 1) > length then return false end
local var39689 = (var39674 + ((21 + P[var39675]) % 4294967296))
if (var39689 + 1) > length then return false end
if P[var39689] ~= 1 then goto L18865 end
if var2 > length then return false end
local var39709 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var39709 ~= 2048 then goto L23137 end
do
local var39710 = (14 + 19)
local var39711 = (var39710 + 1)
if var39711 > length then return false end
local var39713 = P[var39710]
if 0 > var39713 then goto L23137 end
if var2 > length then return false end
if var39709 ~= 2048 then goto L23137 end
if var39711 > length then return false end
if 0 > var39713 then goto L23137 end
local var39723 = (14 + 9)
local var39724 = (var39723 + 1)
if var39724 > length then return false end
local var39726 = P[var39723]
if var39726 ~= 6 then goto L23137 end
if var2 > length then return false end
if var39709 ~= 2048 then goto L23137 end
if var39711 > length then return false end
if 0 > var39713 then goto L23137 end
local var39736 = (14 + 39)
local var39737 = (var39736 + 1)
if var39737 > length then return false end
local var39739 = P[var39736]
if 0 > var39739 then goto L23137 end
if var2 > length then return false end
if var39709 ~= 2048 then goto L23137 end
if var39711 > length then return false end
if 0 > var39713 then goto L23137 end
local var39749 = (14 + 6)
local var39750 = (var39749 + 2)
if var39750 > length then return false end
local var39755 = (band(rshift(bswap(cast("uint16_t*", P+var39749)[0]), 16),8191) % 4294967296)
if var39755 ~= 0 then goto L23137 end
if var2 > length then return false end
if var39709 ~= 2048 then goto L23137 end
if var39711 > length then return false end
if 0 > var39713 then goto L23137 end
if var2 > length then return false end
if var39709 ~= 2048 then goto L23137 end
if var39711 > length then return false end
if 0 > var39713 then goto L23137 end
if var39724 > length then return false end
if var39726 ~= 6 then goto L23137 end
if var2 > length then return false end
if var39709 ~= 2048 then goto L23137 end
if var39711 > length then return false end
if 0 > var39713 then goto L23137 end
if var39737 > length then return false end
if 0 > var39739 then goto L23137 end
if var2 > length then return false end
if var39709 ~= 2048 then goto L23137 end
if var39711 > length then return false end
if 0 > var39713 then goto L23137 end
if var39750 > length then return false end
if var39755 ~= 0 then goto L23137 end
local var39810 = (lshift(band(P[14],15),2) + 14)
local var39811 = (var39810 + 22)
if (var39811 + 1) > length then return false end
local var39827 = (var39810 + ((((21 + P[var39811]) % 4294967296) + 1) % 4294967296))
if (var39827 + 1) > length then return false end
if P[var39827] == 3 then return true end
goto L23137
end
::L23137::
if var2 > length then return false end
local var39849 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var39849 ~= 2048 then goto L23135 end
do
local var39850 = (14 + 19)
local var39851 = (var39850 + 1)
if var39851 > length then return false end
local var39853 = P[var39850]
if 0 > var39853 then goto L23135 end
if var2 > length then return false end
if var39849 ~= 2048 then goto L23135 end
if var39851 > length then return false end
if 0 > var39853 then goto L23135 end
local var39863 = (14 + 9)
local var39864 = (var39863 + 1)
if var39864 > length then return false end
local var39866 = P[var39863]
if var39866 ~= 6 then goto L23135 end
if var2 > length then return false end
if var39849 ~= 2048 then goto L23135 end
if var39851 > length then return false end
if 0 > var39853 then goto L23135 end
local var39876 = (14 + 39)
local var39877 = (var39876 + 1)
if var39877 > length then return false end
local var39879 = P[var39876]
if 0 > var39879 then goto L23135 end
if var2 > length then return false end
if var39849 ~= 2048 then goto L23135 end
if var39851 > length then return false end
if 0 > var39853 then goto L23135 end
local var39889 = (14 + 6)
local var39890 = (var39889 + 2)
if var39890 > length then return false end
local var39895 = (band(rshift(bswap(cast("uint16_t*", P+var39889)[0]), 16),8191) % 4294967296)
if var39895 ~= 0 then goto L23135 end
if var2 > length then return false end
if var39849 ~= 2048 then goto L23135 end
if var39851 > length then return false end
if 0 > var39853 then goto L23135 end
if var2 > length then return false end
if var39849 ~= 2048 then goto L23135 end
if var39851 > length then return false end
if 0 > var39853 then goto L23135 end
if var39864 > length then return false end
if var39866 ~= 6 then goto L23135 end
if var2 > length then return false end
if var39849 ~= 2048 then goto L23135 end
if var39851 > length then return false end
if 0 > var39853 then goto L23135 end
if var39877 > length then return false end
if 0 > var39879 then goto L23135 end
if var2 > length then return false end
if var39849 ~= 2048 then goto L23135 end
if var39851 > length then return false end
if 0 > var39853 then goto L23135 end
if var39890 > length then return false end
if var39895 ~= 0 then goto L23135 end
local var39950 = (lshift(band(P[14],15),2) + 14)
local var39951 = (var39950 + 22)
if (var39951 + 1) > length then return false end
local var39967 = (var39950 + ((((21 + P[var39951]) % 4294967296) + 1) % 4294967296))
if (var39967 + 1) > length then return false end
if P[var39967] == 1 then goto L23135 end
if var2 > length then return false end
local var39989 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var39989 ~= 2048 then goto L23327 end
do
local var39990 = (14 + 19)
local var39991 = (var39990 + 1)
if var39991 > length then return false end
local var39993 = P[var39990]
if 0 > var39993 then goto L23327 end
if var2 > length then return false end
if var39989 ~= 2048 then goto L23327 end
if var39991 > length then return false end
if 0 > var39993 then goto L23327 end
local var40003 = (14 + 9)
local var40004 = (var40003 + 1)
if var40004 > length then return false end
local var40006 = P[var40003]
if var40006 ~= 6 then goto L23327 end
if var2 > length then return false end
if var39989 ~= 2048 then goto L23327 end
if var39991 > length then return false end
if 0 > var39993 then goto L23327 end
local var40016 = (14 + 39)
local var40017 = (var40016 + 1)
if var40017 > length then return false end
local var40019 = P[var40016]
if 0 > var40019 then goto L23327 end
if var2 > length then return false end
if var39989 ~= 2048 then goto L23327 end
if var39991 > length then return false end
if 0 > var39993 then goto L23327 end
local var40029 = (14 + 6)
local var40030 = (var40029 + 2)
if var40030 > length then return false end
local var40035 = (band(rshift(bswap(cast("uint16_t*", P+var40029)[0]), 16),8191) % 4294967296)
if var40035 ~= 0 then goto L23327 end
if var2 > length then return false end
if var39989 ~= 2048 then goto L23327 end
if var39991 > length then return false end
if 0 > var39993 then goto L23327 end
if var2 > length then return false end
if var39989 ~= 2048 then goto L23327 end
if var39991 > length then return false end
if 0 > var39993 then goto L23327 end
if var40004 > length then return false end
if var40006 ~= 6 then goto L23327 end
if var2 > length then return false end
if var39989 ~= 2048 then goto L23327 end
if var39991 > length then return false end
if 0 > var39993 then goto L23327 end
if var40017 > length then return false end
if 0 > var40019 then goto L23327 end
if var2 > length then return false end
if var39989 ~= 2048 then goto L23327 end
if var39991 > length then return false end
if 0 > var39993 then goto L23327 end
if var40030 > length then return false end
if var40035 ~= 0 then goto L23327 end
local var40090 = (lshift(band(P[14],15),2) + 14)
local var40091 = (var40090 + 22)
local var40092 = (var40091 + 1)
if var40092 > length then return false end
if var2 > length then return false end
if var39989 ~= 2048 then goto L23327 end
if var39991 > length then return false end
if 0 > var39993 then goto L23327 end
if var2 > length then return false end
if var39989 ~= 2048 then goto L23327 end
if var39991 > length then return false end
if 0 > var39993 then goto L23327 end
if var40004 > length then return false end
if var40006 ~= 6 then goto L23327 end
if var2 > length then return false end
if var39989 ~= 2048 then goto L23327 end
if var39991 > length then return false end
if 0 > var39993 then goto L23327 end
if var40017 > length then return false end
if 0 > var40019 then goto L23327 end
if var2 > length then return false end
if var39989 ~= 2048 then goto L23327 end
if var39991 > length then return false end
if 0 > var39993 then goto L23327 end
if var40030 > length then return false end
if var40035 ~= 0 then goto L23327 end
if var2 > length then return false end
if var39989 ~= 2048 then goto L23327 end
if var39991 > length then return false end
if 0 > var39993 then goto L23327 end
if var2 > length then return false end
if var39989 ~= 2048 then goto L23327 end
if var39991 > length then return false end
if 0 > var39993 then goto L23327 end
if var40004 > length then return false end
if var40006 ~= 6 then goto L23327 end
if var2 > length then return false end
if var39989 ~= 2048 then goto L23327 end
if var39991 > length then return false end
if 0 > var39993 then goto L23327 end
if var40017 > length then return false end
if 0 > var40019 then goto L23327 end
if var2 > length then return false end
if var39989 ~= 2048 then goto L23327 end
if var39991 > length then return false end
if 0 > var39993 then goto L23327 end
if var40030 > length then return false end
if var40035 ~= 0 then goto L23327 end
if var40092 > length then return false end
local var40212 = ((21 + P[var40091]) % 4294967296)
local var40215 = (var40090 + ((var40212 + 2) % 4294967296))
if (var40215 + 1) > length then return false end
local var40249 = (var40090 + ((((var40212 + 1) % 4294967296) + P[var40215]) % 4294967296))
if (var40249 + 1) > length then return false end
if P[var40249] == 3 then return true end
goto L23327
end
::L23327::
if var2 > length then return false end
local var40289 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var40289 ~= 2048 then goto L23325 end
do
local var40290 = (14 + 19)
local var40291 = (var40290 + 1)
if var40291 > length then return false end
local var40293 = P[var40290]
if 0 > var40293 then goto L23325 end
if var2 > length then return false end
if var40289 ~= 2048 then goto L23325 end
if var40291 > length then return false end
if 0 > var40293 then goto L23325 end
local var40303 = (14 + 9)
local var40304 = (var40303 + 1)
if var40304 > length then return false end
local var40306 = P[var40303]
if var40306 ~= 6 then goto L23325 end
if var2 > length then return false end
if var40289 ~= 2048 then goto L23325 end
if var40291 > length then return false end
if 0 > var40293 then goto L23325 end
local var40316 = (14 + 39)
local var40317 = (var40316 + 1)
if var40317 > length then return false end
local var40319 = P[var40316]
if 0 > var40319 then goto L23325 end
if var2 > length then return false end
if var40289 ~= 2048 then goto L23325 end
if var40291 > length then return false end
if 0 > var40293 then goto L23325 end
local var40329 = (14 + 6)
local var40330 = (var40329 + 2)
if var40330 > length then return false end
local var40335 = (band(rshift(bswap(cast("uint16_t*", P+var40329)[0]), 16),8191) % 4294967296)
if var40335 ~= 0 then goto L23325 end
if var2 > length then return false end
if var40289 ~= 2048 then goto L23325 end
if var40291 > length then return false end
if 0 > var40293 then goto L23325 end
if var2 > length then return false end
if var40289 ~= 2048 then goto L23325 end
if var40291 > length then return false end
if 0 > var40293 then goto L23325 end
if var40304 > length then return false end
if var40306 ~= 6 then goto L23325 end
if var2 > length then return false end
if var40289 ~= 2048 then goto L23325 end
if var40291 > length then return false end
if 0 > var40293 then goto L23325 end
if var40317 > length then return false end
if 0 > var40319 then goto L23325 end
if var2 > length then return false end
if var40289 ~= 2048 then goto L23325 end
if var40291 > length then return false end
if 0 > var40293 then goto L23325 end
if var40330 > length then return false end
if var40335 ~= 0 then goto L23325 end
local var40390 = (lshift(band(P[14],15),2) + 14)
local var40391 = (var40390 + 22)
local var40392 = (var40391 + 1)
if var40392 > length then return false end
if var2 > length then return false end
if var40289 ~= 2048 then goto L23325 end
if var40291 > length then return false end
if 0 > var40293 then goto L23325 end
if var2 > length then return false end
if var40289 ~= 2048 then goto L23325 end
if var40291 > length then return false end
if 0 > var40293 then goto L23325 end
if var40304 > length then return false end
if var40306 ~= 6 then goto L23325 end
if var2 > length then return false end
if var40289 ~= 2048 then goto L23325 end
if var40291 > length then return false end
if 0 > var40293 then goto L23325 end
if var40317 > length then return false end
if 0 > var40319 then goto L23325 end
if var2 > length then return false end
if var40289 ~= 2048 then goto L23325 end
if var40291 > length then return false end
if 0 > var40293 then goto L23325 end
if var40330 > length then return false end
if var40335 ~= 0 then goto L23325 end
if var2 > length then return false end
if var40289 ~= 2048 then goto L23325 end
if var40291 > length then return false end
if 0 > var40293 then goto L23325 end
if var2 > length then return false end
if var40289 ~= 2048 then goto L23325 end
if var40291 > length then return false end
if 0 > var40293 then goto L23325 end
if var40304 > length then return false end
if var40306 ~= 6 then goto L23325 end
if var2 > length then return false end
if var40289 ~= 2048 then goto L23325 end
if var40291 > length then return false end
if 0 > var40293 then goto L23325 end
if var40317 > length then return false end
if 0 > var40319 then goto L23325 end
if var2 > length then return false end
if var40289 ~= 2048 then goto L23325 end
if var40291 > length then return false end
if 0 > var40293 then goto L23325 end
if var40330 > length then return false end
if var40335 ~= 0 then goto L23325 end
if var40392 > length then return false end
local var40512 = ((21 + P[var40391]) % 4294967296)
local var40515 = (var40390 + ((var40512 + 2) % 4294967296))
if (var40515 + 1) > length then return false end
local var40549 = (var40390 + ((((var40512 + 1) % 4294967296) + P[var40515]) % 4294967296))
if (var40549 + 1) > length then return false end
if P[var40549] == 1 then goto L23325 end
if var2 > length then return false end
local var40589 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var40589 ~= 2048 then goto L23325 end
local var40590 = (14 + 19)
local var40591 = (var40590 + 1)
if var40591 > length then return false end
local var40593 = P[var40590]
if 0 > var40593 then goto L23325 end
if var2 > length then return false end
if var40589 ~= 2048 then goto L23325 end
if var40591 > length then return false end
if 0 > var40593 then goto L23325 end
local var40603 = (14 + 9)
local var40604 = (var40603 + 1)
if var40604 > length then return false end
local var40606 = P[var40603]
if var40606 ~= 6 then goto L23325 end
if var2 > length then return false end
if var40589 ~= 2048 then goto L23325 end
if var40591 > length then return false end
if 0 > var40593 then goto L23325 end
local var40616 = (14 + 39)
local var40617 = (var40616 + 1)
if var40617 > length then return false end
local var40619 = P[var40616]
if 0 > var40619 then goto L23325 end
if var2 > length then return false end
if var40589 ~= 2048 then goto L23325 end
if var40591 > length then return false end
if 0 > var40593 then goto L23325 end
local var40629 = (14 + 6)
local var40630 = (var40629 + 2)
if var40630 > length then return false end
local var40635 = (band(rshift(bswap(cast("uint16_t*", P+var40629)[0]), 16),8191) % 4294967296)
if var40635 ~= 0 then goto L23325 end
if var2 > length then return false end
if var40589 ~= 2048 then goto L23325 end
if var40591 > length then return false end
if 0 > var40593 then goto L23325 end
if var2 > length then return false end
if var40589 ~= 2048 then goto L23325 end
if var40591 > length then return false end
if 0 > var40593 then goto L23325 end
if var40604 > length then return false end
if var40606 ~= 6 then goto L23325 end
if var2 > length then return false end
if var40589 ~= 2048 then goto L23325 end
if var40591 > length then return false end
if 0 > var40593 then goto L23325 end
if var40617 > length then return false end
if 0 > var40619 then goto L23325 end
if var2 > length then return false end
if var40589 ~= 2048 then goto L23325 end
if var40591 > length then return false end
if 0 > var40593 then goto L23325 end
if var40630 > length then return false end
if var40635 ~= 0 then goto L23325 end
local var40690 = (lshift(band(P[14],15),2) + 14)
local var40691 = (var40690 + 22)
local var40692 = (var40691 + 1)
if var40692 > length then return false end
if var2 > length then return false end
if var40589 ~= 2048 then goto L23325 end
if var40591 > length then return false end
if 0 > var40593 then goto L23325 end
if var2 > length then return false end
if var40589 ~= 2048 then goto L23325 end
if var40591 > length then return false end
if 0 > var40593 then goto L23325 end
if var40604 > length then return false end
if var40606 ~= 6 then goto L23325 end
if var2 > length then return false end
if var40589 ~= 2048 then goto L23325 end
if var40591 > length then return false end
if 0 > var40593 then goto L23325 end
if var40617 > length then return false end
if 0 > var40619 then goto L23325 end
if var2 > length then return false end
if var40589 ~= 2048 then goto L23325 end
if var40591 > length then return false end
if 0 > var40593 then goto L23325 end
if var40630 > length then return false end
if var40635 ~= 0 then goto L23325 end
if var2 > length then return false end
if var40589 ~= 2048 then goto L23325 end
if var40591 > length then return false end
if 0 > var40593 then goto L23325 end
if var2 > length then return false end
if var40589 ~= 2048 then goto L23325 end
if var40591 > length then return false end
if 0 > var40593 then goto L23325 end
if var40604 > length then return false end
if var40606 ~= 6 then goto L23325 end
if var2 > length then return false end
if var40589 ~= 2048 then goto L23325 end
if var40591 > length then return false end
if 0 > var40593 then goto L23325 end
if var40617 > length then return false end
if 0 > var40619 then goto L23325 end
if var2 > length then return false end
if var40589 ~= 2048 then goto L23325 end
if var40591 > length then return false end
if 0 > var40593 then goto L23325 end
if var40630 > length then return false end
if var40635 ~= 0 then goto L23325 end
if var40692 > length then return false end
local var40812 = ((21 + P[var40691]) % 4294967296)
local var40815 = (var40690 + ((var40812 + 2) % 4294967296))
local var40816 = (var40815 + 1)
if var40816 > length then return false end
if var2 > length then return false end
if var40589 ~= 2048 then goto L23325 end
if var40591 > length then return false end
if 0 > var40593 then goto L23325 end
if var2 > length then return false end
if var40589 ~= 2048 then goto L23325 end
if var40591 > length then return false end
if 0 > var40593 then goto L23325 end
if var40604 > length then return false end
if var40606 ~= 6 then goto L23325 end
if var2 > length then return false end
if var40589 ~= 2048 then goto L23325 end
if var40591 > length then return false end
if 0 > var40593 then goto L23325 end
if var40617 > length then return false end
if 0 > var40619 then goto L23325 end
if var2 > length then return false end
if var40589 ~= 2048 then goto L23325 end
if var40591 > length then return false end
if 0 > var40593 then goto L23325 end
if var40630 > length then return false end
if var40635 ~= 0 then goto L23325 end
if var2 > length then return false end
if var40589 ~= 2048 then goto L23325 end
if var40591 > length then return false end
if 0 > var40593 then goto L23325 end
if var2 > length then return false end
if var40589 ~= 2048 then goto L23325 end
if var40591 > length then return false end
if 0 > var40593 then goto L23325 end
if var40604 > length then return false end
if var40606 ~= 6 then goto L23325 end
if var2 > length then return false end
if var40589 ~= 2048 then goto L23325 end
if var40591 > length then return false end
if 0 > var40593 then goto L23325 end
if var40617 > length then return false end
if 0 > var40619 then goto L23325 end
if var2 > length then return false end
if var40589 ~= 2048 then goto L23325 end
if var40591 > length then return false end
if 0 > var40593 then goto L23325 end
if var40630 > length then return false end
if var40635 ~= 0 then goto L23325 end
if var40692 > length then return false end
if var2 > length then return false end
if var40589 ~= 2048 then goto L23325 end
if var40591 > length then return false end
if 0 > var40593 then goto L23325 end
if var2 > length then return false end
if var40589 ~= 2048 then goto L23325 end
if var40591 > length then return false end
if 0 > var40593 then goto L23325 end
if var40604 > length then return false end
if var40606 ~= 6 then goto L23325 end
if var2 > length then return false end
if var40589 ~= 2048 then goto L23325 end
if var40591 > length then return false end
if 0 > var40593 then goto L23325 end
if var40617 > length then return false end
if 0 > var40619 then goto L23325 end
if var2 > length then return false end
if var40589 ~= 2048 then goto L23325 end
if var40591 > length then return false end
if 0 > var40593 then goto L23325 end
if var40630 > length then return false end
if var40635 ~= 0 then goto L23325 end
if var2 > length then return false end
if var40589 ~= 2048 then goto L23325 end
if var40591 > length then return false end
if 0 > var40593 then goto L23325 end
if var2 > length then return false end
if var40589 ~= 2048 then goto L23325 end
if var40591 > length then return false end
if 0 > var40593 then goto L23325 end
if var40604 > length then return false end
if var40606 ~= 6 then goto L23325 end
if var2 > length then return false end
if var40589 ~= 2048 then goto L23325 end
if var40591 > length then return false end
if 0 > var40593 then goto L23325 end
if var40617 > length then return false end
if 0 > var40619 then goto L23325 end
if var2 > length then return false end
if var40589 ~= 2048 then goto L23325 end
if var40591 > length then return false end
if 0 > var40593 then goto L23325 end
if var40630 > length then return false end
if var40635 ~= 0 then goto L23325 end
if var40692 > length then return false end
if var40816 > length then return false end
local var41080 = ((((var40812 + 1) % 4294967296) + P[var40815]) % 4294967296)
local var41083 = (var40690 + ((var41080 + 1) % 4294967296))
if (var41083 + 1) > length then return false end
local var41155 = (var40690 + ((var41080 + P[var41083]) % 4294967296))
if (var41155 + 1) > length then return false end
if P[var41155] == 3 then return true end
goto L23325
end
::L23325::
if var2 > length then return false end
local var41233 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var41233 ~= 2048 then goto L23135 end
local var41234 = (14 + 19)
local var41235 = (var41234 + 1)
if var41235 > length then return false end
local var41237 = P[var41234]
if 0 > var41237 then goto L23135 end
if var2 > length then return false end
if var41233 ~= 2048 then goto L23135 end
if var41235 > length then return false end
if 0 > var41237 then goto L23135 end
local var41247 = (14 + 9)
local var41248 = (var41247 + 1)
if var41248 > length then return false end
local var41250 = P[var41247]
if var41250 ~= 6 then goto L23135 end
if var2 > length then return false end
if var41233 ~= 2048 then goto L23135 end
if var41235 > length then return false end
if 0 > var41237 then goto L23135 end
local var41260 = (14 + 39)
local var41261 = (var41260 + 1)
if var41261 > length then return false end
local var41263 = P[var41260]
if 0 > var41263 then goto L23135 end
if var2 > length then return false end
if var41233 ~= 2048 then goto L23135 end
if var41235 > length then return false end
if 0 > var41237 then goto L23135 end
local var41273 = (14 + 6)
local var41274 = (var41273 + 2)
if var41274 > length then return false end
local var41279 = (band(rshift(bswap(cast("uint16_t*", P+var41273)[0]), 16),8191) % 4294967296)
if var41279 ~= 0 then goto L23135 end
if var2 > length then return false end
if var41233 ~= 2048 then goto L23135 end
if var41235 > length then return false end
if 0 > var41237 then goto L23135 end
if var2 > length then return false end
if var41233 ~= 2048 then goto L23135 end
if var41235 > length then return false end
if 0 > var41237 then goto L23135 end
if var41248 > length then return false end
if var41250 ~= 6 then goto L23135 end
if var2 > length then return false end
if var41233 ~= 2048 then goto L23135 end
if var41235 > length then return false end
if 0 > var41237 then goto L23135 end
if var41261 > length then return false end
if 0 > var41263 then goto L23135 end
if var2 > length then return false end
if var41233 ~= 2048 then goto L23135 end
if var41235 > length then return false end
if 0 > var41237 then goto L23135 end
if var41274 > length then return false end
if var41279 ~= 0 then goto L23135 end
local var41334 = (lshift(band(P[14],15),2) + 14)
local var41335 = (var41334 + 22)
local var41336 = (var41335 + 1)
if var41336 > length then return false end
if var2 > length then return false end
if var41233 ~= 2048 then goto L23135 end
if var41235 > length then return false end
if 0 > var41237 then goto L23135 end
if var2 > length then return false end
if var41233 ~= 2048 then goto L23135 end
if var41235 > length then return false end
if 0 > var41237 then goto L23135 end
if var41248 > length then return false end
if var41250 ~= 6 then goto L23135 end
if var2 > length then return false end
if var41233 ~= 2048 then goto L23135 end
if var41235 > length then return false end
if 0 > var41237 then goto L23135 end
if var41261 > length then return false end
if 0 > var41263 then goto L23135 end
if var2 > length then return false end
if var41233 ~= 2048 then goto L23135 end
if var41235 > length then return false end
if 0 > var41237 then goto L23135 end
if var41274 > length then return false end
if var41279 ~= 0 then goto L23135 end
if var2 > length then return false end
if var41233 ~= 2048 then goto L23135 end
if var41235 > length then return false end
if 0 > var41237 then goto L23135 end
if var2 > length then return false end
if var41233 ~= 2048 then goto L23135 end
if var41235 > length then return false end
if 0 > var41237 then goto L23135 end
if var41248 > length then return false end
if var41250 ~= 6 then goto L23135 end
if var2 > length then return false end
if var41233 ~= 2048 then goto L23135 end
if var41235 > length then return false end
if 0 > var41237 then goto L23135 end
if var41261 > length then return false end
if 0 > var41263 then goto L23135 end
if var2 > length then return false end
if var41233 ~= 2048 then goto L23135 end
if var41235 > length then return false end
if 0 > var41237 then goto L23135 end
if var41274 > length then return false end
if var41279 ~= 0 then goto L23135 end
if var41336 > length then return false end
local var41456 = ((21 + P[var41335]) % 4294967296)
local var41459 = (var41334 + ((var41456 + 2) % 4294967296))
if (var41459 + 1) > length then return false end
local var41493 = (var41334 + ((((var41456 + 1) % 4294967296) + P[var41459]) % 4294967296))
if (var41493 + 1) > length then return false end
if P[var41493] ~= 1 then goto L23135 end
if var2 > length then return false end
local var41533 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var41533 ~= 2048 then goto L23135 end
local var41534 = (14 + 19)
local var41535 = (var41534 + 1)
if var41535 > length then return false end
local var41537 = P[var41534]
if 0 > var41537 then goto L23135 end
if var2 > length then return false end
if var41533 ~= 2048 then goto L23135 end
if var41535 > length then return false end
if 0 > var41537 then goto L23135 end
local var41547 = (14 + 9)
local var41548 = (var41547 + 1)
if var41548 > length then return false end
local var41550 = P[var41547]
if var41550 ~= 6 then goto L23135 end
if var2 > length then return false end
if var41533 ~= 2048 then goto L23135 end
if var41535 > length then return false end
if 0 > var41537 then goto L23135 end
local var41560 = (14 + 39)
local var41561 = (var41560 + 1)
if var41561 > length then return false end
local var41563 = P[var41560]
if 0 > var41563 then goto L23135 end
if var2 > length then return false end
if var41533 ~= 2048 then goto L23135 end
if var41535 > length then return false end
if 0 > var41537 then goto L23135 end
local var41573 = (14 + 6)
local var41574 = (var41573 + 2)
if var41574 > length then return false end
local var41579 = (band(rshift(bswap(cast("uint16_t*", P+var41573)[0]), 16),8191) % 4294967296)
if var41579 ~= 0 then goto L23135 end
if var2 > length then return false end
if var41533 ~= 2048 then goto L23135 end
if var41535 > length then return false end
if 0 > var41537 then goto L23135 end
if var2 > length then return false end
if var41533 ~= 2048 then goto L23135 end
if var41535 > length then return false end
if 0 > var41537 then goto L23135 end
if var41548 > length then return false end
if var41550 ~= 6 then goto L23135 end
if var2 > length then return false end
if var41533 ~= 2048 then goto L23135 end
if var41535 > length then return false end
if 0 > var41537 then goto L23135 end
if var41561 > length then return false end
if 0 > var41563 then goto L23135 end
if var2 > length then return false end
if var41533 ~= 2048 then goto L23135 end
if var41535 > length then return false end
if 0 > var41537 then goto L23135 end
if var41574 > length then return false end
if var41579 ~= 0 then goto L23135 end
local var41634 = (lshift(band(P[14],15),2) + 14)
local var41635 = (var41634 + 22)
local var41636 = (var41635 + 1)
if var41636 > length then return false end
if var2 > length then return false end
if var41533 ~= 2048 then goto L23135 end
if var41535 > length then return false end
if 0 > var41537 then goto L23135 end
if var2 > length then return false end
if var41533 ~= 2048 then goto L23135 end
if var41535 > length then return false end
if 0 > var41537 then goto L23135 end
if var41548 > length then return false end
if var41550 ~= 6 then goto L23135 end
if var2 > length then return false end
if var41533 ~= 2048 then goto L23135 end
if var41535 > length then return false end
if 0 > var41537 then goto L23135 end
if var41561 > length then return false end
if 0 > var41563 then goto L23135 end
if var2 > length then return false end
if var41533 ~= 2048 then goto L23135 end
if var41535 > length then return false end
if 0 > var41537 then goto L23135 end
if var41574 > length then return false end
if var41579 ~= 0 then goto L23135 end
if var2 > length then return false end
if var41533 ~= 2048 then goto L23135 end
if var41535 > length then return false end
if 0 > var41537 then goto L23135 end
if var2 > length then return false end
if var41533 ~= 2048 then goto L23135 end
if var41535 > length then return false end
if 0 > var41537 then goto L23135 end
if var41548 > length then return false end
if var41550 ~= 6 then goto L23135 end
if var2 > length then return false end
if var41533 ~= 2048 then goto L23135 end
if var41535 > length then return false end
if 0 > var41537 then goto L23135 end
if var41561 > length then return false end
if 0 > var41563 then goto L23135 end
if var2 > length then return false end
if var41533 ~= 2048 then goto L23135 end
if var41535 > length then return false end
if 0 > var41537 then goto L23135 end
if var41574 > length then return false end
if var41579 ~= 0 then goto L23135 end
if var41636 > length then return false end
local var41756 = ((21 + P[var41635]) % 4294967296)
local var41759 = (var41634 + ((var41756 + 2) % 4294967296))
if (var41759 + 1) > length then return false end
local var41795 = (var41634 + ((((((var41756 + 1) % 4294967296) + P[var41759]) % 4294967296) + 1) % 4294967296))
if (var41795 + 1) > length then return false end
if P[var41795] == 3 then return true end
goto L23135
end
::L23135::
if var2 > length then return false end
local var41837 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var41837 ~= 2048 then goto L18865 end
local var41838 = (14 + 19)
local var41839 = (var41838 + 1)
if var41839 > length then return false end
local var41841 = P[var41838]
if 0 > var41841 then goto L18865 end
if var2 > length then return false end
if var41837 ~= 2048 then goto L18865 end
if var41839 > length then return false end
if 0 > var41841 then goto L18865 end
local var41851 = (14 + 9)
local var41852 = (var41851 + 1)
if var41852 > length then return false end
local var41854 = P[var41851]
if var41854 ~= 6 then goto L18865 end
if var2 > length then return false end
if var41837 ~= 2048 then goto L18865 end
if var41839 > length then return false end
if 0 > var41841 then goto L18865 end
local var41864 = (14 + 39)
local var41865 = (var41864 + 1)
if var41865 > length then return false end
local var41867 = P[var41864]
if 0 > var41867 then goto L18865 end
if var2 > length then return false end
if var41837 ~= 2048 then goto L18865 end
if var41839 > length then return false end
if 0 > var41841 then goto L18865 end
local var41877 = (14 + 6)
local var41878 = (var41877 + 2)
if var41878 > length then return false end
local var41883 = (band(rshift(bswap(cast("uint16_t*", P+var41877)[0]), 16),8191) % 4294967296)
if var41883 ~= 0 then goto L18865 end
if var2 > length then return false end
if var41837 ~= 2048 then goto L18865 end
if var41839 > length then return false end
if 0 > var41841 then goto L18865 end
if var2 > length then return false end
if var41837 ~= 2048 then goto L18865 end
if var41839 > length then return false end
if 0 > var41841 then goto L18865 end
if var41852 > length then return false end
if var41854 ~= 6 then goto L18865 end
if var2 > length then return false end
if var41837 ~= 2048 then goto L18865 end
if var41839 > length then return false end
if 0 > var41841 then goto L18865 end
if var41865 > length then return false end
if 0 > var41867 then goto L18865 end
if var2 > length then return false end
if var41837 ~= 2048 then goto L18865 end
if var41839 > length then return false end
if 0 > var41841 then goto L18865 end
if var41878 > length then return false end
if var41883 ~= 0 then goto L18865 end
local var41938 = (lshift(band(P[14],15),2) + 14)
local var41939 = (var41938 + 22)
if (var41939 + 1) > length then return false end
local var41955 = (var41938 + ((((21 + P[var41939]) % 4294967296) + 1) % 4294967296))
if (var41955 + 1) > length then return false end
if P[var41955] ~= 1 then goto L18865 end
if var2 > length then return false end
local var41977 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var41977 ~= 2048 then goto L24533 end
do
local var41978 = (14 + 19)
local var41979 = (var41978 + 1)
if var41979 > length then return false end
local var41981 = P[var41978]
if 0 > var41981 then goto L24533 end
if var2 > length then return false end
if var41977 ~= 2048 then goto L24533 end
if var41979 > length then return false end
if 0 > var41981 then goto L24533 end
local var41991 = (14 + 9)
local var41992 = (var41991 + 1)
if var41992 > length then return false end
local var41994 = P[var41991]
if var41994 ~= 6 then goto L24533 end
if var2 > length then return false end
if var41977 ~= 2048 then goto L24533 end
if var41979 > length then return false end
if 0 > var41981 then goto L24533 end
local var42004 = (14 + 39)
local var42005 = (var42004 + 1)
if var42005 > length then return false end
local var42007 = P[var42004]
if 0 > var42007 then goto L24533 end
if var2 > length then return false end
if var41977 ~= 2048 then goto L24533 end
if var41979 > length then return false end
if 0 > var41981 then goto L24533 end
local var42017 = (14 + 6)
local var42018 = (var42017 + 2)
if var42018 > length then return false end
local var42023 = (band(rshift(bswap(cast("uint16_t*", P+var42017)[0]), 16),8191) % 4294967296)
if var42023 ~= 0 then goto L24533 end
if var2 > length then return false end
if var41977 ~= 2048 then goto L24533 end
if var41979 > length then return false end
if 0 > var41981 then goto L24533 end
if var2 > length then return false end
if var41977 ~= 2048 then goto L24533 end
if var41979 > length then return false end
if 0 > var41981 then goto L24533 end
if var41992 > length then return false end
if var41994 ~= 6 then goto L24533 end
if var2 > length then return false end
if var41977 ~= 2048 then goto L24533 end
if var41979 > length then return false end
if 0 > var41981 then goto L24533 end
if var42005 > length then return false end
if 0 > var42007 then goto L24533 end
if var2 > length then return false end
if var41977 ~= 2048 then goto L24533 end
if var41979 > length then return false end
if 0 > var41981 then goto L24533 end
if var42018 > length then return false end
if var42023 ~= 0 then goto L24533 end
local var42078 = (lshift(band(P[14],15),2) + 14)
local var42079 = (var42078 + 22)
if (var42079 + 1) > length then return false end
local var42095 = (var42078 + ((((21 + P[var42079]) % 4294967296) + 2) % 4294967296))
if (var42095 + 1) > length then return false end
if P[var42095] == 3 then return true end
goto L24533
end
::L24533::
if var2 > length then return false end
local var42117 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var42117 ~= 2048 then goto L24531 end
do
local var42118 = (14 + 19)
local var42119 = (var42118 + 1)
if var42119 > length then return false end
local var42121 = P[var42118]
if 0 > var42121 then goto L24531 end
if var2 > length then return false end
if var42117 ~= 2048 then goto L24531 end
if var42119 > length then return false end
if 0 > var42121 then goto L24531 end
local var42131 = (14 + 9)
local var42132 = (var42131 + 1)
if var42132 > length then return false end
local var42134 = P[var42131]
if var42134 ~= 6 then goto L24531 end
if var2 > length then return false end
if var42117 ~= 2048 then goto L24531 end
if var42119 > length then return false end
if 0 > var42121 then goto L24531 end
local var42144 = (14 + 39)
local var42145 = (var42144 + 1)
if var42145 > length then return false end
local var42147 = P[var42144]
if 0 > var42147 then goto L24531 end
if var2 > length then return false end
if var42117 ~= 2048 then goto L24531 end
if var42119 > length then return false end
if 0 > var42121 then goto L24531 end
local var42157 = (14 + 6)
local var42158 = (var42157 + 2)
if var42158 > length then return false end
local var42163 = (band(rshift(bswap(cast("uint16_t*", P+var42157)[0]), 16),8191) % 4294967296)
if var42163 ~= 0 then goto L24531 end
if var2 > length then return false end
if var42117 ~= 2048 then goto L24531 end
if var42119 > length then return false end
if 0 > var42121 then goto L24531 end
if var2 > length then return false end
if var42117 ~= 2048 then goto L24531 end
if var42119 > length then return false end
if 0 > var42121 then goto L24531 end
if var42132 > length then return false end
if var42134 ~= 6 then goto L24531 end
if var2 > length then return false end
if var42117 ~= 2048 then goto L24531 end
if var42119 > length then return false end
if 0 > var42121 then goto L24531 end
if var42145 > length then return false end
if 0 > var42147 then goto L24531 end
if var2 > length then return false end
if var42117 ~= 2048 then goto L24531 end
if var42119 > length then return false end
if 0 > var42121 then goto L24531 end
if var42158 > length then return false end
if var42163 ~= 0 then goto L24531 end
local var42218 = (lshift(band(P[14],15),2) + 14)
local var42219 = (var42218 + 22)
if (var42219 + 1) > length then return false end
local var42235 = (var42218 + ((((21 + P[var42219]) % 4294967296) + 2) % 4294967296))
if (var42235 + 1) > length then return false end
if P[var42235] == 1 then goto L24531 end
if var2 > length then return false end
local var42257 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var42257 ~= 2048 then goto L24531 end
local var42258 = (14 + 19)
local var42259 = (var42258 + 1)
if var42259 > length then return false end
local var42261 = P[var42258]
if 0 > var42261 then goto L24531 end
if var2 > length then return false end
if var42257 ~= 2048 then goto L24531 end
if var42259 > length then return false end
if 0 > var42261 then goto L24531 end
local var42271 = (14 + 9)
local var42272 = (var42271 + 1)
if var42272 > length then return false end
local var42274 = P[var42271]
if var42274 ~= 6 then goto L24531 end
if var2 > length then return false end
if var42257 ~= 2048 then goto L24531 end
if var42259 > length then return false end
if 0 > var42261 then goto L24531 end
local var42284 = (14 + 39)
local var42285 = (var42284 + 1)
if var42285 > length then return false end
local var42287 = P[var42284]
if 0 > var42287 then goto L24531 end
if var2 > length then return false end
if var42257 ~= 2048 then goto L24531 end
if var42259 > length then return false end
if 0 > var42261 then goto L24531 end
local var42297 = (14 + 6)
local var42298 = (var42297 + 2)
if var42298 > length then return false end
local var42303 = (band(rshift(bswap(cast("uint16_t*", P+var42297)[0]), 16),8191) % 4294967296)
if var42303 ~= 0 then goto L24531 end
if var2 > length then return false end
if var42257 ~= 2048 then goto L24531 end
if var42259 > length then return false end
if 0 > var42261 then goto L24531 end
if var2 > length then return false end
if var42257 ~= 2048 then goto L24531 end
if var42259 > length then return false end
if 0 > var42261 then goto L24531 end
if var42272 > length then return false end
if var42274 ~= 6 then goto L24531 end
if var2 > length then return false end
if var42257 ~= 2048 then goto L24531 end
if var42259 > length then return false end
if 0 > var42261 then goto L24531 end
if var42285 > length then return false end
if 0 > var42287 then goto L24531 end
if var2 > length then return false end
if var42257 ~= 2048 then goto L24531 end
if var42259 > length then return false end
if 0 > var42261 then goto L24531 end
if var42298 > length then return false end
if var42303 ~= 0 then goto L24531 end
local var42358 = (lshift(band(P[14],15),2) + 14)
local var42359 = (var42358 + 22)
local var42360 = (var42359 + 1)
if var42360 > length then return false end
if var2 > length then return false end
if var42257 ~= 2048 then goto L24531 end
if var42259 > length then return false end
if 0 > var42261 then goto L24531 end
if var2 > length then return false end
if var42257 ~= 2048 then goto L24531 end
if var42259 > length then return false end
if 0 > var42261 then goto L24531 end
if var42272 > length then return false end
if var42274 ~= 6 then goto L24531 end
if var2 > length then return false end
if var42257 ~= 2048 then goto L24531 end
if var42259 > length then return false end
if 0 > var42261 then goto L24531 end
if var42285 > length then return false end
if 0 > var42287 then goto L24531 end
if var2 > length then return false end
if var42257 ~= 2048 then goto L24531 end
if var42259 > length then return false end
if 0 > var42261 then goto L24531 end
if var42298 > length then return false end
if var42303 ~= 0 then goto L24531 end
if var2 > length then return false end
if var42257 ~= 2048 then goto L24531 end
if var42259 > length then return false end
if 0 > var42261 then goto L24531 end
if var2 > length then return false end
if var42257 ~= 2048 then goto L24531 end
if var42259 > length then return false end
if 0 > var42261 then goto L24531 end
if var42272 > length then return false end
if var42274 ~= 6 then goto L24531 end
if var2 > length then return false end
if var42257 ~= 2048 then goto L24531 end
if var42259 > length then return false end
if 0 > var42261 then goto L24531 end
if var42285 > length then return false end
if 0 > var42287 then goto L24531 end
if var2 > length then return false end
if var42257 ~= 2048 then goto L24531 end
if var42259 > length then return false end
if 0 > var42261 then goto L24531 end
if var42298 > length then return false end
if var42303 ~= 0 then goto L24531 end
if var42360 > length then return false end
local var42480 = ((21 + P[var42359]) % 4294967296)
local var42483 = (var42358 + ((var42480 + 3) % 4294967296))
if (var42483 + 1) > length then return false end
local var42517 = (var42358 + ((((var42480 + 2) % 4294967296) + P[var42483]) % 4294967296))
if (var42517 + 1) > length then return false end
if P[var42517] == 3 then return true end
goto L24531
end
::L24531::
if var2 > length then return false end
local var42557 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var42557 ~= 2048 then goto L18865 end
local var42558 = (14 + 19)
local var42559 = (var42558 + 1)
if var42559 > length then return false end
local var42561 = P[var42558]
if 0 > var42561 then goto L18865 end
if var2 > length then return false end
if var42557 ~= 2048 then goto L18865 end
if var42559 > length then return false end
if 0 > var42561 then goto L18865 end
local var42571 = (14 + 9)
local var42572 = (var42571 + 1)
if var42572 > length then return false end
local var42574 = P[var42571]
if var42574 ~= 6 then goto L18865 end
if var2 > length then return false end
if var42557 ~= 2048 then goto L18865 end
if var42559 > length then return false end
if 0 > var42561 then goto L18865 end
local var42584 = (14 + 39)
local var42585 = (var42584 + 1)
if var42585 > length then return false end
local var42587 = P[var42584]
if 0 > var42587 then goto L18865 end
if var2 > length then return false end
if var42557 ~= 2048 then goto L18865 end
if var42559 > length then return false end
if 0 > var42561 then goto L18865 end
local var42597 = (14 + 6)
local var42598 = (var42597 + 2)
if var42598 > length then return false end
local var42603 = (band(rshift(bswap(cast("uint16_t*", P+var42597)[0]), 16),8191) % 4294967296)
if var42603 ~= 0 then goto L18865 end
if var2 > length then return false end
if var42557 ~= 2048 then goto L18865 end
if var42559 > length then return false end
if 0 > var42561 then goto L18865 end
if var2 > length then return false end
if var42557 ~= 2048 then goto L18865 end
if var42559 > length then return false end
if 0 > var42561 then goto L18865 end
if var42572 > length then return false end
if var42574 ~= 6 then goto L18865 end
if var2 > length then return false end
if var42557 ~= 2048 then goto L18865 end
if var42559 > length then return false end
if 0 > var42561 then goto L18865 end
if var42585 > length then return false end
if 0 > var42587 then goto L18865 end
if var2 > length then return false end
if var42557 ~= 2048 then goto L18865 end
if var42559 > length then return false end
if 0 > var42561 then goto L18865 end
if var42598 > length then return false end
if var42603 ~= 0 then goto L18865 end
local var42658 = (lshift(band(P[14],15),2) + 14)
local var42659 = (var42658 + 22)
if (var42659 + 1) > length then return false end
local var42675 = (var42658 + ((((21 + P[var42659]) % 4294967296) + 2) % 4294967296))
if (var42675 + 1) > length then return false end
if P[var42675] ~= 1 then goto L18865 end
if var2 > length then return false end
local var42697 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var42697 ~= 2048 then goto L18865 end
local var42698 = (14 + 19)
local var42699 = (var42698 + 1)
if var42699 > length then return false end
local var42701 = P[var42698]
if 0 > var42701 then goto L18865 end
if var2 > length then return false end
if var42697 ~= 2048 then goto L18865 end
if var42699 > length then return false end
if 0 > var42701 then goto L18865 end
local var42711 = (14 + 9)
local var42712 = (var42711 + 1)
if var42712 > length then return false end
local var42714 = P[var42711]
if var42714 ~= 6 then goto L18865 end
if var2 > length then return false end
if var42697 ~= 2048 then goto L18865 end
if var42699 > length then return false end
if 0 > var42701 then goto L18865 end
local var42724 = (14 + 39)
local var42725 = (var42724 + 1)
if var42725 > length then return false end
local var42727 = P[var42724]
if 0 > var42727 then goto L18865 end
if var2 > length then return false end
if var42697 ~= 2048 then goto L18865 end
if var42699 > length then return false end
if 0 > var42701 then goto L18865 end
local var42737 = (14 + 6)
local var42738 = (var42737 + 2)
if var42738 > length then return false end
local var42743 = (band(rshift(bswap(cast("uint16_t*", P+var42737)[0]), 16),8191) % 4294967296)
if var42743 ~= 0 then goto L18865 end
if var2 > length then return false end
if var42697 ~= 2048 then goto L18865 end
if var42699 > length then return false end
if 0 > var42701 then goto L18865 end
if var2 > length then return false end
if var42697 ~= 2048 then goto L18865 end
if var42699 > length then return false end
if 0 > var42701 then goto L18865 end
if var42712 > length then return false end
if var42714 ~= 6 then goto L18865 end
if var2 > length then return false end
if var42697 ~= 2048 then goto L18865 end
if var42699 > length then return false end
if 0 > var42701 then goto L18865 end
if var42725 > length then return false end
if 0 > var42727 then goto L18865 end
if var2 > length then return false end
if var42697 ~= 2048 then goto L18865 end
if var42699 > length then return false end
if 0 > var42701 then goto L18865 end
if var42738 > length then return false end
if var42743 ~= 0 then goto L18865 end
local var42798 = (lshift(band(P[14],15),2) + 14)
local var42799 = (var42798 + 22)
if (var42799 + 1) > length then return false end
local var42815 = (var42798 + ((((21 + P[var42799]) % 4294967296) + 3) % 4294967296))
if (var42815 + 1) > length then return false end
if P[var42815] == 3 then return true end
goto L18865
end
::L18865::
if var2 > length then return false end
local var42837 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var42837 ~= 2048 then return false end
local var42838 = (14 + 19)
local var42839 = (var42838 + 1)
if var42839 > length then return false end
local var42841 = P[var42838]
if 0 > var42841 then return false end
if var2 > length then return false end
if var42837 ~= 2048 then return false end
if var42839 > length then return false end
if 0 > var42841 then return false end
local var42851 = (14 + 9)
if (var42851 + 1) > length then return false end
if P[var42851] ~= 6 then return false end
if var2 > length then return false end
if var42837 ~= 2048 then return false end
if var42839 > length then return false end
if 0 > var42841 then return false end
local var42864 = (14 + 39)
if (var42864 + 1) > length then return false end
if 0 > P[var42864] then return false end
if var2 > length then return false end
if var42837 ~= 2048 then return false end
if var42839 > length then return false end
if 0 > var42841 then return false end
local var42877 = (14 + 6)
if (var42877 + 2) > length then return false end
if (band(rshift(bswap(cast("uint16_t*", P+var42877)[0]), 16),8191) % 4294967296) ~= 0 then return false end
local var42888 = ((lshift(band(P[14],15),2) + 14) + 21)
if (var42888 + 1) > length then return false end
if P[var42888] ~= 1 then return false end
if var2 > length then return false end
local var42900 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var42900 ~= 2048 then goto L25141 end
do
local var42901 = (14 + 19)
local var42902 = (var42901 + 1)
if var42902 > length then return false end
local var42904 = P[var42901]
if 0 > var42904 then goto L25141 end
if var2 > length then return false end
if var42900 ~= 2048 then goto L25141 end
if var42902 > length then return false end
if 0 > var42904 then goto L25141 end
local var42914 = (14 + 9)
if (var42914 + 1) > length then return false end
if P[var42914] ~= 6 then goto L25141 end
if var2 > length then return false end
if var42900 ~= 2048 then goto L25141 end
if var42902 > length then return false end
if 0 > var42904 then goto L25141 end
local var42927 = (14 + 39)
if (var42927 + 1) > length then return false end
if 0 > P[var42927] then goto L25141 end
if var2 > length then return false end
if var42900 ~= 2048 then goto L25141 end
if var42902 > length then return false end
if 0 > var42904 then goto L25141 end
local var42940 = (14 + 6)
if (var42940 + 2) > length then return false end
if (band(rshift(bswap(cast("uint16_t*", P+var42940)[0]), 16),8191) % 4294967296) ~= 0 then goto L25141 end
local var42951 = ((lshift(band(P[14],15),2) + 14) + 22)
if (var42951 + 1) > length then return false end
if P[var42951] == 3 then return true end
goto L25141
end
::L25141::
if var2 > length then return false end
local var42963 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var42963 ~= 2048 then goto L25139 end
do
local var42964 = (14 + 19)
local var42965 = (var42964 + 1)
if var42965 > length then return false end
local var42967 = P[var42964]
if 0 > var42967 then goto L25139 end
if var2 > length then return false end
if var42963 ~= 2048 then goto L25139 end
if var42965 > length then return false end
if 0 > var42967 then goto L25139 end
local var42977 = (14 + 9)
if (var42977 + 1) > length then return false end
if P[var42977] ~= 6 then goto L25139 end
if var2 > length then return false end
if var42963 ~= 2048 then goto L25139 end
if var42965 > length then return false end
if 0 > var42967 then goto L25139 end
local var42990 = (14 + 39)
if (var42990 + 1) > length then return false end
if 0 > P[var42990] then goto L25139 end
if var2 > length then return false end
if var42963 ~= 2048 then goto L25139 end
if var42965 > length then return false end
if 0 > var42967 then goto L25139 end
local var43003 = (14 + 6)
if (var43003 + 2) > length then return false end
if (band(rshift(bswap(cast("uint16_t*", P+var43003)[0]), 16),8191) % 4294967296) ~= 0 then goto L25139 end
local var43014 = ((lshift(band(P[14],15),2) + 14) + 22)
if (var43014 + 1) > length then return false end
if P[var43014] == 1 then goto L25139 end
if var2 > length then return false end
local var43026 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var43026 ~= 2048 then goto L25239 end
do
local var43027 = (14 + 19)
local var43028 = (var43027 + 1)
if var43028 > length then return false end
local var43030 = P[var43027]
if 0 > var43030 then goto L25239 end
if var2 > length then return false end
if var43026 ~= 2048 then goto L25239 end
if var43028 > length then return false end
if 0 > var43030 then goto L25239 end
local var43040 = (14 + 9)
local var43041 = (var43040 + 1)
if var43041 > length then return false end
local var43043 = P[var43040]
if var43043 ~= 6 then goto L25239 end
if var2 > length then return false end
if var43026 ~= 2048 then goto L25239 end
if var43028 > length then return false end
if 0 > var43030 then goto L25239 end
local var43053 = (14 + 39)
local var43054 = (var43053 + 1)
if var43054 > length then return false end
local var43056 = P[var43053]
if 0 > var43056 then goto L25239 end
if var2 > length then return false end
if var43026 ~= 2048 then goto L25239 end
if var43028 > length then return false end
if 0 > var43030 then goto L25239 end
local var43066 = (14 + 6)
local var43067 = (var43066 + 2)
if var43067 > length then return false end
local var43072 = (band(rshift(bswap(cast("uint16_t*", P+var43066)[0]), 16),8191) % 4294967296)
if var43072 ~= 0 then goto L25239 end
if var2 > length then return false end
if var43026 ~= 2048 then goto L25239 end
if var43028 > length then return false end
if 0 > var43030 then goto L25239 end
if var2 > length then return false end
if var43026 ~= 2048 then goto L25239 end
if var43028 > length then return false end
if 0 > var43030 then goto L25239 end
if var43041 > length then return false end
if var43043 ~= 6 then goto L25239 end
if var2 > length then return false end
if var43026 ~= 2048 then goto L25239 end
if var43028 > length then return false end
if 0 > var43030 then goto L25239 end
if var43054 > length then return false end
if 0 > var43056 then goto L25239 end
if var2 > length then return false end
if var43026 ~= 2048 then goto L25239 end
if var43028 > length then return false end
if 0 > var43030 then goto L25239 end
if var43067 > length then return false end
if var43072 ~= 0 then goto L25239 end
local var43127 = (lshift(band(P[14],15),2) + 14)
local var43128 = (var43127 + 23)
if (var43128 + 1) > length then return false end
local var43142 = (var43127 + ((22 + P[var43128]) % 4294967296))
if (var43142 + 1) > length then return false end
if P[var43142] == 3 then return true end
goto L25239
end
::L25239::
if var2 > length then return false end
local var43162 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var43162 ~= 2048 then goto L25237 end
do
local var43163 = (14 + 19)
local var43164 = (var43163 + 1)
if var43164 > length then return false end
local var43166 = P[var43163]
if 0 > var43166 then goto L25237 end
if var2 > length then return false end
if var43162 ~= 2048 then goto L25237 end
if var43164 > length then return false end
if 0 > var43166 then goto L25237 end
local var43176 = (14 + 9)
local var43177 = (var43176 + 1)
if var43177 > length then return false end
local var43179 = P[var43176]
if var43179 ~= 6 then goto L25237 end
if var2 > length then return false end
if var43162 ~= 2048 then goto L25237 end
if var43164 > length then return false end
if 0 > var43166 then goto L25237 end
local var43189 = (14 + 39)
local var43190 = (var43189 + 1)
if var43190 > length then return false end
local var43192 = P[var43189]
if 0 > var43192 then goto L25237 end
if var2 > length then return false end
if var43162 ~= 2048 then goto L25237 end
if var43164 > length then return false end
if 0 > var43166 then goto L25237 end
local var43202 = (14 + 6)
local var43203 = (var43202 + 2)
if var43203 > length then return false end
local var43208 = (band(rshift(bswap(cast("uint16_t*", P+var43202)[0]), 16),8191) % 4294967296)
if var43208 ~= 0 then goto L25237 end
if var2 > length then return false end
if var43162 ~= 2048 then goto L25237 end
if var43164 > length then return false end
if 0 > var43166 then goto L25237 end
if var2 > length then return false end
if var43162 ~= 2048 then goto L25237 end
if var43164 > length then return false end
if 0 > var43166 then goto L25237 end
if var43177 > length then return false end
if var43179 ~= 6 then goto L25237 end
if var2 > length then return false end
if var43162 ~= 2048 then goto L25237 end
if var43164 > length then return false end
if 0 > var43166 then goto L25237 end
if var43190 > length then return false end
if 0 > var43192 then goto L25237 end
if var2 > length then return false end
if var43162 ~= 2048 then goto L25237 end
if var43164 > length then return false end
if 0 > var43166 then goto L25237 end
if var43203 > length then return false end
if var43208 ~= 0 then goto L25237 end
local var43263 = (lshift(band(P[14],15),2) + 14)
local var43264 = (var43263 + 23)
if (var43264 + 1) > length then return false end
local var43278 = (var43263 + ((22 + P[var43264]) % 4294967296))
if (var43278 + 1) > length then return false end
if P[var43278] == 1 then goto L25237 end
if var2 > length then return false end
local var43298 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var43298 ~= 2048 then goto L25429 end
do
local var43299 = (14 + 19)
local var43300 = (var43299 + 1)
if var43300 > length then return false end
local var43302 = P[var43299]
if 0 > var43302 then goto L25429 end
if var2 > length then return false end
if var43298 ~= 2048 then goto L25429 end
if var43300 > length then return false end
if 0 > var43302 then goto L25429 end
local var43312 = (14 + 9)
local var43313 = (var43312 + 1)
if var43313 > length then return false end
local var43315 = P[var43312]
if var43315 ~= 6 then goto L25429 end
if var2 > length then return false end
if var43298 ~= 2048 then goto L25429 end
if var43300 > length then return false end
if 0 > var43302 then goto L25429 end
local var43325 = (14 + 39)
local var43326 = (var43325 + 1)
if var43326 > length then return false end
local var43328 = P[var43325]
if 0 > var43328 then goto L25429 end
if var2 > length then return false end
if var43298 ~= 2048 then goto L25429 end
if var43300 > length then return false end
if 0 > var43302 then goto L25429 end
local var43338 = (14 + 6)
local var43339 = (var43338 + 2)
if var43339 > length then return false end
local var43344 = (band(rshift(bswap(cast("uint16_t*", P+var43338)[0]), 16),8191) % 4294967296)
if var43344 ~= 0 then goto L25429 end
if var2 > length then return false end
if var43298 ~= 2048 then goto L25429 end
if var43300 > length then return false end
if 0 > var43302 then goto L25429 end
if var2 > length then return false end
if var43298 ~= 2048 then goto L25429 end
if var43300 > length then return false end
if 0 > var43302 then goto L25429 end
if var43313 > length then return false end
if var43315 ~= 6 then goto L25429 end
if var2 > length then return false end
if var43298 ~= 2048 then goto L25429 end
if var43300 > length then return false end
if 0 > var43302 then goto L25429 end
if var43326 > length then return false end
if 0 > var43328 then goto L25429 end
if var2 > length then return false end
if var43298 ~= 2048 then goto L25429 end
if var43300 > length then return false end
if 0 > var43302 then goto L25429 end
if var43339 > length then return false end
if var43344 ~= 0 then goto L25429 end
local var43399 = (lshift(band(P[14],15),2) + 14)
local var43400 = (var43399 + 23)
local var43401 = (var43400 + 1)
if var43401 > length then return false end
if var2 > length then return false end
if var43298 ~= 2048 then goto L25429 end
if var43300 > length then return false end
if 0 > var43302 then goto L25429 end
if var2 > length then return false end
if var43298 ~= 2048 then goto L25429 end
if var43300 > length then return false end
if 0 > var43302 then goto L25429 end
if var43313 > length then return false end
if var43315 ~= 6 then goto L25429 end
if var2 > length then return false end
if var43298 ~= 2048 then goto L25429 end
if var43300 > length then return false end
if 0 > var43302 then goto L25429 end
if var43326 > length then return false end
if 0 > var43328 then goto L25429 end
if var2 > length then return false end
if var43298 ~= 2048 then goto L25429 end
if var43300 > length then return false end
if 0 > var43302 then goto L25429 end
if var43339 > length then return false end
if var43344 ~= 0 then goto L25429 end
if var2 > length then return false end
if var43298 ~= 2048 then goto L25429 end
if var43300 > length then return false end
if 0 > var43302 then goto L25429 end
if var2 > length then return false end
if var43298 ~= 2048 then goto L25429 end
if var43300 > length then return false end
if 0 > var43302 then goto L25429 end
if var43313 > length then return false end
if var43315 ~= 6 then goto L25429 end
if var2 > length then return false end
if var43298 ~= 2048 then goto L25429 end
if var43300 > length then return false end
if 0 > var43302 then goto L25429 end
if var43326 > length then return false end
if 0 > var43328 then goto L25429 end
if var2 > length then return false end
if var43298 ~= 2048 then goto L25429 end
if var43300 > length then return false end
if 0 > var43302 then goto L25429 end
if var43339 > length then return false end
if var43344 ~= 0 then goto L25429 end
if var43401 > length then return false end
local var43521 = ((22 + P[var43400]) % 4294967296)
local var43524 = (var43399 + ((var43521 + 1) % 4294967296))
if (var43524 + 1) > length then return false end
local var43556 = (var43399 + ((var43521 + P[var43524]) % 4294967296))
if (var43556 + 1) > length then return false end
if P[var43556] == 3 then return true end
goto L25429
end
::L25429::
if var2 > length then return false end
local var43594 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var43594 ~= 2048 then goto L25427 end
do
local var43595 = (14 + 19)
local var43596 = (var43595 + 1)
if var43596 > length then return false end
local var43598 = P[var43595]
if 0 > var43598 then goto L25427 end
if var2 > length then return false end
if var43594 ~= 2048 then goto L25427 end
if var43596 > length then return false end
if 0 > var43598 then goto L25427 end
local var43608 = (14 + 9)
local var43609 = (var43608 + 1)
if var43609 > length then return false end
local var43611 = P[var43608]
if var43611 ~= 6 then goto L25427 end
if var2 > length then return false end
if var43594 ~= 2048 then goto L25427 end
if var43596 > length then return false end
if 0 > var43598 then goto L25427 end
local var43621 = (14 + 39)
local var43622 = (var43621 + 1)
if var43622 > length then return false end
local var43624 = P[var43621]
if 0 > var43624 then goto L25427 end
if var2 > length then return false end
if var43594 ~= 2048 then goto L25427 end
if var43596 > length then return false end
if 0 > var43598 then goto L25427 end
local var43634 = (14 + 6)
local var43635 = (var43634 + 2)
if var43635 > length then return false end
local var43640 = (band(rshift(bswap(cast("uint16_t*", P+var43634)[0]), 16),8191) % 4294967296)
if var43640 ~= 0 then goto L25427 end
if var2 > length then return false end
if var43594 ~= 2048 then goto L25427 end
if var43596 > length then return false end
if 0 > var43598 then goto L25427 end
if var2 > length then return false end
if var43594 ~= 2048 then goto L25427 end
if var43596 > length then return false end
if 0 > var43598 then goto L25427 end
if var43609 > length then return false end
if var43611 ~= 6 then goto L25427 end
if var2 > length then return false end
if var43594 ~= 2048 then goto L25427 end
if var43596 > length then return false end
if 0 > var43598 then goto L25427 end
if var43622 > length then return false end
if 0 > var43624 then goto L25427 end
if var2 > length then return false end
if var43594 ~= 2048 then goto L25427 end
if var43596 > length then return false end
if 0 > var43598 then goto L25427 end
if var43635 > length then return false end
if var43640 ~= 0 then goto L25427 end
local var43695 = (lshift(band(P[14],15),2) + 14)
local var43696 = (var43695 + 23)
local var43697 = (var43696 + 1)
if var43697 > length then return false end
if var2 > length then return false end
if var43594 ~= 2048 then goto L25427 end
if var43596 > length then return false end
if 0 > var43598 then goto L25427 end
if var2 > length then return false end
if var43594 ~= 2048 then goto L25427 end
if var43596 > length then return false end
if 0 > var43598 then goto L25427 end
if var43609 > length then return false end
if var43611 ~= 6 then goto L25427 end
if var2 > length then return false end
if var43594 ~= 2048 then goto L25427 end
if var43596 > length then return false end
if 0 > var43598 then goto L25427 end
if var43622 > length then return false end
if 0 > var43624 then goto L25427 end
if var2 > length then return false end
if var43594 ~= 2048 then goto L25427 end
if var43596 > length then return false end
if 0 > var43598 then goto L25427 end
if var43635 > length then return false end
if var43640 ~= 0 then goto L25427 end
if var2 > length then return false end
if var43594 ~= 2048 then goto L25427 end
if var43596 > length then return false end
if 0 > var43598 then goto L25427 end
if var2 > length then return false end
if var43594 ~= 2048 then goto L25427 end
if var43596 > length then return false end
if 0 > var43598 then goto L25427 end
if var43609 > length then return false end
if var43611 ~= 6 then goto L25427 end
if var2 > length then return false end
if var43594 ~= 2048 then goto L25427 end
if var43596 > length then return false end
if 0 > var43598 then goto L25427 end
if var43622 > length then return false end
if 0 > var43624 then goto L25427 end
if var2 > length then return false end
if var43594 ~= 2048 then goto L25427 end
if var43596 > length then return false end
if 0 > var43598 then goto L25427 end
if var43635 > length then return false end
if var43640 ~= 0 then goto L25427 end
if var43697 > length then return false end
local var43817 = ((22 + P[var43696]) % 4294967296)
local var43820 = (var43695 + ((var43817 + 1) % 4294967296))
if (var43820 + 1) > length then return false end
local var43852 = (var43695 + ((var43817 + P[var43820]) % 4294967296))
if (var43852 + 1) > length then return false end
if P[var43852] == 1 then goto L25427 end
if var2 > length then return false end
local var43890 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var43890 ~= 2048 then goto L25427 end
local var43891 = (14 + 19)
local var43892 = (var43891 + 1)
if var43892 > length then return false end
local var43894 = P[var43891]
if 0 > var43894 then goto L25427 end
if var2 > length then return false end
if var43890 ~= 2048 then goto L25427 end
if var43892 > length then return false end
if 0 > var43894 then goto L25427 end
local var43904 = (14 + 9)
local var43905 = (var43904 + 1)
if var43905 > length then return false end
local var43907 = P[var43904]
if var43907 ~= 6 then goto L25427 end
if var2 > length then return false end
if var43890 ~= 2048 then goto L25427 end
if var43892 > length then return false end
if 0 > var43894 then goto L25427 end
local var43917 = (14 + 39)
local var43918 = (var43917 + 1)
if var43918 > length then return false end
local var43920 = P[var43917]
if 0 > var43920 then goto L25427 end
if var2 > length then return false end
if var43890 ~= 2048 then goto L25427 end
if var43892 > length then return false end
if 0 > var43894 then goto L25427 end
local var43930 = (14 + 6)
local var43931 = (var43930 + 2)
if var43931 > length then return false end
local var43936 = (band(rshift(bswap(cast("uint16_t*", P+var43930)[0]), 16),8191) % 4294967296)
if var43936 ~= 0 then goto L25427 end
if var2 > length then return false end
if var43890 ~= 2048 then goto L25427 end
if var43892 > length then return false end
if 0 > var43894 then goto L25427 end
if var2 > length then return false end
if var43890 ~= 2048 then goto L25427 end
if var43892 > length then return false end
if 0 > var43894 then goto L25427 end
if var43905 > length then return false end
if var43907 ~= 6 then goto L25427 end
if var2 > length then return false end
if var43890 ~= 2048 then goto L25427 end
if var43892 > length then return false end
if 0 > var43894 then goto L25427 end
if var43918 > length then return false end
if 0 > var43920 then goto L25427 end
if var2 > length then return false end
if var43890 ~= 2048 then goto L25427 end
if var43892 > length then return false end
if 0 > var43894 then goto L25427 end
if var43931 > length then return false end
if var43936 ~= 0 then goto L25427 end
local var43991 = (lshift(band(P[14],15),2) + 14)
local var43992 = (var43991 + 23)
local var43993 = (var43992 + 1)
if var43993 > length then return false end
if var2 > length then return false end
if var43890 ~= 2048 then goto L25427 end
if var43892 > length then return false end
if 0 > var43894 then goto L25427 end
if var2 > length then return false end
if var43890 ~= 2048 then goto L25427 end
if var43892 > length then return false end
if 0 > var43894 then goto L25427 end
if var43905 > length then return false end
if var43907 ~= 6 then goto L25427 end
if var2 > length then return false end
if var43890 ~= 2048 then goto L25427 end
if var43892 > length then return false end
if 0 > var43894 then goto L25427 end
if var43918 > length then return false end
if 0 > var43920 then goto L25427 end
if var2 > length then return false end
if var43890 ~= 2048 then goto L25427 end
if var43892 > length then return false end
if 0 > var43894 then goto L25427 end
if var43931 > length then return false end
if var43936 ~= 0 then goto L25427 end
if var2 > length then return false end
if var43890 ~= 2048 then goto L25427 end
if var43892 > length then return false end
if 0 > var43894 then goto L25427 end
if var2 > length then return false end
if var43890 ~= 2048 then goto L25427 end
if var43892 > length then return false end
if 0 > var43894 then goto L25427 end
if var43905 > length then return false end
if var43907 ~= 6 then goto L25427 end
if var2 > length then return false end
if var43890 ~= 2048 then goto L25427 end
if var43892 > length then return false end
if 0 > var43894 then goto L25427 end
if var43918 > length then return false end
if 0 > var43920 then goto L25427 end
if var2 > length then return false end
if var43890 ~= 2048 then goto L25427 end
if var43892 > length then return false end
if 0 > var43894 then goto L25427 end
if var43931 > length then return false end
if var43936 ~= 0 then goto L25427 end
if var43993 > length then return false end
local var44113 = ((22 + P[var43992]) % 4294967296)
local var44116 = (var43991 + ((var44113 + 1) % 4294967296))
local var44117 = (var44116 + 1)
if var44117 > length then return false end
if var2 > length then return false end
if var43890 ~= 2048 then goto L25427 end
if var43892 > length then return false end
if 0 > var43894 then goto L25427 end
if var2 > length then return false end
if var43890 ~= 2048 then goto L25427 end
if var43892 > length then return false end
if 0 > var43894 then goto L25427 end
if var43905 > length then return false end
if var43907 ~= 6 then goto L25427 end
if var2 > length then return false end
if var43890 ~= 2048 then goto L25427 end
if var43892 > length then return false end
if 0 > var43894 then goto L25427 end
if var43918 > length then return false end
if 0 > var43920 then goto L25427 end
if var2 > length then return false end
if var43890 ~= 2048 then goto L25427 end
if var43892 > length then return false end
if 0 > var43894 then goto L25427 end
if var43931 > length then return false end
if var43936 ~= 0 then goto L25427 end
if var2 > length then return false end
if var43890 ~= 2048 then goto L25427 end
if var43892 > length then return false end
if 0 > var43894 then goto L25427 end
if var2 > length then return false end
if var43890 ~= 2048 then goto L25427 end
if var43892 > length then return false end
if 0 > var43894 then goto L25427 end
if var43905 > length then return false end
if var43907 ~= 6 then goto L25427 end
if var2 > length then return false end
if var43890 ~= 2048 then goto L25427 end
if var43892 > length then return false end
if 0 > var43894 then goto L25427 end
if var43918 > length then return false end
if 0 > var43920 then goto L25427 end
if var2 > length then return false end
if var43890 ~= 2048 then goto L25427 end
if var43892 > length then return false end
if 0 > var43894 then goto L25427 end
if var43931 > length then return false end
if var43936 ~= 0 then goto L25427 end
if var43993 > length then return false end
if var2 > length then return false end
if var43890 ~= 2048 then goto L25427 end
if var43892 > length then return false end
if 0 > var43894 then goto L25427 end
if var2 > length then return false end
if var43890 ~= 2048 then goto L25427 end
if var43892 > length then return false end
if 0 > var43894 then goto L25427 end
if var43905 > length then return false end
if var43907 ~= 6 then goto L25427 end
if var2 > length then return false end
if var43890 ~= 2048 then goto L25427 end
if var43892 > length then return false end
if 0 > var43894 then goto L25427 end
if var43918 > length then return false end
if 0 > var43920 then goto L25427 end
if var2 > length then return false end
if var43890 ~= 2048 then goto L25427 end
if var43892 > length then return false end
if 0 > var43894 then goto L25427 end
if var43931 > length then return false end
if var43936 ~= 0 then goto L25427 end
if var2 > length then return false end
if var43890 ~= 2048 then goto L25427 end
if var43892 > length then return false end
if 0 > var43894 then goto L25427 end
if var2 > length then return false end
if var43890 ~= 2048 then goto L25427 end
if var43892 > length then return false end
if 0 > var43894 then goto L25427 end
if var43905 > length then return false end
if var43907 ~= 6 then goto L25427 end
if var2 > length then return false end
if var43890 ~= 2048 then goto L25427 end
if var43892 > length then return false end
if 0 > var43894 then goto L25427 end
if var43918 > length then return false end
if 0 > var43920 then goto L25427 end
if var2 > length then return false end
if var43890 ~= 2048 then goto L25427 end
if var43892 > length then return false end
if 0 > var43894 then goto L25427 end
if var43931 > length then return false end
if var43936 ~= 0 then goto L25427 end
if var43993 > length then return false end
if var44117 > length then return false end
local var44379 = ((var44113 + P[var44116]) % 4294967296)
local var44382 = (var43991 + ((var44379 + 1) % 4294967296))
if (var44382 + 1) > length then return false end
local var44450 = (var43991 + ((var44379 + P[var44382]) % 4294967296))
if (var44450 + 1) > length then return false end
if P[var44450] == 3 then return true end
goto L25427
end
::L25427::
if var2 > length then return false end
local var44524 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var44524 ~= 2048 then goto L25237 end
local var44525 = (14 + 19)
local var44526 = (var44525 + 1)
if var44526 > length then return false end
local var44528 = P[var44525]
if 0 > var44528 then goto L25237 end
if var2 > length then return false end
if var44524 ~= 2048 then goto L25237 end
if var44526 > length then return false end
if 0 > var44528 then goto L25237 end
local var44538 = (14 + 9)
local var44539 = (var44538 + 1)
if var44539 > length then return false end
local var44541 = P[var44538]
if var44541 ~= 6 then goto L25237 end
if var2 > length then return false end
if var44524 ~= 2048 then goto L25237 end
if var44526 > length then return false end
if 0 > var44528 then goto L25237 end
local var44551 = (14 + 39)
local var44552 = (var44551 + 1)
if var44552 > length then return false end
local var44554 = P[var44551]
if 0 > var44554 then goto L25237 end
if var2 > length then return false end
if var44524 ~= 2048 then goto L25237 end
if var44526 > length then return false end
if 0 > var44528 then goto L25237 end
local var44564 = (14 + 6)
local var44565 = (var44564 + 2)
if var44565 > length then return false end
local var44570 = (band(rshift(bswap(cast("uint16_t*", P+var44564)[0]), 16),8191) % 4294967296)
if var44570 ~= 0 then goto L25237 end
if var2 > length then return false end
if var44524 ~= 2048 then goto L25237 end
if var44526 > length then return false end
if 0 > var44528 then goto L25237 end
if var2 > length then return false end
if var44524 ~= 2048 then goto L25237 end
if var44526 > length then return false end
if 0 > var44528 then goto L25237 end
if var44539 > length then return false end
if var44541 ~= 6 then goto L25237 end
if var2 > length then return false end
if var44524 ~= 2048 then goto L25237 end
if var44526 > length then return false end
if 0 > var44528 then goto L25237 end
if var44552 > length then return false end
if 0 > var44554 then goto L25237 end
if var2 > length then return false end
if var44524 ~= 2048 then goto L25237 end
if var44526 > length then return false end
if 0 > var44528 then goto L25237 end
if var44565 > length then return false end
if var44570 ~= 0 then goto L25237 end
local var44625 = (lshift(band(P[14],15),2) + 14)
local var44626 = (var44625 + 23)
local var44627 = (var44626 + 1)
if var44627 > length then return false end
if var2 > length then return false end
if var44524 ~= 2048 then goto L25237 end
if var44526 > length then return false end
if 0 > var44528 then goto L25237 end
if var2 > length then return false end
if var44524 ~= 2048 then goto L25237 end
if var44526 > length then return false end
if 0 > var44528 then goto L25237 end
if var44539 > length then return false end
if var44541 ~= 6 then goto L25237 end
if var2 > length then return false end
if var44524 ~= 2048 then goto L25237 end
if var44526 > length then return false end
if 0 > var44528 then goto L25237 end
if var44552 > length then return false end
if 0 > var44554 then goto L25237 end
if var2 > length then return false end
if var44524 ~= 2048 then goto L25237 end
if var44526 > length then return false end
if 0 > var44528 then goto L25237 end
if var44565 > length then return false end
if var44570 ~= 0 then goto L25237 end
if var2 > length then return false end
if var44524 ~= 2048 then goto L25237 end
if var44526 > length then return false end
if 0 > var44528 then goto L25237 end
if var2 > length then return false end
if var44524 ~= 2048 then goto L25237 end
if var44526 > length then return false end
if 0 > var44528 then goto L25237 end
if var44539 > length then return false end
if var44541 ~= 6 then goto L25237 end
if var2 > length then return false end
if var44524 ~= 2048 then goto L25237 end
if var44526 > length then return false end
if 0 > var44528 then goto L25237 end
if var44552 > length then return false end
if 0 > var44554 then goto L25237 end
if var2 > length then return false end
if var44524 ~= 2048 then goto L25237 end
if var44526 > length then return false end
if 0 > var44528 then goto L25237 end
if var44565 > length then return false end
if var44570 ~= 0 then goto L25237 end
if var44627 > length then return false end
local var44747 = ((22 + P[var44626]) % 4294967296)
local var44750 = (var44625 + ((var44747 + 1) % 4294967296))
if (var44750 + 1) > length then return false end
local var44782 = (var44625 + ((var44747 + P[var44750]) % 4294967296))
if (var44782 + 1) > length then return false end
if P[var44782] ~= 1 then goto L25237 end
if var2 > length then return false end
local var44820 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var44820 ~= 2048 then goto L25237 end
local var44821 = (14 + 19)
local var44822 = (var44821 + 1)
if var44822 > length then return false end
local var44824 = P[var44821]
if 0 > var44824 then goto L25237 end
if var2 > length then return false end
if var44820 ~= 2048 then goto L25237 end
if var44822 > length then return false end
if 0 > var44824 then goto L25237 end
local var44834 = (14 + 9)
local var44835 = (var44834 + 1)
if var44835 > length then return false end
local var44837 = P[var44834]
if var44837 ~= 6 then goto L25237 end
if var2 > length then return false end
if var44820 ~= 2048 then goto L25237 end
if var44822 > length then return false end
if 0 > var44824 then goto L25237 end
local var44847 = (14 + 39)
local var44848 = (var44847 + 1)
if var44848 > length then return false end
local var44850 = P[var44847]
if 0 > var44850 then goto L25237 end
if var2 > length then return false end
if var44820 ~= 2048 then goto L25237 end
if var44822 > length then return false end
if 0 > var44824 then goto L25237 end
local var44860 = (14 + 6)
local var44861 = (var44860 + 2)
if var44861 > length then return false end
local var44866 = (band(rshift(bswap(cast("uint16_t*", P+var44860)[0]), 16),8191) % 4294967296)
if var44866 ~= 0 then goto L25237 end
if var2 > length then return false end
if var44820 ~= 2048 then goto L25237 end
if var44822 > length then return false end
if 0 > var44824 then goto L25237 end
if var2 > length then return false end
if var44820 ~= 2048 then goto L25237 end
if var44822 > length then return false end
if 0 > var44824 then goto L25237 end
if var44835 > length then return false end
if var44837 ~= 6 then goto L25237 end
if var2 > length then return false end
if var44820 ~= 2048 then goto L25237 end
if var44822 > length then return false end
if 0 > var44824 then goto L25237 end
if var44848 > length then return false end
if 0 > var44850 then goto L25237 end
if var2 > length then return false end
if var44820 ~= 2048 then goto L25237 end
if var44822 > length then return false end
if 0 > var44824 then goto L25237 end
if var44861 > length then return false end
if var44866 ~= 0 then goto L25237 end
local var44921 = (lshift(band(P[14],15),2) + 14)
local var44922 = (var44921 + 23)
local var44923 = (var44922 + 1)
if var44923 > length then return false end
if var2 > length then return false end
if var44820 ~= 2048 then goto L25237 end
if var44822 > length then return false end
if 0 > var44824 then goto L25237 end
if var2 > length then return false end
if var44820 ~= 2048 then goto L25237 end
if var44822 > length then return false end
if 0 > var44824 then goto L25237 end
if var44835 > length then return false end
if var44837 ~= 6 then goto L25237 end
if var2 > length then return false end
if var44820 ~= 2048 then goto L25237 end
if var44822 > length then return false end
if 0 > var44824 then goto L25237 end
if var44848 > length then return false end
if 0 > var44850 then goto L25237 end
if var2 > length then return false end
if var44820 ~= 2048 then goto L25237 end
if var44822 > length then return false end
if 0 > var44824 then goto L25237 end
if var44861 > length then return false end
if var44866 ~= 0 then goto L25237 end
if var2 > length then return false end
if var44820 ~= 2048 then goto L25237 end
if var44822 > length then return false end
if 0 > var44824 then goto L25237 end
if var2 > length then return false end
if var44820 ~= 2048 then goto L25237 end
if var44822 > length then return false end
if 0 > var44824 then goto L25237 end
if var44835 > length then return false end
if var44837 ~= 6 then goto L25237 end
if var2 > length then return false end
if var44820 ~= 2048 then goto L25237 end
if var44822 > length then return false end
if 0 > var44824 then goto L25237 end
if var44848 > length then return false end
if 0 > var44850 then goto L25237 end
if var2 > length then return false end
if var44820 ~= 2048 then goto L25237 end
if var44822 > length then return false end
if 0 > var44824 then goto L25237 end
if var44861 > length then return false end
if var44866 ~= 0 then goto L25237 end
if var44923 > length then return false end
local var45043 = ((22 + P[var44922]) % 4294967296)
local var45046 = (var44921 + ((var45043 + 1) % 4294967296))
if (var45046 + 1) > length then return false end
local var45080 = (var44921 + ((((var45043 + P[var45046]) % 4294967296) + 1) % 4294967296))
if (var45080 + 1) > length then return false end
if P[var45080] == 3 then return true end
goto L25237
end
::L25237::
if var2 > length then return false end
local var45120 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var45120 ~= 2048 then goto L25139 end
local var45121 = (14 + 19)
local var45122 = (var45121 + 1)
if var45122 > length then return false end
local var45124 = P[var45121]
if 0 > var45124 then goto L25139 end
if var2 > length then return false end
if var45120 ~= 2048 then goto L25139 end
if var45122 > length then return false end
if 0 > var45124 then goto L25139 end
local var45134 = (14 + 9)
local var45135 = (var45134 + 1)
if var45135 > length then return false end
local var45137 = P[var45134]
if var45137 ~= 6 then goto L25139 end
if var2 > length then return false end
if var45120 ~= 2048 then goto L25139 end
if var45122 > length then return false end
if 0 > var45124 then goto L25139 end
local var45147 = (14 + 39)
local var45148 = (var45147 + 1)
if var45148 > length then return false end
local var45150 = P[var45147]
if 0 > var45150 then goto L25139 end
if var2 > length then return false end
if var45120 ~= 2048 then goto L25139 end
if var45122 > length then return false end
if 0 > var45124 then goto L25139 end
local var45160 = (14 + 6)
local var45161 = (var45160 + 2)
if var45161 > length then return false end
local var45166 = (band(rshift(bswap(cast("uint16_t*", P+var45160)[0]), 16),8191) % 4294967296)
if var45166 ~= 0 then goto L25139 end
if var2 > length then return false end
if var45120 ~= 2048 then goto L25139 end
if var45122 > length then return false end
if 0 > var45124 then goto L25139 end
if var2 > length then return false end
if var45120 ~= 2048 then goto L25139 end
if var45122 > length then return false end
if 0 > var45124 then goto L25139 end
if var45135 > length then return false end
if var45137 ~= 6 then goto L25139 end
if var2 > length then return false end
if var45120 ~= 2048 then goto L25139 end
if var45122 > length then return false end
if 0 > var45124 then goto L25139 end
if var45148 > length then return false end
if 0 > var45150 then goto L25139 end
if var2 > length then return false end
if var45120 ~= 2048 then goto L25139 end
if var45122 > length then return false end
if 0 > var45124 then goto L25139 end
if var45161 > length then return false end
if var45166 ~= 0 then goto L25139 end
local var45221 = (lshift(band(P[14],15),2) + 14)
local var45222 = (var45221 + 23)
if (var45222 + 1) > length then return false end
local var45236 = (var45221 + ((22 + P[var45222]) % 4294967296))
if (var45236 + 1) > length then return false end
if P[var45236] ~= 1 then goto L25139 end
if var2 > length then return false end
local var45256 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var45256 ~= 2048 then goto L26635 end
do
local var45257 = (14 + 19)
local var45258 = (var45257 + 1)
if var45258 > length then return false end
local var45260 = P[var45257]
if 0 > var45260 then goto L26635 end
if var2 > length then return false end
if var45256 ~= 2048 then goto L26635 end
if var45258 > length then return false end
if 0 > var45260 then goto L26635 end
local var45270 = (14 + 9)
local var45271 = (var45270 + 1)
if var45271 > length then return false end
local var45273 = P[var45270]
if var45273 ~= 6 then goto L26635 end
if var2 > length then return false end
if var45256 ~= 2048 then goto L26635 end
if var45258 > length then return false end
if 0 > var45260 then goto L26635 end
local var45283 = (14 + 39)
local var45284 = (var45283 + 1)
if var45284 > length then return false end
local var45286 = P[var45283]
if 0 > var45286 then goto L26635 end
if var2 > length then return false end
if var45256 ~= 2048 then goto L26635 end
if var45258 > length then return false end
if 0 > var45260 then goto L26635 end
local var45296 = (14 + 6)
local var45297 = (var45296 + 2)
if var45297 > length then return false end
local var45302 = (band(rshift(bswap(cast("uint16_t*", P+var45296)[0]), 16),8191) % 4294967296)
if var45302 ~= 0 then goto L26635 end
if var2 > length then return false end
if var45256 ~= 2048 then goto L26635 end
if var45258 > length then return false end
if 0 > var45260 then goto L26635 end
if var2 > length then return false end
if var45256 ~= 2048 then goto L26635 end
if var45258 > length then return false end
if 0 > var45260 then goto L26635 end
if var45271 > length then return false end
if var45273 ~= 6 then goto L26635 end
if var2 > length then return false end
if var45256 ~= 2048 then goto L26635 end
if var45258 > length then return false end
if 0 > var45260 then goto L26635 end
if var45284 > length then return false end
if 0 > var45286 then goto L26635 end
if var2 > length then return false end
if var45256 ~= 2048 then goto L26635 end
if var45258 > length then return false end
if 0 > var45260 then goto L26635 end
if var45297 > length then return false end
if var45302 ~= 0 then goto L26635 end
local var45357 = (lshift(band(P[14],15),2) + 14)
local var45358 = (var45357 + 23)
if (var45358 + 1) > length then return false end
local var45374 = (var45357 + ((((22 + P[var45358]) % 4294967296) + 1) % 4294967296))
if (var45374 + 1) > length then return false end
if P[var45374] == 3 then return true end
goto L26635
end
::L26635::
if var2 > length then return false end
local var45396 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var45396 ~= 2048 then goto L26633 end
do
local var45397 = (14 + 19)
local var45398 = (var45397 + 1)
if var45398 > length then return false end
local var45400 = P[var45397]
if 0 > var45400 then goto L26633 end
if var2 > length then return false end
if var45396 ~= 2048 then goto L26633 end
if var45398 > length then return false end
if 0 > var45400 then goto L26633 end
local var45410 = (14 + 9)
local var45411 = (var45410 + 1)
if var45411 > length then return false end
local var45413 = P[var45410]
if var45413 ~= 6 then goto L26633 end
if var2 > length then return false end
if var45396 ~= 2048 then goto L26633 end
if var45398 > length then return false end
if 0 > var45400 then goto L26633 end
local var45423 = (14 + 39)
local var45424 = (var45423 + 1)
if var45424 > length then return false end
local var45426 = P[var45423]
if 0 > var45426 then goto L26633 end
if var2 > length then return false end
if var45396 ~= 2048 then goto L26633 end
if var45398 > length then return false end
if 0 > var45400 then goto L26633 end
local var45436 = (14 + 6)
local var45437 = (var45436 + 2)
if var45437 > length then return false end
local var45442 = (band(rshift(bswap(cast("uint16_t*", P+var45436)[0]), 16),8191) % 4294967296)
if var45442 ~= 0 then goto L26633 end
if var2 > length then return false end
if var45396 ~= 2048 then goto L26633 end
if var45398 > length then return false end
if 0 > var45400 then goto L26633 end
if var2 > length then return false end
if var45396 ~= 2048 then goto L26633 end
if var45398 > length then return false end
if 0 > var45400 then goto L26633 end
if var45411 > length then return false end
if var45413 ~= 6 then goto L26633 end
if var2 > length then return false end
if var45396 ~= 2048 then goto L26633 end
if var45398 > length then return false end
if 0 > var45400 then goto L26633 end
if var45424 > length then return false end
if 0 > var45426 then goto L26633 end
if var2 > length then return false end
if var45396 ~= 2048 then goto L26633 end
if var45398 > length then return false end
if 0 > var45400 then goto L26633 end
if var45437 > length then return false end
if var45442 ~= 0 then goto L26633 end
local var45497 = (lshift(band(P[14],15),2) + 14)
local var45498 = (var45497 + 23)
if (var45498 + 1) > length then return false end
local var45514 = (var45497 + ((((22 + P[var45498]) % 4294967296) + 1) % 4294967296))
if (var45514 + 1) > length then return false end
if P[var45514] == 1 then goto L26633 end
if var2 > length then return false end
local var45536 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var45536 ~= 2048 then goto L26633 end
local var45537 = (14 + 19)
local var45538 = (var45537 + 1)
if var45538 > length then return false end
local var45540 = P[var45537]
if 0 > var45540 then goto L26633 end
if var2 > length then return false end
if var45536 ~= 2048 then goto L26633 end
if var45538 > length then return false end
if 0 > var45540 then goto L26633 end
local var45550 = (14 + 9)
local var45551 = (var45550 + 1)
if var45551 > length then return false end
local var45553 = P[var45550]
if var45553 ~= 6 then goto L26633 end
if var2 > length then return false end
if var45536 ~= 2048 then goto L26633 end
if var45538 > length then return false end
if 0 > var45540 then goto L26633 end
local var45563 = (14 + 39)
local var45564 = (var45563 + 1)
if var45564 > length then return false end
local var45566 = P[var45563]
if 0 > var45566 then goto L26633 end
if var2 > length then return false end
if var45536 ~= 2048 then goto L26633 end
if var45538 > length then return false end
if 0 > var45540 then goto L26633 end
local var45576 = (14 + 6)
local var45577 = (var45576 + 2)
if var45577 > length then return false end
local var45582 = (band(rshift(bswap(cast("uint16_t*", P+var45576)[0]), 16),8191) % 4294967296)
if var45582 ~= 0 then goto L26633 end
if var2 > length then return false end
if var45536 ~= 2048 then goto L26633 end
if var45538 > length then return false end
if 0 > var45540 then goto L26633 end
if var2 > length then return false end
if var45536 ~= 2048 then goto L26633 end
if var45538 > length then return false end
if 0 > var45540 then goto L26633 end
if var45551 > length then return false end
if var45553 ~= 6 then goto L26633 end
if var2 > length then return false end
if var45536 ~= 2048 then goto L26633 end
if var45538 > length then return false end
if 0 > var45540 then goto L26633 end
if var45564 > length then return false end
if 0 > var45566 then goto L26633 end
if var2 > length then return false end
if var45536 ~= 2048 then goto L26633 end
if var45538 > length then return false end
if 0 > var45540 then goto L26633 end
if var45577 > length then return false end
if var45582 ~= 0 then goto L26633 end
local var45637 = (lshift(band(P[14],15),2) + 14)
local var45638 = (var45637 + 23)
local var45639 = (var45638 + 1)
if var45639 > length then return false end
if var2 > length then return false end
if var45536 ~= 2048 then goto L26633 end
if var45538 > length then return false end
if 0 > var45540 then goto L26633 end
if var2 > length then return false end
if var45536 ~= 2048 then goto L26633 end
if var45538 > length then return false end
if 0 > var45540 then goto L26633 end
if var45551 > length then return false end
if var45553 ~= 6 then goto L26633 end
if var2 > length then return false end
if var45536 ~= 2048 then goto L26633 end
if var45538 > length then return false end
if 0 > var45540 then goto L26633 end
if var45564 > length then return false end
if 0 > var45566 then goto L26633 end
if var2 > length then return false end
if var45536 ~= 2048 then goto L26633 end
if var45538 > length then return false end
if 0 > var45540 then goto L26633 end
if var45577 > length then return false end
if var45582 ~= 0 then goto L26633 end
if var2 > length then return false end
if var45536 ~= 2048 then goto L26633 end
if var45538 > length then return false end
if 0 > var45540 then goto L26633 end
if var2 > length then return false end
if var45536 ~= 2048 then goto L26633 end
if var45538 > length then return false end
if 0 > var45540 then goto L26633 end
if var45551 > length then return false end
if var45553 ~= 6 then goto L26633 end
if var2 > length then return false end
if var45536 ~= 2048 then goto L26633 end
if var45538 > length then return false end
if 0 > var45540 then goto L26633 end
if var45564 > length then return false end
if 0 > var45566 then goto L26633 end
if var2 > length then return false end
if var45536 ~= 2048 then goto L26633 end
if var45538 > length then return false end
if 0 > var45540 then goto L26633 end
if var45577 > length then return false end
if var45582 ~= 0 then goto L26633 end
if var45639 > length then return false end
local var45759 = ((22 + P[var45638]) % 4294967296)
local var45762 = (var45637 + ((var45759 + 2) % 4294967296))
if (var45762 + 1) > length then return false end
local var45796 = (var45637 + ((((var45759 + 1) % 4294967296) + P[var45762]) % 4294967296))
if (var45796 + 1) > length then return false end
if P[var45796] == 3 then return true end
goto L26633
end
::L26633::
if var2 > length then return false end
local var45836 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var45836 ~= 2048 then goto L25139 end
local var45837 = (14 + 19)
local var45838 = (var45837 + 1)
if var45838 > length then return false end
local var45840 = P[var45837]
if 0 > var45840 then goto L25139 end
if var2 > length then return false end
if var45836 ~= 2048 then goto L25139 end
if var45838 > length then return false end
if 0 > var45840 then goto L25139 end
local var45850 = (14 + 9)
local var45851 = (var45850 + 1)
if var45851 > length then return false end
local var45853 = P[var45850]
if var45853 ~= 6 then goto L25139 end
if var2 > length then return false end
if var45836 ~= 2048 then goto L25139 end
if var45838 > length then return false end
if 0 > var45840 then goto L25139 end
local var45863 = (14 + 39)
local var45864 = (var45863 + 1)
if var45864 > length then return false end
local var45866 = P[var45863]
if 0 > var45866 then goto L25139 end
if var2 > length then return false end
if var45836 ~= 2048 then goto L25139 end
if var45838 > length then return false end
if 0 > var45840 then goto L25139 end
local var45876 = (14 + 6)
local var45877 = (var45876 + 2)
if var45877 > length then return false end
local var45882 = (band(rshift(bswap(cast("uint16_t*", P+var45876)[0]), 16),8191) % 4294967296)
if var45882 ~= 0 then goto L25139 end
if var2 > length then return false end
if var45836 ~= 2048 then goto L25139 end
if var45838 > length then return false end
if 0 > var45840 then goto L25139 end
if var2 > length then return false end
if var45836 ~= 2048 then goto L25139 end
if var45838 > length then return false end
if 0 > var45840 then goto L25139 end
if var45851 > length then return false end
if var45853 ~= 6 then goto L25139 end
if var2 > length then return false end
if var45836 ~= 2048 then goto L25139 end
if var45838 > length then return false end
if 0 > var45840 then goto L25139 end
if var45864 > length then return false end
if 0 > var45866 then goto L25139 end
if var2 > length then return false end
if var45836 ~= 2048 then goto L25139 end
if var45838 > length then return false end
if 0 > var45840 then goto L25139 end
if var45877 > length then return false end
if var45882 ~= 0 then goto L25139 end
local var45937 = (lshift(band(P[14],15),2) + 14)
local var45938 = (var45937 + 23)
if (var45938 + 1) > length then return false end
local var45954 = (var45937 + ((((22 + P[var45938]) % 4294967296) + 1) % 4294967296))
if (var45954 + 1) > length then return false end
if P[var45954] ~= 1 then goto L25139 end
if var2 > length then return false end
local var45976 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var45976 ~= 2048 then goto L25139 end
local var45977 = (14 + 19)
local var45978 = (var45977 + 1)
if var45978 > length then return false end
local var45980 = P[var45977]
if 0 > var45980 then goto L25139 end
if var2 > length then return false end
if var45976 ~= 2048 then goto L25139 end
if var45978 > length then return false end
if 0 > var45980 then goto L25139 end
local var45990 = (14 + 9)
local var45991 = (var45990 + 1)
if var45991 > length then return false end
local var45993 = P[var45990]
if var45993 ~= 6 then goto L25139 end
if var2 > length then return false end
if var45976 ~= 2048 then goto L25139 end
if var45978 > length then return false end
if 0 > var45980 then goto L25139 end
local var46003 = (14 + 39)
local var46004 = (var46003 + 1)
if var46004 > length then return false end
local var46006 = P[var46003]
if 0 > var46006 then goto L25139 end
if var2 > length then return false end
if var45976 ~= 2048 then goto L25139 end
if var45978 > length then return false end
if 0 > var45980 then goto L25139 end
local var46016 = (14 + 6)
local var46017 = (var46016 + 2)
if var46017 > length then return false end
local var46022 = (band(rshift(bswap(cast("uint16_t*", P+var46016)[0]), 16),8191) % 4294967296)
if var46022 ~= 0 then goto L25139 end
if var2 > length then return false end
if var45976 ~= 2048 then goto L25139 end
if var45978 > length then return false end
if 0 > var45980 then goto L25139 end
if var2 > length then return false end
if var45976 ~= 2048 then goto L25139 end
if var45978 > length then return false end
if 0 > var45980 then goto L25139 end
if var45991 > length then return false end
if var45993 ~= 6 then goto L25139 end
if var2 > length then return false end
if var45976 ~= 2048 then goto L25139 end
if var45978 > length then return false end
if 0 > var45980 then goto L25139 end
if var46004 > length then return false end
if 0 > var46006 then goto L25139 end
if var2 > length then return false end
if var45976 ~= 2048 then goto L25139 end
if var45978 > length then return false end
if 0 > var45980 then goto L25139 end
if var46017 > length then return false end
if var46022 ~= 0 then goto L25139 end
local var46077 = (lshift(band(P[14],15),2) + 14)
local var46078 = (var46077 + 23)
if (var46078 + 1) > length then return false end
local var46094 = (var46077 + ((((22 + P[var46078]) % 4294967296) + 2) % 4294967296))
if (var46094 + 1) > length then return false end
if P[var46094] == 3 then return true end
goto L25139
end
::L25139::
if var2 > length then return false end
local var46116 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var46116 ~= 2048 then return false end
local var46117 = (14 + 19)
local var46118 = (var46117 + 1)
if var46118 > length then return false end
local var46120 = P[var46117]
if 0 > var46120 then return false end
if var2 > length then return false end
if var46116 ~= 2048 then return false end
if var46118 > length then return false end
if 0 > var46120 then return false end
local var46130 = (14 + 9)
if (var46130 + 1) > length then return false end
if P[var46130] ~= 6 then return false end
if var2 > length then return false end
if var46116 ~= 2048 then return false end
if var46118 > length then return false end
if 0 > var46120 then return false end
local var46143 = (14 + 39)
if (var46143 + 1) > length then return false end
if 0 > P[var46143] then return false end
if var2 > length then return false end
if var46116 ~= 2048 then return false end
if var46118 > length then return false end
if 0 > var46120 then return false end
local var46156 = (14 + 6)
if (var46156 + 2) > length then return false end
if (band(rshift(bswap(cast("uint16_t*", P+var46156)[0]), 16),8191) % 4294967296) ~= 0 then return false end
local var46167 = ((lshift(band(P[14],15),2) + 14) + 22)
if (var46167 + 1) > length then return false end
if P[var46167] ~= 1 then return false end
if var2 > length then return false end
local var46179 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var46179 ~= 2048 then goto L27243 end
do
local var46180 = (14 + 19)
local var46181 = (var46180 + 1)
if var46181 > length then return false end
local var46183 = P[var46180]
if 0 > var46183 then goto L27243 end
if var2 > length then return false end
if var46179 ~= 2048 then goto L27243 end
if var46181 > length then return false end
if 0 > var46183 then goto L27243 end
local var46193 = (14 + 9)
if (var46193 + 1) > length then return false end
if P[var46193] ~= 6 then goto L27243 end
if var2 > length then return false end
if var46179 ~= 2048 then goto L27243 end
if var46181 > length then return false end
if 0 > var46183 then goto L27243 end
local var46206 = (14 + 39)
if (var46206 + 1) > length then return false end
if 0 > P[var46206] then goto L27243 end
if var2 > length then return false end
if var46179 ~= 2048 then goto L27243 end
if var46181 > length then return false end
if 0 > var46183 then goto L27243 end
local var46219 = (14 + 6)
if (var46219 + 2) > length then return false end
if (band(rshift(bswap(cast("uint16_t*", P+var46219)[0]), 16),8191) % 4294967296) ~= 0 then goto L27243 end
local var46230 = ((lshift(band(P[14],15),2) + 14) + 23)
if (var46230 + 1) > length then return false end
if P[var46230] == 3 then return true end
goto L27243
end
::L27243::
if var2 > length then return false end
local var46242 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var46242 ~= 2048 then goto L27241 end
do
local var46243 = (14 + 19)
local var46244 = (var46243 + 1)
if var46244 > length then return false end
local var46246 = P[var46243]
if 0 > var46246 then goto L27241 end
if var2 > length then return false end
if var46242 ~= 2048 then goto L27241 end
if var46244 > length then return false end
if 0 > var46246 then goto L27241 end
local var46256 = (14 + 9)
if (var46256 + 1) > length then return false end
if P[var46256] ~= 6 then goto L27241 end
if var2 > length then return false end
if var46242 ~= 2048 then goto L27241 end
if var46244 > length then return false end
if 0 > var46246 then goto L27241 end
local var46269 = (14 + 39)
if (var46269 + 1) > length then return false end
if 0 > P[var46269] then goto L27241 end
if var2 > length then return false end
if var46242 ~= 2048 then goto L27241 end
if var46244 > length then return false end
if 0 > var46246 then goto L27241 end
local var46282 = (14 + 6)
if (var46282 + 2) > length then return false end
if (band(rshift(bswap(cast("uint16_t*", P+var46282)[0]), 16),8191) % 4294967296) ~= 0 then goto L27241 end
local var46293 = ((lshift(band(P[14],15),2) + 14) + 23)
if (var46293 + 1) > length then return false end
if P[var46293] == 1 then goto L27241 end
if var2 > length then return false end
local var46305 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var46305 ~= 2048 then goto L27341 end
do
local var46306 = (14 + 19)
local var46307 = (var46306 + 1)
if var46307 > length then return false end
local var46309 = P[var46306]
if 0 > var46309 then goto L27341 end
if var2 > length then return false end
if var46305 ~= 2048 then goto L27341 end
if var46307 > length then return false end
if 0 > var46309 then goto L27341 end
local var46319 = (14 + 9)
local var46320 = (var46319 + 1)
if var46320 > length then return false end
local var46322 = P[var46319]
if var46322 ~= 6 then goto L27341 end
if var2 > length then return false end
if var46305 ~= 2048 then goto L27341 end
if var46307 > length then return false end
if 0 > var46309 then goto L27341 end
local var46332 = (14 + 39)
local var46333 = (var46332 + 1)
if var46333 > length then return false end
local var46335 = P[var46332]
if 0 > var46335 then goto L27341 end
if var2 > length then return false end
if var46305 ~= 2048 then goto L27341 end
if var46307 > length then return false end
if 0 > var46309 then goto L27341 end
local var46345 = (14 + 6)
local var46346 = (var46345 + 2)
if var46346 > length then return false end
local var46351 = (band(rshift(bswap(cast("uint16_t*", P+var46345)[0]), 16),8191) % 4294967296)
if var46351 ~= 0 then goto L27341 end
if var2 > length then return false end
if var46305 ~= 2048 then goto L27341 end
if var46307 > length then return false end
if 0 > var46309 then goto L27341 end
if var2 > length then return false end
if var46305 ~= 2048 then goto L27341 end
if var46307 > length then return false end
if 0 > var46309 then goto L27341 end
if var46320 > length then return false end
if var46322 ~= 6 then goto L27341 end
if var2 > length then return false end
if var46305 ~= 2048 then goto L27341 end
if var46307 > length then return false end
if 0 > var46309 then goto L27341 end
if var46333 > length then return false end
if 0 > var46335 then goto L27341 end
if var2 > length then return false end
if var46305 ~= 2048 then goto L27341 end
if var46307 > length then return false end
if 0 > var46309 then goto L27341 end
if var46346 > length then return false end
if var46351 ~= 0 then goto L27341 end
local var46406 = (lshift(band(P[14],15),2) + 14)
local var46407 = (var46406 + 24)
if (var46407 + 1) > length then return false end
local var46421 = (var46406 + ((23 + P[var46407]) % 4294967296))
if (var46421 + 1) > length then return false end
if P[var46421] == 3 then return true end
goto L27341
end
::L27341::
if var2 > length then return false end
local var46441 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var46441 ~= 2048 then goto L27339 end
do
local var46442 = (14 + 19)
local var46443 = (var46442 + 1)
if var46443 > length then return false end
local var46445 = P[var46442]
if 0 > var46445 then goto L27339 end
if var2 > length then return false end
if var46441 ~= 2048 then goto L27339 end
if var46443 > length then return false end
if 0 > var46445 then goto L27339 end
local var46455 = (14 + 9)
local var46456 = (var46455 + 1)
if var46456 > length then return false end
local var46458 = P[var46455]
if var46458 ~= 6 then goto L27339 end
if var2 > length then return false end
if var46441 ~= 2048 then goto L27339 end
if var46443 > length then return false end
if 0 > var46445 then goto L27339 end
local var46468 = (14 + 39)
local var46469 = (var46468 + 1)
if var46469 > length then return false end
local var46471 = P[var46468]
if 0 > var46471 then goto L27339 end
if var2 > length then return false end
if var46441 ~= 2048 then goto L27339 end
if var46443 > length then return false end
if 0 > var46445 then goto L27339 end
local var46481 = (14 + 6)
local var46482 = (var46481 + 2)
if var46482 > length then return false end
local var46487 = (band(rshift(bswap(cast("uint16_t*", P+var46481)[0]), 16),8191) % 4294967296)
if var46487 ~= 0 then goto L27339 end
if var2 > length then return false end
if var46441 ~= 2048 then goto L27339 end
if var46443 > length then return false end
if 0 > var46445 then goto L27339 end
if var2 > length then return false end
if var46441 ~= 2048 then goto L27339 end
if var46443 > length then return false end
if 0 > var46445 then goto L27339 end
if var46456 > length then return false end
if var46458 ~= 6 then goto L27339 end
if var2 > length then return false end
if var46441 ~= 2048 then goto L27339 end
if var46443 > length then return false end
if 0 > var46445 then goto L27339 end
if var46469 > length then return false end
if 0 > var46471 then goto L27339 end
if var2 > length then return false end
if var46441 ~= 2048 then goto L27339 end
if var46443 > length then return false end
if 0 > var46445 then goto L27339 end
if var46482 > length then return false end
if var46487 ~= 0 then goto L27339 end
local var46542 = (lshift(band(P[14],15),2) + 14)
local var46543 = (var46542 + 24)
if (var46543 + 1) > length then return false end
local var46557 = (var46542 + ((23 + P[var46543]) % 4294967296))
if (var46557 + 1) > length then return false end
if P[var46557] == 1 then goto L27339 end
if var2 > length then return false end
local var46577 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var46577 ~= 2048 then goto L27339 end
local var46578 = (14 + 19)
local var46579 = (var46578 + 1)
if var46579 > length then return false end
local var46581 = P[var46578]
if 0 > var46581 then goto L27339 end
if var2 > length then return false end
if var46577 ~= 2048 then goto L27339 end
if var46579 > length then return false end
if 0 > var46581 then goto L27339 end
local var46591 = (14 + 9)
local var46592 = (var46591 + 1)
if var46592 > length then return false end
local var46594 = P[var46591]
if var46594 ~= 6 then goto L27339 end
if var2 > length then return false end
if var46577 ~= 2048 then goto L27339 end
if var46579 > length then return false end
if 0 > var46581 then goto L27339 end
local var46604 = (14 + 39)
local var46605 = (var46604 + 1)
if var46605 > length then return false end
local var46607 = P[var46604]
if 0 > var46607 then goto L27339 end
if var2 > length then return false end
if var46577 ~= 2048 then goto L27339 end
if var46579 > length then return false end
if 0 > var46581 then goto L27339 end
local var46617 = (14 + 6)
local var46618 = (var46617 + 2)
if var46618 > length then return false end
local var46623 = (band(rshift(bswap(cast("uint16_t*", P+var46617)[0]), 16),8191) % 4294967296)
if var46623 ~= 0 then goto L27339 end
if var2 > length then return false end
if var46577 ~= 2048 then goto L27339 end
if var46579 > length then return false end
if 0 > var46581 then goto L27339 end
if var2 > length then return false end
if var46577 ~= 2048 then goto L27339 end
if var46579 > length then return false end
if 0 > var46581 then goto L27339 end
if var46592 > length then return false end
if var46594 ~= 6 then goto L27339 end
if var2 > length then return false end
if var46577 ~= 2048 then goto L27339 end
if var46579 > length then return false end
if 0 > var46581 then goto L27339 end
if var46605 > length then return false end
if 0 > var46607 then goto L27339 end
if var2 > length then return false end
if var46577 ~= 2048 then goto L27339 end
if var46579 > length then return false end
if 0 > var46581 then goto L27339 end
if var46618 > length then return false end
if var46623 ~= 0 then goto L27339 end
local var46678 = (lshift(band(P[14],15),2) + 14)
local var46679 = (var46678 + 24)
local var46680 = (var46679 + 1)
if var46680 > length then return false end
if var2 > length then return false end
if var46577 ~= 2048 then goto L27339 end
if var46579 > length then return false end
if 0 > var46581 then goto L27339 end
if var2 > length then return false end
if var46577 ~= 2048 then goto L27339 end
if var46579 > length then return false end
if 0 > var46581 then goto L27339 end
if var46592 > length then return false end
if var46594 ~= 6 then goto L27339 end
if var2 > length then return false end
if var46577 ~= 2048 then goto L27339 end
if var46579 > length then return false end
if 0 > var46581 then goto L27339 end
if var46605 > length then return false end
if 0 > var46607 then goto L27339 end
if var2 > length then return false end
if var46577 ~= 2048 then goto L27339 end
if var46579 > length then return false end
if 0 > var46581 then goto L27339 end
if var46618 > length then return false end
if var46623 ~= 0 then goto L27339 end
if var2 > length then return false end
if var46577 ~= 2048 then goto L27339 end
if var46579 > length then return false end
if 0 > var46581 then goto L27339 end
if var2 > length then return false end
if var46577 ~= 2048 then goto L27339 end
if var46579 > length then return false end
if 0 > var46581 then goto L27339 end
if var46592 > length then return false end
if var46594 ~= 6 then goto L27339 end
if var2 > length then return false end
if var46577 ~= 2048 then goto L27339 end
if var46579 > length then return false end
if 0 > var46581 then goto L27339 end
if var46605 > length then return false end
if 0 > var46607 then goto L27339 end
if var2 > length then return false end
if var46577 ~= 2048 then goto L27339 end
if var46579 > length then return false end
if 0 > var46581 then goto L27339 end
if var46618 > length then return false end
if var46623 ~= 0 then goto L27339 end
if var46680 > length then return false end
local var46800 = ((23 + P[var46679]) % 4294967296)
local var46803 = (var46678 + ((var46800 + 1) % 4294967296))
if (var46803 + 1) > length then return false end
local var46835 = (var46678 + ((var46800 + P[var46803]) % 4294967296))
if (var46835 + 1) > length then return false end
if P[var46835] == 3 then return true end
goto L27339
end
::L27339::
if var2 > length then return false end
local var46873 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var46873 ~= 2048 then goto L27241 end
local var46874 = (14 + 19)
local var46875 = (var46874 + 1)
if var46875 > length then return false end
local var46877 = P[var46874]
if 0 > var46877 then goto L27241 end
if var2 > length then return false end
if var46873 ~= 2048 then goto L27241 end
if var46875 > length then return false end
if 0 > var46877 then goto L27241 end
local var46887 = (14 + 9)
local var46888 = (var46887 + 1)
if var46888 > length then return false end
local var46890 = P[var46887]
if var46890 ~= 6 then goto L27241 end
if var2 > length then return false end
if var46873 ~= 2048 then goto L27241 end
if var46875 > length then return false end
if 0 > var46877 then goto L27241 end
local var46900 = (14 + 39)
local var46901 = (var46900 + 1)
if var46901 > length then return false end
local var46903 = P[var46900]
if 0 > var46903 then goto L27241 end
if var2 > length then return false end
if var46873 ~= 2048 then goto L27241 end
if var46875 > length then return false end
if 0 > var46877 then goto L27241 end
local var46913 = (14 + 6)
local var46914 = (var46913 + 2)
if var46914 > length then return false end
local var46919 = (band(rshift(bswap(cast("uint16_t*", P+var46913)[0]), 16),8191) % 4294967296)
if var46919 ~= 0 then goto L27241 end
if var2 > length then return false end
if var46873 ~= 2048 then goto L27241 end
if var46875 > length then return false end
if 0 > var46877 then goto L27241 end
if var2 > length then return false end
if var46873 ~= 2048 then goto L27241 end
if var46875 > length then return false end
if 0 > var46877 then goto L27241 end
if var46888 > length then return false end
if var46890 ~= 6 then goto L27241 end
if var2 > length then return false end
if var46873 ~= 2048 then goto L27241 end
if var46875 > length then return false end
if 0 > var46877 then goto L27241 end
if var46901 > length then return false end
if 0 > var46903 then goto L27241 end
if var2 > length then return false end
if var46873 ~= 2048 then goto L27241 end
if var46875 > length then return false end
if 0 > var46877 then goto L27241 end
if var46914 > length then return false end
if var46919 ~= 0 then goto L27241 end
local var46974 = (lshift(band(P[14],15),2) + 14)
local var46975 = (var46974 + 24)
if (var46975 + 1) > length then return false end
local var46989 = (var46974 + ((23 + P[var46975]) % 4294967296))
if (var46989 + 1) > length then return false end
if P[var46989] ~= 1 then goto L27241 end
if var2 > length then return false end
local var47009 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var47009 ~= 2048 then goto L27241 end
local var47010 = (14 + 19)
local var47011 = (var47010 + 1)
if var47011 > length then return false end
local var47013 = P[var47010]
if 0 > var47013 then goto L27241 end
if var2 > length then return false end
if var47009 ~= 2048 then goto L27241 end
if var47011 > length then return false end
if 0 > var47013 then goto L27241 end
local var47023 = (14 + 9)
local var47024 = (var47023 + 1)
if var47024 > length then return false end
local var47026 = P[var47023]
if var47026 ~= 6 then goto L27241 end
if var2 > length then return false end
if var47009 ~= 2048 then goto L27241 end
if var47011 > length then return false end
if 0 > var47013 then goto L27241 end
local var47036 = (14 + 39)
local var47037 = (var47036 + 1)
if var47037 > length then return false end
local var47039 = P[var47036]
if 0 > var47039 then goto L27241 end
if var2 > length then return false end
if var47009 ~= 2048 then goto L27241 end
if var47011 > length then return false end
if 0 > var47013 then goto L27241 end
local var47049 = (14 + 6)
local var47050 = (var47049 + 2)
if var47050 > length then return false end
local var47055 = (band(rshift(bswap(cast("uint16_t*", P+var47049)[0]), 16),8191) % 4294967296)
if var47055 ~= 0 then goto L27241 end
if var2 > length then return false end
if var47009 ~= 2048 then goto L27241 end
if var47011 > length then return false end
if 0 > var47013 then goto L27241 end
if var2 > length then return false end
if var47009 ~= 2048 then goto L27241 end
if var47011 > length then return false end
if 0 > var47013 then goto L27241 end
if var47024 > length then return false end
if var47026 ~= 6 then goto L27241 end
if var2 > length then return false end
if var47009 ~= 2048 then goto L27241 end
if var47011 > length then return false end
if 0 > var47013 then goto L27241 end
if var47037 > length then return false end
if 0 > var47039 then goto L27241 end
if var2 > length then return false end
if var47009 ~= 2048 then goto L27241 end
if var47011 > length then return false end
if 0 > var47013 then goto L27241 end
if var47050 > length then return false end
if var47055 ~= 0 then goto L27241 end
local var47110 = (lshift(band(P[14],15),2) + 14)
local var47111 = (var47110 + 24)
if (var47111 + 1) > length then return false end
local var47127 = (var47110 + ((((23 + P[var47111]) % 4294967296) + 1) % 4294967296))
if (var47127 + 1) > length then return false end
if P[var47127] == 3 then return true end
goto L27241
end
::L27241::
if var2 > length then return false end
local var47149 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var47149 ~= 2048 then return false end
local var47150 = (14 + 19)
local var47151 = (var47150 + 1)
if var47151 > length then return false end
local var47153 = P[var47150]
if 0 > var47153 then return false end
if var2 > length then return false end
if var47149 ~= 2048 then return false end
if var47151 > length then return false end
if 0 > var47153 then return false end
local var47163 = (14 + 9)
if (var47163 + 1) > length then return false end
if P[var47163] ~= 6 then return false end
if var2 > length then return false end
if var47149 ~= 2048 then return false end
if var47151 > length then return false end
if 0 > var47153 then return false end
local var47176 = (14 + 39)
if (var47176 + 1) > length then return false end
if 0 > P[var47176] then return false end
if var2 > length then return false end
if var47149 ~= 2048 then return false end
if var47151 > length then return false end
if 0 > var47153 then return false end
local var47189 = (14 + 6)
if (var47189 + 2) > length then return false end
if (band(rshift(bswap(cast("uint16_t*", P+var47189)[0]), 16),8191) % 4294967296) ~= 0 then return false end
local var47200 = ((lshift(band(P[14],15),2) + 14) + 23)
if (var47200 + 1) > length then return false end
if P[var47200] ~= 1 then return false end
if var2 > length then return false end
local var47212 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var47212 ~= 2048 then goto L27949 end
do
local var47213 = (14 + 19)
local var47214 = (var47213 + 1)
if var47214 > length then return false end
local var47216 = P[var47213]
if 0 > var47216 then goto L27949 end
if var2 > length then return false end
if var47212 ~= 2048 then goto L27949 end
if var47214 > length then return false end
if 0 > var47216 then goto L27949 end
local var47226 = (14 + 9)
if (var47226 + 1) > length then return false end
if P[var47226] ~= 6 then goto L27949 end
if var2 > length then return false end
if var47212 ~= 2048 then goto L27949 end
if var47214 > length then return false end
if 0 > var47216 then goto L27949 end
local var47239 = (14 + 39)
if (var47239 + 1) > length then return false end
if 0 > P[var47239] then goto L27949 end
if var2 > length then return false end
if var47212 ~= 2048 then goto L27949 end
if var47214 > length then return false end
if 0 > var47216 then goto L27949 end
local var47252 = (14 + 6)
if (var47252 + 2) > length then return false end
if (band(rshift(bswap(cast("uint16_t*", P+var47252)[0]), 16),8191) % 4294967296) ~= 0 then goto L27949 end
local var47263 = ((lshift(band(P[14],15),2) + 14) + 24)
if (var47263 + 1) > length then return false end
if P[var47263] == 3 then return true end
goto L27949
end
::L27949::
if var2 > length then return false end
local var47275 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var47275 ~= 2048 then goto L27947 end
do
local var47276 = (14 + 19)
local var47277 = (var47276 + 1)
if var47277 > length then return false end
local var47279 = P[var47276]
if 0 > var47279 then goto L27947 end
if var2 > length then return false end
if var47275 ~= 2048 then goto L27947 end
if var47277 > length then return false end
if 0 > var47279 then goto L27947 end
local var47289 = (14 + 9)
if (var47289 + 1) > length then return false end
if P[var47289] ~= 6 then goto L27947 end
if var2 > length then return false end
if var47275 ~= 2048 then goto L27947 end
if var47277 > length then return false end
if 0 > var47279 then goto L27947 end
local var47302 = (14 + 39)
if (var47302 + 1) > length then return false end
if 0 > P[var47302] then goto L27947 end
if var2 > length then return false end
if var47275 ~= 2048 then goto L27947 end
if var47277 > length then return false end
if 0 > var47279 then goto L27947 end
local var47315 = (14 + 6)
if (var47315 + 2) > length then return false end
if (band(rshift(bswap(cast("uint16_t*", P+var47315)[0]), 16),8191) % 4294967296) ~= 0 then goto L27947 end
local var47326 = ((lshift(band(P[14],15),2) + 14) + 24)
if (var47326 + 1) > length then return false end
if P[var47326] == 1 then goto L27947 end
if var2 > length then return false end
local var47338 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var47338 ~= 2048 then goto L27947 end
local var47339 = (14 + 19)
local var47340 = (var47339 + 1)
if var47340 > length then return false end
local var47342 = P[var47339]
if 0 > var47342 then goto L27947 end
if var2 > length then return false end
if var47338 ~= 2048 then goto L27947 end
if var47340 > length then return false end
if 0 > var47342 then goto L27947 end
local var47352 = (14 + 9)
local var47353 = (var47352 + 1)
if var47353 > length then return false end
local var47355 = P[var47352]
if var47355 ~= 6 then goto L27947 end
if var2 > length then return false end
if var47338 ~= 2048 then goto L27947 end
if var47340 > length then return false end
if 0 > var47342 then goto L27947 end
local var47365 = (14 + 39)
local var47366 = (var47365 + 1)
if var47366 > length then return false end
local var47368 = P[var47365]
if 0 > var47368 then goto L27947 end
if var2 > length then return false end
if var47338 ~= 2048 then goto L27947 end
if var47340 > length then return false end
if 0 > var47342 then goto L27947 end
local var47378 = (14 + 6)
local var47379 = (var47378 + 2)
if var47379 > length then return false end
local var47384 = (band(rshift(bswap(cast("uint16_t*", P+var47378)[0]), 16),8191) % 4294967296)
if var47384 ~= 0 then goto L27947 end
if var2 > length then return false end
if var47338 ~= 2048 then goto L27947 end
if var47340 > length then return false end
if 0 > var47342 then goto L27947 end
if var2 > length then return false end
if var47338 ~= 2048 then goto L27947 end
if var47340 > length then return false end
if 0 > var47342 then goto L27947 end
if var47353 > length then return false end
if var47355 ~= 6 then goto L27947 end
if var2 > length then return false end
if var47338 ~= 2048 then goto L27947 end
if var47340 > length then return false end
if 0 > var47342 then goto L27947 end
if var47366 > length then return false end
if 0 > var47368 then goto L27947 end
if var2 > length then return false end
if var47338 ~= 2048 then goto L27947 end
if var47340 > length then return false end
if 0 > var47342 then goto L27947 end
if var47379 > length then return false end
if var47384 ~= 0 then goto L27947 end
local var47439 = (lshift(band(P[14],15),2) + 14)
local var47440 = (var47439 + 25)
if (var47440 + 1) > length then return false end
local var47454 = (var47439 + ((24 + P[var47440]) % 4294967296))
if (var47454 + 1) > length then return false end
if P[var47454] == 3 then return true end
goto L27947
end
::L27947::
if var2 > length then return false end
local var47474 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var47474 ~= 2048 then return false end
local var47475 = (14 + 19)
local var47476 = (var47475 + 1)
if var47476 > length then return false end
local var47478 = P[var47475]
if 0 > var47478 then return false end
if var2 > length then return false end
if var47474 ~= 2048 then return false end
if var47476 > length then return false end
if 0 > var47478 then return false end
local var47488 = (14 + 9)
if (var47488 + 1) > length then return false end
if P[var47488] ~= 6 then return false end
if var2 > length then return false end
if var47474 ~= 2048 then return false end
if var47476 > length then return false end
if 0 > var47478 then return false end
local var47501 = (14 + 39)
if (var47501 + 1) > length then return false end
if 0 > P[var47501] then return false end
if var2 > length then return false end
if var47474 ~= 2048 then return false end
if var47476 > length then return false end
if 0 > var47478 then return false end
local var47514 = (14 + 6)
if (var47514 + 2) > length then return false end
if (band(rshift(bswap(cast("uint16_t*", P+var47514)[0]), 16),8191) % 4294967296) ~= 0 then return false end
local var47525 = ((lshift(band(P[14],15),2) + 14) + 24)
if (var47525 + 1) > length then return false end
if P[var47525] ~= 1 then return false end
if var2 > length then return false end
local var47537 = rshift(bswap(cast("uint16_t*", P+var1)[0]), 16)
if var47537 ~= 2048 then return false end
local var47538 = (14 + 19)
local var47539 = (var47538 + 1)
if var47539 > length then return false end
local var47541 = P[var47538]
if 0 > var47541 then return false end
if var2 > length then return false end
if var47537 ~= 2048 then return false end
if var47539 > length then return false end
if 0 > var47541 then return false end
local var47551 = (14 + 9)
if (var47551 + 1) > length then return false end
if P[var47551] ~= 6 then return false end
if var2 > length then return false end
if var47537 ~= 2048 then return false end
if var47539 > length then return false end
if 0 > var47541 then return false end
local var47564 = (14 + 39)
if (var47564 + 1) > length then return false end
if 0 > P[var47564] then return false end
if var2 > length then return false end
if var47537 ~= 2048 then return false end
if var47539 > length then return false end
if 0 > var47541 then return false end
local var47577 = (14 + 6)
if (var47577 + 2) > length then return false end
if (band(rshift(bswap(cast("uint16_t*", P+var47577)[0]), 16),8191) % 4294967296) ~= 0 then return false end
local var47588 = ((lshift(band(P[14],15),2) + 14) + 25)
if (var47588 + 1) > length then return false end
return P[var47588] == 3
end
::L7::
return false
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment