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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0xf4
push ebx
mov eax, 2
cmp dword [ebp + 0x14], eax
push esi
push edi
jge 0x51e93c
mov dword [ebp + 0x14], eax
mov esi, dword [ebp + 0x10]
fld qword [esi + 0x10]
mov ebx, dword [ebp + 8]
mov eax, dword [ebp + 0x14]
fst qword [esp + 0xd0]
fld qword [esi + 0x18]
movsd xmm1, qword [ebx + 0x10]
movsd xmm0, qword [ebx + 0x18]
fstp qword [esp + 0xa0]
dec eax
sub esp, 8
subsd xmm0, xmm1
fstp qword [esp]
cvtsi2sd xmm2, eax
mov eax, dword [esi]
mov edx, dword [eax + 0x68]
divsd xmm0, xmm2
lea ecx, [esp + 0x78]
movsd qword [esp + 0xe8], xmm0
xorps xmm0, xmm0
push ecx
mov ecx, esi
movsd qword [esp + 0x74], xmm1
movsd qword [esp + 0x54], xmm0
call edx
fld qword [esp + 0xa0]
mov eax, dword [esi]
mov edx, dword [eax + 0x68]
sub esp, 8
lea ecx, [esp + 0x90]
fstp qword [esp]
push ecx
mov ecx, esi
call edx
xorps xmm0, xmm0
cmp byte [esi + 0x38], 0
movsd qword [esp + 0xb0], xmm0
setne byte [esp + 0xf]
xor edi, edi
cmp dword [ebp + 0x14], edi
movsd qword [esp + 0xa8], xmm0
movsd qword [esp + 0xc8], xmm0
movsd qword [esp + 0xc0], xmm0
movsd qword [esp + 0xb8], xmm0
movsd qword [esp + 0x28], xmm0
movsd qword [esp + 0x20], xmm0
movsd qword [esp + 0x18], xmm0
mov byte [esp + 0xe], 1
jle 0x51ecfd
fld qword [esp + 0x68]
mov eax, dword [ebx]
mov edx, dword [eax + 0x4c]
sub esp, 8
lea ecx, [esp + 0xf8]
fstp qword [esp]
push ecx
mov ecx, ebx
call edx
fldz
movq xmm0, qword [eax]
sub esp, 8
movq qword [esp + 0xb0], xmm0
fstp qword [esp]
movq xmm0, qword [eax + 8]
lea eax, [esp + 0xb0]
push eax
lea ecx, [esp + 0x3c]
push ecx
mov ecx, dword [ebp + 0xc]
movq qword [esp + 0xc0], xmm0
call fcn.0046a050
movq xmm0, qword [eax]
movsd qword [esp + 0x18], xmm0
movq xmm1, qword [eax + 8]
movsd qword [esp + 0x20], xmm1
movq xmm2, qword [eax + 0x10]
movsd qword [esp + 0x28], xmm2
test edi, edi
jne 0x51eb45
subsd xmm0, qword [esp + 0x70]
subsd xmm1, qword [esp + 0x78]
subsd xmm2, qword [esp + 0x80]
lea ecx, [esp + 0x50]
movsd qword [esp + 0x50], xmm0
movsd qword [esp + 0x58], xmm1
movsd qword [esp + 0x60], xmm2
call fcn.004a88b0
fstp qword [esp + 0x10]
cmp byte [esp + 0xf], 0
jne 0x51ecca
movsd xmm0, qword [esp + 0x18]
subsd xmm0, qword [esp + 0x88]
movsd qword [esp + 0x50], xmm0
movsd xmm0, qword [esp + 0x20]
subsd xmm0, qword [esp + 0x90]
movsd qword [esp + 0x58], xmm0
movsd xmm0, qword [esp + 0x28]
subsd xmm0, qword [esp + 0x98]
lea ecx, [esp + 0x50]
movsd qword [esp + 0x60], xmm0
call fcn.004a88b0
fst qword [esp + 0xe8]
fld qword [esp + 0x10]
fcompi st(1)
fstp st(0)
jbe 0x51ecca
movsd xmm0, qword [esp + 0xe8]
movsd qword [esp + 0x10], xmm0
mov byte [esp + 0xe], 0
jmp 0x51ecca
mov eax, dword [ebp + 0x14]
dec eax
cmp edi, eax
jne 0x51ebbd
cmp byte [esp + 0xe], 0
je 0x51eb91
cmp byte [esp + 0xf], 0
jne 0x51eb91
subsd xmm0, qword [esp + 0x88]
subsd xmm1, qword [esp + 0x90]
subsd xmm2, qword [esp + 0x98]
movsd qword [esp + 0x50], xmm0
movsd qword [esp + 0x58], xmm1
movsd qword [esp + 0x60], xmm2
lea ecx, [esp + 0x50]
jmp 0x51ecc1
subsd xmm0, qword [esp + 0x70]
subsd xmm1, qword [esp + 0x78]
subsd xmm2, qword [esp + 0x80]
movsd qword [esp + 0x30], xmm0
movsd qword [esp + 0x38], xmm1
movsd qword [esp + 0x40], xmm2
jmp 0x51ecbd
fld qword [0x5fa920]
mov edx, dword [esi]
mov edx, dword [edx + 0x78]
sub esp, 8
fstp qword [esp]
push 0
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0xc8]
push ecx
lea eax, [esp + 0xec]
push eax
mov ecx, esi
call edx
test al, al
je 0x51ed08
movsd xmm0, qword [esp + 0xd8]
movsd xmm1, qword [esp + 0xd0]
comisd xmm1, xmm0
jbe 0x51ec3e
movsd xmm0, qword [esp + 0x18]
subsd xmm0, qword [esp + 0x70]
movsd qword [esp + 0x30], xmm0
movsd xmm0, qword [esp + 0x20]
subsd xmm0, qword [esp + 0x78]
movsd qword [esp + 0x38], xmm0
movsd xmm0, qword [esp + 0x28]
subsd xmm0, qword [esp + 0x80]
jmp 0x51ecb7
comisd xmm0, xmmword [esp + 0xa0]
movsd xmm0, qword [esp + 0x18]
jbe 0x51ec84
subsd xmm0, qword [esp + 0x88]
movsd qword [esp + 0x30], xmm0
movsd xmm0, qword [esp + 0x20]
subsd xmm0, qword [esp + 0x90]
movsd qword [esp + 0x38], xmm0
movsd xmm0, qword [esp + 0x28]
subsd xmm0, qword [esp + 0x98]
jmp 0x51ecb7
subsd xmm0, qword [esp + 0xb8]
movsd qword [esp + 0x30], xmm0
movsd xmm0, qword [esp + 0x20]
subsd xmm0, qword [esp + 0xc0]
movsd qword [esp + 0x38], xmm0
movsd xmm0, qword [esp + 0x28]
subsd xmm0, qword [esp + 0xc8]
movsd qword [esp + 0x40], xmm0
lea ecx, [esp + 0x30]
call fcn.004a88b0
fstp qword [esp + 0x10]
movsd xmm0, qword [esp + 0x10]
comisd xmm0, xmmword [esp + 0x48]
jbe 0x51ecde
movsd qword [esp + 0x48], xmm0
movsd xmm0, qword [esp + 0x68]
addsd xmm0, qword [esp + 0xe0]
inc edi
cmp edi, dword [ebp + 0x14]
movsd qword [esp + 0x68], xmm0
jl 0x51ea15
fld qword [esp + 0x48]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
fld qword [0x5ff710]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret