Function at 0x1801f63e0
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 0x1801f650f
mov rcx, r8
call qword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x1801f650f
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x80]
test eax, eax
je 0x1801f650f
mov rcx, rbx
call fcn.1801f0360
test al, al
je 0x1801f650f
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 0x1801f64fb
cmp byte [rdi + 0x37], 0
jne 0x1801f64fb
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.1801f8940
test al, al
jne 0x1801f652b
mov rcx, rbx
call fcn.1801f05d0
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 0x1801f656c
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 0x1801f65b0
movups xmm0, xmmword [r14]
jmp 0x1801f65b5
movups xmm0, xmmword [rsp + 0x48]
movups xmmword [rbx + 0x148], xmm0
movzx r8d, byte [rdi + 0x3a]
lea rdx, [rsp + 0x88]
mov rcx, rbx
call fcn.1801f0260
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.1801f7930
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.1801f0220
mov rcx, rdi
call fcn.1801f89f0
cmp byte [rdi + 0x3f], sil
jne 0x1801f650f
mov rdx, qword [rbx + 0x78]
test rdx, rdx
je 0x1801f6669
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.1801f7560
mov rcx, rbx
call fcn.1801f05d0
cmp byte [rdi + 0x32], sil
je 0x1801f6685
mov esi, dword [rdi + 0x28]
mov eax, esi
jmp 0x1801f6511