Function at 0x14001c830
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
sub rsp, 0x100
lea rbp, [rsp + 0x40]
and rbp, 0xffffffffffffffe0
xor sil, sil
movabs r13, 0x7fffffffdf37aa7f
xor dil, dil
movabs r14, 0x7fffffffffffffff
movabs r12, 0x7fffffffff67697f
movabs r15, 0x7fffffffeb236c7f
movabs rax, 0xb106b6f549129208
movabs rcx, 0x1d1488639c67a2ce
mov qword [rbp], rax
movabs rdx, 0x797b601f297aaa9
mov rax, qword [rbp]
movabs r8, 0xce91ccab5921645a
mov qword [rbp + 0x80], rax
movabs r9, 0xd775c5902a71e75b
mov qword [rbp], rdx
movabs r10, 0x60f8da218bfbc6dc
mov rax, qword [rbp]
movabs r11, 0xce91a2c27945013d
mov qword [rbp + 0x88], rax
mov qword [rbp], r8
mov rax, qword [rbp]
mov qword [rbp + 0x90], rax
mov qword [rbp], rcx
mov rax, qword [rbp]
mov qword [rbp + 0x98], rax
mov qword [rbp], r9
mov rax, qword [rbp]
mov qword [rbp + 0xa0], rax
mov qword [rbp], r10
mov rax, qword [rbp]
mov qword [rbp + 0xa8], rax
mov qword [rbp], r11
mov rax, qword [rbp]
mov qword [rbp + 0xb0], rax
mov qword [rbp], rcx
mov rax, qword [rbp]
mov qword [rbp + 0xb8], rax
vmovdqu ymm0, ymmword [rbp + 0xa0]
vpxor ymm1, ymm0, ymmword [rbp + 0x80]
vmovdqa ymmword [rbp + 0x80], ymm1
vzeroupper
call fcn.140002970
lea rdx, [rbp + 0x80]
lea rcx, [rax + 0x760]
mov rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp byte [rdx + rax], 0
jne 0x14001c980
cmp qword [rcx + 0x18], 0xf
mov r8, qword [rcx + 0x10]
jbe 0x14001c997
mov rcx, qword [rcx]
cmp r8, rax
jne 0x14001cb51
lea rdx, [rbp + 0x80]
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x14001cb51
call fcn.140002970
cmp byte [rax + 0x20], 0
je 0x14001cb15
call fcn.140002970
mov rbx, rax
mov ecx, dword [rax + 0x914]
test ecx, ecx
je 0x14001ca52
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x14001ca24
test sil, sil
jne 0x14001ca52
cmp byte [rbx + 0x8cf], sil
lea rcx, [rbp + 0x38]
mov sil, 1
sete al
mov byte [rbx + 0x8cf], al
call fcn.140005490
mov rax, qword [rbp + 0x38]
cmp rax, r13
jge 0x14001ca1a
add rax, 0x20c85580
lea rcx, [rbp + 8]
mov qword [rbp + 8], rax
jmp 0x14001ca4d
mov qword [rbp + 8], r14
lea rcx, [rbp + 8]
jmp 0x14001ca4d
lea rcx, [rbp + 0x40]
xor sil, sil
call fcn.140005490
mov rax, qword [rbp + 0x40]
cmp rax, r12
jge 0x14001ca45
add rax, 0x989680
mov qword [rbp + 0x10], rax
jmp 0x14001ca49
mov qword [rbp + 0x10], r14
lea rcx, [rbp + 0x10]
call fcn.14002aff0
mov ecx, dword [rbx + 0x918]
test ecx, ecx
je 0x14001cad9
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x14001caab
test dil, dil
jne 0x14001cad9
cmp byte [rbx + 0x8c9], dil
lea rcx, [rbp + 0x48]
mov dil, 1
sete al
mov byte [rbx + 0x8c9], al
call fcn.140005490
mov rax, qword [rbp + 0x48]
cmp rax, r13
jge 0x14001caa1
add rax, 0x20c85580
lea rcx, [rbp + 0x18]
mov qword [rbp + 0x18], rax
jmp 0x14001cad4
mov qword [rbp + 0x18], r14
lea rcx, [rbp + 0x18]
jmp 0x14001cad4
lea rcx, [rbp + 0x50]
xor dil, dil
call fcn.140005490
mov rax, qword [rbp + 0x50]
cmp rax, r12
jge 0x14001cacc
add rax, 0x989680
mov qword [rbp + 0x20], rax
jmp 0x14001cad0
mov qword [rbp + 0x20], r14
lea rcx, [rbp + 0x20]
call fcn.14002aff0
lea rcx, [rbp + 0x58]
call fcn.140005490
mov rax, qword [rbp + 0x58]
cmp rax, r15
jge 0x14001cb03
add rax, 0x14dc9380
lea rcx, [rbp + 0x28]
mov qword [rbp + 0x28], rax
call fcn.14002aff0
jmp 0x14001c886
lea rcx, [rbp + 0x28]
mov qword [rbp + 0x28], r14
call fcn.14002aff0
jmp 0x14001c886
lea rcx, [rbp + 0x60]
call fcn.140005490
mov rax, qword [rbp + 0x60]
cmp rax, r15
jge 0x14001cb3f
add rax, 0x14dc9380
lea rcx, [rbp + 0x30]
mov qword [rbp + 0x30], rax
call fcn.14002aff0
jmp 0x14001c886
lea rcx, [rbp + 0x30]
mov qword [rbp + 0x30], r14
call fcn.14002aff0
jmp 0x14001c886
lea r11, [rsp + 0x100]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret