zlib-asm
Version:
zlib for asm.js.
1,679 lines (1,674 loc) • 237 kB
JavaScript
Module["asm"] = (function(global,env,buffer) {
"use asm";
var a = new global.Int8Array(buffer);
var b = new global.Int16Array(buffer);
var c = new global.Int32Array(buffer);
var d = new global.Uint8Array(buffer);
var e = new global.Uint16Array(buffer);
var f = new global.Uint32Array(buffer);
var g = new global.Float32Array(buffer);
var h = new global.Float64Array(buffer);
var i = env.STACKTOP | 0;
var j = env.STACK_MAX | 0;
var k = env.tempDoublePtr | 0;
var l = env.ABORT | 0;
var m = 0;
var n = 0;
var o = 0;
var p = 0;
var q = global.NaN, r = global.Infinity;
var s = 0, t = 0, u = 0, v = 0, w = 0.0, x = 0, y = 0, z = 0, A = 0.0;
var B = 0;
var C = 0;
var D = 0;
var E = 0;
var F = 0;
var G = 0;
var H = 0;
var I = 0;
var J = 0;
var K = 0;
var L = global.Math.floor;
var M = global.Math.abs;
var N = global.Math.sqrt;
var O = global.Math.pow;
var P = global.Math.cos;
var Q = global.Math.sin;
var R = global.Math.tan;
var S = global.Math.acos;
var T = global.Math.asin;
var U = global.Math.atan;
var V = global.Math.atan2;
var W = global.Math.exp;
var X = global.Math.log;
var Y = global.Math.ceil;
var Z = global.Math.imul;
var _ = global.Math.min;
var $ = global.Math.clz32;
var aa = env.abort;
var ba = env.assert;
var ca = env.invoke_iiii;
var da = env.invoke_vii;
var ea = env.invoke_iii;
var fa = env._sbrk;
var ga = env._emscripten_memcpy_big;
var ha = env._abort;
var ia = env._emscripten_asm_const_iiii;
var ja = 0.0;
// EMSCRIPTEN_START_FUNCS
function Xa(f, g) {
f = f | 0;
g = g | 0;
var h = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0;
D = i;
i = i + 80 | 0;
w = D + 60 | 0;
x = D + 56 | 0;
y = D + 52 | 0;
C = D + 48 | 0;
t = D + 44 | 0;
u = D + 40 | 0;
m = D + 36 | 0;
r = D + 32 | 0;
p = D + 28 | 0;
j = D + 24 | 0;
z = D + 20 | 0;
A = D + 16 | 0;
k = D + 12 | 0;
l = D + 8 | 0;
o = D + 68 | 0;
q = D + 64 | 0;
s = D + 4 | 0;
B = D;
n = D + 72 | 0;
c[x >> 2] = f;
c[y >> 2] = g;
do if (c[x >> 2] | 0) if (c[(c[x >> 2] | 0) + 28 >> 2] | 0) if (c[(c[x >> 2] | 0) + 12 >> 2] | 0) {
if (!(c[c[x >> 2] >> 2] | 0)) if (c[(c[x >> 2] | 0) + 4 >> 2] | 0) break;
c[C >> 2] = c[(c[x >> 2] | 0) + 28 >> 2];
if ((c[c[C >> 2] >> 2] | 0) == 11) c[c[C >> 2] >> 2] = 12;
c[u >> 2] = c[(c[x >> 2] | 0) + 12 >> 2];
c[r >> 2] = c[(c[x >> 2] | 0) + 16 >> 2];
c[t >> 2] = c[c[x >> 2] >> 2];
c[m >> 2] = c[(c[x >> 2] | 0) + 4 >> 2];
c[p >> 2] = c[(c[C >> 2] | 0) + 56 >> 2];
c[j >> 2] = c[(c[C >> 2] | 0) + 60 >> 2];
c[z >> 2] = c[m >> 2];
c[A >> 2] = c[r >> 2];
c[B >> 2] = 0;
a : while (1) {
b : do switch (c[c[C >> 2] >> 2] | 0) {
case 28:
{
v = 302;
break a;
}
case 29:
{
v = 303;
break a;
}
case 30:
{
v = 304;
break a;
}
case 0:
{
if (!(c[(c[C >> 2] | 0) + 8 >> 2] | 0)) {
c[c[C >> 2] >> 2] = 12;
continue a;
}
while (1) {
if ((c[j >> 2] | 0) >>> 0 >= 16) break;
if (!(c[m >> 2] | 0)) break a;
c[m >> 2] = (c[m >> 2] | 0) + -1;
h = c[t >> 2] | 0;
c[t >> 2] = h + 1;
c[p >> 2] = (c[p >> 2] | 0) + ((d[h >> 0] | 0) << c[j >> 2]);
c[j >> 2] = (c[j >> 2] | 0) + 8;
}
if ((c[p >> 2] | 0) == 35615 ? (c[(c[C >> 2] | 0) + 8 >> 2] & 2 | 0) != 0 : 0) {
h = yb(0, 0, 0) | 0;
c[(c[C >> 2] | 0) + 24 >> 2] = h;
a[n >> 0] = c[p >> 2];
a[n + 1 >> 0] = (c[p >> 2] | 0) >>> 8;
h = yb(c[(c[C >> 2] | 0) + 24 >> 2] | 0, n, 2) | 0;
c[(c[C >> 2] | 0) + 24 >> 2] = h;
c[p >> 2] = 0;
c[j >> 2] = 0;
c[c[C >> 2] >> 2] = 1;
continue a;
}
c[(c[C >> 2] | 0) + 16 >> 2] = 0;
if (c[(c[C >> 2] | 0) + 32 >> 2] | 0) c[(c[(c[C >> 2] | 0) + 32 >> 2] | 0) + 48 >> 2] = -1;
if (c[(c[C >> 2] | 0) + 8 >> 2] & 1 | 0) if (!(((((c[p >> 2] & 255) << 8) + ((c[p >> 2] | 0) >>> 8) | 0) >>> 0) % 31 | 0)) {
if ((c[p >> 2] & 15 | 0) != 8) {
c[(c[x >> 2] | 0) + 24 >> 2] = 13811;
c[c[C >> 2] >> 2] = 29;
continue a;
}
c[p >> 2] = (c[p >> 2] | 0) >>> 4;
c[j >> 2] = (c[j >> 2] | 0) - 4;
c[s >> 2] = (c[p >> 2] & 15) + 8;
g = c[s >> 2] | 0;
f = (c[C >> 2] | 0) + 36 | 0;
if (!(c[(c[C >> 2] | 0) + 36 >> 2] | 0)) c[f >> 2] = g; else if (g >>> 0 > (c[f >> 2] | 0) >>> 0) {
c[(c[x >> 2] | 0) + 24 >> 2] = 13838;
c[c[C >> 2] >> 2] = 29;
continue a;
}
c[(c[C >> 2] | 0) + 20 >> 2] = 1 << c[s >> 2];
h = xb(0, 0, 0) | 0;
c[(c[C >> 2] | 0) + 24 >> 2] = h;
c[(c[x >> 2] | 0) + 48 >> 2] = h;
c[c[C >> 2] >> 2] = c[p >> 2] & 512 | 0 ? 9 : 11;
c[p >> 2] = 0;
c[j >> 2] = 0;
continue a;
}
c[(c[x >> 2] | 0) + 24 >> 2] = 13788;
c[c[C >> 2] >> 2] = 29;
continue a;
}
case 1:
{
while (1) {
if ((c[j >> 2] | 0) >>> 0 >= 16) break;
if (!(c[m >> 2] | 0)) break a;
c[m >> 2] = (c[m >> 2] | 0) + -1;
h = c[t >> 2] | 0;
c[t >> 2] = h + 1;
c[p >> 2] = (c[p >> 2] | 0) + ((d[h >> 0] | 0) << c[j >> 2]);
c[j >> 2] = (c[j >> 2] | 0) + 8;
}
c[(c[C >> 2] | 0) + 16 >> 2] = c[p >> 2];
if ((c[(c[C >> 2] | 0) + 16 >> 2] & 255 | 0) != 8) {
c[(c[x >> 2] | 0) + 24 >> 2] = 13811;
c[c[C >> 2] >> 2] = 29;
continue a;
}
if (c[(c[C >> 2] | 0) + 16 >> 2] & 57344 | 0) {
c[(c[x >> 2] | 0) + 24 >> 2] = 13858;
c[c[C >> 2] >> 2] = 29;
continue a;
}
if (c[(c[C >> 2] | 0) + 32 >> 2] | 0) c[c[(c[C >> 2] | 0) + 32 >> 2] >> 2] = (c[p >> 2] | 0) >>> 8 & 1;
if (c[(c[C >> 2] | 0) + 16 >> 2] & 512 | 0) {
a[n >> 0] = c[p >> 2];
a[n + 1 >> 0] = (c[p >> 2] | 0) >>> 8;
v = yb(c[(c[C >> 2] | 0) + 24 >> 2] | 0, n, 2) | 0;
c[(c[C >> 2] | 0) + 24 >> 2] = v;
}
c[p >> 2] = 0;
c[j >> 2] = 0;
c[c[C >> 2] >> 2] = 2;
v = 42;
break;
}
case 2:
{
v = 42;
break;
}
case 3:
{
v = 50;
break;
}
case 4:
{
v = 58;
break;
}
case 5:
{
v = 70;
break;
}
case 6:
{
v = 85;
break;
}
case 7:
{
v = 100;
break;
}
case 8:
{
v = 115;
break;
}
case 9:
{
while (1) {
if ((c[j >> 2] | 0) >>> 0 >= 32) break;
if (!(c[m >> 2] | 0)) break a;
c[m >> 2] = (c[m >> 2] | 0) + -1;
h = c[t >> 2] | 0;
c[t >> 2] = h + 1;
c[p >> 2] = (c[p >> 2] | 0) + ((d[h >> 0] | 0) << c[j >> 2]);
c[j >> 2] = (c[j >> 2] | 0) + 8;
}
v = ((c[p >> 2] | 0) >>> 24 & 255) + ((c[p >> 2] | 0) >>> 8 & 65280) + ((c[p >> 2] & 65280) << 8) + ((c[p >> 2] & 255) << 24) | 0;
c[(c[C >> 2] | 0) + 24 >> 2] = v;
c[(c[x >> 2] | 0) + 48 >> 2] = v;
c[p >> 2] = 0;
c[j >> 2] = 0;
c[c[C >> 2] >> 2] = 10;
v = 129;
break;
}
case 10:
{
v = 129;
break;
}
case 11:
{
v = 132;
break;
}
case 12:
{
v = 133;
break;
}
case 13:
{
c[p >> 2] = (c[p >> 2] | 0) >>> (c[j >> 2] & 7);
c[j >> 2] = (c[j >> 2] | 0) - (c[j >> 2] & 7);
while (1) {
if ((c[j >> 2] | 0) >>> 0 >= 32) break;
if (!(c[m >> 2] | 0)) break a;
c[m >> 2] = (c[m >> 2] | 0) + -1;
h = c[t >> 2] | 0;
c[t >> 2] = h + 1;
c[p >> 2] = (c[p >> 2] | 0) + ((d[h >> 0] | 0) << c[j >> 2]);
c[j >> 2] = (c[j >> 2] | 0) + 8;
}
if ((c[p >> 2] & 65535 | 0) != ((c[p >> 2] | 0) >>> 16 ^ 65535 | 0)) {
c[(c[x >> 2] | 0) + 24 >> 2] = 13922;
c[c[C >> 2] >> 2] = 29;
continue a;
} else {
c[(c[C >> 2] | 0) + 64 >> 2] = c[p >> 2] & 65535;
c[p >> 2] = 0;
c[j >> 2] = 0;
c[c[C >> 2] >> 2] = 14;
if ((c[y >> 2] | 0) == 6) break a; else {
v = 153;
break b;
}
}
}
case 14:
{
v = 153;
break;
}
case 15:
{
v = 154;
break;
}
case 16:
{
while (1) {
if ((c[j >> 2] | 0) >>> 0 >= 14) break;
if (!(c[m >> 2] | 0)) break a;
c[m >> 2] = (c[m >> 2] | 0) + -1;
h = c[t >> 2] | 0;
c[t >> 2] = h + 1;
c[p >> 2] = (c[p >> 2] | 0) + ((d[h >> 0] | 0) << c[j >> 2]);
c[j >> 2] = (c[j >> 2] | 0) + 8;
}
c[(c[C >> 2] | 0) + 96 >> 2] = (c[p >> 2] & 31) + 257;
c[p >> 2] = (c[p >> 2] | 0) >>> 5;
c[j >> 2] = (c[j >> 2] | 0) - 5;
c[(c[C >> 2] | 0) + 100 >> 2] = (c[p >> 2] & 31) + 1;
c[p >> 2] = (c[p >> 2] | 0) >>> 5;
c[j >> 2] = (c[j >> 2] | 0) - 5;
c[(c[C >> 2] | 0) + 92 >> 2] = (c[p >> 2] & 15) + 4;
c[p >> 2] = (c[p >> 2] | 0) >>> 4;
c[j >> 2] = (c[j >> 2] | 0) - 4;
if ((c[(c[C >> 2] | 0) + 96 >> 2] | 0) >>> 0 <= 286) if ((c[(c[C >> 2] | 0) + 100 >> 2] | 0) >>> 0 <= 30) {
c[(c[C >> 2] | 0) + 104 >> 2] = 0;
c[c[C >> 2] >> 2] = 17;
v = 169;
break b;
}
c[(c[x >> 2] | 0) + 24 >> 2] = 13951;
c[c[C >> 2] >> 2] = 29;
continue a;
}
case 17:
{
v = 169;
break;
}
case 18:
{
v = 179;
break;
}
case 19:
{
v = 213;
break;
}
case 20:
{
v = 214;
break;
}
case 21:
{
v = 235;
break;
}
case 22:
{
v = 241;
break;
}
case 23:
{
v = 253;
break;
}
case 24:
break;
case 25:
{
if (!(c[r >> 2] | 0)) break a;
f = c[(c[C >> 2] | 0) + 64 >> 2] & 255;
h = c[u >> 2] | 0;
c[u >> 2] = h + 1;
a[h >> 0] = f;
c[r >> 2] = (c[r >> 2] | 0) + -1;
c[c[C >> 2] >> 2] = 20;
continue a;
}
case 26:
{
do if (c[(c[C >> 2] | 0) + 8 >> 2] | 0) {
while (1) {
if ((c[j >> 2] | 0) >>> 0 >= 32) break;
if (!(c[m >> 2] | 0)) break a;
c[m >> 2] = (c[m >> 2] | 0) + -1;
h = c[t >> 2] | 0;
c[t >> 2] = h + 1;
c[p >> 2] = (c[p >> 2] | 0) + ((d[h >> 0] | 0) << c[j >> 2]);
c[j >> 2] = (c[j >> 2] | 0) + 8;
}
c[A >> 2] = (c[A >> 2] | 0) - (c[r >> 2] | 0);
h = (c[x >> 2] | 0) + 20 | 0;
c[h >> 2] = (c[h >> 2] | 0) + (c[A >> 2] | 0);
h = (c[C >> 2] | 0) + 28 | 0;
c[h >> 2] = (c[h >> 2] | 0) + (c[A >> 2] | 0);
if (c[A >> 2] | 0) {
g = c[(c[C >> 2] | 0) + 24 >> 2] | 0;
f = (c[u >> 2] | 0) + (0 - (c[A >> 2] | 0)) | 0;
h = c[A >> 2] | 0;
if (c[(c[C >> 2] | 0) + 16 >> 2] | 0) g = yb(g, f, h) | 0; else g = xb(g, f, h) | 0;
c[(c[C >> 2] | 0) + 24 >> 2] = g;
c[(c[x >> 2] | 0) + 48 >> 2] = g;
}
c[A >> 2] = c[r >> 2];
g = c[p >> 2] | 0;
if (!(c[(c[C >> 2] | 0) + 16 >> 2] | 0)) g = (g >>> 24 & 255) + ((c[p >> 2] | 0) >>> 8 & 65280) + ((c[p >> 2] & 65280) << 8) + ((c[p >> 2] & 255) << 24) | 0;
if ((g | 0) != (c[(c[C >> 2] | 0) + 24 >> 2] | 0)) {
c[(c[x >> 2] | 0) + 24 >> 2] = 14125;
c[c[C >> 2] >> 2] = 29;
continue a;
} else {
c[p >> 2] = 0;
c[j >> 2] = 0;
break;
}
} while (0);
c[c[C >> 2] >> 2] = 27;
v = 293;
break;
}
case 27:
{
v = 293;
break;
}
default:
{
v = 305;
break a;
}
} while (0);
do if ((v | 0) == 42) {
while (1) {
v = 0;
if ((c[j >> 2] | 0) >>> 0 >= 32) break;
if (!(c[m >> 2] | 0)) break a;
c[m >> 2] = (c[m >> 2] | 0) + -1;
v = c[t >> 2] | 0;
c[t >> 2] = v + 1;
c[p >> 2] = (c[p >> 2] | 0) + ((d[v >> 0] | 0) << c[j >> 2]);
c[j >> 2] = (c[j >> 2] | 0) + 8;
v = 42;
}
if (c[(c[C >> 2] | 0) + 32 >> 2] | 0) c[(c[(c[C >> 2] | 0) + 32 >> 2] | 0) + 4 >> 2] = c[p >> 2];
if (c[(c[C >> 2] | 0) + 16 >> 2] & 512 | 0) {
a[n >> 0] = c[p >> 2];
a[n + 1 >> 0] = (c[p >> 2] | 0) >>> 8;
a[n + 2 >> 0] = (c[p >> 2] | 0) >>> 16;
a[n + 3 >> 0] = (c[p >> 2] | 0) >>> 24;
v = yb(c[(c[C >> 2] | 0) + 24 >> 2] | 0, n, 4) | 0;
c[(c[C >> 2] | 0) + 24 >> 2] = v;
}
c[p >> 2] = 0;
c[j >> 2] = 0;
c[c[C >> 2] >> 2] = 3;
v = 50;
} else if ((v | 0) == 129) {
if (!(c[(c[C >> 2] | 0) + 12 >> 2] | 0)) {
v = 130;
break a;
}
v = xb(0, 0, 0) | 0;
c[(c[C >> 2] | 0) + 24 >> 2] = v;
c[(c[x >> 2] | 0) + 48 >> 2] = v;
c[c[C >> 2] >> 2] = 11;
v = 132;
} else if ((v | 0) == 153) {
c[c[C >> 2] >> 2] = 15;
v = 154;
} else if ((v | 0) == 169) {
while (1) {
v = 0;
if ((c[(c[C >> 2] | 0) + 104 >> 2] | 0) >>> 0 >= (c[(c[C >> 2] | 0) + 92 >> 2] | 0) >>> 0) break;
while (1) {
if ((c[j >> 2] | 0) >>> 0 >= 3) break;
if (!(c[m >> 2] | 0)) break a;
c[m >> 2] = (c[m >> 2] | 0) + -1;
h = c[t >> 2] | 0;
c[t >> 2] = h + 1;
c[p >> 2] = (c[p >> 2] | 0) + ((d[h >> 0] | 0) << c[j >> 2]);
c[j >> 2] = (c[j >> 2] | 0) + 8;
}
h = c[p >> 2] & 7;
f = (c[C >> 2] | 0) + 104 | 0;
v = c[f >> 2] | 0;
c[f >> 2] = v + 1;
b[(c[C >> 2] | 0) + 112 + ((e[12160 + (v << 1) >> 1] | 0) << 1) >> 1] = h;
c[p >> 2] = (c[p >> 2] | 0) >>> 3;
c[j >> 2] = (c[j >> 2] | 0) - 3;
v = 169;
}
while (1) {
g = c[C >> 2] | 0;
if ((c[(c[C >> 2] | 0) + 104 >> 2] | 0) >>> 0 >= 19) break;
f = g + 104 | 0;
h = c[f >> 2] | 0;
c[f >> 2] = h + 1;
b[(c[C >> 2] | 0) + 112 + ((e[12160 + (h << 1) >> 1] | 0) << 1) >> 1] = 0;
}
c[(c[C >> 2] | 0) + 108 >> 2] = g + 1328;
c[(c[C >> 2] | 0) + 76 >> 2] = c[(c[C >> 2] | 0) + 108 >> 2];
c[(c[C >> 2] | 0) + 84 >> 2] = 7;
c[B >> 2] = $a(0, (c[C >> 2] | 0) + 112 | 0, 19, (c[C >> 2] | 0) + 108 | 0, (c[C >> 2] | 0) + 84 | 0, (c[C >> 2] | 0) + 752 | 0) | 0;
if (c[B >> 2] | 0) {
c[(c[x >> 2] | 0) + 24 >> 2] = 13987;
c[c[C >> 2] >> 2] = 29;
continue a;
} else {
c[(c[C >> 2] | 0) + 104 >> 2] = 0;
c[c[C >> 2] >> 2] = 18;
v = 179;
break;
}
} else if ((v | 0) == 293) {
v = 0;
if (!(c[(c[C >> 2] | 0) + 8 >> 2] | 0)) {
v = 301;
break a;
}
if (!(c[(c[C >> 2] | 0) + 16 >> 2] | 0)) {
v = 301;
break a;
}
while (1) {
if ((c[j >> 2] | 0) >>> 0 >= 32) break;
if (!(c[m >> 2] | 0)) break a;
c[m >> 2] = (c[m >> 2] | 0) + -1;
h = c[t >> 2] | 0;
c[t >> 2] = h + 1;
c[p >> 2] = (c[p >> 2] | 0) + ((d[h >> 0] | 0) << c[j >> 2]);
c[j >> 2] = (c[j >> 2] | 0) + 8;
}
if ((c[p >> 2] | 0) == (c[(c[C >> 2] | 0) + 28 >> 2] | 0)) {
v = 300;
break a;
}
c[(c[x >> 2] | 0) + 24 >> 2] = 14146;
c[c[C >> 2] >> 2] = 29;
continue a;
} while (0);
do if ((v | 0) == 50) {
while (1) {
v = 0;
if ((c[j >> 2] | 0) >>> 0 >= 16) break;
if (!(c[m >> 2] | 0)) break a;
c[m >> 2] = (c[m >> 2] | 0) + -1;
v = c[t >> 2] | 0;
c[t >> 2] = v + 1;
c[p >> 2] = (c[p >> 2] | 0) + ((d[v >> 0] | 0) << c[j >> 2]);
c[j >> 2] = (c[j >> 2] | 0) + 8;
v = 50;
}
if (c[(c[C >> 2] | 0) + 32 >> 2] | 0) {
c[(c[(c[C >> 2] | 0) + 32 >> 2] | 0) + 8 >> 2] = c[p >> 2] & 255;
c[(c[(c[C >> 2] | 0) + 32 >> 2] | 0) + 12 >> 2] = (c[p >> 2] | 0) >>> 8;
}
if (c[(c[C >> 2] | 0) + 16 >> 2] & 512 | 0) {
a[n >> 0] = c[p >> 2];
a[n + 1 >> 0] = (c[p >> 2] | 0) >>> 8;
v = yb(c[(c[C >> 2] | 0) + 24 >> 2] | 0, n, 2) | 0;
c[(c[C >> 2] | 0) + 24 >> 2] = v;
}
c[p >> 2] = 0;
c[j >> 2] = 0;
c[c[C >> 2] >> 2] = 4;
v = 58;
} else if ((v | 0) == 132) {
v = 0;
if ((c[y >> 2] | 0) == 5 | (c[y >> 2] | 0) == 6) break a; else v = 133;
} else if ((v | 0) == 154) {
v = 0;
c[k >> 2] = c[(c[C >> 2] | 0) + 64 >> 2];
if (!(c[k >> 2] | 0)) {
c[c[C >> 2] >> 2] = 11;
continue a;
}
if ((c[k >> 2] | 0) >>> 0 > (c[m >> 2] | 0) >>> 0) c[k >> 2] = c[m >> 2];
if ((c[k >> 2] | 0) >>> 0 > (c[r >> 2] | 0) >>> 0) c[k >> 2] = c[r >> 2];
if (!(c[k >> 2] | 0)) break a;
Ib(c[u >> 2] | 0, c[t >> 2] | 0, c[k >> 2] | 0) | 0;
c[m >> 2] = (c[m >> 2] | 0) - (c[k >> 2] | 0);
c[t >> 2] = (c[t >> 2] | 0) + (c[k >> 2] | 0);
c[r >> 2] = (c[r >> 2] | 0) - (c[k >> 2] | 0);
c[u >> 2] = (c[u >> 2] | 0) + (c[k >> 2] | 0);
h = (c[C >> 2] | 0) + 64 | 0;
c[h >> 2] = (c[h >> 2] | 0) - (c[k >> 2] | 0);
continue a;
} else if ((v | 0) == 179) {
c : while (1) {
v = 0;
if ((c[(c[C >> 2] | 0) + 104 >> 2] | 0) >>> 0 >= ((c[(c[C >> 2] | 0) + 96 >> 2] | 0) + (c[(c[C >> 2] | 0) + 100 >> 2] | 0) | 0) >>> 0) break;
while (1) {
h = (c[(c[C >> 2] | 0) + 76 >> 2] | 0) + ((c[p >> 2] & (1 << c[(c[C >> 2] | 0) + 84 >> 2]) - 1) << 2) | 0;
b[o >> 1] = b[h >> 1] | 0;
b[o + 2 >> 1] = b[h + 2 >> 1] | 0;
if ((d[o + 1 >> 0] | 0) >>> 0 <= (c[j >> 2] | 0) >>> 0) break;
if (!(c[m >> 2] | 0)) break a;
c[m >> 2] = (c[m >> 2] | 0) + -1;
h = c[t >> 2] | 0;
c[t >> 2] = h + 1;
c[p >> 2] = (c[p >> 2] | 0) + ((d[h >> 0] | 0) << c[j >> 2]);
c[j >> 2] = (c[j >> 2] | 0) + 8;
}
if ((e[o + 2 >> 1] | 0 | 0) < 16) {
c[p >> 2] = (c[p >> 2] | 0) >>> (d[o + 1 >> 0] | 0);
c[j >> 2] = (c[j >> 2] | 0) - (d[o + 1 >> 0] | 0);
h = b[o + 2 >> 1] | 0;
f = (c[C >> 2] | 0) + 104 | 0;
v = c[f >> 2] | 0;
c[f >> 2] = v + 1;
b[(c[C >> 2] | 0) + 112 + (v << 1) >> 1] = h;
v = 179;
continue;
}
do if ((e[o + 2 >> 1] | 0 | 0) == 16) {
while (1) {
if ((c[j >> 2] | 0) >>> 0 >= ((d[o + 1 >> 0] | 0) + 2 | 0) >>> 0) break;
if (!(c[m >> 2] | 0)) break a;
c[m >> 2] = (c[m >> 2] | 0) + -1;
h = c[t >> 2] | 0;
c[t >> 2] = h + 1;
c[p >> 2] = (c[p >> 2] | 0) + ((d[h >> 0] | 0) << c[j >> 2]);
c[j >> 2] = (c[j >> 2] | 0) + 8;
}
c[p >> 2] = (c[p >> 2] | 0) >>> (d[o + 1 >> 0] | 0);
c[j >> 2] = (c[j >> 2] | 0) - (d[o + 1 >> 0] | 0);
if (!(c[(c[C >> 2] | 0) + 104 >> 2] | 0)) {
v = 190;
break c;
}
c[s >> 2] = e[(c[C >> 2] | 0) + 112 + ((c[(c[C >> 2] | 0) + 104 >> 2] | 0) - 1 << 1) >> 1];
c[k >> 2] = 3 + (c[p >> 2] & 3);
c[p >> 2] = (c[p >> 2] | 0) >>> 2;
c[j >> 2] = (c[j >> 2] | 0) - 2;
} else if ((e[o + 2 >> 1] | 0 | 0) == 17) {
while (1) {
if ((c[j >> 2] | 0) >>> 0 >= ((d[o + 1 >> 0] | 0) + 3 | 0) >>> 0) break;
if (!(c[m >> 2] | 0)) break a;
c[m >> 2] = (c[m >> 2] | 0) + -1;
h = c[t >> 2] | 0;
c[t >> 2] = h + 1;
c[p >> 2] = (c[p >> 2] | 0) + ((d[h >> 0] | 0) << c[j >> 2]);
c[j >> 2] = (c[j >> 2] | 0) + 8;
}
c[p >> 2] = (c[p >> 2] | 0) >>> (d[o + 1 >> 0] | 0);
c[j >> 2] = (c[j >> 2] | 0) - (d[o + 1 >> 0] | 0);
c[s >> 2] = 0;
c[k >> 2] = 3 + (c[p >> 2] & 7);
c[p >> 2] = (c[p >> 2] | 0) >>> 3;
c[j >> 2] = (c[j >> 2] | 0) - 3;
break;
} else {
while (1) {
if ((c[j >> 2] | 0) >>> 0 >= ((d[o + 1 >> 0] | 0) + 7 | 0) >>> 0) break;
if (!(c[m >> 2] | 0)) break a;
c[m >> 2] = (c[m >> 2] | 0) + -1;
h = c[t >> 2] | 0;
c[t >> 2] = h + 1;
c[p >> 2] = (c[p >> 2] | 0) + ((d[h >> 0] | 0) << c[j >> 2]);
c[j >> 2] = (c[j >> 2] | 0) + 8;
}
c[p >> 2] = (c[p >> 2] | 0) >>> (d[o + 1 >> 0] | 0);
c[j >> 2] = (c[j >> 2] | 0) - (d[o + 1 >> 0] | 0);
c[s >> 2] = 0;
c[k >> 2] = 11 + (c[p >> 2] & 127);
c[p >> 2] = (c[p >> 2] | 0) >>> 7;
c[j >> 2] = (c[j >> 2] | 0) - 7;
break;
} while (0);
if (((c[(c[C >> 2] | 0) + 104 >> 2] | 0) + (c[k >> 2] | 0) | 0) >>> 0 > ((c[(c[C >> 2] | 0) + 96 >> 2] | 0) + (c[(c[C >> 2] | 0) + 100 >> 2] | 0) | 0) >>> 0) {
v = 202;
break;
}
while (1) {
v = c[k >> 2] | 0;
c[k >> 2] = v + -1;
if (!v) {
v = 179;
continue c;
}
h = c[s >> 2] & 65535;
f = (c[C >> 2] | 0) + 104 | 0;
v = c[f >> 2] | 0;
c[f >> 2] = v + 1;
b[(c[C >> 2] | 0) + 112 + (v << 1) >> 1] = h;
}
}
if ((v | 0) == 190) {
v = 0;
c[(c[x >> 2] | 0) + 24 >> 2] = 14012;
c[c[C >> 2] >> 2] = 29;
} else if ((v | 0) == 202) {
v = 0;
c[(c[x >> 2] | 0) + 24 >> 2] = 14012;
c[c[C >> 2] >> 2] = 29;
}
if ((c[c[C >> 2] >> 2] | 0) == 29) continue a;
if (!(e[(c[C >> 2] | 0) + 112 + 512 >> 1] | 0)) {
c[(c[x >> 2] | 0) + 24 >> 2] = 14038;
c[c[C >> 2] >> 2] = 29;
continue a;
}
c[(c[C >> 2] | 0) + 108 >> 2] = (c[C >> 2] | 0) + 1328;
c[(c[C >> 2] | 0) + 76 >> 2] = c[(c[C >> 2] | 0) + 108 >> 2];
c[(c[C >> 2] | 0) + 84 >> 2] = 9;
c[B >> 2] = $a(1, (c[C >> 2] | 0) + 112 | 0, c[(c[C >> 2] | 0) + 96 >> 2] | 0, (c[C >> 2] | 0) + 108 | 0, (c[C >> 2] | 0) + 84 | 0, (c[C >> 2] | 0) + 752 | 0) | 0;
if (c[B >> 2] | 0) {
c[(c[x >> 2] | 0) + 24 >> 2] = 14075;
c[c[C >> 2] >> 2] = 29;
continue a;
}
c[(c[C >> 2] | 0) + 80 >> 2] = c[(c[C >> 2] | 0) + 108 >> 2];
c[(c[C >> 2] | 0) + 88 >> 2] = 6;
c[B >> 2] = $a(2, (c[C >> 2] | 0) + 112 + (c[(c[C >> 2] | 0) + 96 >> 2] << 1) | 0, c[(c[C >> 2] | 0) + 100 >> 2] | 0, (c[C >> 2] | 0) + 108 | 0, (c[C >> 2] | 0) + 88 | 0, (c[C >> 2] | 0) + 752 | 0) | 0;
if (c[B >> 2] | 0) {
c[(c[x >> 2] | 0) + 24 >> 2] = 14103;
c[c[C >> 2] >> 2] = 29;
continue a;
} else {
c[c[C >> 2] >> 2] = 19;
if ((c[y >> 2] | 0) == 6) break a; else {
v = 213;
break;
}
}
} while (0);
if ((v | 0) == 58) {
v = 0;
if (c[(c[C >> 2] | 0) + 16 >> 2] & 1024 | 0) {
while (1) {
if ((c[j >> 2] | 0) >>> 0 >= 16) break;
if (!(c[m >> 2] | 0)) break a;
c[m >> 2] = (c[m >> 2] | 0) + -1;
h = c[t >> 2] | 0;
c[t >> 2] = h + 1;
c[p >> 2] = (c[p >> 2] | 0) + ((d[h >> 0] | 0) << c[j >> 2]);
c[j >> 2] = (c[j >> 2] | 0) + 8;
}
c[(c[C >> 2] | 0) + 64 >> 2] = c[p >> 2];
if (c[(c[C >> 2] | 0) + 32 >> 2] | 0) c[(c[(c[C >> 2] | 0) + 32 >> 2] | 0) + 20 >> 2] = c[p >> 2];
if (c[(c[C >> 2] | 0) + 16 >> 2] & 512 | 0) {
a[n >> 0] = c[p >> 2];
a[n + 1 >> 0] = (c[p >> 2] | 0) >>> 8;
v = yb(c[(c[C >> 2] | 0) + 24 >> 2] | 0, n, 2) | 0;
c[(c[C >> 2] | 0) + 24 >> 2] = v;
}
c[p >> 2] = 0;
c[j >> 2] = 0;
} else if (c[(c[C >> 2] | 0) + 32 >> 2] | 0) c[(c[(c[C >> 2] | 0) + 32 >> 2] | 0) + 16 >> 2] = 0;
c[c[C >> 2] >> 2] = 5;
v = 70;
} else if ((v | 0) == 133) {
v = 0;
if (c[(c[C >> 2] | 0) + 4 >> 2] | 0) {
c[p >> 2] = (c[p >> 2] | 0) >>> (c[j >> 2] & 7);
c[j >> 2] = (c[j >> 2] | 0) - (c[j >> 2] & 7);
c[c[C >> 2] >> 2] = 26;
continue;
}
while (1) {
if ((c[j >> 2] | 0) >>> 0 >= 3) break;
if (!(c[m >> 2] | 0)) break a;
c[m >> 2] = (c[m >> 2] | 0) + -1;
h = c[t >> 2] | 0;
c[t >> 2] = h + 1;
c[p >> 2] = (c[p >> 2] | 0) + ((d[h >> 0] | 0) << c[j >> 2]);
c[j >> 2] = (c[j >> 2] | 0) + 8;
}
c[(c[C >> 2] | 0) + 4 >> 2] = c[p >> 2] & 1;
c[p >> 2] = (c[p >> 2] | 0) >>> 1;
c[j >> 2] = (c[j >> 2] | 0) - 1;
switch (c[p >> 2] & 3 | 0) {
case 0:
{
c[c[C >> 2] >> 2] = 13;
break;
}
case 1:
{
Ya(c[C >> 2] | 0);
c[c[C >> 2] >> 2] = 19;
if ((c[y >> 2] | 0) == 6) {
v = 141;
break a;
}
break;
}
case 2:
{
c[c[C >> 2] >> 2] = 16;
break;
}
case 3:
{
c[(c[x >> 2] | 0) + 24 >> 2] = 13903;
c[c[C >> 2] >> 2] = 29;
break;
}
default:
{
v = 144;
break a;
}
}
c[p >> 2] = (c[p >> 2] | 0) >>> 2;
c[j >> 2] = (c[j >> 2] | 0) - 2;
continue;
} else if ((v | 0) == 213) {
c[c[C >> 2] >> 2] = 20;
v = 214;
}
do if ((v | 0) == 70) {
v = 0;
if (c[(c[C >> 2] | 0) + 16 >> 2] & 1024 | 0) {
c[k >> 2] = c[(c[C >> 2] | 0) + 64 >> 2];
if ((c[k >> 2] | 0) >>> 0 > (c[m >> 2] | 0) >>> 0) c[k >> 2] = c[m >> 2];
if (c[k >> 2] | 0) {
if (c[(c[C >> 2] | 0) + 32 >> 2] | 0) if (c[(c[(c[C >> 2] | 0) + 32 >> 2] | 0) + 16 >> 2] | 0) {
c[s >> 2] = (c[(c[(c[C >> 2] | 0) + 32 >> 2] | 0) + 20 >> 2] | 0) - (c[(c[C >> 2] | 0) + 64 >> 2] | 0);
if (((c[s >> 2] | 0) + (c[k >> 2] | 0) | 0) >>> 0 > (c[(c[(c[C >> 2] | 0) + 32 >> 2] | 0) + 24 >> 2] | 0) >>> 0) g = (c[(c[(c[C >> 2] | 0) + 32 >> 2] | 0) + 24 >> 2] | 0) - (c[s >> 2] | 0) | 0; else g = c[k >> 2] | 0;
Ib((c[(c[(c[C >> 2] | 0) + 32 >> 2] | 0) + 16 >> 2] | 0) + (c[s >> 2] | 0) | 0, c[t >> 2] | 0, g | 0) | 0;
}
if (c[(c[C >> 2] | 0) + 16 >> 2] & 512 | 0) {
h = yb(c[(c[C >> 2] | 0) + 24 >> 2] | 0, c[t >> 2] | 0, c[k >> 2] | 0) | 0;
c[(c[C >> 2] | 0) + 24 >> 2] = h;
}
c[m >> 2] = (c[m >> 2] | 0) - (c[k >> 2] | 0);
c[t >> 2] = (c[t >> 2] | 0) + (c[k >> 2] | 0);
h = (c[C >> 2] | 0) + 64 | 0;
c[h >> 2] = (c[h >> 2] | 0) - (c[k >> 2] | 0);
}
if (c[(c[C >> 2] | 0) + 64 >> 2] | 0) break a;
}
c[(c[C >> 2] | 0) + 64 >> 2] = 0;
c[c[C >> 2] >> 2] = 6;
v = 85;
} else if ((v | 0) == 214) {
v = 0;
if ((c[m >> 2] | 0) >>> 0 >= 6 & (c[r >> 2] | 0) >>> 0 >= 258) {
c[(c[x >> 2] | 0) + 12 >> 2] = c[u >> 2];
c[(c[x >> 2] | 0) + 16 >> 2] = c[r >> 2];
c[c[x >> 2] >> 2] = c[t >> 2];
c[(c[x >> 2] | 0) + 4 >> 2] = c[m >> 2];
c[(c[C >> 2] | 0) + 56 >> 2] = c[p >> 2];
c[(c[C >> 2] | 0) + 60 >> 2] = c[j >> 2];
Bb(c[x >> 2] | 0, c[A >> 2] | 0);
c[u >> 2] = c[(c[x >> 2] | 0) + 12 >> 2];
c[r >> 2] = c[(c[x >> 2] | 0) + 16 >> 2];
c[t >> 2] = c[c[x >> 2] >> 2];
c[m >> 2] = c[(c[x >> 2] | 0) + 4 >> 2];
c[p >> 2] = c[(c[C >> 2] | 0) + 56 >> 2];
c[j >> 2] = c[(c[C >> 2] | 0) + 60 >> 2];
if ((c[c[C >> 2] >> 2] | 0) != 11) continue a;
c[(c[C >> 2] | 0) + 7108 >> 2] = -1;
continue a;
}
c[(c[C >> 2] | 0) + 7108 >> 2] = 0;
while (1) {
h = (c[(c[C >> 2] | 0) + 76 >> 2] | 0) + ((c[p >> 2] & (1 << c[(c[C >> 2] | 0) + 84 >> 2]) - 1) << 2) | 0;
b[o >> 1] = b[h >> 1] | 0;
b[o + 2 >> 1] = b[h + 2 >> 1] | 0;
if ((d[o + 1 >> 0] | 0) >>> 0 <= (c[j >> 2] | 0) >>> 0) break;
if (!(c[m >> 2] | 0)) break a;
c[m >> 2] = (c[m >> 2] | 0) + -1;
h = c[t >> 2] | 0;
c[t >> 2] = h + 1;
c[p >> 2] = (c[p >> 2] | 0) + ((d[h >> 0] | 0) << c[j >> 2]);
c[j >> 2] = (c[j >> 2] | 0) + 8;
}
if (d[o >> 0] | 0 | 0) if (!((d[o >> 0] | 0) & 240)) {
b[q >> 1] = b[o >> 1] | 0;
b[q + 2 >> 1] = b[o + 2 >> 1] | 0;
while (1) {
h = (c[(c[C >> 2] | 0) + 76 >> 2] | 0) + ((e[q + 2 >> 1] | 0) + ((c[p >> 2] & (1 << (d[q + 1 >> 0] | 0) + (d[q >> 0] | 0)) - 1) >>> (d[q + 1 >> 0] | 0)) << 2) | 0;
b[o >> 1] = b[h >> 1] | 0;
b[o + 2 >> 1] = b[h + 2 >> 1] | 0;
if (((d[q + 1 >> 0] | 0) + (d[o + 1 >> 0] | 0) | 0) >>> 0 <= (c[j >> 2] | 0) >>> 0) break;
if (!(c[m >> 2] | 0)) break a;
c[m >> 2] = (c[m >> 2] | 0) + -1;
h = c[t >> 2] | 0;
c[t >> 2] = h + 1;
c[p >> 2] = (c[p >> 2] | 0) + ((d[h >> 0] | 0) << c[j >> 2]);
c[j >> 2] = (c[j >> 2] | 0) + 8;
}
c[p >> 2] = (c[p >> 2] | 0) >>> (d[q + 1 >> 0] | 0);
c[j >> 2] = (c[j >> 2] | 0) - (d[q + 1 >> 0] | 0);
h = (c[C >> 2] | 0) + 7108 | 0;
c[h >> 2] = (c[h >> 2] | 0) + (d[q + 1 >> 0] | 0);
}
c[p >> 2] = (c[p >> 2] | 0) >>> (d[o + 1 >> 0] | 0);
c[j >> 2] = (c[j >> 2] | 0) - (d[o + 1 >> 0] | 0);
h = (c[C >> 2] | 0) + 7108 | 0;
c[h >> 2] = (c[h >> 2] | 0) + (d[o + 1 >> 0] | 0);
c[(c[C >> 2] | 0) + 64 >> 2] = e[o + 2 >> 1];
if (!(d[o >> 0] | 0)) {
c[c[C >> 2] >> 2] = 25;
continue a;
}
if ((d[o >> 0] | 0) & 32 | 0) {
c[(c[C >> 2] | 0) + 7108 >> 2] = -1;
c[c[C >> 2] >> 2] = 11;
continue a;
}
if ((d[o >> 0] | 0) & 64 | 0) {
c[(c[x >> 2] | 0) + 24 >> 2] = 15124;
c[c[C >> 2] >> 2] = 29;
continue a;
} else {
c[(c[C >> 2] | 0) + 72 >> 2] = (d[o >> 0] | 0) & 15;
c[c[C >> 2] >> 2] = 21;
v = 235;
break;
}
} while (0);
if ((v | 0) == 85) {
v = 0;
if (c[(c[C >> 2] | 0) + 16 >> 2] & 2048 | 0) {
if (!(c[m >> 2] | 0)) break;
c[k >> 2] = 0;
do {
h = c[k >> 2] | 0;
c[k >> 2] = h + 1;
c[s >> 2] = d[(c[t >> 2] | 0) + h >> 0];
if (c[(c[C >> 2] | 0) + 32 >> 2] | 0) if (c[(c[(c[C >> 2] | 0) + 32 >> 2] | 0) + 28 >> 2] | 0) if ((c[(c[C >> 2] | 0) + 64 >> 2] | 0) >>> 0 < (c[(c[(c[C >> 2] | 0) + 32 >> 2] | 0) + 32 >> 2] | 0) >>> 0) {
f = c[s >> 2] & 255;
g = (c[C >> 2] | 0) + 64 | 0;
h = c[g >> 2] | 0;
c[g >> 2] = h + 1;
a[(c[(c[(c[C >> 2] | 0) + 32 >> 2] | 0) + 28 >> 2] | 0) + h >> 0] = f;
}
if (!(c[s >> 2] | 0)) break;
} while ((c[k >> 2] | 0) >>> 0 < (c[m >> 2] | 0) >>> 0);
if (c[(c[C >> 2] | 0) + 16 >> 2] & 512 | 0) {
h = yb(c[(c[C >> 2] | 0) + 24 >> 2] | 0, c[t >> 2] | 0, c[k >> 2] | 0) | 0;
c[(c[C >> 2] | 0) + 24 >> 2] = h;
}
c[m >> 2] = (c[m >> 2] | 0) - (c[k >> 2] | 0);
c[t >> 2] = (c[t >> 2] | 0) + (c[k >> 2] | 0);
if (c[s >> 2] | 0) break;
} else if (c[(c[C >> 2] | 0) + 32 >> 2] | 0) c[(c[(c[C >> 2] | 0) + 32 >> 2] | 0) + 28 >> 2] = 0;
c[(c[C >> 2] | 0) + 64 >> 2] = 0;
c[c[C >> 2] >> 2] = 7;
v = 100;
} else if ((v | 0) == 235) {
v = 0;
if (c[(c[C >> 2] | 0) + 72 >> 2] | 0) {
while (1) {
if ((c[j >> 2] | 0) >>> 0 >= (c[(c[C >> 2] | 0) + 72 >> 2] | 0) >>> 0) break;
if (!(c[m >> 2] | 0)) break a;
c[m >> 2] = (c[m >> 2] | 0) + -1;
h = c[t >> 2] | 0;
c[t >> 2] = h + 1;
c[p >> 2] = (c[p >> 2] | 0) + ((d[h >> 0] | 0) << c[j >> 2]);
c[j >> 2] = (c[j >> 2] | 0) + 8;
}
v = (c[C >> 2] | 0) + 64 | 0;
c[v >> 2] = (c[v >> 2] | 0) + (c[p >> 2] & (1 << c[(c[C >> 2] | 0) + 72 >> 2]) - 1);
c[p >> 2] = (c[p >> 2] | 0) >>> (c[(c[C >> 2] | 0) + 72 >> 2] | 0);
c[j >> 2] = (c[j >> 2] | 0) - (c[(c[C >> 2] | 0) + 72 >> 2] | 0);
v = (c[C >> 2] | 0) + 7108 | 0;
c[v >> 2] = (c[v >> 2] | 0) + (c[(c[C >> 2] | 0) + 72 >> 2] | 0);
}
c[(c[C >> 2] | 0) + 7112 >> 2] = c[(c[C >> 2] | 0) + 64 >> 2];
c[c[C >> 2] >> 2] = 22;
v = 241;
}
do if ((v | 0) == 100) {
v = 0;
if (c[(c[C >> 2] | 0) + 16 >> 2] & 4096 | 0) {
if (!(c[m >> 2] | 0)) break a;
c[k >> 2] = 0;
do {
h = c[k >> 2] | 0;
c[k >> 2] = h + 1;
c[s >> 2] = d[(c[t >> 2] | 0) + h >> 0];
if (c[(c[C >> 2] | 0) + 32 >> 2] | 0) if (c[(c[(c[C >> 2] | 0) + 32 >> 2] | 0) + 36 >> 2] | 0) if ((c[(c[C >> 2] | 0) + 64 >> 2] | 0) >>> 0 < (c[(c[(c[C >> 2] | 0) + 32 >> 2] | 0) + 40 >> 2] | 0) >>> 0) {
f = c[s >> 2] & 255;
g = (c[C >> 2] | 0) + 64 | 0;
h = c[g >> 2] | 0;
c[g >> 2] = h + 1;
a[(c[(c[(c[C >> 2] | 0) + 32 >> 2] | 0) + 36 >> 2] | 0) + h >> 0] = f;
}
if (!(c[s >> 2] | 0)) break;
} while ((c[k >> 2] | 0) >>> 0 < (c[m >> 2] | 0) >>> 0);
if (c[(c[C >> 2] | 0) + 16 >> 2] & 512 | 0) {
h = yb(c[(c[C >> 2] | 0) + 24 >> 2] | 0, c[t >> 2] | 0, c[k >> 2] | 0) | 0;
c[(c[C >> 2] | 0) + 24 >> 2] = h;
}
c[m >> 2] = (c[m >> 2] | 0) - (c[k >> 2] | 0);
c[t >> 2] = (c[t >> 2] | 0) + (c[k >> 2] | 0);
if (c[s >> 2] | 0) break a;
} else if (c[(c[C >> 2] | 0) + 32 >> 2] | 0) c[(c[(c[C >> 2] | 0) + 32 >> 2] | 0) + 36 >> 2] = 0;
c[c[C >> 2] >> 2] = 8;
v = 115;
} else if ((v | 0) == 241) {
while (1) {
v = 0;
h = (c[(c[C >> 2] | 0) + 80 >> 2] | 0) + ((c[p >> 2] & (1 << c[(c[C >> 2] | 0) + 88 >> 2]) - 1) << 2) | 0;
b[o >> 1] = b[h >> 1] | 0;
b[o + 2 >> 1] = b[h + 2 >> 1] | 0;
if ((d[o + 1 >> 0] | 0) >>> 0 <= (c[j >> 2] | 0) >>> 0) break;
if (!(c[m >> 2] | 0)) break a;
c[m >> 2] = (c[m >> 2] | 0) + -1;
v = c[t >> 2] | 0;
c[t >> 2] = v + 1;
c[p >> 2] = (c[p >> 2] | 0) + ((d[v >> 0] | 0) << c[j >> 2]);
c[j >> 2] = (c[j >> 2] | 0) + 8;
v = 241;
}
if (!((d[o >> 0] | 0) & 240)) {
b[q >> 1] = b[o >> 1] | 0;
b[q + 2 >> 1] = b[o + 2 >> 1] | 0;
while (1) {
h = (c[(c[C >> 2] | 0) + 80 >> 2] | 0) + ((e[q + 2 >> 1] | 0) + ((c[p >> 2] & (1 << (d[q + 1 >> 0] | 0) + (d[q >> 0] | 0)) - 1) >>> (d[q + 1 >> 0] | 0)) << 2) | 0;
b[o >> 1] = b[h >> 1] | 0;
b[o + 2 >> 1] = b[h + 2 >> 1] | 0;
if (((d[q + 1 >> 0] | 0) + (d[o + 1 >> 0] | 0) | 0) >>> 0 <= (c[j >> 2] | 0) >>> 0) break;
if (!(c[m >> 2] | 0)) break a;
c[m >> 2] = (c[m >> 2] | 0) + -1;
h = c[t >> 2] | 0;
c[t >> 2] = h + 1;
c[p >> 2] = (c[p >> 2] | 0) + ((d[h >> 0] | 0) << c[j >> 2]);
c[j >> 2] = (c[j >> 2] | 0) + 8;
}
c[p >> 2] = (c[p >> 2] | 0) >>> (d[q + 1 >> 0] | 0);
c[j >> 2] = (c[j >> 2] | 0) - (d[q + 1 >> 0] | 0);
h = (c[C >> 2] | 0) + 7108 | 0;
c[h >> 2] = (c[h >> 2] | 0) + (d[q + 1 >> 0] | 0);
}
c[p >> 2] = (c[p >> 2] | 0) >>> (d[o + 1 >> 0] | 0);
c[j >> 2] = (c[j >> 2] | 0) - (d[o + 1 >> 0] | 0);
h = (c[C >> 2] | 0) + 7108 | 0;
c[h >> 2] = (c[h >> 2] | 0) + (d[o + 1 >> 0] | 0);
if ((d[o >> 0] | 0) & 64 | 0) {
c[(c[x >> 2] | 0) + 24 >> 2] = 15102;
c[c[C >> 2] >> 2] = 29;
continue a;
} else {
c[(c[C >> 2] | 0) + 68 >> 2] = e[o + 2 >> 1];
c[(c[C >> 2] | 0) + 72 >> 2] = (d[o >> 0] | 0) & 15;
c[c[C >> 2] >> 2] = 23;
v = 253;
break;
}
} while (0);
if ((v | 0) == 115) {
v = 0;
do if (c[(c[C >> 2] | 0) + 16 >> 2] & 512 | 0) {
while (1) {
if ((c[j >> 2] | 0) >>> 0 >= 16) break;
if (!(c[m >> 2] | 0)) break a;
c[m >> 2] = (c[m >> 2] | 0) + -1;
h = c[t >> 2] | 0;
c[t >> 2] = h + 1;
c[p >> 2] = (c[p >> 2] | 0) + ((d[h >> 0] | 0) << c[j >> 2]);
c[j >> 2] = (c[j >> 2] | 0) + 8;
}
if ((c[p >> 2] | 0) != (c[(c[C >> 2] | 0) + 24 >> 2] & 65535 | 0)) {
c[(c[x >> 2] | 0) + 24 >> 2] = 13883;
c[c[C >> 2] >> 2] = 29;
continue a;
} else {
c[p >> 2] = 0;
c[j >> 2] = 0;
break;
}
} while (0);
if (c[(c[C >> 2] | 0) + 32 >> 2] | 0) {
c[(c[(c[C >> 2] | 0) + 32 >> 2] | 0) + 44 >> 2] = c[(c[C >> 2] | 0) + 16 >> 2] >> 9 & 1;
c[(c[(c[C >> 2] | 0) + 32 >> 2] | 0) + 48 >> 2] = 1;
}
h = yb(0, 0, 0) | 0;
c[(c[C >> 2] | 0) + 24 >> 2] = h;
c[(c[x >> 2] | 0) + 48 >> 2] = h;
c[c[C >> 2] >> 2] = 11;
continue;
} else if ((v | 0) == 253) {
v = 0;
if (c[(c[C >> 2] | 0) + 72 >> 2] | 0) {
while (1) {
if ((c[j >> 2] | 0) >>> 0 >= (c[(c[C >> 2] | 0) + 72 >> 2] | 0) >>> 0) break;
if (!(c[m >> 2] | 0)) break a;
c[m >> 2] = (c[m >> 2] | 0) + -1;
h = c[t >> 2] | 0;
c[t >> 2] = h + 1;
c[p >> 2] = (c[p >> 2] | 0) + ((d[h >> 0] | 0) << c[j >> 2]);
c[j >> 2] = (c[j >> 2] | 0) + 8;
}
h = (c[C >> 2] | 0) + 68 | 0;
c[h >> 2] = (c[h >> 2] | 0) + (c[p >> 2] & (1 << c[(c[C >> 2] | 0) + 72 >> 2]) - 1);
c[p >> 2] = (c[p >> 2] | 0) >>> (c[(c[C >> 2] | 0) + 72 >> 2] | 0);
c[j >> 2] = (c[j >> 2] | 0) - (c[(c[C >> 2] | 0) + 72 >> 2] | 0);
h = (c[C >> 2] | 0) + 7108 | 0;
c[h >> 2] = (c[h >> 2] | 0) + (c[(c[C >> 2] | 0) + 72 >> 2] | 0);
}
c[c[C >> 2] >> 2] = 24;
}
if (!(c[r >> 2] | 0)) break;
c[k >> 2] = (c[A >> 2] | 0) - (c[r >> 2] | 0);
if ((c[(c[C >> 2] | 0) + 68 >> 2] | 0) >>> 0 > (c[k >> 2] | 0) >>> 0) {
c[k >> 2] = (c[(c[C >> 2] | 0) + 68 >> 2] | 0) - (c[k >> 2] | 0);
if ((c[k >> 2] | 0) >>> 0 > (c[(c[C >> 2] | 0) + 44 >> 2] | 0) >>> 0) if (c[(c[C >> 2] | 0) + 7104 >> 2] | 0) {
c[(c[x >> 2] | 0) + 24 >> 2] = 15072;
c[c[C >> 2] >> 2] = 29;
continue;
}
g = c[C >> 2] | 0;
if ((c[k >> 2] | 0) >>> 0 > (c[(c[C >> 2] | 0) + 48 >> 2] | 0) >>> 0) {
c[k >> 2] = (c[k >> 2] | 0) - (c[g + 48 >> 2] | 0);
c[l >> 2] = (c[(c[C >> 2] | 0) + 52 >> 2] | 0) + ((c[(c[C >> 2] | 0) + 40 >> 2] | 0) - (c[k >> 2] | 0));
} else c[l >> 2] = (c[g + 52 >> 2] | 0) + ((c[(c[C >> 2] | 0) + 48 >> 2] | 0) - (c[k >> 2] | 0));
if ((c[k >> 2] | 0) >>> 0 > (c[(c[C >> 2] | 0) + 64 >> 2] | 0) >>> 0) c[k >> 2] = c[(c[C >> 2] | 0) + 64 >> 2];
} else {
c[l >> 2] = (c[u >> 2] | 0) + (0 - (c[(c[C >> 2] | 0) + 68 >> 2] | 0));
c[k >> 2] = c[(c[C >> 2] | 0) + 64 >> 2];
}
if ((c[k >> 2] | 0) >>> 0 > (c[r >> 2] | 0) >>> 0) c[k >> 2] = c[r >> 2];
c[r >> 2] = (c[r >> 2] | 0) - (c[k >> 2] | 0);
h = (c[C >> 2] | 0) + 64 | 0;
c[h >> 2] = (c[h >> 2] | 0) - (c[k >> 2] | 0);
do {
f = c[l >> 2] | 0;
c[l >> 2] = f + 1;
f = a[f >> 0] | 0;
h = c[u >> 2] | 0;
c[u >> 2] = h + 1;
a[h >> 0] = f;
h = (c[k >> 2] | 0) + -1 | 0;
c[k >> 2] = h;
} while ((h | 0) != 0);
if (c[(c[C >> 2] | 0) + 64 >> 2] | 0) continue;
c[c[C >> 2] >> 2] = 20;
}
if ((v | 0) == 130) {
c[(c[x >> 2] | 0) + 12 >> 2] = c[u >> 2];
c[(c[x >> 2] | 0) + 16 >> 2] = c[r >> 2];
c[c[x >> 2] >> 2] = c[t >> 2];
c[(c[x >> 2] | 0) + 4 >> 2] = c[m >> 2];
c[(c[C >> 2] | 0) + 56 >> 2] = c[p >> 2];
c[(c[C >> 2] | 0) + 60 >> 2] = c[j >> 2];
c[w >> 2] = 2;
C = c[w >> 2] | 0;
i = D;
return C | 0;
} else if ((v | 0) == 141) {
c[p >> 2] = (c[p >> 2] | 0) >>> 2;
c[j >> 2] = (c[j >> 2] | 0) - 2;
} else if ((v | 0) != 144) if ((v | 0) == 300) {
c[p >> 2] = 0;
c[j >> 2] = 0;
v = 301;
} else if ((v | 0) == 303) c[B >> 2] = -3; else if ((v | 0) == 304) {
c[w >> 2] = -4;
C = c[w >> 2] | 0;
i = D;
return C | 0;
} else if ((v | 0) == 305) {
c[w >> 2] = -2;
C = c[w >> 2] | 0;
i = D;
return C | 0;
}
if ((v | 0) == 301) {
c[c[C >> 2] >> 2] = 28;
v = 302;
}
if ((v | 0) == 302) c[B >> 2] = 1;
c[(c[x >> 2] | 0) + 12 >> 2] = c[u >> 2];
c[(c[x >> 2] | 0) + 16 >> 2] = c[r >> 2];
c[c[x >> 2] >> 2] = c[t >> 2];
c[(c[x >> 2] | 0) + 4 >> 2] = c[m >> 2];
c[(c[C >> 2] | 0) + 56 >> 2] = c[p >> 2];
c[(c[C >> 2] | 0) + 60 >> 2] = c[j >> 2];
if (c[(c[C >> 2] | 0) + 40 >> 2] | 0) v = 310; else if ((c[A >> 2] | 0) != (c[(c[x >> 2] | 0) + 16 >> 2] | 0)) if ((c[c[C >> 2] >> 2] | 0) >>> 0 < 29) if ((c[y >> 2] | 0) != 4 ? 1 : (c[c[C >> 2] >> 2] | 0) >>> 0 < 26) v = 310;
if ((v | 0) == 310) if (Za(c[x >> 2] | 0, c[(c[x >> 2] | 0) + 12 >> 2] | 0, (c[A >> 2] | 0) - (c[(c[x >> 2] | 0) + 16 >> 2] | 0) | 0) | 0) {
c[c[C >> 2] >> 2] = 30;
c[w >> 2] = -4;
C = c[w >> 2] | 0;
i = D;
return C | 0;
}
c[z >> 2] = (c[z >> 2] | 0) - (c[(c[x >> 2] | 0) + 4 >> 2] | 0);
c[A >> 2] = (c[A >> 2] | 0) - (c[(c[x >> 2] | 0) + 16 >> 2] | 0);
v = (c[x >> 2] | 0) + 8 | 0;
c[v >> 2] = (c[v >> 2] | 0) + (c[z >> 2] | 0);
v = (c[x >> 2] | 0) + 20 | 0;
c[v >> 2] = (c[v >> 2] | 0) + (c[A >> 2] | 0);
v = (c[C >> 2] | 0) + 28 | 0;
c[v >> 2] = (c[v >> 2] | 0) + (c[A >> 2] | 0);
if (c[A >> 2] | 0 ? (c[(c[C >> 2] | 0) + 8 >> 2] | 0) != 0 : 0) {
g = c[(c[C >> 2] | 0) + 24 >> 2] | 0;
f = (c[(c[x >> 2] | 0) + 12 >> 2] | 0) + (0 - (c[A >> 2] | 0)) | 0;
h = c[A >> 2] | 0;
if (c[(c[C >> 2] | 0) + 16 >> 2] | 0) g = yb(g, f, h) | 0; else g = xb(g, f, h) | 0;
c[(c[C >> 2] | 0) + 24 >> 2] = g;
c[(c[x >> 2] | 0) + 48 >> 2] = g;
}
if ((c[c[C >> 2] >> 2] | 0) == 19) g = 1; else g = (c[c[C >> 2] >> 2] | 0) == 14;
c[(c[x >> 2] | 0) + 44 >> 2] = (c[(c[C >> 2] | 0) + 60 >> 2] | 0) + (c[(c[C >> 2] | 0) + 4 >> 2] | 0 ? 64 : 0) + ((c[c[C >> 2] >> 2] | 0) == 11 ? 128 : 0) + (g ? 256 : 0);
if (((c[z >> 2] | 0) == 0 & (c[A >> 2] | 0) == 0 | (c[y >> 2] | 0) == 4) & (c[B >> 2] | 0) == 0) c[B >> 2] = -5;
c[w >> 2] = c[B >> 2];
C = c[w >> 2] | 0;
i = D;
return C | 0;
} while (0);
c[w >> 2] = -2;
C = c[w >> 2] | 0;
i = D;
return C | 0;
}
function Db(a) {
a = a | 0;
var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0;
D = i;
i = i + 16 | 0;
p = D;
do if (a >>> 0 < 245) {
q = a >>> 0 < 11 ? 16 : a + 11 & -8;
a = q >>> 3;
k = c[3803] | 0;
b = k >>> a;
if (b & 3 | 0) {
f = (b & 1 ^ 1) + a | 0;
g = 15252 + (f << 1 << 2) | 0;
b = g + 8 | 0;
d = c[b >> 2] | 0;
h = d + 8 | 0;
e = c[h >> 2] | 0;
do if ((g | 0) == (e | 0)) c[3803] = k & ~(1 << f); else {
if (e >>> 0 < (c[3807] | 0) >>> 0) ha();
a = e + 12 | 0;
if ((c[a >> 2] | 0) == (d | 0)) {
c[a >> 2] = g;
c[b >> 2] = e;
break;
} else ha();
} while (0);
C = f << 3;
c[d + 4 >> 2] = C | 3;
C = d + C + 4 | 0;
c[C >> 2] = c[C >> 2] | 1;
C = h;
i = D;
return C | 0;
}
h = c[3805] | 0;
if (q >>> 0 > h >>> 0) {
if (b | 0) {
f = 2 << a;
f = b << a & (f | 0 - f);
f = (f & 0 - f) + -1 | 0;
j = f >>> 12 & 16;
f = f >>> j;
b = f >>> 5 & 8;
f = f >>> b;
g = f >>> 2 & 4;
f = f >>> g;
d = f >>> 1 & 2;
f = f >>> d;
e = f >>> 1 & 1;
e = (b | j | g | d | e) + (f >>> e) | 0;
f = 15252 + (e << 1 << 2) | 0;
d = f + 8 | 0;
g = c[d >> 2] | 0;
j = g + 8 | 0;
b = c[j >> 2] | 0;
do if ((f | 0) == (b | 0)) {
c[3803] = k & ~(1 << e);
l = h;
} else {
if (b >>> 0 < (c[3807] | 0) >>> 0) ha();
a = b + 12 | 0;
if ((c[a >> 2] | 0) == (g | 0)) {
c[a >> 2] = f;
c[d >> 2] = b;
l = c[3805] | 0;
break;
} else ha();
} while (0);
h = (e << 3) - q | 0;
c[g + 4 >> 2] = q | 3;
f = g + q | 0;
c[f + 4 >> 2] = h | 1;
c[f + h >> 2] = h;
if (l | 0) {
e = c[3808] | 0;
b = l >>> 3;
d = 15252 + (b << 1 << 2) | 0;
a = c[3803] | 0;
b = 1 << b;
if (!(a & b)) {
c[3803] = a | b;
m = d + 8 | 0;
n = d;
} else {
a = d + 8 | 0;
b = c[a >> 2] | 0;
if (b >>> 0 < (c[3807] | 0) >>> 0) ha(); else {
m = a;
n = b;
}
}
c[m >> 2] = e;
c[n + 12 >> 2] = e;
c[e + 8 >> 2] = n;
c[e + 12 >> 2] = d;
}
c[3805] = h;
c[3808] = f;
C = j;
i = D;
return C | 0;
}
a = c[3804] | 0;
if (a) {
d = (a & 0 - a) + -1 | 0;
B = d >>> 12 & 16;
d = d >>> B;
A = d >>> 5 & 8;
d = d >>> A;
C = d >>> 2 & 4;
d = d >>> C;
b = d >>> 1 & 2;
d = d >>> b;
e = d >>> 1 & 1;
e = c[15516 + ((A | B | C | b | e) + (d >>> e) << 2) >> 2] | 0;
d = (c[e + 4 >> 2] & -8) - q | 0;
b = e;
while (1) {
a = c[b + 16 >> 2] | 0;
if (!a) {
a = c[b + 20 >> 2] | 0;
if (!a) {
k = e;
break;
}
}
b = (c[a + 4 >> 2] & -8) - q | 0;
C = b >>> 0 < d >>> 0;
d = C ? b : d;
b = a;
e = C ? a : e;
}
g = c[3807] | 0;
if (k >>> 0 < g >>> 0) ha();
j = k + q | 0;
if (k >>> 0 >= j >>> 0) ha();
h = c[k + 24 >> 2] | 0;
e = c[k + 12 >> 2] | 0;
do if ((e | 0) == (k | 0)) {
b = k + 20 | 0;
a = c[b >> 2] | 0;
if (!a) {
b = k + 16 | 0;
a = c[b >> 2] | 0;
if (!a) {
o = 0;
break;
}
}
while (1) {
f = a + 20 | 0;
e = c[f >> 2] | 0;
if (e | 0) {
a = e;
b = f;
continue;
}
f = a + 16 | 0;
e = c[f >> 2] | 0;
if (!e) break; else {
a = e;
b = f;
}
}
if (b >>> 0 < g >>> 0) ha(); else {
c[b >> 2] = 0;
o = a;
break;
}
} else {
f = c[k + 8 >> 2] | 0;
if (f >>> 0 < g >>> 0) ha();
a = f + 12 | 0;
if ((c[a >> 2] | 0) != (k | 0)) ha();
b = e + 8 | 0;
if ((c[b >> 2] | 0) == (k | 0)) {
c[a >> 2] = e;
c[b >> 2] = f;
o = e;
break;
} else ha();
} while (0);
do if (h | 0) {
a = c[k + 28 >> 2] | 0;
b = 15516 + (a << 2) | 0;
if ((k | 0) == (c[b >> 2] | 0)) {
c[b >> 2] = o;
if (!o) {
c[3804] = c[3804] & ~(1 << a);
break;
}
} else {
if (h >>> 0 < (c[3807] | 0) >>> 0) ha();
a = h + 16 | 0;
if ((c[a >> 2] | 0) == (k | 0)) c[a >> 2] = o; else c[h + 20 >> 2] = o;
if (!o) break;
}
b = c[3807] | 0;
if (o >>> 0 < b >>> 0) ha();
c[o + 24 >> 2] = h;
a = c[k + 16 >> 2] | 0;
do if (a | 0) if (a >>> 0 < b >>> 0) ha(); else {
c[o + 16 >> 2] = a;
c[a + 24 >> 2] = o;
break;
} while (0);
a = c[k + 20 >> 2] | 0;
if (a | 0) if (a >>> 0 < (c[3807] | 0) >>> 0) ha(); else {
c[o + 20 >> 2] = a;
c[a + 24 >> 2] = o;
break;
}
} while (0);
if (d >>> 0 < 16) {
C = d + q | 0;
c[k + 4 >> 2] = C | 3;
C = k + C + 4 | 0;
c[C >> 2] = c[C >> 2] | 1;
} else {
c[k + 4 >> 2] = q | 3;
c[j + 4 >> 2] = d | 1;
c[j + d >> 2] = d;
a = c[3805] | 0;
if (a | 0) {
f = c[3808] | 0;
b = a >>> 3;
e = 15252 + (b << 1 << 2) | 0;
a = c[3803] | 0;
b = 1 << b;
if (!(a & b)) {
c[3803] = a | b;
r = e + 8 | 0;
s = e;
} else {
a = e + 8 | 0;
b = c[a >> 2] | 0;
if (b >>> 0 < (c[3807] | 0) >>> 0) ha(); else {
r = a;
s = b;
}
}
c[r >> 2] = f;
c[s + 12 >> 2] = f;
c[f + 8 >> 2] = s;
c[f + 12 >> 2] = e;
}
c[3805] = d;
c[3808] = j;
}
C = k + 8 | 0;
i = D;
return C | 0;
}
}
} else if (a >>> 0 > 4294967231) q = -1; else {
a = a + 11 | 0;
q = a & -8;
k = c[3804] | 0;
if (k) {
b = 0 - q | 0;
a = a >>> 8;
if (!a) j = 0; else if (q >>> 0 > 16777215) j = 31; else {
s = (a + 1048320 | 0) >>> 16 & 8;
w = a << s;
r = (w + 520192 | 0) >>> 16 & 4;
w = w << r;
j = (w + 245760 | 0) >>> 16 & 2;
j = 14 - (r | s | j) + (w << j >>> 15) | 0;
j = q >>> (j + 7 | 0) & 1 | j << 1;
}
d = c[15516 + (j << 2) >> 2] | 0;
a : do if (!d) {
e = b;
a = 0;
b = 0;
w = 86;
} else {
e = b;
a = 0;
h = q << ((j | 0) == 31 ? 0 : 25 - (j >>> 1) | 0);
b = 0;
while (1) {
f = c[d + 4 >> 2] & -8;
g = f - q | 0;
if (g >>> 0 < e >>> 0) if ((f | 0) == (q | 0)) {
e = g;
a = d;
b = d;
w = 90;
break a;
} else {
e = g;
b = d;
}
f = c[d + 20 >> 2] | 0;
d = c[d + 16 + (h >>> 31 << 2) >> 2] | 0;
a = (f | 0) == 0 | (f | 0) == (d | 0) ? a : f;
f = (d | 0) == 0;
if (f) {
w = 86;
break;
} else h = h << (f & 1 ^ 1);
}
} while (0);
if ((w | 0) == 86) {
if ((a | 0) == 0 & (b | 0) == 0) {
a = 2 << j;
a = k & (a | 0 - a);
if (!a) break;
s = (a & 0 - a) + -1 | 0;
n = s >>> 12 & 16;
s = s >>> n;
m = s >>> 5 & 8;
s = s >>> m;
o = s >>> 2 & 4;
s = s >>> o;
r = s >>> 1 & 2;
s = s >>> r;
a = s >>> 1 & 1;
a = c[15516 + ((m | n | o | r | a) + (s >>> a) << 2) >> 2] | 0;
}
if (!a) {
h = e;
k = b;
} else w = 90;
}
if ((w | 0) == 90) while (1) {
w = 0;
s = (c[a + 4 >> 2] & -8) - q | 0;
d = s >>> 0 < e >>> 0;
e = d ? s : e;
b = d ? a : b;
d = c[a + 16 >> 2] | 0;
if (d | 0) {
a = d;
w = 90;
continue;
}
a = c[a + 20 >> 2] | 0;
if (!a) {
h = e;
k = b;
break;
} else w = 90;
}
if (k) if (h >>> 0 < ((c[3805] | 0) - q | 0) >>> 0) {
f = c[3807] | 0;
if (k >>> 0 < f >>> 0) ha();
j = k + q | 0;
if (k >>> 0 >= j >>> 0) ha();
g = c[k + 24 >> 2] | 0;
d = c[k + 12 >> 2] | 0;
do if ((d | 0) == (k | 0)) {
b = k + 20 | 0;
a = c[b >> 2] | 0;
if (!a) {
b = k + 16 | 0;
a = c[b >> 2] | 0;
if (!a) {
t = 0;
break;
}
}
while (1) {
e = a + 20 | 0;
d = c[e >> 2] | 0;
if (d | 0) {
a = d;
b = e;
continue;
}
e = a + 16 | 0;
d = c[e >> 2] | 0;
if (!d) break; else {
a = d;
b = e;
}
}
if (b >>> 0 < f >>> 0) ha(); else {
c[b >> 2] = 0;
t = a;
break;
}
} else {
e = c[k + 8 >> 2] | 0;
if (e >>> 0 < f >>> 0) ha();
a = e + 12 | 0;
if ((c[a >> 2] | 0) != (k | 0)) ha();
b = d + 8 | 0;
if ((c[b >> 2] | 0) == (k | 0)) {
c[a >> 2] = d;
c[b >> 2] = e;
t = d;
break;
} else ha();
} while (0);
do if (g | 0) {
a = c[k + 28 >> 2] | 0;
b = 15516 + (a << 2) | 0;
if ((k | 0) == (c[b >> 2] | 0)) {
c[b >> 2] = t;
if (!t) {
c[3804] = c[3804] & ~(1 << a);
break;
}
} else {
if (g >>> 0 < (c[3807] | 0) >>> 0) ha();
a = g + 16 | 0;
if ((c[a >> 2] | 0) == (k | 0)) c[a >> 2] = t; else c[g + 20 >> 2] = t;
if (!t) break;
}
b = c[3807] | 0;
if (t >>> 0 < b >>> 0) ha();
c[t + 24 >> 2] = g;
a = c[k + 16 >> 2] | 0;
do if (a | 0) if (a >>> 0 < b >>> 0) ha(); else {
c[t + 16 >> 2] = a;
c[a + 24 >> 2] = t;
break;
} while (0);
a = c[k + 20 >> 2] | 0;
if (a | 0) if (a >>> 0 < (c[3807] | 0) >>> 0) ha(); else {
c[t + 20 >> 2] = a;
c[a + 24 >> 2] = t;
break;
}
} while (0);
do if (h >>> 0 < 16) {
C = h + q | 0;
c[k + 4 >> 2] = C | 3;
C = k + C + 4 | 0;
c[C >> 2] = c[C >> 2] | 1;
} else {
c[k + 4 >> 2] = q | 3;
c[j + 4 >> 2] = h | 1;
c[j + h >> 2] = h;
a = h >>> 3;
if (h >>> 0 < 256) {
d = 15252 + (a << 1 << 2) | 0;
b = c[3803] | 0;
a = 1 << a;
if (!(b & a)) {
c[3803] = b | a;
u = d + 8 | 0;
v = d;
} else {
a = d + 8 | 0;