Function at 0x1400152a0
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
push rbp
push rdi
push r14
lea rbp, [rax - 0x5f]
sub rsp, 0x90
movaps xmmword [rax - 0x28], xmm6
mov rax, qword [0x140098040]
xor rax, rsp
mov qword [rbp + 0x27], rax
mov rax, qword [0x140099b98]
xor edi, edi
sub rax, qword [0x140099b90]
xorps xmm0, xmm0
mov rsi, qword [0x1400994d8]
movss xmm6, dword [0x1400980e0]
sar rax, 3
mov qword [rbp + 7], rdi
movdqu xmmword [rbp - 9], xmm0
test rax, rax
je 0x14001539c
movabs rcx, 0x1fffffffffffffff
cmp rax, rcx
ja 0x1400155d1
lea rbx, [rax*8]
test rbx, rbx
je 0x140015364
cmp rbx, 0x1000
jb 0x140015359
lea rcx, [rbx + 0x27]
cmp rcx, rbx
jbe 0x1400155cb
call fcn.140049aa0
test rax, rax
je 0x140015352
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x140015364
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, rbx
call fcn.140049aa0
mov rdi, rax
mov rdx, qword [0x140099b90]
lea rcx, [rbx + rdi]
mov rbx, qword [0x140099b98]
sub rbx, rdx
mov qword [rbp + 7], rcx
mov r8, rbx
mov qword [rbp - 9], rdi
mov rcx, rdi
mov qword [rbp - 1], rdi
call sub.VCRUNTIME140.dll_memmove
sar rbx, 3
lea rax, [rdi + rbx*8]
mov qword [rbp - 1], rax
movaps xmm1, xmm6
lea rcx, [rbp - 9]
call fcn.140015060
mov rdi, rax
test rax, rax
je 0x1400155a2
lea rcx, [rax + 0x1d0]
mov qword [rsp + 0xb0], r15
mov qword [rbp - 0x19], 0
mov dword [rbp - 0x11], 0
call fcn.1400189b0
movabs r15, 0x7ffffffeffff
lea rcx, [rax - 0x10000]
cmp rcx, r15
jbe 0x1400153fd
movss xmm0, dword [0x14008db68]
movaps xmm1, xmm0
movaps xmm2, xmm0
jmp 0x14001542e
lea rcx, [rax + 0x2c]
mov qword [rbp + 0x17], 0
mov r8d, 0xc
mov dword [rbp + 0x1f], 0
lea rdx, [rbp + 0x17]
call fcn.14000dc00
movss xmm0, dword [rbp + 0x1f]
movss xmm1, dword [rbp + 0x1b]
movss xmm2, dword [rbp + 0x17]
lea rdx, [rbp - 0x19]
movss dword [rbp + 0x17], xmm2
lea rcx, [rbp + 0x17]
movss dword [rbp + 0x1b], xmm1
movss dword [rbp + 0x1f], xmm0
call fcn.14000e600
movdqa xmm0, xmmword [0x14008e3f0]
lea rcx, [rbp - 9]
movss xmm1, dword [rbp - 0x15]
movups xmmword [rbp - 9], xmm0
movss xmm0, dword [rbp - 0x19]
movss dword [rbp + 0xf], xmm0
movss xmm0, dword [rsi + 0x10]
mulss xmm0, dword [0x14008da3c]
movss dword [rbp + 0x13], xmm1
movss dword [rbp + 0x17], xmm0
movss xmm0, dword [rsi + 0x14]
mulss xmm0, dword [0x14008da3c]
movss dword [rbp + 0x1b], xmm0
call fcn.14001bca0
movss xmm0, dword [0x14008da64]
lea r8, [rbp + 0xf]
mov r9d, eax
movss dword [rsp + 0x20], xmm0
lea rdx, [rbp + 0x17]
lea rcx, [rsi + 0x1cc8]
call fcn.140035f40
mov ecx, dword [0x1400980d0]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14001559a
mov rcx, qword [0x140098588]
add rcx, 0x2960
call fcn.1400189b0
lea rcx, [rax + 8]
call fcn.1400189b0
lea rbx, [rax - 0xa8]
lea rcx, [rbx - 0x10000]
cmp rcx, r15
ja 0x14001559a
mov rcx, qword [0x140098588]
add rcx, 0x2960
call fcn.1400189b0
lea rcx, [rax + 8]
call fcn.1400189b0
sub rax, 0xa8
cmp rbx, rax
jne 0x140015550
mov rcx, qword [0x140098588]
add rcx, 0x2960
call fcn.1400189b0
lea rcx, [rax + 8]
call fcn.1400189b0
lea rcx, [rax + 0x128]
jmp 0x140015557
lea rcx, [rbx + 0x1d0]
call fcn.1400189b0
mov r8d, 0xc
mov dword [rbp + 0x1f], 0
lea rdx, [rbp + 0x17]
mov qword [rbp + 0x17], 0
lea rcx, [rax + 0x2c]
call fcn.14000dc00
movsd xmm0, qword [rbp + 0x17]
lea rdx, [rbp - 0x19]
mov eax, dword [rbp + 0x1f]
mov rcx, rdi
movsd qword [rbp - 0x19], xmm0
mov dword [rbp - 0x11], eax
call fcn.14000e920
mov r15, qword [rsp + 0xb0]
mov rcx, qword [rbp + 0x27]
xor rcx, rsp
call fcn.140049a80
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret
call fcn.1400012c0
int3
call fcn.14000d010
int3