Function at 0x1802510b0
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 0x1802511df
mov rcx, r8
call qword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x1802511df
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x80]
test eax, eax
je 0x1802511df
mov rcx, rbx
call fcn.18024aea0
test al, al
je 0x1802511df
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 0x1802511cb
cmp byte [rdi + 0x37], 0
jne 0x1802511cb
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.1802535f0
test al, al
jne 0x1802511fb
mov rcx, rbx
call fcn.18024b110
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 0x18025123c
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 0x180251280
movups xmm0, xmmword [r14]
jmp 0x180251285
movups xmm0, xmmword [rsp + 0x48]
movups xmmword [rbx + 0x148], xmm0
movzx r8d, byte [rdi + 0x3a]
lea rdx, [rsp + 0x88]
mov rcx, rbx
call fcn.18024ada0
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.180252610
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.18024ad60
mov rcx, rdi
call fcn.1802536a0
cmp byte [rdi + 0x3f], sil
jne 0x1802511df
mov rdx, qword [rbx + 0x78]
test rdx, rdx
je 0x180251339
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.1802522c0
mov rcx, rbx
call fcn.18024b110
cmp byte [rdi + 0x32], sil
je 0x180251355
mov esi, dword [rdi + 0x28]
mov eax, esi
jmp 0x1802511e1