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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xc4
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
movzx eax, word [edi + 0x20]
mov esi, dword [edi + 0x2c]
push 0x3f800000
push eax
lea edx, [esp + 0x38]
push edx
lea eax, [esp + 0x9c]
push eax
push esi
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x64], 0x3f800000
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0x3f800000
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0x3f800000
mov dword [esp + 0x90], 0
mov dword [esp + 0xa0], 0x3f800000
mov dword [esp + 0x94], 0x43a00000
mov dword [esp + 0x98], 0x43700000
mov dword [esp + 0x9c], 0
call fcn.005848b0
lea ecx, [esp + 0x90]
push ecx
lea edx, [esp + 0x54]
mov dword [esp + 0x2c], eax
push edx
mov eax, ecx
push eax
call fcn.0045ecf0
mov ecx, dword [edi + 0x24]
push 0
push 1
push ecx
call fcn.00503400
mov ebx, dword [ebp + 0xc]
add esp, 0x18
test ebx, ebx
mov dword [esp + 0x20], eax
jne 0x59a614
mov ecx, dword [esp + 0x18]
push eax
push edi
call fcn.00591ab0
mov ebx, eax
jmp 0x59a61f
mov edx, dword [ebp + 0x10]
push edx
mov ecx, ebx
call fcn.00591a00
mov ecx, dword [esp + 0x20]
movsx eax, word [ecx + 0x44]
test eax, eax
movsx edx, word [ecx + 0x46]
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
jge 0x59a63d
fadd dword [0x891214]
test edx, edx
mov dword [esp + 0x1c], edx
fild dword [esp + 0x1c]
jge 0x59a64f
fadd dword [0x891214]
test eax, eax
fstp dword [esp + 0x18]
je 0x59a66f
dec eax
shr eax, 1
test eax, eax
mov ecx, 2
je 0x59a66b
shr eax, 1
shl ecx, 1
test eax, eax
jne 0x59a663
mov edi, ecx
jmp 0x59a671
xor edi, edi
test edx, edx
je 0x59a68f
lea eax, [edx - 1]
shr eax, 1
test eax, eax
mov ecx, 2
je 0x59a68b
shr eax, 1
shl ecx, 1
test eax, eax
jne 0x59a683
mov eax, ecx
jmp 0x59a691
xor eax, eax
test edi, edi
mov dword [esp + 0x1c], edi
fild dword [esp + 0x1c]
jge 0x59a6a3
fadd dword [0x891214]
test eax, eax
fdivp st(1)
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
jge 0x59a6b7
fadd dword [0x891214]
mov eax, dword [esp + 0x30]
fdivr dword [esp + 0x18]
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [esp + 0x3c]
sar ecx, 1
shl eax, 8
or ecx, eax
mov eax, dword [esp + 0x34]
cdq
sub eax, edx
shl ecx, 8
sar eax, 1
or ecx, eax
mov eax, dword [esp + 0x38]
cdq
shl ecx, 8
sub eax, edx
mov edx, dword [esp + 0x28]
sar eax, 1
or ecx, eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], ecx
lea edi, [ebx + 0x30]
mov ecx, 0x10
lea eax, [esp + 0x40]
fld st(1)
fmul dword [esi + 0x44]
fstp dword [esp + 0x1c]
fxch st(1)
fmul dword [esi + 0x4c]
fstp dword [esp + 0x2c]
fld st(0)
fmul dword [esi + 0x48]
fstp dword [esp + 0x24]
fmul dword [esi + 0x50]
lea esi, [esp + 0x90]
rep movsd dword es:[edi], dword [esi]
fstp dword [esp + 0x18]
mov ecx, dword [ebp + 0x10]
push ecx
mov ecx, dword [esp + 0x1c]
push edx
mov edx, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
push eax
push ecx
push 0x3f800000
push 0x3f000000
push 0x3f000000
push 0xbf000000
push 0xbf000000
mov ecx, ebx
call fcn.00591460
mov edx, dword [esp + 0x20]
mov ecx, ebx
mov dword [ebx + 0x14], edx
call fcn.00582c70
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc