Function at 0x5c029142
Capabilities:
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x50c
mov eax, dword [0x5c059aa4]
xor eax, esp
mov dword [esp + 0x508], eax
push ebx
mov ebx, ecx
push esi
xor esi, esi
mov dword [esp + 0x60], ebx
push edi
mov eax, dword [ebx + 0x1a80]
mov ecx, dword [ebx + 0x1ccc]
mov edi, dword [ebx + 0x1a78]
mov edx, dword [ebx + 0x1a40]
mov dword [esp + 0xb0], eax
mov eax, dword [ebx + 0x1a70]
add ecx, eax
mov dword [esp + 0x48], ecx
mov ecx, dword [ebx + 0x1cd0]
add ecx, eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0x74], ecx
mov ecx, dword [ebx + 0x1cd4]
add ecx, eax
mov dword [esp + 0xac], esi
mov eax, dword [ebx + 0x1a64]
mov esi, edi
mov dword [esp + 0xa4], edx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x78], ecx
mov ecx, dword [ebx + 0x1a60]
mov edx, ecx
mov dword [esp + 0x3c], eax
xor eax, eax
mov dword [esp + 0x58], esi
mov dword [esp + 0x138], esi
mov esi, 0x8000000
mov dword [esp + 0xb8], eax
and edx, esi
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], eax
mov eax, dword [ebx + 0x1a7c]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x7c], edi
mov dword [esp + 0x88], eax
mov dword [esp + 0x1c], edx
jne 0x5c029267
mov eax, dword [ebx + 0x1cc0]
mov esi, dword [ebx + 0x1cc8]
add eax, edi
mov ecx, dword [ebx + 0x1a84]
add esi, edi
mov dword [esp + 0x80], eax
mov eax, dword [ebx + 0x1cc4]
add eax, edi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x40], esi
test ecx, ecx
je 0x5c0292f3
mov esi, dword [ebx + 0x1cbc]
add esi, edi
jmp 0x5c0292b4
mov eax, dword [ebx + 0x1a2c]
mov dword [esp + 0x80], eax
mov eax, dword [ebx + 0x1a34]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov eax, dword [ebx + 0x1a90]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x40], eax
test cl, 0x10
jne 0x5c0292c1
test dword [ebx + 0x1a44], esi
jne 0x5c0292c1
mov ecx, dword [ebx + 0x1a84]
test ecx, ecx
je 0x5c0292f3
mov eax, dword [ebx + 0x688]
mov esi, dword [ebx + eax*8 + 0x1a98]
mov dword [esp + 0x58], esi
mov dword [esp + 0x138], esi
jmp 0x5c0292f3
mov ecx, dword [ebx + 0x1a84]
xor edx, edx
test ecx, ecx
je 0x5c0292ef
lea esi, [ebx + 0x1a98]
mov eax, dword [esi]
lea esi, [esi + 8]
mov dword [esp + edx*4 + 0x138], eax
inc edx
cmp edx, ecx
jb 0x5c0292d3
mov eax, dword [esp + 0x138]
mov dword [esp + 0x58], eax
mov edx, dword [esp + 0x1c]
mov eax, dword [ebx + 0x1a44]
mov edi, eax
or dword [ebx + 0x530], 0xffffffff
and dword [ebx + 0x560], 0
and dword [ebx + 0x5b8], 0
fldz
fst dword [esp + 0x84]
test eax, 0x400
je 0x5c029477
test dword [esp + 0x9c], 0x10000000
lea esi, [ebx + 0x514]
lea edi, [ebx + 0x504]
movsd dword es:[edi], dword [esi]
fst dword [ebx + 0x524]
fst dword [ebx + 0x528]
fstp dword [ebx + 0x52c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, eax
je 0x5c029479
test byte [ebx + 0x1a5c], 0x40
je 0x5c0293e5
cmp dword [ebx + 0x5f8], 0
jne 0x5c029385
or edi, 0x2200
lea esi, [esp + 0x70]
mov dword [ebx + 0x1a44], edi
mov dword [esp + 0xac], esi
cmp dword [ebx + 0x5f0], 0
jne 0x5c0293a5
or edi, 0x4200
lea eax, [esp + 0x70]
mov dword [ebx + 0x1a44], edi
mov dword [esp + 0x8c], eax
cmp dword [ebx + 0x5ec], 0
jne 0x5c0293c5
or edi, 0x10200
lea eax, [esp + 0x70]
mov dword [ebx + 0x1a44], edi
mov dword [esp + 0xb8], eax
cmp dword [ebx + 0x5f4], 0
jne 0x5c0293e5
or edi, 0x8200
lea eax, [esp + 0x70]
mov dword [ebx + 0x1a44], edi
mov dword [esp + 0x90], eax
test byte [ebx + 0x1a5c], 0x80
je 0x5c029479
cmp dword [ebx + 0x5f8], 1
mov eax, edi
jne 0x5c029413
or eax, 0x2200
lea esi, [esp + 0x40]
mov dword [ebx + 0x1a44], eax
mov dword [esp + 0xac], esi
cmp dword [ebx + 0x5f0], 1
mov edi, eax
jne 0x5c029435
or edi, 0x4200
lea eax, [esp + 0x40]
mov dword [ebx + 0x1a44], edi
mov dword [esp + 0x8c], eax
cmp dword [ebx + 0x5ec], 1
jne 0x5c029455
or edi, 0x10200
lea eax, [esp + 0x40]
mov dword [ebx + 0x1a44], edi
mov dword [esp + 0xb8], eax
cmp dword [ebx + 0x5f4], 1
jne 0x5c029479
or edi, 0x8200
lea eax, [esp + 0x40]
mov dword [ebx + 0x1a44], edi
mov dword [esp + 0x90], eax
jmp 0x5c029479
fstp st(0)
mov esi, dword [esp + 0x88]
and edi, 0x10000000
neg edi
sbb edi, edi
imul eax, esi, 0xa
not edi
and edi, dword [ebx + 0x1a88]
mov dword [esp + 0x68], edi
mov dword [esp + 0x60], eax
imul eax, dword [esp + 0x3c], 0xa
mov dword [esp + 0xa0], eax
test edx, edx
je 0x5c0294fd
mov eax, dword [ebx + 0x1a30]
xor edx, edx
imul esi, eax, 0xa
mov dword [esp + 0xc4], eax
mov eax, dword [ebx + 0x1a38]
mov dword [esp + 0x94], eax
mov eax, dword [ebx + 0x1a94]
mov dword [esp + 0xc0], esi
mov dword [esp + 0x98], eax
test ecx, ecx
je 0x5c02951d
lea esi, [ebx + 0x1a9c]
mov eax, dword [esi]
lea esi, [esi + 8]
mov dword [esp + edx*4 + 0x158], eax
inc edx
cmp edx, ecx
jb 0x5c0294ea
jmp 0x5c02951d
mov edx, dword [esp + 0x60]
mov dword [esp + 0xc4], esi
mov dword [esp + 0x94], esi
mov dword [esp + 0x98], esi
mov dword [esp + 0xc0], edx
mov ecx, dword [esp + 0x9c]
mov esi, 0x5c0288b0
and ecx, 0x80000
je 0x5c029536
mov esi, 0x5c028e10
mov edx, dword [esp + 0xa4]
xor eax, eax
test ecx, ecx
mov dword [esp + 0xa8], esi
setne al
dec eax
mov dword [ebx + 0x684], eax
and dword [ebx + 0x680], 0
fld1
mov eax, dword [esp + 0x7c]
fstp qword [esp + 0xc8]
fld qword [0x5c003180]
fstp qword [esp + 0xd0]
cmp edx, 0xa
jae 0x5c029583
mov ecx, edx
mov dword [esp + 0xbc], edx
jmp 0x5c02958d
push 0xa
pop ecx
mov dword [esp + 0xbc], ecx
lea edx, [esp + 0xb0]
push edx
lea edx, [esp + 0xb8]
push edx
push eax
push ecx
push ebx
mov ecx, esi
call dword [0x5c05d150]
call esi
mov ecx, dword [ebx + 0x1a44]
mov esi, eax
mov eax, dword [ebx + 0x1a60]
add esp, 0x14
mov dword [esp + 0x24], esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], eax
test ecx, 0x500
jne 0x5c0295dc
test eax, 0x60000000
je 0x5c029a97
jmp 0x5c0295e0
mov dword [esp + 0x1c], eax
push 0x2a8
lea eax, [esp + 0x26c]
push 0
push eax
call sub.msvcrt.dll_memset
mov eax, dword [esp + 0x28]
add esp, 0xc
mov ecx, dword [esp + 0x10]
test eax, 0x60000000
je 0x5c029a97
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x44], edx
mov dword [esp + 0x18], esi
test esi, esi
je 0x5c029a97
mov eax, dword [esp + 0x80]
lea esi, [esp + 0x294]
add eax, 8
mov dword [esp + 0x1c], eax
test dword [ebx + 0x1a60], 0x20000000
je 0x5c029841
fld dword [ebx + 0x454]
fmul dword [edx + 4]
fld dword [ebx + 0x444]
fmul dword [edx]
mov edi, dword [ebx + 0x1cb4]
faddp st(1)
fld dword [ebx + 0x464]
fmul dword [edx + 8]
faddp st(1)
fadd dword [ebx + 0x474]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0x2c]
fstp dword [esi - 4]
fld dword [ebx + 0x458]
fmul dword [edx + 4]
fld dword [ebx + 0x448]
fmul dword [edx]
faddp st(1)
fld dword [ebx + 0x468]
fmul dword [edx + 8]
faddp st(1)
fadd dword [ebx + 0x478]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0x20]
fstp dword [esi]
fld dword [ebx + 0x45c]
fmul dword [edx + 4]
fld dword [ebx + 0x44c]
fmul dword [edx]
faddp st(1)
fld dword [ebx + 0x46c]
fmul dword [edx + 8]
faddp st(1)
fadd dword [ebx + 0x47c]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0x10]
fstp dword [esi + 4]
test edi, edi
je 0x5c02983d
fld dword [esp + 0x84]
fst dword [esp + 0x30]
fld dword [esp + 0x2c]
fstp dword [esp + 0x28]
fld dword [esp + 0x20]
fstp dword [esp + 0x4c]
fld dword [esp + 0x10]
and dword [esp + 0x10], 0
fstp dword [esp + 0x34]
fst dword [esi - 4]
fst dword [esi]
fst dword [esi + 4]
fst dword [esp + 0x38]
fst dword [esp + 0x50]
fstp dword [esp + 0x20]
test edi, edi
je 0x5c029806
mov eax, dword [esp + 0x10]
lea ecx, [ebx + 0x2e4]
fld dword [edx + eax*4 + 0xc]
inc eax
fld dword [esp + 0x28]
fmul st(1)
fadd dword [esi - 4]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0x2c]
fstp dword [esi - 4]
fld dword [esp + 0x4c]
fmul st(1)
fadd dword [esi]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0x20]
fstp dword [esi]
fld dword [esp + 0x34]
fmul st(1)
fadd dword [esi + 4]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0x10]
fstp dword [esi + 4]
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
fld dword [edx + 4]
fld dword [edx]
fld dword [edx + 8]
fld dword [ecx - 0x20]
fmul st(2)
fld dword [ecx - 0x10]
fmul st(4)
faddp st(1)
fld dword [ecx]
fmul st(2)
faddp st(1)
fadd dword [ecx + 0x10]
fstp dword [esp + 0x28]
fld dword [ecx - 0x1c]
fmul st(2)
fld dword [ecx - 0xc]
fmul st(4)
faddp st(1)
fld dword [ecx + 4]
fmul st(2)
faddp st(1)
fadd dword [ecx + 0x14]
fstp dword [esp + 0x4c]
fld dword [ecx - 0x18]
fmulp st(2)
fld dword [ecx - 8]
fmulp st(3)
fxch st(1)
faddp st(2)
fmul dword [ecx + 8]
faddp st(1)
fadd dword [ecx + 0x18]
add ecx, 0x40
fstp dword [esp + 0x34]
cmp eax, edi
jb 0x5c029737
fld dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
fstp dword [esp + 0x38]
fld dword [esp + 0x20]
fstp dword [esp + 0x50]
fld dword [esp + 0x10]
fstp dword [esp + 0x20]
fld dword [esp + 0x30]
fsubr qword [esp + 0xc8]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fld dword [esp + 0x28]
fmul st(1)
fadd dword [esp + 0x38]
fstp dword [esi - 4]
fld dword [esp + 0x4c]
fmul st(1)
fadd dword [esp + 0x50]
fstp dword [esi]
fmul dword [esp + 0x34]
fadd dword [esp + 0x20]
fstp dword [esi + 4]
or dword [esi + 0x14], 1
test dword [ebx + 0x1a60], 0x40000000
je 0x5c029a71
fld dword [ebx + 0x488]
lea ecx, [esi + 8]
fmul dword [eax - 4]
fld dword [ebx + 0x484]
fmul dword [eax - 8]
mov edi, dword [ebx + 0x1cb4]
faddp st(1)
fld dword [ebx + 0x48c]
fmul dword [eax]
faddp st(1)
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0x2c]
fstp dword [ecx]
fld dword [ebx + 0x498]
fmul dword [eax - 4]
fld dword [ebx + 0x494]
fmul dword [eax - 8]
faddp st(1)
fld dword [ebx + 0x49c]
fmul dword [eax]
faddp st(1)
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0x20]
fstp dword [esi + 0xc]
fld dword [ebx + 0x4a8]
fmul dword [eax - 4]
fld dword [ebx + 0x4a4]
fmul dword [eax - 8]
faddp st(1)
fld dword [ebx + 0x4ac]
fmul dword [eax]
faddp st(1)
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0x10]
fstp dword [esi + 0x10]
test edi, edi
je 0x5c029a47
fld dword [esp + 0x84]
and dword [esp + 0x34], 0
mov edx, dword [esp + 0x44]
fst dword [esp + 0x4c]
fld dword [esp + 0x2c]
fstp dword [esp + 0x30]
fld dword [esp + 0x20]
fstp dword [esp + 0x28]
fld dword [esp + 0x10]
fstp dword [esp + 0x38]
fst dword [ecx]
fst dword [esi + 0xc]
fst dword [esi + 0x10]
test edi, edi
je 0x5c029a04
fstp st(0)
lea edi, [ebx + 0x38c]
mov ebx, dword [esp + 0x34]
fld dword [edx + ebx*4 + 0xc]
inc ebx
fld dword [esp + 0x30]
fmul st(1)
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x64]
mov edx, dword [esp + 0x34]
fadd dword [ecx]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0x2c]
fstp dword [ecx]
fld dword [esp + 0x28]
fmul st(1)
fadd dword [esi + 0xc]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0x50]
fstp dword [esi + 0xc]
fld dword [esp + 0x38]
fmul st(1)
fadd dword [esi + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0x10]
fstp dword [esi + 0x10]
fadd dword [esp + 0x4c]
fstp dword [esp + 0x4c]
fld dword [eax - 4]
fld dword [eax - 8]
fld dword [eax]
fld dword [edi - 8]
fmul st(2)
fld dword [edi - 4]
fmul st(4)
faddp st(1)
fld dword [edi]
fmul st(2)
faddp st(1)
fstp dword [esp + 0x30]
fld dword [edi + 8]
fmul st(2)
fld dword [edi + 0xc]
fmul st(4)
faddp st(1)
fld dword [edi + 0x10]
fmul st(2)
faddp st(1)
fstp dword [esp + 0x28]
fld dword [edi + 0x18]
fmulp st(2)
fld dword [edi + 0x1c]
fmulp st(3)
fxch st(1)
faddp st(2)
fmul dword [edi + 0x20]
add edi, 0x40
cmp edx, dword [ebx + 0x1cb4]
mov edx, dword [esp + 0x44]
faddp st(1)
fstp dword [esp + 0x38]
jb 0x5c02992c
fld dword [esp + 0x2c]
fstp dword [esp + 0x20]
fld dword [esp + 0x50]
fstp dword [esp + 0x50]
fld dword [esp + 0x10]
jmp 0x5c029a0c
fst dword [esp + 0x20]
fst dword [esp + 0x50]
fstp dword [esp + 0x34]
fld dword [esp + 0x4c]
fsubr qword [esp + 0xc8]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fld dword [esp + 0x30]
fmul st(1)
fadd dword [esp + 0x20]
fstp dword [ecx]
fld dword [esp + 0x28]
fmul st(1)
fadd dword [esp + 0x50]
fstp dword [esi + 0xc]
fmul dword [esp + 0x38]
fadd dword [esp + 0x34]
fstp dword [esi + 0x10]
test dword [ebx + 0x1a60], 0x2000000
je 0x5c029a62
mov edx, ecx
call fcn.5c04ff08
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x44]
or dword [esi + 0x14], 2
add eax, dword [esp + 0xc4]
mov dword [esp + 0x1c], eax
add edx, dword [ebx + 0x1a7c]
add esi, 0x44
sub dword [esp + 0x18], 1
mov dword [esp + 0x44], edx
jne 0x5c029633
mov edi, dword [esp + 0x68]
mov ecx, dword [ebx + 0x1a44]
mov esi, dword [esp + 0x24]
test ecx, 0x400
je 0x5c02a2df
mov eax, dword [ebx + 0x5c0]
mov dword [esp + 0x10], eax
test eax, eax
je 0x5c029b43
push dword [esp + 0x5c]
lea ecx, [esp + 0x26c]
push dword [esp + 0x70]
push dword [esp + 0x88]
push dword [esp + 0x88]
push eax
push ecx
push esi
mov esi, dword [eax + 0xbc]
mov ecx, esi
push ebx
call dword [0x5c05d150]
call esi
mov eax, dword [esp + 0x30]
add esp, 0x20
mov eax, dword [eax + 0x58]
mov dword [esp + 0x18], eax
test eax, eax
je 0x5c029b43
mov edi, dword [esp + 0x24]
push dword [esp + 0x5c]
mov esi, dword [eax + 0xc0]
lea ecx, [esp + 0x26c]
push dword [esp + 0x70]
push dword [esp + 0x88]
push dword [esp + 0x88]
push eax
push ecx
push edi
push ebx
mov ecx, esi
call dword [0x5c05d150]
call esi
mov eax, dword [esp + 0x38]
add esp, 0x20
mov eax, dword [eax + 0x58]
mov dword [esp + 0x18], eax
test eax, eax
jne 0x5c029afc
mov edi, dword [esp + 0x68]
test dword [ebx + 0x1a44], 0x200
mov esi, dword [esp + 0x24]
je 0x5c02a0b5
mov dword [esp + 0x10], esi
test esi, esi
je 0x5c02a3bc
lea edx, [esp + 0x27c]
mov eax, dword [ebx + 0x1a44]
mov ecx, dword [edx + 0x2c]
mov dword [esp + 0x2c], eax
test eax, 0x12000
je 0x5c029dc0
test cl, 8
jne 0x5c029b96
fld dword [esp + 0x84]
fst dword [edx - 4]
fst dword [edx]
fstp dword [edx + 4]
test eax, 0x10000
je 0x5c029c5f
mov eax, dword [esp + 0xb8]
test eax, eax
je 0x5c029bb2
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x5c029bb4
xor eax, eax
mov dword [esp + 0x1c], eax
shr eax, 0x10
movzx eax, al
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
test eax, eax
jns 0x5c029bd0
fadd dword [0x5c0031f0]
mov eax, dword [esp + 0x1c]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fmul dword [ebx + 0x554]
shr eax, 8
movzx eax, al
mov dword [esp + 0x14], eax
fadd dword [edx - 4]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [edx - 4]
fild dword [esp + 0x14]
test eax, eax
jns 0x5c029c08
fadd dword [0x5c0031f0]
mov eax, dword [esp + 0x1c]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fmul dword [ebx + 0x558]
movzx eax, al
mov dword [esp + 0x14], eax
fadd dword [edx]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [edx]
fild dword [esp + 0x14]
test eax, eax
jns 0x5c029c3b
fadd dword [0x5c0031f0]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
mov eax, dword [esp + 0x70]
mov edi, dword [esp + 0x40]
fmul dword [ebx + 0x55c]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x5c], edi
jmp 0x5c029c9d
fld dword [ebx + 0x584]
fmul dword [ebx + 0x544]
fadd dword [edx - 4]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [edx - 4]
fld dword [ebx + 0x588]
fmul dword [ebx + 0x548]
fadd dword [edx]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [edx]
fld dword [ebx + 0x58c]
fmul dword [ebx + 0x54c]
fadd dword [edx + 4]
fxch st(2)
fstp dword [esp + 0x20]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fst dword [esp + 0x50]
fld dword [esp + 0x20]
fst dword [esp + 0x2c]
fstp dword [esp + 0x18]
fstp dword [esp + 0x20]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [edx + 4]
test eax, 0x2000
je 0x5c029d81
fld dword [esp + 0x18]
mov eax, dword [esp + 0xac]
fstp dword [esp + 0x18]
fld dword [esp + 0x20]
fstp dword [esp + 0x20]
test eax, eax
je 0x5c029cf9
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x5c029cfb
xor eax, eax
mov dword [esp + 0x1c], eax
shr eax, 0x10
movzx eax, al
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
test eax, eax
jns 0x5c029d17
fadd dword [0x5c0031f0]
mov eax, dword [esp + 0x1c]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fadd dword [esp + 0x18]
movzx eax, al
mov dword [esp + 0x14], eax
fstp dword [edx - 4]
fild dword [esp + 0x14]
test eax, eax
jns 0x5c029d3f
fadd dword [0x5c0031f0]
mov eax, dword [esp + 0x1c]
shr eax, 8
fstp dword [esp + 0x10]
movzx eax, al
mov dword [esp + 0x14], eax
fadd dword [esp + 0x10]
fild dword [esp + 0x14]
test eax, eax
jns 0x5c029d63
fadd dword [0x5c0031f0]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
mov eax, dword [esp + 0x70]
fadd dword [esp + 0x20]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x5c], eax
jmp 0x5c029daf
fld dword [ebx + 0x5a4]
fld qword [esp + 0xd0]
fmul st(1), st(0)
fld dword [esp + 0x2c]
faddp st(2)
fxch st(1)
fstp dword [edx - 4]
fld dword [ebx + 0x5ac]
fmul st(1)
faddp st(2)
fmul dword [ebx + 0x5a8]
fadd dword [esp + 0x50]
fstp dword [edx]
mov eax, dword [ebx + 0x1a44]
or ecx, 8
fstp dword [edx + 4]
mov dword [edx + 0x2c], ecx
test cl, 8
je 0x5c029ee2
fld dword [edx - 4]
fstp dword [esp + 0x18]
test eax, 0x12000
jne 0x5c029e04
fld dword [ebx + 0x514]
fadd dword [esp + 0x18]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [edx - 4]
fld dword [ebx + 0x518]
fadd dword [edx]
fstp dword [edx]
fld dword [ebx + 0x51c]
fadd dword [edx + 4]
fstp dword [edx + 4]
jmp 0x5c029e08
fld dword [esp + 0x18]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fistp qword [esp + 0xd8]
fld dword [edx]
mov ecx, dword [esp + 0xd8]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fistp qword [esp + 0xe0]
fld dword [edx + 4]
mov eax, dword [esp + 0xe0]
fstp dword [esp + 0x10]
mov dword [esp + 0x1c], eax
fld dword [esp + 0x10]
fistp qword [esp + 0xe8]
mov edi, dword [esp + 0xe8]
test ecx, ecx
jns 0x5c029e63
xor ecx, ecx
jmp 0x5c029e70
cmp ecx, 0xff
jle 0x5c029e70
mov ecx, 0xff
test eax, eax
jns 0x5c029e78
xor eax, eax
jmp 0x5c029e84
cmp eax, 0xff
jle 0x5c029e88
mov eax, 0xff
mov dword [esp + 0x1c], eax
test edi, edi
jns 0x5c029e90
xor edi, edi
jmp 0x5c029e9d
cmp edi, 0xff
jle 0x5c029e9d
mov edi, 0xff
test dword [ebx + 0x1a44], 0x4000
jne 0x5c029eb9
shl ecx, 8
add ecx, eax
shl ecx, 8
add ecx, dword [ebx + 0x510]
jmp 0x5c029edd
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x5c029eca
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x5c029ecc
xor eax, eax
shl ecx, 8
and eax, 0xff000000
add ecx, dword [esp + 0x1c]
shl ecx, 8
add ecx, eax
lea eax, [ecx + edi]
jmp 0x5c029f18
test eax, 0x4000
jne 0x5c029ef7
mov eax, dword [ebx + 0x5e8]
add eax, dword [ebx + 0x510]
jmp 0x5c029f18
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x5c029f0e
mov eax, dword [eax]
mov ecx, dword [eax]
and ecx, 0xff000000
jmp 0x5c029f10
xor ecx, ecx
mov eax, dword [ebx + 0x5e8]
add eax, ecx
mov edi, dword [esp + 0x74]
mov dword [edi], eax
test byte [edx + 0x2c], 4
je 0x5c02a00c
fld dword [edx + 8]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fistp qword [esp + 0xf0]
fld dword [edx + 0xc]
mov ecx, dword [esp + 0xf0]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fistp qword [esp + 0xf8]
fld dword [edx + 0x10]
mov eax, dword [esp + 0xf8]
fstp dword [esp + 0x10]
mov dword [esp + 0x1c], eax
fld dword [esp + 0x10]
fistp qword [esp + 0x100]
mov edi, dword [esp + 0x100]
mov dword [esp + 0x38], edi
test ecx, ecx
jns 0x5c029f83
xor ecx, ecx
jmp 0x5c029f90
cmp ecx, 0xff
jle 0x5c029f90
mov ecx, 0xff
test eax, eax
jns 0x5c029f98
xor eax, eax
jmp 0x5c029fa4
cmp eax, 0xff
jle 0x5c029fa8
mov eax, 0xff
mov dword [esp + 0x1c], eax
test edi, edi
jns 0x5c029fb4
xor edi, edi
mov dword [esp + 0x38], edi
jmp 0x5c029fc4
cmp edi, 0xff
jle 0x5c029fc4
mov dword [esp + 0x38], 0xff
test dword [ebx + 0x1a44], 0x8000
jne 0x5c029fe0
shl ecx, 8
add ecx, eax
shl ecx, 8
add ecx, dword [ebx + 0x5bc]
jmp 0x5c02a004
mov eax, dword [esp + 0x90]
test eax, eax
je 0x5c029ff1
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x5c029ff3
xor eax, eax
shl ecx, 8
and eax, 0xff000000
add ecx, dword [esp + 0x1c]
shl ecx, 8
add ecx, eax
mov eax, dword [esp + 0x38]
add eax, ecx
jmp 0x5c02a05d
mov eax, dword [ebx + 0x1a44]
test eax, 0x100000
jne 0x5c02a063
test dword [ebx + 0x1a60], 0x800
jne 0x5c02a036
test byte [ebx + 0x1a5c], 0x80
je 0x5c02a05b
mov eax, dword [esp + 0x5c]
mov eax, dword [eax]
jmp 0x5c02a05d
test eax, 0x8000
jne 0x5c02a045
mov eax, dword [ebx + 0x5bc]
jmp 0x5c02a05d
mov eax, dword [esp + 0x90]
test eax, eax
je 0x5c02a05b
mov eax, dword [eax]
mov eax, dword [eax]
and eax, 0xff000000
jmp 0x5c02a05d
xor eax, eax
mov edi, dword [esp + 0x54]
mov dword [edi], eax
mov eax, dword [esp + 0x6c]
add edx, 0x44
mov edi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x3c]
add eax, dword [esp + 0x94]
add edi, dword [esp + 0x98]
add dword [esp + 0x54], ecx
add dword [esp + 0x74], ecx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x5c], edi
mov dword [esp + 0x40], edi
sub esi, 1
jne 0x5c029b6a
mov eax, dword [esp + 0x138]
mov edi, dword [esp + 0x68]
mov dword [esp + 0x58], eax
jmp 0x5c02a3b8
mov edx, esi
mov dword [esp + 0x1c], edx
test esi, esi
je 0x5c02a3bc
mov eax, esi
lea ecx, [esp + 0x27c]
imul eax, dword [esp + 0x94]
mov esi, dword [esp + 0x6c]
add esi, eax
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], esi
mov esi, dword [esp + 0x3c]
test byte [ecx + 0x2c], 8
je 0x5c02a1b6
fld dword [ebx + 0x514]
fadd dword [ecx - 4]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [ecx - 4]
fld dword [ebx + 0x518]
fadd dword [ecx]
fstp dword [ecx]
fld dword [ebx + 0x51c]
fadd dword [ecx + 4]
fstp dword [ecx + 4]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fistp qword [esp + 0x108]
fld dword [ecx]
mov eax, dword [esp + 0x108]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fistp qword [esp + 0x110]
fld dword [ecx + 4]
mov edx, dword [esp + 0x110]
fstp dword [esp + 0x10]
mov dword [esp + 0x40], edx
fld dword [esp + 0x10]
fistp qword [esp + 0x118]
mov edx, dword [esp + 0x118]
mov edi, 0xff
test eax, eax
jns 0x5c02a172
xor eax, eax
jmp 0x5c02a178
cmp eax, edi
jle 0x5c02a178
mov eax, edi
cmp dword [esp + 0x40], 0
jge 0x5c02a186
and dword [esp + 0x40], 0
jmp 0x5c02a190
cmp dword [esp + 0x40], edi
jle 0x5c02a190
mov dword [esp + 0x40], edi
test edx, edx
jns 0x5c02a198
xor edx, edx
jmp 0x5c02a19e
cmp edx, edi
jle 0x5c02a19e
mov edx, edi
shl eax, 8
add eax, dword [esp + 0x40]
shl eax, 8
add eax, dword [ebx + 0x510]
add eax, edx
mov edx, dword [esp + 0x1c]
jmp 0x5c02a1c2
mov eax, dword [ebx + 0x5e8]
add eax, dword [ebx + 0x510]
mov edi, dword [esp + 0x74]
mov dword [edi], eax
test byte [ecx + 0x2c], 4
je 0x5c02a272
fld dword [ecx + 8]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fistp qword [esp + 0x120]
fld dword [ecx + 0xc]
mov eax, dword [esp + 0x120]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fistp qword [esp + 0x128]
fld dword [ecx + 0x10]
mov edx, dword [esp + 0x128]
fstp dword [esp + 0x10]
mov dword [esp + 0x40], edx
fld dword [esp + 0x10]
fistp qword [esp + 0x130]
mov edx, dword [esp + 0x130]
mov edi, 0xff
test eax, eax
jns 0x5c02a22e
xor eax, eax
jmp 0x5c02a234
cmp eax, edi
jle 0x5c02a234
mov eax, edi
cmp dword [esp + 0x40], 0
jge 0x5c02a242
and dword [esp + 0x40], 0
jmp 0x5c02a24c
cmp dword [esp + 0x40], edi
jle 0x5c02a24c
mov dword [esp + 0x40], edi
test edx, edx
jns 0x5c02a254
xor edx, edx
jmp 0x5c02a25a
cmp edx, edi
jle 0x5c02a25a
mov edx, edi
shl eax, 8
add eax, dword [esp + 0x40]
shl eax, 8
add eax, dword [ebx + 0x5bc]
add eax, edx
mov edx, dword [esp + 0x1c]
jmp 0x5c02a2a5
test dword [ebx + 0x1a44], 0x100000
jne 0x5c02a2ab
test dword [ebx + 0x1a60], 0x800
jne 0x5c02a29f
test byte [ebx + 0x1a5c], 0x80
je 0x5c02a29b
mov edi, dword [esp + 0x5c]
mov eax, dword [edi]
jmp 0x5c02a2a5
xor eax, eax
jmp 0x5c02a2a5
mov eax, dword [ebx + 0x5bc]
mov edi, dword [esp + 0x54]
mov dword [edi], eax
mov eax, dword [esp + 0x5c]
add ecx, 0x44
add eax, dword [esp + 0x98]
add dword [esp + 0x54], esi
add dword [esp + 0x74], esi
sub edx, 1
mov dword [esp + 0x5c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x1c], edx
jne 0x5c02a0e6
mov edi, dword [esp + 0x68]
jmp 0x5c02a3b8
test ecx, ecx
js 0x5c02a32e
test byte [ebx + 0x1a5c], 0x40
je 0x5c02a382
mov ecx, esi
test esi, esi
je 0x5c02a32e
mov edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x74]
mov esi, dword [esp + 0x94]
mov eax, dword [edx]
add edx, esi
mov dword [ebx], eax
add ebx, edi
mov dword [esp + 0x70], edx
sub ecx, 1
jne 0x5c02a309
mov edi, dword [esp + 0x68]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x74], ebx
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x6c], edx
mov ecx, dword [esp + 0x3c]
test dword [ebx + 0x1a44], 0x100000
jne 0x5c02a3b8
test byte [ebx + 0x1a5c], 0x80
je 0x5c02a3a0
mov ecx, esi
test esi, esi
je 0x5c02a3b8
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x54]
mov esi, dword [esp + 0x98]
mov eax, dword [eax]
mov dword [edx], eax
add edx, edi
mov eax, dword [esp + 0x5c]
add eax, esi
mov dword [esp + 0x5c], eax
mov dword [esp + 0x40], eax
sub ecx, 1
jne 0x5c02a360
mov dword [esp + 0x54], edx
jmp 0x5c02a2d6
mov ecx, dword [esp + 0x3c]
mov eax, esi
test esi, esi
je 0x5c02a332
mov edx, dword [esp + 0x74]
or dword [edx], 0xffffffff
add edx, ecx
sub eax, 1
jne 0x5c02a390
mov dword [esp + 0x74], edx
jmp 0x5c02a332
mov eax, esi
test esi, esi
je 0x5c02a3b8
mov edx, dword [esp + 0x54]
and dword [edx], 0
add edx, ecx
sub eax, 1
jne 0x5c02a3aa
mov dword [esp + 0x54], edx
mov esi, dword [esp + 0x24]
test dword [ebx + 0x1a44], 0x100
je 0x5c02a7a5
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x10], esi
test esi, esi
je 0x5c02a7a5
mov esi, dword [esp + 0x9c]
lea edi, [esp + 0x298]
mov eax, dword [esp + 0x78]
and esi, 4
test byte [edi + 0x10], 1
je 0x5c02a42c
test esi, esi
je 0x5c02a421
fld dword [edi - 4]
fld dword [edi]
fld dword [edi - 8]
fmul st(0), st(0)
fxch st(2)
fmul st(0), st(0)
faddp st(2)
fmul st(0), st(0)
faddp st(1)
call sub.msvcrt.dll__CIsqrt
fstp dword [esp + 0x28]
jmp 0x5c02a75f
fld dword [edi]
fstp dword [esp + 0x28]
jmp 0x5c02a763
fld dword [ecx + 4]
fld dword [ecx]
fld dword [ecx + 8]
test esi, esi
je 0x5c02a669
fld dword [ebx + 0x444]
fmul st(2)
fld dword [ebx + 0x454]
fmul st(4)
mov edx, dword [ebx + 0x1cb4]
faddp st(1)
fld dword [ebx + 0x464]
fmul st(2)
faddp st(1)
fadd dword [ebx + 0x474]
fstp dword [esp + 0x34]
fld dword [ebx + 0x458]
fmul st(3)
fld dword [ebx + 0x448]
fmul st(3)
faddp st(1)
fld dword [ebx + 0x468]
fmul st(2)
faddp st(1)
fadd dword [ebx + 0x478]
fstp dword [esp + 0x38]
fld dword [ebx + 0x45c]
fmul st(3)
fld dword [ebx + 0x44c]
fmul st(3)
faddp st(1)
fld dword [ebx + 0x46c]
fmul st(2)
faddp st(1)
fadd dword [ebx + 0x47c]
fstp dword [esp + 0x4c]
test edx, edx
je 0x5c02a63a
fld dword [esp + 0x84]
and dword [esp + 0x14], 0
fst dword [esp + 0x1c]
fst dword [esp + 0x18]
fst dword [esp + 0x20]
fst dword [esp + 0x50]
test edx, edx
je 0x5c02a5d7
fstp st(0)
lea eax, [ebx + 0x2e4]
fld dword [esp + 0x34]
mov ebx, dword [esp + 0x14]
fstp dword [esp + 0x28]
fld dword [esp + 0x38]
fstp dword [esp + 0x44]
fld dword [esp + 0x4c]
fstp dword [esp + 0x30]
fld dword [ecx + ebx*4 + 0xc]
inc ebx
fld dword [esp + 0x28]
fmul st(1)
fadd dword [esp + 0x18]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fst dword [esp + 0x38]
fstp dword [esp + 0x18]
fld dword [esp + 0x44]
fmul st(1)
fadd dword [esp + 0x20]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fst dword [esp + 0x34]
fstp dword [esp + 0x20]
fld dword [esp + 0x30]
fmul st(1)
fadd dword [esp + 0x50]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fst dword [esp + 0x14]
fstp dword [esp + 0x50]
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fld dword [eax - 0x20]
fmul st(2)
fld dword [eax - 0x10]
fmul st(4)
faddp st(1)
fld dword [eax]
fmul st(2)
faddp st(1)
fadd dword [eax + 0x10]
fstp dword [esp + 0x28]
fld dword [eax - 0x1c]
fmul st(2)
fld dword [eax - 0xc]
fmul st(4)
faddp st(1)
fld dword [eax + 4]
fmul st(2)
faddp st(1)
fadd dword [eax + 0x14]
fstp dword [esp + 0x44]
fld dword [eax - 0x18]
fmul st(2)
fld dword [eax - 8]
fmul st(4)
faddp st(1)
fld dword [eax + 8]
fmul st(2)
faddp st(1)
fadd dword [eax + 0x18]
add eax, 0x40
fstp dword [esp + 0x30]
cmp ebx, edx
jb 0x5c02a504
mov ebx, dword [esp + 0x64]
fstp st(2)
fstp st(0)
fstp st(0)
fld dword [esp + 0x38]
fstp dword [esp + 0x20]
fld dword [esp + 0x34]
fstp dword [esp + 0x18]
fld dword [esp + 0x14]
jmp 0x5c02a5fd
fstp st(3)
fstp st(1)
fstp st(0)
fld dword [esp + 0x34]
fstp dword [esp + 0x28]
fld dword [esp + 0x38]
fstp dword [esp + 0x44]
fld dword [esp + 0x4c]
fstp dword [esp + 0x30]
fst dword [esp + 0x20]
fst dword [esp + 0x18]
fstp dword [esp + 0x50]
fld dword [esp + 0x1c]
fsubr qword [esp + 0xc8]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fld dword [esp + 0x44]
fmul st(1)
fadd dword [esp + 0x18]
fstp dword [esp + 0x18]
fld dword [esp + 0x28]
fmul st(1)
fadd dword [esp + 0x20]
fstp dword [esp + 0x20]
fmul dword [esp + 0x30]
fadd dword [esp + 0x50]
jmp 0x5c02a654
fstp st(2)
fstp st(0)
fstp st(0)
fld dword [esp + 0x38]
fstp dword [esp + 0x18]
fld dword [esp + 0x34]
fstp dword [esp + 0x20]
fld dword [esp + 0x4c]
fstp dword [esp + 0x50]
fld dword [esp + 0x18]
fld dword [esp + 0x50]
fld dword [esp + 0x20]
jmp 0x5c02a407
fld dword [ebx + 0x44c]
fmul st(2)
fld dword [ebx + 0x45c]
mov eax, dword [ebx + 0x1cb4]
fmul st(4)
faddp st(1)
fld dword [ebx + 0x46c]
fmul st(2)
faddp st(1)
fadd dword [ebx + 0x47c]
fstp dword [esp + 0x18]
test eax, eax
jne 0x5c02a6a8
fstp st(2)
fstp st(0)
fstp st(0)
fld dword [esp + 0x18]
jmp 0x5c02a75b
fld dword [esp + 0x84]
xor edx, edx
fst dword [esp + 0x1c]
fst dword [esp + 0x20]
fld dword [esp + 0x18]
fst dword [esp + 0x30]
fxch st(1)
fstp dword [esp + 0x18]
test eax, eax
je 0x5c02a730
fstp dword [esp + 0x30]
lea eax, [ebx + 0x2cc]
fld dword [ecx + edx*4 + 0xc]
inc edx
fld dword [esp + 0x30]
fmul st(1)
fadd dword [esp + 0x20]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fst dword [esp + 0x14]
fstp dword [esp + 0x20]
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fld dword [eax + 0x10]
fmul st(3)
fld dword [eax]
fmul st(3)
faddp st(1)
fld dword [eax + 0x20]
fmul st(2)
faddp st(1)
fadd dword [eax + 0x30]
add eax, 0x40
fstp dword [esp + 0x30]
cmp edx, dword [ebx + 0x1cb4]
jb 0x5c02a6d5
fstp st(2)
fstp st(0)
fstp st(0)
fld dword [esp + 0x14]
fstp dword [esp + 0x18]
jmp 0x5c02a738
fstp st(0)
fstp st(2)
fstp st(0)
fstp st(0)
fld dword [esp + 0x1c]
fsubr qword [esp + 0xc8]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fmul dword [esp + 0x30]
fadd dword [esp + 0x18]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fstp dword [esp + 0x28]
mov eax, dword [esp + 0x78]
fld dword [esp + 0x28]
mov edx, eax
push ecx
mov ecx, ebx
fstp dword [esp]
call fcn.5c01a40d
mov eax, dword [esp + 0x7c]
add edi, 0x44
add eax, dword [esp + 0x40]
pop ecx
mov ecx, dword [esp + 0x2c]
add ecx, dword [ebx + 0x1a7c]
sub dword [esp + 0x10], 1
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x78], eax
jne 0x5c02a3f5
mov edi, dword [esp + 0x68]
mov esi, dword [esp + 0x24]
test edi, edi
je 0x5c02a7dd
test dword [esp + 0x9c], 0x200000
je 0x5c02a82c
mov eax, esi
test esi, esi
je 0x5c02a7dd
fld dword [esp + 0x84]
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x3c]
fst dword [edx]
fst dword [edx + 4]
add edx, ecx
sub eax, 1
jne 0x5c02a7cb
fstp st(0)
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x24]
cmp ecx, dword [esp + 0xbc]
jne 0x5c02aee1
mov eax, dword [esp + 0xc0]
add dword [esp + 0x80], eax
mov eax, dword [esp + 0x7c]
add eax, edx
mov edx, dword [esp + 0xa4]
sub edx, ecx
mov dword [esp + 0x7c], eax
mov dword [esp + 0xa4], edx
je 0x5c02aef6
mov esi, dword [esp + 0xa8]
jmp 0x5c029573
mov ecx, dword [ebx + 0x1a60]
mov eax, ecx
and eax, 0x4010000
test ecx, 0x8000000
je 0x5c02abce
test eax, eax
jne 0x5c02a8e0
mov eax, esi
mov dword [esp + 0x18], eax
test esi, esi
je 0x5c02a7dd
mov edx, dword [esp + 0x48]
and dword [esp + 0x14], 0
mov ecx, edx
mov dword [esp + 0x10], ecx
test edi, edi
je 0x5c02a8bf
lea eax, [ebx + 0x1ad8]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x2c], eax
mov esi, dword [eax]
push esi
push dword [esp + ebx*4 + 0x13c]
push ecx
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + ebx*4 + 0x164]
add esp, 0xc
add dword [esp + ebx*4 + 0x138], eax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
add ecx, esi
inc ebx
mov dword [esp + 0x10], ecx
add eax, 4
mov dword [esp + 0x2c], eax
cmp ebx, edi
jb 0x5c02a878
mov ebx, dword [esp + 0x64]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x48]
add edx, dword [esp + 0x3c]
sub eax, 1
mov dword [esp + 0x48], edx
mov dword [esp + 0x18], eax
jne 0x5c02a85b
mov eax, dword [esp + 0x138]
mov dword [esp + 0x58], eax
jmp 0x5c02a7dd
test ecx, 0x10000
jne 0x5c02aa09
mov edx, dword [esp + 0x48]
xor eax, eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x4c], eax
test edi, edi
je 0x5c02a9f5
lea ecx, [ebx + 0x1af8]
mov dword [esp + 0x2c], ecx
mov ebx, dword [ecx - 0x20]
mov dword [esp + 0x1c], ebx
mov ebx, dword [ecx]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + eax*4 + 0x158]
mov eax, dword [esp + eax*4 + 0x138]
mov dword [esp + 0x34], ebx
mov ebx, eax
mov dword [esp + 0x18], eax
mov eax, dword [ecx + 0x138]
mov dword [esp + 0x10], eax
test eax, eax
jne 0x5c02a971
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], esi
test esi, esi
je 0x5c02a9b0
mov esi, dword [esp + 0x1c]
mov edi, edx
push esi
push ebx
push edi
call sub.msvcrt.dll_memcpy
add ebx, dword [esp + 0x40]
add esp, 0xc
add edi, dword [esp + 0x3c]
sub dword [esp + 0x10], 1
jne 0x5c02a951
mov edi, dword [esp + 0x68]
jmp 0x5c02a9a8
push dword [esp + 0x3c]
mov eax, dword [esp + 0x20]
push dword [esp + 0x38]
mov ecx, dword [esp + 0x1c]
push dword [esp + 0x2c]
shr ecx, 2
push dword [esp + 0x1c]
shr eax, 2
push edx
push ebx
lea esi, [ecx + eax*4]
mov esi, dword [esi*4 + 0x5c00165c]
mov ecx, esi
call dword [0x5c05d150]
call esi
add esp, 0x18
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x24]
imul eax, dword [esp + 0x34], 0xa
mov ecx, dword [esp + 0x4c]
add edx, dword [esp + 0x1c]
mov dword [esp + 0x38], edx
add eax, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x138], eax
mov eax, ecx
mov ecx, dword [esp + 0x2c]
inc eax
add ecx, 4
mov dword [esp + 0x4c], eax
mov dword [esp + 0x2c], ecx
cmp eax, edi
jb 0x5c02a90c
mov eax, dword [esp + 0x138]
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x48]
add eax, dword [esp + 0xa0]
mov dword [esp + 0x48], eax
jmp 0x5c02a7dd
mov eax, dword [esp + 0x48]
mov edx, eax
and dword [esp + 0x18], 0
cmp dword [ebx + 0x1c2c], 0
mov dword [esp + 0x28], edx
jbe 0x5c02ab9a
lea eax, [ebx + 0x1ad8]
lea ecx, [ebx + 0x1b44]
mov dword [esp + 0x20], eax
mov dword [esp + 0x44], ecx
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x5c02aa5c
mov eax, dword [ecx - 0x18]
mov edi, dword [esp + eax*4 + 0x138]
mov eax, dword [esp + eax*4 + 0x158]
jmp 0x5c02aaf8
cmp eax, 0x20000
jne 0x5c02aa71
lea edi, [esp + 0x290]
push 0x44
jmp 0x5c02aaf7
cmp eax, 0x10000
jne 0x5c02aa81
lea edi, [esp + 0x29c]
jmp 0x5c02aa6a
mov eax, dword [ebx + 0x1a60]
and eax, 0x1000000
test esi, esi
je 0x5c02aaee
lea ebx, [esp + 0x178]
test eax, eax
je 0x5c02aabf
lea edi, [esp + 0x290]
mov dword [esp + 0x14], esi
push ebx
lea edx, [edi + 0xc]
mov ecx, edi
call fcn.5c01a4a7
add ebx, 0xc
add edi, 0x44
pop ecx
sub esi, 1
jne 0x5c02aaa6
jmp 0x5c02aade
lea edi, [esp + 0x29c]
mov dword [esp + 0x14], esi
mov edx, ebx
mov ecx, edi
call fcn.5c01a531
add ebx, 0xc
add edi, 0x44
sub esi, 1
jne 0x5c02aaca
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x64]
lea edi, [esp + 0x178]
push 0xc
pop eax
cmp dword [ecx - 4], 0
mov dword [esp + 0x30], eax
jne 0x5c02ab33
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], esi
test esi, esi
je 0x5c02ab63
mov ebx, eax
mov esi, edx
push dword [esp + 0x2c]
push edi
push esi
call sub.msvcrt.dll_memcpy
add esi, dword [esp + 0x48]
add esp, 0xc
add edi, ebx
sub dword [esp + 0x10], 1
jne 0x5c02ab12
mov ebx, dword [esp + 0x64]
jmp 0x5c02ab57
push dword [esp + 0x3c]
mov esi, dword [ecx]
push eax
push dword [esp + 0x2c]
push dword [ecx - 4]
mov esi, dword [esi*4 + 0x5c001670]
mov ecx, esi
push edx
push edi
call dword [0x5c05d150]
call esi
add esp, 0x18
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x24]
add edx, dword [esp + 0x2c]
add ecx, 0x20
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
inc edi
add eax, 4
mov dword [esp + 0x28], edx
mov dword [esp + 0x18], edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x44], ecx
cmp edi, dword [ebx + 0x1c2c]
jb 0x5c02aa39
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0x48]
add eax, dword [esp + 0xa0]
xor ecx, ecx
mov edx, dword [ebx + 0x1a84]
mov dword [esp + 0x48], eax
test edx, edx
je 0x5c02a7dd
imul eax, dword [esp + ecx*4 + 0x158], 0xa
add dword [esp + ecx*4 + 0x138], eax
inc ecx
cmp ecx, edx
jb 0x5c02abb5
jmp 0x5c02a8d0
test eax, eax
jne 0x5c02ac24
mov dword [esp + 0x14], esi
test esi, esi
je 0x5c02a7dd
mov edx, dword [esp + 0x48]
mov edi, esi
mov esi, dword [esp + 0x58]
push dword [ebx + 0x1a8c]
push esi
push edx
call sub.msvcrt.dll_memcpy
mov edx, dword [esp + 0x54]
add esp, 0xc
add edx, dword [esp + 0x3c]
add esi, dword [esp + 0x88]
mov dword [esp + 0x48], edx
mov dword [esp + 0x138], esi
sub edi, 1
jne 0x5c02abe8
mov edi, dword [esp + 0x68]
mov dword [esp + 0x58], esi
jmp 0x5c02a7dd
mov edx, dword [esp + 0x48]
test ecx, 0x10000
jne 0x5c02ad38
mov eax, dword [esp + 0x58]
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], edx
test edi, edi
je 0x5c02ad1d
lea eax, [ebx + 0x1af8]
mov dword [esp + 0x18], edi
mov ebx, dword [esp + 0x38]
mov edi, edx
mov dword [esp + 0x4c], eax
mov edx, dword [eax]
mov ecx, dword [eax - 0x20]
mov dword [esp + 0x2c], edx
mov edx, dword [eax + 0x138]
mov dword [esp + 0x1c], ecx
test edx, edx
jne 0x5c02acae
mov dword [esp + 0x14], edi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x10], esi
test esi, esi
je 0x5c02aced
mov esi, edi
mov edi, ecx
push edi
push ebx
push esi
call sub.msvcrt.dll_memcpy
add ebx, dword [esp + 0x94]
add esp, 0xc
add esi, dword [esp + 0x3c]
sub dword [esp + 0x10], 1
jne 0x5c02ac87
mov ebx, dword [esp + 0x38]
mov edi, dword [esp + 0x34]
jmp 0x5c02ace1
push dword [esp + 0x3c]
mov eax, dword [esp + 0x30]
push dword [esp + 0x8c]
shr ecx, 2
push dword [esp + 0x2c]
shr eax, 2
push edx
push edi
push ebx
lea esi, [eax + ecx*4]
mov esi, dword [esi*4 + 0x5c00165c]
mov ecx, esi
call dword [0x5c05d150]
call esi
add esp, 0x18
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x24]
add ebx, dword [esp + 0x2c]
add edi, ecx
add eax, 4
mov dword [esp + 0x38], ebx
sub dword [esp + 0x18], 1
mov dword [esp + 0x34], edi
mov dword [esp + 0x4c], eax
jne 0x5c02ac5c
mov ebx, dword [esp + 0x64]
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x48]
add eax, dword [esp + 0x60]
add edx, dword [esp + 0xa0]
mov dword [esp + 0x58], eax
mov dword [esp + 0x138], eax
jmp 0x5c02a7d9
and dword [esp + 0x18], 0
cmp dword [ebx + 0x1c2c], 0
mov dword [esp + 0x44], edx
jbe 0x5c02aebc
lea eax, [ebx + 0x1ad8]
lea ecx, [ebx + 0x1b44]
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ecx
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x5c02ad82
mov edi, dword [ecx - 0x14]
add edi, dword [esp + 0x58]
mov eax, dword [esp + 0x88]
jmp 0x5c02ae1e
cmp eax, 0x20000
jne 0x5c02ad97
lea edi, [esp + 0x290]
push 0x44
jmp 0x5c02ae1d
cmp eax, 0x10000
jne 0x5c02ada7
lea edi, [esp + 0x29c]
jmp 0x5c02ad90
mov eax, dword [ebx + 0x1a60]
and eax, 0x1000000
test esi, esi
je 0x5c02ae14
lea ebx, [esp + 0x1f0]
test eax, eax
je 0x5c02ade5
lea edi, [esp + 0x290]
mov dword [esp + 0x14], esi
push ebx
lea edx, [edi + 0xc]
mov ecx, edi
call fcn.5c01a4a7
add ebx, 0xc
add edi, 0x44
pop ecx
sub esi, 1
jne 0x5c02adcc
jmp 0x5c02ae04
lea edi, [esp + 0x29c]
mov dword [esp + 0x14], esi
mov edx, ebx
mov ecx, edi
call fcn.5c01a531
add ebx, 0xc
add edi, 0x44
sub esi, 1
jne 0x5c02adf0
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x64]
lea edi, [esp + 0x1f0]
push 0xc
pop eax
cmp dword [ecx - 4], 0
mov dword [esp + 0x30], eax
jne 0x5c02ae59
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], esi
test esi, esi
je 0x5c02ae89
mov ebx, eax
mov esi, edx
push dword [esp + 0x2c]
push edi
push esi
call sub.msvcrt.dll_memcpy
add esi, dword [esp + 0x48]
add esp, 0xc
add edi, ebx
sub dword [esp + 0x10], 1
jne 0x5c02ae38
mov ebx, dword [esp + 0x64]
jmp 0x5c02ae7d
push dword [esp + 0x3c]
mov esi, dword [ecx]
push eax
push dword [esp + 0x2c]
push dword [ecx - 4]
mov esi, dword [esi*4 + 0x5c001670]
mov ecx, esi
push edx
push edi
call dword [0x5c05d150]
call esi
add esp, 0x18
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
add edx, dword [esp + 0x2c]
add ecx, 0x20
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
inc edi
add eax, 4
mov dword [esp + 0x44], edx
mov dword [esp + 0x18], edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ecx
cmp edi, dword [ebx + 0x1c2c]
jb 0x5c02ad62
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x60]
add eax, edx
mov dword [esp + 0x58], eax
mov dword [esp + 0x138], eax
mov eax, dword [esp + 0xa0]
add dword [esp + 0x48], eax
jmp 0x5c02a7e1
mov eax, dword [ebx + 0x1a40]
sub eax, dword [esp + 0xa4]
add eax, ecx
mov dword [ebx + 0x225c], eax
test dword [ebx + 0x1a60], 0x100000
jne 0x5c02b01c
fld dword [ebx + 0x68c]
fld dword [ebx + 0x1b24]
fadd st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fst dword [esp + 0xb0]
fstp dword [ebx + 0x1b24]
fld dword [ebx + 0x1b28]
fadd st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fst dword [esp + 0xa8]
fstp dword [ebx + 0x1b28]
fld dword [ebx + 0x1b1c]
fsub st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fst dword [ebx + 0x1b1c]
fld dword [ebx + 0x1b20]
fsubrp st(2)
fxch st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fst dword [esp + 0xb4]
fstp dword [ebx + 0x1b20]
fld dword [ebx + 0x624]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x5c02af9c
fstp dword [ebx + 0x1b1c]
jmp 0x5c02af9e
fstp st(0)
fld dword [ebx + 0x628]
fstp dword [esp + 0x14]
fld dword [esp + 0xb4]
fld dword [esp + 0x14]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x5c02afc6
fstp dword [ebx + 0x1b20]
jmp 0x5c02afc8
fstp st(0)
fld dword [ebx + 0x62c]
fstp dword [esp + 0x14]
fld dword [esp + 0xb0]
fld dword [esp + 0x14]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x5c02aff0
fstp dword [ebx + 0x1b24]
jmp 0x5c02aff2
fstp st(0)
fld dword [ebx + 0x630]
fstp dword [esp + 0x14]
fld dword [esp + 0xa8]
fld dword [esp + 0x14]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x5c02b01a
fstp dword [ebx + 0x1b28]
jmp 0x5c02b01c
fstp st(0)
mov eax, dword [ebx + 0x684]
mov ecx, dword [esp + 0x514]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.5c04f7b0
mov esp, ebp
pop ebp
ret