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

Disassembly:
sub esp, 0xb4
mov eax, dword [ecx + 0x24]
push ebx
push ebp
xor ebp, ebp
push esi
cmp eax, ebp
push edi
mov dword [esp + 0x6c], ecx
je 0x598c41
cmp dword [ecx + 0x20], ebp
je 0x598c41
mov esi, dword [esp + 0xd0]
mov edx, dword [esp + 0xc8]
mov ebx, dword [esp + 0xcc]
mov dword [esp + 0x14], ebp
fld dword [esi + 4]
fsub dword [edx + 4]
fld dword [ebx]
fsub dword [edx]
fmulp st(1)
fld dword [ebx + 4]
fsub dword [edx + 4]
fld dword [esi]
fsub dword [edx]
fmulp st(1)
fsubp st(1)
fcomp dword [0x7cd7b4]
fnstsw ax
test ah, 1
je 0x598647
mov al, byte [ecx + 0x14]
mov byte [esp + 0x13], 1
test al, al
jne 0x59864c
mov eax, dword [ecx + 0x10]
mov edi, 1
cmp eax, edi
je 0x598c41
mov eax, dword [ecx]
mov dword [ecx + 8], eax
jmp 0x598657
mov byte [esp + 0x13], 0
mov eax, dword [ecx + 4]
mov edi, 1
mov dword [ecx + 8], eax
fild dword [ecx + 0x18]
fld dword [edx]
fadd dword [0x7cd794]
fmul st(1)
fmul dword [0x7cd778]
fstp dword [esp + 0x48]
fld dword [ebx]
fadd dword [0x7cd794]
fmul st(1)
fmul dword [0x7cd778]
fstp dword [esp + 0x54]
fld dword [esi]
fadd dword [0x7cd794]
fmul st(1)
fmul dword [0x7cd778]
fstp dword [esp + 0x60]
fstp st(0)
fild dword [ecx + 0x1c]
fld dword [0x7cd794]
fsub dword [edx + 4]
fmul st(1)
fmul dword [0x7cd778]
fstp dword [esp + 0x4c]
fld dword [0x7cd794]
fsub dword [ebx + 4]
fmul st(1)
fmul dword [0x7cd778]
fstp dword [esp + 0x58]
fld dword [0x7cd794]
fsub dword [esi + 4]
fmul st(1)
fmul dword [0x7cd778]
fstp dword [esp + 0x64]
fstp st(0)
fld dword [edx + 8]
fadd dword [0x7dd114]
mov edx, 3
fmul dword [0x7dd110]
fstp dword [esp + 0x50]
fld dword [ebx + 8]
fadd dword [0x7dd114]
fmul dword [0x7dd110]
fstp dword [esp + 0x5c]
fld dword [esi + 8]
fadd dword [0x7dd114]
fmul dword [0x7dd110]
fstp dword [esp + 0x68]
fld dword [esp + 0x4c]
fcomp dword [esp + 0x58]
fld dword [esp + 0x64]
fnstsw ax
test ah, 1
je 0x59878f
fcomp dword [esp + 0x4c]
fnstsw ax
test ah, 1
je 0x598754
mov dword [esp + 0x18], ebp
mov ebx, 2
mov ebp, edi
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], edi
jmp 0x5987e8
fld dword [esp + 0x58]
fcomp dword [esp + 0x64]
xor ebx, ebx
fnstsw ax
test ah, 1
je 0x59877a
mov eax, 2
mov dword [esp + 0x18], edi
mov ebp, eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], eax
jmp 0x5987e8
mov eax, 2
mov ebp, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], edi
jmp 0x5987e8
fcomp dword [esp + 0x58]
fnstsw ax
test ah, 1
je 0x5987b1
mov ebx, 2
mov dword [esp + 0x18], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], 0
jmp 0x5987e8
fld dword [esp + 0x4c]
fcomp dword [esp + 0x64]
mov ebx, edi
fnstsw ax
test ah, 1
je 0x5987d7
mov eax, 2
mov dword [esp + 0x18], ebp
mov ebp, eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], eax
jmp 0x5987e8
mov eax, 2
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], eax
fld dword [esp + 0x4c]
fsub dword [esp + 0x64]
fld dword [esp + 0x54]
fsub dword [esp + 0x60]
fld dword [esp + 0x58]
fsub dword [esp + 0x64]
lea ecx, [esp + 0x34]
lea eax, [esp + 0x50]
fstp dword [esp + 0x28]
fld dword [esp + 0x48]
fsub dword [esp + 0x60]
fld st(1)
fmul st(3)
fld st(1)
fmul dword [esp + 0x28]
fsubp st(1)
fdivr dword [0x7cd794]
fst dword [esp + 0x24]
fchs
fld dword [0x7cd794]
fdiv dword [eax]
add eax, 0xc
add ecx, 4
dec edx
fstp dword [ecx - 4]
jne 0x59882c
fld dword [esp + 0x38]
fsub dword [esp + 0x3c]
fld dword [esp + 0x34]
fsub dword [esp + 0x3c]
fxch st(5)
fmul st(1)
fld dword [esp + 0x28]
fmul st(6)
lea esi, [ebx + ebx*2]
fsubp st(1)
shl esi, 2
fmul dword [esp + 0x24]
lea edi, [esp + esi + 0x4c]
fstp dword [esp + 0x40]
fxch st(2)
fmul st(2)
fxch st(3)
fmul st(4)
fsubp st(3)
fxch st(2)
fmul st(2)
fstp dword [esp + 0x44]
fxch st(2)
fstp st(0)
fxch st(1)
fstp st(0)
fstp st(0)
fld dword [edi]
fstp qword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
push ecx
push edx
call fcn.0078ffae
call fcn.0078c320
lea ebp, [ebp + ebp*2]
mov dword [esp + 0x88], eax
shl ebp, 2
fld dword [esp + ebp + 0x54]
lea eax, [esp + ebp + 0x54]
fstp qword [esp + 0x78]
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x7c]
push eax
push ecx
call fcn.0078ffae
fisub dword [esp + 0x90]
call fcn.0078c320
fild dword [esp + 0x90]
mov edx, dword [esp + 0x34]
lea ebp, [esp + ebp + 0x58]
lea esi, [esp + esi + 0x58]
lea ebx, [esp + ebx*4 + 0x44]
fsub dword [edi]
fld dword [edx]
fsub dword [edi]
fld dword [ebp]
fsub dword [esi]
mov dword [esp + 0x94], eax
mov dword [esp + 0xd0], ebp
mov dword [esp + 0x38], ebx
fld st(0)
fmul st(3)
fdiv st(2)
fadd dword [esi]
fstp dword [esp + 0x88]
fdiv st(1)
fstp dword [esp + 0x8c]
fstp st(0)
fld dword [esp + 0x88]
fsub dword [esi]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
push eax
push ecx
fmul dword [esp + 0x58]
fld dword [esp + 0x5c]
fmul st(2)
faddp st(1)
fadd dword [ebx]
fstp dword [esp + 0xa0]
fstp st(0)
fld dword [esp + 0x94]
fmul dword [esp + 0x58]
fadd dword [esp + 0x5c]
fstp dword [esp + 0xa4]
call fcn.0078ffae
call fcn.0078c320
mov ebp, dword [esp + 0x30]
mov dword [esp + 0xb0], eax
lea ebp, [ebp + ebp*2]
shl ebp, 2
fld dword [esp + ebp + 0x64]
lea ebx, [esp + ebp + 0x64]
fstp qword [esp + 0x44]
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
push edx
push eax
call fcn.0078ffae
fisub dword [esp + 0xb8]
call fcn.0078c320
fild dword [esp + 0xb8]
lea ebp, [esp + ebp + 0x68]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x50]
mov dword [esp + 0xbc], eax
fsub dword [edi]
fld dword [ebx]
fsub dword [edi]
fld dword [ebp]
fsub dword [esi]
mov eax, dword [esp + 0x4c]
push edx
push eax
fld st(0)
fmul st(3)
fdiv st(2)
fadd dword [esi]
fstp dword [esp + 0xb8]
fdiv st(1)
fstp dword [esp + 0xbc]
fstp st(0)
fld dword [esp + 0xb8]
fsub dword [esi]
fmul dword [esp + 0x68]
fld dword [esp + 0x6c]
fmul st(2)
faddp st(1)
fadd dword [ecx]
fstp dword [esp + 0xc8]
fstp st(0)
fld dword [esp + 0xbc]
fmul dword [esp + 0x68]
fadd dword [esp + 0x6c]
fstp dword [esp + 0xcc]
call fcn.0078ffae
call fcn.0078c320
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x98]
push ecx
push edx
mov dword [esp + 0xe0], eax
call fcn.0078ffae
fisub dword [esp + 0xe0]
add esp, 0x30
call fcn.0078c320
fild dword [esp + 0xb0]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc0]
mov dword [esp + 0xb4], eax
fsub dword [ebx]
fld dword [ecx]
fsub dword [ebx]
fld dword [edx]
fsub dword [ebp]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
fld st(0)
fmul st(3)
fdiv st(2)
fadd dword [ebp]
fstp dword [esp + 0xa8]
fdiv st(1)
fstp dword [esp + 0xac]
fstp st(0)
fld dword [esp + 0xa8]
fsub dword [ebp]
fmul dword [esp + 0x40]
fadd dword [esp + ecx*4 + 0x34]
fld dword [esp + 0x44]
fmul st(2)
mov ecx, dword [esp + 0x1c]
cmp ecx, edx
mov cl, byte [esp + 0x13]
faddp st(1)
fstp dword [esp + 0xb8]
fstp st(0)
fld dword [esp + 0xac]
fmul dword [esp + 0x40]
fadd dword [esp + 0x44]
fstp dword [esp + 0xbc]
jle 0x598aed
xor cl, 1
test cl, cl
mov byte [esp + 0x13], cl
je 0x598b02
lea esi, [esp + 0x90]
lea edi, [esp + 0x78]
jmp 0x598b0d
lea esi, [esp + 0x78]
lea edi, [esp + 0x90]
mov ecx, dword [esp + 0x9c]
test ecx, ecx
je 0x598b93
lea ebx, [ecx]
mov ebp, dword [esp + 0x6c]
push edi
push esi
mov eax, dword [ebp + 0x10]
test eax, eax
jne 0x598b35
lea edx, [esp + 0x3c]
mov ecx, ebp
push edx
call fcn.00598c50
jmp 0x598b41
lea eax, [esp + 0x3c]
mov ecx, ebp
push eax
call fcn.00598db0
fld dword [esi + 4]
fadd dword [esi]
mov ecx, dword [esp + 0x14]
add ecx, eax
mov eax, dword [esi + 0xc]
mov dword [esp + 0x14], ecx
mov ecx, dword [esi + 8]
fstp dword [esi]
fld dword [esi + 0x10]
fadd dword [esi + 0x14]
inc ecx
dec eax
mov dword [esi + 8], ecx
mov dword [esi + 0xc], eax
fstp dword [esi + 0x10]
fld dword [edi]
fadd dword [edi + 4]
mov edx, dword [edi + 8]
mov ecx, dword [edi + 0xc]
inc edx
dec ecx
dec ebx
mov dword [edi + 8], edx
fstp dword [edi]
fld dword [edi + 0x10]
fadd dword [edi + 0x14]
mov dword [edi + 0xc], ecx
fstp dword [edi + 0x10]
jne 0x598b1a
mov eax, dword [esp + 0xb4]
jmp 0x598b97
mov ebp, dword [esp + 0x6c]
mov cl, byte [esp + 0x13]
test cl, cl
je 0x598bac
lea esi, [esp + 0xa8]
lea edi, [esp + 0x78]
jmp 0x598bb7
lea esi, [esp + 0x78]
lea edi, [esp + 0xa8]
test eax, eax
je 0x598c29
lea ebx, [eax]
mov eax, dword [ebp + 0x10]
push edi
test eax, eax
push esi
jne 0x598bd4
lea ecx, [esp + 0x3c]
push ecx
mov ecx, ebp
call fcn.00598c50
jmp 0x598be0
lea edx, [esp + 0x3c]
mov ecx, ebp
push edx
call fcn.00598db0
fld dword [esi + 4]
fadd dword [esi]
mov ecx, dword [esp + 0x14]
add ecx, eax
mov eax, dword [esi + 0xc]
mov dword [esp + 0x14], ecx
mov ecx, dword [esi + 8]
fstp dword [esi]
fld dword [esi + 0x10]
fadd dword [esi + 0x14]
inc ecx
dec eax
mov dword [esi + 8], ecx
mov dword [esi + 0xc], eax
fstp dword [esi + 0x10]
fld dword [edi]
fadd dword [edi + 4]
mov edx, dword [edi + 8]
mov ecx, dword [edi + 0xc]
inc edx
dec ecx
dec ebx
mov dword [edi + 8], edx
fstp dword [edi]
fld dword [edi + 0x10]
fadd dword [edi + 0x14]
mov dword [edi + 0xc], ecx
fstp dword [edi + 0x10]
jne 0x598bbd
mov ecx, dword [esp + 0x14]
xor eax, eax
pop edi
pop esi
test ecx, ecx
pop ebp
pop ebx
setg al
add esp, 0xb4
ret 0xc
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0xb4
ret 0xc