Function at 0x1801f6ac0
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 0x1801f6bef
mov rcx, r8
call qword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x1801f6bef
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x80]
test eax, eax
je 0x1801f6bef
mov rcx, rbx
call fcn.1801f0a40
test al, al
je 0x1801f6bef
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 0x1801f6bdb
cmp byte [rdi + 0x37], 0
jne 0x1801f6bdb
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.1801f9020
test al, al
jne 0x1801f6c0b
mov rcx, rbx
call fcn.1801f0cb0
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 0x1801f6c4c
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 0x1801f6c90
movups xmm0, xmmword [r14]
jmp 0x1801f6c95
movups xmm0, xmmword [rsp + 0x48]
movups xmmword [rbx + 0x148], xmm0
movzx r8d, byte [rdi + 0x3a]
lea rdx, [rsp + 0x88]
mov rcx, rbx
call fcn.1801f0940
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.1801f8010
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.1801f0900
mov rcx, rdi
call fcn.1801f90d0
cmp byte [rdi + 0x3f], sil
jne 0x1801f6bef
mov rdx, qword [rbx + 0x78]
test rdx, rdx
je 0x1801f6d49
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.1801f7c40
mov rcx, rbx
call fcn.1801f0cb0
cmp byte [rdi + 0x32], sil
je 0x1801f6d65
mov esi, dword [rdi + 0x28]
mov eax, esi
jmp 0x1801f6bf1