Function at 0x5c01b3f6
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, 0x144
mov eax, dword [0x5c059aa4]
xor eax, esp
mov dword [esp + 0x140], eax
push ebx
mov ebx, ecx
push esi
push edi
xor edi, edi
mov eax, dword [ebx + 0x1a80]
mov ecx, dword [ebx + 0x1a7c]
mov edx, dword [ebx + 0x1a60]
mov dword [esp + 0x68], eax
mov eax, dword [ebx + 0x1a70]
mov dword [esp + 0x6c], eax
mov eax, dword [ebx + 0x1a64]
mov dword [esp + 0x24], eax
mov eax, dword [ebx + 0x1a78]
mov dword [esp + 0x94], ecx
mov ecx, eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x12c], ecx
mov ecx, 0x8000000
mov dword [esp + 0x60], edx
mov dword [esp + 0x88], edi
mov dword [esp + 0x80], edi
mov dword [esp + 0x7c], edi
mov dword [esp + 0x78], edi
mov dword [esp + 0x54], eax
test ecx, edx
jne 0x5c01b4ca
mov edx, dword [ebx + 0x1cc4]
mov esi, dword [ebx + 0x1cc0]
add edx, eax
mov ecx, dword [ebx + 0x1cc8]
add esi, eax
add ecx, eax
mov dword [esp + 0x5c], edx
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x58], esi
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x50], ecx
cmp dword [ebx + 0x1a84], edi
je 0x5c01b551
mov ecx, dword [ebx + 0x1cbc]
add ecx, eax
jmp 0x5c01b512
mov eax, dword [ebx + 0x1a2c]
mov dword [esp + 0x58], eax
mov eax, dword [ebx + 0x1a34]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x4c], eax
mov eax, dword [ebx + 0x1a90]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x50], eax
test dl, 0x10
jne 0x5c01b51f
test dword [ebx + 0x1a44], ecx
jne 0x5c01b51f
cmp dword [ebx + 0x1a84], edi
je 0x5c01b551
mov eax, dword [ebx + 0x688]
mov ecx, dword [ebx + eax*8 + 0x1a98]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x12c], ecx
jmp 0x5c01b551
mov esi, dword [ebx + 0x1a84]
mov ecx, edi
test esi, esi
je 0x5c01b551
lea edx, [ebx + 0x1a98]
mov eax, dword [edx]
lea edx, [edx + 8]
mov dword [esp + ecx*4 + 0x12c], eax
inc ecx
cmp ecx, esi
jb 0x5c01b531
mov eax, dword [esp + 0x12c]
mov edx, dword [esp + 0x60]
mov dword [esp + 0x28], eax
or dword [ebx + 0x530], 0xffffffff
mov eax, dword [ebx + 0x1a44]
fldz
mov dword [ebx + 0x560], edi
mov dword [ebx + 0x5b8], edi
fst dword [esp + 0x64]
test eax, 0x400
je 0x5c01b6a8
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]
xor edi, edi
test edx, 0x10000000
je 0x5c01b6aa
mov edx, dword [ebx + 0x1a5c]
test dl, 0x40
je 0x5c01b62c
mov ecx, eax
cmp dword [ebx + 0x5f8], edi
jne 0x5c01b5d6
or ecx, 0x2200
lea esi, [esp + 0x4c]
mov dword [ebx + 0x1a44], ecx
mov dword [esp + 0x88], esi
mov eax, ecx
cmp dword [ebx + 0x5f0], edi
jne 0x5c01b5f3
or eax, 0x4200
lea ecx, [esp + 0x4c]
mov dword [ebx + 0x1a44], eax
mov dword [esp + 0x7c], ecx
cmp dword [ebx + 0x5ec], edi
jne 0x5c01b611
or eax, 0x10200
lea ecx, [esp + 0x4c]
mov dword [ebx + 0x1a44], eax
mov dword [esp + 0x80], ecx
cmp dword [ebx + 0x5f4], edi
jne 0x5c01b62c
or eax, 0x8200
lea ecx, [esp + 0x4c]
mov dword [ebx + 0x1a44], eax
mov dword [esp + 0x78], ecx
test dl, dl
jns 0x5c01b6aa
cmp dword [ebx + 0x5f8], 1
jne 0x5c01b64f
or eax, 0x2200
lea esi, [esp + 0x50]
mov dword [ebx + 0x1a44], eax
mov dword [esp + 0x88], esi
cmp dword [ebx + 0x5f0], 1
jne 0x5c01b66b
or eax, 0x4200
lea ecx, [esp + 0x50]
mov dword [ebx + 0x1a44], eax
mov dword [esp + 0x7c], ecx
cmp dword [ebx + 0x5ec], 1
jne 0x5c01b68a
or eax, 0x10200
lea ecx, [esp + 0x50]
mov dword [ebx + 0x1a44], eax
mov dword [esp + 0x80], ecx
cmp dword [ebx + 0x5f4], 1
jne 0x5c01b6aa
or eax, 0x8200
lea ecx, [esp + 0x50]
mov dword [ebx + 0x1a44], eax
mov dword [esp + 0x78], ecx
jmp 0x5c01b6aa
fstp st(0)
mov eax, dword [esp + 0x60]
mov esi, edi
mov edx, dword [ebx + 0x1a40]
and eax, 0x80000
push 0
pop ecx
setne cl
mov dword [esp + 0x74], esi
dec ecx
mov dword [esp + 0x8c], eax
mov dword [esp + 0x84], edx
test edx, edx
je 0x5c01ce9a
fld1
fstp qword [esp + 0x98]
fldz
fstp qword [esp + 0xa0]
fld dword [0x5c0031e0]
fstp dword [esp + 0x90]
fld qword [0x5c003180]
fstp qword [esp + 0xa8]
mov dword [esp + 0x70], ecx
push 6
xor eax, eax
lea edi, [esp + 0xe8]
pop ecx
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x54]
mov ecx, dword [ebx + 0x1cb4]
fld dword [edi + 4]
fld dword [edi]
fld dword [edi + 8]
fld dword [ebx + 0x4c4]
fmul st(2)
fld dword [ebx + 0x4d4]
fmul st(4)
faddp st(1)
fld dword [ebx + 0x4e4]
fmul st(2)
faddp st(1)
fadd dword [ebx + 0x4f4]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0x40]
fld dword [ebx + 0x4d8]
fmul st(4)
fld dword [ebx + 0x4c8]
fmul st(4)
faddp st(1)
fld dword [ebx + 0x4e8]
fmul st(3)
faddp st(1)
fadd dword [ebx + 0x4f8]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0x44]
fld dword [ebx + 0x4dc]
fmul st(5)
fld dword [ebx + 0x4cc]
fmul st(5)
faddp st(1)
fld dword [ebx + 0x4ec]
fmul st(4)
faddp st(1)
fadd dword [ebx + 0x4fc]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0x48]
fld dword [ebx + 0x4e0]
fmul st(6)
fld dword [ebx + 0x4d0]
fmul st(6)
faddp st(1)
fld dword [ebx + 0x4f0]
fmul st(5)
faddp st(1)
fadd dword [ebx + 0x500]
fstp dword [esp + 0x38]
fxch st(2)
fst dword [esp + 0x18]
fst dword [esp + 0x20]
fxch st(1)
fst dword [esp + 0x2c]
fst dword [esp + 0x14]
fxch st(2)
fst dword [esp + 0x1c]
fst dword [esp + 0x10]
test ecx, ecx
je 0x5c01b9f2
fld dword [esp + 0x64]
xor edx, edx
fst dword [esp + 0x2c]
fld dword [esp + 0x38]
fstp dword [esp + 0x18]
fst dword [esp + 0x40]
fst dword [esp + 0x44]
fst dword [esp + 0x48]
fst dword [esp + 0x38]
fxch st(2)
fst dword [esp + 0x34]
fxch st(3)
fst dword [esp + 0x30]
fxch st(1)
fst dword [esp + 0x1c]
fxch st(2)
fst dword [esp + 0x20]
fst dword [esp + 0x14]
fstp dword [esp + 0x10]
test ecx, ecx
je 0x5c01b95d
fxch st(2)
lea eax, [ebx + 0x224]
fstp dword [esp + 0x34]
fxch st(1)
fstp dword [esp + 0x30]
fstp dword [esp + 0x1c]
fld dword [edi + edx*4 + 0xc]
inc edx
fld dword [esp + 0x34]
fmul st(1)
fadd dword [esp + 0x40]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0x14]
fstp dword [esp + 0x40]
fld dword [esp + 0x30]
fmul st(1)
fadd dword [esp + 0x44]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0xc]
fstp dword [esp + 0x44]
fld dword [esp + 0x1c]
fmul st(1)
fadd dword [esp + 0x48]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0x10]
fstp dword [esp + 0x48]
fld dword [esp + 0x18]
fmul st(1)
fadd dword [esp + 0x38]
fstp dword [esp + 0x38]
fadd dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fld dword [eax - 0x10]
fmul st(3)
fld dword [eax - 0x20]
fmul st(3)
faddp st(1)
fld dword [eax]
fmul st(2)
faddp st(1)
fadd dword [eax + 0x10]
fstp dword [esp + 0x34]
fld dword [eax - 0xc]
fmul st(3)
fld dword [eax - 0x1c]
fmul st(3)
faddp st(1)
fld dword [eax + 4]
fmul st(2)
faddp st(1)
fadd dword [eax + 0x14]
fstp dword [esp + 0x30]
fld dword [eax - 8]
fmul st(3)
fld dword [eax - 0x18]
fmul st(3)
faddp st(1)
fld dword [eax + 8]
fmul st(2)
faddp st(1)
fadd dword [eax + 0x18]
fstp dword [esp + 0x1c]
fld dword [eax - 4]
fmul st(3)
fld dword [eax - 0x14]
fmul st(3)
faddp st(1)
fld dword [eax + 0xc]
fmul st(2)
faddp st(1)
fadd dword [eax + 0x1c]
add eax, 0x40
fstp dword [esp + 0x18]
cmp edx, ecx
jb 0x5c01b862
fstp st(2)
fstp st(0)
fstp st(0)
fld dword [esp + 0x14]
fstp dword [esp + 0x20]
fld dword [esp + 0xc]
fstp dword [esp + 0x14]
fld dword [esp + 0x10]
fstp dword [esp + 0x10]
jmp 0x5c01b969
fstp st(2)
fstp st(1)
fstp st(0)
fstp st(2)
fstp st(0)
fstp st(0)
fld dword [esp + 0x2c]
fld qword [esp + 0x98]
fld st(0)
fsubrp st(2)
fxch st(1)
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fld dword [esp + 0x34]
fmul st(1)
fadd dword [esp + 0x20]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0x40]
fld dword [esp + 0x30]
fmul st(2)
fadd dword [esp + 0x14]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0x44]
fld dword [esp + 0x1c]
fmul st(3)
fadd dword [esp + 0x10]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0x48]
fld dword [esp + 0x18]
fmulp st(4)
fld dword [esp + 0x38]
faddp st(4)
fxch st(3)
fstp dword [esp + 0x38]
fxch st(1)
fst dword [esp + 0x18]
fstp dword [esp + 0x20]
fst dword [esp + 0x2c]
fstp dword [esp + 0x14]
fst dword [esp + 0x1c]
fstp dword [esp + 0x10]
jmp 0x5c01ba05
fstp st(1)
fstp st(1)
fstp st(0)
fstp st(2)
fstp st(0)
fstp st(0)
fld qword [esp + 0x98]
cmp dword [esp + 0x8c], 0
fld dword [esp + 0x10]
fstp dword [esp + 0x30]
fld dword [esp + 0x14]
fstp dword [esp + 0x10]
fld dword [esp + 0x20]
fstp dword [esp + 0xc]
fld dword [esp + 0x38]
jne 0x5c01bc28
fld st(0)
mov eax, dword [esp + 0x40]
fld dword [esp + 0xc]
fld dword [esp + 0x18]
fld st(2)
shr eax, 1
fsubrp st(1)
mov esi, dword [ebx + 0x1cb8]
fstp dword [esp + 0xc]
fld dword [esp + 0x10]
fld dword [esp + 0x2c]
mov edx, dword [esp + 0xc]
fld st(3)
fsubrp st(1)
and edx, 0xbfffffff
or edx, eax
shr edx, 1
fstp dword [esp + 0x10]
mov eax, dword [esp + 0x10]
fld dword [esp + 0x30]
and eax, 0x9fffffff
fld dword [esp + 0x1c]
or edx, eax
mov eax, dword [esp + 0x44]
fld st(4)
shr edx, 1
fsubrp st(1)
and eax, 0x8fffffff
or edx, eax
mov eax, dword [esp + 0x48]
shr edx, 1
and eax, 0x87ffffff
or edx, eax
fstp dword [esp + 0x14]
mov eax, dword [esp + 0x14]
shr edx, 1
and eax, 0x83ffffff
or edx, eax
shr edx, 0x1a
test esi, esi
je 0x5c01bb2c
push 0x40
fstp st(5)
lea ecx, [ebx + 0x1c54]
fld qword [esp + 0xa4]
pop edi
fld dword [ecx - 4]
fmul st(3)
fld dword [ecx]
fmul st(3)
faddp st(1)
fld dword [ecx + 4]
fmul st(7)
faddp st(1)
fld dword [ecx + 8]
fmul st(5)
faddp st(1)
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x5c01baea
or edx, edi
add edi, edi
add ecx, 0x10
sub esi, 1
jne 0x5c01bac6
mov edi, dword [esp + 0x54]
fstp st(5)
fstp st(4)
fld qword [esp + 0x98]
fxch st(4)
test edx, edx
jne 0x5c01bb30
mov ecx, dword [esp + 0x68]
fstp st(1)
and dword [esp + 0x70], edx
fstp st(0)
xor eax, eax
fstp st(1)
fld st(1)
mov word [ecx], ax
add ecx, 2
mov dword [esp + 0x68], ecx
fdivrp st(1)
jmp 0x5c01bc45
fstp st(0)
jmp 0x5c01bb05
test byte [esp + 0x60], 2
je 0x5c01bbe9
fld dword [ebx + 0x63c]
fmul st(3)
fld dword [ebx + 0x634]
fmulp st(3)
faddp st(2)
fxch st(1)
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0x10]
fld dword [ebx + 0x640]
fmul st(3)
fld dword [ebx + 0x638]
fmulp st(3)
mov ecx, dword [esp + 0x10]
shr ecx, 1
and ecx, 0x40000000
faddp st(2)
fxch st(1)
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0x20]
fld st(2)
fsubrp st(2)
fxch st(1)
fstp dword [esp + 0xc]
mov eax, dword [esp + 0xc]
fld st(1)
fsubrp st(1)
and eax, 0x8003ffff
or ecx, eax
shr ecx, 1
fstp dword [esp + 0x14]
mov eax, dword [esp + 0x14]
and eax, 0x8001ffff
or ecx, eax
mov eax, dword [esp + 0x20]
shr ecx, 1
and eax, 0x8000ffff
or ecx, eax
shr ecx, 0x10
or edx, ecx
test edx, 0xfffffff0
jne 0x5c01bbed
mov ecx, dword [esp + 0x68]
fstp st(1)
and dword [esp + 0x70], edx
fld st(1)
fdivrp st(1)
mov word [ecx], dx
add ecx, 2
or dword [esp + 0x74], edx
mov dword [esp + 0x68], ecx
jmp 0x5c01bc45
fstp st(1)
fstp st(1)
test dword [ebx + 0x1a44], 0x200000
fstp st(0)
jne 0x5c01cf45
mov eax, dword [esp + 0x68]
and dword [esp + 0x70], edx
or dword [esp + 0x74], edx
fld dword [esp + 0x40]
mov word [eax], dx
add eax, 2
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x6c]
fstp dword [eax]
fld dword [esp + 0x44]
jmp 0x5c01bd3f
fst dword [esp + 0xc]
test dword [esp + 0xc], 0x7fffffff
je 0x5c01bc3c
fld st(1)
fdivrp st(1)
jmp 0x5c01bc45
fstp st(0)
fld dword [esp + 0x90]
fstp dword [esp + 0x38]
test dword [ebx + 0x1a60], 0x100000
fld dword [esp + 0x38]
fld st(0)
fld dword [esp + 0x40]
fmul st(1)
fmul dword [ebx + 0x5fc]
fadd dword [ebx + 0x604]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0x10]
fst dword [esp + 0x14]
fstp dword [esp + 0x40]
fld dword [esp + 0x44]
fmul st(1)
fmul dword [ebx + 0x600]
fadd dword [ebx + 0x608]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0xc]
fst dword [esp + 0x20]
fstp dword [esp + 0x44]
fld dword [esp + 0x40]
fld dword [esp + 0x44]
jne 0x5c01bd1f
fld dword [esp + 0x10]
fld dword [esp + 0x14]
fld dword [ebx + 0x1b1c]
fcompp
fnstsw ax
test ah, 0x41
jne 0x5c01bcd0
fxch st(2)
fst dword [ebx + 0x1b1c]
fxch st(2)
fld dword [ebx + 0x1b24]
fcompp
fnstsw ax
test ah, 5
jp 0x5c01bce9
fxch st(1)
fst dword [ebx + 0x1b24]
fxch st(1)
fld dword [esp + 0xc]
fld dword [esp + 0x20]
fld dword [ebx + 0x1b20]
fcompp
fnstsw ax
test ah, 0x41
jne 0x5c01bd0a
fxch st(1)
fst dword [ebx + 0x1b20]
fxch st(1)
fld dword [ebx + 0x1b28]
fcompp
fnstsw ax
test ah, 5
jp 0x5c01bd1f
fst dword [ebx + 0x1b28]
fld dword [ebx + 0x60c]
fmul dword [esp + 0x48]
mov eax, dword [esp + 0x6c]
fmulp st(3)
fld dword [ebx + 0x610]
faddp st(3)
fxch st(2)
fstp dword [esp + 0x48]
fstp dword [eax]
fstp dword [eax + 4]
fld dword [esp + 0x48]
fstp dword [eax + 8]
fstp dword [eax + 0xc]
and dword [ebx + 0x5b8], 0
mov esi, dword [ebx + 0x1a60]
test esi, 0x20000000
je 0x5c01bfba
fld dword [edi + 4]
xor eax, eax
fld dword [edi]
fld dword [edi + 8]
fld dword [ebx + 0x454]
fmul st(3)
fld dword [ebx + 0x444]
fmul st(3)
mov ecx, dword [ebx + 0x1cb4]
faddp st(1)
fld dword [ebx + 0x464]
fmul st(2)
faddp st(1)
fadd dword [ebx + 0x474]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0xe4]
fld dword [ebx + 0x458]
fmul st(4)
fld dword [ebx + 0x448]
fmul st(4)
faddp st(1)
fld dword [ebx + 0x468]
fmul st(3)
faddp st(1)
fadd dword [ebx + 0x478]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0xe8]
fld dword [ebx + 0x45c]
fmul st(5)
fld dword [ebx + 0x44c]
fmul st(5)
faddp st(1)
fld dword [ebx + 0x46c]
fmul st(4)
faddp st(1)
fadd dword [ebx + 0x47c]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0xec]
test ecx, ecx
je 0x5c01bfa5
fld dword [esp + 0x64]
xor edx, edx
fst dword [esp + 0x18]
fst dword [esp + 0xe4]
fst dword [esp + 0xe8]
fst dword [esp + 0xec]
fxch st(3)
fst dword [esp + 0x1c]
fxch st(2)
fst dword [esp + 0x30]
fxch st(1)
fst dword [esp + 0x34]
fxch st(3)
fst dword [esp + 0x10]
fst dword [esp + 0x14]
fstp dword [esp + 0x20]
test ecx, ecx
je 0x5c01bf56
fxch st(1)
lea eax, [ebx + 0x2e4]
fstp dword [esp + 0x1c]
fstp dword [esp + 0x30]
fstp dword [esp + 0x34]
fld dword [edi + edx*4 + 0xc]
inc edx
fld dword [esp + 0x1c]
fmul st(1)
fadd dword [esp + 0xe4]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0x10]
fstp dword [esp + 0xe4]
fld dword [esp + 0x30]
fmul st(1)
fadd dword [esp + 0xe8]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0x14]
fstp dword [esp + 0xe8]
fld dword [esp + 0x34]
fmul st(1)
fadd dword [esp + 0xec]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0xc]
fstp dword [esp + 0xec]
fadd dword [esp + 0x18]
fstp dword [esp + 0x18]
fld dword [eax - 0x10]
fmul st(3)
fld dword [eax - 0x20]
fmul st(3)
faddp st(1)
fld dword [eax]
fmul st(2)
faddp st(1)
fadd dword [eax + 0x10]
fstp dword [esp + 0x1c]
fld dword [eax - 0xc]
fmul st(3)
fld dword [eax - 0x1c]
fmul st(3)
faddp st(1)
fld dword [eax + 4]
fmul st(2)
faddp st(1)
fadd dword [eax + 0x14]
fstp dword [esp + 0x30]
fld dword [eax - 8]
fmul st(3)
fld dword [eax - 0x18]
fmul st(3)
faddp st(1)
fld dword [eax + 8]
fmul st(2)
faddp st(1)
fadd dword [eax + 0x18]
add eax, 0x40
fstp dword [esp + 0x34]
cmp edx, ecx
jb 0x5c01be6b
mov eax, dword [ebx + 0x5b8]
fstp st(2)
fstp st(0)
fstp st(0)
fld dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x14]
fstp dword [esp + 0x14]
fld dword [esp + 0xc]
fstp dword [esp + 0x20]
jmp 0x5c01bf62
fstp st(2)
fstp st(0)
fstp st(0)
fstp st(2)
fstp st(0)
fstp st(0)
fld dword [esp + 0x18]
fld st(1)
fsubrp st(1)
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fld dword [esp + 0x1c]
fmul st(1)
fadd dword [esp + 0x10]
fstp dword [esp + 0xe4]
fld dword [esp + 0x30]
fmul st(1)
fadd dword [esp + 0x14]
fstp dword [esp + 0xe8]
fmul dword [esp + 0x34]
fadd dword [esp + 0x20]
fstp dword [esp + 0xec]
jmp 0x5c01bfb1
fstp st(0)
fstp st(1)
fstp st(0)
fstp st(2)
fstp st(0)
fstp st(0)
or eax, 1
mov dword [ebx + 0x5b8], eax
test esi, 0x40000000
je 0x5c01c21a
mov eax, dword [esp + 0x58]
fld dword [ebx + 0x488]
mov ecx, dword [ebx + 0x1cb4]
fmul dword [eax + 4]
fld dword [ebx + 0x484]
fmul dword [eax]
faddp st(1)
fld dword [ebx + 0x48c]
fmul dword [eax + 8]
faddp st(1)
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0x10]
fstp dword [esp + 0xf0]
fld dword [ebx + 0x498]
fmul dword [eax + 4]
fld dword [ebx + 0x494]
fmul dword [eax]
faddp st(1)
fld dword [ebx + 0x49c]
fmul dword [eax + 8]
faddp st(1)
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0x14]
fstp dword [esp + 0xf4]
fld dword [ebx + 0x4a8]
fmul dword [eax + 4]
fld dword [ebx + 0x4a4]
fmul dword [eax]
faddp st(1)
fld dword [ebx + 0x4ac]
fmul dword [eax + 8]
faddp st(1)
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0xc]
fstp dword [esp + 0xf8]
test ecx, ecx
je 0x5c01c1f9
fld dword [esp + 0x64]
xor edx, edx
fst dword [esp + 0x18]
fst dword [esp + 0xf0]
fst dword [esp + 0xf4]
fst dword [esp + 0xf8]
fld dword [esp + 0x10]
fst dword [esp + 0x1c]
fld dword [esp + 0x14]
fst dword [esp + 0x30]
fld dword [esp + 0xc]
fst dword [esp + 0x34]
fxch st(3)
fst dword [esp + 0x10]
fst dword [esp + 0x14]
fstp dword [esp + 0x20]
test ecx, ecx
je 0x5c01c1b4
mov esi, dword [esp + 0x58]
lea eax, [ebx + 0x38c]
fxch st(1)
fstp dword [esp + 0x1c]
fstp dword [esp + 0x30]
fstp dword [esp + 0x34]
fld dword [edi + edx*4 + 0xc]
inc edx
fld dword [esp + 0x1c]
fmul st(1)
fadd dword [esp + 0xf0]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0x10]
fstp dword [esp + 0xf0]
fld dword [esp + 0x30]
fmul st(1)
fadd dword [esp + 0xf4]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0x14]
fstp dword [esp + 0xf4]
fld dword [esp + 0x34]
fmul st(1)
fadd dword [esp + 0xf8]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0xc]
fstp dword [esp + 0xf8]
fadd dword [esp + 0x18]
fstp dword [esp + 0x18]
fld dword [esi + 4]
fld dword [esi]
fld dword [esi + 8]
fld dword [eax - 8]
fmul st(2)
fld dword [eax - 4]
fmul st(4)
faddp st(1)
fld dword [eax]
fmul st(2)
faddp st(1)
fstp dword [esp + 0x1c]
fld dword [eax + 8]
fmul st(2)
fld dword [eax + 0xc]
fmul st(4)
faddp st(1)
fld dword [eax + 0x10]
fmul st(2)
faddp st(1)
fstp dword [esp + 0x30]
fld dword [eax + 0x18]
fmulp st(2)
fld dword [eax + 0x1c]
fmulp st(3)
fxch st(1)
faddp st(2)
fmul dword [eax + 0x20]
add eax, 0x40
faddp st(1)
fstp dword [esp + 0x34]
cmp edx, ecx
jb 0x5c01c0d0
fld dword [esp + 0x10]
mov esi, dword [ebx + 0x1a60]
fstp dword [esp + 0x10]
fld dword [esp + 0x14]
fstp dword [esp + 0x14]
fld dword [esp + 0xc]
fstp dword [esp + 0x20]
jmp 0x5c01c1ba
fstp st(1)
fstp st(0)
fstp st(0)
fsub dword [esp + 0x18]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fld dword [esp + 0x1c]
fmul st(1)
fadd dword [esp + 0x10]
fstp dword [esp + 0xf0]
fld dword [esp + 0x30]
fmul st(1)
fadd dword [esp + 0x14]
fstp dword [esp + 0xf4]
fmul dword [esp + 0x34]
fadd dword [esp + 0x20]
fstp dword [esp + 0xf8]
jmp 0x5c01c1fb
fstp st(0)
test esi, 0x2000000
je 0x5c01c211
lea edx, [esp + 0xf0]
mov ecx, edx
call fcn.5c067c51
or dword [ebx + 0x5b8], 2
jmp 0x5c01c21c
fstp st(0)
mov ecx, dword [ebx + 0x1a44]
test ecx, 0x400
je 0x5c01c7e2
fld dword [esp + 0x64]
fst dword [ebx + 0x504]
fst dword [ebx + 0x508]
fst dword [ebx + 0x50c]
fst dword [ebx + 0x524]
fst dword [ebx + 0x528]
fst dword [ebx + 0x52c]
test ecx, 0x200
je 0x5c01c2bb
test ecx, 0x10000
je 0x5c01c27f
mov eax, dword [esp + 0x80]
test eax, eax
je 0x5c01c277
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x5c01c279
xor eax, eax
mov dword [ebx + 0x540], eax
test ecx, 0x4000
je 0x5c01c29d
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x5c01c295
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x5c01c297
xor eax, eax
mov dword [ebx + 0x550], eax
test ecx, 0x8000
je 0x5c01c2bb
mov eax, dword [esp + 0x78]
test eax, eax
je 0x5c01c2b3
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x5c01c2b5
xor eax, eax
mov dword [ebx + 0x570], eax
mov edi, dword [ebx + 0x5c0]
mov edx, ecx
test edi, edi
je 0x5c01c301
fstp st(0)
mov esi, dword [edi + 0x80]
lea eax, [esp + 0xe4]
push eax
push dword [esp + 0x5c]
mov ecx, esi
push dword [esp + 0x5c]
push edi
push ebx
call dword [0x5c05d150]
call esi
mov edi, dword [edi + 0x58]
add esp, 0x14
test edi, edi
jne 0x5c01c2c9
mov ecx, dword [ebx + 0x1a44]
mov edx, ecx
fld dword [esp + 0x64]
test ecx, 0x12000
je 0x5c01c54c
test byte [ebx + 0x5b8], 8
jne 0x5c01c32a
fst dword [ebx + 0x504]
fst dword [ebx + 0x508]
fstp dword [ebx + 0x50c]
jmp 0x5c01c32c
fstp st(0)
test ecx, 0x10000
je 0x5c01c3f3
mov eax, dword [esp + 0x80]
test eax, eax
je 0x5c01c349
mov eax, dword [eax]
mov ecx, dword [eax]
jmp 0x5c01c34b
xor ecx, ecx
mov eax, ecx
shr eax, 0x10
movzx eax, al
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
test eax, eax
jns 0x5c01c365
fadd dword [0x5c0031f0]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
mov eax, ecx
fmul dword [ebx + 0x554]
shr eax, 8
movzx eax, al
mov dword [esp + 0xc], eax
fadd dword [ebx + 0x504]
fstp dword [ebx + 0x504]
fild dword [esp + 0xc]
test eax, eax
jns 0x5c01c399
fadd dword [0x5c0031f0]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fmul dword [ebx + 0x558]
movzx eax, cl
mov dword [esp + 0xc], eax
fadd dword [ebx + 0x508]
fstp dword [ebx + 0x508]
fild dword [esp + 0xc]
test eax, eax
jns 0x5c01c3c8
fadd dword [0x5c0031f0]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
mov eax, dword [esp + 0x12c]
mov edi, dword [esp + 0x50]
fmul dword [ebx + 0x55c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x3c], edi
jmp 0x5c01c433
fld dword [ebx + 0x584]
fmul dword [ebx + 0x544]
mov edi, dword [esp + 0x3c]
fadd dword [ebx + 0x504]
fstp dword [ebx + 0x504]
fld dword [ebx + 0x588]
fmul dword [ebx + 0x548]
fadd dword [ebx + 0x508]
fstp dword [ebx + 0x508]
fld dword [ebx + 0x58c]
fmul dword [ebx + 0x54c]
fadd dword [ebx + 0x50c]
fstp dword [ebx + 0x50c]
test dword [ebx + 0x1a44], 0x2000
je 0x5c01c4f8
mov eax, dword [esp + 0x88]
test eax, eax
je 0x5c01c460
mov eax, dword [eax]
mov ecx, dword [eax]
jmp 0x5c01c462
xor ecx, ecx
mov eax, ecx
shr eax, 0x10
movzx eax, al
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
test eax, eax
jns 0x5c01c47c
fadd dword [0x5c0031f0]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
mov eax, ecx
fadd dword [ebx + 0x504]
shr eax, 8
movzx eax, al
mov dword [esp + 0xc], eax
fstp dword [ebx + 0x504]
fild dword [esp + 0xc]
test eax, eax
jns 0x5c01c4aa
fadd dword [0x5c0031f0]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fadd dword [ebx + 0x508]
movzx eax, cl
mov dword [esp + 0xc], eax
fstp dword [ebx + 0x508]
fild dword [esp + 0xc]
test eax, eax
jns 0x5c01c4d3
fadd dword [0x5c0031f0]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
mov eax, dword [esp + 0x12c]
mov edi, dword [esp + 0x50]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x3c], edi
jmp 0x5c01c531
fld dword [ebx + 0x5a4]
fld qword [esp + 0xa8]
fmul st(1), st(0)
fld dword [ebx + 0x504]
faddp st(2)
fxch st(1)
fstp dword [ebx + 0x504]
fld dword [ebx + 0x5a8]
fmul st(1)
fadd dword [ebx + 0x508]
fstp dword [ebx + 0x508]
fmul dword [ebx + 0x5ac]
fadd dword [ebx + 0x50c]
fstp dword [ebx + 0x50c]
or dword [ebx + 0x5b8], 8
mov edx, dword [ebx + 0x1a44]
jmp 0x5c01c552
mov edi, dword [esp + 0x3c]
fstp st(0)
mov ecx, dword [ebx + 0x5b8]
test cl, 8
je 0x5c01c686
test edx, 0x12000
jne 0x5c01c5a9
fld dword [ebx + 0x514]
fadd dword [ebx + 0x504]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [ebx + 0x504]
fld dword [ebx + 0x518]
fadd dword [ebx + 0x508]
fstp dword [ebx + 0x508]
fld dword [ebx + 0x51c]
fadd dword [ebx + 0x50c]
fstp dword [ebx + 0x50c]
jmp 0x5c01c5af
fld dword [ebx + 0x504]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0xb0]
fld dword [ebx + 0x508]
mov ecx, dword [esp + 0xb0]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0xb8]
fld dword [ebx + 0x50c]
mov edx, dword [esp + 0xb8]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0xc0]
mov esi, dword [esp + 0xc0]
mov eax, 0xff
test ecx, ecx
jns 0x5c01c612
xor ecx, ecx
jmp 0x5c01c618
cmp ecx, eax
jle 0x5c01c618
mov ecx, eax
test edx, edx
jns 0x5c01c620
xor edx, edx
jmp 0x5c01c626
cmp edx, eax
jle 0x5c01c626
mov edx, eax
test esi, esi
jns 0x5c01c62e
xor esi, esi
jmp 0x5c01c634
cmp esi, eax
jle 0x5c01c634
mov esi, eax
test dword [ebx + 0x1a44], 0x4000
jne 0x5c01c650
shl ecx, 8
add ecx, edx
shl ecx, 8
add ecx, dword [ebx + 0x510]
jmp 0x5c01c66f
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x5c01c65e
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x5c01c660
xor eax, eax
shl ecx, 8
and eax, 0xff000000
add ecx, edx
shl ecx, 8
add ecx, eax
lea eax, [ecx + esi]
mov dword [ebx + 0x530], eax
mov ecx, dword [ebx + 0x5b8]
mov edx, dword [ebx + 0x1a44]
jmp 0x5c01c6c0
test edx, 0x4000
jne 0x5c01c69c
mov eax, dword [ebx + 0x5e8]
add eax, dword [ebx + 0x510]
jmp 0x5c01c6ba
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x5c01c6b0
mov eax, dword [eax]
mov esi, dword [eax]
and esi, 0xff000000
jmp 0x5c01c6b2
xor esi, esi
mov eax, dword [ebx + 0x5e8]
add eax, esi
mov dword [ebx + 0x530], eax
test cl, 4
je 0x5c01c78c
fld dword [ebx + 0x524]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0xc8]
fld dword [ebx + 0x528]
mov ecx, dword [esp + 0xc8]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0xd0]
fld dword [ebx + 0x52c]
mov edx, dword [esp + 0xd0]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0xd8]
mov esi, dword [esp + 0xd8]
mov eax, 0xff
test ecx, ecx
jns 0x5c01c72a
xor ecx, ecx
jmp 0x5c01c730
cmp ecx, eax
jle 0x5c01c730
mov ecx, eax
test edx, edx
jns 0x5c01c738
xor edx, edx
jmp 0x5c01c73e
cmp edx, eax
jle 0x5c01c73e
mov edx, eax
test esi, esi
jns 0x5c01c746
xor esi, esi
jmp 0x5c01c74c
cmp esi, eax
jle 0x5c01c74c
mov esi, eax
test dword [ebx + 0x1a44], 0x8000
jne 0x5c01c768
shl ecx, 8
add ecx, edx
shl ecx, 8
add ecx, dword [ebx + 0x5bc]
jmp 0x5c01c787
mov eax, dword [esp + 0x78]
test eax, eax
je 0x5c01c776
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x5c01c778
xor eax, eax
shl ecx, 8
and eax, 0xff000000
add ecx, edx
shl ecx, 8
add ecx, eax
lea eax, [ecx + esi]
jmp 0x5c01c7d2
test edx, 0x100000
jne 0x5c01c7d8
test dword [ebx + 0x1a60], 0x800
jne 0x5c01c7ad
test byte [ebx + 0x1a5c], 0x80
je 0x5c01c7d0
mov eax, dword [edi]
jmp 0x5c01c7d2
test edx, 0x8000
jne 0x5c01c7bd
mov eax, dword [ebx + 0x5bc]
jmp 0x5c01c7d2
mov eax, dword [esp + 0x78]
test eax, eax
je 0x5c01c7d0
mov eax, dword [eax]
mov eax, dword [eax]
and eax, 0xff000000
jmp 0x5c01c7d2
xor eax, eax
mov dword [ebx + 0x560], eax
mov eax, dword [ebx + 0x1a44]
mov edx, eax
jmp 0x5c01c81d
test byte [ebx + 0x1a5c], 0xc0
mov eax, ecx
mov edx, ecx
je 0x5c01c81d
test byte [ebx + 0x1a5c], 0x40
je 0x5c01c804
mov eax, dword [esp + 0x5c]
mov eax, dword [eax]
mov dword [ebx + 0x530], eax
test byte [ebx + 0x1a5c], 0x80
mov eax, ecx
je 0x5c01c81d
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
mov dword [ebx + 0x560], eax
mov eax, ecx
test eax, 0x100
je 0x5c01c840
mov edx, dword [esp + 0x54]
lea eax, [esp + 0xe4]
push eax
mov ecx, ebx
call fcn.5c01a55e
mov eax, dword [ebx + 0x1a44]
mov edx, eax
pop ecx
mov esi, dword [esp + 0x6c]
test eax, eax
js 0x5c01c85f
mov ecx, dword [ebx + 0x1cd0]
mov eax, dword [ebx + 0x530]
mov dword [esi + ecx], eax
mov eax, dword [ebx + 0x1a44]
mov edx, eax
test eax, 0x100000
jne 0x5c01c87b
mov ecx, dword [ebx + 0x1cd4]
mov eax, dword [ebx + 0x560]
mov dword [esi + ecx], eax
mov edx, dword [ebx + 0x1a44]
mov edi, dword [ebx + 0x1ccc]
and edx, 0x10000000
mov eax, dword [ebx + 0x1a60]
add edi, esi
mov dword [esp + 0x1c], edi
test eax, 0x8000000
je 0x5c01cbb4
test edx, edx
jne 0x5c01cb34
test dword [esp + 0x60], 0x200000
jne 0x5c01cb2b
test eax, 0x4010000
jne 0x5c01c90d
xor eax, eax
mov dword [esp + 0x10], eax
cmp dword [ebx + 0x1a88], eax
jbe 0x5c01cb34
lea ecx, [ebx + 0x1ad8]
mov dword [esp + 0x14], ecx
mov esi, dword [ecx]
push esi
push dword [esp + eax*4 + 0x130]
push edi
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov ecx, dword [esp + 0x14]
add edi, esi
inc eax
add ecx, 4
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
cmp eax, dword [ebx + 0x1a88]
jb 0x5c01c8d7
jmp 0x5c01cb34
test eax, 0x10000
jne 0x5c01c9a6
xor ecx, ecx
mov dword [esp + 0x10], ecx
cmp dword [ebx + 0x1a88], ecx
jbe 0x5c01cb34
lea eax, [ebx + 0x1af8]
mov dword [esp + 0x14], eax
mov edx, dword [eax - 0x20]
mov esi, dword [eax]
mov eax, dword [eax + 0x138]
mov ecx, dword [esp + ecx*4 + 0x12c]
mov dword [esp + 0x20], edx
mov dword [esp + 0xc], eax
test eax, eax
jne 0x5c01c95c
push edx
push ecx
push edi
call sub.msvcrt.dll_memcpy
jmp 0x5c01c97e
push dword [esp + 0xc]
mov eax, edx
shr esi, 2
shr eax, 2
push edi
push ecx
lea eax, [esi + eax*4]
mov esi, dword [eax*4 + 0x5c00169c]
mov ecx, esi
call dword [0x5c05d150]
call esi
mov ecx, dword [esp + 0x1c]
add esp, 0xc
add edi, dword [esp + 0x20]
inc ecx
mov eax, dword [esp + 0x14]
add eax, 4
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
cmp ecx, dword [ebx + 0x1a88]
jb 0x5c01c934
jmp 0x5c01cb34
and dword [esp + 0x10], 0
cmp dword [ebx + 0x1c2c], 0
jbe 0x5c01cb34
lea eax, [ebx + 0x1ad8]
lea esi, [ebx + 0x1b40]
mov dword [esp + 0x18], eax
mov dword [esp + 0x2c], esi
mov eax, dword [esi + 8]
test eax, eax
jne 0x5c01c9e2
mov eax, dword [esi - 0x14]
mov ecx, dword [esp + eax*4 + 0x12c]
jmp 0x5c01cac8
cmp eax, 0x20000
jne 0x5c01c9f5
lea ecx, [esp + 0xe4]
jmp 0x5c01cac8
cmp eax, 0x10000
jne 0x5c01ca08
lea ecx, [esp + 0xf0]
jmp 0x5c01cac8
test dword [ebx + 0x1a60], 0x1000000
je 0x5c01caae
lea esi, [esp + 0xe4]
lea edi, [esp + 0xfc]
movsd dword es:[edi], dword [esi]
lea edx, [esp + 0xfc]
mov ecx, edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.5c04ff08
fld dword [esp + 0x100]
fld dword [esp + 0xf4]
fld dword [esp + 0xfc]
fld dword [esp + 0xf0]
fld dword [esp + 0xf8]
fld dword [esp + 0x104]
fld st(4)
mov edi, dword [esp + 0x1c]
fmul st(6)
fld st(3)
mov esi, dword [esp + 0x2c]
fmul st(5)
faddp st(1)
fld st(2)
fmul st(2)
faddp st(1)
fadd st(0), st(0)
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fmul st(3), st(0)
fxch st(4)
fsubrp st(3)
fxch st(2)
fstp dword [esp + 0x114]
fxch st(3)
fmul st(2)
fsubp st(4)
fxch st(3)
fstp dword [esp + 0x118]
fmulp st(1)
fsubp st(1)
fstp dword [esp + 0x11c]
jmp 0x5c01cac1
lea edx, [esp + 0x114]
lea ecx, [esp + 0xf0]
call fcn.5c01a531
lea ecx, [esp + 0x114]
cmp dword [esi], 0
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
je 0x5c01caf5
push dword [esi]
mov eax, dword [esi + 4]
push edi
push ecx
mov esi, dword [eax*4 + 0x5c0016b0]
mov ecx, esi
call dword [0x5c05d150]
call esi
mov esi, dword [esp + 0x38]
jmp 0x5c01cafd
push eax
push ecx
push edi
call sub.msvcrt.dll_memcpy
add edi, dword [esp + 0x18]
add esp, 0xc
mov ecx, dword [esp + 0x10]
add esi, 0x20
add dword [esp + 0x18], 4
inc ecx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x2c], esi
cmp ecx, dword [ebx + 0x1c2c]
jb 0x5c01c9cc
jmp 0x5c01cb34
fld dword [esp + 0x64]
fst dword [edi]
fstp dword [edi + 4]
mov eax, dword [esp + 0x94]
add dword [esp + 0x54], eax
test dword [ebx + 0x1a44], 0x40000000
jne 0x5c01ce78
mov eax, dword [esp + 0x58]
xor ecx, ecx
mov edi, dword [esp + 0x5c]
mov edx, dword [esp + 0x3c]
add edi, dword [ebx + 0x1a38]
add edx, dword [ebx + 0x1a94]
add eax, dword [ebx + 0x1a30]
mov esi, dword [ebx + 0x1a84]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x3c], edx
mov dword [esp + 0x50], edx
test esi, esi
je 0x5c01ce78
lea edx, [ebx + 0x1a9c]
mov eax, dword [edx]
lea edx, [edx + 8]
add dword [esp + ecx*4 + 0x12c], eax
inc ecx
cmp ecx, esi
jb 0x5c01cb97
mov eax, dword [esp + 0x12c]
jmp 0x5c01ce74
test edx, edx
jne 0x5c01ce30
test dword [esp + 0x60], 0x200000
jne 0x5c01ce27
test eax, 0x4010000
jne 0x5c01cbe9
push dword [ebx + 0x1a8c]
push dword [esp + 0x2c]
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
jmp 0x5c01ce30
test eax, 0x10000
jne 0x5c01cc99
mov eax, dword [esp + 0x28]
xor esi, esi
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], esi
cmp dword [ebx + 0x1a88], esi
jbe 0x5c01ce34
lea eax, [ebx + 0x1af8]
mov dword [esp + 0x20], eax
mov edx, dword [eax]
mov ecx, dword [eax - 0x20]
mov eax, dword [eax + 0x138]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0xc], eax
test eax, eax
je 0x5c01cc61
mov eax, dword [esp + 0x10]
push dword [esp + 0xc]
shr ecx, 2
shr eax, 2
push edi
push edx
lea eax, [eax + ecx*4]
mov esi, dword [eax*4 + 0x5c00169c]
mov ecx, esi
call dword [0x5c05d150]
call esi
mov esi, dword [esp + 0x20]
jmp 0x5c01cc69
push ecx
push edx
push edi
call sub.msvcrt.dll_memcpy
mov edx, dword [esp + 0x24]
add esp, 0xc
add edx, dword [esp + 0x10]
add edi, dword [esp + 0x2c]
inc esi
mov eax, dword [esp + 0x20]
add eax, 4
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], esi
mov dword [esp + 0x20], eax
cmp esi, dword [ebx + 0x1a88]
jb 0x5c01cc18
jmp 0x5c01ce30
and dword [esp + 0x10], 0
cmp dword [ebx + 0x1c2c], 0
jbe 0x5c01ce30
lea esi, [ebx + 0x1ad8]
lea eax, [ebx + 0x1b30]
mov dword [esp + 0x18], esi
mov dword [esp + 0x2c], eax
mov ecx, dword [eax + 0x18]
test ecx, ecx
jne 0x5c01ccd1
mov ecx, dword [eax]
add ecx, dword [esp + 0x28]
jmp 0x5c01cdbf
cmp ecx, 0x20000
jne 0x5c01cce5
lea ecx, [esp + 0xe4]
jmp 0x5c01cdbf
cmp ecx, 0x10000
jne 0x5c01ccf9
lea ecx, [esp + 0xf0]
jmp 0x5c01cdbf
test dword [ebx + 0x1a60], 0x1000000
je 0x5c01cda5
lea esi, [esp + 0xe4]
lea edi, [esp + 0x108]
movsd dword es:[edi], dword [esi]
lea edx, [esp + 0x108]
mov ecx, edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.5c04ff08
fld dword [esp + 0xf4]
fld dword [esp + 0x10c]
fld dword [esp + 0xf0]
fld dword [esp + 0x108]
fld dword [esp + 0xf8]
fld dword [esp + 0x110]
fld st(5)
mov edi, dword [esp + 0x1c]
fmul st(5)
fld st(4)
mov eax, dword [esp + 0x2c]
fmul st(4)
mov esi, dword [esp + 0x18]
faddp st(1)
fld st(2)
fmul st(2)
faddp st(1)
fadd st(0), st(0)
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fmul st(4), st(0)
fxch st(3)
fsubrp st(4)
fxch st(3)
fstp dword [esp + 0x120]
fxch st(4)
fmul st(1)
fsubp st(3)
fxch st(2)
fstp dword [esp + 0x124]
fxch st(2)
fmulp st(1)
fsubp st(1)
fstp dword [esp + 0x128]
jmp 0x5c01cdb8
lea edx, [esp + 0x120]
lea ecx, [esp + 0xf0]
call fcn.5c01a531
lea ecx, [esp + 0x120]
mov edx, dword [eax + 0x10]
mov esi, dword [esi]
mov dword [esp + 0xc], esi
test edx, edx
je 0x5c01cde9
mov eax, dword [eax + 0x14]
push edx
push edi
push ecx
mov esi, dword [eax*4 + 0x5c0016b0]
mov ecx, esi
call dword [0x5c05d150]
call esi
mov esi, dword [esp + 0x18]
jmp 0x5c01cdf1
push esi
push ecx
push edi
call sub.msvcrt.dll_memcpy
mov edx, dword [esp + 0x1c]
add edi, esi
mov esi, dword [esp + 0x24]
add esp, 0xc
mov eax, dword [esp + 0x2c]
inc edx
add esi, 4
mov dword [esp + 0x1c], edi
add eax, 0x20
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], esi
mov dword [esp + 0x2c], eax
cmp edx, dword [ebx + 0x1c2c]
jb 0x5c01ccbf
jmp 0x5c01ce30
fld dword [esp + 0x64]
fst dword [edi]
fstp dword [edi + 4]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x94]
add dword [esp + 0x54], edx
test dword [ebx + 0x1a44], 0x40000000
jne 0x5c01ce78
mov ecx, dword [esp + 0x5c]
add dword [esp + 0x58], edx
add ecx, edx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x3c]
add ecx, edx
add eax, edx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x12c], eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x6c]
add eax, dword [esp + 0x24]
sub dword [esp + 0x84], 1
mov dword [esp + 0x6c], eax
jne 0x5c01b70c
mov ecx, dword [esp + 0x70]
mov esi, dword [esp + 0x74]
test dword [ebx + 0x1a60], 0x100000
jne 0x5c01cfe0
fld dword [ebx + 0x1b24]
fadd dword [ebx + 0x68c]
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fst dword [esp + 0x8c]
fstp dword [ebx + 0x1b24]
fld dword [ebx + 0x1b28]
fadd dword [ebx + 0x68c]
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fst dword [esp + 0xc]
fstp dword [ebx + 0x1b28]
fld dword [ebx + 0x1b1c]
fsub dword [ebx + 0x68c]
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fst dword [ebx + 0x1b1c]
fld dword [ebx + 0x1b20]
fsub dword [ebx + 0x68c]
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fst dword [esp + 0x90]
fstp dword [ebx + 0x1b20]
fld dword [ebx + 0x624]
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x5c01cf63
fstp dword [ebx + 0x1b1c]
jmp 0x5c01cf65
mov eax, dword [ebx + 0x1a40]
fstp st(0)
sub eax, dword [esp + 0x84]
fstp st(0)
mov dword [ebx + 0x225c], eax
xor eax, eax
jmp 0x5c01cfee
fstp st(0)
fld dword [ebx + 0x628]
fstp dword [esp + 0x24]
fld dword [esp + 0x90]
fld dword [esp + 0x24]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x5c01cf8d
fstp dword [ebx + 0x1b20]
jmp 0x5c01cf8f
fstp st(0)
fld dword [ebx + 0x62c]
fstp dword [esp + 0x24]
fld dword [esp + 0x8c]
fld dword [esp + 0x24]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x5c01cfb7
fstp dword [ebx + 0x1b24]
jmp 0x5c01cfb9
fstp st(0)
fld dword [ebx + 0x630]
fstp dword [esp + 0x24]
fld dword [esp + 0xc]
fld dword [esp + 0x24]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x5c01cfde
fstp dword [ebx + 0x1b28]
jmp 0x5c01cfe0
fstp st(0)
mov dword [ebx + 0x684], ecx
mov eax, ecx
mov dword [ebx + 0x680], esi
mov ecx, dword [esp + 0x14c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.5c04f7b0
mov esp, ebp
pop ebp
ret