Function at 0x18003eba0
Capabilities:
Log keystrokes via polling

Disassembly:
push rbx
sub rsp, 0x40
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x18003ebc4
imul rax, rax, 0x64
jmp 0x18003ebe2
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
sub rax, qword [0x18016d9b0]
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
divss xmm0, dword [0x180166140]
comiss xmm0, dword [0x180166078]
jbe 0x18003ec80
mov rbx, qword [0x18016da40]
lea rdx, [0x18016da40]
lea rcx, [0x18016da40]
mov r8, qword [rbx + 8]
call fcn.18003f750
mov qword [rbx + 8], rbx
mov qword [rbx], rbx
mov qword [rbx + 0x10], rbx
mov qword [0x18016da48], 0
mov byte [0x18016d9b8], 1
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x18003ec5b
imul rax, rax, 0x64
jmp 0x18003ec79
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
mov qword [0x18016d9b0], rax
mov rcx, qword [0x18016d9d0]
lea r8, [0x18016d980]
lea rdx, [0x18003a650]
call fcn.180038660
mov rcx, qword [0x18016d9d0]
mov edx, 1
call fcn.1800389a0
cmp byte [0x18016d953], 0
mov rcx, qword [0x18016d9c8]
je 0x18003ecfc
xor r8d, r8d
lea rdx, [0x18003a630]
call fcn.180038660
mov rcx, qword [0x18016d9c8]
mov edx, 1
call fcn.1800389a0
mov rcx, qword [0x18016d9e0]
lea r8, [0x18016da08]
lea rdx, [fcn.18003a640]
call fcn.180038660
mov edx, 1
jmp 0x18003ed05
xor edx, edx
call fcn.1800389a0
xor edx, edx
mov rcx, qword [0x18016d9e0]
call fcn.1800389a0
cmp byte [0x18016d951], 0
mov rcx, qword [0x18016d9c0]
je 0x18003ed42
lea r8, [0x18016d990]
lea rdx, [0x18003a5e0]
call fcn.180038660
mov rcx, qword [0x18016d9c0]
mov edx, 1
jmp 0x18003ed44
xor edx, edx
call fcn.1800389a0
cmp byte [0x18016d957], 0
mov rcx, qword [0x18016d9d8]
je 0x18003ed7a
lea r8, [0x18016d998]
lea rdx, [0x18003a610]
call fcn.180038660
mov rcx, qword [0x18016d9d8]
mov edx, 1
jmp 0x18003ed7c
xor edx, edx
call fcn.1800389a0
cmp byte [0x18016d952], 0
mov rcx, qword [0x18016d9f8]
je 0x18003edae
xor r8d, r8d
lea rdx, [fcn.18003a640]
call fcn.180038660
mov rcx, qword [0x18016d9f8]
mov edx, 1
jmp 0x18003edb0
xor edx, edx
call fcn.1800389a0
cmp byte [0x18016d956], 0
mov rcx, qword [0x18016d9f0]
je 0x18003ede6
lea r8, [0x18016da18]
lea rdx, [0x18003aa90]
call fcn.180038660
mov rcx, qword [0x18016d9f0]
mov edx, 1
jmp 0x18003ede8
xor edx, edx
call fcn.1800389a0
mov rax, qword [0x18016da20]
mov qword [rsp + 0x50], rdi
mov rcx, qword [rax + 0x408f738]
cmp qword [rcx + 0xb8], 0
je 0x18003ef0d
mov rax, qword [0x18016d9e8]
call rax
mov rdi, rax
test rax, rax
je 0x18003ef0d
mov rdx, qword [rax + 0x30]
test rdx, rdx
je 0x18003ef05
lea rcx, [rsp + 0x20]
call fcn.180039b20
mov rbx, rax
lea rax, [0x18016d278]
cmp rax, rbx
je 0x18003eec5
mov rdx, qword [0x18016d290]
cmp rdx, 0x10
jb 0x18003ee86
mov rcx, qword [0x18016d278]
inc rdx
cmp rdx, 0x1000
jb 0x18003ee81
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x18003eef9
mov rcx, r8
call fcn.1800401bc
movdqa xmm0, xmmword [0x180166190]
movdqu xmmword [0x18016d288], xmm0
mov byte [0x18016d278], 0
movups xmm0, xmmword [rbx]
movups xmmword [0x18016d278], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [0x18016d288], xmm1
mov qword [rbx + 0x10], 0
mov qword [rbx + 0x18], 0xf
mov byte [rbx], 0
mov rdx, qword [rsp + 0x38]
cmp rdx, 0x10
jb 0x18003ef05
mov rcx, qword [rsp + 0x20]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18003ef00
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18003ef00
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1800401bc
mov rcx, rdi
call fcn.18003a810
mov ecx, 0x2d
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x18003ef4a
cmp byte [0x18016d96c], 0
sete al
mov byte [0x18016d96c], al
test al, al
jne 0x18003ef4a
call qword [sym.imp.USER32.dll_GetForegroundWindow]
xor ecx, ecx
mov rbx, rax
call qword [sym.imp.USER32.dll_SetForegroundWindow]
mov rcx, rbx
call qword [sym.imp.USER32.dll_SetForegroundWindow]
cmp byte [0x18016d96c], 0
je 0x18003efab
mov ecx, 0xd
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x18003ef67
call fcn.18003be60
mov ecx, 0x28
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x18003ef89
movzx eax, byte [0x18016d96d]
cmp al, 7
jae 0x18003ef89
inc al
mov byte [0x18016d96d], al
mov ecx, 0x26
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x18003efab
movzx eax, byte [0x18016d96d]
test al, al
je 0x18003efab
add al, 0xff
mov byte [0x18016d96d], al
mov rdi, qword [rsp + 0x50]
add rsp, 0x40
pop rbx
ret