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

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0xf8]
sub rsp, 0x1d0
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
movaps xmmword [rax - 0x78], xmm10
mov rax, qword [0x140052040]
xor rax, rsp
mov qword [rbp + 0x78], rax
xor r13d, r13d
mov r15, qword [0x140052168]
mov r12, qword [0x140052170]
cmp r15, r12
je 0x14003af05
lea rdi, [r15 + 0x80]
movabs r14, 0x2aaaaaaaaaaaaaab
movabs r8, 0x1fffffffffffffff
movdqa xmm9, xmmword [0x140049230]
movdqa xmm8, xmmword [0x1400490f0]
movdqa xmm7, xmmword [0x140049120]
xorps xmm6, xmm6
movss xmm10, dword [0x140048ddc]
cmp byte [rdi - 0x6c], 0
jne 0x14003aeee
xorps xmm0, xmm0
mov rcx, qword [rdi]
sub rcx, qword [rdi - 8]
mov rax, r14
imul rcx
mov rbx, rdx
sar rbx, 1
mov rax, rbx
shr rax, 0x3f
add rbx, rax
movdqu xmmword [rbp + 0x40], xmm0
mov qword [rbp + 0x50], r13
je 0x14003a6d1
cmp rbx, r8
ja 0x14003af59
lea rsi, [rbx*8]
test rsi, rsi
jne 0x14003a676
mov rax, r13
jmp 0x14003a6b3
cmp rsi, 0x1000
jb 0x14003a6ab
lea rcx, [rsi + 0x27]
cmp rcx, rsi
jbe 0x14003af5f
call fcn.14003d410
mov rcx, rax
test rax, rax
je 0x14003a7db
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x14003a6b3
mov rcx, rsi
call fcn.14003d410
mov qword [rbp + 0x40], rax
lea rcx, [rax + rsi]
mov qword [rbp + 0x50], rcx
nop
mov qword [rax], r13
add rax, 8
sub rbx, 1
jne 0x14003a6c0
mov qword [rbp + 0x48], rax
mov ebx, r13d
mov r8, qword [rdi - 8]
mov rcx, qword [rdi]
sub rcx, r8
mov rax, r14
imul rcx
sar rdx, 1
mov rax, rdx
shr rax, 0x3f
add rdx, rax
je 0x14003a785
mov r10, r13
mov r9, r13
nop dword [rax]
movsd xmm0, qword [r9 + r8]
movsd qword [rbp], xmm0
mov eax, dword [r9 + r8 + 8]
mov dword [rbp + 8], eax
lea r8, [rbp]
lea rdx, [rsp + 0x50]
lea rcx, [0x140052190]
call fcn.140039430
movss xmm0, dword [rsp + 0x50]
ucomiss xmm0, xmm6
jp 0x14003a742
jne 0x14003a742
movss xmm0, dword [rsp + 0x54]
ucomiss xmm0, xmm6
jp 0x14003a742
je 0x14003a79a
mov rax, qword [rbp + 0x40]
movsd xmm0, qword [rsp + 0x50]
movsd qword [r10 + rax], xmm0
inc ebx
add r9, 0xc
add r10, 8
mov r8, qword [rdi - 8]
mov rcx, qword [rdi]
sub rcx, r8
mov rax, r14
imul rcx
sar rdx, 1
mov rax, rdx
shr rax, 0x3f
add rdx, rax
movsxd rax, ebx
cmp rax, rdx
jb 0x14003a700
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
cmp byte [rdi - 0x6b], 0
jne 0x14003a7e2
movups xmmword [rsp + 0x58], xmm7
jmp 0x14003a7f6
mov rcx, qword [rbp + 0x40]
test rcx, rcx
je 0x14003aee4
mov rdx, qword [rbp + 0x50]
sub rdx, rcx
and rdx, 0xfffffffffffffff8
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003aedf
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14003aedf
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
cmp byte [rdi - 0x6a], 0
jne 0x14003a7f0
movups xmmword [rsp + 0x58], xmm8
jmp 0x14003a7f6
movups xmmword [rsp + 0x58], xmm9
mov rcx, qword [0x140052f88]
mov rax, qword [rcx + 0x3ed8]
mov byte [rax + 0xb8], 1
mov rax, qword [rcx + 0x3ed8]
mov r10, qword [rax + 0x298]
lea rcx, [rsp + 0x58]
call fcn.14000b370
mov ebx, eax
mov rdx, qword [rbp + 0x40]
movss xmm1, dword [rdx + 4]
movss xmm0, dword [rdx]
movss dword [rsp + 0x68], xmm0
movss dword [rsp + 0x6c], xmm1
movss xmm2, dword [rdx + 0xc]
movss xmm0, dword [rdx + 8]
movss dword [rsp + 0x70], xmm0
movss dword [rsp + 0x74], xmm2
movss dword [rsp + 0x20], xmm10
mov r9d, eax
lea r8, [rsp + 0x68]
lea rdx, [rsp + 0x70]
mov rcx, r10
call fcn.14002ab90
mov rcx, qword [0x140052f88]
mov rax, qword [rcx + 0x3ed8]
mov byte [rax + 0xb8], 1
mov rax, qword [rcx + 0x3ed8]
mov rcx, qword [rax + 0x298]
mov rax, qword [rbp + 0x40]
movss xmm1, dword [rax + 0x14]
movss xmm0, dword [rax + 0x10]
movss dword [rsp + 0x78], xmm0
movss dword [rsp + 0x7c], xmm1
movss xmm2, dword [rax + 0xc]
movss xmm0, dword [rax + 8]
movss dword [rbp - 0x80], xmm0
movss dword [rbp - 0x7c], xmm2
movss dword [rsp + 0x20], xmm10
mov r9d, ebx
lea r8, [rsp + 0x78]
lea rdx, [rbp - 0x80]
call fcn.14002ab90
mov rcx, qword [0x140052f88]
mov rax, qword [rcx + 0x3ed8]
mov byte [rax + 0xb8], 1
mov rax, qword [rcx + 0x3ed8]
mov rcx, qword [rax + 0x298]
mov rax, qword [rbp + 0x40]
movss xmm1, dword [rax + 0x1c]
movss xmm0, dword [rax + 0x18]
movss dword [rbp - 0x78], xmm0
movss dword [rbp - 0x74], xmm1
movss xmm2, dword [rax + 0x14]
movss xmm0, dword [rax + 0x10]
movss dword [rbp - 0x70], xmm0
movss dword [rbp - 0x6c], xmm2
movss dword [rsp + 0x20], xmm10
mov r9d, ebx
lea r8, [rbp - 0x78]
lea rdx, [rbp - 0x70]
call fcn.14002ab90
mov rcx, qword [0x140052f88]
mov rax, qword [rcx + 0x3ed8]
mov byte [rax + 0xb8], 1
mov rax, qword [rcx + 0x3ed8]
mov rcx, qword [rax + 0x298]
mov rax, qword [rbp + 0x40]
movss xmm1, dword [rax + 0x24]
movss xmm0, dword [rax + 0x20]
movss dword [rbp - 0x68], xmm0
movss dword [rbp - 0x64], xmm1
movss xmm2, dword [rax + 0xc]
movss xmm0, dword [rax + 8]
movss dword [rbp - 0x60], xmm0
movss dword [rbp - 0x5c], xmm2
movss dword [rsp + 0x20], xmm10
mov r9d, ebx
lea r8, [rbp - 0x68]
lea rdx, [rbp - 0x60]
call fcn.14002ab90
mov rcx, qword [0x140052f88]
mov rax, qword [rcx + 0x3ed8]
mov byte [rax + 0xb8], 1
mov rax, qword [rcx + 0x3ed8]
mov rcx, qword [rax + 0x298]
mov rax, qword [rbp + 0x40]
movss xmm1, dword [rax + 0x2c]
movss xmm0, dword [rax + 0x28]
movss dword [rbp - 0x58], xmm0
movss dword [rbp - 0x54], xmm1
movss xmm2, dword [rax + 0x24]
movss xmm0, dword [rax + 0x20]
movss dword [rbp - 0x50], xmm0
movss dword [rbp - 0x4c], xmm2
movss dword [rsp + 0x20], xmm10
mov r9d, ebx
lea r8, [rbp - 0x58]
lea rdx, [rbp - 0x50]
call fcn.14002ab90
mov rcx, qword [0x140052f88]
mov rax, qword [rcx + 0x3ed8]
mov byte [rax + 0xb8], 1
mov rax, qword [rcx + 0x3ed8]
mov rcx, qword [rax + 0x298]
mov rax, qword [rbp + 0x40]
movss xmm1, dword [rax + 0x34]
movss xmm0, dword [rax + 0x30]
movss dword [rbp - 0x48], xmm0
movss dword [rbp - 0x44], xmm1
movss xmm2, dword [rax + 4]
movss xmm0, dword [rax]
movss dword [rbp - 0x40], xmm0
movss dword [rbp - 0x3c], xmm2
movss dword [rsp + 0x20], xmm10
mov r9d, ebx
lea r8, [rbp - 0x48]
lea rdx, [rbp - 0x40]
call fcn.14002ab90
mov rcx, qword [0x140052f88]
mov rax, qword [rcx + 0x3ed8]
mov byte [rax + 0xb8], 1
mov rax, qword [rcx + 0x3ed8]
mov rcx, qword [rax + 0x298]
mov rax, qword [rbp + 0x40]
movss xmm1, dword [rax + 0x3c]
movss xmm0, dword [rax + 0x38]
movss dword [rbp - 0x38], xmm0
movss dword [rbp - 0x34], xmm1
movss xmm2, dword [rax + 0x34]
movss xmm0, dword [rax + 0x30]
movss dword [rbp - 0x30], xmm0
movss dword [rbp - 0x2c], xmm2
movss dword [rsp + 0x20], xmm10
mov r9d, ebx
lea r8, [rbp - 0x38]
lea rdx, [rbp - 0x30]
call fcn.14002ab90
mov rcx, qword [0x140052f88]
mov rax, qword [rcx + 0x3ed8]
mov byte [rax + 0xb8], 1
mov rax, qword [rcx + 0x3ed8]
mov rcx, qword [rax + 0x298]
mov rax, qword [rbp + 0x40]
movss xmm1, dword [rax + 0x44]
movss xmm0, dword [rax + 0x40]
movss dword [rbp - 0x28], xmm0
movss dword [rbp - 0x24], xmm1
movss xmm2, dword [rax + 4]
movss xmm0, dword [rax]
movss dword [rbp - 0x20], xmm0
movss dword [rbp - 0x1c], xmm2
movss dword [rsp + 0x20], xmm10
mov r9d, ebx
lea r8, [rbp - 0x28]
lea rdx, [rbp - 0x20]
call fcn.14002ab90
mov rcx, qword [0x140052f88]
mov rax, qword [rcx + 0x3ed8]
mov byte [rax + 0xb8], 1
mov rax, qword [rcx + 0x3ed8]
mov rcx, qword [rax + 0x298]
mov rax, qword [rbp + 0x40]
movss xmm1, dword [rax + 0x4c]
movss xmm0, dword [rax + 0x48]
movss dword [rbp - 0x18], xmm0
movss dword [rbp - 0x14], xmm1
movss xmm2, dword [rax + 0x44]
movss xmm0, dword [rax + 0x40]
movss dword [rbp - 0x10], xmm0
movss dword [rbp - 0xc], xmm2
movss dword [rsp + 0x20], xmm10
mov r9d, ebx
lea r8, [rbp - 0x18]
lea rdx, [rbp - 0x10]
call fcn.14002ab90
mov rcx, qword [0x140052320]
test rcx, rcx
je 0x14003aea3
mov dword [rbp + 0x38], 0
movsd xmm3, qword [rcx + 0xc0]
movss xmm0, dword [rcx + 0xc8]
movlhps xmm3, xmm0
movaps xmm0, xmm6
unpcklps xmm0, xmm6
xorps xmm2, xmm2
movsd xmm2, xmm0
movss xmm0, dword [rbp + 0x38]
movlhps xmm2, xmm0
cmpeqps xmm2, xmm3
movmskps eax, xmm2
and eax, 7
cmp al, 7
je 0x14003aea3
mov rax, qword [rdi - 8]
movsd xmm2, qword [rcx + 0xc0]
movss xmm0, dword [rcx + 0xc8]
movlhps xmm2, xmm0
movsd xmm3, qword [rax]
movss xmm0, dword [rax + 8]
movlhps xmm3, xmm0
subps xmm3, xmm2
mulps xmm3, xmm3
movaps xmm0, xmm3
shufps xmm0, xmm3, 0x66
addss xmm3, xmm0
shufps xmm0, xmm0, 0x55
addss xmm3, xmm0
shufps xmm3, xmm3, 0
sqrtps xmm0, xmm3
cvttss2si edx, xmm0
lea rcx, [rbp + 0x10]
call fcn.14003a1c0
mov rbx, rax
mov r8, qword [rax + 0x10]
mov rcx, qword [rax + 0x18]
mov rax, rcx
sub rax, r8
cmp rax, 6
jb 0x14003acf2
lea rax, [r8 + 6]
mov qword [rbx + 0x10], rax
mov rsi, rbx
cmp rcx, 0xf
jbe 0x14003ac71
mov rsi, qword [rbx]
lea rax, [0x140048c2a]
cmp rax, rsi
jbe 0x14003ac9f
lea rax, [rsi + r8]
lea rcx, str.Dist:
cmp rcx, rax
ja 0x14003ac9f
cmp rsi, rcx
ja 0x14003ac97
mov r14, r13
jmp 0x14003aca5
mov r14, rsi
sub r14, rcx
jmp 0x14003aca5
mov r14d, 6
inc r8
lea rcx, [rsi + 6]
mov rdx, rsi
call sub.VCRUNTIME140.dll_memmove
mov r8, r14
lea rdx, str.Dist:
mov rcx, rsi
call sub.VCRUNTIME140.dll_memcpy
mov r8d, 6
sub r8, r14
lea rdx, str.Dist:
add rdx, 6
add rdx, r14
lea rcx, [rsi + r14]
call sub.VCRUNTIME140.dll_memcpy
movabs r14, 0x2aaaaaaaaaaaaaab
jmp 0x14003ad0b
mov qword [rsp + 0x28], 6
mov edx, 6
mov rcx, rbx
call fcn.14003b570
mov rbx, rax
xorps xmm0, xmm0
movups xmmword [rbp + 0x58], xmm0
mov qword [rbp + 0x68], r13
mov qword [rbp + 0x70], r13
movups xmm0, xmmword [rbx]
movups xmmword [rbp + 0x58], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rbp + 0x68], xmm1
mov qword [rbx + 0x10], r13
mov qword [rbx + 0x18], 0xf
mov byte [rbx], 0
mov rdx, qword [rbp + 0x28]
cmp rdx, 0xf
jbe 0x14003ad73
inc rdx
mov rcx, qword [rbp + 0x10]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003ad6e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003af4b
call fcn.14003d694
mov qword [rbp + 0x20], r13
mov qword [rbp + 0x28], 0xf
mov byte [rbp + 0x10], 0
mov rcx, qword [0x140052f88]
mov rax, qword [rcx + 0x3ed8]
mov byte [rax + 0xb8], 1
mov rax, qword [rcx + 0x3ed8]
mov rbx, qword [rax + 0x298]
lea r9, [rbp + 0x58]
mov r10, qword [rbp + 0x58]
mov r11, qword [rbp + 0x70]
cmp r11, 0xf
cmova r9, r10
lea rcx, [rsp + 0x58]
call fcn.14000b370
mov edx, eax
mov r8, qword [rbp + 0x40]
movss xmm1, dword [r8 + 4]
movss xmm0, dword [r8]
movss dword [rbp - 8], xmm0
movss dword [rbp - 4], xmm1
test eax, 0xff000000
je 0x14003ae56
mov rcx, 0xffffffffffffffff
nop dword [rax]
inc rcx
cmp byte [r9 + rcx], 0
jne 0x14003adf0
add rcx, r9
cmp r9, rcx
je 0x14003ae56
mov rax, qword [rbx + 0x38]
movups xmm0, xmmword [rbx + 0x88]
movups xmmword [rsp + 0x58], xmm0
mov byte [rsp + 0x48], 0
movss dword [rsp + 0x40], xmm6
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x30], r9
lea rcx, [rsp + 0x58]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], edx
lea r9, [rbp - 8]
movss xmm2, dword [rax + 0x10]
mov rdx, rbx
mov rcx, qword [rax + 8]
call fcn.14002e7f0
mov r8, qword [rbp + 0x40]
mov r11, qword [rbp + 0x70]
mov r10, qword [rbp + 0x58]
cmp r11, 0xf
jbe 0x14003ae91
lea rdx, [r11 + 1]
mov rax, r10
cmp rdx, 0x1000
jb 0x14003ae85
add rdx, 0x27
mov r10, qword [r10 - 8]
sub rax, r10
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003af52
mov rcx, r10
call fcn.14003d694
mov r8, qword [rbp + 0x40]
mov qword [rbp + 0x68], r13
mov qword [rbp + 0x70], 0xf
mov byte [rbp + 0x58], 0
jmp 0x14003aea7
mov r8, qword [rbp + 0x40]
test r8, r8
je 0x14003aee4
mov rdx, qword [rbp + 0x50]
sub rdx, r8
and rdx, 0xfffffffffffffff8
mov rax, r8
cmp rdx, 0x1000
jb 0x14003aedc
add rdx, 0x27
mov r8, qword [r8 - 8]
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003a7db
mov rcx, r8
call fcn.14003d694
movabs r8, 0x1fffffffffffffff
add r15, 0xd0
add rdi, 0xd0
cmp r15, r12
jne 0x14003a626
mov rcx, qword [rbp + 0x78]
xor rcx, rsp
call fcn.14003d3f0
lea r11, [rsp + 0x1d0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call fcn.140009110
int3
call fcn.140001ff0
int3