Function at 0x18003ecb0
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 0x18003ecd4
imul rax, rax, 0x64
jmp 0x18003ecf2
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 [0x180166148]
comiss xmm0, dword [0x180166084]
jbe 0x18003ed90
mov rbx, qword [0x18016da40]
lea rdx, [0x18016da40]
lea rcx, [0x18016da40]
mov r8, qword [rbx + 8]
call fcn.18003f860
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 0x18003ed6b
imul rax, rax, 0x64
jmp 0x18003ed89
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, [0x18003a670]
call fcn.180038670
mov rcx, qword [0x18016d9d0]
mov edx, 1
call fcn.1800389b0
cmp byte [0x18016d953], 0
mov rcx, qword [0x18016d9c8]
je 0x18003ee0c
xor r8d, r8d
lea rdx, [0x18003a650]
call fcn.180038670
mov rcx, qword [0x18016d9c8]
mov edx, 1
call fcn.1800389b0
mov rcx, qword [0x18016d9e0]
lea r8, [0x18016da08]
lea rdx, [fcn.18003a660]
call fcn.180038670
mov edx, 1
jmp 0x18003ee15
xor edx, edx
call fcn.1800389b0
xor edx, edx
mov rcx, qword [0x18016d9e0]
call fcn.1800389b0
cmp byte [0x18016d951], 0
mov rcx, qword [0x18016d9c0]
je 0x18003ee52
lea r8, [0x18016d990]
lea rdx, [0x18003a600]
call fcn.180038670
mov rcx, qword [0x18016d9c0]
mov edx, 1
jmp 0x18003ee54
xor edx, edx
call fcn.1800389b0
cmp byte [0x18016d957], 0
mov rcx, qword [0x18016d9d8]
je 0x18003ee8a
lea r8, [0x18016d998]
lea rdx, [0x18003a630]
call fcn.180038670
mov rcx, qword [0x18016d9d8]
mov edx, 1
jmp 0x18003ee8c
xor edx, edx
call fcn.1800389b0
cmp byte [0x18016d952], 0
mov rcx, qword [0x18016d9f8]
je 0x18003eebe
xor r8d, r8d
lea rdx, [fcn.18003a660]
call fcn.180038670
mov rcx, qword [0x18016d9f8]
mov edx, 1
jmp 0x18003eec0
xor edx, edx
call fcn.1800389b0
cmp byte [0x18016d956], 0
mov rcx, qword [0x18016d9f0]
je 0x18003eef6
lea r8, [0x18016da18]
lea rdx, [0x18003aab0]
call fcn.180038670
mov rcx, qword [0x18016d9f0]
mov edx, 1
jmp 0x18003eef8
xor edx, edx
call fcn.1800389b0
mov rax, qword [0x18016da20]
mov qword [rsp + 0x50], rdi
mov rcx, qword [rax + 0x4091e50]
cmp qword [rcx + 0xb8], 0
je 0x18003f01d
mov rax, qword [0x18016d9e8]
call rax
mov rdi, rax
test rax, rax
je 0x18003f01d
mov rdx, qword [rax + 0x30]
test rdx, rdx
je 0x18003f015
lea rcx, [rsp + 0x20]
call fcn.180039b30
mov rbx, rax
lea rax, [0x18016d278]
cmp rax, rbx
je 0x18003efd5
mov rdx, qword [0x18016d290]
cmp rdx, 0x10
jb 0x18003ef96
mov rcx, qword [0x18016d278]
inc rdx
cmp rdx, 0x1000
jb 0x18003ef91
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x18003f009
mov rcx, r8
call fcn.1800402cc
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 0x18003f015
mov rcx, qword [rsp + 0x20]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18003f010
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18003f010
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1800402cc
mov rcx, rdi
call fcn.18003a830
mov ecx, 0x2d
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x18003f05a
cmp byte [0x18016d96c], 0
sete al
mov byte [0x18016d96c], al
test al, al
jne 0x18003f05a
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 0x18003f0bb
mov ecx, 0xd
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x18003f077
call fcn.18003bea0
mov ecx, 0x28
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x18003f099
movzx eax, byte [0x18016d96d]
cmp al, 7
jae 0x18003f099
inc al
mov byte [0x18016d96d], al
mov ecx, 0x26
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x18003f0bb
movzx eax, byte [0x18016d96d]
test al, al
je 0x18003f0bb
add al, 0xff
mov byte [0x18016d96d], al
mov rdi, qword [rsp + 0x50]
add rsp, 0x40
pop rbx
ret