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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x74
fld dword [0x659efc]
push ebx
push esi
mov esi, dword [ecx + 0x30]
mov ecx, dword [ecx + 0x34]
shl ecx, 2
xor edx, edx
test ecx, ecx
mov ebx, esi
push edi
mov dword [esp + 0x40], 0xff7fffff
mov dword [esp + 0x44], 0xff7fffff
mov dword [esp + 0x48], 0xff7fffff
mov dword [esp + 0x2c], esi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ecx
jle 0x5202bd
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dword [esp + 0x18], ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], eax
mov esi, 3
lea edi, [ebx + 0x18]
jmp 0x5200d0
mov ebx, dword [esp + 0x24]
fld dword [esp + 0x18]
mov cl, 1
fmul dword [ebx]
mov byte [esp + 0x17], cl
fld dword [esp + 0x18]
fmul dword [edi - 0x14]
fld dword [esp + 0x18]
fmul dword [edi - 0x10]
fstp dword [esp + 0x68]
fld dword [esp + 0x18]
fmul dword [edi - 0xc]
fstp dword [esp + 0x6c]
fld dword [esp + 0x1c]
fmul dword [edi - 8]
fld dword [esp + 0x1c]
fmul dword [edi - 4]
fstp dword [esp + 0x54]
fld dword [esp + 0x1c]
fmul dword [edi]
fstp dword [esp + 0x58]
fld dword [esp + 0x1c]
fmul dword [edi + 4]
fstp dword [esp + 0x5c]
fadd st(2)
fstp dword [esp + 0x30]
fld dword [esp + 0x54]
fadd st(1)
fstp st(2)
fstp st(0)
fld dword [esp + 0x58]
fadd dword [esp + 0x68]
fld dword [esp + 0x5c]
fadd dword [esp + 0x6c]
fstp dword [esp + 0x3c]
fld dword [esp + 0x20]
fmul dword [edi + 8]
fld dword [esp + 0x20]
fmul dword [edi + 0xc]
fld dword [esp + 0x20]
fmul dword [edi + 0x10]
fstp dword [esp + 0x78]
fld dword [esp + 0x20]
fmul dword [edi + 0x14]
fstp dword [esp + 0x7c]
fxch st(1)
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
fadd st(2)
fstp dword [esp + 0x34]
fld dword [esp + 0x78]
fadd st(1)
fstp dword [esp + 0x38]
fstp st(0)
fstp st(0)
fld dword [esp + 0x7c]
fadd dword [esp + 0x3c]
fstp dword [esp + 0x3c]
fld dword [esp + 0x40]
fcomp dword [esp + 0x30]
fnstsw ax
test ah, 5
jnp 0x5201a6
mov byte [esp + 0x17], 0
fld dword [esp + 0x44]
mov byte [esp + 0x16], cl
fcomp dword [esp + 0x34]
fnstsw ax
test ah, 5
jnp 0x5201be
mov byte [esp + 0x16], 0
fld dword [esp + 0x48]
fcomp dword [esp + 0x38]
fnstsw ax
test ah, 5
jp 0x5201d1
mov bl, cl
jmp 0x5201d3
xor bl, bl
fcom dword [esp + 0x3c]
fnstsw ax
test ah, 5
jnp 0x5201e0
xor cl, cl
movzx eax, bl
movzx ebx, byte [esp + 0x16]
shl ebx, 2
shl eax, 1
or eax, ebx
movzx ebx, byte [esp + 0x17]
shl ebx, 3
movzx ecx, cl
or eax, ebx
or eax, ecx
je 0x520299
cmp eax, 0xb
fstp st(0)
ja case.0x52020b.3
jmp dword [eax*4 + 0x5202fc]
fld dword [esp + 0x30]
fcomp dword [esp + 0x34]
fnstsw ax
test ah, 0x41
jne case.0x52020b.7
fld dword [esp + 0x30]
fcomp dword [esp + 0x38]
fnstsw ax
test ah, 0x41
jne 0x52026f
fld dword [esp + 0x30]
fcomp dword [esp + 0x3c]
fnstsw ax
test ah, 0x41
jne case.0x52020b.1
fld dword [esp + 0x30]
lea edx, [esi - 3]
jmp 0x52028d
fld dword [esp + 0x34]
fcomp dword [esp + 0x38]
fnstsw ax
test ah, 0x41
jne 0x52026f
fld dword [esp + 0x34]
fcomp dword [esp + 0x3c]
fnstsw ax
test ah, 0x41
jne case.0x52020b.1
fld dword [esp + 0x34]
lea edx, [esi - 2]
jmp 0x52028d
fld dword [esp + 0x38]
fcomp dword [esp + 0x3c]
fnstsw ax
test ah, 0x41
jne case.0x52020b.1
fld dword [esp + 0x38]
lea edx, [esi - 1]
jmp 0x52028d
fld dword [esp + 0x3c]
mov edx, esi
fst dword [esp + 0x40]
fst dword [esp + 0x44]
fst dword [esp + 0x48]
mov ecx, dword [esp + 0x24]
add ecx, 0x30
add esi, 4
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x28]
lea eax, [esi - 3]
add edi, 0x30
cmp eax, ecx
jl 0x5200cc
mov esi, dword [esp + 0x2c]
mov eax, edx
fstp st(0)
sar eax, 2
lea eax, [eax + eax*2]
shl eax, 4
add eax, esi
mov esi, dword [ebp + 0xc]
mov ecx, edx
and ecx, 3
mov edi, dword [eax + ecx*4]
mov dword [esi], edi
mov edi, dword [eax + ecx*4 + 0x10]
mov dword [esi + 4], edi
mov ecx, dword [eax + ecx*4 + 0x20]
mov dword [esi + 8], ecx
or edx, 0x3f000000
pop edi
mov dword [esi + 0xc], edx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8