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

Disassembly:
mov eax, 0x6fad2c
push ebx
push esi
push ebp
mov ebp, ecx
sub esp, 0x90
fldz
fldz
fldz
fld dword [eax + 8]
fsub dword [ebp + 0x38]
fstp st(1)
fld dword [eax + 4]
fsub dword [ebp + 0x34]
fstp st(2)
fld dword [eax]
fsub dword [ebp + 0x30]
fstp st(3)
fld st(1)
fstp st(2)
fld st(1)
fmul st(0)
fld st(3)
fmul st(0)
faddp st(1)
fld st(1)
fstp st(4)
fld st(3)
fmul st(0)
faddp st(1)
fstp st(3)
fld st(2)
fsqrt
fstp dword [esp + 0x30]
mov eax, dword [esp + 0x30]
mov dword [esp + 8], eax
lea eax, [ebp + 0x10]
fld dword [eax]
fstp dword [esp + 0x3c]
fld dword [eax + 4]
fstp dword [esp + 0x40]
fld dword [eax + 8]
fstp dword [esp + 0x44]
fcompp
lea ecx, [esp + 0x3c]
fstp st(0)
call fcn.004ba560
lea eax, [esp + 0x3c]
push eax
call fcn.00503c90
pop ecx
mov ecx, dword [0x885b48]
sub ecx, dword [ebp + 0x60]
mov bl, al
test ecx, ecx
jge 0x502560
xor eax, eax
jmp 0x502562
mov eax, ecx
cmp eax, 0x1f4
jle 0x502570
mov ecx, 0x1f4
jmp 0x502576
test ecx, ecx
jge 0x502576
xor ecx, ecx
mov dword [esp + 0x30], ecx
and ebx, 0xff
fild dword [esp + 0x30]
mov dword [esp + 0x30], ebx
fmul dword [0x5fd8b4]
fimul dword [esp + 0x30]
fnstcw word [esp + 4]
mov eax, dword [esp + 4]
or byte [esp + 5], 0xc
fldcw word [esp + 4]
mov dword [esp + 4], eax
cmp dword [0x9430e0], 0x1f9
fistp dword [esp + 0x30]
fldcw word [esp + 4]
mov bl, byte [esp + 0x30]
jge 0x5025c8
cmp dword [0x8f57e8], 0x7c
jl 0x5025cd
call fcn.00503d60
movzx ecx, bl
fldz
mov dword [esp + 0x58], 0
mov edx, ecx
mov ebx, ecx
mov eax, ecx
shl ebx, 0x10
shl edx, 0x18
shl eax, 8
or ebx, edx
or ebx, eax
mov eax, dword [0x8f57e8]
imul eax, eax, 0x24
or ebx, ecx
mov dword [eax + 0x862348], ebx
mov dword [eax + 0x86236c], ebx
mov dword [eax + 0x862390], ebx
mov dword [eax + 0x86234c], 0x3f000000
mov dword [eax + 0x862350], 0x3f000000
mov dword [eax + 0x862370], 0x3f000000
mov dword [eax + 0x862374], 0x3f19999a
mov dword [eax + 0x862394], 0x3f19999a
mov dword [eax + 0x862398], 0x3f19999a
movzx eax, byte [ebp + 0x6c]
mov edx, eax
lea edx, [edx*8]
lea edx, [edx + edx*2]
fld dword [edx + 0x5fd818]
fsub dword [eax*8 + 0x86af54]
fstp st(1)
fld dword [edx + 0x5fd814]
fsub dword [eax*8 + 0x86af50]
fstp dword [esp + 0x54]
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x4c]
push ebp
push eax
fst dword [esp + 0x68]
fstp st(0)
call fcn.004ba4d0
mov eax, dword [esp + 0x54]
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], ebx
movzx eax, byte [ebp + 0x6c]
fldz
add esp, 0xc
mov dword [esp + 0x70], 0
mov edx, eax
lea edx, [edx*8]
lea edx, [edx + edx*2]
fld dword [edx + 0x5fd820]
fsub dword [eax*8 + 0x86af54]
fstp st(1)
fld dword [edx + 0x5fd81c]
fsub dword [eax*8 + 0x86af50]
fstp dword [esp + 0x6c]
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x64]
push ebp
push eax
fst dword [esp + 0x80]
fstp st(0)
call fcn.004ba4d0
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], ecx
movzx eax, byte [ebp + 0x6c]
fldz
add esp, 0xc
mov dword [esp + 0x88], 0
mov ebx, eax
lea ebx, [ebx*8]
lea ebx, [ebx + ebx*2]
fld dword [ebx + 0x5fd828]
fsub dword [eax*8 + 0x86af54]
fstp st(1)
fld dword [ebx + 0x5fd824]
fsub dword [eax*8 + 0x86af50]
fstp dword [esp + 0x84]
lea eax, [esp + 0x84]
push eax
lea eax, [esp + 0x7c]
push ebp
push eax
fst dword [esp + 0x98]
fstp st(0)
call fcn.004ba4d0
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x38], eax
mov eax, dword [0x8f57e8]
imul eax, eax, 0x24
fld dword [esp + 0x18]
mov dword [esp + 0x34], edx
mov ebx, dword [0x9430e0]
mov esi, dword [0x8f57e8]
mov edx, dword [0x9430e0]
add esi, 2
mov ecx, dword [0x9430e0]
add esp, 0xc
fstp dword [eax + 0x862330]
fld dword [esp + 0x10]
fstp dword [eax + 0x862334]
fld dword [esp + 0x14]
fstp dword [eax + 0x862338]
fld dword [esp + 0x18]
fstp dword [eax + 0x862354]
fld dword [esp + 0x1c]
fstp dword [eax + 0x862358]
fld dword [esp + 0x20]
fstp dword [eax + 0x86235c]
fld dword [esp + 0x78]
fstp dword [eax + 0x862378]
fld dword [esp + 0x28]
fstp dword [eax + 0x86237c]
fld dword [esp + 0x2c]
fstp dword [eax + 0x862380]
mov ax, word [0x8f57e8]
mov word [ebx*2 + 0x846288], ax
mov eax, dword [0x8f57e8]
inc eax
mov ebx, dword [0x9430e0]
mov word [edx*2 + 0x84628a], ax
mov dx, word [0x8f57e8]
mov word [ecx*2 + 0x84628c], si
mov word [ebx*2 + 0x84628e], dx
mov ebx, dword [0x9430e0]
mov ecx, dword [0x9430e0]
add dword [0x8f57e8], 3
mov word [ecx*2 + 0x846290], si
add dword [0x9430e0], 6
mov word [ebx*2 + 0x846292], ax
cmp byte [ebp + 0x6e], 0
je 0x502aae
cmp dword [0x942fa8], 0x2f9
jge 0x502896
cmp dword [0x8f1ae8], 0xbc
jl 0x50289b
call fcn.00503de0
fld dword [esp + 8]
fcomp dword [0x5fd8b8]
fnstsw ax
mov dl, 0xff
test ah, 0x45
jne 0x5028f9
fld dword [esp + 8]
fsub dword [0x5fd8b8]
and edx, 0xff
mov dword [esp + 0x30], edx
fmul dword [0x5fd8bc]
fmul dword [0x5fd8c0]
fsubr dword [0x5fd8c4]
fimul dword [esp + 0x30]
fnstcw word [esp + 4]
mov eax, dword [esp + 4]
or byte [esp + 5], 0xc
fldcw word [esp + 4]
mov dword [esp + 4], eax
fistp dword [esp + 0x30]
fldcw word [esp + 4]
mov dl, byte [esp + 0x30]
movzx edx, dl
fld dword [0x5fd8bc]
mov ecx, edx
mov esi, edx
mov eax, edx
shl esi, 0x10
shl ecx, 0x18
shl eax, 8
or esi, ecx
or esi, eax
mov eax, dword [0x8f1ae8]
imul eax, eax, 0x24
or esi, edx
mov dword [eax + 0x862348], esi
mov dword [eax + 0x86236c], esi
mov dword [eax + 0x862390], esi
mov esi, dword [0x8f1ae8]
movzx ebx, byte [ebp + 0x6c]
add esi, 0xffffff80
lea ebx, [ebx + ebx*2]
fmul dword [ebx*8 + 0x5fd814]
fmul dword [ebp + 0x68]
fstp dword [eax + 0x86234c]
movzx edx, byte [ebp + 0x6c]
fld dword [0x5fd8bc]
lea edx, [edx + edx*2]
fmul dword [edx*8 + 0x5fd818]
fmul dword [ebp + 0x68]
fstp dword [eax + 0x862350]
movzx ecx, byte [ebp + 0x6c]
fld dword [0x5fd8bc]
lea ecx, [ecx + ecx*2]
fmul dword [ecx*8 + 0x5fd81c]
fmul dword [ebp + 0x68]
fstp dword [eax + 0x862370]
movzx ebx, byte [ebp + 0x6c]
fld dword [0x5fd8bc]
lea ebx, [ebx + ebx*2]
fmul dword [ebx*8 + 0x5fd820]
mov ebx, dword [0x942fa8]
fmul dword [ebp + 0x68]
fstp dword [eax + 0x862374]
movzx edx, byte [ebp + 0x6c]
fld dword [0x5fd8bc]
lea edx, [edx + edx*2]
fmul dword [edx*8 + 0x5fd824]
mov edx, dword [0x942fa8]
fmul dword [ebp + 0x68]
fstp dword [eax + 0x862394]
movzx ecx, byte [ebp + 0x6c]
fld dword [0x5fd8bc]
lea ecx, [ecx + ecx*2]
fmul dword [ecx*8 + 0x5fd828]
mov ecx, dword [0x942fa8]
fmul dword [ebp + 0x68]
mov ebp, dword [0x942fa8]
fstp dword [eax + 0x862398]
fld dword [esp + 0xc]
fstp dword [eax + 0x862330]
fld dword [esp + 0x10]
fstp dword [eax + 0x862334]
fld dword [esp + 0x14]
fstp dword [eax + 0x862338]
fld dword [esp + 0x18]
fstp dword [eax + 0x862354]
fld dword [esp + 0x1c]
fstp dword [eax + 0x862358]
fld dword [esp + 0x20]
fstp dword [eax + 0x86235c]
fld dword [esp + 0x24]
fstp dword [eax + 0x862378]
fld dword [esp + 0x28]
fstp dword [eax + 0x86237c]
fld dword [esp + 0x2c]
fstp dword [eax + 0x862380]
mov eax, dword [0x942fa8]
mov word [eax*2 + 0x846288], si
mov eax, dword [0x8f1ae8]
add eax, 0xffffff81
mov word [ebx*2 + 0x84628a], ax
mov ebx, dword [0x8f1ae8]
add ebx, 0xffffff82
mov word [ebp*2 + 0x84628c], bx
mov word [edx*2 + 0x84628e], si
mov word [ecx*2 + 0x846290], bx
mov ebx, dword [0x942fa8]
add dword [0x942fa8], 6
mov word [ebx*2 + 0x846292], ax
add dword [0x8f1ae8], 3
add esp, 0x90
pop ebp
pop esi
pop ebx
ret