E00156111(signed int __edx, signed char* _a4, signed int _a8, signed int _a12, char _a16, signed int* _a20, signed int _a24, signed int _a28, signed int _a32) {
signed char* _v0;
signed int _v8;
signed int _v12;
signed int _v16;
signed int _v20;
intOrPtr _v24;
char _v28;
signed int _v32;
signed int _v36;
signed int _v40;
signed int _v44;
intOrPtr _v48;
signed int _v52;
intOrPtr _v56;
intOrPtr _v60;
void _v64;
signed int _v68;
char _v84;
intOrPtr _v88;
signed int _v92;
intOrPtr _v100;
void _v104;
intOrPtr* _v112;
signed char* _v184;
void* __ebx;
void* __edi;
void* __esi;
void* __ebp;
void* _t201;
signed int _t202;
char _t203;
signed int _t205;
signed int _t207;
signed char* _t208;
signed int _t209;
signed int _t210;
signed int _t214;
void* _t217;
signed char* _t220;
void* _t222;
void* _t224;
signed char _t228;
signed int _t229;
void* _t231;
void* _t234;
void* _t237;
signed int _t247;
void* _t250;
intOrPtr* _t251;
signed int _t252;
intOrPtr _t253;
signed int _t254;
void* _t259;
void* _t264;
void* _t265;
signed int _t269;
signed char* _t270;
intOrPtr* _t271;
signed char _t272;
signed int _t273;
signed int _t274;
intOrPtr* _t276;
signed int _t277;
signed int _t278;
signed int _t283;
signed int _t290;
signed int _t291;
signed int _t294;
signed int _t296;
signed char* _t297;
signed int _t298;
signed char _t299;
signed int* _t301;
signed char* _t304;
signed int _t314;
signed int _t315;
signed int _t317;
signed int _t327;
void* _t329;
void* _t331;
void* _t332;
void* _t333;
void* _t334;
_t296 = __edx;
_push(_t315);
_t301 = _a20;
_v20 = 0;
_v28 = 0;
_t275 = E0015707A(_a8, _a16, _t301);
_t332 = _t331 + 0xc;
_v12 = _t275;
if(_t275 < 0xffffffff || _t275 >= _t301[1]) {
L67:
_t201 = E00158A26(_t270, _t275, _t296, _t301, _t315);
asm("int3");
_t329 = _t332;
_t333 = _t332 - 0x38;
_push(_t270);
_t271 = _v112;
__eflags = *_t271 - 0x80000003;
if( *_t271 == 0x80000003) {
return _t201;
} else {
_push(_t315);
_push(_t301);
_t202 = E00155DCC(_t271, _t275, _t296, _t301, _t315);
__eflags = *(_t202 + 8);
if( *(_t202 + 8) != 0) {
__imp__EncodePointer(0);
_t315 = _t202;
_t222 = E00155DCC(_t271, _t275, _t296, 0, _t315);
__eflags = *((intOrPtr*)(_t222 + 8)) - _t315;
if( *((intOrPtr*)(_t222 + 8)) != _t315) {
__eflags = *_t271 - 0xe0434f4d;
if( *_t271 != 0xe0434f4d) {
__eflags = *_t271 - 0xe0434352;
if( *_t271 != 0xe0434352) {
_t214 = E00154F23(_t296, 0, _t315, _t271, _a4, _a8, _a12, _a16, _a24, _a28);
_t333 = _t333 + 0x1c;
__eflags = _t214;
if(_t214 != 0) {
L84:
return _t214;
}
}
}
}
}
_t203 = _a16;
_v28 = _t203;
_v24 = 0;
__eflags = *(_t203 + 0xc);
if( *(_t203 + 0xc) > 0) {
_push(_a24);
E00154E56(_t271, _t275, 0, _t315, &_v44, &_v28, _a20, _a12, _t203);
_t298 = _v40;
_t334 = _t333 + 0x18;
_t214 = _v44;
_v20 = _t214;
_v12 = _t298;
__eflags = _t298 - _v32;
if(_t298 >= _v32) {
goto L84;
}
_t277 = _t298 * 0x14;
__eflags = _t277;
_v16 = _t277;
do {
_t278 = 5;
_t217 = memcpy( &_v64, *((intOrPtr*)( *_t214 + 0x10)) + _t277, _t278 << 2);
_t334 = _t334 + 0xc;
__eflags = _v64 - _t217;
if(_v64 > _t217) {
goto L83;
}
__eflags = _t217 - _v60;
if(_t217 > _v60) {
goto L83;
}
_t220 = _v48 + 0xfffffff0 + (_v52 << 4);
_t283 = _t220[4];
__eflags = _t283;
if(_t283 == 0) {
L81:
__eflags = *_t220 & 0x00000040;
if(( *_t220 & 0x00000040) == 0) {
_push(0);
_push(1);
E00156091(_t298, _t271, _a4, _a8, _a12, _a16, _t220, 0, &_v64, _a24, _a28);
_t298 = _v12;
_t334 = _t334 + 0x30;
}
goto L83;
}
__eflags = *((char*)(_t283 + 8));
if( *((char*)(_t283 + 8)) != 0) {
goto L83;
}
goto L81;
L83:
_t298 = _t298 + 1;
_t214 = _v20;
_t277 = _v16 + 0x14;
_v12 = _t298;
_v16 = _t277;
__eflags = _t298 - _v32;
} while (_t298 < _v32);
goto L84;
}
E00158A26(_t271, _t275, _t296, 0, _t315);
asm("int3");
_push(_t329);
_t297 = _v184;
_push(_t271);
_push(_t315);
_push(0);
_t205 = _t297[4];
__eflags = _t205;
if(_t205 == 0) {
L109:
_t207 = 1;
__eflags = 1;
} else {
_t276 = _t205 + 8;
__eflags = *_t276;
if( *_t276 == 0) {
goto L109;
} else {
__eflags = *_t297 & 0x00000080;
_t304 = _v0;
if(( *_t297 & 0x00000080) == 0) {
L91:
_t272 = _t304[4];
_t317 = 0;
__eflags = _t205 - _t272;
if(_t205 == _t272) {
L101:
__eflags = *_t304 & 0x00000002;
if(( *_t304 & 0x00000002) == 0) {
L103:
_t208 = _a4;
__eflags = *_t208 & 0x00000001;
if(( *_t208 & 0x00000001) == 0) {
L105:
__eflags = *_t208 & 0x00000002;
if(( *_t208 & 0x00000002) == 0) {
L107:
_t317 = 1;
__eflags = 1;
} else {
__eflags = *_t297 & 0x00000002;
if(( *_t297 & 0x00000002) != 0) {
goto L107;
}
}
} else {
__eflags = *_t297 & 0x00000001;
if(( *_t297 & 0x00000001) != 0) {
goto L105;
}
}
} else {
__eflags = *_t297 & 0x00000008;
if(( *_t297 & 0x00000008) != 0) {
goto L103;
}
}
_t207 = _t317;
} else {
_t184 = _t272 + 8; // 0x6e
_t209 = _t184;
while(1) {
_t273 = *_t276;
__eflags = _t273 - *_t209;
if(_t273 != *_t209) {
break;
}
__eflags = _t273;
if(_t273 == 0) {
L97:
_t210 = _t317;
} else {
_t274 = *((intOrPtr*)(_t276 + 1));
__eflags = _t274 - *((intOrPtr*)(_t209 + 1));
if(_t274 != *((intOrPtr*)(_t209 + 1))) {
break;
} else {
_t276 = _t276 + 2;
_t209 = _t209 + 2;
__eflags = _t274;
if(_t274 != 0) {
continue;
} else {
goto L97;
}
}
}
L99:
__eflags = _t210;
if(_t210 == 0) {
goto L101;
} else {
_t207 = 0;
}
goto L110;
}
asm("sbb eax, eax");
_t210 = _t209 | 0x00000001;
__eflags = _t210;
goto L99;
}
} else {
__eflags = *_t304 & 0x00000010;
if(( *_t304 & 0x00000010) != 0) {
goto L109;
} else {
goto L91;
}
}
}
}
L110:
return _t207;
}
} else {
_t270 = _a4;
if( *_t270 != 0xe06d7363 || _t270[0x10] != 3 || _t270[0x14] != 0x19930520 && _t270[0x14] != 0x19930521 && _t270[0x14] != 0x19930522) {
L22:
_t296 = _a12;
_v8 = _t296;
goto L24;
} else {
_t315 = 0;
if(_t270[0x1c] != 0) {
goto L22;
} else {
_t224 = E00155DCC(_t270, _t275, _t296, _t301, 0);
if( *((intOrPtr*)(_t224 + 0x10)) == 0) {
L61:
return _t224;
} else {
_t270 = *(E00155DCC(_t270, _t275, _t296, _t301, 0) + 0x10);
_t259 = E00155DCC(_t270, _t275, _t296, _t301, 0);
_v28 = 1;
_v8 = *((intOrPtr*)(_t259 + 0x14));
if(_t270 == 0 || *_t270 == 0xe06d7363 && _t270[0x10] == 3 && (_t270[0x14] == 0x19930520 || _t270[0x14] == 0x19930521 || _t270[0x14] == 0x19930522) && _t270[0x1c] == _t315) {
goto L67;
} else {
if( *((intOrPtr*)(E00155DCC(_t270, _t275, _t296, _t301, _t315) + 0x1c)) == _t315) {
L23:
_t296 = _v8;
_t275 = _v12;
L24:
_v52 = _t301;
_v48 = 0;
__eflags = *_t270 - 0xe06d7363;
if( *_t270 != 0xe06d7363) {
L57:
__eflags = _t301[3];
if(_t301[3] <= 0) {
goto L60;
} else {
__eflags = _a24;
if(_a24 != 0) {
goto L67;
} else {
_push(_a32);
_push(_a28);
_push(_t275);
_push(_t301);
_push(_a16);
_push(_t296);
_push(_a8);
_push(_t270);
L68();
_t332 = _t332 + 0x20;
goto L60;
}
}
} else {
__eflags = _t270[0x10] - 3;
if(_t270[0x10] != 3) {
goto L57;
} else {
__eflags = _t270[0x14] - 0x19930520;
if(_t270[0x14] == 0x19930520) {
L29:
_t315 = _a32;
__eflags = _t301[3];
if(_t301[3] > 0) {
_push(_a28);
E00154E56(_t270, _t275, _t301, _t315, &_v68, &_v52, _t275, _a16, _t301);
_t296 = _v64;
_t332 = _t332 + 0x18;
_t247 = _v68;
_v44 = _t247;
_v16 = _t296;
__eflags = _t296 - _v56;
if(_t296 < _v56) {
_t290 = _t296 * 0x14;
__eflags = _t290;
_v32 = _t290;
do {
_t291 = 5;
_t250 = memcpy( &_v104, *((intOrPtr*)( *_t247 + 0x10)) + _t290, _t291 << 2);
_t332 = _t332 + 0xc;
__eflags = _v104 - _t250;
if(_v104 <= _t250) {
__eflags = _t250 - _v100;
if(_t250 <= _v100) {
_t294 = 0;
_v20 = 0;
__eflags = _v92;
if(_v92 != 0) {
_t299 = _t270[0x1c];
_t251 = *((intOrPtr*)(_t299 + 0xc));
_t252 = _t251 + 4;
__eflags = _t252;
_v36 = _t252;
_t253 = _v88;
_v40 = *_t251;
_v24 = _t253;
do {
asm("movsd");
asm("movsd");
asm("movsd");
asm("movsd");
_t327 = _v40;
_t314 = _v36;
__eflags = _t327;
if(_t327 <= 0) {
goto L40;
} else {
while(1) {
_push(_t299);
_push( *_t314);
_t254 = &_v84;
_push(_t254);
L87();
_t332 = _t332 + 0xc;
__eflags = _t254;
if(_t254 != 0) {
break;
}
_t299 = _t270[0x1c];
_t327 = _t327 - 1;
_t314 = _t314 + 4;
__eflags = _t327;
if(_t327 > 0) {
continue;
} else {
_t294 = _v20;
_t253 = _v24;
goto L40;
}
goto L43;
}
_push(_a24);
_push(_v28);
E00156091(_t299, _t270, _a8, _v8, _a16, _a20, &_v84, *_t314, &_v104, _a28, _a32);
_t332 = _t332 + 0x30;
}
L43:
_t296 = _v16;
goto L44;
L40:
_t294 = _t294 + 1;
_t253 = _t253 + 0x10;
_v20 = _t294;
_v24 = _t253;
__eflags = _t294 - _v92;
} while (_t294 != _v92);
goto L43;
}
}
}
L44:
_t296 = _t296 + 1;
_t247 = _v44;
_t290 = _v32 + 0x14;
_v16 = _t296;
_v32 = _t290;
__eflags = _t296 - _v56;
} while (_t296 < _v56);
_t301 = _a20;
_t315 = _a32;
}
}
__eflags = _a24;
if(__eflags != 0) {
_push(1);
E0015536A(_t270, _t301, _t315, __eflags);
_t275 = _t270;
}
__eflags = ( *_t301 & 0x1fffffff) - 0x19930521;
if(( *_t301 & 0x1fffffff) < 0x19930521) {
L60:
_t224 = E00155DCC(_t270, _t275, _t296, _t301, _t315);
__eflags = *(_t224 + 0x1c);
if( *(_t224 + 0x1c) != 0) {
goto L67;
} else {
goto L61;
}
} else {
_t228 = _t301[8] >> 2;
__eflags = _t301[7];
if(_t301[7] != 0) {
__eflags = _t228 & 0x00000001;
if((_t228 & 0x00000001) == 0) {
_push(_t301[7]);
_t229 = E00156B26(_t270, _t301, _t315, _t270);
_pop(_t275);
__eflags = _t229;
if(_t229 == 0) {
goto L64;
} else {
goto L60;
}
} else {
goto L54;
}
} else {
__eflags = _t228 & 0x00000001;
if((_t228 & 0x00000001) == 0) {
goto L60;
} else {
__eflags = _a28;
if(_a28 != 0) {
goto L60;
} else {
L54:
*(E00155DCC(_t270, _t275, _t296, _t301, _t315) + 0x10) = _t270;
_t237 = E00155DCC(_t270, _t275, _t296, _t301, _t315);
_t286 = _v8;
*((intOrPtr*)(_t237 + 0x14)) = _v8;
goto L62;
}
}
}
}
} else {
__eflags = _t270[0x14] - 0x19930521;
if(_t270[0x14] == 0x19930521) {
goto L29;
} else {
__eflags = _t270[0x14] - 0x19930522;
if(_t270[0x14] != 0x19930522) {
goto L57;
} else {
goto L29;
}
}
}
}
}
} else {
_v16 = *((intOrPtr*)(E00155DCC(_t270, _t275, _t296, _t301, _t315) + 0x1c));
_t264 = E00155DCC(_t270, _t275, _t296, _t301, _t315);
_push(_v16);
*(_t264 + 0x1c) = _t315;
_t265 = E00156B26(_t270, _t301, _t315, _t270);
_pop(_t286);
if(_t265 != 0) {
goto L23;
} else {
_t301 = _v16;
_t353 = *_t301 - _t315;
if( *_t301 <= _t315) {
L62:
E0015783D(_t270, _t286, _t296, _t301, _t315, __eflags);
} else {
while(1) {
_t286 = *((intOrPtr*)(_t315 + _t301[1] + 4));
if(E001567AF( *((intOrPtr*)(_t315 + _t301[1] + 4)), _t353, 0x292230) != 0) {
goto L63;
}
_t315 = _t315 + 0x10;
_t269 = _v20 + 1;
_v20 = _t269;
_t353 = _t269 - *_t301;
if(_t269 >= *_t301) {
goto L62;
} else {
continue;
}
goto L63;
}
}
L63:
_push(1);
_push(_t270);
E0015536A(_t270, _t301, _t315, __eflags);
_t275 = &_v64;
E00156797( &_v64);
E00155D44( &_v64, 0x1670d4);
L64:
*(E00155DCC(_t270, _t275, _t296, _t301, _t315) + 0x10) = _t270;
_t231 = E00155DCC(_t270, _t275, _t296, _t301, _t315);
_t275 = _v8;
*(_t231 + 0x14) = _v8;
__eflags = _t315;
if(_t315 == 0) {
_t315 = _a8;
}
E00155049(_t275, _t315, _t270);
E00156A26(_a8, _a16, _t301);
_t234 = E00156BE3(_t301);
_t332 = _t332 + 0x10;
_push(_t234);
E0015699D(_t270, _t275, _t296, _t301, _t315, __eflags);
goto L67;
}
}
}
}
}
}
}
}
0x00156111
0x00156118
0x0015611a
0x00156123
0x00156129
0x00156131
0x00156133
0x00156136
0x0015613c
0x001564b0
0x001564b0
0x001564b5
0x001564b7
0x001564b9
0x001564bc
0x001564bd
0x001564c0
0x001564c6
0x001565e5
0x001564cc
0x001564cc
0x001564cd
0x001564ce
0x001564d5
0x001564d8
0x001564db
0x001564e1
0x001564e3
0x001564e8
0x001564eb
0x001564ed
0x001564f3
0x001564f5
0x001564fb
0x00156510
0x00156515
0x00156518
0x0015651a
0x001565e1
0x00000000
0x001565e2
0x0015651a
0x001564fb
0x001564f3
0x001564eb
0x00156520
0x00156523
0x00156526
0x00156529
0x0015652c
0x00156532
0x00156544
0x00156549
0x0015654c
0x0015654f
0x00156552
0x00156555
0x00156558
0x0015655b
0x00000000
0x00000000
0x00156561
0x00156561
0x00156564
0x00156567
0x00156576
0x00156577
0x00156577
0x00156579
0x0015657c
0x00000000
0x00000000
0x0015657e
0x00156581
0x00000000
0x00000000
0x0015658f
0x00156591
0x00156594
0x00156596
0x0015659e
0x0015659e
0x001565a1
0x001565a3
0x001565a5
0x001565c1
0x001565c6
0x001565c9
0x001565c9
0x00000000
0x001565a1
0x00156598
0x0015659c
0x00000000
0x00000000
0x00000000
0x001565cc
0x001565cf
0x001565d0
0x001565d3
0x001565d6
0x001565d9
0x001565dc
0x001565dc
0x00000000
0x00156567
0x001565e6
0x001565eb
0x001565ec
0x001565ef
0x001565f2
0x001565f3
0x001565f4
0x001565f5
0x001565f8
0x001565fa
0x00156672
0x00156674
0x00156674
0x001565fc
0x001565fc
0x001565ff
0x00156602
0x00000000
0x00156604
0x00156604
0x00156607
0x0015660a
0x00156611
0x00156611
0x00156614
0x00156616
0x00156618
0x0015664a
0x0015664a
0x0015664d
0x00156654
0x00156654
0x00156657
0x0015665a
0x00156661
0x00156661
0x00156664
0x0015666b
0x0015666d
0x0015666d
0x00156666
0x00156666
0x00156669
0x00000000
0x00000000
0x00156669
0x0015665c
0x0015665c
0x0015665f
0x00000000
0x00000000
0x0015665f
0x0015664f
0x0015664f
0x00156652
0x00000000
0x00000000
0x00156652
0x0015666e
0x0015661a
0x0015661a
0x0015661a
0x0015661d
0x0015661d
0x0015661f
0x00156621
0x00000000
0x00000000
0x00156623
0x00156625
0x00156639
0x00156639
0x00156627
0x00156627
0x0015662a
0x0015662d
0x00000000
0x0015662f
0x0015662f
0x00156632
0x00156635
0x00156637
0x00000000
0x00000000
0x00000000
0x00000000
0x00156637
0x0015662d
0x00156642
0x00156642
0x00156644
0x00000000
0x00156646
0x00156646
0x00156646
0x00000000
0x00156644
0x0015663d
0x0015663f
0x0015663f
0x00000000
0x0015663f
0x0015660c
0x0015660c
0x0015660f
0x00000000
0x00000000
0x00000000
0x00000000
0x0015660f
0x0015660a
0x00156602
0x00156675
0x00156679
0x00156679
0x0015614b
0x0015614b
0x00156154
0x00156251
0x00156251
0x00156254
0x00000000
0x00156183
0x00156183
0x00156188
0x00000000
0x0015618e
0x0015618e
0x00156196
0x0015644a
0x0015644e
0x0015619c
0x001561a1
0x001561a4
0x001561a9
0x001561b0
0x001561b5
0x00000000
0x001561ed
0x001561f5
0x00156259
0x00156259
0x0015625c
0x0015625f
0x00156261
0x00156264
0x00156267
0x0015626d
0x00156419
0x00156419
0x0015641c
0x00000000
0x0015641e
0x0015641e
0x00156421
0x00000000
0x00156427
0x00156427
0x0015642a
0x0015642d
0x0015642e
0x0015642f
0x00156432
0x00156433
0x00156436
0x00156437
0x0015643c
0x00000000
0x0015643c
0x00156421
0x00156273
0x00156273
0x00156277
0x00000000
0x0015627d
0x0015627d
0x00156284
0x0015629c
0x0015629c
0x0015629f
0x001562a2
0x001562a8
0x001562b8
0x001562bd
0x001562c0
0x001562c3
0x001562c6
0x001562c9
0x001562cc
0x001562cf
0x001562d5
0x001562d5
0x001562d8
0x001562db
0x001562ea
0x001562eb
0x001562eb
0x001562ed
0x001562f0
0x001562f6
0x001562f9
0x001562ff
0x00156301
0x00156304
0x00156307
0x0015630d
0x00156310
0x00156315
0x00156315
0x00156318
0x0015631b
0x0015631e
0x00156321
0x00156324
0x00156329
0x0015632a
0x0015632b
0x0015632c
0x0015632d
0x00156330
0x00156333
0x00156335
0x00000000
0x00156337
0x00156337
0x00156337
0x00156338
0x0015633a
0x0015633d
0x0015633e
0x00156343
0x00156346
0x00156348
0x00000000
0x00000000
0x0015634a
0x0015634d
0x0015634e
0x00156351
0x00156353
0x00000000
0x00156355
0x00156355
0x00156358
0x00000000
0x00156358
0x00000000
0x00156353
0x0015636c
0x00156372
0x0015638f
0x00156394
0x00156394
0x00156397
0x00156397
0x00000000
0x0015635b
0x0015635b
0x0015635c
0x0015635f
0x00156362
0x00156365
0x00156365
0x00000000
0x0015636a
0x00156307
0x001562f9
0x0015639a
0x0015639d
0x0015639e
0x001563a1
0x001563a4
0x001563a7
0x001563aa
0x001563aa
0x001563b3
0x001563b6
0x001563b6
0x001562cf
0x001563b9
0x001563bd
0x001563bf
0x001563c2
0x001563c8
0x001563c8
0x001563d0
0x001563d5
0x0015643f
0x0015643f
0x00156444
0x00156448
0x00000000
0x00000000
0x00000000
0x00000000
0x001563d7
0x001563da
0x001563dd
0x001563e1
0x001563ef
0x001563f1
0x00156408
0x0015640c
0x00156412
0x00156413
0x00156415
0x00000000
0x00156417
0x00000000
0x00156417
0x00000000
0x00000000
0x00000000
0x001563e3
0x001563e3
0x001563e5
0x00000000
0x001563e7
0x001563e7
0x001563eb
0x00000000
0x001563ed
0x001563f3
0x001563f8
0x001563fb
0x00156400
0x00156403
0x00000000
0x00156403
0x001563eb
0x001563e5
0x001563e1
0x00156286
0x00156286
0x0015628d
0x00000000
0x0015628f
0x0015628f
0x00156296
0x00000000
0x00000000
0x00000000
0x00000000
0x00156296
0x0015628d
0x00156284
0x00156277
0x001561f7
0x001561ff
0x00156202
0x00156207
0x0015620b
0x0015620e
0x00156214
0x00156217
0x00000000
0x00156219
0x00156219
0x0015621c
0x0015621e
0x0015644f
0x0015644f
0x00000000
0x00156224
0x0015622c
0x00156237
0x00000000
0x00000000
0x00156240
0x00156243
0x00156244
0x00156247
0x00156249
0x00000000
0x0015624f
0x00000000
0x0015624f
0x00000000
0x00156249
0x00156224
0x00156454
0x00156454
0x00156456
0x00156457
0x0015645e
0x00156461
0x0015646f
0x00156474
0x00156479
0x0015647c
0x00156481
0x00156484
0x00156487
0x00156489
0x0015648b
0x0015648b
0x00156490
0x0015649c
0x001564a2
0x001564a7
0x001564aa
0x001564ab
0x00000000
0x001564ab
0x00156217
0x001561f5
0x001561b5
0x00156196
0x00156188
0x00156154