Function at 0x5c02a514
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, 0x524
mov eax, dword [0x5c066124]
xor eax, esp
mov dword [esp + 0x520], eax
push ebx
mov ebx, ecx
push esi
xor esi, esi
mov dword [esp + 0x68], 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 + 0x44], 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 + 0x50], ecx
mov dword [esp + 0x78], ecx
mov ecx, dword [ebx + 0x1a60]
mov edx, ecx
mov dword [esp + 0x30], eax
xor eax, eax
mov dword [esp + 0x54], esi
mov dword [esp + 0x150], 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 + 0x38], edx
jne 0x5c02a639
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 + 0x58], esi
mov dword [esp + 0x68], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x34], esi
test ecx, ecx
je 0x5c02a6c5
mov esi, dword [ebx + 0x1cbc]
add esi, edi
jmp 0x5c02a686
mov eax, dword [ebx + 0x1a2c]
mov dword [esp + 0x80], eax
mov eax, dword [ebx + 0x1a34]
mov dword [esp + 0x68], eax
mov dword [esp + 0x70], eax
mov eax, dword [ebx + 0x1a90]
mov dword [esp + 0x58], eax
mov dword [esp + 0x34], eax
test cl, 0x10
jne 0x5c02a693
test dword [ebx + 0x1a44], esi
jne 0x5c02a693
mov ecx, dword [ebx + 0x1a84]
test ecx, ecx
je 0x5c02a6c5
mov eax, dword [ebx + 0x688]
mov esi, dword [ebx + eax*8 + 0x1a98]
mov dword [esp + 0x54], esi
mov dword [esp + 0x150], esi
jmp 0x5c02a6c5
mov ecx, dword [ebx + 0x1a84]
xor edx, edx
test ecx, ecx
je 0x5c02a6c1
lea esi, [ebx + 0x1a98]
mov eax, dword [esi]
lea esi, [esi + 8]
mov dword [esp + edx*4 + 0x150], eax
inc edx
cmp edx, ecx
jb 0x5c02a6a5
mov eax, dword [esp + 0x150]
mov dword [esp + 0x54], 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 + 0x84]
test eax, 0x400
je 0x5c02a849
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 0x5c02a84b
test byte [ebx + 0x1a5c], 0x40
je 0x5c02a7b7
cmp dword [ebx + 0x5f8], 0
jne 0x5c02a757
or edi, 0x2200
lea esi, [esp + 0x70]
mov dword [ebx + 0x1a44], edi
mov dword [esp + 0xac], esi
cmp dword [ebx + 0x5f0], 0
jne 0x5c02a777
or edi, 0x4200
lea eax, [esp + 0x70]
mov dword [ebx + 0x1a44], edi
mov dword [esp + 0x8c], eax
cmp dword [ebx + 0x5ec], 0
jne 0x5c02a797
or edi, 0x10200
lea eax, [esp + 0x70]
mov dword [ebx + 0x1a44], edi
mov dword [esp + 0xb8], eax
cmp dword [ebx + 0x5f4], 0
jne 0x5c02a7b7
or edi, 0x8200
lea eax, [esp + 0x70]
mov dword [ebx + 0x1a44], edi
mov dword [esp + 0x90], eax
test byte [ebx + 0x1a5c], 0x80
je 0x5c02a84b
cmp dword [ebx + 0x5f8], 1
mov eax, edi
jne 0x5c02a7e5
or eax, 0x2200
lea esi, [esp + 0x34]
mov dword [ebx + 0x1a44], eax
mov dword [esp + 0xac], esi
cmp dword [ebx + 0x5f0], 1
mov edi, eax
jne 0x5c02a807
or edi, 0x4200
lea eax, [esp + 0x34]
mov dword [ebx + 0x1a44], edi
mov dword [esp + 0x8c], eax
cmp dword [ebx + 0x5ec], 1
jne 0x5c02a827
or edi, 0x10200
lea eax, [esp + 0x34]
mov dword [ebx + 0x1a44], edi
mov dword [esp + 0xb8], eax
cmp dword [ebx + 0x5f4], 1
jne 0x5c02a84b
or edi, 0x8200
lea eax, [esp + 0x34]
mov dword [ebx + 0x1a44], edi
mov dword [esp + 0x90], eax
jmp 0x5c02a84b
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 + 0x60], edi
mov dword [esp + 0x5c], eax
imul eax, dword [esp + 0x30], 0xa
mov dword [esp + 0xa0], eax
test edx, edx
je 0x5c02a8cf
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 0x5c02a8ef
lea esi, [ebx + 0x1a9c]
mov eax, dword [esi]
lea esi, [esi + 8]
mov dword [esp + edx*4 + 0x170], eax
inc edx
cmp edx, ecx
jb 0x5c02a8bc
jmp 0x5c02a8ef
mov edx, dword [esp + 0x5c]
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, 0x5c029c80
and ecx, 0x80000
je 0x5c02a908
mov esi, 0x5c02a1e0
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 [0x5c003840]
fstp qword [esp + 0xd0]
cmp edx, 0xa
jae 0x5c02a955
mov ecx, edx
mov dword [esp + 0xbc], edx
jmp 0x5c02a95f
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 [0x5c06a150]
call esi
mov ecx, dword [ebx + 0x1a44]
mov esi, eax
mov eax, dword [ebx + 0x1a60]
add esp, 0x14
mov dword [esp + 0x20], esi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x38], eax
test ecx, 0x500
jne 0x5c02a9ae
test eax, 0x60000000
je 0x5c02ae69
jmp 0x5c02a9b2
mov dword [esp + 0x38], eax
push 0x2a8
lea eax, [esp + 0x284]
push 0
push eax
call sub.msvcrt.dll_memset
mov eax, dword [esp + 0x44]
add esp, 0xc
mov ecx, dword [esp + 0xc]
test eax, 0x60000000
je 0x5c02ae69
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x24], edx
mov dword [esp + 0x10], esi
test esi, esi
je 0x5c02ae69
mov eax, dword [esp + 0x80]
lea esi, [esp + 0x2ac]
add eax, 8
mov dword [esp + 0x38], eax
test dword [ebx + 0x1a60], 0x20000000
je 0x5c02ac13
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 + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0x28]
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 + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0x1c]
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 + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0xc]
fstp dword [esi + 4]
test edi, edi
je 0x5c02ac0f
fld dword [esp + 0x84]
fst dword [esp + 0x18]
fld dword [esp + 0x28]
fstp dword [esp + 0x4c]
fld dword [esp + 0x1c]
fstp dword [esp + 0x48]
fld dword [esp + 0xc]
and dword [esp + 0xc], 0
fstp dword [esp + 0x2c]
fst dword [esi - 4]
fst dword [esi]
fst dword [esi + 4]
fst dword [esp + 0x64]
fst dword [esp + 0x40]
fstp dword [esp + 0x1c]
test edi, edi
je 0x5c02abd8
mov eax, dword [esp + 0xc]
lea ecx, [ebx + 0x2e4]
fld dword [edx + eax*4 + 0xc]
inc eax
fld dword [esp + 0x4c]
fmul st(1)
fadd dword [esi - 4]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0x28]
fstp dword [esi - 4]
fld dword [esp + 0x48]
fmul st(1)
fadd dword [esi]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0x1c]
fstp dword [esi]
fld dword [esp + 0x2c]
fmul st(1)
fadd dword [esi + 4]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0xc]
fstp dword [esi + 4]
fadd dword [esp + 0x18]
fstp dword [esp + 0x18]
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 + 0x4c]
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 + 0x48]
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 + 0x2c]
cmp eax, edi
jb 0x5c02ab09
fld dword [esp + 0x28]
mov eax, dword [esp + 0x38]
fstp dword [esp + 0x64]
fld dword [esp + 0x1c]
fstp dword [esp + 0x40]
fld dword [esp + 0xc]
fstp dword [esp + 0x1c]
fld dword [esp + 0x18]
fsubr qword [esp + 0xc8]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fld dword [esp + 0x4c]
fmul st(1)
fadd dword [esp + 0x64]
fstp dword [esi - 4]
fld dword [esp + 0x48]
fmul st(1)
fadd dword [esp + 0x40]
fstp dword [esi]
fmul dword [esp + 0x2c]
fadd dword [esp + 0x1c]
fstp dword [esi + 4]
or dword [esi + 0x14], 1
test dword [ebx + 0x1a60], 0x40000000
je 0x5c02ae43
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 + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0x28]
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 + 0xc]
fld dword [esp + 0xc]
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 + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0xc]
fstp dword [esi + 0x10]
test edi, edi
je 0x5c02ae19
fld dword [esp + 0x84]
and dword [esp + 0x18], 0
mov edx, dword [esp + 0x24]
fst dword [esp + 0x4c]
fld dword [esp + 0x28]
fstp dword [esp + 0x48]
fld dword [esp + 0x1c]
fstp dword [esp + 0x2c]
fld dword [esp + 0xc]
fstp dword [esp + 0x64]
fst dword [ecx]
fst dword [esi + 0xc]
fst dword [esi + 0x10]
test edi, edi
je 0x5c02add6
fstp st(0)
lea edi, [ebx + 0x38c]
mov ebx, dword [esp + 0x18]
fld dword [edx + ebx*4 + 0xc]
inc ebx
fld dword [esp + 0x48]
fmul st(1)
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x6c]
mov edx, dword [esp + 0x18]
fadd dword [ecx]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0x28]
fstp dword [ecx]
fld dword [esp + 0x2c]
fmul st(1)
fadd dword [esi + 0xc]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0x40]
fstp dword [esi + 0xc]
fld dword [esp + 0x64]
fmul st(1)
fadd dword [esi + 0x10]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0xc]
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 + 0x48]
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 + 0x2c]
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 + 0x24]
faddp st(1)
fstp dword [esp + 0x64]
jb 0x5c02acfe
fld dword [esp + 0x28]
fstp dword [esp + 0x1c]
fld dword [esp + 0x40]
fstp dword [esp + 0x40]
fld dword [esp + 0xc]
jmp 0x5c02adde
fst dword [esp + 0x1c]
fst dword [esp + 0x40]
fstp dword [esp + 0x18]
fld dword [esp + 0x4c]
fsubr qword [esp + 0xc8]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fld dword [esp + 0x48]
fmul st(1)
fadd dword [esp + 0x1c]
fstp dword [ecx]
fld dword [esp + 0x2c]
fmul st(1)
fadd dword [esp + 0x40]
fstp dword [esi + 0xc]
fmul dword [esp + 0x64]
fadd dword [esp + 0x18]
fstp dword [esi + 0x10]
test dword [ebx + 0x1a60], 0x2000000
je 0x5c02ae34
mov edx, ecx
call fcn.5c0504a4
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x24]
or dword [esi + 0x14], 2
add eax, dword [esp + 0xc4]
mov dword [esp + 0x38], eax
add edx, dword [ebx + 0x1a7c]
add esi, 0x44
sub dword [esp + 0x10], 1
mov dword [esp + 0x24], edx
jne 0x5c02aa05
mov edi, dword [esp + 0x60]
mov ecx, dword [ebx + 0x1a44]
mov esi, dword [esp + 0x20]
test ecx, 0x400
je 0x5c02b6ac
mov eax, dword [ebx + 0x5c0]
mov dword [esp + 0xc], eax
test eax, eax
je 0x5c02af15
push dword [esp + 0x58]
lea ecx, [esp + 0x284]
push dword [esp + 0x6c]
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 [0x5c06a150]
call esi
mov eax, dword [esp + 0x2c]
add esp, 0x20
mov eax, dword [eax + 0x58]
mov dword [esp + 0x10], eax
test eax, eax
je 0x5c02af15
mov edi, dword [esp + 0x20]
push dword [esp + 0x58]
mov esi, dword [eax + 0xc0]
lea ecx, [esp + 0x284]
push dword [esp + 0x6c]
push dword [esp + 0x88]
push dword [esp + 0x88]
push eax
push ecx
push edi
push ebx
mov ecx, esi
call dword [0x5c06a150]
call esi
mov eax, dword [esp + 0x30]
add esp, 0x20
mov eax, dword [eax + 0x58]
mov dword [esp + 0x10], eax
test eax, eax
jne 0x5c02aece
mov edi, dword [esp + 0x60]
test dword [ebx + 0x1a44], 0x200
mov esi, dword [esp + 0x20]
je 0x5c02b47c
mov dword [esp + 0x40], esi
test esi, esi
je 0x5c02b789
lea ecx, [esp + 0x294]
mov edi, dword [ebx + 0x1a44]
test edi, 0x12000
je 0x5c02b182
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x18], eax
test al, 8
jne 0x5c02af68
fld dword [esp + 0x84]
fst dword [ecx - 4]
fst dword [ecx]
fstp dword [ecx + 4]
test edi, 0x10000
je 0x5c02b026
mov eax, dword [esp + 0xb8]
test eax, eax
je 0x5c02af85
mov eax, dword [eax]
mov edx, dword [eax]
jmp 0x5c02af87
xor edx, edx
mov eax, edx
shr eax, 0x10
movzx eax, al
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
test eax, eax
jns 0x5c02afa1
fadd dword [0x5c00386c]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
mov eax, edx
fmul dword [ebx + 0x554]
shr eax, 8
movzx eax, al
mov dword [esp + 0x14], eax
fadd dword [ecx - 4]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [ecx - 4]
fild dword [esp + 0x14]
test eax, eax
jns 0x5c02afd7
fadd dword [0x5c00386c]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fmul dword [ebx + 0x558]
movzx eax, dl
mov dword [esp + 0x14], eax
fadd dword [ecx]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [ecx]
fild dword [esp + 0x14]
test eax, eax
jns 0x5c02b006
fadd dword [0x5c00386c]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x34]
fmul dword [ebx + 0x55c]
mov dword [esp + 0x68], eax
mov dword [esp + 0x58], esi
jmp 0x5c02b068
fld dword [ebx + 0x584]
fmul dword [ebx + 0x544]
mov esi, dword [esp + 0x58]
fadd dword [ecx - 4]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [ecx - 4]
fld dword [ebx + 0x588]
fmul dword [ebx + 0x548]
fadd dword [ecx]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [ecx]
fld dword [ebx + 0x58c]
fmul dword [ebx + 0x54c]
fadd dword [ecx + 4]
fxch st(2)
fstp dword [esp + 0x1c]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0x38]
fld dword [esp + 0x1c]
fst dword [esp + 0x28]
fstp dword [esp + 0x10]
fstp dword [esp + 0x1c]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [ecx + 4]
test edi, 0x2000
je 0x5c02b143
fld dword [esp + 0x10]
mov eax, dword [esp + 0xac]
fstp dword [esp + 0x10]
fld dword [esp + 0x1c]
fstp dword [esp + 0x1c]
test eax, eax
je 0x5c02b0c5
mov eax, dword [eax]
mov edx, dword [eax]
jmp 0x5c02b0c7
xor edx, edx
mov eax, edx
shr eax, 0x10
movzx eax, al
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
test eax, eax
jns 0x5c02b0e1
fadd dword [0x5c00386c]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fadd dword [esp + 0x10]
movzx eax, dl
mov dword [esp + 0x14], eax
fstp dword [ecx - 4]
fild dword [esp + 0x14]
test eax, eax
jns 0x5c02b105
fadd dword [0x5c00386c]
shr edx, 8
fstp dword [esp + 0xc]
movzx eax, dl
mov dword [esp + 0x14], eax
fadd dword [esp + 0xc]
fild dword [esp + 0x14]
test eax, eax
jns 0x5c02b125
fadd dword [0x5c00386c]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x34]
fadd dword [esp + 0x1c]
mov dword [esp + 0x68], eax
mov dword [esp + 0x58], esi
jmp 0x5c02b171
fld dword [ebx + 0x5a4]
fld qword [esp + 0xd0]
fmul st(1), st(0)
fld dword [esp + 0x28]
faddp st(2)
fxch st(1)
fstp dword [ecx - 4]
fld dword [ebx + 0x5ac]
fmul st(1)
faddp st(2)
fmul dword [ebx + 0x5a8]
fadd dword [esp + 0x38]
mov eax, dword [esp + 0x18]
fstp dword [ecx]
or eax, 8
fstp dword [ecx + 4]
mov dword [ecx + 0x2c], eax
jmp 0x5c02b186
mov esi, dword [esp + 0x58]
test byte [ecx + 0x2c], 8
mov eax, dword [ebx + 0x1a44]
je 0x5c02b2af
fld dword [ecx - 4]
fstp dword [esp + 0x10]
test eax, 0x12000
jne 0x5c02b1d1
fld dword [ebx + 0x514]
fadd dword [esp + 0x10]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
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]
jmp 0x5c02b1d5
fld dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0xd8]
fld dword [ecx]
mov edx, dword [esp + 0xd8]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0xe0]
fld dword [ecx + 4]
mov eax, dword [esp + 0xe0]
fstp dword [esp + 0xc]
mov dword [esp + 0x38], eax
fld dword [esp + 0xc]
fistp qword [esp + 0xe8]
mov edi, dword [esp + 0xe8]
test edx, edx
jns 0x5c02b230
xor edx, edx
jmp 0x5c02b23d
cmp edx, 0xff
jle 0x5c02b23d
mov edx, 0xff
test eax, eax
jns 0x5c02b245
xor eax, eax
jmp 0x5c02b251
cmp eax, 0xff
jle 0x5c02b255
mov eax, 0xff
mov dword [esp + 0x38], eax
test edi, edi
jns 0x5c02b25d
xor edi, edi
jmp 0x5c02b26a
cmp edi, 0xff
jle 0x5c02b26a
mov edi, 0xff
test dword [ebx + 0x1a44], 0x4000
jne 0x5c02b286
shl edx, 8
add edx, eax
shl edx, 8
add edx, dword [ebx + 0x510]
jmp 0x5c02b2aa
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x5c02b297
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x5c02b299
xor eax, eax
shl edx, 8
and eax, 0xff000000
add edx, dword [esp + 0x38]
shl edx, 8
add edx, eax
lea eax, [edx + edi]
jmp 0x5c02b2e5
test eax, 0x4000
jne 0x5c02b2c4
mov eax, dword [ebx + 0x5e8]
add eax, dword [ebx + 0x510]
jmp 0x5c02b2e5
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x5c02b2db
mov eax, dword [eax]
mov edx, dword [eax]
and edx, 0xff000000
jmp 0x5c02b2dd
xor edx, edx
mov eax, dword [ebx + 0x5e8]
add eax, edx
mov edi, dword [esp + 0x74]
mov dword [edi], eax
test byte [ecx + 0x2c], 4
je 0x5c02b3cd
fld dword [ecx + 8]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0xf0]
fld dword [ecx + 0xc]
mov edx, dword [esp + 0xf0]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0xf8]
fld dword [ecx + 0x10]
mov eax, dword [esp + 0xf8]
fstp dword [esp + 0xc]
mov dword [esp + 0x38], eax
fld dword [esp + 0xc]
fistp qword [esp + 0x100]
mov edi, dword [esp + 0x100]
mov esi, 0xff
mov dword [esp + 0x18], edi
test edx, edx
jns 0x5c02b355
xor edx, edx
jmp 0x5c02b35b
cmp edx, esi
jle 0x5c02b35b
mov edx, esi
test eax, eax
jns 0x5c02b367
xor eax, eax
mov dword [esp + 0x38], eax
jmp 0x5c02b371
cmp eax, esi
jle 0x5c02b371
mov eax, esi
mov dword [esp + 0x38], esi
test edi, edi
jns 0x5c02b37d
xor edi, edi
mov dword [esp + 0x18], edi
jmp 0x5c02b385
cmp edi, esi
jle 0x5c02b385
mov dword [esp + 0x18], esi
test dword [ebx + 0x1a44], 0x8000
jne 0x5c02b3a1
shl edx, 8
add edx, eax
shl edx, 8
add edx, dword [ebx + 0x5bc]
jmp 0x5c02b3c5
mov eax, dword [esp + 0x90]
test eax, eax
je 0x5c02b3b2
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x5c02b3b4
xor eax, eax
shl edx, 8
and eax, 0xff000000
add edx, dword [esp + 0x38]
shl edx, 8
add edx, eax
mov eax, dword [esp + 0x18]
add eax, edx
jmp 0x5c02b404
mov eax, dword [ebx + 0x1a44]
test eax, 0x100000
jne 0x5c02b422
test dword [ebx + 0x1a60], 0x800
jne 0x5c02b3f7
test byte [ebx + 0x1a5c], 0x80
je 0x5c02b3f3
mov eax, dword [esi]
jmp 0x5c02b404
xor eax, eax
jmp 0x5c02b404
test eax, 0x8000
jne 0x5c02b40c
mov eax, dword [ebx + 0x5bc]
mov edx, dword [esp + 0x50]
mov dword [edx], eax
jmp 0x5c02b426
mov eax, dword [esp + 0x90]
test eax, eax
je 0x5c02b3f3
mov eax, dword [eax]
mov eax, dword [eax]
and eax, 0xff000000
jmp 0x5c02b404
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x30]
add ecx, 0x44
add dword [esp + 0x74], eax
add edx, eax
mov eax, dword [esp + 0x68]
add eax, dword [esp + 0x94]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x98]
sub dword [esp + 0x40], 1
mov dword [esp + 0x68], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x58], edx
mov dword [esp + 0x34], edx
jne 0x5c02af3c
mov eax, dword [esp + 0x150]
mov edi, dword [esp + 0x60]
mov dword [esp + 0x54], eax
jmp 0x5c02b785
mov edx, esi
mov dword [esp + 0x38], edx
test esi, esi
je 0x5c02b789
mov eax, esi
lea ecx, [esp + 0x294]
imul eax, dword [esp + 0x94]
mov esi, dword [esp + 0x68]
add esi, eax
mov dword [esp + 0x68], esi
mov dword [esp + 0x70], esi
mov esi, dword [esp + 0x30]
test byte [ecx + 0x2c], 8
je 0x5c02b57d
fld dword [ebx + 0x514]
fadd dword [ecx - 4]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
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 + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0x108]
fld dword [ecx]
mov eax, dword [esp + 0x108]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0x110]
fld dword [ecx + 4]
mov edx, dword [esp + 0x110]
fstp dword [esp + 0xc]
mov dword [esp + 0x34], edx
fld dword [esp + 0xc]
fistp qword [esp + 0x118]
mov edx, dword [esp + 0x118]
mov edi, 0xff
test eax, eax
jns 0x5c02b539
xor eax, eax
jmp 0x5c02b53f
cmp eax, edi
jle 0x5c02b53f
mov eax, edi
cmp dword [esp + 0x34], 0
jge 0x5c02b54d
and dword [esp + 0x34], 0
jmp 0x5c02b557
cmp dword [esp + 0x34], edi
jle 0x5c02b557
mov dword [esp + 0x34], edi
test edx, edx
jns 0x5c02b55f
xor edx, edx
jmp 0x5c02b565
cmp edx, edi
jle 0x5c02b565
mov edx, edi
shl eax, 8
add eax, dword [esp + 0x34]
shl eax, 8
add eax, dword [ebx + 0x510]
add eax, edx
mov edx, dword [esp + 0x38]
jmp 0x5c02b589
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 0x5c02b63f
fld dword [ecx + 8]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0x120]
fld dword [ecx + 0xc]
mov eax, dword [esp + 0x120]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0x128]
fld dword [ecx + 0x10]
mov edx, dword [esp + 0x128]
fstp dword [esp + 0xc]
mov dword [esp + 0x34], edx
fld dword [esp + 0xc]
fistp qword [esp + 0x130]
mov edx, dword [esp + 0x130]
mov edi, 0xff
test eax, eax
jns 0x5c02b5f5
xor eax, eax
jmp 0x5c02b5fb
cmp eax, edi
jle 0x5c02b5fb
mov eax, edi
cmp dword [esp + 0x34], 0
jge 0x5c02b609
and dword [esp + 0x34], 0
jmp 0x5c02b613
cmp dword [esp + 0x34], edi
jle 0x5c02b613
mov dword [esp + 0x34], edi
test edx, edx
jns 0x5c02b61b
xor edx, edx
jmp 0x5c02b621
cmp edx, edi
jle 0x5c02b621
mov edx, edi
shl eax, 8
add eax, dword [esp + 0x34]
shl eax, 8
add eax, dword [ebx + 0x5bc]
add eax, edx
mov edx, dword [esp + 0x50]
mov dword [edx], eax
mov edx, dword [esp + 0x38]
jmp 0x5c02b678
test dword [ebx + 0x1a44], 0x100000
jne 0x5c02b678
test dword [ebx + 0x1a60], 0x800
jne 0x5c02b66c
test byte [ebx + 0x1a5c], 0x80
je 0x5c02b668
mov edi, dword [esp + 0x58]
mov eax, dword [edi]
jmp 0x5c02b672
xor eax, eax
jmp 0x5c02b672
mov eax, dword [ebx + 0x5bc]
mov edi, dword [esp + 0x50]
mov dword [edi], eax
mov eax, dword [esp + 0x58]
add ecx, 0x44
add eax, dword [esp + 0x98]
add dword [esp + 0x50], esi
add dword [esp + 0x74], esi
sub edx, 1
mov dword [esp + 0x58], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edx
jne 0x5c02b4ad
mov edi, dword [esp + 0x60]
jmp 0x5c02b785
test ecx, ecx
js 0x5c02b6fb
test byte [ebx + 0x1a5c], 0x40
je 0x5c02b74f
mov ecx, esi
test esi, esi
je 0x5c02b6fb
mov edi, dword [esp + 0x30]
mov edx, dword [esp + 0x68]
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 0x5c02b6d6
mov edi, dword [esp + 0x60]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x74], ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x68], edx
mov ecx, dword [esp + 0x30]
test dword [ebx + 0x1a44], 0x100000
jne 0x5c02b785
test byte [ebx + 0x1a5c], 0x80
je 0x5c02b76d
mov ecx, esi
test esi, esi
je 0x5c02b785
mov edx, dword [esp + 0x58]
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x50]
mov ebx, dword [esp + 0x98]
mov eax, dword [edx]
add edx, ebx
mov dword [esi], eax
add esi, edi
mov dword [esp + 0x34], edx
sub ecx, 1
jne 0x5c02b72d
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x50], esi
mov dword [esp + 0x58], edx
jmp 0x5c02b6a3
mov ecx, dword [esp + 0x30]
mov eax, esi
test esi, esi
je 0x5c02b6ff
mov edx, dword [esp + 0x74]
or dword [edx], 0xffffffff
add edx, ecx
sub eax, 1
jne 0x5c02b75d
mov dword [esp + 0x74], edx
jmp 0x5c02b6ff
mov eax, esi
test esi, esi
je 0x5c02b785
mov edx, dword [esp + 0x50]
and dword [edx], 0
add edx, ecx
sub eax, 1
jne 0x5c02b777
mov dword [esp + 0x50], edx
mov esi, dword [esp + 0x20]
test dword [ebx + 0x1a44], 0x100
je 0x5c02bb6e
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x28], ecx
mov dword [esp + 0xc], esi
test esi, esi
je 0x5c02bb6e
mov esi, dword [esp + 0x9c]
lea edi, [esp + 0x2b0]
mov eax, dword [esp + 0x78]
and esi, 4
test byte [edi + 0x10], 1
je 0x5c02b7f9
test esi, esi
je 0x5c02b7ee
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 + 0x24]
jmp 0x5c02bb28
fld dword [edi]
fstp dword [esp + 0x24]
jmp 0x5c02bb2c
test esi, esi
je 0x5c02ba2a
fld dword [ecx + 4]
fld dword [ecx]
fld dword [ecx + 8]
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 + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0x2c]
fld dword [ebx + 0x448]
fmul st(3)
fld dword [ebx + 0x458]
fmul st(5)
faddp st(1)
fld dword [ebx + 0x468]
fmul st(3)
faddp st(1)
fadd dword [ebx + 0x478]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0x64]
fld dword [ebx + 0x44c]
fmul st(4)
fld dword [ebx + 0x45c]
fmul st(6)
faddp st(1)
fld dword [ebx + 0x46c]
fmul st(4)
faddp st(1)
fadd dword [ebx + 0x47c]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0x24]
test edx, edx
je 0x5c02ba0d
fld dword [esp + 0x84]
and dword [esp + 0x10], 0
fst dword [esp + 0x38]
fst dword [esp + 0x2c]
fst dword [esp + 0x64]
fst dword [esp + 0x24]
test edx, edx
je 0x5c02b9b2
fstp st(0)
lea eax, [ebx + 0x2e4]
mov ebx, dword [esp + 0x10]
fxch st(2)
fstp dword [esp + 0x48]
fstp dword [esp + 0x4c]
fstp dword [esp + 0x18]
fld dword [ecx + ebx*4 + 0xc]
inc ebx
fld dword [esp + 0x48]
fmul st(1)
fadd dword [esp + 0x2c]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0x1c]
fstp dword [esp + 0x2c]
fld dword [esp + 0x4c]
fmul st(1)
fadd dword [esp + 0x64]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0x40]
fstp dword [esp + 0x64]
fld dword [esp + 0x18]
fmul st(1)
fadd dword [esp + 0x24]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0x14]
fstp dword [esp + 0x24]
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 + 0x48]
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 + 0x4c]
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 + 0x18]
cmp ebx, edx
jb 0x5c02b8df
mov ebx, dword [esp + 0x6c]
fstp st(2)
fstp st(0)
fstp st(0)
fld dword [esp + 0x1c]
fstp dword [esp + 0x10]
fld dword [esp + 0x40]
fstp dword [esp + 0x1c]
fld dword [esp + 0x14]
jmp 0x5c02b9cc
fstp st(6)
fstp st(4)
fstp st(2)
fstp dword [esp + 0x48]
fstp dword [esp + 0x4c]
fstp dword [esp + 0x18]
fst dword [esp + 0x10]
fst dword [esp + 0x1c]
fstp dword [esp + 0x40]
fld dword [esp + 0x38]
fsubr qword [esp + 0xc8]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fld dword [esp + 0x48]
fmul st(1)
fadd dword [esp + 0x10]
fstp dword [esp + 0x2c]
fld dword [esp + 0x4c]
fmul st(1)
fadd dword [esp + 0x1c]
fstp dword [esp + 0x64]
fmul dword [esp + 0x18]
fadd dword [esp + 0x40]
fstp dword [esp + 0x24]
jmp 0x5c02ba19
fstp st(0)
fstp st(1)
fstp st(0)
fstp st(2)
fstp st(0)
fstp st(0)
fld dword [esp + 0x64]
fld dword [esp + 0x24]
fld dword [esp + 0x2c]
jmp 0x5c02b7d4
fld dword [ecx + 4]
fld dword [ecx]
fld dword [ecx + 8]
fld dword [ebx + 0x45c]
fmul st(3)
fld dword [ebx + 0x44c]
mov eax, dword [ebx + 0x1cb4]
fmul st(3)
faddp st(1)
fld dword [ebx + 0x46c]
fmul st(2)
faddp st(1)
fadd dword [ebx + 0x47c]
fstp dword [esp + 0x10]
test eax, eax
jne 0x5c02ba71
fstp st(2)
fstp st(0)
fstp st(0)
fld dword [esp + 0x10]
jmp 0x5c02bb24
fld dword [esp + 0x84]
xor edx, edx
fst dword [esp + 0x38]
fst dword [esp + 0x1c]
fld dword [esp + 0x10]
fst dword [esp + 0x18]
fxch st(1)
fstp dword [esp + 0x10]
test eax, eax
je 0x5c02baf9
fstp dword [esp + 0x18]
lea eax, [ebx + 0x2cc]
fld dword [ecx + edx*4 + 0xc]
inc edx
fld dword [esp + 0x18]
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 + 0x18]
cmp edx, dword [ebx + 0x1cb4]
jb 0x5c02ba9e
fstp st(2)
fstp st(0)
fstp st(0)
fld dword [esp + 0x14]
fstp dword [esp + 0x10]
jmp 0x5c02bb01
fstp st(0)
fstp st(2)
fstp st(0)
fstp st(0)
fld dword [esp + 0x38]
fsubr qword [esp + 0xc8]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fmul dword [esp + 0x18]
fadd dword [esp + 0x10]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fstp dword [esp + 0x24]
mov eax, dword [esp + 0x78]
fld dword [esp + 0x24]
mov edx, eax
push ecx
mov ecx, ebx
fstp dword [esp]
call fcn.5c075cd1
mov eax, dword [esp + 0x7c]
add edi, 0x44
add eax, dword [esp + 0x34]
pop ecx
mov ecx, dword [esp + 0x28]
add ecx, dword [ebx + 0x1a7c]
sub dword [esp + 0xc], 1
mov dword [esp + 0x28], ecx
mov dword [esp + 0x78], eax
jne 0x5c02b7c2
mov edi, dword [esp + 0x60]
mov esi, dword [esp + 0x20]
test edi, edi
je 0x5c02bba6
test dword [esp + 0x9c], 0x200000
je 0x5c02bbf5
mov eax, esi
test esi, esi
je 0x5c02bba6
fld dword [esp + 0x84]
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x30]
fst dword [edx]
fst dword [edx + 4]
add edx, ecx
sub eax, 1
jne 0x5c02bb94
fstp st(0)
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x20]
cmp ecx, dword [esp + 0xbc]
jne 0x5c02c3ba
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 0x5c02c3cf
mov esi, dword [esp + 0xa8]
jmp 0x5c02a945
mov ecx, dword [ebx + 0x1a60]
mov eax, ecx
and eax, 0x4010000
test ecx, 0x8000000
je 0x5c02c01f
test eax, eax
jne 0x5c02bca9
mov eax, esi
mov dword [esp + 0x10], eax
test esi, esi
je 0x5c02bba6
mov edx, dword [esp + 0x44]
and dword [esp + 0x14], 0
mov ecx, edx
mov dword [esp + 0xc], ecx
test edi, edi
je 0x5c02bc88
lea eax, [ebx + 0x1ad8]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x28], eax
mov esi, dword [eax]
push esi
push dword [esp + ebx*4 + 0x154]
push ecx
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + ebx*4 + 0x17c]
add esp, 0xc
add dword [esp + ebx*4 + 0x150], eax
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x28]
add ecx, esi
inc ebx
mov dword [esp + 0xc], ecx
add eax, 4
mov dword [esp + 0x28], eax
cmp ebx, edi
jb 0x5c02bc41
mov ebx, dword [esp + 0x6c]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x44]
add edx, dword [esp + 0x30]
sub eax, 1
mov dword [esp + 0x44], edx
mov dword [esp + 0x10], eax
jne 0x5c02bc24
mov eax, dword [esp + 0x150]
mov dword [esp + 0x54], eax
jmp 0x5c02bba6
test ecx, 0x10000
jne 0x5c02bdd2
mov edx, dword [esp + 0x44]
xor eax, eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x48], eax
test edi, edi
je 0x5c02bdbe
lea ecx, [ebx + 0x1af8]
mov dword [esp + 0x28], 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 + 0x170]
mov eax, dword [esp + eax*4 + 0x150]
mov dword [esp + 0x4c], ebx
mov ebx, eax
mov dword [esp + 0x10], eax
mov eax, dword [ecx + 0x138]
mov dword [esp + 0xc], eax
test eax, eax
jne 0x5c02bd3a
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], esi
test esi, esi
je 0x5c02bd79
mov esi, dword [esp + 0x38]
mov edi, edx
push esi
push ebx
push edi
call sub.msvcrt.dll_memcpy
add ebx, dword [esp + 0x58]
add esp, 0xc
add edi, dword [esp + 0x30]
sub dword [esp + 0xc], 1
jne 0x5c02bd1a
mov edi, dword [esp + 0x60]
jmp 0x5c02bd71
push dword [esp + 0x30]
mov eax, dword [esp + 0x3c]
push dword [esp + 0x50]
mov ecx, dword [esp + 0x1c]
push dword [esp + 0x28]
shr ecx, 2
push dword [esp + 0x18]
shr eax, 2
push edx
push ebx
lea esi, [ecx + eax*4]
mov esi, dword [esi*4 + 0x5c00165c]
mov ecx, esi
call dword [0x5c06a150]
call esi
add esp, 0x18
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
imul eax, dword [esp + 0x4c], 0xa
mov ecx, dword [esp + 0x48]
add edx, dword [esp + 0x38]
mov dword [esp + 0x18], edx
add eax, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x150], eax
mov eax, ecx
mov ecx, dword [esp + 0x28]
inc eax
add ecx, 4
mov dword [esp + 0x48], eax
mov dword [esp + 0x28], ecx
cmp eax, edi
jb 0x5c02bcd5
mov eax, dword [esp + 0x150]
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x44]
add eax, dword [esp + 0xa0]
mov dword [esp + 0x44], eax
jmp 0x5c02bba6
mov eax, dword [esp + 0x44]
mov edx, eax
and dword [esp + 0x1c], 0
cmp dword [ebx + 0x1c2c], 0
mov dword [esp + 0x24], edx
jbe 0x5c02bfeb
lea eax, [ebx + 0x1ad8]
lea ecx, [ebx + 0x1b44]
mov dword [esp + 0x40], eax
mov dword [esp + 0x2c], ecx
mov eax, dword [eax]
mov dword [esp + 0x10], eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x5c02be25
mov eax, dword [ecx - 0x18]
mov edi, dword [esp + eax*4 + 0x150]
mov eax, dword [esp + eax*4 + 0x170]
jmp 0x5c02bf49
cmp eax, 0x20000
jne 0x5c02be3a
lea edi, [esp + 0x2a8]
push 0x44
jmp 0x5c02bf48
cmp eax, 0x10000
jne 0x5c02be4a
lea edi, [esp + 0x2b4]
jmp 0x5c02be33
test dword [ebx + 0x1a60], 0x1000000
je 0x5c02bf13
test esi, esi
je 0x5c02bf3f
lea eax, [esp + 0x198]
mov dword [esp + 0x28], esi
mov dword [esp + 0xc], eax
lea ebx, [esp + 0x2bc]
lea esi, [ebx - 0x14]
lea edi, [esp + 0x138]
movsd dword es:[edi], dword [esi]
lea edx, [esp + 0x138]
mov ecx, edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.5c0504a4
fld dword [ebx - 4]
fst qword [esp + 0x38]
fld dword [ebx - 8]
fld dword [esp + 0x138]
fld dword [ebx]
add ebx, 0x44
fld dword [esp + 0x13c]
fld st(0)
mov eax, dword [esp + 0xc]
fmulp st(5)
fld st(3)
fmul st(3)
faddp st(5)
fld dword [esp + 0x140]
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 + 0x28], 1
mov dword [esp + 0xc], eax
jne 0x5c02be78
mov ebx, dword [esp + 0x6c]
mov esi, dword [esp + 0x20]
jmp 0x5c02bf37
test esi, esi
je 0x5c02bf3f
lea ecx, [esp + 0x2b4]
mov eax, esi
lea edx, [esp + 0x190]
call fcn.5c01b43c
add edx, 0xc
add ecx, 0x44
sub eax, 1
jne 0x5c02bf27
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
lea edi, [esp + 0x190]
push 0xc
pop eax
cmp dword [ecx - 4], 0
mov dword [esp + 0x18], eax
jne 0x5c02bf84
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], esi
test esi, esi
je 0x5c02bfb4
mov ebx, eax
mov esi, edx
push dword [esp + 0x10]
push edi
push esi
call sub.msvcrt.dll_memcpy
add esi, dword [esp + 0x3c]
add esp, 0xc
add edi, ebx
sub dword [esp + 0xc], 1
jne 0x5c02bf63
mov ebx, dword [esp + 0x6c]
jmp 0x5c02bfa8
push dword [esp + 0x30]
mov esi, dword [ecx]
push eax
push dword [esp + 0x28]
push dword [ecx - 4]
mov esi, dword [esi*4 + 0x5c001670]
mov ecx, esi
push edx
push edi
call dword [0x5c06a150]
call esi
add esp, 0x18
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x20]
add edx, dword [esp + 0x10]
add ecx, 0x20
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x40]
inc edi
add eax, 4
mov dword [esp + 0x24], edx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x40], eax
mov dword [esp + 0x2c], ecx
cmp edi, dword [ebx + 0x1c2c]
jb 0x5c02be02
mov edi, dword [esp + 0x60]
mov eax, dword [esp + 0x44]
add eax, dword [esp + 0xa0]
xor ecx, ecx
mov edx, dword [ebx + 0x1a84]
mov dword [esp + 0x44], eax
test edx, edx
je 0x5c02bba6
imul eax, dword [esp + ecx*4 + 0x170], 0xa
add dword [esp + ecx*4 + 0x150], eax
inc ecx
cmp ecx, edx
jb 0x5c02c006
jmp 0x5c02bc99
test eax, eax
jne 0x5c02c075
mov dword [esp + 0x14], esi
test esi, esi
je 0x5c02bba6
mov edx, dword [esp + 0x44]
mov edi, esi
mov esi, dword [esp + 0x54]
push dword [ebx + 0x1a8c]
push esi
push edx
call sub.msvcrt.dll_memcpy
mov edx, dword [esp + 0x50]
add esp, 0xc
add edx, dword [esp + 0x30]
add esi, dword [esp + 0x88]
mov dword [esp + 0x44], edx
mov dword [esp + 0x150], esi
sub edi, 1
jne 0x5c02c039
mov edi, dword [esp + 0x60]
mov dword [esp + 0x54], esi
jmp 0x5c02bba6
mov edx, dword [esp + 0x44]
test ecx, 0x10000
jne 0x5c02c189
mov eax, dword [esp + 0x54]
mov dword [esp + 0x18], eax
mov dword [esp + 0x4c], edx
test edi, edi
je 0x5c02c16e
lea eax, [ebx + 0x1af8]
mov dword [esp + 0x10], edi
mov ebx, dword [esp + 0x18]
mov edi, edx
mov dword [esp + 0x48], eax
mov edx, dword [eax]
mov ecx, dword [eax - 0x20]
mov dword [esp + 0x28], edx
mov edx, dword [eax + 0x138]
mov dword [esp + 0x38], ecx
test edx, edx
jne 0x5c02c0ff
mov dword [esp + 0x14], edi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0xc], esi
test esi, esi
je 0x5c02c13e
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 + 0x30]
sub dword [esp + 0xc], 1
jne 0x5c02c0d8
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x4c]
jmp 0x5c02c132
push dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
push dword [esp + 0x8c]
shr ecx, 2
push dword [esp + 0x28]
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 [0x5c06a150]
call esi
add esp, 0x18
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x20]
add ebx, dword [esp + 0x28]
add edi, ecx
add eax, 4
mov dword [esp + 0x18], ebx
sub dword [esp + 0x10], 1
mov dword [esp + 0x4c], edi
mov dword [esp + 0x48], eax
jne 0x5c02c0ad
mov ebx, dword [esp + 0x6c]
mov edi, dword [esp + 0x60]
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x44]
add eax, dword [esp + 0x5c]
add edx, dword [esp + 0xa0]
mov dword [esp + 0x54], eax
mov dword [esp + 0x150], eax
jmp 0x5c02bba2
and dword [esp + 0x1c], 0
cmp dword [ebx + 0x1c2c], 0
mov dword [esp + 0x24], edx
jbe 0x5c02c395
lea eax, [ebx + 0x1ad8]
lea ecx, [ebx + 0x1b44]
mov dword [esp + 0x40], eax
mov dword [esp + 0x2c], ecx
mov eax, dword [eax]
mov dword [esp + 0x10], eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x5c02c1d3
mov edi, dword [ecx - 0x14]
add edi, dword [esp + 0x54]
mov eax, dword [esp + 0x88]
jmp 0x5c02c2f7
cmp eax, 0x20000
jne 0x5c02c1e8
lea edi, [esp + 0x2a8]
push 0x44
jmp 0x5c02c2f6
cmp eax, 0x10000
jne 0x5c02c1f8
lea edi, [esp + 0x2b4]
jmp 0x5c02c1e1
test dword [ebx + 0x1a60], 0x1000000
je 0x5c02c2c1
test esi, esi
je 0x5c02c2ed
lea eax, [esp + 0x210]
mov dword [esp + 0x28], esi
mov dword [esp + 0xc], eax
lea ebx, [esp + 0x2bc]
lea esi, [ebx - 0x14]
lea edi, [esp + 0x144]
movsd dword es:[edi], dword [esi]
lea edx, [esp + 0x144]
mov ecx, edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.5c0504a4
fld dword [ebx - 4]
fst qword [esp + 0x38]
fld dword [esp + 0x144]
fld dword [ebx - 8]
fld dword [ebx]
add ebx, 0x44
fld dword [esp + 0x148]
fld st(0)
mov eax, dword [esp + 0xc]
fmulp st(5)
fld st(3)
fmul st(3)
faddp st(5)
fld dword [esp + 0x14c]
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 + 0x28], 1
mov dword [esp + 0xc], eax
jne 0x5c02c226
mov ebx, dword [esp + 0x6c]
mov esi, dword [esp + 0x20]
jmp 0x5c02c2e5
test esi, esi
je 0x5c02c2ed
lea ecx, [esp + 0x2b4]
mov eax, esi
lea edx, [esp + 0x208]
call fcn.5c01b43c
add edx, 0xc
add ecx, 0x44
sub eax, 1
jne 0x5c02c2d5
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
lea edi, [esp + 0x208]
push 0xc
pop eax
cmp dword [ecx - 4], 0
mov dword [esp + 0x18], eax
jne 0x5c02c332
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], esi
test esi, esi
je 0x5c02c362
mov ebx, eax
mov esi, edx
push dword [esp + 0x10]
push edi
push esi
call sub.msvcrt.dll_memcpy
add esi, dword [esp + 0x3c]
add esp, 0xc
add edi, ebx
sub dword [esp + 0xc], 1
jne 0x5c02c311
mov ebx, dword [esp + 0x6c]
jmp 0x5c02c356
push dword [esp + 0x30]
mov esi, dword [ecx]
push eax
push dword [esp + 0x28]
push dword [ecx - 4]
mov esi, dword [esi*4 + 0x5c001670]
mov ecx, esi
push edx
push edi
call dword [0x5c06a150]
call esi
add esp, 0x18
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x20]
add edx, dword [esp + 0x10]
add ecx, 0x20
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x40]
inc edi
add eax, 4
mov dword [esp + 0x24], edx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x40], eax
mov dword [esp + 0x2c], ecx
cmp edi, dword [ebx + 0x1c2c]
jb 0x5c02c1b3
mov edi, dword [esp + 0x60]
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x5c]
add eax, edx
mov dword [esp + 0x54], eax
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0xa0]
add dword [esp + 0x44], eax
jmp 0x5c02bbaa
mov eax, dword [ebx + 0x1a40]
sub eax, dword [esp + 0xa4]
add eax, ecx
mov dword [ebx + 0x225c], eax
test dword [ebx + 0x1a60], 0x100000
jne 0x5c02c4f5
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 0x5c02c475
fstp dword [ebx + 0x1b1c]
jmp 0x5c02c477
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 0x5c02c49f
fstp dword [ebx + 0x1b20]
jmp 0x5c02c4a1
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 0x5c02c4c9
fstp dword [ebx + 0x1b24]
jmp 0x5c02c4cb
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 0x5c02c4f3
fstp dword [ebx + 0x1b28]
jmp 0x5c02c4f5
fstp st(0)
mov eax, dword [ebx + 0x684]
mov ecx, dword [esp + 0x52c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.5c04fcf0
mov esp, ebp
pop ebp
ret