Function at 0x180084200
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x70
mov qword [rax - 0x48], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov rax, qword [0x1804610b0]
xor rax, rsp
mov qword [rsp + 0x68], rax
movzx ebp, dl
mov rbx, rcx
xor r12d, r12d
call fcn.180084670
test al, al
jne 0x180084529
cmp qword [rbx + 0x70], r12
je 0x180084529
mov rcx, qword [0x18048a410]
test rcx, rcx
je 0x180084529
call fcn.180045750
mov rsi, rax
test rax, rax
je 0x180084529
mov qword [rsp + 0x48], r12
mov rdi, qword [rax + 0x20]
mov qword [rsp + 0x48], rdi
test rdi, rdi
je 0x18008428b
mov rdx, qword [rdi]
mov rcx, rdi
call qword [rdx]
nop
test rdi, rdi
je 0x18008451b
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 0x1800844e4
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov r14, rax
test rax, rax
je 0x1800844e4
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rcx]
call qword [rdx]
mov r15, rax
test rax, rax
je 0x1800844e4
mov rcx, qword [0x18048a410]
call fcn.180045ed0
mov rsi, rax
test rax, rax
je 0x1800844e4
test bpl, bpl
jne 0x180084312
mov r8, qword [rdi]
mov edx, 6
mov rcx, rdi
call qword [r8 + 0x58]
jmp 0x180084346
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
js 0x180084332
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x18008433e
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0xf0]
mov rcx, rbx
call fcn.180084000
mov byte [rbx + 0x1b0], 0
mov byte [rbx + 0x1b8], 0
test bpl, bpl
je 0x180084477
cmp byte [rbx + 0x78], 0
je 0x18008436b
mov rcx, rbx
call fcn.180083900
xor r8d, r8d
mov rdx, rdi
mov rcx, qword [0x18048a410]
call fcn.180045f30
mov rax, qword [r15]
xor edx, edx
mov rcx, r15
call qword [rax + 0x78]
mov ecx, 0x14
call qword [sym.imp.USER32.dll_GetKeyState]
and al, 1
mov r9, qword [rdi]
movzx r8d, al
mov edx, 1
mov rcx, rdi
call qword [r9 + 0x70]
lea rdx, [0x180333460]
mov rcx, qword [rbx + 0x70]
call fcn.180085b80
mov rcx, r14
test eax, eax
mov rax, qword [r14]
je 0x1800843cc
mov edx, 0x14
call qword [rax + 0x10]
jmp 0x1800843dc
mov dl, 1
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [rsp + 0x30]
mov rax, qword [rcx]
call qword [rax + 0x58]
cmp qword [rbx + 0x180], 0
je 0x1800844e4
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0xa8]
test al, al
je 0x180084472
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x60], r12
mov rcx, qword [rbx + 0x188]
mov rax, qword [rcx]
lea rdx, [rsp + 0x58]
call qword [rax + 0x48]
test eax, eax
js 0x18008443f
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x18008443f
mov rax, qword [rcx]
lea rdx, [rsp + 0x60]
call qword [rax + 0x30]
mov rcx, qword [rsp + 0x58]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [rsp + 0x58], r12
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0xc8]
test al, al
jne 0x180084461
mov rcx, qword [rsp + 0x30]
mov rax, qword [rcx]
call qword [rax + 0x78]
cmp qword [rsp + 0x60], rax
je 0x180084472
mov rdx, qword [rbx + 0x188]
mov rcx, rbx
call fcn.180081b60
jmp 0x1800844e4
xor r8d, r8d
jmp 0x1800844c7
mov rax, qword [r15]
mov dl, 1
mov rcx, r15
call qword [rax + 0x78]
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x18]
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 0x18]
test al, al
je 0x1800844e4
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0xc8]
test al, al
je 0x1800844c4
mov rdx, qword [rbx + 0x188]
mov rcx, rbx
call fcn.180081b60
mov rcx, qword [rsp + 0x30]
mov rax, qword [rcx]
call qword [rax + 0x68]
jmp 0x1800844e4
mov r8b, 1
mov byte [rsp + 0x28], 1
mov byte [rsp + 0x20], 0
xor r9d, r9d
mov rdx, qword [rbx + 0x188]
mov rcx, rbx
call fcn.180082860
nop
mov rbx, qword [rsp + 0x38]
test rbx, rbx
je 0x18008451b
mov esi, 0xffffffff
mov eax, esi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x18008451b
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], esi
cmp esi, 1
jne 0x18008451b
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
test rdi, rdi
je 0x180084529
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.1802994c0
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret