Function at 0x5d8e60
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x60
push ebx
push ebp
push esi
mov esi, dword [esp + 0x70]
fld dword [esi + 0xc]
mov eax, dword [esi + 4]
fsub dword [esi + 0x18]
mov ebp, ecx
shr eax, 4
and eax, 1
fstp dword [esp + 0x54]
push edi
fld dword [esi + 0x10]
mov dword [esp + 0x44], eax
fsub dword [esi + 0x1c]
fstp dword [esp + 0x5c]
fld dword [esp + 0x58]
fld st(0)
fsub dword [ebp + 0xc8]
fld qword [0x7ba0d8]
fmul st(1), st(0)
fxch st(1)
call fcn.007364a0
fld dword [esp + 0x5c]
fld st(0)
mov edi, eax
fsub dword [ebp + 0xc4]
mov dword [esp + 0x14], edi
fmulp st(2)
fxch st(1)
call fcn.007364a0
fild dword [esp + 0x14]
fld qword [0x7a45f8]
mov dword [esp + 0x74], eax
mov edx, dword [esi + 0x28]
fmul st(1), st(0)
mov ecx, dword [esi + 0x2c]
fld dword [ebp + 0xc8]
add edx, edi
xor edi, edi
faddp st(2)
add ecx, eax
fxch st(1)
cmp edi, dword [ebp + 0x30c]
mov dword [esp + 0x38], edx
fstp dword [esp + 0x58]
sbb edi, edi
fild dword [esp + 0x74]
neg edi
mov dword [esp + 0x54], ecx
mov dword [esp + 0x48], edi
fmul st(1)
fadd dword [ebp + 0xc4]
fstp dword [esp + 0x5c]
fld dword [esi + 0x20]
fdivr st(1)
fstp dword [esp + 0x4c]
fld dword [esi + 0x24]
fdivr qword [0x7dbb00]
fstp dword [esp + 0x3c]
fld dword [esp + 0x58]
fld st(0)
fsubp st(4)
fld dword [esi + 0x20]
fdivp st(4)
fldz
fsubrp st(4)
fxch st(3)
fstp dword [esp + 0x60]
fld dword [esp + 0x5c]
fld st(0)
fsubp st(3)
fld dword [esi + 0x24]
fdivp st(3)
fxch st(2)
fadd qword [0x798898]
fstp dword [esp + 0x64]
fld dword [0x83e654]
fst dword [esp + 0x2c]
fchs
fstp dword [esp + 0x30]
xor ebx, ebx
cmp eax, ecx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x10], eax
jg 0x5d9229
fstp st(2)
mov dword [esp + 0x28], ebx
fstp st(0)
mov edi, dword [esp + 0x14]
cmp edi, edx
mov dword [esp + 0x74], edi
jg 0x5d920b
fild dword [esp + 0x10]
lea edi, [ebx + ebx*2]
add edi, edi
mov dword [esp + 0x24], 0
fmul st(1)
add edi, edi
fstp qword [esp + 0x68]
fild dword [esp + 0x28]
fmul dword [esp + 0x3c]
fadd dword [esp + 0x64]
fstp dword [esp + 0x50]
mov ecx, dword [ebp + 0xb4]
mov edx, dword [esp + 0x74]
cmp edx, ecx
jbe 0x5d8fd8
sar edx, 0x1f
not edx
and edx, ecx
mov dword [esp + 0x18], edx
jmp 0x5d8fdc
mov dword [esp + 0x18], edx
cmp eax, dword [ebp + 0xb8]
jbe 0x5d8ff7
mov ecx, eax
sar ecx, 0x1f
not ecx
and ecx, dword [ebp + 0xb8]
mov dword [esp + 0x1c], ecx
jmp 0x5d8ffd
mov dword [esp + 0x1c], eax
mov ecx, eax
mov eax, dword [ebp + 0xb4]
fild dword [esp + 0x74]
add eax, 1
imul eax, ecx
fmul st(1)
fadd dword [ebp + 0xc8]
fstp dword [esp + 0x40]
fld dword [esp + 0x40]
add eax, edx
mov edx, dword [ebp + 0xe4]
lea ecx, [eax*8]
sub ecx, eax
cmp dword [esp + 0x44], 0
lea eax, [edx + ecx*4]
mov ecx, dword [esi + 0x58]
mov dword [esp + 0x34], eax
fstp dword [edi + ecx]
mov edx, dword [esi + 0x58]
fld dword [ebp + 0xc4]
fadd qword [esp + 0x68]
fstp dword [esp + 0x40]
fld dword [esp + 0x40]
fstp dword [edx + edi + 4]
je 0x5d9075
fld dword [esi + 0x14]
mov eax, dword [esi + 0x58]
fadd dword [esi + 8]
fstp dword [esp + 0x40]
fld dword [esp + 0x40]
fstp dword [eax + edi + 8]
jmp 0x5d9154
mov ebx, dword [esi + 0x58]
fstp st(0)
push 7
push eax
mov ecx, ebp
add ebx, edi
call fcn.005fe110
fstp dword [ebx + 8]
test dword [esi + 4], 0x200
je 0x5d90ff
cmp dword [esp + 0x48], 0
je 0x5d90ff
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx + 4]
mov eax, dword [ebp + 0x310]
mov ecx, dword [esi + 0x58]
shr edx, 9
and edx, 0x7ffe00
or edx, 0x45800000
mov dword [esp + 0x40], edx
fld dword [esp + 0x40]
lea ecx, [ecx + edi + 8]
fsub qword [0x7ad320]
fstp dword [esp + 0x40]
fld dword [esp + 0x40]
fadd dword [eax + 0x108]
fstp dword [esp + 0x40]
fld dword [esp + 0x40]
fadd qword [0x79e5a8]
fstp dword [esp + 0x40]
fld dword [esp + 0x40]
fld dword [ecx]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x5d90fd
fstp dword [ecx]
jmp 0x5d90ff
fstp st(0)
mov eax, dword [ebp + 0xb4]
mov edx, dword [esp + 0x18]
cmp edx, eax
jae 0x5d914a
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [ebp + 0xb8]
jae 0x5d914a
add eax, 1
imul eax, ecx
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, dword [ebp + 0xe4]
test byte [eax + edx*4 + 0xc], 8
je 0x5d914a
mov ecx, dword [esi + 0x58]
fld dword [ecx + edi + 8]
lea eax, [ecx + edi + 8]
fadd qword [0x7bd238]
fstp dword [eax]
mov ebx, dword [esp + 0x20]
fld qword [0x7a45f8]
mov edx, dword [esi + 0x58]
mov ecx, dword [esi]
fld dword [ecx*4 + 0x83e658]
lea eax, [edx + edi + 8]
fadd dword [eax]
fstp dword [eax]
mov edx, dword [esi + 0x58]
fld dword [esp + 0x2c]
lea ecx, [edx + edi + 8]
fld dword [ecx]
fcompp
fnstsw ax
test ah, 0x41
je 0x5d9184
fld dword [ecx]
fstp dword [esp + 0x2c]
fld dword [esp + 0x30]
fld dword [ecx]
fcompp
fnstsw ax
test ah, 5
jnp 0x5d9199
fld dword [ecx]
fstp dword [esp + 0x30]
mov eax, dword [esi + 0x68]
fild dword [esp + 0x24]
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx + 0x10]
fmul dword [esp + 0x4c]
add dword [esp + 0x24], 1
add eax, edi
mov dword [eax], edx
mov edx, dword [ecx + 0x14]
fadd dword [esp + 0x60]
add ecx, 0x10
mov dword [eax + 4], edx
mov ecx, dword [ecx + 8]
fstp dword [esp + 0x40]
fld dword [esp + 0x40]
mov dword [eax + 8], ecx
mov edx, dword [esi + 0x78]
fstp dword [edx + ebx*8]
mov eax, dword [esi + 0x78]
fld dword [esp + 0x50]
add ebx, 1
fstp dword [eax + ebx*8 - 4]
mov eax, dword [esp + 0x74]
add eax, 1
add edi, 0xc
cmp eax, dword [esp + 0x38]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], ebx
jle 0x5d8fbd
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x54]
add dword [esp + 0x28], 1
add eax, 1
cmp eax, ecx
mov dword [esp + 0x10], eax
jle 0x5d8f84
fld dword [esp + 0x5c]
fld dword [esp + 0x58]
fxch st(2)
test dword [esi + 4], 0x400
fxch st(2)
fst dword [esi + 0x30]
fxch st(1)
fst dword [esi + 0x34]
fild dword [esi + 0x28]
fmul st(3)
faddp st(2)
fxch st(1)
fstp dword [esi + 0x3c]
fild dword [esi + 0x2c]
fmulp st(2)
faddp st(1)
fstp dword [esi + 0x40]
fld dword [esp + 0x2c]
fstp dword [esi + 0x38]
fld dword [esp + 0x30]
fstp dword [esi + 0x44]
je 0x5d9268
push esi
mov ecx, ebp
call fcn.005d8b30
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret 4