Function at 0x180086ef0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x50
mov rbx, rcx
mov edx, dword [0x1800eb32c]
mov rax, qword gs:[0x58]
mov ecx, 4
mov rax, qword [rax + rdx*8]
mov eax, dword [rcx + rax]
cmp dword [0x1800ecf70], eax
jle 0x180086f62
lea rcx, [0x1800ecf70]
call fcn.18008f99c
cmp dword [0x1800ecf70], 0xffffffff
jne 0x180086f62
mov qword [0x1800ecf60], 0
mov edx, 0x12c
lea rcx, [0x1800ecf60]
call fcn.18008f880
lea rcx, [0x1800ecf70]
call fcn.18008f930
mov ecx, dword [rbx + 0x10]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180087010
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rdi, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rdi, 0x989680
jne 0x180086f92
imul rcx, rax, 0x64
jmp 0x180086fad
cqo
idiv rdi
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rdi
add rcx, rax
mov rdx, rcx
sub rdx, qword [0x1800ecf60]
movabs rax, 0x431bde82d7b634db
imul rdx
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, qword [0x1800ecf68]
je 0x180086ff0
mov r8d, 1
mov r9d, 0xff
cmovl r8d, r9d
test r8b, r8b
js 0x180087010
mov qword [0x1800ecf60], rcx
call qword [sym.imp.USER32.dll_GetActiveWindow]
cmp rax, qword [0x1800eb700]
jne 0x180087010
cmp byte [rbx + 8], 0
sete al
mov byte [rbx + 8], al
cmp byte [rbx + 8], 0
jne 0x180087043
cmp byte [0x1800eb72b], 0
je 0x1800871e5
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
mov byte [0x1800eb72b], 0
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x50
pop rdi
ret
cmp byte [0x1800eb72b], 0
jne 0x1800871e5
mov rsi, qword [0x1800ebad8]
mov rbx, qword [0x1800eb6e8]
mov rax, qword [rbx]
mov r8, qword [rax + 0x538]
lea rdx, [0x180095de8]
mov rcx, rbx
call r8
mov rdi, rax
test rax, rax
je 0x1800870c2
mov rcx, qword [rbx]
mov r8, qword [rcx + 0xa8]
mov rdx, rax
mov rcx, rbx
call r8
mov qword [rsp + 0x38], rax
mov rcx, qword [rbx]
mov r8, qword [rcx + 0x740]
mov rdx, rdi
mov rcx, rbx
call r8
cmp eax, 1
jne 0x1800870cb
mov rax, qword [rbx]
mov r8, qword [rax + 0xb8]
mov rdx, rdi
mov rcx, rbx
call r8
jmp 0x1800870cb
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], rbx
mov rbx, qword [0x1800eb6e8]
mov rax, qword [rbx]
mov r8, qword [rax + 0x538]
lea rdx, str.xray_enabled
mov rcx, rbx
call r8
mov rdi, rax
test rax, rax
je 0x18008713b
mov rcx, qword [rbx]
mov r8, qword [rcx + 0xa8]
mov rdx, rax
mov rcx, rbx
call r8
mov qword [rsp + 0x28], rax
mov rcx, qword [rbx]
mov r8, qword [rcx + 0x740]
mov rdx, rdi
mov rcx, rbx
call r8
cmp eax, 1
jne 0x180087144
mov rax, qword [rbx]
mov r8, qword [rax + 0xb8]
mov rdx, rdi
mov rcx, rbx
call r8
jmp 0x180087144
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], rbx
lea r9, [rsp + 0x30]
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x40]
lea rcx, [rsi + 0x80]
call fcn.180063e40
nop
mov rax, qword [0x1800eb6e8]
test rax, rax
je 0x180087194
mov rdx, qword [rsp + 0x48]
test rdx, rdx
je 0x180087194
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx]
mov r8, qword [rax + 0xb0]
call r8
mov rax, qword [0x1800eb6e8]
test rax, rax
je 0x1800871bc
mov rdx, qword [rsp + 0x28]
test rdx, rdx
je 0x1800871bc
mov rcx, qword [rsp + 0x20]
mov rax, qword [rcx]
mov r8, qword [rax + 0xb0]
call r8
mov rax, qword [0x1800eb6e8]
test rax, rax
je 0x1800871de
mov rdx, qword [rsp + 0x38]
test rdx, rdx
je 0x1800871de
mov rcx, qword [rsp + 0x30]
mov rax, qword [rcx]
mov r8, qword [rax + 0xb0]
call r8
nop
mov byte [0x1800eb72b], 1
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x50
pop rdi
ret