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

Disassembly:
push ebx
push esi
push edi
push ebp
sub esp, 0x110
mov eax, dword [esp + 0x14c]
mov ebx, dword [esp + 0x138]
mov dword [esp + 0xd8], eax
mov dword [esp + 0xcc], ebx
mov eax, dword [esp + 0x134]
fldz
fldz
fldz
fld dword [esp + 0xcc]
fmul st(0)
fld dword [esp + 0x134]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x13c]
fmul st(0)
faddp st(1)
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x148]
fld dword [esp + 0xc8]
fmul st(0)
faddp st(1)
fsqrt
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x160]
mov dword [esp + 0x4c], eax
mov edx, dword [esp + 0x144]
mov eax, dword [esp + 0x154]
mov edi, dword [esp + 0x158]
mov dword [esp + 0x44], eax
mov esi, dword [esp + 0x140]
mov eax, edx
mov dword [esp + 0xdc], edi
mov ebx, dword [esp + 0xc8]
mov dword [esp + 0xd4], esi
mov dword [esp + 0x3c], eax
mov ebp, dword [esp + 0x15c]
mov eax, dword [esp + 0xcc]
mov edi, dword [esp + 0x150]
mov esi, dword [esp + 0xc0]
mov dword [esp + 0xc4], edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x50], ebp
mov dword [esp + 0x38], ebx
mov dword [esp + 0x48], edi
mov dword [esp + 0x40], esi
fstp dword [esp + 0xe0]
fld dword [esp + 0xe0]
fstp st(3)
fld st(2)
fstp dword [esp + 0x2c]
fld dword [esp + 0xc4]
fmul st(0)
fld dword [esp + 0x140]
fmul st(0)
faddp st(1)
fld dword [esp + 0xc0]
fmul st(0)
faddp st(1)
fsqrt
fstp dword [esp + 0xe0]
fld dword [esp + 0xe0]
fstp st(2)
fld st(1)
fstp dword [esp + 0x30]
fld dword [0x6974f4]
fadd st(3)
fstp st(1)
fld dword [0x6974e8]
fcomp st(1)
fnstsw ax
test ah, 0x45
jne 0x554eb2
fld dword [0x6974e8]
fstp st(1)
fld st(0)
fnstcw word [esp + 0x14]
mov eax, dword [esp + 0x14]
or byte [esp + 0x15], 0xc
fldcw word [esp + 0x14]
mov dword [esp + 0x14], eax
fistp qword [esp + 0xe0]
fldcw word [esp + 0x14]
fld dword [0x6974f4]
fadd st(2)
fstp st(1)
fld dword [0x6974e8]
fcomp st(1)
fnstsw ax
mov ecx, dword [esp + 0xe0]
test ah, 0x45
jne 0x554efc
fld dword [0x6974e8]
fstp st(1)
mov edx, dword [esp + 0x170]
fld st(0)
fnstcw word [esp + 0x14]
mov eax, dword [esp + 0x14]
or byte [esp + 0x15], 0xc
imul ecx, edx
fldcw word [esp + 0x14]
mov dword [esp + 0x14], eax
fistp qword [esp + 0xe0]
mov eax, dword [esp + 0xe0]
imul eax, edx
fldcw word [esp + 0x14]
cmp ecx, 3
jbe 0x554f40
mov esi, 3
jmp 0x554f42
mov esi, ecx
cmp eax, 3
mov dword [esp + 4], esi
jbe 0x554f50
mov eax, 3
cmp byte [esp + 0x16c], 0
mov dword [esp + 0xc], eax
je 0x554f7a
cmp esi, 1
jbe 0x554f68
mov esi, 1
cmp eax, 1
mov dword [esp + 4], esi
jbe 0x554f76
mov eax, 1
mov dword [esp + 0xc], eax
mov eax, dword [esp + 4]
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe0], eax
fild qword [esp + 0xe0]
mov eax, dword [esp + 0xc]
lea ebx, [esp + 0x103]
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe0], eax
fdivr st(3)
mov dword [esp + 0xe4], 0
mov eax, dword [esp + 0x130]
mov dword [esp + 0xb8], eax
push ebx
push eax
mov eax, dword [esp + 0x134]
push eax
mov dword [esp + 0xc8], eax
push dword [esp + 0x134]
fstp dword [esp + 0x2c]
fild qword [esp + 0xf0]
fdivr st(2)
fstp dword [esp + 0x30]
fcompp
fstp st(0)
call fcn.004d53a0
add esp, 0x10
cmp byte [esp + 0x103], 0
fstp dword [esp + 0x18]
jne 0x555026
fld dword [esp + 0xb8]
fsub dword [0x6974cc]
fstp dword [esp + 0x18]
cmp dword [esp + 4], 0
mov dword [esp + 0x10], 0
jbe 0x5556a2
fld dword [esp + 0x140]
fmul dword [esp + 0x20]
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0xbc]
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb0], edx
fstp dword [esp + 0x98]
fld dword [esp + 0xc4]
fmul dword [esp + 0x20]
fstp dword [esp + 0x9c]
fld dword [esp + 0xc0]
fmul dword [esp + 0x20]
fstp dword [esp + 0xa0]
fld dword [esp + 0x134]
fmul dword [esp + 0x1c]
fstp dword [esp + 0xa4]
fld dword [esp + 0xcc]
fmul dword [esp + 0x1c]
fstp dword [esp + 0xa8]
fld dword [esp + 0xc8]
fmul dword [esp + 0x1c]
fstp dword [esp + 0xac]
cmp dword [esp + 0xc], 0
mov dword [esp + 8], 0
jbe 0x555690
mov eax, dword [esp + 0x10]
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe0], eax
fild qword [esp + 0xe0]
mov eax, dword [esp + 0x9c]
mov ebp, dword [esp + 0x98]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0xa4]
fmul dword [esp + 0x2c]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0xac]
mov esi, dword [esp + 0xb0]
mov edi, dword [esp + 0xa0]
mov dword [esp + 0x8c], eax
mov ecx, dword [esp + 0xa8]
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x78], ebp
fstp dword [esp + 0x74]
mov dword [esp + 0x94], eax
mov dword [esp + 0x80], edi
mov dword [esp + 0x90], esi
mov dword [esp + 0x88], ecx
lea eax, [eax]
mov eax, dword [esp + 4]
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe0], eax
fild qword [esp + 0xe0]
mov eax, dword [esp + 8]
xor ebx, ebx
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe0], eax
fdivr dword [esp + 0x74]
mov dword [esp + 0xe4], 0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x78]
mov edi, dword [esp + 0x88]
mov ebp, dword [esp + 0x80]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x54], edx
mov dword [esp + 0x64], edi
mov dword [esp + 0x5c], ebp
fstp dword [esp + 0x24]
fild qword [esp + 0xe0]
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], 0
mov eax, dword [esp + 0x7c]
fmul dword [esp + 0x30]
fild qword [esp + 0xe0]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x8c]
fdivp st(1)
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x94]
fstp dword [esp + 0x28]
mov dword [esp + 0x70], eax
xor esi, esi
xor eax, eax
cmp byte [eax + 0x7d9775], 0
jne 0x555260
imul esi, esi, 0x70
add esi, 0x7d9708
jmp 0x55526b
inc esi
add eax, 0x70
cmp esi, 0x2d
jl 0x555246
xor esi, esi
test esi, esi
je 0x555674
mov byte [esi + 0x6c], bl
fld dword [esp + 0x54]
fdiv dword [esp + 0x30]
fstp dword [esi]
fld dword [esp + 0x58]
fdiv dword [esp + 0x30]
fstp dword [esi + 4]
fld dword [esp + 0x5c]
fdiv dword [esp + 0x30]
fstp dword [esi + 8]
fld dword [esp + 0x60]
fdiv dword [esp + 0x2c]
fstp dword [esi + 0x20]
fld dword [esp + 0x64]
fdiv dword [esp + 0x2c]
fstp dword [esi + 0x24]
fld dword [esp + 0x68]
fdiv dword [esp + 0x2c]
fstp dword [esi + 0x28]
lea eax, [esi + 0x20]
push eax
lea eax, [esp + 0x108]
push esi
push eax
call fcn.004e00b0
mov eax, dword [esp + 0x110]
add esp, 0xc
mov edx, dword [esp + 0x108]
mov dword [esp + 0xe8], eax
lea ecx, [esp + 0xe8]
mov eax, dword [esp + 0x10c]
mov dword [esp + 0xf0], eax
mov dword [esp + 0xec], edx
call fcn.004dfea0
fld dword [esp + 0xe8]
fstp dword [esi + 0x10]
fld dword [esp + 0xec]
fstp dword [esi + 0x14]
fld dword [esp + 0xf0]
fstp dword [esi + 0x18]
fld dword [esp + 0xd4]
fdiv dword [esp + 0x30]
fld dword [esp + 0x20]
fmul dword [ebx*8 + 0x938800]
fadd dword [esp + 0x28]
fmulp st(1)
fld dword [esp + 0xd0]
fdiv dword [esp + 0x2c]
fld dword [esp + 0x1c]
fmul dword [ebx*8 + 0x938804]
fadd dword [esp + 0x24]
fmulp st(1)
fadd dword [esp + 0x128]
faddp st(1)
fstp dword [esi + 0x30]
fld dword [esp + 0x3c]
fdiv dword [esp + 0x30]
fld dword [esp + 0x20]
fmul dword [ebx*8 + 0x938800]
fadd dword [esp + 0x28]
fmulp st(1)
fld dword [esp + 0x34]
fdiv dword [esp + 0x2c]
fld dword [esp + 0x1c]
fmul dword [ebx*8 + 0x938804]
fadd dword [esp + 0x24]
fmulp st(1)
fadd dword [esp + 0x6c]
faddp st(1)
fstp dword [esi + 0x34]
fld dword [esp + 0x40]
fdiv dword [esp + 0x30]
fld dword [esp + 0x20]
fmul dword [ebx*8 + 0x938800]
fadd dword [esp + 0x28]
fmulp st(1)
fld dword [esp + 0x38]
fdiv dword [esp + 0x2c]
fld dword [esp + 0x1c]
fmul dword [ebx*8 + 0x938804]
fadd dword [esp + 0x24]
fmulp st(1)
fadd dword [esp + 0x70]
faddp st(1)
fstp dword [esi + 0x38]
call fcn.006499f0
mov edi, eax
call fcn.006499f0
movzx eax, ax
fldz
fldz
and eax, 0x7f
add eax, 0xffffffc0
mov dword [esp + 0xe0], eax
fild dword [esp + 0xe0]
movzx eax, di
fmul dword [0x6974f8]
and eax, 0x7f
add eax, 0xffffffc0
fadd dword [esp + 0xd8]
fstp dword [esi + 0x48]
mov dword [esp + 0xe0], eax
fild dword [esp + 0xe0]
fmul dword [0x6974f8]
fadd dword [esp + 0x48]
fstp dword [esi + 0x4c]
fld dword [esp + 0x44]
fadd dword [0x6974c0]
fstp dword [esi + 0x50]
fld dword [esp + 0x164]
fcomp dword [0x6974c0]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x5554e8
lea eax, [esi + 0x30]
fld dword [eax + 8]
fsub dword [esp + 0x4c]
fstp st(1)
fld dword [eax + 4]
fsub dword [esp + 0x50]
fstp st(2)
fld dword [eax]
fsub dword [esp + 0xdc]
fstp dword [esp + 0xf4]
fld st(1)
fstp dword [esp + 0xf8]
fst dword [esp + 0xfc]
fcompp
lea ecx, [esp + 0xf4]
call fcn.004dfea0
fldz
fldz
fld dword [esp + 0x164]
fmul dword [esp + 0xfc]
fstp st(1)
fld dword [esp + 0x164]
fmul dword [esp + 0xf8]
fstp st(2)
fld dword [esp + 0x164]
fmul dword [esp + 0xf4]
fadd dword [esi + 0x48]
fstp dword [esi + 0x48]
fld dword [esi + 0x4c]
fadd st(2)
fstp dword [esi + 0x4c]
fld dword [esi + 0x50]
fadd st(1)
fstp dword [esi + 0x50]
fcompp
call fcn.006499f0
mov ebp, eax
call fcn.006499f0
mov edi, eax
call fcn.006499f0
movzx eax, ax
fldz
fldz
and eax, 0x7f
add eax, 0xffffffc0
mov dword [esp + 0xe0], eax
fldz
fild dword [esp + 0xe0]
movzx eax, di
fmul dword [0x6974fc]
and eax, 0x7f
add eax, 0xffffffc0
fstp dword [esi + 0x54]
mov dword [esp + 0xe0], eax
fild dword [esp + 0xe0]
movzx eax, bp
fmul dword [0x6974fc]
and eax, 0x7f
add eax, 0xffffffc0
fstp dword [esi + 0x58]
mov dword [esp + 0xe0], eax
fild dword [esp + 0xe0]
fmul dword [0x6974fc]
fstp dword [esi + 0x5c]
mov ecx, dword [esp + 0x124]
mov eax, ecx
cmp eax, 2
ja case.default.0x555575
jmp dword [eax*4 + 0x69752c]
mov eax, dword [0x974b2c]
jmp 0x555623
lea eax, [esi + 0x30]
fld dword [eax + 8]
fsub dword [esp + 0x4c]
fstp st(1)
fld dword [eax + 4]
fsub dword [esp + 0x50]
fstp st(2)
fld dword [eax]
fsub dword [esp + 0xdc]
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 + 0xe0]
fld dword [esp + 0xe0]
fstp st(3)
mov eax, dword [0x974b2c]
mov dword [esp + 0xe4], 0
fld dword [0x697500]
mov dword [esp + 0xe0], eax
fmul st(3)
fild qword [esp + 0xe0]
faddp st(1)
fnstcw word [esp + 0x14]
mov eax, dword [esp + 0x14]
or byte [esp + 0x15], 0xc
fldcw word [esp + 0x14]
mov dword [esp + 0x14], eax
fistp qword [esp + 0xe0]
fldcw word [esp + 0x14]
mov eax, dword [esp + 0xe0]
mov dword [esi + 0x60], eax
fld dword [esp + 0x18]
fstp dword [esi + 0x64]
mov al, byte [esp + 0x168]
mov byte [esi + 0x6e], al
mov eax, dword [esp + 4]
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe0], eax
fild qword [esp + 0xe0]
fdivr dword [esp + 0x2c]
fstp dword [esi + 0x68]
fcompp
mov al, byte [esp + 0x174]
fstp st(0)
mov byte [esi + 0x6f], al
mov byte [esi + 0x6d], 1
inc ebx
cmp ebx, 5
jb 0x555242
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, dword [esp + 0xc]
jb 0x555170
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 4]
jb 0x5550c1
add esp, 0x110
pop ebp
pop edi
pop esi
pop ebx
ret