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

Disassembly:
push ebx
push esi
push edi
push ebp
sub esp, 0x30
cmp word [0xa10a6c], 0x28
mov ebp, ecx
jb 0x59aae0
xor eax, eax
add esp, 0x30
pop ebp
pop edi
pop esi
pop ebx
ret 8
mov dword [esp + 0x14], 0
lea eax, [esp + 0x14]
push eax
mov eax, dword [esp + 0x48]
mov eax, dword [ebp + eax*4 + 0x394]
push 0x59f200
push eax
call fcn.00645400
add esp, 0xc
cmp dword [esp + 0x14], 0
jne 0x59ab20
xor eax, eax
add esp, 0x30
pop ebp
pop edi
pop esi
pop ebx
ret 8
push 0x194
call fcn.004e4090
mov ebx, eax
pop ecx
test ebx, ebx
je 0x59ab3a
mov ecx, ebx
call fcn.004e4240
mov ebx, eax
test ebx, ebx
jne 0x59ab50
xor eax, eax
add esp, 0x30
pop ebp
pop edi
pop esi
pop ebx
ret 8
cmp dword [esp + 0x44], 0x13
jne 0x59ab61
push 0xf3
jmp 0x59ac29
mov edx, dword [esp + 0x48]
mov eax, edx
cmp eax, 5
ja case.0x59ab70.5
jmp dword [eax*4 + 0x69ab38]
mov ecx, ebx
mov esi, dword [ecx]
push 0xf5
call dword [esi + 0x10]
jmp 0x59ac30
mov ecx, ebx
mov edi, dword [ecx]
push 0xf3
call dword [edi + 0x10]
mov dword [ebx + 0xd0], 0
mov dword [ebx + 0xd4], 0x3ecccccd
mov dword [ebx + 0xd8], 0
jmp 0x59ac30
mov ecx, ebx
mov esi, dword [ecx]
push 0xf4
call dword [esi + 0x10]
mov dword [ebx + 0xd0], 0
mov dword [ebx + 0xd4], 0xbe99999a
mov dword [ebx + 0xd8], 0
jmp 0x59ac30
mov ecx, ebx
mov edi, dword [ecx]
push 0xf0
call dword [edi + 0x10]
mov dword [ebx + 0xd0], 0
mov dword [ebx + 0xd4], 0xbf000000
mov dword [ebx + 0xd8], 0
mov al, byte [ebx + 0x54]
and al, 0xef
or al, 0x10
mov byte [ebx + 0x54], al
jmp 0x59ac30
mov ecx, ebx
mov esi, dword [ecx]
push 0xf1
call dword [esi + 0x10]
jmp 0x59ac30
push 0xf2
mov ecx, ebx
mov edi, dword [ecx]
call dword [edi + 0x10]
movsx eax, word [ebp + 0x5c]
mov ecx, ebx
push eax
call fcn.004e0990
mov eax, dword [esp + 0x44]
mov eax, dword [ebp + eax*4 + 0x394]
push eax
call fcn.00644dd0
pop ecx
mov esi, eax
call fcn.00644af0
mov edi, eax
mov eax, dword [esp + 0x14]
push eax
call fcn.00641020
mov dword [esp + 0x18], eax
pop ecx
fld dword [esi]
fstp dword [edi + 0x10]
fld dword [esi + 4]
fstp dword [edi + 0x14]
fld dword [esi + 8]
fstp dword [edi + 0x18]
mov eax, dword [esi + 0xc]
push edi
mov dword [edi + 0x1c], eax
fld dword [esi + 0x10]
fstp dword [edi + 0x20]
fld dword [esi + 0x14]
fstp dword [edi + 0x24]
fld dword [esi + 0x18]
fstp dword [edi + 0x28]
mov eax, dword [esi + 0x1c]
mov dword [edi + 0x2c], eax
fld dword [esi + 0x20]
fstp dword [edi + 0x30]
fld dword [esi + 0x24]
fstp dword [edi + 0x34]
fld dword [esi + 0x28]
fstp dword [edi + 0x38]
mov eax, dword [esi + 0x2c]
mov dword [edi + 0x3c], eax
fld dword [esi + 0x30]
fstp dword [edi + 0x40]
fld dword [esi + 0x34]
fstp dword [edi + 0x44]
fld dword [esi + 0x38]
fstp dword [edi + 0x48]
mov eax, dword [esi + 0x3c]
mov dword [edi + 0x4c], eax
mov eax, dword [esp + 0x18]
push eax
call fcn.00642410
mov eax, dword [esp + 0x1c]
pop ecx
pop ecx
push 0
push eax
call fcn.00581960
mov eax, dword [esp + 0x1c]
pop ecx
pop ecx
push eax
mov ecx, ebx
call fcn.004897c0
mov al, byte [ebx + 0x55]
and al, 0xef
or al, 0x10
mov byte [ebx + 0x55], al
mov dword [ebx + 0xb8], 0x41200000
mov dword [ebx + 0xbc], 0x41c80000
mov dword [ebx + 0xc4], 0x3f7851ec
mov dword [ebx + 0xc8], 0x3dcccccd
fldz
fldz
fld dword [0x69a8ac]
fmul dword [ebx + 0xb8]
fmul dword [0x69a8d4]
fstp dword [ebx + 0xcc]
mov byte [ebx + 0x16c], 3
mov al, byte [ebx + 0x51]
and al, 0xfb
mov byte [ebx + 0x51], al
mov al, byte [ebx + 0x16d]
and al, 0xfe
mov byte [ebx + 0x16d], al
mov al, byte [ebx + 0x16d]
and al, 0x7f
or al, 0x80
mov byte [ebx + 0x16d], al
mov al, byte [ebp + 0x1a0]
mov byte [ebx + 0x190], al
mov al, byte [ebp + 0x1a1]
mov byte [ebx + 0x191], al
inc word [0xa10a6c]
cmp word [0xa10a6c], 0x14
jbe 0x59add4
mov eax, dword [0x974b34]
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
fild qword [esp + 8]
fadd dword [0x69a8d8]
fnstcw word [esp + 4]
mov eax, dword [esp + 4]
or byte [esp + 5], 0xc
fldcw word [esp + 4]
mov dword [esp + 4], eax
fistp qword [esp + 8]
fldcw word [esp + 4]
mov eax, dword [esp + 8]
mov dword [ebx + 0x180], eax
jmp 0x59ae30
cmp word [0xa10a6c], 0xa
jbe 0x59ae20
mov eax, dword [0x974b34]
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
fild qword [esp + 8]
fadd dword [0x69a8dc]
fnstcw word [esp + 4]
mov eax, dword [esp + 4]
or byte [esp + 5], 0xc
fldcw word [esp + 4]
mov dword [esp + 4], eax
fistp qword [esp + 8]
fldcw word [esp + 4]
mov eax, dword [esp + 8]
jmp 0x59ae2a
mov eax, dword [0x974b34]
add eax, 0x4e20
mov dword [ebx + 0x180], eax
fld dword [ebp + 0x70]
fstp dword [ebx + 0x70]
fld dword [ebp + 0x74]
fstp dword [ebx + 0x74]
fld dword [ebp + 0x78]
fstp dword [ebx + 0x78]
fld dword [ebx + 0x78]
fcomp dword [0x69a5e4]
fnstsw ax
test ah, 0x45
jne 0x59ae60
fld dword [ebx + 0x78]
fmul dword [0x69a6c8]
jmp 0x59aea9
fld dword [ebp + 0x2c]
fcomp qword [0x69a8e0]
fnstsw ax
test ah, 0x45
jne 0x59aea0
mov eax, dword [esp + 0x48]
add eax, 0xfffffffd
cmp eax, 1
jbe 0x59ae83
cmp dword [esp + 0x44], 0x13
jne 0x59aea0
fld dword [ebx + 0x78]
fmul dword [0x69a8e8]
fstp dword [ebx + 0x78]
fld dword [ebx + 0x78]
fadd dword [0x69a614]
jmp 0x59aea9
fld dword [ebx + 0x78]
fmul dword [0x69a618]
fstp dword [ebx + 0x78]
fld dword [ebx + 0x70]
fmul dword [0x69a834]
fstp dword [ebx + 0x70]
fld dword [ebx + 0x74]
fmul dword [0x69a834]
fstp dword [ebx + 0x74]
fld dword [0x69a644]
fmul dword [ebp + 0x84]
fstp st(1)
fld dword [0x69a644]
fmul dword [ebp + 0x80]
fstp st(2)
fld dword [0x69a644]
fmul dword [ebp + 0x7c]
fstp dword [ebx + 0x7c]
fld st(1)
fstp dword [ebx + 0x80]
fst dword [ebx + 0x84]
mov dword [esp], ebp
add dword [esp], 4
add dword [esp], 0x30
lea ecx, [ebx + 0x34]
fld dword [ecx]
mov eax, dword [esp]
lea edi, [esp + 0x18]
fsub dword [eax]
fstp dword [esp + 0x24]
fld dword [ecx + 4]
fsub dword [eax + 4]
lea esi, [esp + 0x24]
fstp dword [esp + 0x28]
fld dword [ecx + 8]
fsub dword [eax + 8]
fstp dword [esp + 0x2c]
movsd dword es:[edi], dword [esi]
fcompp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x18]
call fcn.004dfec0
mov eax, dword [esp + 0x48]
add eax, 0xfffffffd
cmp eax, 1
fldz
fldz
fldz
jbe 0x59af56
cmp dword [esp + 0x44], 0x13
jne 0x59afd1
lea esi, [ebp + 0x24]
fld dword [esp + 0x18]
mov eax, esi
fadd dword [eax]
fstp dword [esp + 0x18]
fld dword [esp + 0x1c]
fadd dword [eax + 4]
fstp dword [esp + 0x1c]
fld dword [esp + 0x20]
fadd dword [eax + 8]
fstp dword [esp + 0x20]
fld dword [ebp + 0x2c]
fcomp dword [0x69a5e4]
fnstsw ax
test ah, 0x45
jne 0x59afd1
fld dword [ebp + 0x74]
fstp st(3)
fld st(2)
fmul st(0)
fld dword [ebp + 0x70]
fstp st(4)
fld st(3)
fmul st(0)
faddp st(1)
fsqrt
fstp dword [esp + 8]
fld dword [esp + 8]
fst st(1)
fmul dword [esi + 8]
fstp st(2)
fld st(0)
fmul dword [esi + 4]
fstp st(3)
fld st(0)
fmul dword [esi]
fadd dword [ebx + 0x34]
fstp dword [ebx + 0x34]
fld dword [ebx + 0x38]
fadd st(3)
fstp dword [ebx + 0x38]
fld dword [ebx + 0x3c]
fadd st(2)
fstp dword [ebx + 0x3c]
fcompp
mov ecx, ebx
push dword [esp + 0x20]
push dword [esp + 0x20]
push dword [esp + 0x20]
fstp st(0)
call fcn.004bade0
cmp dword [esp + 0x48], 1
jne 0x59b00a
mov dword [ebx + 0xbc], 0x40a00000
mov dword [ebx + 0x7c], 0x3f000000
mov dword [ebx + 0xc4], 0x3f7d70a4
mov dl, byte [ebp + 0x50]
shr dl, 3
movzx eax, dl
cmp eax, 5
jne 0x59b0f1
mov ecx, ebp
call fcn.00488720
test al, al
fldz
fldz
fldz
je 0x59b160
mov esi, 0x7e46c0
mov eax, dword [esp]
mov ecx, esi
fld dword [ecx + 8]
fsub dword [eax + 8]
fstp st(1)
fld dword [ecx + 4]
fsub dword [eax + 4]
fstp st(2)
fld dword [ecx]
fsub dword [eax]
fstp st(3)
fld dword [esp + 0x1c]
fmul st(2)
fld dword [esp + 0x18]
fmul st(4)
faddp st(1)
fld dword [esp + 0x20]
fmul st(2)
faddp st(1)
fcomp dword [0x69a8b0]
fnstsw ax
test ah, 0x45
jne 0x59b166
mov eax, dword [esp]
fld dword [esi + 8]
fsub dword [eax + 8]
mov eax, dword [esp]
fstp st(2)
fld dword [esi + 4]
fsub dword [eax + 4]
mov eax, dword [esp]
fstp st(3)
fld dword [esi]
fsub dword [eax]
fstp dword [esp + 0x18]
fld st(2)
fstp dword [esp + 0x1c]
fld st(1)
fstp dword [esp + 0x20]
fcompp
lea ecx, [esp + 0x18]
fstp st(0)
call fcn.004dfec0
fld dword [esp + 0x20]
fadd dword [0x69a624]
push eax
mov ecx, ebx
fstp dword [esp + 0x24]
fld dword [0x69a5f8]
fmul dword [esp + 0x24]
fstp dword [esp]
fld dword [0x69a5f8]
fmul dword [esp + 0x20]
push eax
fstp dword [esp]
fld dword [0x69a5f8]
fmul dword [esp + 0x20]
push eax
fstp dword [esp]
call fcn.004bade0
movsx edi, word [ebp + 0x5c]
movsx ecx, word [ebx + 0x5c]
push 0
mov eax, dword [edi*4 + 0x92d4d0]
mov esi, dword [eax + 0x1c]
lea eax, [ebp + 4]
push 0
push 0x811b98
push esi
push eax
mov eax, dword [ecx*4 + 0x92d4d0]
mov edx, dword [eax + 0x1c]
lea eax, [ebx + 4]
push edx
push eax
call fcn.00410970
add esp, 0x1c
test eax, eax
jle 0x59b132
mov dword [ebx + 0x18c], ebp
mov al, byte [ebp + 0x52]
shr al, 4
and al, 1
cmp al, 1
jne 0x59b148
mov al, byte [ebx + 0x52]
and al, 0xef
or al, 0x10
mov byte [ebx + 0x52], al
push ebx
call fcn.004db410
pop ecx
mov eax, ebx
add esp, 0x30
pop ebp
pop edi
pop esi
pop ebx
ret 8
fcompp
fstp st(0)
jmp 0x59b0f1
fcompp
fstp st(0)
jmp 0x59b0f1