Function at 0x14006e600
Capabilities:
Log keystrokes
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x20], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xc0
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
mov rax, qword [0x1402f2018]
xor rax, rsp
mov qword [rbp - 0x11], rax
mov rsi, r8
mov r15, rcx
mov rax, qword [0x1402fb490]
cmp byte [rax + 0x6c], 0
jne 0x14006e9b4
mov r14, qword [0x1402fb580]
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x49], xmm0
xor r12d, r12d
mov qword [rbp - 0x39], r12
mov rdx, qword [0x1402fe798]
sub rdx, qword [0x1402fe790]
je 0x14006e6ac
lea rcx, [rbp - 0x49]
call fcn.140014500
mov rdi, qword [rbp - 0x49]
mov rbx, qword [0x1402fe798]
mov rdx, qword [0x1402fe790]
sub rbx, rdx
mov r8, rbx
mov rcx, rdi
call sub.VCRUNTIME140.dll_memmove
lea rax, [rbx + rdi]
mov qword [rbp - 0x41], rax
lea rdx, [rbp - 0x49]
lea rcx, [r14 + 0x170]
call fcn.140066940
test al, al
jne 0x14006e9b4
mov rax, qword [0x1402fb4f0]
cmp dword [rax + 0x154], 1
je 0x14006e9b4
xor edx, edx
call fcn.14006d430
movzx edi, ax
mov ecx, edi
call qword [sym.imp.USER32.dll_GetKeyState]
movsx ecx, ax
shr ecx, 0xf
test cl, 1
je 0x14006e9b4
mov rcx, qword [0x1402fb9c0]
test rcx, rcx
jne 0x14006e725
mov ecx, 0x36e490
call fcn.14022869c
mov qword [rbp - 0x69], rax
mov rcx, rax
call fcn.1401d6670
mov rcx, rax
mov qword [0x1402fb9c0], rax
movsd xmm0, qword [rsi]
movsd qword [rbp - 0x49], xmm0
mov eax, dword [rsi + 8]
mov dword [rbp - 0x41], eax
lea r8, [rbp - 0x49]
lea rdx, [rbp - 0x69]
call fcn.1401d5b90
movss xmm2, dword [rax]
movss xmm1, dword [rax + 4]
xorps xmm4, xmm4
comiss xmm2, xmm4
jbe 0x14006e78b
movss xmm3, dword [0x1402c1830]
addss xmm2, xmm3
movd xmm0, dword [0x1402fb3a0]
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm2
jbe 0x14006e78b
comiss xmm1, xmm4
jbe 0x14006e78b
addss xmm1, xmm3
movd xmm0, dword [0x1402fb39c]
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm1
ja 0x14006e832
mov rax, qword [0x1402fb580]
movss xmm9, dword [rax + 0x10]
movss xmm0, dword [rax + 0xc]
movss xmm8, dword [rax + 8]
movss dword [rbp - 0x69], xmm8
movss dword [rbp - 0x65], xmm0
movss dword [rbp - 0x61], xmm9
movsd xmm6, qword [rsi]
movss xmm7, dword [rsi + 8]
subss xmm7, xmm9
movsd qword [rbp - 0x49], xmm6
subss xmm6, xmm8
movaps xmm1, xmm6
mulss xmm1, xmm6
movaps xmm0, xmm7
mulss xmm0, xmm7
addss xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x14006e7ef
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x14006e7f7
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
divss xmm6, xmm0
divss xmm7, xmm0
mulss xmm7, dword [0x1402c1978]
mulss xmm6, dword [0x1402c1978]
addss xmm9, xmm7
addss xmm8, xmm6
movsd xmm0, qword [rbp - 0x69]
movss xmm0, xmm8
movsd qword [rbp - 0x69], xmm0
movsd qword [rsi], xmm0
movss dword [rsi + 8], xmm9
lea rcx, [rbp - 0x19]
call qword [sym.imp.USER32.dll_GetCursorPos]
mov rcx, qword [0x1402fb9c0]
test rcx, rcx
jne 0x14006e868
mov ecx, 0x36e490
call fcn.14022869c
mov qword [rbp - 0x69], rax
mov rcx, rax
call fcn.1401d6670
mov rcx, rax
mov qword [0x1402fb9c0], rax
movsd xmm0, qword [rsi]
movsd qword [rbp - 0x49], xmm0
mov eax, dword [rsi + 8]
mov dword [rbp - 0x41], eax
lea r8, [rbp - 0x49]
lea rdx, [rbp - 0x69]
call fcn.1401d5b90
movss xmm2, dword [rbp - 0x65]
movss xmm1, dword [rbp - 0x69]
mov rcx, r15
call fcn.14006d5e0
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x14006e8b4
imul rax, rax, 0x64
jmp 0x14006e8d2
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
imul rcx, rcx, 0x3b9aca00
add rax, rcx
movabs rsi, 0x7fffffffffffffff
movabs r14, 0x7fffffffff0bdbfe
cmp rax, r14
jg 0x14006e8f7
add rax, 0xf42400
mov qword [rbp - 0x69], rax
jmp 0x14006e8fb
mov qword [rbp - 0x69], rsi
lea rcx, [rbp - 0x69]
call fcn.14006ea00
xor edx, edx
mov ecx, edi
call qword [sym.imp.USER32.dll_MapVirtualKeyW]
mov qword [rbp - 0x49], 1
mov qword [rbp - 0x39], r12
mov qword [rbp - 0x29], r12
mov word [rbp - 0x3f], ax
mov qword [rbp - 0x31], r12
mov word [rbp - 0x41], r12w
mov dword [rbp - 0x3d], 0xa
lea r8, [rbp - 0x49]
mov rcx, r15
call fcn.14006ca60
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x14006e95c
imul rax, rax, 0x64
jmp 0x14006e97a
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
imul rcx, rcx, 0x3b9aca00
add rax, rcx
cmp rax, r14
jg 0x14006e98b
add rax, 0xf42400
mov qword [rbp - 0x69], rax
jmp 0x14006e98f
mov qword [rbp - 0x69], rsi
lea rcx, [rbp - 0x69]
call fcn.14006ea00
movd xmm2, dword [rbp - 0x15]
cvtdq2ps xmm2, xmm2
movd xmm1, dword [rbp - 0x19]
cvtdq2ps xmm1, xmm1
mov rcx, r15
call fcn.14006d5e0
mov al, 1
jmp 0x14006e9b6
xor al, al
mov rcx, qword [rbp - 0x11]
xor rcx, rsp
call fcn.1402283f0
lea r11, [rsp + 0xc0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret