Function at 0x180033f80
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x18], r8
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x40
mov qword [rsp + 0x28], 0xfffffffffffffffe
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x78], rbp
mov rbp, rdx
mov r15, rcx
xor ebx, ebx
mov rcx, qword [0x18048a410]
test rcx, rcx
je 0x1800341c2
call fcn.180045750
mov rsi, rax
test rax, rax
je 0x1800341c2
mov qword [rsp + 0x80], rbx
mov rdi, qword [rax + 0x20]
mov qword [rsp + 0x80], rdi
test rdi, rdi
je 0x180033fef
mov rdx, qword [rdi]
mov rcx, rdi
call qword [rdx]
nop
test rdi, rdi
je 0x1800341b4
xor eax, eax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rax
lea rdx, [rsp + 0x30]
mov rcx, rsi
call fcn.18006a330
nop
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x18003417d
mov rax, qword [rcx]
call qword [rax]
mov rsi, rax
test rax, rax
je 0x18003417d
mov rcx, qword [0x18048a410]
call fcn.180045ed0
mov r14, rax
test rax, rax
je 0x18003417d
cmp rbp, 1
sete r12b
mov rcx, rsi
jne 0x18003409f
mov r8, qword [rsi]
xor edx, edx
call qword [r8 + 0x78]
mov rcx, qword [rsp + 0x30]
mov r8, qword [rcx]
mov rdx, r15
call qword [r8 + 0xd8]
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
js 0x180034091
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x1800340a7
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0xf0]
jmp 0x1800340a7
mov rax, qword [rsi]
mov dl, 1
call qword [rax + 0x78]
mov rcx, qword [rsp + 0x30]
mov rax, qword [rcx]
movzx edx, r12b
call qword [rax + 0xc8]
xor r8d, r8d
mov rdx, rdi
mov rcx, qword [0x18048a410]
call fcn.180045f30
test r15, r15
je 0x1800340de
xor edx, edx
mov rcx, r15
call qword [sym.imp.USER32.dll_GetWindowLongPtrW]
mov rbx, rax
xor edx, edx
mov rcx, rbx
call fcn.1800368c0
mov r15, rax
cmp rbp, 1
jne 0x18003412a
test rbx, rbx
je 0x180034135
test rax, rax
je 0x18003412a
mov rcx, qword [rsp + 0x30]
mov r8, qword [rcx]
mov rdx, qword [rax]
call qword [r8 + 0x70]
mov rax, qword [rsi]
mov rdx, r15
mov rcx, rsi
call qword [rax + 0x20]
mov rcx, qword [rsp + 0x30]
mov rax, qword [rcx]
movzx edx, bpl
call qword [rax + 0x80]
jmp 0x180034169
test rbx, rbx
je 0x180034135
cmp rbp, 1
je 0x180034169
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x50]
test al, al
jne 0x180034169
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x40]
test al, al
je 0x18003415b
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0xa8]
mov rcx, qword [rsp + 0x30]
mov rax, qword [rcx]
call qword [rax + 0x88]
test rbx, rbx
je 0x18003417d
test r15, r15
je 0x18003417d
mov rcx, rbx
call qword [sym.imp.IMM32.dll_ImmUnlockIMC]
nop
mov rbx, qword [rsp + 0x38]
test rbx, rbx
je 0x1800341b4
mov esi, 0xffffffff
mov eax, esi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x1800341b4
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], esi
cmp esi, 1
jne 0x1800341b4
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
test rdi, rdi
je 0x1800341c2
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
add rsp, 0x40
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret