Function at 0x5c01b276
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 [0x5c05aac4]
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 0x5c01b34a
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 0x5c01b3d1
mov ecx, dword [ebx + 0x1cbc]
add ecx, eax
jmp 0x5c01b392
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 0x5c01b39f
test dword [ebx + 0x1a44], ecx
jne 0x5c01b39f
cmp dword [ebx + 0x1a84], edi
je 0x5c01b3d1
mov eax, dword [ebx + 0x688]
mov ecx, dword [ebx + eax*8 + 0x1a98]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x12c], ecx
jmp 0x5c01b3d1
mov esi, dword [ebx + 0x1a84]
mov ecx, edi
test esi, esi
je 0x5c01b3d1
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 0x5c01b3b1
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 0x5c01b528
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 0x5c01b52a
mov edx, dword [ebx + 0x1a5c]
test dl, 0x40
je 0x5c01b4ac
mov ecx, eax
cmp dword [ebx + 0x5f8], edi
jne 0x5c01b456
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 0x5c01b473
or eax, 0x4200
lea ecx, [esp + 0x4c]
mov dword [ebx + 0x1a44], eax
mov dword [esp + 0x7c], ecx
cmp dword [ebx + 0x5ec], edi
jne 0x5c01b491
or eax, 0x10200
lea ecx, [esp + 0x4c]
mov dword [ebx + 0x1a44], eax
mov dword [esp + 0x80], ecx
cmp dword [ebx + 0x5f4], edi
jne 0x5c01b4ac
or eax, 0x8200
lea ecx, [esp + 0x4c]
mov dword [ebx + 0x1a44], eax
mov dword [esp + 0x78], ecx
test dl, dl
jns 0x5c01b52a
cmp dword [ebx + 0x5f8], 1
jne 0x5c01b4cf
or eax, 0x2200
lea esi, [esp + 0x50]
mov dword [ebx + 0x1a44], eax
mov dword [esp + 0x88], esi
cmp dword [ebx + 0x5f0], 1
jne 0x5c01b4eb
or eax, 0x4200
lea ecx, [esp + 0x50]
mov dword [ebx + 0x1a44], eax
mov dword [esp + 0x7c], ecx
cmp dword [ebx + 0x5ec], 1
jne 0x5c01b50a
or eax, 0x10200
lea ecx, [esp + 0x50]
mov dword [ebx + 0x1a44], eax
mov dword [esp + 0x80], ecx
cmp dword [ebx + 0x5f4], 1
jne 0x5c01b52a
or eax, 0x8200
lea ecx, [esp + 0x50]
mov dword [ebx + 0x1a44], eax
mov dword [esp + 0x78], ecx
jmp 0x5c01b52a
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 0x5c01cd1a
fld1
fstp qword [esp + 0x98]
fldz
fstp qword [esp + 0xa0]
fld dword [0x5c0031c0]
fstp dword [esp + 0x90]
fld qword [0x5c003160]
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 + 0x4d4]
fmul st(3)
fld dword [ebx + 0x4c4]
fmul st(3)
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 + 0x4c8]
fmul st(3)
fld dword [ebx + 0x4d8]
fmul st(5)
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 + 0x4cc]
fmul st(4)
fld dword [ebx + 0x4dc]
fmul st(6)
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 + 0x4d0]
fmul st(5)
fld dword [ebx + 0x4e0]
fmul st(7)
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 0x5c01b872
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 0x5c01b7dd
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 0x5c01b6e2
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 0x5c01b7e9
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 0x5c01b885
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 0x5c01baa8
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 0x5c01b9ac
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 0x5c01b96a
or edx, edi
add edi, edi
add ecx, 0x10
sub esi, 1
jne 0x5c01b946
mov edi, dword [esp + 0x54]
fstp st(5)
fstp st(4)
fld qword [esp + 0x98]
fxch st(4)
test edx, edx
jne 0x5c01b9b0
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 0x5c01bac5
fstp st(0)
jmp 0x5c01b985
test byte [esp + 0x60], 2
je 0x5c01ba69
fld dword [ebx + 0x634]
fmulp st(2)
fld dword [ebx + 0x63c]
fmul 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 0x5c01ba6d
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 0x5c01bac5
fstp st(1)
fstp st(1)
test dword [ebx + 0x1a44], 0x200000
fstp st(0)
jne 0x5c01cdc5
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 0x5c01bbbf
fst dword [esp + 0xc]
test dword [esp + 0xc], 0x7fffffff
je 0x5c01babc
fld st(1)
fdivrp st(1)
jmp 0x5c01bac5
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 0x5c01bb9f
fld dword [esp + 0x10]
fld dword [esp + 0x14]
fld dword [ebx + 0x1b1c]
fcompp
fnstsw ax
test ah, 0x41
jne 0x5c01bb50
fxch st(2)
fst dword [ebx + 0x1b1c]
fxch st(2)
fld dword [ebx + 0x1b24]
fcompp
fnstsw ax
test ah, 5
jp 0x5c01bb69
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 0x5c01bb8a
fxch st(1)
fst dword [ebx + 0x1b20]
fxch st(1)
fld dword [ebx + 0x1b28]
fcompp
fnstsw ax
test ah, 5
jp 0x5c01bb9f
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 0x5c01be3a
fld dword [edi + 4]
xor eax, eax
fld dword [edi]
fld dword [edi + 8]
fld dword [ebx + 0x444]
fmul st(2)
fld dword [ebx + 0x454]
fmul st(4)
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 + 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 + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0xe8]
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 + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0xec]
test ecx, ecx
je 0x5c01be25
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 0x5c01bdd6
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 - 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 + 0x1c]
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 + 0x30]
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 + 0x34]
cmp edx, ecx
jb 0x5c01bceb
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 0x5c01bde2
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 0x5c01be31
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 0x5c01c09a
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 0x5c01c079
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 0x5c01c034
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 0x5c01bf50
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 0x5c01c03a
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 0x5c01c07b
fstp st(0)
test esi, 0x2000000
je 0x5c01c091
lea edx, [esp + 0xf0]
mov ecx, edx
call fcn.5c050908
or dword [ebx + 0x5b8], 2
jmp 0x5c01c09c
fstp st(0)
mov ecx, dword [ebx + 0x1a44]
test ecx, 0x400
je 0x5c01c662
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 0x5c01c13b
test ecx, 0x10000
je 0x5c01c0ff
mov eax, dword [esp + 0x80]
test eax, eax
je 0x5c01c0f7
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x5c01c0f9
xor eax, eax
mov dword [ebx + 0x540], eax
test ecx, 0x4000
je 0x5c01c11d
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x5c01c115
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x5c01c117
xor eax, eax
mov dword [ebx + 0x550], eax
test ecx, 0x8000
je 0x5c01c13b
mov eax, dword [esp + 0x78]
test eax, eax
je 0x5c01c133
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x5c01c135
xor eax, eax
mov dword [ebx + 0x570], eax
mov edi, dword [ebx + 0x5c0]
mov edx, ecx
test edi, edi
je 0x5c01c181
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 [0x5c05e150]
call esi
mov edi, dword [edi + 0x58]
add esp, 0x14
test edi, edi
jne 0x5c01c149
mov ecx, dword [ebx + 0x1a44]
mov edx, ecx
fld dword [esp + 0x64]
test ecx, 0x12000
je 0x5c01c3cc
test byte [ebx + 0x5b8], 8
jne 0x5c01c1aa
fst dword [ebx + 0x504]
fst dword [ebx + 0x508]
fstp dword [ebx + 0x50c]
jmp 0x5c01c1ac
fstp st(0)
test ecx, 0x10000
je 0x5c01c273
mov eax, dword [esp + 0x80]
test eax, eax
je 0x5c01c1c9
mov eax, dword [eax]
mov ecx, dword [eax]
jmp 0x5c01c1cb
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 0x5c01c1e5
fadd dword [0x5c0031d0]
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 0x5c01c219
fadd dword [0x5c0031d0]
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 0x5c01c248
fadd dword [0x5c0031d0]
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 0x5c01c2b3
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 0x5c01c378
mov eax, dword [esp + 0x88]
test eax, eax
je 0x5c01c2e0
mov eax, dword [eax]
mov ecx, dword [eax]
jmp 0x5c01c2e2
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 0x5c01c2fc
fadd dword [0x5c0031d0]
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 0x5c01c32a
fadd dword [0x5c0031d0]
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 0x5c01c353
fadd dword [0x5c0031d0]
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 0x5c01c3b1
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 0x5c01c3d2
mov edi, dword [esp + 0x3c]
fstp st(0)
mov ecx, dword [ebx + 0x5b8]
test cl, 8
je 0x5c01c506
test edx, 0x12000
jne 0x5c01c429
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 0x5c01c42f
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 0x5c01c492
xor ecx, ecx
jmp 0x5c01c498
cmp ecx, eax
jle 0x5c01c498
mov ecx, eax
test edx, edx
jns 0x5c01c4a0
xor edx, edx
jmp 0x5c01c4a6
cmp edx, eax
jle 0x5c01c4a6
mov edx, eax
test esi, esi
jns 0x5c01c4ae
xor esi, esi
jmp 0x5c01c4b4
cmp esi, eax
jle 0x5c01c4b4
mov esi, eax
test dword [ebx + 0x1a44], 0x4000
jne 0x5c01c4d0
shl ecx, 8
add ecx, edx
shl ecx, 8
add ecx, dword [ebx + 0x510]
jmp 0x5c01c4ef
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x5c01c4de
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x5c01c4e0
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 0x5c01c540
test edx, 0x4000
jne 0x5c01c51c
mov eax, dword [ebx + 0x5e8]
add eax, dword [ebx + 0x510]
jmp 0x5c01c53a
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x5c01c530
mov eax, dword [eax]
mov esi, dword [eax]
and esi, 0xff000000
jmp 0x5c01c532
xor esi, esi
mov eax, dword [ebx + 0x5e8]
add eax, esi
mov dword [ebx + 0x530], eax
test cl, 4
je 0x5c01c60c
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 0x5c01c5aa
xor ecx, ecx
jmp 0x5c01c5b0
cmp ecx, eax
jle 0x5c01c5b0
mov ecx, eax
test edx, edx
jns 0x5c01c5b8
xor edx, edx
jmp 0x5c01c5be
cmp edx, eax
jle 0x5c01c5be
mov edx, eax
test esi, esi
jns 0x5c01c5c6
xor esi, esi
jmp 0x5c01c5cc
cmp esi, eax
jle 0x5c01c5cc
mov esi, eax
test dword [ebx + 0x1a44], 0x8000
jne 0x5c01c5e8
shl ecx, 8
add ecx, edx
shl ecx, 8
add ecx, dword [ebx + 0x5bc]
jmp 0x5c01c607
mov eax, dword [esp + 0x78]
test eax, eax
je 0x5c01c5f6
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x5c01c5f8
xor eax, eax
shl ecx, 8
and eax, 0xff000000
add ecx, edx
shl ecx, 8
add ecx, eax
lea eax, [ecx + esi]
jmp 0x5c01c652
test edx, 0x100000
jne 0x5c01c658
test dword [ebx + 0x1a60], 0x800
jne 0x5c01c62d
test byte [ebx + 0x1a5c], 0x80
je 0x5c01c650
mov eax, dword [edi]
jmp 0x5c01c652
test edx, 0x8000
jne 0x5c01c63d
mov eax, dword [ebx + 0x5bc]
jmp 0x5c01c652
mov eax, dword [esp + 0x78]
test eax, eax
je 0x5c01c650
mov eax, dword [eax]
mov eax, dword [eax]
and eax, 0xff000000
jmp 0x5c01c652
xor eax, eax
mov dword [ebx + 0x560], eax
mov eax, dword [ebx + 0x1a44]
mov edx, eax
jmp 0x5c01c69d
test byte [ebx + 0x1a5c], 0xc0
mov eax, ecx
mov edx, ecx
je 0x5c01c69d
test byte [ebx + 0x1a5c], 0x40
je 0x5c01c684
mov eax, dword [esp + 0x5c]
mov eax, dword [eax]
mov dword [ebx + 0x530], eax
test byte [ebx + 0x1a5c], 0x80
mov eax, ecx
je 0x5c01c69d
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
mov dword [ebx + 0x560], eax
mov eax, ecx
test eax, 0x100
je 0x5c01c6c0
mov edx, dword [esp + 0x54]
lea eax, [esp + 0xe4]
push eax
mov ecx, ebx
call fcn.5c068cbb
mov eax, dword [ebx + 0x1a44]
mov edx, eax
pop ecx
mov esi, dword [esp + 0x6c]
test eax, eax
js 0x5c01c6df
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 0x5c01c6fb
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 0x5c01ca34
test edx, edx
jne 0x5c01c9b4
test dword [esp + 0x60], 0x200000
jne 0x5c01c9ab
test eax, 0x4010000
jne 0x5c01c78d
xor eax, eax
mov dword [esp + 0x10], eax
cmp dword [ebx + 0x1a88], eax
jbe 0x5c01c9b4
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 0x5c01c757
jmp 0x5c01c9b4
test eax, 0x10000
jne 0x5c01c826
xor ecx, ecx
mov dword [esp + 0x10], ecx
cmp dword [ebx + 0x1a88], ecx
jbe 0x5c01c9b4
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 0x5c01c7dc
push edx
push ecx
push edi
call sub.msvcrt.dll_memcpy
jmp 0x5c01c7fe
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 [0x5c05e150]
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 0x5c01c7b4
jmp 0x5c01c9b4
and dword [esp + 0x10], 0
cmp dword [ebx + 0x1c2c], 0
jbe 0x5c01c9b4
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 0x5c01c862
mov eax, dword [esi - 0x14]
mov ecx, dword [esp + eax*4 + 0x12c]
jmp 0x5c01c948
cmp eax, 0x20000
jne 0x5c01c875
lea ecx, [esp + 0xe4]
jmp 0x5c01c948
cmp eax, 0x10000
jne 0x5c01c888
lea ecx, [esp + 0xf0]
jmp 0x5c01c948
test dword [ebx + 0x1a60], 0x1000000
je 0x5c01c92e
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.5c050908
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 0x5c01c941
lea edx, [esp + 0x114]
lea ecx, [esp + 0xf0]
call fcn.5c01a3b3
lea ecx, [esp + 0x114]
cmp dword [esi], 0
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
je 0x5c01c975
push dword [esi]
mov eax, dword [esi + 4]
push edi
push ecx
mov esi, dword [eax*4 + 0x5c0016b0]
mov ecx, esi
call dword [0x5c05e150]
call esi
mov esi, dword [esp + 0x38]
jmp 0x5c01c97d
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 0x5c01c84c
jmp 0x5c01c9b4
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 0x5c01ccf8
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 0x5c01ccf8
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 0x5c01ca17
mov eax, dword [esp + 0x12c]
jmp 0x5c01ccf4
test edx, edx
jne 0x5c01ccb0
test dword [esp + 0x60], 0x200000
jne 0x5c01cca7
test eax, 0x4010000
jne 0x5c01ca69
push dword [ebx + 0x1a8c]
push dword [esp + 0x2c]
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
jmp 0x5c01ccb0
test eax, 0x10000
jne 0x5c01cb19
mov eax, dword [esp + 0x28]
xor esi, esi
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], esi
cmp dword [ebx + 0x1a88], esi
jbe 0x5c01ccb4
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 0x5c01cae1
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 [0x5c05e150]
call esi
mov esi, dword [esp + 0x20]
jmp 0x5c01cae9
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 0x5c01ca98
jmp 0x5c01ccb0
and dword [esp + 0x10], 0
cmp dword [ebx + 0x1c2c], 0
jbe 0x5c01ccb0
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 0x5c01cb51
mov ecx, dword [eax]
add ecx, dword [esp + 0x28]
jmp 0x5c01cc3f
cmp ecx, 0x20000
jne 0x5c01cb65
lea ecx, [esp + 0xe4]
jmp 0x5c01cc3f
cmp ecx, 0x10000
jne 0x5c01cb79
lea ecx, [esp + 0xf0]
jmp 0x5c01cc3f
test dword [ebx + 0x1a60], 0x1000000
je 0x5c01cc25
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.5c050908
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 0x5c01cc38
lea edx, [esp + 0x120]
lea ecx, [esp + 0xf0]
call fcn.5c01a3b3
lea ecx, [esp + 0x120]
mov edx, dword [eax + 0x10]
mov esi, dword [esi]
mov dword [esp + 0xc], esi
test edx, edx
je 0x5c01cc69
mov eax, dword [eax + 0x14]
push edx
push edi
push ecx
mov esi, dword [eax*4 + 0x5c0016b0]
mov ecx, esi
call dword [0x5c05e150]
call esi
mov esi, dword [esp + 0x18]
jmp 0x5c01cc71
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 0x5c01cb3f
jmp 0x5c01ccb0
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 0x5c01ccf8
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 0x5c01b58c
mov ecx, dword [esp + 0x70]
mov esi, dword [esp + 0x74]
test dword [ebx + 0x1a60], 0x100000
jne 0x5c01ce60
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 0x5c01cde3
fstp dword [ebx + 0x1b1c]
jmp 0x5c01cde5
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 0x5c01ce6e
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 0x5c01ce0d
fstp dword [ebx + 0x1b20]
jmp 0x5c01ce0f
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 0x5c01ce37
fstp dword [ebx + 0x1b24]
jmp 0x5c01ce39
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 0x5c01ce5e
fstp dword [ebx + 0x1b28]
jmp 0x5c01ce60
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.5c0501b0
mov esp, ebp
pop ebp
ret