Function at 0x1801f6500
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r14
push r15
sub rsp, 0x60
mov r15d, r9d
mov r14, r8
mov rbx, rdx
mov rdi, rcx
test rdx, rdx
je 0x1801f662f
mov rcx, r8
call qword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x1801f662f
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x80]
test eax, eax
je 0x1801f662f
mov rcx, rbx
call fcn.1801f0480
test al, al
je 0x1801f662f
mov ebp, dword [rsp + 0xa8]
mov ecx, ebp
and ecx, 1
call qword [sym.imp.USER32.dll_GetKeyState]
mov qword [rbx + 0x60], rdi
mov ecx, ebp
movzx esi, ax
mov qword [rbx + 0x30], r14
shr ecx, 1
mov eax, ebp
shr eax, 2
and cl, 1
and al, 1
mov byte [rdi + 0x30], cl
mov byte [rdi + 0x37], al
movzx ecx, bpl
and cl, 1
shr esi, 0xf
mov eax, ebp
mov byte [rdi + 0x32], cl
shr eax, 3
mov ecx, 1
and al, 1
mov qword [rdi + 0x18], rbx
mov byte [rdi + 0x38], al
and sil, 1
mov eax, ebp
shr eax, 4
and al, 1
mov byte [rdi + 0x39], al
mov eax, ebp
shr eax, 5
and al, 1
mov byte [rdi + 0x3a], al
mov eax, ebp
shr eax, 8
and al, 1
mov byte [rdi + 0x3b], al
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, 1
mov byte [rdi + 0x31], al
mov byte [rbx + 0xd1], 0
mov rcx, qword [rdi + 0x18]
mov rcx, qword [rcx + 0x30]
call qword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x1801f661b
cmp byte [rdi + 0x37], 0
jne 0x1801f661b
mov rcx, qword [rdi + 0x18]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x211
mov rcx, qword [rcx + 0x30]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, rdi
call fcn.1801f8a60
test al, al
jne 0x1801f664b
mov rcx, rbx
call fcn.1801f06f0
xor eax, eax
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rdi
ret
cmp byte [rdi + 0x37], 0
mov byte [rdi + 0x33], sil
mov byte [rdi + 0x31], sil
jne 0x1801f668c
mov rcx, qword [rdi + 0x18]
xor r9d, r9d
mov r8, qword [rbx + 0x40]
mov edx, 0x117
mov rcx, qword [rcx + 0x30]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [rdi + 0x18]
xor r8d, r8d
mov r9, rcx
mov edx, 0x2117
mov rcx, qword [rcx + 0x30]
call qword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [rsp + 0xa0]
xor esi, esi
mov r14, qword [rsp + 0xb0]
mov dword [rsp + 0x44], eax
mov rcx, r14
xor eax, eax
mov dword [rsp + 0x40], r15d
lea edx, [rsi + 0x10]
mov qword [rsp + 0x88], rsi
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], rax
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1801f66d0
movups xmm0, xmmword [r14]
jmp 0x1801f66d5
movups xmm0, xmmword [rsp + 0x48]
movups xmmword [rbx + 0x148], xmm0
movzx r8d, byte [rdi + 0x3a]
lea rdx, [rsp + 0x88]
mov rcx, rbx
call fcn.1801f0380
mov eax, ebp
lea r9, [rsp + 0x88]
shr eax, 7
lea r8, [rsp + 0x40]
and al, 1
shr ebp, 6
mov byte [rsp + 0x30], al
and bpl, 1
mov byte [rsp + 0x28], bpl
mov qword [rsp + 0x20], r14
call fcn.1801f7a50
mov eax, dword [rsp + 0x8c]
mov rdx, 0xffffffffffffffff
mov r9d, dword [rsp + 0x44]
mov r8d, dword [rsp + 0x40]
mov rcx, qword [rbx + 0x28]
mov dword [rsp + 0x30], 0x250
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x88]
mov dword [rsp + 0x20], eax
call qword [sym.imp.USER32.dll_SetWindowPos]
mov rcx, rbx
call fcn.1801f0340
mov rcx, rdi
call fcn.1801f8b10
cmp byte [rdi + 0x3f], sil
jne 0x1801f662f
mov rdx, qword [rbx + 0x78]
test rdx, rdx
je 0x1801f6789
mov rcx, qword [rbx + 0x28]
call qword [sym.imp.USER32.dll_KillTimer]
mov qword [rbx + 0x78], rsi
mov rdx, rbx
mov rcx, rdi
call fcn.1801f7680
mov rcx, rbx
call fcn.1801f06f0
cmp byte [rdi + 0x32], sil
je 0x1801f67a5
mov esi, dword [rdi + 0x28]
mov eax, esi
jmp 0x1801f6631