Function at 0x10052ac0
Capabilities:
Check http status code
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x118
mov eax, dword [0x100d5134]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov eax, dword [ebp + 8]
fldz
mov ecx, dword [eax + 4]
mov esi, dword [eax]
mov dword [ebp - 0x48], ecx
mov ecx, dword [eax + 8]
mov dword [ebp - 8], ecx
xor ecx, ecx
cmp dword [ebp + 0x18], 2
fst dword [ebp - 0x98]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0xac], ecx
mov dword [ebp - 0xd8], ecx
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0xc8], 0
mov ecx, dword [esi + 8]
fst dword [ebp - 0x90]
mov dword [ebp - 0x58], ecx
mov ecx, dword [esi + 0x20]
fst dword [ebp - 0xc4]
fst dword [ebp - 0x60]
mov dword [ebp - 0x88], ecx
mov ecx, dword [eax + 0x20]
fst dword [ebp - 0xa0]
mov edi, dword [esi + 4]
mov dword [ebp - 0xc], ecx
mov ecx, dword [eax + 0x24]
fstp dword [ebp - 0x44]
mov dword [ebp - 0x38], 0xf
mov dword [ebp - 0x18], esi
mov dword [ebp - 0xa4], edi
mov dword [ebp - 0x14], ecx
jl 0x1005489d
cmp dword [ebp + 0xc], 0
je 0x1005489d
mov ebx, dword [eax + 0x1c]
xor ecx, ecx
imul ebx, dword [ebp + 0x10]
mov edx, dword [esi + 0x24]
mov dword [ebp - 0x10], ecx
test edx, edx
js 0x10052b90
mov esi, dword [esi + 0x2c]
mov eax, esi
shl eax, cl
cmp eax, ebx
je 0x10052b98
inc ecx
mov dword [ebp - 0x10], ecx
cmp ecx, edx
jle 0x10052b80
cmp ecx, edx
jg 0x1005489d
mov edx, dword [ebp - 0x18]
mov eax, 1
shl eax, cl
mov esi, dword [ebp + 8]
mov dword [ebp - 0x7c], eax
mov ecx, dword [edx + 0x2c]
imul ecx, eax
mov eax, edi
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x70], ecx
mov ecx, dword [ebp - 0x48]
imul eax, ecx
imul edx, ecx
add eax, 0x3d
mov dword [ebp - 0xe4], edx
lea eax, [esi + eax*4]
mov dword [ebp - 0x34], eax
lea eax, [edi*4]
mov edi, dword [ebp + 0x1c]
mov dword [ebp - 0xa8], eax
add eax, 0x1000
imul eax, ecx
lea ecx, [edx*4]
mov dword [ebp - 0xc0], ecx
add eax, 0xf4
add eax, esi
mov dword [ebp - 0x74], eax
lea edx, [ecx + eax]
lea eax, [eax + ecx*2]
mov dword [ebp - 0xd4], edx
mov dword [ebp - 0xb8], eax
add eax, ecx
mov dword [ebp - 0xd0], eax
test edi, edi
jne 0x10052c2a
mov edx, 1
xor ecx, ecx
mov dword [ebp - 0xb0], edx
jmp 0x10052c49
push edi
call fcn.1005f260
mov edx, dword [edi + 0x14]
add esp, 4
mov dword [ebp - 0xb0], eax
bsr eax, dword [edi + 0x1c]
sub edx, eax
dec edx
lea ecx, [edx + 4]
sar ecx, 3
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x3c], edx
cmp eax, 0x4fb
jl 0x10052c61
mov eax, 0x4fb
mov dword [ebp + 0x18], eax
sub eax, ecx
cmp dword [esi + 0x2c], 0
mov dword [ebp - 0x5c], eax
je 0x10052ca0
mov edi, dword [esi + 0x28]
cmp edi, 0xffffffff
je 0x10052ca0
mov eax, dword [ebp - 0x18]
mov ecx, edi
imul ecx, ebx
mov ebx, dword [ebp - 0x1c]
mov esi, dword [eax]
sar esi, 3
mov eax, esi
sar eax, 1
add eax, ecx
cdq
idiv esi
mov esi, eax
mov dword [ebp - 0xbc], eax
sar esi, 6
mov dword [ebp - 0x54], esi
mov esi, dword [ebp + 0x18]
jmp 0x10052d11
mov edi, dword [esi + 0x28]
mov ecx, edi
imul ecx, ebx
mov dword [ebp - 0xbc], 0
cmp edx, 1
jle 0x10052cb9
add ecx, edx
cmp edi, 0xffffffff
je 0x10052d04
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
lea ecx, [ecx + eax*4]
lea esi, [eax*8]
mov eax, ecx
cdq
xor ecx, ecx
idiv esi
mov edx, dword [ebp + 8]
mov esi, dword [ebp + 0x18]
cmp dword [edx + 0x30], ecx
setne cl
sub eax, ecx
mov ecx, esi
cmp esi, eax
jl 0x10052cea
mov ecx, eax
cmp ecx, 2
jge 0x10052cf9
mov esi, 2
mov dword [ebp + 0x18], esi
jmp 0x10052d07
cmp esi, eax
jl 0x10052d07
mov esi, eax
mov dword [ebp + 0x18], esi
jmp 0x10052d07
mov esi, dword [ebp + 0x18]
mov ebx, dword [ebp - 0x1c]
mov eax, esi
sub eax, ebx
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 8]
mov edx, 0x190
mov ecx, dword [ebp - 0x10]
sar edx, cl
sub edx, 0x32
lea eax, [eax + eax*4]
lea eax, [eax*8 + 0x14]
imul edx, eax
mov eax, 3
sub eax, ecx
mov dword [ebp - 0xcc], eax
mov ecx, eax
imul eax, esi, 0x190
shl eax, cl
sub eax, edx
mov dword [ebp - 0x84], eax
cmp edi, 0xffffffff
je 0x10052d5e
sub edi, edx
cmp eax, edi
jl 0x10052d5e
mov dword [ebp - 0x84], edi
mov edi, dword [ebp + 0x1c]
test edi, edi
jne 0x10052d81
push esi
push dword [ebp + 0x14]
lea eax, [ebp - 0x118]
push eax
call fcn.10057270
lea edi, [ebp - 0x118]
add esp, 0xc
mov dword [ebp + 0x1c], edi
mov ecx, dword [ebp - 0xbc]
mov esi, dword [ebp - 0x3c]
test ecx, ecx
jle 0x10052dda
mov eax, dword [ebp + 8]
cmp dword [eax + 0x34], 0
je 0x10052dda
add ecx, ecx
sub ecx, dword [eax + 0xd0]
lea eax, [esi - 1]
sar ecx, 6
neg eax
sbb eax, eax
and eax, 0xfffffffe
add eax, 2
mov edx, eax
cmp eax, ecx
jg 0x10052db7
mov edx, ecx
cmp edx, dword [ebp - 0x5c]
jge 0x10052dda
cmp eax, ecx
jg 0x10052dc2
mov eax, ecx
cmp eax, dword [ebp - 0x5c]
jge 0x10052dda
lea ecx, [eax + ebx]
mov dword [ebp - 0x5c], eax
push ecx
push edi
mov dword [ebp + 0x18], ecx
call fcn.10057430
add esp, 8
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x64], ecx
lea edi, [eax*8]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x68], edi
mov eax, dword [eax + 0xc]
cmp ecx, eax
jle 0x10052dfa
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x70]
add eax, dword [ebp - 0xa4]
mov dword [ebp - 0x20], eax
imul eax, dword [ebp - 0x48]
shl eax, 2
call fcn.10081b00
mov eax, dword [ebp - 0x70]
sub eax, dword [ebp - 0xa4]
imul eax, dword [ebp - 8]
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x4c], esp
cdq
idiv dword [ecx + 0x1c]
fld dword [ecx + 0xe0]
push eax
fstp dword [ebp - 0x30]
push ebx
mov dword [ebp - 0x8c], eax
call fcn.100549f0
fld dword [ebp - 0x30]
add esp, 8
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x10052e55
fstp st(0)
jmp 0x10052e58
fstp dword [ebp - 0x30]
mov eax, dword [ebp - 0xa4]
imul eax, dword [ebp - 8]
mov ecx, dword [ebp + 8]
cdq
idiv dword [ecx + 0x1c]
push eax
mov eax, dword [ebp - 0x8c]
lea eax, [ebx + eax*4]
push eax
call fcn.100549f0
mov edx, dword [ebp + 8]
add esp, 8
fst dword [edx + 0xe0]
fld dword [ebp - 0x30]
fcom st(1)
fnstsw ax
test ah, 0x41
je 0x10052e98
fstp st(0)
fst dword [ebp - 0x30]
jmp 0x10052e9a
fstp st(1)
mov ecx, dword [edx + 0x3c]
mov eax, 1
shl eax, cl
mov dword [ebp - 0x8c], eax
fild dword [ebp - 0x8c]
fld1
fdivrp st(1)
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x10052ec4
mov eax, 1
jmp 0x10052ec6
xor eax, eax
mov dword [ebp - 0x94], eax
cmp esi, 1
jne 0x10052f77
mov ebx, dword [ebp + 0x1c]
fstp st(0)
push 0xf
push eax
push ebx
call fcn.10056f60
add esp, 0xc
cmp dword [ebp - 0x94], 0
je 0x10052f38
cmp dword [ebp - 0xbc], 0
jle 0x10052f29
mov eax, dword [ebp - 0x1c]
add eax, 2
cmp dword [ebp + 0x18], eax
jl 0x10052f08
mov dword [ebp + 0x18], eax
jmp 0x10052f0b
mov eax, dword [ebp + 0x18]
push eax
lea edi, [eax*8]
mov dword [ebp - 0x54], eax
push ebx
mov dword [ebp - 0x68], edi
mov dword [ebp - 0x5c], 2
call fcn.10057430
add esp, 8
bsr eax, dword [ebx + 0x1c]
mov ecx, edi
inc eax
mov dword [ebp - 0x3c], ecx
add eax, ecx
mov dword [ebx + 0x14], eax
mov edx, dword [ebp + 8]
fld dword [ebp - 0x30]
mov ecx, dword [ebp - 0x18]
lea edi, [edx + 0xc0]
mov ebx, dword [ebp - 0x4c]
add ecx, 0x10
fld dword [0x100ad6a4]
xor esi, esi
add ebx, dword [ebp - 0xa8]
mov dword [ebp - 0x8c], ecx
cmp dword [edx + 0x10], 0
je 0x10052f83
fcompp
fnstsw ax
test ah, 5
jp 0x10052f87
mov eax, 1
jmp 0x10052f89
mov dword [ebp - 0x94], 0
jmp 0x10052f3e
fstp st(0)
fstp st(0)
xor eax, eax
push eax
push edi
push ecx
push dword [edx + 0x1c]
push dword [ebp - 0x48]
push dword [ebp - 0x70]
push ebx
push dword [ebp + 0xc]
call fcn.10054a40
mov ecx, dword [ebp - 0x20]
inc esi
add dword [ebp + 0xc], 4
add esp, 0x20
fld dword [ebp - 0x30]
add edi, 4
fld dword [0x100ad6a4]
mov edx, dword [ebp + 8]
lea eax, [ecx*4]
mov ecx, dword [ebp - 0x8c]
add ebx, eax
cmp esi, dword [ebp - 0x48]
jl 0x10052f61
mov ecx, dword [ebp - 0x5c]
mov ebx, edx
fstp st(0)
fstp st(0)
cmp dword [ebx + 0x40], 0
je 0x10052fe0
cmp ecx, 3
jg 0x10052fed
mov eax, dword [ebp - 8]
lea eax, [eax + eax*2]
shl eax, 2
cmp ecx, eax
jle 0x1005300f
cmp dword [ebp - 0xc], 0
jne 0x1005300f
cmp dword [ebp - 0x94], 0
jne 0x1005300f
cmp dword [ebx + 0x14], 0
jne 0x1005300f
cmp dword [ebx + 0x18], 5
jl 0x1005300f
mov eax, 1
jmp 0x10053011
xor eax, eax
mov edx, dword [ebx + 0x64]
lea esi, [ebx + 0x78]
push esi
push ecx
push eax
mov edi, dword [ebp - 0x4c]
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x98]
mov dword [ebp - 0x8c], edx
push eax
lea eax, [ebp - 0x38]
mov dword [ebp - 0xa8], esi
push eax
push edx
push dword [ebp - 0x70]
push dword [ebp - 0x48]
push dword [ebp - 0x34]
push edi
push ebx
call fcn.10056290
fld dword [0x100cca90]
mov ecx, eax
fld dword [ebp - 0x98]
add esp, 0x30
fcomp st(1)
mov dword [ebp - 0xb4], ecx
fnstsw ax
test ah, 0x41
je 0x10053075
fcomp dword [ebx + 0x6c]
fnstsw ax
test ah, 5
jp 0x100530c2
jmp 0x10053077
fstp st(0)
cmp dword [esi], 0
je 0x1005308c
fld dword [ebx + 0x7c]
fcomp qword [0x100ad660]
fnstsw ax
test ah, 0x41
jne 0x100530c2
fild dword [ebp - 0x38]
fild dword [ebx + 0x68]
fld qword [0x100ad678]
fmul st(1)
fcomp st(2)
fnstsw ax
test ah, 5
jnp 0x100530b4
fmul qword [0x100ad670]
fcompp
fnstsw ax
test ah, 0x41
jne 0x100530c2
jmp 0x100530b8
fstp st(0)
fstp st(0)
mov dword [ebp - 0xac], 1
test ecx, ecx
jne 0x100530fc
mov ecx, dword [ebp - 0xc]
test ecx, ecx
jne 0x100530f1
mov eax, dword [ebp - 0x3c]
add eax, 0x10
cmp eax, dword [ebp - 0x68]
jg 0x100530f1
push 1
push ecx
push dword [ebp + 0x1c]
call fcn.10056f60
mov eax, dword [ebp - 0x38]
add esp, 0xc
mov dword [ebp - 0xa4], eax
jmp 0x10053165
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0xa4], eax
jmp 0x10053168
push 1
push 1
push dword [ebp + 0x1c]
call fcn.10056f60
mov edi, dword [ebp - 0x38]
inc edi
bsr esi, edi
push 6
add esi, 0xfffffffc
push esi
push dword [ebp + 0x1c]
call fcn.10057460
lea eax, [esi + 4]
mov ecx, esi
mov esi, dword [ebp + 0x1c]
mov edx, 0x10
push eax
shl edx, cl
mov eax, edi
sub eax, edx
push eax
push esi
call fcn.10056fa0
push 3
push dword [ebp - 0x1c]
lea eax, [edi - 1]
push esi
mov dword [ebp - 0xa4], eax
call fcn.10056fa0
push 2
push 0x100ad4e0
push dword [ebp - 0x8c]
push esi
call fcn.10057200
mov edi, dword [ebp - 0x4c]
add esp, 0x40
mov ecx, dword [ebp - 0xc]
mov esi, dword [ebx + 0x18]
xor edx, edx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x3c], edx
cmp esi, 1
jl 0x100531ca
cmp dword [ebx + 0x40], edx
jne 0x100531ca
test ecx, ecx
je 0x10053195
cmp dword [ebp - 0x54], 0xf
jge 0x10053195
cmp dword [ebx + 0xb8], 2
je 0x10053195
lea eax, [edx + 1]
jmp 0x10053197
xor eax, eax
lea ecx, [ebp - 0x40]
push ecx
push eax
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x44]
push eax
push dword [ebp - 0x48]
push dword [ebp - 0x20]
push edi
call fcn.10056c50
fld dword [ebp - 0x44]
mov edx, eax
mov esi, dword [ebx + 0x18]
add esp, 0x1c
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x50]
fstp dword [ebp - 0xa0]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x10], 0
jle 0x100531f2
mov ecx, dword [ebp + 0x1c]
bsr eax, dword [ecx + 0x1c]
mov ecx, dword [ecx + 0x14]
sub ecx, eax
add ecx, 2
cmp ecx, dword [ebp - 0x68]
jg 0x100531f2
mov eax, edx
neg eax
sbb eax, eax
and eax, dword [ebp - 0x7c]
mov dword [ebp - 0x3c], eax
jmp 0x10053203
mov dword [ebp - 0x24], 0
mov dword [ebp - 0xd8], 1
mov eax, dword [ebp - 0x70]
imul eax, dword [ebp - 0x48]
shl eax, 2
call fcn.10081b00
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0x44], esp
call fcn.10081b00
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0x78], esp
call fcn.10081b00
cmp dword [ebp - 0x3c], 0
mov dword [ebp - 0x6c], esp
je 0x10053243
cmp esi, 8
jl 0x10053243
mov esi, 1
jmp 0x10053245
xor esi, esi
mov eax, dword [ebp - 0x58]
imul eax, dword [ebp - 8]
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x30], eax
shl eax, 2
call fcn.10081b00
mov edi, esp
test esi, esi
mov esi, dword [ebp - 0x44]
mov dword [ebp - 0x34], edi
je 0x10053329
push dword [ebx + 0x48]
push dword [ebx + 0x1c]
push dword [ebp - 0x10]
push dword [ebp - 0x48]
push dword [ebp - 8]
push esi
push dword [ebp - 0x4c]
push 0
push dword [ebp - 0x18]
call fcn.10054db0
push dword [ebx + 0x48]
push dword [ebp - 0x10]
push dword [ebp - 8]
push dword [ebp - 0x64]
push dword [ebp - 0x78]
push esi
push dword [ebp - 0x18]
call fcn.10061080
add esp, 0x40
push dword [ebp - 8]
push edi
push dword [ebp - 0x78]
push dword [ebp - 0x14]
push dword [ebp - 0x64]
push dword [ebp - 0x18]
call fcn.10064100
mov edx, dword [ebp - 0x30]
add esp, 0x18
xor ecx, ecx
cmp edx, 4
jl 0x1005330d
fild dword [ebp - 0x10]
lea eax, [edi + 8]
add edx, 0xfffffffc
shr edx, 2
inc edx
fld dword [0x100cca98]
fmul st(1), st(0)
lea ecx, [edx*4]
fld st(1)
fadd dword [eax - 8]
fstp dword [eax - 8]
fld st(1)
fadd dword [eax - 4]
fstp dword [eax - 4]
fld st(1)
fadd dword [eax]
fstp dword [eax]
fld st(1)
fadd dword [eax + 4]
fstp dword [eax + 4]
add eax, 0x10
sub edx, 1
jne 0x100532e0
mov edx, dword [ebp - 0x30]
fstp st(1)
jmp 0x10053313
fld dword [0x100cca98]
cmp ecx, edx
jge 0x10053327
fimul dword [ebp - 0x10]
fld st(0)
fadd dword [edi + ecx*4]
fstp dword [edi + ecx*4]
inc ecx
cmp ecx, edx
jl 0x1005331a
fstp st(0)
push dword [ebx + 0x48]
push dword [ebx + 0x1c]
push dword [ebp - 0x10]
push dword [ebp - 0x48]
push dword [ebp - 8]
push esi
push dword [ebp - 0x4c]
push dword [ebp - 0x3c]
push dword [ebp - 0x18]
call fcn.10054db0
add esp, 0x24
cmp dword [ebp - 0x48], 2
jne 0x1005335b
mov eax, dword [ebp - 8]
dec eax
neg eax
sbb eax, eax
and dword [ebp - 0x2c], eax
push dword [ebx + 0x48]
push dword [ebp - 0x10]
push dword [ebp - 8]
push dword [ebp - 0x64]
push dword [ebp - 0x78]
push esi
mov esi, dword [ebp - 0x18]
push esi
call fcn.10061080
fld dword [0x100ad47c]
add esp, 0x1c
cmp dword [ebx + 0x40], 0
mov edx, dword [ebp - 0x14]
je 0x100533c8
mov ecx, 2
cmp edx, ecx
jle 0x100533c8
fld dword [0x100cca60]
mov edi, dword [ebp - 0x78]
fld dword [edi + ecx*4]
fld dword [edi]
fmul st(2)
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x100533ac
fstp st(0)
jmp 0x100533ae
fstp st(1)
fcom st(2)
fnstsw ax
test ah, 0x41
je 0x100533bb
fstp st(0)
fld st(1)
fstp dword [edi + ecx*4]
inc ecx
cmp ecx, edx
jl 0x10053398
mov edi, dword [ebp - 0x34]
fstp st(0)
push dword [ebp - 8]
fstp st(0)
push dword [ebp - 0x6c]
push dword [ebp - 0x78]
push edx
push dword [ebp - 0x64]
push esi
call fcn.10064100
mov ecx, dword [ebp - 0x30]
add esp, 0x18
lea eax, [ecx*4]
call fcn.10081b00
mov eax, dword [ebp - 0x14]
mov esi, esp
shl eax, 2
push eax
push 0
push esi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0xe8], eax
call fcn.100831b0
mov eax, dword [ebp - 0xc]
add esp, 0xc
fld dword [0x100cca84]
fld dword [0x100cca80]
test eax, eax
jne 0x100536d3
cmp dword [ebx + 0xec], 0
je 0x100536d3
cmp dword [ebx + 0x40], 0
jne 0x100536d3
mov eax, dword [ebp + 8]
xor ebx, ebx
fldz
fld st(0)
mov dword [ebp - 0x20], ebx
fld st(1)
mov esi, dword [eax + 0x5c]
mov dword [ebp - 0x28], esi
cmp esi, 2
jge 0x1005345b
mov esi, 2
mov dword [ebp - 0x28], esi
mov edx, dword [ebp - 8]
test edx, edx
jle 0x1005353b
mov edi, dword [ebp - 0x58]
fstp st(3)
fld dword [0x100ad4c0]
xor eax, eax
fld dword [0x100cca98]
mov ecx, edx
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x90], ecx
xor edx, edx
test esi, esi
je 0x10053511
mov edi, 1
sub edi, esi
mov esi, dword [ebp + 8]
mov dword [ebp - 0x20], edi
mov esi, dword [esi + 0xec]
add esi, eax
fld dword [esi]
fcom st(6)
fnstsw ax
test ah, 5
jp 0x100534c8
fcom st(2)
fnstsw ax
test ah, 0x41
jne 0x100534c2
fcom st(4)
fnstsw ax
test ah, 0x41
jne 0x100534ce
jmp 0x100534cc
fstp st(0)
fld st(1)
jmp 0x100534ce
fstp st(0)
fld st(5)
fmul st(1)
mov eax, dword [ebp - 0x88]
add edi, 2
add esi, 4
movsx ecx, word [eax + edx*2 + 2]
movsx eax, word [eax + edx*2]
inc edx
sub ecx, eax
mov dword [ebp - 0x60], ecx
add ebx, ecx
fild dword [ebp - 0x60]
fmul st(1)
faddp st(4)
fimul dword [ebp - 0x20]
mov dword [ebp - 0x20], edi
faddp st(5)
cmp edx, dword [ebp - 0x28]
jl 0x100534a3
mov eax, dword [ebp - 0x50]
mov esi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x90]
mov edi, dword [ebp - 0x58]
mov dword [ebp - 0x20], ebx
lea edx, [edi*4]
add eax, edx
sub ecx, 1
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x90], ecx
jne 0x10053484
mov edx, dword [ebp - 8]
fstp st(1)
fstp st(0)
fld dword [0x100cca80]
fxch st(3)
fild dword [ebp - 0x20]
lea eax, [esi + 1]
lea ecx, [esi - 1]
imul ecx, eax
fdivp st(2)
fxch st(1)
imul ecx, esi
fadd st(3)
fxch st(1)
fmul dword [0x100ccb10]
imul ecx, edx
mov dword [ebp - 0x20], ecx
fidiv dword [ebp - 0x20]
fmul dword [0x100cca98]
fst dword [ebp - 0x60]
fld dword [0x100ad62c]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x1005358a
fstp st(0)
fld dword [0x100ad6a8]
fcom st(1)
fnstsw ax
test ah, 5
jnp 0x10053591
fstp st(1)
fst dword [ebp - 0x60]
jmp 0x10053593
fstp st(0)
mov ecx, dword [ebp - 0x88]
xor esi, esi
mov ebx, dword [ebp - 0x28]
movsx eax, word [ecx + ebx*2]
cdq
sub eax, edx
lea edx, [ecx + 2]
movsx ecx, word [edx]
mov edi, eax
sar edi, 1
cmp ecx, edi
jge 0x100535bf
movsx eax, word [edx + 2]
lea edx, [edx + 2]
inc esi
cmp eax, edi
jl 0x100535b3
xor edi, edi
test ebx, ebx
je 0x100536cf
mov eax, dword [ebp + 8]
neg esi
mov edx, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x20], esi
mov eax, dword [eax + 0xec]
lea edx, [eax + edx*4]
sub eax, ecx
mov dword [ebp - 0x50], eax
cmp dword [ebp - 8], 2
fild dword [ebp - 0x20]
fmul st(1)
fadd st(2)
fld dword [eax + ecx]
jne 0x10053610
fstp st(2)
fld dword [edx]
fcom st(2)
fnstsw ax
test ah, 5
jp 0x10053609
fstp st(0)
fld dword [ebp - 0x60]
jmp 0x10053612
fstp st(2)
fld dword [ebp - 0x60]
jmp 0x10053612
fxch st(2)
fxch st(2)
fcom st(4)
fnstsw ax
test ah, 5
jnp 0x10053621
fstp st(0)
fld st(3)
fsubrp st(1)
fcom st(5)
fnstsw ax
test ah, 0x41
jne 0x10053633
fsub st(5)
inc edi
fstp dword [ecx]
jmp 0x10053635
fstp st(0)
mov eax, dword [ebp - 0x50]
inc esi
add edx, 4
mov dword [ebp - 0x20], esi
add ecx, 4
sub ebx, 1
jne 0x100535e5
fstp st(0)
cmp edi, 3
jl 0x100536ac
fadd st(3)
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x1005368c
mov eax, dword [ebp - 0x28]
fstp st(0)
shl eax, 2
fstp st(1)
push eax
fstp st(1)
push 0
push dword [ebp - 0x1c]
fst dword [ebp - 0x90]
fstp dword [ebp - 0x60]
call fcn.100831b0
fld dword [0x100cca80]
add esp, 0xc
fld dword [ebp - 0x90]
fxch st(1)
jmp 0x100536b0
mov esi, dword [ebp - 0x1c]
xor ecx, ecx
fld dword [esi + ecx*4]
fsub st(4)
fcom st(2)
fnstsw ax
test ah, 5
jp 0x100536a3
fstp st(0)
fld st(1)
fstp dword [esi + ecx*4]
inc ecx
cmp ecx, dword [ebp - 0x28]
jl 0x10053691
fstp st(3)
fstp st(0)
fld dword [ebp - 0x60]
fmul dword [0x100ad698]
mov ebx, dword [ebp + 8]
mov edi, dword [ebp - 0x34]
mov eax, dword [ebp - 0xc]
fstp dword [ebp - 0x60]
faddp st(1)
fstp dword [ebp - 0x90]
jmp 0x100536d7
fstp st(0)
jmp 0x100536ac
fstp st(0)
fstp st(0)
cmp dword [ebx + 0x40], 0
jne 0x100537ce
cmp dword [ebp - 0x3c], 0
fld dword [0x100ad6c4]
fldz
fld st(0)
je 0x100536fe
fstp st(1)
fild dword [ebp - 0x10]
fmul dword [0x100cca98]
jmp 0x10053700
fxch st(1)
mov esi, dword [ebp - 0x14]
mov ecx, eax
cmp eax, esi
jge 0x10053763
add eax, dword [ebp - 0x58]
mov ebx, dword [ebp - 0x6c]
fld1
mov edi, dword [ebp - 8]
lea edx, [ebx + eax*4]
jmp 0x1005371b
fxch st(2)
fsub st(3), st(0)
fld dword [ebx + ecx*4]
fsub st(2)
fcom st(4)
fnstsw ax
test ah, 5
jp 0x1005372f
fstp st(0)
jmp 0x10053731
fstp st(4)
cmp edi, 2
jne 0x10053749
fld dword [edx]
fsub st(2)
fcom st(4)
fnstsw ax
test ah, 5
jnp 0x10053747
fstp st(4)
jmp 0x10053749
fstp st(0)
inc ecx
fxch st(2)
add edx, 4
fadd st(3)
cmp ecx, esi
jl 0x10053719
mov ebx, dword [ebp + 8]
fstp st(3)
mov edi, dword [ebp - 0x34]
fstp st(0)
fstp st(0)
jmp 0x10053767
fstp st(2)
fstp st(1)
fld dword [ebx + 0xf0]
mov eax, esi
sub eax, dword [ebp - 0xc]
mov dword [ebp - 0x20], eax
fild dword [ebp - 0x20]
fdivp st(2)
fsub st(1), st(0)
fxch st(1)
fst dword [ebp - 0xc4]
fld dword [0x100ad6bc]
fcom st(1)
fnstsw ax
test ah, 0x41
je 0x100537ae
fstp st(0)
fld dword [0x100ccb00]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x100537be
fstp st(1)
fst dword [ebp - 0xc4]
jmp 0x100537c0
mov eax, dword [ebp - 0x10]
fstp st(1)
fst dword [ebp - 0xc4]
mov dword [ebp - 0x10], eax
jmp 0x100537c0
fstp st(0)
fmul dword [0x100ad490]
faddp st(1)
fstp dword [ebx + 0xf0]
cmp dword [ebp - 0x38], 0
jne 0x100537eb
mov ecx, dword [ebp - 0x30]
lea eax, [ecx*4]
push eax
push dword [ebp - 0x6c]
push edi
call fcn.10082c30
add esp, 0xc
cmp dword [ebp - 0x10], 0
jle 0x1005396d
mov eax, dword [ebp + 0x1c]
mov edx, dword [eax + 0x1c]
mov edi, edx
mov ebx, dword [eax + 0x14]
mov esi, ebx
bsr ecx, edx
mov eax, ebx
sub eax, ecx
add eax, 2
cmp eax, dword [ebp - 0x68]
jg 0x1005394c
cmp dword [ebp - 0x24], 0
jne 0x1005394c
mov eax, dword [ebp + 8]
cmp dword [eax + 0x18], 5
jl 0x10053948
cmp dword [eax + 0x40], 0
jne 0x10053948
mov eax, dword [ebp - 0xc]
test eax, eax
jne 0x1005394c
push dword [ebp - 8]
push dword [ebp - 0x14]
push eax
push dword [ebp - 0x58]
push dword [ebp - 0x74]
push dword [ebp - 0x6c]
call fcn.100560d0
mov ebx, dword [ebp + 8]
add esp, 0x18
test eax, eax
je 0x1005394f
push dword [ebx + 0x48]
mov edi, dword [ebp - 0x10]
push dword [ebx + 0x1c]
mov esi, dword [ebp - 0x44]
mov eax, dword [ebp - 0x7c]
push edi
push dword [ebp - 0x48]
mov dword [ebp - 0x24], 1
push dword [ebp - 8]
mov dword [ebp - 0x3c], eax
push esi
push dword [ebp - 0x4c]
push eax
push dword [ebp - 0x18]
call fcn.10054db0
push dword [ebx + 0x48]
push edi
push dword [ebp - 8]
mov edi, dword [ebp - 0x64]
push edi
push dword [ebp - 0x78]
push esi
mov esi, dword [ebp - 0x18]
push esi
call fcn.10061080
add esp, 0x40
push dword [ebp - 8]
push dword [ebp - 0x6c]
push dword [ebp - 0x78]
push dword [ebp - 0x14]
push edi
push esi
call fcn.10064100
mov edi, dword [ebp - 0x30]
add esp, 0x18
mov esi, dword [ebp - 0x34]
xor ecx, ecx
cmp edi, 4
jl 0x10053915
fild dword [ebp - 0x10]
lea edx, [edi - 4]
lea eax, [esi + 8]
shr edx, 2
inc edx
fld dword [0x100cca98]
fmul st(1), st(0)
lea ecx, [edx*4]
fld st(1)
fadd dword [eax - 8]
fstp dword [eax - 8]
fld st(1)
fadd dword [eax - 4]
fstp dword [eax - 4]
fld st(1)
fadd dword [eax]
fstp dword [eax]
fld st(1)
fadd dword [eax + 4]
fstp dword [eax + 4]
add eax, 0x10
sub edx, 1
jne 0x100538eb
fstp st(1)
jmp 0x1005391b
fld dword [0x100cca98]
cmp ecx, edi
jge 0x1005392f
fimul dword [ebp - 0x10]
fld st(0)
fadd dword [esi + ecx*4]
fstp dword [esi + ecx*4]
inc ecx
cmp ecx, edi
jl 0x10053922
mov ecx, dword [ebp + 0x1c]
fstp st(0)
fld dword [0x100cca80]
fstp dword [ebp - 0xa0]
mov edi, dword [ecx + 0x1c]
mov esi, dword [ecx + 0x14]
jmp 0x10053952
mov ebx, eax
jmp 0x1005394f
mov ebx, dword [ebp + 8]
mov ecx, dword [ebp + 0x1c]
bsr eax, edi
sub esi, eax
add esi, 2
cmp esi, dword [ebp - 0x68]
jg 0x1005396d
push 3
push dword [ebp - 0x24]
push ecx
call fcn.10056f60
add esp, 0xc
mov eax, dword [ebp - 0x70]
mov esi, dword [ebp - 8]
imul eax, esi
shl eax, 2
call fcn.10081b00
mov eax, esp
push dword [ebp - 0x7c]
mov dword [ebp - 0x38], eax
push esi
push dword [ebp - 0x64]
push dword [ebp - 0x78]
push eax
push dword [ebp - 0x44]
push dword [ebp - 0x18]
call fcn.10062090
mov eax, esi
add esp, 0x1c
shl eax, 4
sub eax, esi
cmp dword [ebp - 0x54], eax
jl 0x100539c0
cmp dword [ebp - 0xc], 0
jne 0x100539c0
cmp dword [ebx + 0x18], 2
jl 0x100539c0
mov esi, dword [ebx + 0x40]
test esi, esi
jne 0x100539c0
lea edi, [esi + 1]
jmp 0x100539c5
mov esi, dword [ebx + 0x40]
xor edi, edi
mov eax, dword [ebp - 0x58]
lea ebx, [eax*4]
mov eax, ebx
mov dword [ebp - 0x28], ebx
call fcn.10081b00
mov eax, ebx
mov dword [ebp - 0x50], esp
call fcn.10081b00
mov eax, dword [ebp - 0x28]
mov ebx, esp
call fcn.10081b00
mov eax, esp
push eax
push ebx
push dword [ebp - 0xa8]
mov dword [ebp - 0x80], eax
lea eax, [ebp - 0x9c]
push dword [ebp - 0x1c]
push esi
mov esi, dword [ebp + 8]
push eax
push dword [ebp - 0x54]
mov eax, dword [ebp - 0x18]
push dword [ebp - 0x10]
push dword [ebp - 0x88]
push dword [esi + 0x34]
push dword [esi + 0x2c]
push dword [ebp - 0x24]
push dword [eax + 0x38]
push dword [esi + 0x3c]
push dword [ebp - 0x50]
push dword [ebp - 8]
push dword [ebp - 0x14]
push dword [ebp - 0xc]
push dword [ebp - 0x58]
push dword [ebp - 0x34]
push dword [ebp - 0x6c]
call fcn.10055230
mov eax, dword [ebp - 0x28]
add esp, 0x54
fstp dword [ebp - 0xdc]
call fcn.10081b00
mov edx, esp
mov dword [ebp - 0x4c], edx
test edi, edi
je 0x10053abe
mov eax, 0x5000
cdq
idiv dword [ebp - 0x54]
add eax, 2
cmp eax, 0x50
jge 0x10053a70
mov eax, 0x50
fld dword [ebp - 0xa0]
push ebx
push dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x64]
push ecx
fstp dword [esp]
push dword [ebp - 0x10]
push dword [ebp - 0x70]
push dword [ebp - 0x38]
push eax
push ebx
push dword [ebp - 0x24]
push edi
push dword [ebp - 0x18]
call fcn.10056740
mov esi, dword [ebp - 0x14]
add esp, 0x2c
mov dword [ebp - 0x1c], eax
mov edx, edi
cmp edi, esi
jge 0x10053b15
lea ebx, [ebx]
mov ecx, dword [ebx + edi*4 - 4]
mov dword [ebx + edx*4], ecx
inc edx
cmp edx, esi
jl 0x10053ab0
jmp 0x10053b15
cmp dword [ebp - 0xc], 0
je 0x10053afe
cmp dword [ebp - 0x40], 0
je 0x10053ad8
mov esi, dword [ebp - 0x14]
test esi, esi
jle 0x10053b0e
mov eax, 1
jmp 0x10053b08
cmp dword [ebp - 0x54], 0xf
jge 0x10053afe
cmp dword [esi + 0xb8], 2
je 0x10053afe
mov esi, dword [ebp - 0x14]
test esi, esi
jle 0x10053af6
mov ecx, esi
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x1c], eax
jmp 0x10053b15
mov esi, dword [ebp - 0x14]
test esi, esi
jle 0x10053b0e
mov eax, dword [ebp - 0x24]
mov ecx, esi
mov edi, edx
rep stosd dword es:[edi], eax
mov dword [ebp - 0x1c], 0
mov ecx, dword [ebp - 0x30]
lea eax, [ecx*4]
call fcn.10081b00
mov edi, dword [ebp - 0xc]
xor ecx, ecx
mov eax, dword [ebp - 0x6c]
fld dword [0x100ccaf8]
fld dword [0x100cca84]
mov edx, dword [ebp - 0x28]
mov ebx, dword [ebp - 8]
lea eax, [eax + edi*4]
mov dword [ebp - 0x20], esp
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x2c], eax
cmp edi, esi
jge 0x10053ba0
mov edi, dword [ebp - 0x74]
mov ecx, eax
mov ebx, dword [ebp - 0xd0]
sub edi, dword [ebp - 0xd0]
sub ebx, dword [ebp - 0x6c]
sub esi, dword [ebp - 0xc]
fld dword [ecx]
lea edx, [ebx + ecx]
fld st(0)
fsub dword [edx + edi]
fabs
fcomp st(3)
fnstsw ax
test ah, 5
jp 0x10053b84
fld dword [edx]
fmul st(2)
fsubp st(1)
fstp dword [ecx]
jmp 0x10053b86
fstp st(0)
add ecx, 4
sub esi, 1
jne 0x10053b65
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x14]
mov ebx, dword [ebp - 8]
mov edi, dword [ebp - 0xc]
inc ecx
add eax, edx
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x2c], eax
cmp ecx, ebx
jl 0x10053b4a
mov ecx, dword [ebp + 8]
xor eax, eax
mov edi, dword [ebp - 0x10]
fstp st(1)
fstp st(0)
push dword [ecx + 0x40]
cmp dword [ecx + 0x18], 4
push dword [ecx + 0x38]
setge al
push eax
lea eax, [ecx + 0x54]
push eax
push dword [ecx + 0xc]
push dword [ebp - 0x5c]
push edi
push ebx
push dword [ebp + 0x1c]
push dword [ebp - 0x20]
push dword [ebp - 0x68]
push dword [ebp - 0x74]
push dword [ebp - 0x6c]
push dword [ebp - 0x64]
push esi
push dword [ebp - 0xc]
push dword [ebp - 0x18]
call fcn.100641d0
mov ecx, dword [ebp + 0x1c]
xor edx, edx
add esp, 0x44
bsr eax, dword [ecx + 0x1c]
mov ebx, dword [ecx + 4]
mov esi, dword [ecx + 0x14]
sub esi, eax
shl ebx, 3
cmp dword [ebp - 0x24], edx
sete dl
lea ecx, [esi - 1]
lea edx, [edx*2 + 2]
test edi, edi
jle 0x10053c2a
lea eax, [edx + esi]
cmp eax, ebx
ja 0x10053c2a
mov eax, 1
jmp 0x10053c2c
xor eax, eax
sub ebx, eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x44], ebx
xor eax, eax
mov ebx, dword [ebp - 0xc]
xor edi, edi
mov esi, ebx
mov dword [ebp - 0x2c], eax
cmp ebx, dword [ebp - 0x14]
jge 0x10053c9d
mov ebx, dword [ebp - 0x24]
neg ebx
sbb ebx, ebx
lea esp, [esp]
lea eax, [edx + ecx]
cmp eax, dword [ebp - 0x44]
ja 0x10053c88
push edx
mov edx, dword [ebp - 0x4c]
mov eax, dword [edx + esi*4]
xor eax, edi
mov edi, dword [ebp + 0x1c]
push eax
push edi
call fcn.10056f60
bsr eax, dword [edi + 0x1c]
mov ecx, dword [edi + 0x14]
add esp, 0xc
sub ecx, eax
mov eax, dword [ebp - 0x4c]
dec ecx
mov edi, dword [eax + esi*4]
mov eax, dword [ebp - 0x2c]
or eax, edi
mov dword [ebp - 0x2c], eax
jmp 0x10053c91
mov eax, dword [ebp - 0x4c]
mov dword [eax + esi*4], edi
mov eax, dword [ebp - 0x2c]
inc esi
lea edx, [ebx + 5]
cmp esi, dword [ebp - 0x14]
jl 0x10053c50
mov ebx, dword [ebp - 0xc]
cmp dword [ebp - 0x40], 0
mov edi, dword [ebp - 0x10]
je 0x10053cd4
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x2c]
lea ecx, [ecx + edi*2]
mov al, byte [eax + ecx*4 + 0x100b1848]
cmp al, byte [edx + ecx*4 + 0x100b184a]
je 0x10053cd4
push 1
push dword [ebp - 0x1c]
push dword [ebp + 0x1c]
call fcn.10056f60
mov edx, dword [ebp - 0x1c]
add esp, 0xc
jmp 0x10053cd6
xor edx, edx
mov esi, dword [ebp - 0x14]
mov ecx, ebx
cmp ebx, esi
jge 0x10053d03
mov eax, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x4c]
lea eax, [eax + edi*2]
lea edx, [edx + eax*2]
jmp 0x10053cf0
mov eax, dword [ebx + ecx*4]
movsx eax, byte [eax + edx*2 + 0x100b1848]
mov dword [ebx + ecx*4], eax
inc ecx
cmp ecx, esi
jl 0x10053cf0
mov ebx, dword [ebp + 0x1c]
mov esi, dword [ebp + 8]
bsr eax, dword [ebx + 0x1c]
mov ecx, dword [ebx + 0x14]
sub ecx, eax
add ecx, 3
cmp ecx, dword [ebp - 0x68]
jg 0x10053d48
cmp dword [esi + 0x40], 0
je 0x10053eb2
mov dword [esi + 0x64], 0
mov dword [esi + 0x50], 2
mov eax, 2
push 5
push 0x100ad4dc
push eax
push ebx
call fcn.10057200
add esp, 0x10
cmp dword [esi + 0x40], 0
je 0x10053d6c
mov eax, 0x55555556
imul dword [ebp - 0x54]
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 8
jle 0x10053d67
mov eax, 8
mov ecx, dword [ebp - 0x50]
mov dword [ecx], eax
mov eax, dword [ebp - 0x28]
call fcn.10081b00
mov eax, esp
push dword [ebp - 8]
mov dword [ebp - 0x5c], eax
push edi
push eax
push dword [ebp - 0x18]
call fcn.1005f5d0
mov edi, 6
mov dword [ebp - 0x44], 0
push ebx
mov dword [ebp - 0x34], edi
call fcn.1005f260
mov ecx, dword [ebp - 0xc]
mov ebx, eax
add esp, 0x14
mov dword [ebp - 0x2c], ebx
mov eax, ecx
mov dword [ebp - 0x40], eax
cmp ecx, dword [ebp - 0x14]
jge 0x10053f74
mov edx, dword [ebp - 0x50]
lea esi, [edx + ecx*4]
mov ecx, dword [ebp - 0x5c]
sub ecx, edx
mov dword [ebp - 0x7c], esi
mov dword [ebp - 0x80], ecx
jmp 0x10053dd0
mov ecx, dword [ebp - 0x88]
movsx edx, word [ecx + eax*2 + 2]
movsx eax, word [ecx + eax*2]
mov ecx, dword [ebp - 0x10]
sub edx, eax
imul edx, dword [ebp - 8]
shl edx, cl
mov ecx, 0x30
cmp edx, 0x30
jl 0x10053df6
mov ecx, edx
lea eax, [edx*8]
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jl 0x10053e13
mov dword [ebp - 0x1c], 0x30
cmp edx, 0x30
jl 0x10053e13
mov dword [ebp - 0x1c], edx
mov esi, dword [ebp - 0x68]
mov ecx, edi
mov eax, dword [ebp - 0x2c]
xor edx, edx
xor ebx, ebx
mov dword [ebp - 0x54], edx
lea edi, [esi*8]
mov esi, dword [ebp - 0x34]
sub edi, dword [ebp - 0x44]
lea eax, [eax + esi*8]
mov esi, dword [ebp - 0x7c]
cmp eax, edi
jge 0x10053f53
lea ecx, [ecx]
mov eax, dword [ebp - 0x80]
cmp edx, dword [eax + esi]
jge 0x10053e8d
mov esi, dword [esi]
xor eax, eax
cmp ebx, esi
push ecx
setl al
push eax
push dword [ebp + 0x1c]
call fcn.10056f60
push dword [ebp + 0x1c]
call fcn.1005f260
mov edx, dword [ebp - 0x54]
add esp, 0x10
cmp ebx, esi
mov dword [ebp - 0x2c], eax
mov esi, dword [ebp - 0x7c]
jge 0x10053e8d
mov ecx, dword [ebp - 0x1c]
add eax, 8
add dword [ebp - 0x44], ecx
add edx, ecx
sub edi, ecx
mov dword [ebp - 0x54], edx
inc ebx
mov ecx, 1
cmp eax, edi
jl 0x10053e40
mov edi, dword [ebp - 0x34]
test ebx, ebx
je 0x10053f56
dec edi
mov dword [ebp - 0x34], edi
cmp edi, 2
jge 0x10053f56
mov edi, 2
mov dword [ebp - 0x34], edi
jmp 0x10053f56
cmp dword [ebp - 0xc], 0
je 0x10053ee7
cmp dword [esi + 0x18], 0
jne 0x10053ecc
mov dword [esi + 0x50], 0
xor eax, eax
jmp 0x10053d37
cmp dword [ebp - 0x24], 0
jne 0x10053d2b
mov dword [esi + 0x50], 3
mov eax, 3
jmp 0x10053d37
cmp dword [ebp - 0x3c], 0
jne 0x10053f3b
cmp dword [esi + 0x18], 3
jl 0x10053f3b
mov ecx, dword [ebp - 8]
lea eax, [ecx + ecx*4]
add eax, eax
cmp dword [ebp - 0x5c], eax
jl 0x10053f3b
push dword [ebp - 0x80]
xor eax, eax
push dword [ebp - 0x7c]
cmp dword [ebp - 0xb4], eax
push ecx
push dword [ebp - 0x64]
setne al
push eax
lea eax, [esi + 0x64]
push eax
lea eax, [esi + 0x60]
push eax
push dword [esi + 0x50]
lea eax, [esi + 0x58]
push eax
push dword [ebp - 0x38]
push dword [ebp - 0x18]
call fcn.10063ec0
add esp, 0x2c
mov dword [esi + 0x50], eax
jmp 0x10053d37
cmp dword [esi + 0x18], 0
jne 0x10053d2b
mov dword [esi + 0x50], 0
xor eax, eax
jmp 0x10053d37
mov edi, dword [ebp - 0x34]
mov eax, dword [ebp - 0x40]
inc eax
mov dword [esi], edx
add esi, 4
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x7c], esi
cmp eax, dword [ebp - 0x14]
jl 0x10053dd0
mov ebx, dword [ebp - 0x2c]
mov esi, dword [ebp + 8]
cmp dword [ebp - 8], 2
jne 0x100540af
mov ecx, dword [ebp - 0x10]
test ecx, ecx
je 0x10054047
mov eax, dword [ebp - 0x18]
mov ebx, 0xd
fld dword [0x100ad47c]
fld st(0)
mov eax, dword [eax + 0x20]
movsx esi, word [eax + 2]
lea edi, [eax + 2]
movsx edx, word [eax]
shl esi, cl
shl edx, cl
cmp edx, esi
jge 0x10053fe7
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x38]
add eax, edx
lea eax, [ecx + eax*4]
fld dword [ecx + edx*4]
inc edx
fld dword [eax]
add eax, 4
fld st(0)
fabs
fld st(2)
fabs
faddp st(1)
faddp st(4)
fld st(1)
fsub st(1)
fabs
fxch st(1)
faddp st(2)
fxch st(1)
fabs
faddp st(1)
faddp st(1)
cmp edx, esi
jl 0x10053fb9
mov ecx, dword [ebp - 0x10]
mov eax, edi
sub ebx, 1
jne 0x10053f9c
mov edx, dword [ebp - 0x18]
inc ecx
mov ebx, dword [ebp - 0x2c]
mov eax, dword [edx + 0x20]
movsx edx, word [eax + 0x1a]
xor eax, eax
shl edx, cl
cmp dword [ebp - 0x10], 1
mov dword [ebp - 0xb4], edx
setg al
mov dword [ebp - 0xc8], 1
lea eax, [eax*8 + 5]
add eax, edx
mov dword [ebp - 0x80], eax
fimul dword [ebp - 0x80]
fmul dword [0x100ad650]
fild dword [ebp - 0xb4]
fmulp st(2)
fcompp
fnstsw ax
test ah, 0x41
je 0x10054047
mov dword [ebp - 0xc8], 0
mov esi, dword [ebp + 8]
mov eax, 0x10624dd3
imul dword [ebp - 0x84]
push dword [esi + 0xe8]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
push 0x15
mov dword [ebp - 0x80], eax
fild dword [ebp - 0x80]
push 0x100ad540
push 0x100ad4e8
push ecx
fstp dword [esp]
call fcn.10061c90
mov edi, dword [ebp - 0xc]
mov ecx, eax
add esp, 0x14
mov eax, edi
cmp edi, ecx
jg 0x10054090
mov eax, ecx
mov edx, dword [ebp - 0x14]
cmp edx, eax
jge 0x100540a1
mov ecx, edx
mov dword [esi + 0xe8], ecx
jmp 0x100540b5
cmp edi, ecx
jle 0x100540a7
mov ecx, edi
mov dword [esi + 0xe8], ecx
jmp 0x100540b5
mov ecx, dword [esi + 0xe8]
mov eax, dword [ebp - 0x68]
mov edi, dword [ebp - 0x44]
mov dword [ebp - 0x88], 5
lea edx, [eax*8]
sub edx, edi
lea eax, [ebx + 0x30]
cmp eax, edx
jg 0x10054165
cmp dword [ebp - 0xc], 0
mov eax, dword [ebp + 8]
jg 0x10054136
cmp dword [eax + 0x40], 0
jne 0x10054136
push dword [eax + 0x48]
fld dword [ebp - 0x60]
add eax, 0xe4
push dword [ebp - 0x84]
push ecx
fstp dword [esp]
fld dword [ebp - 0xa0]
push ecx
push ecx
fstp dword [esp]
push eax
push dword [ebp - 0xa8]
push dword [ebp - 0x70]
push dword [ebp - 8]
push dword [ebp - 0x10]
push dword [ebp - 0x14]
push dword [ebp - 0x6c]
push dword [ebp - 0x38]
push dword [ebp - 0x18]
call fcn.10052720
add esp, 0x38
mov dword [ebp - 0x88], eax
mov esi, eax
jmp 0x10054149
fldz
mov esi, 5
fstp dword [eax + 0xe4]
mov dword [ebp - 0x88], esi
mov ebx, dword [ebp + 0x1c]
push 7
push 0x100ad4d0
push esi
push ebx
call fcn.10057200
push ebx
call fcn.1005f260
add esp, 0x14
mov ebx, eax
mov edx, dword [ebp - 0xbc]
test edx, edx
jle 0x1005440b
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xcc]
mov esi, dword [eax + 0x24]
mov eax, 0x4fb
sub esi, dword [ebp - 0x10]
sar eax, cl
mov dword [ebp - 0xb4], esi
cmp dword [ebp + 0x18], eax
jl 0x10054197
mov dword [ebp + 0x18], eax
cmp dword [ebp - 0xc], 0
mov eax, dword [ebp - 8]
jne 0x100541b0
lea eax, [eax + eax*4]
shl eax, 6
sub edx, eax
sub edx, 0xa0
jmp 0x100541c5
lea ecx, [eax + eax*8]
mov eax, edx
shl ecx, 3
xor edx, edx
sub eax, ecx
add eax, 0xffffffe0
sets dl
dec edx
and edx, eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x34]
mov dword [ebp - 0x80], ecx
test ecx, ecx
je 0x100541e4
mov eax, dword [eax + 0xd8]
mov ecx, esi
sar eax, cl
mov ecx, dword [ebp - 0x80]
add edx, eax
mov eax, dword [ebp + 8]
cmp dword [ebp - 0xc], 0
jne 0x10054279
mov esi, dword [ebp + 8]
sub esp, 8
fld dword [ebp - 0xc4]
xor eax, eax
cmp dword [esi + 0xec], eax
fstp dword [esp + 4]
fld dword [ebp - 0x90]
setne al
fstp dword [esp]
fld dword [ebp - 0xdc]
push eax
push dword [esi + 0x40]
lea eax, [esi + 0x78]
push ecx
fstp dword [esp]
push dword [ebp - 0xac]
fld dword [ebp - 0xa0]
push ecx
fstp dword [esp]
push dword [ebp - 0x9c]
fld dword [esi + 0xe4]
push ecx
fstp dword [esp]
push ecx
push dword [esi + 0xe8]
push dword [ebp - 8]
push dword [esi + 0x5c]
push dword [ebp - 0x84]
push dword [ebp - 0x10]
push edx
push eax
push dword [ebp - 0x18]
call fcn.10054f80
add esp, 0x48
lea esi, [ebx + eax]
lea eax, [edi + 0x3f]
add eax, ebx
sar eax, 6
add eax, 2
jmp 0x10054304
mov eax, dword [eax + 0xbc]
mov esi, edx
cmp eax, 0x64
jge 0x10054297
mov ecx, dword [ebp - 0xcc]
mov esi, 0x60
sar esi, cl
add esi, edx
jmp 0x100542a8
jle 0x100542a8
mov ecx, dword [ebp - 0xcc]
mov eax, 0x90
sar eax, cl
sub esi, eax
fld dword [ebp - 0xa0]
fld st(0)
fsub dword [0x100cca84]
fmul dword [0x100ad6a0]
call fcn.10081b30
fcomp dword [0x100ccaa8]
add esi, eax
fnstsw ax
test ah, 0x41
jne 0x100542e0
cmp esi, 0x190
jg 0x100542e0
lea esi, [ebx + 0x190]
jmp 0x100542e2
add esi, ebx
mov ecx, dword [ebp - 0xb0]
lea eax, [edi + 0x3f]
add eax, ebx
add ecx, 0x167
sar eax, 6
add ecx, edi
add eax, 2
sar ecx, 6
cmp eax, ecx
jg 0x10054304
mov eax, ecx
lea edi, [esi + 0x20]
sar edi, 6
cmp eax, edi
jle 0x10054310
mov edi, eax
mov eax, dword [ebp + 0x18]
cmp eax, edi
jge 0x10054319
mov edi, eax
mov ebx, dword [ebp - 0xbc]
mov ecx, edi
mov eax, dword [ebp - 0x94]
sub esi, ebx
shl ecx, 6
test eax, eax
je 0x10054338
mov edi, 2
lea ecx, [edi + 0x7e]
neg eax
sbb edx, edx
not edx
and edx, esi
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0xdc]
cmp eax, 0x3ca
jge 0x1005436c
inc eax
mov dword [esi + 0xdc], eax
add eax, 0x14
mov dword [ebp - 0x9c], eax
fild dword [ebp - 0x9c]
fld1
fdivrp st(1)
jmp 0x10054372
fld dword [0x100ad61c]
cmp dword [esi + 0x34], 0
je 0x100543f1
mov eax, dword [ebp + 8]
sub ecx, ebx
add dword [esi + 0xd0], ecx
mov ecx, dword [ebp - 0xb4]
mov ebx, dword [esi + 0xd0]
mov esi, dword [esi + 0xd4]
shl edx, cl
sub edx, esi
sub edx, dword [eax + 0xd8]
mov dword [ebp - 0x9c], edx
fimul dword [ebp - 0x9c]
call fcn.10081b30
lea ecx, [eax + esi]
mov esi, dword [ebp + 8]
mov dword [esi + 0xd4], ecx
neg ecx
mov dword [esi + 0xd8], ecx
test ebx, ebx
jns 0x100543f3
mov ecx, dword [ebp - 0x94]
mov eax, ebx
cdq
and edx, 0x3f
mov dword [esi + 0xd0], 0
add eax, edx
sar eax, 6
neg eax
neg ecx
sbb ecx, ecx
not ecx
and ecx, eax
add edi, ecx
jmp 0x100543f3
fstp st(0)
mov eax, dword [ebp + 0x18]
cmp eax, edi
jl 0x100543ff
mov eax, edi
mov dword [ebp + 0x18], eax
push eax
push dword [ebp + 0x1c]
call fcn.10057430
add esp, 8
mov ebx, dword [ebp - 0x28]
mov eax, ebx
call fcn.10081b00
mov esi, esp
mov eax, ebx
mov dword [ebp - 0x40], esi
call fcn.10081b00
mov eax, ebx
mov dword [ebp - 0xb0], esp
call fcn.10081b00
mov edi, dword [ebp + 0x18]
mov dword [ebp - 0xac], esp
push dword [ebp + 0x1c]
shl edi, 6
mov dword [ebp - 0x9c], edi
call fcn.1005f260
mov edx, edi
add esp, 4
sub edx, eax
dec edx
cmp dword [ebp - 0x24], 0
je 0x10054470
mov eax, dword [ebp - 0x10]
cmp eax, 2
jl 0x10054470
lea eax, [eax*8 + 0x10]
cmp edx, eax
jl 0x10054470
mov ebx, 8
jmp 0x10054472
xor ebx, ebx
mov ecx, dword [ebp - 0xa8]
sub edx, ebx
mov eax, dword [ebp - 0x14]
dec eax
cmp dword [ecx], 0
je 0x100544e8
mov ecx, dword [ebp - 8]
imul eax, ecx, 0x7d00
cmp dword [ebp - 0x84], eax
jge 0x1005449b
mov ecx, 0xd
jmp 0x100544d9
imul eax, ecx, 0xbb80
cmp dword [ebp - 0x84], eax
jge 0x100544b0
mov ecx, 0x10
jmp 0x100544d9
imul eax, ecx, 0xea60
cmp dword [ebp - 0x84], eax
jge 0x100544c5
mov ecx, 0x12
jmp 0x100544d9
imul eax, ecx, 0x13880
xor ecx, ecx
cmp dword [ebp - 0x84], eax
setge cl
add ecx, 0x13
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x98]
cmp eax, ecx
jg 0x100544e8
mov eax, ecx
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x40], 0
je 0x100544f6
mov eax, 1
push eax
push dword [ecx + 0x5c]
mov edi, dword [ebp - 0x14]
lea eax, [ebp - 0xe0]
push 1
push dword [ebp + 0x1c]
push dword [ebp - 0x10]
push dword [ebp - 8]
push dword [ebp - 0xac]
push esi
push dword [ebp - 0xb0]
push eax
push edx
lea eax, [ebp - 0xc8]
push eax
lea eax, [ecx + 0xe8]
push eax
push dword [ebp - 0x88]
push dword [ebp - 0x5c]
push dword [ebp - 0x50]
push edi
push dword [ebp - 0xc]
push dword [ebp - 0x18]
call fcn.10060230
mov esi, eax
add esp, 0x4c
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x5c]
test eax, eax
je 0x10054568
lea ecx, [eax - 1]
mov edx, ecx
cmp ecx, esi
jg 0x1005455d
mov edx, esi
inc eax
cmp eax, edx
jl 0x1005456a
mov eax, ecx
cmp ecx, esi
jg 0x1005456a
mov eax, esi
push dword [ebp - 8]
mov ecx, dword [ebp + 8]
push dword [ebp + 0x1c]
push dword [ebp - 0x40]
mov dword [ecx + 0x5c], eax
push dword [ebp - 0x20]
push dword [ebp - 0x74]
push edi
push dword [ebp - 0xc]
push dword [ebp - 0x18]
call fcn.10064a10
mov eax, dword [ebp - 0x30]
add esp, 0x20
call fcn.10081b00
cmp dword [ebp - 8], 2
mov ecx, esp
jne 0x100545a9
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x70]
lea eax, [eax + edx*4]
jmp 0x100545ab
xor eax, eax
mov edi, dword [ebp + 8]
mov edx, dword [ebp + 8]
add edx, 0x4c
push dword [edi + 0x44]
push dword [edi + 0x48]
push dword [edi + 0x18]
mov edi, dword [ebp - 0x9c]
push edx
mov edx, dword [ebp - 0x4c]
sub edi, ebx
push esi
push dword [ebp - 0x10]
mov esi, dword [ebp + 8]
push dword [ebp + 0x1c]
push dword [ebp - 0xe0]
push edi
push edx
push dword [esi + 0xe8]
mov edi, dword [ebp - 0x14]
push dword [ebp - 0xc8]
push dword [esi + 0x50]
push dword [ebp - 0x3c]
push dword [ebp - 0xb0]
push dword [ebp - 0x78]
push ecx
push eax
push dword [ebp - 0x38]
push edi
push dword [ebp - 0xc]
push dword [ebp - 0x18]
push 1
call fcn.100621d0
add esp, 0x5c
test ebx, ebx
je 0x1005462a
xor eax, eax
cmp dword [esi + 0x74], 2
push 1
setl al
push eax
push dword [ebp + 0x1c]
call fcn.10056fa0
add esp, 0xc
mov edx, dword [ebp + 0x1c]
push dword [ebp - 8]
mov eax, dword [ebp + 0x18]
push edx
bsr ecx, dword [edx + 0x1c]
shl eax, 3
sub eax, dword [edx + 0x14]
inc ecx
add eax, ecx
push eax
push dword [ebp - 0xac]
push dword [ebp - 0x40]
push dword [ebp - 0x20]
push dword [ebp - 0x74]
push edi
push dword [ebp - 0xc]
push dword [ebp - 0x18]
call fcn.10064900
push dword [ebp - 0xc0]
mov esi, dword [ebp - 0xd0]
push 0
push esi
call fcn.100831b0
mov edx, dword [ebp - 0xc]
add esp, 0x34
fld dword [0x100ad6b0]
xor ebx, ebx
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 8]
lea edi, [esi + edx*4]
mov esi, dword [ebp - 0x28]
cmp edx, eax
jge 0x100546dc
mov esi, dword [ebp - 0x20]
mov edx, eax
sub esi, dword [ebp - 0xd0]
mov ecx, edi
sub edx, dword [ebp - 0xc]
fld dword [0x100cca98]
fld dword [esi + ecx]
fcom st(1)
fnstsw ax
test ah, 0x41
je 0x100546c0
fcom st(2)
fnstsw ax
test ah, 5
jp 0x100546c4
fstp st(0)
fld st(1)
jmp 0x100546c4
fstp st(0)
fld st(0)
fstp dword [ecx]
add ecx, 4
sub edx, 1
jne 0x100546a5
mov esi, dword [ebp - 0x28]
fstp st(0)
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
inc ebx
add edi, esi
cmp ebx, ecx
jl 0x1005468b
cmp dword [ebp - 0x94], 0
fstp st(0)
mov ebx, dword [ebp - 0x74]
je 0x10054706
mov eax, dword [ebp - 0x30]
test eax, eax
jle 0x10054706
mov ecx, eax
mov edi, ebx
mov eax, 0xc1e00000
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 8]
cmp dword [ebp - 0x48], 2
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0xa4]
fld dword [ebp - 0x98]
mov dword [eax + 0x68], edx
mov edx, dword [ebp - 0x8c]
fstp dword [eax + 0x6c]
mov dword [eax + 0x70], edx
jne 0x1005473d
cmp ecx, 1
jne 0x1005473d
push esi
lea eax, [ebx + esi]
push ebx
push eax
call fcn.10082c30
add esp, 0xc
cmp dword [ebp - 0x24], 0
jne 0x10054769
mov edi, dword [ebp - 0xc0]
push edi
lea eax, [edi + ebx]
push eax
push dword [ebp - 0xb8]
call fcn.10082c30
push edi
lea eax, [edi + ebx]
push ebx
push eax
call fcn.10082c30
add esp, 0x18
jmp 0x100547a1
mov edx, dword [ebp - 0xe4]
test edx, edx
jle 0x100547a1
mov ecx, dword [ebp - 0xd4]
mov edi, dword [ebp - 0xc0]
nop
fld dword [ecx]
mov eax, ecx
sub eax, edi
fld dword [eax]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x10054795
fstp st(0)
jmp 0x10054797
fstp st(1)
fstp dword [ecx]
add ecx, 4
sub edx, 1
jne 0x10054780
mov eax, dword [ebp - 0xb8]
xor edi, edi
fld dword [0x100ad6c8]
mov ebx, eax
add eax, dword [ebp - 0xe8]
mov dword [ebp - 0x98], eax
mov ecx, dword [ebp - 0xc]
fldz
test ecx, ecx
jle 0x100547fe
mov edx, dword [ebp - 0x74]
mov eax, ebx
mov esi, dword [ebp - 0xd4]
sub edx, dword [ebp - 0xb8]
sub esi, dword [ebp - 0xb8]
jmp 0x100547e1
fxch st(1)
fst dword [edx + eax]
fxch st(1)
fst dword [eax]
fst dword [esi + eax]
add eax, 4
sub ecx, 1
jne 0x100547df
mov eax, dword [ebp - 0x98]
mov esi, dword [ebp - 0x28]
jmp 0x10054800
fxch st(1)
mov ecx, dword [ebp - 0x58]
cmp dword [ebp - 0x14], ecx
jge 0x1005483d
mov edx, dword [ebp - 0x74]
mov esi, dword [ebp - 0xd4]
sub edx, dword [ebp - 0xb8]
sub esi, dword [ebp - 0xb8]
sub ecx, dword [ebp - 0x14]
fxch st(1)
fst dword [eax + edx]
fxch st(1)
fst dword [eax]
fst dword [eax + esi]
add eax, 4
sub ecx, 1
jne 0x10054820
mov eax, dword [ebp - 0x98]
mov esi, dword [ebp - 0x28]
inc edi
add eax, esi
add ebx, esi
mov dword [ebp - 0x98], eax
fstp st(1)
cmp edi, dword [ebp - 0x48]
jl 0x100547bd
cmp dword [ebp - 0x24], 0
fstp st(0)
jne 0x10054870
cmp dword [ebp - 0xd8], 0
jne 0x10054870
mov eax, dword [ebp + 8]
mov dword [eax + 0x74], 0
jmp 0x10054876
mov eax, dword [ebp + 8]
inc dword [eax + 0x74]
mov ebx, dword [ebp + 0x1c]
mov ecx, dword [ebp + 8]
push ebx
mov eax, dword [ebx + 0x1c]
mov dword [ecx + 0x4c], eax
call fcn.100570a0
add esp, 4
cmp dword [ebx + 0x2c], 0
je 0x10054898
mov eax, 0xfffffffd
jmp 0x100548a0
mov eax, dword [ebp + 0x18]
jmp 0x100548a0
or eax, 0xffffffff
lea esp, [ebp - 0x124]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10080e96
mov esp, ebp
pop ebp
ret