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

Disassembly:
push ebx
push ebp
sub esp, 0x50
mov dword [0x8f5fb0], 0
fld dword [esp + 0x80]
fld dword [esp + 0x6c]
fld dword [esp + 0x68]
fldz
fld dword [esp + 0x5c]
fsub st(2)
fst st(1)
fstp dword [esp + 0x10]
fst dword [esp + 0x14]
fld dword [esp + 0x5c]
fadd st(2)
fst st(1)
fstp dword [esp + 0x18]
fst dword [esp + 0x1c]
fld dword [esp + 0x60]
fsub st(3)
fstp dword [esp + 4]
fld dword [esp + 0x60]
fadd st(3)
mov eax, dword [esp + 4]
mov dword [esp + 0x30], 0
mov dword [esp + 0x20], eax
mov eax, dword [esp + 4]
fst st(1)
fstp dword [esp + 0x24]
fst dword [esp + 0x28]
xor ebp, ebp
mov dword [esp + 0x2c], eax
mov dword [esp + 0x4c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0x3f800000
mov dword [esp + 0x34], 0
mov dword [esp + 0x48], 0x3f800000
mov dword [esp + 0x44], 0x3f800000
mov dword [esp + 0x38], 0x3f800000
lea eax, [eax]
fld dword [esp + ebp*4 + 0x10]
fst st(1)
fcomp dword [0x5ff288]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x51c6ac
fld st(0)
fdiv st(2)
fmul dword [0x5ff28c]
fstp dword [esp + ebp*4 + 0x30]
mov dword [esp + ebp*4 + 0x10], 0
mov edx, dword [0x8f436c]
fld dword [esp + ebp*4 + 0x10]
mov dword [esp + 8], edx
fstp st(1)
fild dword [esp + 8]
fcomp st(1)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x51c6f4
mov dword [esp + 8], edx
fild dword [esp + 8]
fsubr st(1)
fmul dword [0x5ff290]
fdiv st(2)
fsubr dword [0x5ff27c]
fstp dword [esp + ebp*4 + 0x30]
mov dword [esp + 8], edx
fild dword [esp + 8]
fstp dword [esp + ebp*4 + 0x10]
fld dword [esp + ebp*4 + 0x20]
fst st(1)
fcomp dword [0x5ff288]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x51c720
fld st(0)
fdiv st(3)
fmul dword [0x5ff28c]
fstp dword [esp + ebp*4 + 0x40]
mov dword [esp + ebp*4 + 0x20], 0
mov ecx, dword [0x8f4370]
fld dword [esp + ebp*4 + 0x20]
mov dword [esp + 8], ecx
fstp st(1)
fild dword [esp + 8]
fcomp st(1)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x51c768
mov dword [esp + 8], ecx
fild dword [esp + 8]
fsubr st(1)
fmul dword [0x5ff290]
fdiv st(3)
fsubr dword [0x5ff27c]
fstp dword [esp + ebp*4 + 0x40]
mov dword [esp + 8], ecx
fild dword [esp + 8]
fstp dword [esp + ebp*4 + 0x20]
inc ebp
cmp ebp, 4
jl 0x51c680
mov ebx, dword [0x649a80]
imul ebx, ebx, 0xa8
fld dword [esp + 0x10]
add ebx, 0x649a84
fstp dword [ebx]
fld dword [esp + 0x14]
fstp dword [ebx + 0x1c]
fld dword [esp + 0x18]
fstp st(3)
fld st(2)
fstp dword [ebx + 0x38]
fld dword [esp + 0x1c]
fstp dword [ebx + 0x54]
fld dword [esp + 0x10]
fstp dword [ebx + 0x70]
fld st(2)
fstp dword [ebx + 0x8c]
fld dword [esp + 0x20]
fstp dword [ebx + 4]
fld dword [esp + 0x24]
fstp dword [ebx + 0x20]
fld dword [esp + 0x28]
fstp st(3)
fld st(2)
fstp dword [ebx + 0x3c]
fld dword [esp + 0x2c]
fstp dword [ebx + 0x58]
fld dword [esp + 0x20]
fstp dword [ebx + 0x74]
fld st(2)
fstp dword [ebx + 0x90]
fld dword [0x9434f0]
fsub dword [0x8e2dc4]
movsx ebp, word [esp + 0x7c]
movzx ecx, byte [esp + 0x70]
fmul dword [esp + 0x64]
fld dword [esp + 0x64]
fsub dword [0x8e2dc4]
fld dword [0x8f2c94]
fsub dword [0x8f1abc]
movzx eax, byte [esp + 0x78]
imul ecx, ebp
fmulp st(1)
fmul dword [0x9434f0]
movzx edx, byte [esp + 0x74]
mov dword [esp], eax
imul eax, ebp
fdivrp st(1)
fadd dword [0x8f1abc]
imul edx, ebp
mov ebp, ebx
sar ecx, 8
fstp st(3)
fld st(2)
mov dword [esp], eax
sar dword [esp], 8
fstp dword [ebp + 8]
fld st(3)
fstp dword [ebp + 0xc]
movzx eax, cl
movzx ecx, byte [esp + 0x84]
sar edx, 8
shl eax, 0x10
shl ecx, 0x18
or eax, ecx
movzx ecx, dl
fld st(2)
shl ecx, 8
or eax, ecx
movzx ecx, byte [esp]
or eax, ecx
mov dword [ebp + 0x10], eax
lea ecx, [ebx + 0x1c]
fstp dword [ecx + 8]
fld st(3)
fstp dword [ecx + 0xc]
fld st(2)
mov dword [ecx + 0x10], eax
lea edx, [ebx + 0x38]
fstp dword [edx + 8]
fld st(3)
fstp dword [edx + 0xc]
fld st(2)
mov dword [edx + 0x10], eax
lea ebp, [ebx + 0x54]
fstp dword [ebp + 8]
fld st(3)
fstp dword [ebp + 0xc]
fld st(2)
mov dword [ebp + 0x10], eax
lea ecx, [ebx + 0x70]
fstp dword [ecx + 8]
fld st(3)
fstp dword [ecx + 0xc]
fld st(2)
mov dword [ecx + 0x10], eax
lea edx, [ebx + 0x8c]
fstp dword [edx + 8]
fld st(3)
fstp dword [edx + 0xc]
mov dword [edx + 0x10], eax
fld dword [esp + 0x30]
fstp dword [ebx + 0x14]
fld dword [esp + 0x40]
fstp dword [ebx + 0x18]
fld dword [esp + 0x34]
fstp dword [ebx + 0x30]
fld dword [esp + 0x44]
fstp dword [ebx + 0x34]
fld dword [esp + 0x38]
fstp st(4)
fld st(3)
fstp dword [ebx + 0x4c]
fld dword [esp + 0x48]
fstp st(3)
fld st(2)
fstp dword [ebx + 0x50]
fld dword [esp + 0x3c]
fstp dword [ebx + 0x68]
fld dword [esp + 0x4c]
fstp dword [ebx + 0x6c]
fld dword [esp + 0x30]
fstp dword [ebx + 0x84]
fld dword [esp + 0x40]
fstp dword [ebx + 0x88]
fld st(3)
fstp dword [ebx + 0xa0]
fld st(2)
fstp dword [ebx + 0xa4]
inc dword [0x649a80]
cmp dword [0x649a80], 0x40
jl 0x51c950
fcompp
fcompp
call fcn.0051c520
add esp, 0x50
pop ebp
pop ebx
ret
fcompp
fcompp
jmp 0x51c945