Function at 0x1801fb340
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 0x1801fb46f
mov rcx, r8
call qword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x1801fb46f
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x80]
test eax, eax
je 0x1801fb46f
mov rcx, rbx
call fcn.1801f52c0
test al, al
je 0x1801fb46f
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 0x1801fb45b
cmp byte [rdi + 0x37], 0
jne 0x1801fb45b
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.1801fd8a0
test al, al
jne 0x1801fb48b
mov rcx, rbx
call fcn.1801f5530
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 0x1801fb4cc
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 0x1801fb510
movups xmm0, xmmword [r14]
jmp 0x1801fb515
movups xmm0, xmmword [rsp + 0x48]
movups xmmword [rbx + 0x148], xmm0
movzx r8d, byte [rdi + 0x3a]
lea rdx, [rsp + 0x88]
mov rcx, rbx
call fcn.1801f51c0
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.1801fc890
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.1801f5180
mov rcx, rdi
call fcn.1801fd950
cmp byte [rdi + 0x3f], sil
jne 0x1801fb46f
mov rdx, qword [rbx + 0x78]
test rdx, rdx
je 0x1801fb5c9
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.1801fc4c0
mov rcx, rbx
call fcn.1801f5530
cmp byte [rdi + 0x32], sil
je 0x1801fb5e5
mov esi, dword [rdi + 0x28]
mov eax, esi
jmp 0x1801fb471