Function at 0x5c028fb2
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, 0x52c
mov eax, dword [0x5c05aac4]
xor eax, esp
mov dword [esp + 0x528], eax
push ebx
mov ebx, ecx
push esi
xor esi, esi
mov dword [esp + 0x78], 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 + 0xb8], eax
mov eax, dword [ebx + 0x1a70]
add ecx, eax
mov dword [esp + 0x54], ecx
mov ecx, dword [ebx + 0x1cd0]
add ecx, eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0x78], ecx
mov ecx, dword [ebx + 0x1cd4]
add ecx, eax
mov dword [esp + 0xb4], esi
mov eax, dword [ebx + 0x1a64]
mov esi, edi
mov dword [esp + 0xac], edx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x80], ecx
mov ecx, dword [ebx + 0x1a60]
mov edx, ecx
mov dword [esp + 0x48], eax
xor eax, eax
mov dword [esp + 0x60], esi
mov dword [esp + 0x158], esi
mov esi, 0x8000000
mov dword [esp + 0xc0], eax
and edx, esi
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], eax
mov eax, dword [ebx + 0x1a7c]
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x84], edi
mov dword [esp + 0x90], eax
mov dword [esp + 0x38], edx
jne 0x5c0290dd
mov eax, dword [ebx + 0x1cc0]
mov esi, dword [ebx + 0x1cc8]
add eax, edi
mov ecx, dword [ebx + 0x1a84]
add esi, edi
mov dword [esp + 0x88], eax
mov eax, dword [ebx + 0x1cc4]
add eax, edi
mov dword [esp + 0x64], esi
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x4c], esi
test ecx, ecx
je 0x5c029169
mov esi, dword [ebx + 0x1cbc]
add esi, edi
jmp 0x5c02912a
mov eax, dword [ebx + 0x1a2c]
mov dword [esp + 0x88], eax
mov eax, dword [ebx + 0x1a34]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov eax, dword [ebx + 0x1a90]
mov dword [esp + 0x64], eax
mov dword [esp + 0x4c], eax
test cl, 0x10
jne 0x5c029137
test dword [ebx + 0x1a44], esi
jne 0x5c029137
mov ecx, dword [ebx + 0x1a84]
test ecx, ecx
je 0x5c029169
mov eax, dword [ebx + 0x688]
mov esi, dword [ebx + eax*8 + 0x1a98]
mov dword [esp + 0x60], esi
mov dword [esp + 0x158], esi
jmp 0x5c029169
mov ecx, dword [ebx + 0x1a84]
xor edx, edx
test ecx, ecx
je 0x5c029165
lea esi, [ebx + 0x1a98]
mov eax, dword [esi]
lea esi, [esi + 8]
mov dword [esp + edx*4 + 0x158], eax
inc edx
cmp edx, ecx
jb 0x5c029149
mov eax, dword [esp + 0x158]
mov dword [esp + 0x60], eax
mov edx, dword [esp + 0x38]
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 + 0x8c]
test eax, 0x400
je 0x5c0292ed
test dword [esp + 0xa4], 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 0x5c0292ef
test byte [ebx + 0x1a5c], 0x40
je 0x5c02925b
cmp dword [ebx + 0x5f8], 0
jne 0x5c0291fb
or edi, 0x2200
lea esi, [esp + 0x74]
mov dword [ebx + 0x1a44], edi
mov dword [esp + 0xb4], esi
cmp dword [ebx + 0x5f0], 0
jne 0x5c02921b
or edi, 0x4200
lea eax, [esp + 0x74]
mov dword [ebx + 0x1a44], edi
mov dword [esp + 0x94], eax
cmp dword [ebx + 0x5ec], 0
jne 0x5c02923b
or edi, 0x10200
lea eax, [esp + 0x74]
mov dword [ebx + 0x1a44], edi
mov dword [esp + 0xc0], eax
cmp dword [ebx + 0x5f4], 0
jne 0x5c02925b
or edi, 0x8200
lea eax, [esp + 0x74]
mov dword [ebx + 0x1a44], edi
mov dword [esp + 0x98], eax
test byte [ebx + 0x1a5c], 0x80
je 0x5c0292ef
cmp dword [ebx + 0x5f8], 1
mov eax, edi
jne 0x5c029289
or eax, 0x2200
lea esi, [esp + 0x4c]
mov dword [ebx + 0x1a44], eax
mov dword [esp + 0xb4], esi
cmp dword [ebx + 0x5f0], 1
mov edi, eax
jne 0x5c0292ab
or edi, 0x4200
lea eax, [esp + 0x4c]
mov dword [ebx + 0x1a44], edi
mov dword [esp + 0x94], eax
cmp dword [ebx + 0x5ec], 1
jne 0x5c0292cb
or edi, 0x10200
lea eax, [esp + 0x4c]
mov dword [ebx + 0x1a44], edi
mov dword [esp + 0xc0], eax
cmp dword [ebx + 0x5f4], 1
jne 0x5c0292ef
or edi, 0x8200
lea eax, [esp + 0x4c]
mov dword [ebx + 0x1a44], edi
mov dword [esp + 0x98], eax
jmp 0x5c0292ef
fstp st(0)
mov esi, dword [esp + 0x90]
and edi, 0x10000000
neg edi
sbb edi, edi
imul eax, esi, 0xa
not edi
and edi, dword [ebx + 0x1a88]
mov dword [esp + 0x6c], edi
mov dword [esp + 0x68], eax
imul eax, dword [esp + 0x48], 0xa
mov dword [esp + 0xa8], eax
test edx, edx
je 0x5c029373
mov eax, dword [ebx + 0x1a30]
xor edx, edx
imul esi, eax, 0xa
mov dword [esp + 0xcc], eax
mov eax, dword [ebx + 0x1a38]
mov dword [esp + 0x9c], eax
mov eax, dword [ebx + 0x1a94]
mov dword [esp + 0xc8], esi
mov dword [esp + 0xa0], eax
test ecx, ecx
je 0x5c029393
lea esi, [ebx + 0x1a9c]
mov eax, dword [esi]
lea esi, [esi + 8]
mov dword [esp + edx*4 + 0x178], eax
inc edx
cmp edx, ecx
jb 0x5c029360
jmp 0x5c029393
mov edx, dword [esp + 0x68]
mov dword [esp + 0xcc], esi
mov dword [esp + 0x9c], esi
mov dword [esp + 0xa0], esi
mov dword [esp + 0xc8], edx
mov ecx, dword [esp + 0xa4]
mov esi, 0x5c028720
and ecx, 0x80000
je 0x5c0293ac
mov esi, 0x5c028c80
mov edx, dword [esp + 0xac]
xor eax, eax
test ecx, ecx
mov dword [esp + 0xb0], esi
setne al
dec eax
mov dword [ebx + 0x684], eax
and dword [ebx + 0x680], 0
fld1
mov eax, dword [esp + 0x84]
fstp qword [esp + 0xd0]
fld qword [0x5c003160]
fstp qword [esp + 0xd8]
cmp edx, 0xa
jae 0x5c0293fc
mov ecx, edx
mov dword [esp + 0xc4], edx
jmp 0x5c029406
push 0xa
pop ecx
mov dword [esp + 0xc4], ecx
lea edx, [esp + 0xb8]
push edx
lea edx, [esp + 0xc0]
push edx
push eax
push ecx
push ebx
mov ecx, esi
call dword [0x5c05e150]
call esi
mov ecx, dword [ebx + 0x1a44]
mov esi, eax
mov eax, dword [ebx + 0x1a60]
add esp, 0x14
mov dword [esp + 0x28], esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x38], eax
test ecx, 0x500
jne 0x5c029455
test eax, 0x60000000
je 0x5c029913
jmp 0x5c029459
mov dword [esp + 0x38], eax
push 0x2a8
lea eax, [esp + 0x28c]
push 0
push eax
call sub.msvcrt.dll_memset
mov eax, dword [esp + 0x44]
add esp, 0xc
mov ecx, dword [esp + 0x10]
test eax, 0x60000000
je 0x5c029913
mov edx, dword [esp + 0x84]
mov dword [esp + 0x50], edx
mov dword [esp + 0x18], esi
test esi, esi
je 0x5c029913
mov eax, dword [esp + 0x88]
lea esi, [esp + 0x2b4]
add eax, 8
mov dword [esp + 0x38], eax
test dword [ebx + 0x1a60], 0x20000000
je 0x5c0296bd
fld dword [ebx + 0x444]
fmul dword [edx]
fld dword [ebx + 0x454]
fmul dword [edx + 4]
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 + 0x24]
fstp dword [esi - 4]
fld dword [ebx + 0x448]
fmul dword [edx]
fld dword [ebx + 0x458]
fmul dword [edx + 4]
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 + 0x1c]
fstp dword [esi]
fld dword [ebx + 0x44c]
fmul dword [edx]
fld dword [ebx + 0x45c]
fmul dword [edx + 4]
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 0x5c0296b9
fld dword [esp + 0x8c]
fst dword [esp + 0x2c]
fld dword [esp + 0x24]
fstp dword [esp + 0x20]
fld dword [esp + 0x1c]
fstp dword [esp + 0x58]
fld dword [esp + 0x10]
and dword [esp + 0x10], 0
fstp dword [esp + 0x30]
fst dword [esi - 4]
fst dword [esi]
fst dword [esi + 4]
fst dword [esp + 0x34]
fst dword [esp + 0x44]
fstp dword [esp + 0x1c]
test edi, edi
je 0x5c029682
mov eax, dword [esp + 0x10]
lea ecx, [ebx + 0x2e4]
fld dword [edx + eax*4 + 0xc]
inc eax
fld dword [esp + 0x20]
fmul st(1)
fadd dword [esi - 4]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0x24]
fstp dword [esi - 4]
fld dword [esp + 0x58]
fmul st(1)
fadd dword [esi]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0x1c]
fstp dword [esi]
fld dword [esp + 0x30]
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 + 0x2c]
fstp dword [esp + 0x2c]
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 + 0x20]
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 + 0x58]
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 + 0x30]
cmp eax, edi
jb 0x5c0295b3
fld dword [esp + 0x24]
mov eax, dword [esp + 0x38]
fstp dword [esp + 0x34]
fld dword [esp + 0x1c]
fstp dword [esp + 0x44]
fld dword [esp + 0x10]
fstp dword [esp + 0x1c]
fld dword [esp + 0x2c]
fsubr qword [esp + 0xd0]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fld dword [esp + 0x20]
fmul st(1)
fadd dword [esp + 0x34]
fstp dword [esi - 4]
fld dword [esp + 0x58]
fmul st(1)
fadd dword [esp + 0x44]
fstp dword [esi]
fmul dword [esp + 0x30]
fadd dword [esp + 0x1c]
fstp dword [esi + 4]
or dword [esi + 0x14], 1
test dword [ebx + 0x1a60], 0x40000000
je 0x5c0298ed
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 + 0x24]
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 + 0x1c]
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 0x5c0298c3
fld dword [esp + 0x8c]
and dword [esp + 0x30], 0
mov edx, dword [esp + 0x50]
fst dword [esp + 0x58]
fld dword [esp + 0x24]
fstp dword [esp + 0x2c]
fld dword [esp + 0x1c]
fstp dword [esp + 0x20]
fld dword [esp + 0x10]
fstp dword [esp + 0x34]
fst dword [ecx]
fst dword [esi + 0xc]
fst dword [esi + 0x10]
test edi, edi
je 0x5c029880
fstp st(0)
lea edi, [ebx + 0x38c]
mov ebx, dword [esp + 0x30]
fld dword [edx + ebx*4 + 0xc]
inc ebx
fld dword [esp + 0x2c]
fmul st(1)
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x7c]
mov edx, dword [esp + 0x30]
fadd dword [ecx]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0x24]
fstp dword [ecx]
fld dword [esp + 0x20]
fmul st(1)
fadd dword [esi + 0xc]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0x44]
fstp dword [esi + 0xc]
fld dword [esp + 0x34]
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 + 0x58]
fstp dword [esp + 0x58]
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 + 0x2c]
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 + 0x20]
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 + 0x50]
faddp st(1)
fstp dword [esp + 0x34]
jb 0x5c0297a8
fld dword [esp + 0x24]
fstp dword [esp + 0x1c]
fld dword [esp + 0x44]
fstp dword [esp + 0x44]
fld dword [esp + 0x10]
jmp 0x5c029888
fst dword [esp + 0x1c]
fst dword [esp + 0x44]
fstp dword [esp + 0x30]
fld dword [esp + 0x58]
fsubr qword [esp + 0xd0]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fld dword [esp + 0x2c]
fmul st(1)
fadd dword [esp + 0x1c]
fstp dword [ecx]
fld dword [esp + 0x20]
fmul st(1)
fadd dword [esp + 0x44]
fstp dword [esi + 0xc]
fmul dword [esp + 0x34]
fadd dword [esp + 0x30]
fstp dword [esi + 0x10]
test dword [ebx + 0x1a60], 0x2000000
je 0x5c0298de
mov edx, ecx
call fcn.5c050908
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x50]
or dword [esi + 0x14], 2
add eax, dword [esp + 0xcc]
mov dword [esp + 0x38], eax
add edx, dword [ebx + 0x1a7c]
add esi, 0x44
sub dword [esp + 0x18], 1
mov dword [esp + 0x50], edx
jne 0x5c0294af
mov edi, dword [esp + 0x6c]
mov ecx, dword [ebx + 0x1a44]
mov esi, dword [esp + 0x28]
test ecx, 0x400
je 0x5c02a145
mov eax, dword [ebx + 0x5c0]
mov dword [esp + 0x10], eax
test eax, eax
je 0x5c0299bf
push dword [esp + 0x64]
lea ecx, [esp + 0x28c]
push dword [esp + 0x74]
push dword [esp + 0x90]
push dword [esp + 0x90]
push eax
push ecx
push esi
mov esi, dword [eax + 0xbc]
mov ecx, esi
push ebx
call dword [0x5c05e150]
call esi
mov eax, dword [esp + 0x30]
add esp, 0x20
mov eax, dword [eax + 0x58]
mov dword [esp + 0x18], eax
test eax, eax
je 0x5c0299bf
mov edi, dword [esp + 0x28]
push dword [esp + 0x64]
mov esi, dword [eax + 0xc0]
lea ecx, [esp + 0x28c]
push dword [esp + 0x74]
push dword [esp + 0x90]
push dword [esp + 0x90]
push eax
push ecx
push edi
push ebx
mov ecx, esi
call dword [0x5c05e150]
call esi
mov eax, dword [esp + 0x38]
add esp, 0x20
mov eax, dword [eax + 0x58]
mov dword [esp + 0x18], eax
test eax, eax
jne 0x5c029978
mov edi, dword [esp + 0x6c]
test dword [ebx + 0x1a44], 0x200
mov esi, dword [esp + 0x28]
je 0x5c029f21
mov dword [esp + 0x10], esi
test esi, esi
je 0x5c02a222
lea edx, [esp + 0x29c]
mov eax, dword [ebx + 0x1a44]
mov ecx, dword [edx + 0x2c]
mov dword [esp + 0x24], eax
test eax, 0x12000
je 0x5c029c2c
test cl, 8
jne 0x5c029a12
fld dword [esp + 0x8c]
fst dword [edx - 4]
fst dword [edx]
fstp dword [edx + 4]
test eax, 0x10000
je 0x5c029adb
mov eax, dword [esp + 0xc0]
test eax, eax
je 0x5c029a2e
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x5c029a30
xor eax, eax
mov dword [esp + 0x38], eax
shr eax, 0x10
movzx eax, al
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
test eax, eax
jns 0x5c029a4c
fadd dword [0x5c0031d0]
mov eax, dword [esp + 0x38]
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 0x5c029a84
fadd dword [0x5c0031d0]
mov eax, dword [esp + 0x38]
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 0x5c029ab7
fadd dword [0x5c0031d0]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
mov eax, dword [esp + 0x74]
mov edi, dword [esp + 0x4c]
fmul dword [ebx + 0x55c]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x64], edi
jmp 0x5c029b19
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 + 0x1c]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fst dword [esp + 0x18]
fld dword [esp + 0x1c]
fst dword [esp + 0x24]
fstp dword [esp + 0x1c]
fstp dword [esp + 0x44]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [edx + 4]
test eax, 0x2000
je 0x5c029bed
mov eax, dword [esp + 0xb4]
test eax, eax
je 0x5c029b65
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x5c029b67
xor eax, eax
mov dword [esp + 0x38], eax
shr eax, 0x10
movzx eax, al
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
test eax, eax
jns 0x5c029b83
fadd dword [0x5c0031d0]
mov eax, dword [esp + 0x38]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fadd dword [esp + 0x24]
movzx eax, al
mov dword [esp + 0x14], eax
fstp dword [edx - 4]
fild dword [esp + 0x14]
test eax, eax
jns 0x5c029bab
fadd dword [0x5c0031d0]
mov eax, dword [esp + 0x38]
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 0x5c029bcf
fadd dword [0x5c0031d0]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
mov eax, dword [esp + 0x74]
fadd dword [esp + 0x18]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x64], eax
jmp 0x5c029c1b
fld dword [ebx + 0x5a4]
fld qword [esp + 0xd8]
fmul st(1), st(0)
fld dword [esp + 0x1c]
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 + 0x44]
fstp dword [edx]
mov eax, dword [ebx + 0x1a44]
or ecx, 8
fstp dword [edx + 4]
mov dword [edx + 0x2c], ecx
test cl, 8
je 0x5c029d4e
fld dword [edx - 4]
fstp dword [esp + 0x18]
test eax, 0x12000
jne 0x5c029c70
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 0x5c029c74
fld dword [esp + 0x18]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fistp qword [esp + 0xe0]
fld dword [edx]
mov ecx, dword [esp + 0xe0]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fistp qword [esp + 0xe8]
fld dword [edx + 4]
mov eax, dword [esp + 0xe8]
fstp dword [esp + 0x10]
mov dword [esp + 0x38], eax
fld dword [esp + 0x10]
fistp qword [esp + 0xf0]
mov edi, dword [esp + 0xf0]
test ecx, ecx
jns 0x5c029ccf
xor ecx, ecx
jmp 0x5c029cdc
cmp ecx, 0xff
jle 0x5c029cdc
mov ecx, 0xff
test eax, eax
jns 0x5c029ce4
xor eax, eax
jmp 0x5c029cf0
cmp eax, 0xff
jle 0x5c029cf4
mov eax, 0xff
mov dword [esp + 0x38], eax
test edi, edi
jns 0x5c029cfc
xor edi, edi
jmp 0x5c029d09
cmp edi, 0xff
jle 0x5c029d09
mov edi, 0xff
test dword [ebx + 0x1a44], 0x4000
jne 0x5c029d25
shl ecx, 8
add ecx, eax
shl ecx, 8
add ecx, dword [ebx + 0x510]
jmp 0x5c029d49
mov eax, dword [esp + 0x94]
test eax, eax
je 0x5c029d36
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x5c029d38
xor eax, eax
shl ecx, 8
and eax, 0xff000000
add ecx, dword [esp + 0x38]
shl ecx, 8
add ecx, eax
lea eax, [ecx + edi]
jmp 0x5c029d84
test eax, 0x4000
jne 0x5c029d63
mov eax, dword [ebx + 0x5e8]
add eax, dword [ebx + 0x510]
jmp 0x5c029d84
mov eax, dword [esp + 0x94]
test eax, eax
je 0x5c029d7a
mov eax, dword [eax]
mov ecx, dword [eax]
and ecx, 0xff000000
jmp 0x5c029d7c
xor ecx, ecx
mov eax, dword [ebx + 0x5e8]
add eax, ecx
mov edi, dword [esp + 0x78]
mov dword [edi], eax
test byte [edx + 0x2c], 4
je 0x5c029e78
fld dword [edx + 8]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fistp qword [esp + 0xf8]
fld dword [edx + 0xc]
mov ecx, dword [esp + 0xf8]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fistp qword [esp + 0x100]
fld dword [edx + 0x10]
mov eax, dword [esp + 0x100]
fstp dword [esp + 0x10]
mov dword [esp + 0x38], eax
fld dword [esp + 0x10]
fistp qword [esp + 0x108]
mov edi, dword [esp + 0x108]
mov dword [esp + 0x34], edi
test ecx, ecx
jns 0x5c029def
xor ecx, ecx
jmp 0x5c029dfc
cmp ecx, 0xff
jle 0x5c029dfc
mov ecx, 0xff
test eax, eax
jns 0x5c029e04
xor eax, eax
jmp 0x5c029e10
cmp eax, 0xff
jle 0x5c029e14
mov eax, 0xff
mov dword [esp + 0x38], eax
test edi, edi
jns 0x5c029e20
xor edi, edi
mov dword [esp + 0x34], edi
jmp 0x5c029e30
cmp edi, 0xff
jle 0x5c029e30
mov dword [esp + 0x34], 0xff
test dword [ebx + 0x1a44], 0x8000
jne 0x5c029e4c
shl ecx, 8
add ecx, eax
shl ecx, 8
add ecx, dword [ebx + 0x5bc]
jmp 0x5c029e70
mov eax, dword [esp + 0x98]
test eax, eax
je 0x5c029e5d
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x5c029e5f
xor eax, eax
shl ecx, 8
and eax, 0xff000000
add ecx, dword [esp + 0x38]
shl ecx, 8
add ecx, eax
mov eax, dword [esp + 0x34]
add eax, ecx
jmp 0x5c029ec9
mov eax, dword [ebx + 0x1a44]
test eax, 0x100000
jne 0x5c029ecf
test dword [ebx + 0x1a60], 0x800
jne 0x5c029ea2
test byte [ebx + 0x1a5c], 0x80
je 0x5c029ec7
mov eax, dword [esp + 0x64]
mov eax, dword [eax]
jmp 0x5c029ec9
test eax, 0x8000
jne 0x5c029eb1
mov eax, dword [ebx + 0x5bc]
jmp 0x5c029ec9
mov eax, dword [esp + 0x98]
test eax, eax
je 0x5c029ec7
mov eax, dword [eax]
mov eax, dword [eax]
and eax, 0xff000000
jmp 0x5c029ec9
xor eax, eax
mov edi, dword [esp + 0x5c]
mov dword [edi], eax
mov eax, dword [esp + 0x70]
add edx, 0x44
mov edi, dword [esp + 0x64]
mov ecx, dword [esp + 0x48]
add eax, dword [esp + 0x9c]
add edi, dword [esp + 0xa0]
add dword [esp + 0x5c], ecx
add dword [esp + 0x78], ecx
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x64], edi
mov dword [esp + 0x4c], edi
sub esi, 1
jne 0x5c0299e6
mov eax, dword [esp + 0x158]
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x60], eax
jmp 0x5c02a21e
mov edx, esi
mov dword [esp + 0x38], edx
test esi, esi
je 0x5c02a222
mov eax, esi
lea ecx, [esp + 0x29c]
imul eax, dword [esp + 0x9c]
mov esi, dword [esp + 0x70]
add esi, eax
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], esi
mov esi, dword [esp + 0x48]
test byte [ecx + 0x2c], 8
je 0x5c02a01c
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 + 0x110]
fld dword [ecx]
mov eax, dword [esp + 0x110]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fistp qword [esp + 0x118]
fld dword [ecx + 4]
mov edx, dword [esp + 0x118]
fstp dword [esp + 0x10]
mov dword [esp + 0x4c], edx
fld dword [esp + 0x10]
fistp qword [esp + 0x120]
mov edx, dword [esp + 0x120]
mov edi, 0xff
test eax, eax
jns 0x5c029fde
xor eax, eax
jmp 0x5c029fe4
cmp eax, edi
jle 0x5c029fe4
mov eax, edi
cmp dword [esp + 0x4c], 0
jge 0x5c029ff2
and dword [esp + 0x4c], 0
jmp 0x5c029ffc
cmp dword [esp + 0x4c], edi
jle 0x5c029ffc
mov dword [esp + 0x4c], edi
test edx, edx
jns 0x5c02a004
xor edx, edx
jmp 0x5c02a00a
cmp edx, edi
jle 0x5c02a00a
mov edx, edi
shl eax, 8
add eax, dword [esp + 0x4c]
shl eax, 8
add eax, edx
mov edx, dword [esp + 0x38]
jmp 0x5c02a022
mov eax, dword [ebx + 0x5e8]
mov edi, dword [esp + 0x78]
add eax, dword [ebx + 0x510]
mov dword [edi], eax
test byte [ecx + 0x2c], 4
je 0x5c02a0d8
fld dword [ecx + 8]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fistp qword [esp + 0x128]
fld dword [ecx + 0xc]
mov eax, dword [esp + 0x128]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fistp qword [esp + 0x130]
fld dword [ecx + 0x10]
mov edx, dword [esp + 0x130]
fstp dword [esp + 0x10]
mov dword [esp + 0x4c], edx
fld dword [esp + 0x10]
fistp qword [esp + 0x138]
mov edx, dword [esp + 0x138]
mov edi, 0xff
test eax, eax
jns 0x5c02a094
xor eax, eax
jmp 0x5c02a09a
cmp eax, edi
jle 0x5c02a09a
mov eax, edi
cmp dword [esp + 0x4c], 0
jge 0x5c02a0a8
and dword [esp + 0x4c], 0
jmp 0x5c02a0b2
cmp dword [esp + 0x4c], edi
jle 0x5c02a0b2
mov dword [esp + 0x4c], edi
test edx, edx
jns 0x5c02a0ba
xor edx, edx
jmp 0x5c02a0c0
cmp edx, edi
jle 0x5c02a0c0
mov edx, edi
shl eax, 8
add eax, dword [esp + 0x4c]
shl eax, 8
add eax, dword [ebx + 0x5bc]
add eax, edx
mov edx, dword [esp + 0x38]
jmp 0x5c02a10b
test dword [ebx + 0x1a44], 0x100000
jne 0x5c02a111
test dword [ebx + 0x1a60], 0x800
jne 0x5c02a105
test byte [ebx + 0x1a5c], 0x80
je 0x5c02a101
mov edi, dword [esp + 0x64]
mov eax, dword [edi]
jmp 0x5c02a10b
xor eax, eax
jmp 0x5c02a10b
mov eax, dword [ebx + 0x5bc]
mov edi, dword [esp + 0x5c]
mov dword [edi], eax
mov eax, dword [esp + 0x64]
add ecx, 0x44
add eax, dword [esp + 0xa0]
add dword [esp + 0x5c], esi
add dword [esp + 0x78], esi
sub edx, 1
mov dword [esp + 0x64], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x38], edx
jne 0x5c029f52
mov edi, dword [esp + 0x6c]
jmp 0x5c02a21e
test ecx, ecx
js 0x5c02a194
test byte [ebx + 0x1a5c], 0x40
je 0x5c02a1e8
mov ecx, esi
test esi, esi
je 0x5c02a194
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x70]
mov ebx, dword [esp + 0x78]
mov esi, dword [esp + 0x9c]
mov eax, dword [edx]
add edx, esi
mov dword [ebx], eax
add ebx, edi
mov dword [esp + 0x74], edx
sub ecx, 1
jne 0x5c02a16f
mov edi, dword [esp + 0x6c]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 0x7c]
mov dword [esp + 0x70], edx
mov ecx, dword [esp + 0x48]
test dword [ebx + 0x1a44], 0x100000
jne 0x5c02a21e
test byte [ebx + 0x1a5c], 0x80
je 0x5c02a206
mov ecx, esi
test esi, esi
je 0x5c02a21e
mov eax, dword [esp + 0x64]
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x5c]
mov esi, dword [esp + 0xa0]
mov eax, dword [eax]
mov dword [edx], eax
add edx, edi
mov eax, dword [esp + 0x64]
add eax, esi
mov dword [esp + 0x64], eax
mov dword [esp + 0x4c], eax
sub ecx, 1
jne 0x5c02a1c6
mov dword [esp + 0x5c], edx
jmp 0x5c02a13c
mov ecx, dword [esp + 0x48]
mov eax, esi
test esi, esi
je 0x5c02a198
mov edx, dword [esp + 0x78]
or dword [edx], 0xffffffff
add edx, ecx
sub eax, 1
jne 0x5c02a1f6
mov dword [esp + 0x78], edx
jmp 0x5c02a198
mov eax, esi
test esi, esi
je 0x5c02a21e
mov edx, dword [esp + 0x5c]
and dword [edx], 0
add edx, ecx
sub eax, 1
jne 0x5c02a210
mov dword [esp + 0x5c], edx
mov esi, dword [esp + 0x28]
test dword [ebx + 0x1a44], 0x100
je 0x5c02a61a
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x10], esi
test esi, esi
je 0x5c02a61a
mov esi, dword [esp + 0xa4]
lea edi, [esp + 0x2b8]
mov eax, dword [esp + 0x80]
and esi, 4
test byte [edi + 0x10], 1
je 0x5c02a298
test esi, esi
je 0x5c02a28d
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 + 0x20]
jmp 0x5c02a5cb
fld dword [edi]
fstp dword [esp + 0x20]
jmp 0x5c02a5d2
fld dword [ecx + 4]
fld dword [ecx]
fld dword [ecx + 8]
test esi, esi
je 0x5c02a4d5
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 + 0x30]
fld dword [ebx + 0x448]
fmul st(2)
fld dword [ebx + 0x458]
fmul st(4)
faddp st(1)
fld dword [ebx + 0x468]
fmul st(2)
faddp st(1)
fadd dword [ebx + 0x478]
fstp dword [esp + 0x34]
fld dword [ebx + 0x44c]
fmul st(2)
fld dword [ebx + 0x45c]
fmul st(4)
faddp st(1)
fld dword [ebx + 0x46c]
fmul st(2)
faddp st(1)
fadd dword [ebx + 0x47c]
fstp dword [esp + 0x58]
test edx, edx
je 0x5c02a4a6
fld dword [esp + 0x8c]
and dword [esp + 0x14], 0
fst dword [esp + 0x38]
fst dword [esp + 0x18]
fst dword [esp + 0x1c]
fst dword [esp + 0x44]
test edx, edx
je 0x5c02a443
fstp st(0)
lea eax, [ebx + 0x2e4]
fld dword [esp + 0x30]
mov ebx, dword [esp + 0x14]
fstp dword [esp + 0x20]
fld dword [esp + 0x34]
fstp dword [esp + 0x50]
fld dword [esp + 0x58]
fstp dword [esp + 0x2c]
fld dword [ecx + ebx*4 + 0xc]
inc ebx
fld dword [esp + 0x20]
fmul st(1)
fadd dword [esp + 0x18]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fst dword [esp + 0x34]
fstp dword [esp + 0x18]
fld dword [esp + 0x50]
fmul st(1)
fadd dword [esp + 0x1c]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fst dword [esp + 0x30]
fstp dword [esp + 0x1c]
fld dword [esp + 0x2c]
fmul st(1)
fadd dword [esp + 0x44]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fst dword [esp + 0x14]
fstp dword [esp + 0x44]
fadd dword [esp + 0x38]
fstp dword [esp + 0x38]
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 + 0x20]
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 + 0x50]
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 + 0x2c]
cmp ebx, edx
jb 0x5c02a370
mov ebx, dword [esp + 0x7c]
fstp st(2)
fstp st(0)
fstp st(0)
fld dword [esp + 0x34]
fstp dword [esp + 0x1c]
fld dword [esp + 0x30]
fstp dword [esp + 0x18]
fld dword [esp + 0x14]
jmp 0x5c02a469
fstp st(3)
fstp st(1)
fstp st(0)
fld dword [esp + 0x30]
fstp dword [esp + 0x20]
fld dword [esp + 0x34]
fstp dword [esp + 0x50]
fld dword [esp + 0x58]
fstp dword [esp + 0x2c]
fst dword [esp + 0x1c]
fst dword [esp + 0x18]
fstp dword [esp + 0x44]
fld dword [esp + 0x38]
fsubr qword [esp + 0xd0]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fld dword [esp + 0x50]
fmul st(1)
fadd dword [esp + 0x18]
fstp dword [esp + 0x18]
fld dword [esp + 0x20]
fmul st(1)
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fmul dword [esp + 0x2c]
fadd dword [esp + 0x44]
jmp 0x5c02a4c0
fstp st(2)
fstp st(0)
fstp st(0)
fld dword [esp + 0x34]
fstp dword [esp + 0x18]
fld dword [esp + 0x30]
fstp dword [esp + 0x1c]
fld dword [esp + 0x58]
fstp dword [esp + 0x44]
fld dword [esp + 0x18]
fld dword [esp + 0x44]
fld dword [esp + 0x1c]
jmp 0x5c02a273
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 0x5c02a514
fstp st(2)
fstp st(0)
fstp st(0)
fld dword [esp + 0x18]
jmp 0x5c02a5c7
fld dword [esp + 0x8c]
xor edx, edx
fst dword [esp + 0x38]
fst dword [esp + 0x1c]
fld dword [esp + 0x18]
fst dword [esp + 0x2c]
fxch st(1)
fstp dword [esp + 0x18]
test eax, eax
je 0x5c02a59c
fstp dword [esp + 0x2c]
lea eax, [ebx + 0x2cc]
fld dword [ecx + edx*4 + 0xc]
inc edx
fld dword [esp + 0x2c]
fmul st(1)
fadd dword [esp + 0x1c]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fst dword [esp + 0x14]
fstp dword [esp + 0x1c]
fadd dword [esp + 0x38]
fstp dword [esp + 0x38]
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 + 0x2c]
cmp edx, dword [ebx + 0x1cb4]
jb 0x5c02a541
fstp st(2)
fstp st(0)
fstp st(0)
fld dword [esp + 0x14]
fstp dword [esp + 0x18]
jmp 0x5c02a5a4
fstp st(0)
fstp st(2)
fstp st(0)
fstp st(0)
fld dword [esp + 0x38]
fsubr qword [esp + 0xd0]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fmul dword [esp + 0x2c]
fadd dword [esp + 0x18]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fstp dword [esp + 0x20]
mov eax, dword [esp + 0x80]
fld dword [esp + 0x20]
mov edx, eax
push ecx
mov ecx, ebx
fstp dword [esp]
call fcn.5c01a28f
mov eax, dword [esp + 0x84]
add edi, 0x44
add eax, dword [esp + 0x4c]
pop ecx
mov ecx, dword [esp + 0x24]
add ecx, dword [ebx + 0x1a7c]
sub dword [esp + 0x10], 1
mov dword [esp + 0x24], ecx
mov dword [esp + 0x80], eax
jne 0x5c02a261
mov edi, dword [esp + 0x6c]
mov esi, dword [esp + 0x28]
test edi, edi
je 0x5c02a652
test dword [esp + 0xa4], 0x200000
je 0x5c02a6a7
mov eax, esi
test esi, esi
je 0x5c02a652
fld dword [esp + 0x8c]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x48]
fst dword [edx]
fst dword [edx + 4]
add edx, ecx
sub eax, 1
jne 0x5c02a640
fstp st(0)
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x28]
cmp ecx, dword [esp + 0xc4]
jne 0x5c02ae6a
mov eax, dword [esp + 0xc8]
add dword [esp + 0x88], eax
mov eax, dword [esp + 0x84]
add eax, edx
mov edx, dword [esp + 0xac]
sub edx, ecx
mov dword [esp + 0x84], eax
mov dword [esp + 0xac], edx
je 0x5c02ae7f
mov esi, dword [esp + 0xb0]
jmp 0x5c0293ec
mov ecx, dword [ebx + 0x1a60]
mov eax, ecx
and eax, 0x4010000
test ecx, 0x8000000
je 0x5c02aad0
test eax, eax
jne 0x5c02a75b
mov eax, esi
mov dword [esp + 0x18], eax
test esi, esi
je 0x5c02a652
mov edx, dword [esp + 0x54]
and dword [esp + 0x14], 0
mov ecx, edx
mov dword [esp + 0x10], ecx
test edi, edi
je 0x5c02a73a
lea eax, [ebx + 0x1ad8]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x24], eax
mov esi, dword [eax]
push esi
push dword [esp + ebx*4 + 0x15c]
push ecx
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + ebx*4 + 0x184]
add esp, 0xc
add dword [esp + ebx*4 + 0x158], eax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
add ecx, esi
inc ebx
mov dword [esp + 0x10], ecx
add eax, 4
mov dword [esp + 0x24], eax
cmp ebx, edi
jb 0x5c02a6f3
mov ebx, dword [esp + 0x7c]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x54]
add edx, dword [esp + 0x48]
sub eax, 1
mov dword [esp + 0x54], edx
mov dword [esp + 0x18], eax
jne 0x5c02a6d6
mov eax, dword [esp + 0x158]
mov dword [esp + 0x60], eax
jmp 0x5c02a652
test ecx, 0x10000
jne 0x5c02a884
mov edx, dword [esp + 0x54]
xor eax, eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x58], eax
test edi, edi
je 0x5c02a870
lea ecx, [ebx + 0x1af8]
mov dword [esp + 0x24], ecx
mov ebx, dword [ecx - 0x20]
mov dword [esp + 0x38], ebx
mov ebx, dword [ecx]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + eax*4 + 0x178]
mov eax, dword [esp + eax*4 + 0x158]
mov dword [esp + 0x30], ebx
mov ebx, eax
mov dword [esp + 0x18], eax
mov eax, dword [ecx + 0x138]
mov dword [esp + 0x10], eax
test eax, eax
jne 0x5c02a7ec
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], esi
test esi, esi
je 0x5c02a82b
mov esi, dword [esp + 0x38]
mov edi, edx
push esi
push ebx
push edi
call sub.msvcrt.dll_memcpy
add ebx, dword [esp + 0x3c]
add esp, 0xc
add edi, dword [esp + 0x48]
sub dword [esp + 0x10], 1
jne 0x5c02a7cc
mov edi, dword [esp + 0x6c]
jmp 0x5c02a823
push dword [esp + 0x48]
mov eax, dword [esp + 0x3c]
push dword [esp + 0x34]
mov ecx, dword [esp + 0x1c]
push dword [esp + 0x30]
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 [0x5c05e150]
call esi
add esp, 0x18
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x28]
imul eax, dword [esp + 0x30], 0xa
mov ecx, dword [esp + 0x58]
add edx, dword [esp + 0x38]
mov dword [esp + 0x34], edx
add eax, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x158], eax
mov eax, ecx
mov ecx, dword [esp + 0x24]
inc eax
add ecx, 4
mov dword [esp + 0x58], eax
mov dword [esp + 0x24], ecx
cmp eax, edi
jb 0x5c02a787
mov eax, dword [esp + 0x158]
mov ebx, dword [esp + 0x7c]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x54]
add eax, dword [esp + 0xa8]
mov dword [esp + 0x54], eax
jmp 0x5c02a652
mov eax, dword [esp + 0x54]
mov edx, eax
and dword [esp + 0x1c], 0
cmp dword [ebx + 0x1c2c], 0
mov dword [esp + 0x20], edx
jbe 0x5c02aa9c
lea eax, [ebx + 0x1ad8]
lea ecx, [ebx + 0x1b44]
mov dword [esp + 0x44], eax
mov dword [esp + 0x50], ecx
mov eax, dword [eax]
mov dword [esp + 0x18], eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x5c02a8d7
mov eax, dword [ecx - 0x18]
mov edi, dword [esp + eax*4 + 0x158]
mov eax, dword [esp + eax*4 + 0x178]
jmp 0x5c02a9fa
cmp eax, 0x20000
jne 0x5c02a8ec
lea edi, [esp + 0x2b0]
push 0x44
jmp 0x5c02a9f9
cmp eax, 0x10000
jne 0x5c02a8fc
lea edi, [esp + 0x2bc]
jmp 0x5c02a8e5
mov eax, dword [ebx + 0x1a60]
and eax, 0x1000000
test esi, esi
je 0x5c02a9f0
test eax, eax
je 0x5c02a9c8
lea eax, [esp + 0x1a0]
mov dword [esp + 0x24], esi
mov dword [esp + 0x10], eax
lea ebx, [esp + 0x2c4]
lea esi, [ebx - 0x14]
lea edi, [esp + 0x140]
movsd dword es:[edi], dword [esi]
lea edx, [esp + 0x140]
mov ecx, edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.5c050908
fld dword [ebx - 4]
fst qword [esp + 0x38]
fld dword [ebx - 8]
fld dword [esp + 0x140]
fld dword [ebx]
add ebx, 0x44
fld dword [esp + 0x144]
fld st(0)
mov eax, dword [esp + 0x10]
fmulp st(5)
fld st(2)
fmul st(4)
faddp st(5)
fld dword [esp + 0x148]
fld st(0)
fmul st(3)
faddp st(6)
fxch st(5)
fadd st(0), st(0)
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fld st(0)
fmulp st(5)
fxch st(3)
fsubrp st(4)
fxch st(3)
fstp dword [eax - 8]
fld st(1)
fmul qword [esp + 0x38]
fsubp st(3)
fxch st(2)
fstp dword [eax - 4]
fmulp st(1)
fsubp st(1)
fstp dword [eax]
add eax, 0xc
sub dword [esp + 0x24], 1
mov dword [esp + 0x10], eax
jne 0x5c02a92d
mov ebx, dword [esp + 0x7c]
mov esi, dword [esp + 0x28]
jmp 0x5c02a9e8
lea ecx, [esp + 0x2bc]
mov eax, esi
lea edx, [esp + 0x198]
call fcn.5c01a3b3
add edx, 0xc
add ecx, 0x44
sub eax, 1
jne 0x5c02a9d8
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x50]
lea edi, [esp + 0x198]
push 0xc
pop eax
cmp dword [ecx - 4], 0
mov dword [esp + 0x2c], eax
jne 0x5c02aa35
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], esi
test esi, esi
je 0x5c02aa65
mov ebx, eax
mov esi, edx
push dword [esp + 0x18]
push edi
push esi
call sub.msvcrt.dll_memcpy
add esi, dword [esp + 0x54]
add esp, 0xc
add edi, ebx
sub dword [esp + 0x10], 1
jne 0x5c02aa14
mov ebx, dword [esp + 0x7c]
jmp 0x5c02aa59
push dword [esp + 0x48]
mov esi, dword [ecx]
push eax
push dword [esp + 0x30]
push dword [ecx - 4]
mov esi, dword [esi*4 + 0x5c001670]
mov ecx, esi
push edx
push edi
call dword [0x5c05e150]
call esi
add esp, 0x18
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x28]
add edx, dword [esp + 0x18]
add ecx, 0x20
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x44]
inc edi
add eax, 4
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x44], eax
mov dword [esp + 0x50], ecx
cmp edi, dword [ebx + 0x1c2c]
jb 0x5c02a8b4
mov edi, dword [esp + 0x6c]
mov eax, dword [esp + 0x54]
add eax, dword [esp + 0xa8]
xor ecx, ecx
mov edx, dword [ebx + 0x1a84]
mov dword [esp + 0x54], eax
test edx, edx
je 0x5c02a652
imul eax, dword [esp + ecx*4 + 0x178], 0xa
add dword [esp + ecx*4 + 0x158], eax
inc ecx
cmp ecx, edx
jb 0x5c02aab7
jmp 0x5c02a74b
test eax, eax
jne 0x5c02ab26
mov dword [esp + 0x14], esi
test esi, esi
je 0x5c02a652
mov edx, dword [esp + 0x54]
mov edi, esi
mov esi, dword [esp + 0x60]
push dword [ebx + 0x1a8c]
push esi
push edx
call sub.msvcrt.dll_memcpy
mov edx, dword [esp + 0x60]
add esp, 0xc
add edx, dword [esp + 0x48]
add esi, dword [esp + 0x90]
mov dword [esp + 0x54], edx
mov dword [esp + 0x158], esi
sub edi, 1
jne 0x5c02aaea
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x60], esi
jmp 0x5c02a652
mov edx, dword [esp + 0x54]
test ecx, 0x10000
jne 0x5c02ac3a
mov eax, dword [esp + 0x60]
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], edx
test edi, edi
je 0x5c02ac1f
lea eax, [ebx + 0x1af8]
mov dword [esp + 0x18], edi
mov ebx, dword [esp + 0x34]
mov edi, edx
mov dword [esp + 0x58], eax
mov edx, dword [eax]
mov ecx, dword [eax - 0x20]
mov dword [esp + 0x24], edx
mov edx, dword [eax + 0x138]
mov dword [esp + 0x38], ecx
test edx, edx
jne 0x5c02abb0
mov dword [esp + 0x14], edi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x10], esi
test esi, esi
je 0x5c02abef
mov esi, edi
mov edi, ecx
push edi
push ebx
push esi
call sub.msvcrt.dll_memcpy
add ebx, dword [esp + 0x9c]
add esp, 0xc
add esi, dword [esp + 0x48]
sub dword [esp + 0x10], 1
jne 0x5c02ab89
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
jmp 0x5c02abe3
push dword [esp + 0x48]
mov eax, dword [esp + 0x28]
push dword [esp + 0x94]
shr ecx, 2
push dword [esp + 0x30]
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 [0x5c05e150]
call esi
add esp, 0x18
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0x28]
add ebx, dword [esp + 0x24]
add edi, ecx
add eax, 4
mov dword [esp + 0x34], ebx
sub dword [esp + 0x18], 1
mov dword [esp + 0x30], edi
mov dword [esp + 0x58], eax
jne 0x5c02ab5e
mov ebx, dword [esp + 0x7c]
mov edi, dword [esp + 0x6c]
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x54]
add eax, dword [esp + 0x68]
add edx, dword [esp + 0xa8]
mov dword [esp + 0x60], eax
mov dword [esp + 0x158], eax
jmp 0x5c02a64e
and dword [esp + 0x1c], 0
cmp dword [ebx + 0x1c2c], 0
mov dword [esp + 0x50], edx
jbe 0x5c02ae45
lea eax, [ebx + 0x1ad8]
lea ecx, [ebx + 0x1b44]
mov dword [esp + 0x44], eax
mov dword [esp + 0x20], ecx
mov eax, dword [eax]
mov dword [esp + 0x18], eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x5c02ac84
mov edi, dword [ecx - 0x14]
add edi, dword [esp + 0x60]
mov eax, dword [esp + 0x90]
jmp 0x5c02ada7
cmp eax, 0x20000
jne 0x5c02ac99
lea edi, [esp + 0x2b0]
push 0x44
jmp 0x5c02ada6
cmp eax, 0x10000
jne 0x5c02aca9
lea edi, [esp + 0x2bc]
jmp 0x5c02ac92
mov eax, dword [ebx + 0x1a60]
and eax, 0x1000000
test esi, esi
je 0x5c02ad9d
test eax, eax
je 0x5c02ad75
lea eax, [esp + 0x218]
mov dword [esp + 0x24], esi
mov dword [esp + 0x10], eax
lea ebx, [esp + 0x2c4]
lea esi, [ebx - 0x14]
lea edi, [esp + 0x14c]
movsd dword es:[edi], dword [esi]
lea edx, [esp + 0x14c]
mov ecx, edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.5c050908
fld dword [ebx - 4]
fst qword [esp + 0x38]
fld dword [esp + 0x14c]
fld dword [ebx - 8]
fld dword [ebx]
add ebx, 0x44
fld dword [esp + 0x150]
fld st(0)
mov eax, dword [esp + 0x10]
fmulp st(5)
fld st(3)
fmul st(3)
faddp st(5)
fld dword [esp + 0x154]
fld st(0)
fmul st(3)
faddp st(6)
fxch st(5)
fadd st(0), st(0)
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fld st(0)
fmulp st(4)
fxch st(4)
fsubrp st(3)
fxch st(2)
fstp dword [eax - 8]
fld st(2)
fmul qword [esp + 0x38]
fsubp st(2)
fxch st(1)
fstp dword [eax - 4]
fmulp st(1)
fsubp st(1)
fstp dword [eax]
add eax, 0xc
sub dword [esp + 0x24], 1
mov dword [esp + 0x10], eax
jne 0x5c02acda
mov ebx, dword [esp + 0x7c]
mov esi, dword [esp + 0x28]
jmp 0x5c02ad95
lea ecx, [esp + 0x2bc]
mov eax, esi
lea edx, [esp + 0x210]
call fcn.5c01a3b3
add edx, 0xc
add ecx, 0x44
sub eax, 1
jne 0x5c02ad85
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x20]
lea edi, [esp + 0x210]
push 0xc
pop eax
cmp dword [ecx - 4], 0
mov dword [esp + 0x2c], eax
jne 0x5c02ade2
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], esi
test esi, esi
je 0x5c02ae12
mov ebx, eax
mov esi, edx
push dword [esp + 0x18]
push edi
push esi
call sub.msvcrt.dll_memcpy
add esi, dword [esp + 0x54]
add esp, 0xc
add edi, ebx
sub dword [esp + 0x10], 1
jne 0x5c02adc1
mov ebx, dword [esp + 0x7c]
jmp 0x5c02ae06
push dword [esp + 0x48]
mov esi, dword [ecx]
push eax
push dword [esp + 0x30]
push dword [ecx - 4]
mov esi, dword [esi*4 + 0x5c001670]
mov ecx, esi
push edx
push edi
call dword [0x5c05e150]
call esi
add esp, 0x18
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x28]
add edx, dword [esp + 0x18]
add ecx, 0x20
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x44]
inc edi
add eax, 4
mov dword [esp + 0x50], edx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x44], eax
mov dword [esp + 0x20], ecx
cmp edi, dword [ebx + 0x1c2c]
jb 0x5c02ac64
mov edi, dword [esp + 0x6c]
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x68]
add eax, edx
mov dword [esp + 0x60], eax
mov dword [esp + 0x158], eax
mov eax, dword [esp + 0xa8]
add dword [esp + 0x54], eax
jmp 0x5c02a656
mov eax, dword [ebx + 0x1a40]
sub eax, dword [esp + 0xac]
add eax, ecx
mov dword [ebx + 0x225c], eax
test dword [ebx + 0x1a60], 0x100000
jne 0x5c02afa5
fld dword [ebx + 0x68c]
fld dword [ebx + 0x1b24]
fadd st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fst dword [esp + 0xb8]
fstp dword [ebx + 0x1b24]
fld dword [ebx + 0x1b28]
fadd st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fst dword [esp + 0xb0]
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 + 0xbc]
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 0x5c02af25
fstp dword [ebx + 0x1b1c]
jmp 0x5c02af27
fstp st(0)
fld dword [ebx + 0x628]
fstp dword [esp + 0x14]
fld dword [esp + 0xbc]
fld dword [esp + 0x14]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x5c02af4f
fstp dword [ebx + 0x1b20]
jmp 0x5c02af51
fstp st(0)
fld dword [ebx + 0x62c]
fstp dword [esp + 0x14]
fld dword [esp + 0xb8]
fld dword [esp + 0x14]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x5c02af79
fstp dword [ebx + 0x1b24]
jmp 0x5c02af7b
fstp st(0)
fld dword [ebx + 0x630]
fstp dword [esp + 0x14]
fld dword [esp + 0xb0]
fld dword [esp + 0x14]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x5c02afa3
fstp dword [ebx + 0x1b28]
jmp 0x5c02afa5
fstp st(0)
mov eax, dword [ebx + 0x684]
mov ecx, dword [esp + 0x534]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.5c0501b0
mov esp, ebp
pop ebp
ret