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

Disassembly:
mov qword [rsp + 0x18], rbx
push rsi
sub rsp, 0x40
movsxd r8, dword [rcx + 0x70]
mov rsi, rcx
mov rax, qword [rdx + 0x88]
movaps xmmword [rsp + 0x30], xmm6
movaps xmm6, xmm3
mov rbx, qword [rax + r8*8]
mov rcx, rbx
mov rax, qword [rbx]
call qword [rax + 0x18]
test al, al
je 0x140055df2
mov r9, qword [rsi + 0x40]
movss xmm0, dword [r9]
comiss xmm0, xmm6
jbe 0x140055c19
mov ecx, dword [rsp + 0x80]
test ecx, ecx
je 0x140055be5
cmp ecx, 1
jne 0x140055df2
mov rcx, qword [rbx + 8]
movss xmm1, dword [rcx + 0x68]
subss xmm1, dword [rbx + 0x38]
mulss xmm1, dword [rsp + 0x78]
addss xmm1, dword [rbx + 0x38]
movss dword [rbx + 0x38], xmm1
movss xmm1, dword [rcx + 0x6c]
subss xmm1, dword [rbx + 0x3c]
mulss xmm1, dword [rsp + 0x78]
addss xmm1, dword [rbx + 0x3c]
movss dword [rbx + 0x3c], xmm1
jmp 0x140055bf5
mov rcx, qword [rbx + 8]
mov eax, dword [rcx + 0x68]
mov dword [rbx + 0x38], eax
mov eax, dword [rcx + 0x6c]
mov dword [rbx + 0x3c], eax
mov eax, dword [rcx + 0x60]
mov dword [rbx + 0x30], eax
movzx eax, byte [rcx + 0x64]
mov byte [rbx + 0x34], al
movzx eax, byte [rcx + 0x65]
mov byte [rbx + 0x35], al
mov rbx, qword [rsp + 0x60]
movaps xmm6, xmmword [rsp + 0x30]
add rsp, 0x40
pop rsi
ret
mov rcx, qword [rsi + 0x30]
mov r8d, 6
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x58], rdi
cmp rcx, r8
jbe 0x140055c4c
lea rax, [r9 + 0x18]
movss xmm0, dword [rax]
comiss xmm0, xmm6
ja 0x140055c4f
add r8, 6
add rax, 0x18
cmp r8, rcx
jb 0x140055c36
mov r8, rcx
add r8d, 0xfffffffa
mov eax, 0x2aaaaaab
imul r8d
movsxd rdi, r8d
mov eax, edx
shr eax, 0x1f
add edx, eax
mov rax, qword [rsi + 0x68]
movsxd rcx, edx
cvttss2si ebp, dword [rax + rcx*4]
test ebp, ebp
je 0x140055cd0
cmp ebp, 1
je 0x140055cc0
lea eax, [rbp - 2]
mov r9d, 1
movsxd rcx, eax
mov r8, rdi
mov qword [rsp + 0x20], rcx
movaps xmm1, xmm6
mov rcx, rsi
call fcn.140050b70
lea eax, [rbp + 0x10]
mov r9d, 2
movsxd rcx, eax
mov r8, rdi
mov qword [rsp + 0x20], rcx
movaps xmm1, xmm6
mov rcx, rsi
movaps xmm4, xmm0
call fcn.140050b70
movaps xmm5, xmm0
jmp 0x140055d1b
movss xmm4, dword [r9 + rdi*4 + 4]
movss xmm5, dword [r9 + rdi*4 + 8]
jmp 0x140055d1b
movss xmm0, dword [r9 + rdi*4 + 0x18]
subss xmm0, dword [r9 + rdi*4]
subss xmm6, dword [r9 + rdi*4]
movss xmm4, dword [r9 + rdi*4 + 4]
movss xmm5, dword [r9 + rdi*4 + 8]
movss xmm1, dword [r9 + rdi*4 + 0x1c]
subss xmm1, xmm4
divss xmm6, xmm0
movss xmm0, dword [r9 + rdi*4 + 0x20]
subss xmm0, xmm5
mulss xmm1, xmm6
addss xmm4, xmm1
mulss xmm0, xmm6
addss xmm5, xmm0
cmp dword [rsp + 0x80], 0
mov rbp, qword [rsp + 0x50]
jne 0x140055d75
cmp dword [rsp + 0x88], 1
mov rcx, qword [rbx + 8]
subss xmm4, dword [rcx + 0x68]
mulss xmm4, dword [rsp + 0x78]
addss xmm4, dword [rcx + 0x68]
movss dword [rbx + 0x38], xmm4
subss xmm5, dword [rcx + 0x6c]
mulss xmm5, dword [rsp + 0x78]
addss xmm5, dword [rcx + 0x6c]
movss dword [rbx + 0x3c], xmm5
jne 0x140055da9
mov eax, dword [rcx + 0x60]
mov dword [rbx + 0x30], eax
movzx eax, byte [rcx + 0x64]
mov byte [rbx + 0x34], al
movzx eax, byte [rcx + 0x65]
jmp 0x140055dea
cmp dword [rsp + 0x88], 0
subss xmm4, dword [rbx + 0x38]
subss xmm5, dword [rbx + 0x3c]
mulss xmm4, dword [rsp + 0x78]
mulss xmm5, dword [rsp + 0x78]
addss xmm4, dword [rbx + 0x38]
addss xmm5, dword [rbx + 0x3c]
movss dword [rbx + 0x38], xmm4
movss dword [rbx + 0x3c], xmm5
jne 0x140055ded
mov rax, qword [rsi + 0x40]
xorps xmm1, xmm1
cvttss2si ecx, dword [rax + rdi*4 + 0xc]
mov dword [rbx + 0x30], ecx
mov rax, qword [rsi + 0x40]
movss xmm0, dword [rax + rdi*4 + 0x10]
ucomiss xmm0, xmm1
jp 0x140055dce
jne 0x140055dce
xor al, al
jmp 0x140055dd0
mov al, 1
mov byte [rbx + 0x34], al
mov rax, qword [rsi + 0x40]
movss xmm0, dword [rax + rdi*4 + 0x14]
ucomiss xmm0, xmm1
jp 0x140055de8
jne 0x140055de8
xor al, al
jmp 0x140055dea
mov al, 1
mov byte [rbx + 0x35], al
mov rdi, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x60]
movaps xmm6, xmmword [rsp + 0x30]
add rsp, 0x40
pop rsi
ret