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

Disassembly:
push ebx
push esi
push edi
push ebp
sub esp, 0x30
cmp word [0xa10a64], 0x28
mov ebp, ecx
jb 0x59aac0
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 0x59f1e0
push eax
call fcn.006453b0
add esp, 0xc
cmp dword [esp + 0x14], 0
jne 0x59ab00
xor eax, eax
add esp, 0x30
pop ebp
pop edi
pop esi
pop ebx
ret 8
push 0x194
call fcn.004e4070
mov ebx, eax
pop ecx
test ebx, ebx
je 0x59ab1a
mov ecx, ebx
call fcn.004e4220
mov ebx, eax
test ebx, ebx
jne 0x59ab30
xor eax, eax
add esp, 0x30
pop ebp
pop edi
pop esi
pop ebx
ret 8
cmp dword [esp + 0x44], 0x13
jne 0x59ab41
push 0xf3
jmp 0x59ac09
mov edx, dword [esp + 0x48]
mov eax, edx
cmp eax, 5
ja case.0x59ab50.5
jmp dword [eax*4 + 0x69ab38]
mov ecx, ebx
mov esi, dword [ecx]
push 0xf5
call dword [esi + 0x10]
jmp 0x59ac10
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 0x59ac10
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 0x59ac10
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 0x59ac10
mov ecx, ebx
mov esi, dword [ecx]
push 0xf1
call dword [esi + 0x10]
jmp 0x59ac10
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.004e0970
mov eax, dword [esp + 0x44]
mov eax, dword [ebp + eax*4 + 0x394]
push eax
call fcn.00644d80
pop ecx
mov esi, eax
call fcn.00644aa0
mov edi, eax
mov eax, dword [esp + 0x14]
push eax
call fcn.00640fd0
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.006423c0
mov eax, dword [esp + 0x1c]
pop ecx
pop ecx
push 0
push eax
call fcn.00581940
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 [0xa10a64]
cmp word [0xa10a64], 0x14
jbe 0x59adb4
mov eax, dword [0x974b2c]
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 0x59ae10
cmp word [0xa10a64], 0xa
jbe 0x59ae00
mov eax, dword [0x974b2c]
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 0x59ae0a
mov eax, dword [0x974b2c]
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 0x59ae40
fld dword [ebx + 0x78]
fmul dword [0x69a6c8]
jmp 0x59ae89
fld dword [ebp + 0x2c]
fcomp qword [0x69a8e0]
fnstsw ax
test ah, 0x45
jne 0x59ae80
mov eax, dword [esp + 0x48]
add eax, 0xfffffffd
cmp eax, 1
jbe 0x59ae63
cmp dword [esp + 0x44], 0x13
jne 0x59ae80
fld dword [ebx + 0x78]
fmul dword [0x69a8e8]
fstp dword [ebx + 0x78]
fld dword [ebx + 0x78]
fadd dword [0x69a614]
jmp 0x59ae89
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.004dfea0
mov eax, dword [esp + 0x48]
add eax, 0xfffffffd
cmp eax, 1
fldz
fldz
fldz
jbe 0x59af36
cmp dword [esp + 0x44], 0x13
jne 0x59afb1
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 0x59afb1
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.004badc0
cmp dword [esp + 0x48], 1
jne 0x59afea
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 0x59b0d1
mov ecx, ebp
call fcn.00488720
test al, al
fldz
fldz
fldz
je 0x59b140
mov esi, 0x7e46b8
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 0x59b146
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.004dfea0
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.004badc0
movsx edi, word [ebp + 0x5c]
movsx ecx, word [ebx + 0x5c]
push 0
mov eax, dword [edi*4 + 0x92d4c8]
mov esi, dword [eax + 0x1c]
lea eax, [ebp + 4]
push 0
push 0x811b90
push esi
push eax
mov eax, dword [ecx*4 + 0x92d4c8]
mov edx, dword [eax + 0x1c]
lea eax, [ebx + 4]
push edx
push eax
call fcn.00410970
add esp, 0x1c
test eax, eax
jle 0x59b112
mov dword [ebx + 0x18c], ebp
mov al, byte [ebp + 0x52]
shr al, 4
and al, 1
cmp al, 1
jne 0x59b128
mov al, byte [ebx + 0x52]
and al, 0xef
or al, 0x10
mov byte [ebx + 0x52], al
push ebx
call fcn.004db3f0
pop ecx
mov eax, ebx
add esp, 0x30
pop ebp
pop edi
pop esi
pop ebx
ret 8
fcompp
fstp st(0)
jmp 0x59b0d1
fcompp
fstp st(0)
jmp 0x59b0d1