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

Disassembly:
mov eax, 0x7e46c0
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.004dfec0
lea eax, [esp + 0x3c]
push eax
call fcn.005542f0
mov edx, dword [0x974b34]
pop ecx
sub edx, dword [ebp + 0x60]
mov bl, al
test edx, edx
jge 0x555770
xor eax, eax
jmp 0x555772
mov eax, edx
cmp eax, 0x1f4
jle 0x555780
mov edx, 0x1f4
jmp 0x555786
test edx, edx
jge 0x555786
xor edx, edx
mov dword [esp + 0x30], edx
and ebx, 0xff
fild dword [esp + 0x30]
mov dword [esp + 0x30], ebx
fmul dword [0x6974fc]
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 [0xa0fdf0], 0x1f9
fistp dword [esp + 0x30]
fldcw word [esp + 4]
mov bl, byte [esp + 0x30]
jge 0x5557db
cmp dword [0x9b5eb8], 0xfc
jl 0x555855
cmp dword [0x9b5eb8], 0
je 0x555855
push 2
push 0xa
call fcn.00649bf0
pop ecx
pop ecx
push 2
push 0xb
call fcn.00649bf0
pop ecx
pop ecx
mov ecx, dword [0x978dbc]
mov eax, dword [ecx]
push eax
push 1
call fcn.00649bf0
mov eax, dword [0x9b5eb8]
pop ecx
pop ecx
push 1
push 0
push eax
push 0x7e9e10
call fcn.0065aee0
add esp, 0x10
test eax, eax
je 0x555841
mov eax, dword [0xa0fdf0]
push eax
push 0x933bc8
push 3
call fcn.0065afe0
add esp, 0xc
call fcn.0065afb0
mov dword [0x9b5eb8], 0
mov dword [0xa0fdf0], 0
cmp byte [ebp + 0x6f], 0
fldz
je 0x555873
cmp bl, 0x40
jae 0x555870
mov ebx, 0x40
jmp 0x555873
movzx ebx, bl
movzx ebx, bl
mov dword [esp + 0x58], 0
mov edx, ebx
mov ecx, ebx
mov eax, ebx
shl ecx, 0x10
shl edx, 0x18
shl eax, 8
or ecx, edx
or ecx, eax
mov eax, dword [0x9b5eb8]
imul eax, eax, 0x24
or ecx, ebx
mov dword [eax + 0x7e9e28], ecx
mov dword [eax + 0x7e9e4c], ecx
mov dword [eax + 0x7e9e70], ecx
mov dword [eax + 0x7e9e2c], 0x3f000000
mov dword [eax + 0x7e9e30], 0x3f000000
mov dword [eax + 0x7e9e50], 0x3f000000
mov dword [eax + 0x7e9e54], 0x3f19999a
mov dword [eax + 0x7e9e74], 0x3f19999a
mov dword [eax + 0x7e9e78], 0x3f19999a
movzx eax, byte [ebp + 0x6c]
mov edx, eax
lea edx, [edx*8]
lea edx, [edx + edx*2]
fld dword [edx + 0x697424]
fsub dword [eax*8 + 0x93880c]
fstp st(1)
fld dword [edx + 0x697420]
fsub dword [eax*8 + 0x938808]
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.004dff40
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 + 0x69742c]
fsub dword [eax*8 + 0x93880c]
fstp st(1)
fld dword [edx + 0x697428]
fsub dword [eax*8 + 0x938808]
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.004dff40
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 + 0x697434]
fsub dword [eax*8 + 0x93880c]
fstp st(1)
fld dword [ebx + 0x697430]
fsub dword [eax*8 + 0x938808]
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.004dff40
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 [0x9b5eb8]
imul eax, eax, 0x24
fld dword [esp + 0x18]
mov dword [esp + 0x34], edx
mov ecx, dword [0xa0fdf0]
mov esi, dword [0x9b5eb8]
mov ebx, dword [0xa0fdf0]
add esi, 2
mov edx, dword [0xa0fdf0]
add esp, 0xc
fstp dword [eax + 0x7e9e10]
fld dword [esp + 0x10]
fstp dword [eax + 0x7e9e14]
fld dword [esp + 0x14]
fstp dword [eax + 0x7e9e18]
fld dword [esp + 0x18]
fstp dword [eax + 0x7e9e34]
fld dword [esp + 0x1c]
fstp dword [eax + 0x7e9e38]
fld dword [esp + 0x20]
fstp dword [eax + 0x7e9e3c]
fld dword [esp + 0x78]
fstp dword [eax + 0x7e9e58]
fld dword [esp + 0x28]
fstp dword [eax + 0x7e9e5c]
fld dword [esp + 0x2c]
fstp dword [eax + 0x7e9e60]
mov ax, word [0x9b5eb8]
mov word [ecx*2 + 0x933bc8], ax
mov eax, dword [0x9b5eb8]
inc eax
mov ecx, dword [0xa0fdf0]
mov word [ebx*2 + 0x933bca], ax
mov bx, word [0x9b5eb8]
mov word [edx*2 + 0x933bcc], si
mov word [ecx*2 + 0x933bce], bx
mov ecx, dword [0xa0fdf0]
mov edx, dword [0xa0fdf0]
add dword [0x9b5eb8], 3
mov word [edx*2 + 0x933bd0], si
add dword [0xa0fdf0], 6
mov word [ecx*2 + 0x933bd2], ax
cmp byte [ebp + 0x6e], 0
je 0x555de0
cmp dword [0xa0fc80], 0x2f9
jge 0x555b3e
cmp dword [0x97869c], 0x17c
jl 0x555bc5
cmp dword [0x97869c], 0x100
je 0x555bc5
mov ebx, dword [0xa10740]
mov eax, dword [ebx]
push eax
push 1
call fcn.00649bf0
pop ecx
pop ecx
push 5
push 0xa
call fcn.00649bf0
pop ecx
pop ecx
push 6
push 0xb
call fcn.00649bf0
mov eax, dword [0x97869c]
pop ecx
add eax, 0xffffff00
pop ecx
push 1
push 0
push eax
push 0x7ec210
call fcn.0065aee0
add esp, 0x10
test eax, eax
je 0x555bb1
mov eax, dword [0xa0fc80]
add eax, 0xfffffe00
push eax
push 0x933fc8
push 3
call fcn.0065afe0
add esp, 0xc
call fcn.0065afb0
mov dword [0xa0fc80], 0x200
mov dword [0x97869c], 0x100
fld dword [esp + 8]
fcomp dword [0x6974a0]
fnstsw ax
mov dl, 0x8c
test ah, 0x45
jne 0x555c23
fld dword [esp + 8]
fsub dword [0x6974a0]
and edx, 0xff
mov dword [esp + 0x30], edx
fmul dword [0x6974e0]
fmul dword [0x6974e4]
fsubr dword [0x6974e8]
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 [0x6974e0]
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 [0x97869c]
imul eax, eax, 0x24
or esi, edx
mov dword [eax + 0x7e9e28], esi
mov dword [eax + 0x7e9e4c], esi
mov dword [eax + 0x7e9e70], esi
mov esi, dword [0x97869c]
movzx ebx, byte [ebp + 0x6c]
add esi, 0xffffff00
lea ebx, [ebx + ebx*2]
fmul dword [ebx*8 + 0x697420]
fmul dword [ebp + 0x68]
fstp dword [eax + 0x7e9e2c]
movzx edx, byte [ebp + 0x6c]
fld dword [0x6974e0]
lea edx, [edx + edx*2]
fmul dword [edx*8 + 0x697424]
fmul dword [ebp + 0x68]
fstp dword [eax + 0x7e9e30]
movzx ecx, byte [ebp + 0x6c]
fld dword [0x6974e0]
lea ecx, [ecx + ecx*2]
fmul dword [ecx*8 + 0x697428]
fmul dword [ebp + 0x68]
fstp dword [eax + 0x7e9e50]
movzx ebx, byte [ebp + 0x6c]
fld dword [0x6974e0]
lea ebx, [ebx + ebx*2]
fmul dword [ebx*8 + 0x69742c]
mov ebx, dword [0xa0fc80]
fmul dword [ebp + 0x68]
fstp dword [eax + 0x7e9e54]
movzx edx, byte [ebp + 0x6c]
fld dword [0x6974e0]
lea edx, [edx + edx*2]
fmul dword [edx*8 + 0x697430]
mov edx, dword [0xa0fc80]
fmul dword [ebp + 0x68]
fstp dword [eax + 0x7e9e74]
movzx ecx, byte [ebp + 0x6c]
fld dword [0x6974e0]
lea ecx, [ecx + ecx*2]
fmul dword [ecx*8 + 0x697434]
mov ecx, dword [0xa0fc80]
fmul dword [ebp + 0x68]
mov ebp, dword [0xa0fc80]
fstp dword [eax + 0x7e9e78]
fld dword [esp + 0xc]
fstp dword [eax + 0x7e9e10]
fld dword [esp + 0x10]
fstp dword [eax + 0x7e9e14]
fld dword [esp + 0x14]
fstp dword [eax + 0x7e9e18]
fld dword [esp + 0x18]
fstp dword [eax + 0x7e9e34]
fld dword [esp + 0x1c]
fstp dword [eax + 0x7e9e38]
fld dword [esp + 0x20]
fstp dword [eax + 0x7e9e3c]
fld dword [esp + 0x24]
fstp dword [eax + 0x7e9e58]
fld dword [esp + 0x28]
fstp dword [eax + 0x7e9e5c]
fld dword [esp + 0x2c]
fstp dword [eax + 0x7e9e60]
mov eax, dword [0xa0fc80]
mov word [eax*2 + 0x933bc8], si
mov eax, dword [0x97869c]
add eax, 0xffffff01
mov word [ebx*2 + 0x933bca], ax
mov ebx, dword [0x97869c]
add ebx, 0xffffff02
mov word [ebp*2 + 0x933bcc], bx
mov word [edx*2 + 0x933bce], si
mov word [ecx*2 + 0x933bd0], bx
mov ebx, dword [0xa0fc80]
add dword [0xa0fc80], 6
mov word [ebx*2 + 0x933bd2], ax
add dword [0x97869c], 3
add esp, 0x90
pop ebp
pop esi
pop ebx
ret