Function at 0x18003b4e0
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 0x18003b504
imul rax, rax, 0x64
jmp 0x18003b522
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
sub rax, qword [0x1801699e0]
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
divss xmm0, dword [0x180161890]
comiss xmm0, dword [0x1801617c8]
jbe 0x18003b5c0
mov rbx, qword [0x180169a78]
lea rdx, [0x180169a78]
lea rcx, [0x180169a78]
mov r8, qword [rbx + 8]
call fcn.18003c080
mov qword [rbx + 8], rbx
mov qword [rbx], rbx
mov qword [rbx + 0x10], rbx
mov qword [0x180169a80], 0
mov byte [0x1801699e8], 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 0x18003b59b
imul rax, rax, 0x64
jmp 0x18003b5b9
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
mov qword [0x1801699e0], rax
mov rcx, qword [0x180169a08]
lea r8, [0x1801699b0]
lea rdx, [0x180036fc0]
call fcn.180034fa0
mov rcx, qword [0x180169a08]
mov edx, 1
call fcn.1800352e0
cmp byte [0x180169993], 0
mov rcx, qword [0x180169a00]
je 0x18003b63c
xor r8d, r8d
lea rdx, [0x180036fa0]
call fcn.180034fa0
mov rcx, qword [0x180169a00]
mov edx, 1
call fcn.1800352e0
mov rcx, qword [0x180169a18]
lea r8, [0x180169a40]
lea rdx, [fcn.180036fb0]
call fcn.180034fa0
mov edx, 1
jmp 0x18003b645
xor edx, edx
call fcn.1800352e0
xor edx, edx
mov rcx, qword [0x180169a18]
call fcn.1800352e0
cmp byte [0x180169991], 0
mov rcx, qword [0x1801699f8]
je 0x18003b682
lea r8, [0x1801699c0]
lea rdx, [0x180036f40]
call fcn.180034fa0
mov rcx, qword [0x1801699f8]
mov edx, 1
jmp 0x18003b684
xor edx, edx
call fcn.1800352e0
cmp byte [0x1801699f3], 0
mov rcx, qword [0x180169a10]
je 0x18003b6ba
lea r8, [0x1801699c8]
lea rdx, [0x180036f70]
call fcn.180034fa0
mov rcx, qword [0x180169a10]
mov edx, 1
jmp 0x18003b6bc
xor edx, edx
call fcn.1800352e0
cmp byte [0x180169992], 0
mov rcx, qword [0x180169a30]
je 0x18003b6ee
xor r8d, r8d
lea rdx, [fcn.180036fb0]
call fcn.180034fa0
mov rcx, qword [0x180169a30]
mov edx, 1
jmp 0x18003b6f0
xor edx, edx
call fcn.1800352e0
cmp byte [0x1801699f2], 0
mov rcx, qword [0x180169a28]
je 0x18003b726
lea r8, [0x180169a50]
lea rdx, [0x1800373f0]
call fcn.180034fa0
mov rcx, qword [0x180169a28]
mov edx, 1
jmp 0x18003b728
xor edx, edx
call fcn.1800352e0
mov rax, qword [0x180169a58]
mov qword [rsp + 0x50], rdi
mov rcx, qword [rax + 0x402c030]
cmp qword [rcx + 0xb8], 0
je 0x18003b84d
mov rax, qword [0x180169a20]
call rax
mov rdi, rax
test rax, rax
je 0x18003b84d
mov rdx, qword [rax + 0x30]
test rdx, rdx
je 0x18003b845
lea rcx, [rsp + 0x20]
call fcn.180036460
mov rbx, rax
lea rax, [0x180169278]
cmp rax, rbx
je 0x18003b805
mov rdx, qword [0x180169290]
cmp rdx, 0x10
jb 0x18003b7c6
mov rcx, qword [0x180169278]
inc rdx
cmp rdx, 0x1000
jb 0x18003b7c1
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x18003b839
mov rcx, r8
call fcn.18003ca04
movdqa xmm0, xmmword [0x1801618e0]
movdqu xmmword [0x180169288], xmm0
mov byte [0x180169278], 0
movups xmm0, xmmword [rbx]
movups xmmword [0x180169278], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [0x180169288], xmm1
mov qword [rbx + 0x10], 0
mov qword [rbx + 0x18], 0xf
mov byte [rbx], 0
mov rdx, qword [rsp + 0x38]
cmp rdx, 0x10
jb 0x18003b845
mov rcx, qword [rsp + 0x20]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18003b840
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18003b840
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18003ca04
mov rcx, rdi
call fcn.180037180
mov ecx, 0x2d
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x18003b88a
cmp byte [0x1801699f4], 0
sete al
mov byte [0x1801699f4], al
test al, al
jne 0x18003b88a
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 [0x1801699f4], 0
je 0x18003b8eb
mov ecx, 0xd
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x18003b8a7
call fcn.1800384a0
mov ecx, 0x28
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x18003b8c9
movzx eax, byte [0x1801699f5]
cmp al, 7
jae 0x18003b8c9
inc al
mov byte [0x1801699f5], al
mov ecx, 0x26
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x18003b8eb
movzx eax, byte [0x1801699f5]
test al, al
je 0x18003b8eb
add al, 0xff
mov byte [0x1801699f5], al
mov rdi, qword [rsp + 0x50]
add rsp, 0x40
pop rbx
ret