Function at 0x1401a5660
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rdi
push rbp
mov rbp, rsp
sub rsp, 0x50
mov rax, qword [0x1402bf040]
xor rax, rsp
mov qword [rbp - 8], rax
mov edi, edx
mov rbx, rcx
cmp edx, 0x27
ja 0x1401a569a
movabs rcx, 0xa100000000
bt rcx, rdi
jb 0x1401a56af
cmp edi, 0x6b
je 0x1401a56af
nop
cmp edi, 0xbb
je 0x1401a56af
xor al, al
jmp 0x1401a59cd
cmp qword [rbx + 0x98], 0
je 0x1401a59cb
mov ecx, 0x11
mov qword [rsp + 0x68], rsi
call qword [sym.imp.USER32.dll_GetKeyState]
movzx esi, ax
mov ecx, 0x10
shr si, 0xf
call qword [sym.imp.USER32.dll_GetKeyState]
shr ax, 0xf
mov ecx, edi
sub ecx, 0x20
je 0x1401a5934
sub ecx, 5
je 0x1401a5846
nop word [rax + rax]
sub ecx, 2
je 0x1401a57ad
sub ecx, 0x44
je 0x1401a5717
cmp ecx, 0x50
jne 0x1401a59c6
cmp edi, 0x6b
jne 0x1401a572a
nop dword [rax]
test sil, sil
jne 0x1401a5748
jmp 0x1401a59c6
cmp edi, 0xbb
jne 0x1401a59c6
test sil, sil
je 0x1401a59c6
nop
test al, al
je 0x1401a59c6
test byte [rbx + 0x40], 0x10
je 0x1401a5765
mov r8, qword ds:[rbx + 0xf8]
xor r9d, r9d
mov rdx, qword [rbx + 0x10]
mov rcx, rbx
call fcn.1401a3ae0
xor edi, edi
cmp dword [rbx + 0xec], edi
jbe 0x1401a59c6
nop dword [rax]
nop word [rax + rax]
mov r8, qword [rbx + 0xe0]
xor r9d, r9d
mov rdx, qword [rbx + 0x18]
mov rcx, rbx
mov r8, qword [r8 + rdi*8]
call fcn.1401a3ae0
inc edi
cmp edi, dword [rbx + 0xec]
jb 0x1401a5780
jmp 0x1401a59c6
mov rdx, qword [rbx + 0x98]
test byte [rdx + 0x34], 1
jne 0x1401a59c6
test byte [rdx], 4
jne 0x1401a57d3
mov r8b, 1
mov rcx, rbx
call fcn.1401a4140
jmp 0x1401a59c6
mov r8, qword ds:[rbx + 0x128]
mov eax, dword [rdx + 0x2c]
inc eax
cmp eax, dword [r8]
jae 0x1401a59c6
mov ecx, eax
mov rax, qword [r8 + 8]
mov rdi, qword [rax + rcx*8]
mov eax, dword [rdx + 0x30]
inc eax
cmp dword [rdi + 0x30], eax
jne 0x1401a59c6
mov qword [rbx + 0x98], rdi
mov rcx, rbx
mov eax, dword [rdi + 0x2c]
mov dword [rbx + 0xa4], eax
mov edx, dword [rdi + 0x2c]
inc edx
call fcn.1401a4d60
xor r8d, r8d
mov rdx, rdi
mov rcx, rbx
call fcn.1401a4a80
mov rax, qword [rbx + 0x98]
mov edx, dword [rax + 0x2c]
mov r8d, edx
jmp 0x1401a58d8
mov rdi, qword [rbx + 0x98]
test byte [rdi + 0x34], 1
jne 0x1401a586b
test byte [rdi], 4
je 0x1401a586b
xor r8d, r8d
mov rdx, rdi
mov rcx, rbx
call fcn.1401a4140
jmp 0x1401a59c6
mov ecx, dword [rdi + 0x30]
test ecx, ecx
je 0x1401a59c6
mov edi, dword ds:[rdi + 0x2c]
dec ecx
test edi, edi
je 0x1401a59c6
mov rax, qword [rbx + 0x128]
mov rdx, qword [rax + 8]
dec edi
mov rsi, qword [rdx + rdi*8]
cmp dword [rsi + 0x30], ecx
je 0x1401a58a9
nop
test edi, edi
jne 0x1401a5893
jmp 0x1401a59c6
mov qword ds:[rbx + 0x98], rsi
mov edx, edi
mov eax, dword [rsi + 0x2c]
mov rcx, rbx
mov dword [rbx + 0xa4], eax
call fcn.1401a4d60
xor r8d, r8d
mov rdx, rsi
mov rcx, rbx
call fcn.1401a4a80
mov r8d, edi
mov edx, edi
lea rax, [rbp - 0x20]
mov r9d, 4
mov qword [rsp + 0x28], rax
mov rcx, rbx
lea rax, [rbp - 0x1c]
mov qword [rsp + 0x20], rax
call fcn.1401a48a0
mov r8d, dword [rbp - 0x20]
lea rax, [rbp - 0x18]
mov edx, dword [rbp - 0x1c]
mov r9b, 1
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.1401a4540
test al, al
je 0x1401a5927
mov rcx, qword [rbx]
lea rdx, [rbp - 0x18]
xor r8d, r8d
call qword [sym.imp.USER32.dll_InvalidateRect]
mov rcx, rbx
call fcn.1401a7f40
jmp 0x1401a59c6
test sil, sil
je 0x1401a5957
mov rcx, qword [rbx + 0x98]
mov r9d, 2
mov eax, dword [rcx + 0x2c]
mov dword [rbx + 0xa4], eax
mov edx, dword [rcx + 0x2c]
mov r8d, edx
jmp 0x1401a597d
test al, al
je 0x1401a59c6
mov edx, dword [rbx + 0xa4]
mov r9d, 4
mov rax, qword [rbx + 0x98]
mov ecx, dword [rax + 0x2c]
cmp ecx, edx
mov r8d, ecx
cmovbe r8d, edx
cmovbe edx, ecx
lea rax, [rbp - 0x20]
mov rcx, rbx
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x1c]
mov qword [rsp + 0x20], rax
call fcn.1401a48a0
mov r8d, dword [rbp - 0x20]
lea rax, [rbp - 0x18]
mov edx, dword [rbp - 0x1c]
mov r9b, 1
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.1401a4540
test al, al
je 0x1401a59c6
mov rcx, qword [rbx]
lea rdx, [rbp - 0x18]
xor r8d, r8d
call qword [sym.imp.USER32.dll_InvalidateRect]
mov rsi, qword [rsp + 0x68]
mov al, 1
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.1401e4a20
mov rbx, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x78]
add rsp, 0x50
pop rbp
ret