Function at 0x18003e5b0
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 0x18003e5d4
imul rax, rax, 0x64
jmp 0x18003e5f2
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 [0x180166068]
comiss xmm0, dword [0x180165fa0]
jbe 0x18003e690
mov rbx, qword [0x18016da38]
lea rdx, [0x18016da38]
lea rcx, [0x18016da38]
mov r8, qword [rbx + 8]
call fcn.18003f110
mov qword [rbx + 8], rbx
mov qword [rbx], rbx
mov qword [rbx + 0x10], rbx
mov qword [0x18016da40], 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 0x18003e66b
imul rax, rax, 0x64
jmp 0x18003e689
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, [0x18003a630]
call fcn.180038660
mov rcx, qword [0x18016d9d0]
mov edx, 1
call fcn.1800389a0
cmp byte [0x18016d952], 0
mov rcx, qword [0x18016d9c8]
je 0x18003e70c
xor r8d, r8d
lea rdx, [0x18003a620]
call fcn.180038660
mov rcx, qword [0x18016d9c8]
mov edx, 1
call fcn.1800389a0
mov rcx, qword [0x18016d9e0]
lea r8, [0x18016da00]
lea rdx, [fcn.18003a8f0]
call fcn.180038660
mov edx, 1
jmp 0x18003e715
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 0x18003e752
lea r8, [0x18016d990]
lea rdx, [0x18003a5d0]
call fcn.180038660
mov rcx, qword [0x18016d9c0]
mov edx, 1
jmp 0x18003e754
xor edx, edx
call fcn.1800389a0
cmp byte [0x18016d956], 0
mov rcx, qword [0x18016d9d8]
je 0x18003e78a
lea r8, [0x18016d998]
lea rdx, [0x18003a600]
call fcn.180038660
mov rcx, qword [0x18016d9d8]
mov edx, 1
jmp 0x18003e78c
xor edx, edx
call fcn.1800389a0
cmp byte [0x18016d955], 0
mov rcx, qword [0x18016d9f0]
je 0x18003e7c2
lea r8, [0x18016da10]
lea rdx, [0x18003a7f0]
call fcn.180038660
mov rcx, qword [0x18016d9f0]
mov edx, 1
jmp 0x18003e7c4
xor edx, edx
call fcn.1800389a0
mov rax, qword [0x18016da18]
mov rcx, qword [rax + 0x4091e88]
cmp qword [rcx + 0xb8], 0
je 0x18003e8d9
mov rax, qword [0x18016d9e8]
call rax
test rax, rax
je 0x18003e8d9
mov rdx, qword [rax + 0x30]
test rdx, rdx
je 0x18003e8d9
lea rcx, [rsp + 0x20]
call fcn.180039b20
mov rbx, rax
lea rax, [0x18016d278]
cmp rax, rbx
je 0x18003e899
mov rdx, qword [0x18016d290]
cmp rdx, 0x10
jb 0x18003e85a
mov rcx, qword [0x18016d278]
inc rdx
cmp rdx, 0x1000
jb 0x18003e855
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x18003e8cd
mov rcx, r8
call fcn.18003fb5c
movdqa xmm0, xmmword [0x1801660b0]
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 0x18003e8d9
mov rcx, qword [rsp + 0x20]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18003e8d4
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18003e8d4
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18003fb5c
mov ecx, 0x2d
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x18003e916
cmp byte [0x18016d957], 0
sete al
mov byte [0x18016d957], al
test al, al
jne 0x18003e916
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 [0x18016d957], 0
je 0x18003e977
mov ecx, 0xd
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x18003e933
call fcn.18003ba80
mov ecx, 0x28
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x18003e955
movzx eax, byte [0x18016d96c]
cmp al, 5
jae 0x18003e955
inc al
mov byte [0x18016d96c], al
mov ecx, 0x26
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x18003e977
movzx eax, byte [0x18016d96c]
test al, al
je 0x18003e977
add al, 0xff
mov byte [0x18016d96c], al
add rsp, 0x40
pop rbx
ret