Function at 0x1400b33b0
Capabilities:
Log keystrokes via polling

Disassembly:
push rbx
sub rsp, 0x30
mov rax, qword [0x140158e70]
xor rax, rsp
mov qword [rsp + 0x28], rax
mov eax, dword [0x14033bdd0]
test eax, eax
jne 0x1400b35ee
movsd xmm1, qword [0x140118970]
movsd xmm0, qword [0x140340a38]
ucomisd xmm0, xmm1
jp 0x1400b33eb
je 0x1400b33f3
movsd qword [0x140340a38], xmm1
movsd xmm1, qword [0x140118990]
movsd xmm0, qword [0x140340a30]
ucomisd xmm0, xmm1
jp 0x1400b340b
je 0x1400b3413
movsd qword [0x140340a30], xmm1
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400b35a0
cmp byte [0x140341a70], 0
jne 0x1400b347a
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 0x1400b344e
imul rax, rax, 0x64
jmp 0x1400b346c
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
mov qword [0x140340a40], rax
mov byte [0x140341a70], 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 0x1400b3498
imul rcx, rax, 0x64
jmp 0x1400b34b9
cqo
idiv rbx
mov r8, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
mov rcx, rax
imul rax, r8, 0x3b9aca00
add rcx, rax
sub rcx, qword [0x140340a40]
movabs rax, 0x431bde82d7b634db
movsd xmm0, qword [0x140340a38]
xorps xmm3, xmm3
imul rcx
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cvtsi2sd xmm3, rdx
comisd xmm3, xmm0
jbe 0x1400b35db
movss xmm1, dword [0x14033bdc0]
subsd xmm3, xmm0
movsd xmm4, qword [0x140340a30]
movaps xmm0, xmm1
addss xmm0, dword [0x1401189e4]
cvttsd2si r8d, xmm4
cvttsd2si edx, xmm3
cvttss2si ecx, xmm0
cvttss2si eax, xmm1
test edx, edx
jle 0x1400b3565
cmp edx, r8d
jl 0x1400b3532
mov eax, ecx
jmp 0x1400b3565
movd xmm2, edx
sub ecx, eax
cvtdq2pd xmm2, xmm2
movd xmm0, r8d
cvtdq2pd xmm0, xmm0
movd xmm1, eax
divsd xmm2, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
cvtdq2pd xmm1, xmm1
mulsd xmm2, xmm0
addsd xmm2, xmm1
cvttsd2si eax, xmm2
movd xmm1, eax
mov rax, qword [0x14033bfd0]
cvtdq2ps xmm1, xmm1
movss dword [rax + 4], xmm1
cmp byte [0x14033bdcd], 0
je 0x1400b35db
divsd xmm3, xmm4
movaps xmm0, xmm3
call fcn.1400b3140
mov rcx, qword [rsp + 0x28]
xor rcx, rsp
call fcn.1400f16c0
add rsp, 0x30
pop rbx
ret
mov eax, dword [0x14034059c]
cdq
sub eax, edx
sar eax, 1
movd xmm1, eax
mov eax, dword [0x140340598]
cdq
sub eax, edx
sar eax, 1
cvtdq2ps xmm1, xmm1
movd xmm0, eax
mov rax, qword [0x14033bfd0]
cvtdq2ps xmm0, xmm0
movss dword [rax], xmm1
movss dword [rax + 4], xmm0
mov byte [0x140341a70], 0
mov rcx, qword [rsp + 0x28]
xor rcx, rsp
call fcn.1400f16c0
add rsp, 0x30
pop rbx
ret
cmp eax, 1
jne 0x1400b3705
lea ecx, [rax + 1]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400b36cc
cmp byte [0x140341a70], 0
jne 0x1400b365c
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 0x1400b3630
imul rax, rax, 0x64
jmp 0x1400b364e
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
mov qword [0x140340a40], rax
mov byte [0x140341a70], 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 0x1400b367a
imul rax, rax, 0x64
jmp 0x1400b3698
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
sub rax, qword [0x140340a40]
cmp rax, 0x17e6c640
jl 0x1400b35db
mov rax, qword [0x14033bfd0]
mov dword [rax + 4], 0x461c3c00
mov rcx, qword [rsp + 0x28]
xor rcx, rsp
call fcn.1400f16c0
add rsp, 0x30
pop rbx
ret
mov eax, dword [0x14034059c]
cdq
sub eax, edx
sar eax, 1
add eax, 3
movd xmm0, eax
mov rax, qword [0x14033bfd0]
cvtdq2ps xmm0, xmm0
movss dword [rax], xmm0
mov rax, qword [0x14033bfd0]
movss xmm1, dword [0x14033bdc0]
movss dword [rax + 4], xmm1
jmp 0x1400b35d4
cmp eax, 2
jne 0x1400b3939
mov ecx, eax
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400b384b
cmp byte [0x140341a70], 0
jne 0x1400b3772
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 0x1400b3746
imul rax, rax, 0x64
jmp 0x1400b3764
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
mov qword [0x140340a40], rax
mov byte [0x140341a70], 1
mov r9, qword [0x14033bfd8]
mov rcx, qword [0x14033bfd0]
mov rax, r9
sub rax, rcx
sar rax, 3
cmp rax, 2
jae 0x1400b37f2
mov eax, dword [0x14034059c]
cdq
sub eax, edx
sar eax, 1
movd xmm0, eax
mov eax, dword [0x140340598]
cvtdq2ps xmm0, xmm0
cdq
sub eax, edx
sar eax, 1
cmp r9, qword [0x14033bfe0]
movss dword [rsp + 0x20], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rsp + 0x24], xmm0
je 0x1400b37de
movsd xmm0, qword [rsp + 0x20]
movsd qword [r9], xmm0
add qword [0x14033bfd8], 8
jmp 0x1400b37eb
lea r8, [rsp + 0x20]
mov rdx, r9
call fcn.1400b3aa0
mov rcx, qword [0x14033bfd0]
movss xmm1, dword [0x14033bdbc]
subss xmm1, dword [rcx]
movss xmm0, dword [0x1401189c0]
comiss xmm0, xmm1
jbe 0x1400b35db
movss xmm0, dword [rcx]
subss xmm0, dword [0x1401188d0]
movss dword [rcx], xmm0
mov rax, qword [0x14033bfd0]
movss xmm0, dword [rax + 8]
addss xmm0, dword [0x1401188d0]
movss dword [rax + 8], xmm0
mov rcx, qword [rsp + 0x28]
xor rcx, rsp
call fcn.1400f16c0
add rsp, 0x30
pop rbx
ret
mov rcx, qword [0x14033bfd0]
xorps xmm0, xmm0
movss xmm2, dword [0x14033bdbc]
movaps xmm1, xmm2
mov byte [0x140341a70], 0
subss xmm1, dword [rcx]
comiss xmm1, xmm0
jbe 0x1400b38ac
movss xmm0, dword [rcx]
addss xmm0, dword [0x1401188d0]
movss dword [rcx], xmm0
mov rax, qword [0x14033bfd0]
movss xmm0, dword [rax + 8]
subss xmm0, dword [0x1401188d0]
movss dword [rax + 8], xmm0
mov rcx, qword [rsp + 0x28]
xor rcx, rsp
call fcn.1400f16c0
add rsp, 0x30
pop rbx
ret
mov r8, qword [0x14033bfd8]
mov ebx, 1
mov rax, r8
sub rax, rcx
sar rax, 3
cmp rax, rbx
jbe 0x1400b3915
mov edx, ebx
nop dword [rax]
lea rcx, [rcx + rdx*8]
lea rdx, [rcx + 8]
sub r8, rdx
call sub.VCRUNTIME140.dll_memmove
mov r8, qword [0x14033bfd8]
inc ebx
mov rcx, qword [0x14033bfd0]
add r8, 0xfffffffffffffff8
mov rax, r8
movsxd rdx, ebx
sub rax, rcx
mov qword [0x14033bfd8], r8
sar rax, 3
cmp rdx, rax
jb 0x1400b38d0
movss xmm2, dword [0x14033bdbc]
movss xmm0, dword [0x14033bdc0]
movss dword [rcx + 4], xmm0
movss dword [rcx], xmm2
mov rcx, qword [rsp + 0x28]
xor rcx, rsp
call fcn.1400f16c0
add rsp, 0x30
pop rbx
ret
cmp eax, 3
jne 0x1400b35db
movsd xmm1, qword [0x140118968]
movsd xmm0, qword [0x140340a38]
ucomisd xmm0, xmm1
jp 0x1400b395a
je 0x1400b3962
movsd qword [0x140340a38], xmm1
movsd xmm1, qword [0x140118988]
movsd xmm0, qword [0x140340a30]
ucomisd xmm0, xmm1
jp 0x1400b397a
je 0x1400b3982
movsd qword [0x140340a30], xmm1
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400b35d4
cmp byte [0x140341a70], 0
jne 0x1400b39e9
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 0x1400b39bd
imul rax, rax, 0x64
jmp 0x1400b39db
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
mov qword [0x140340a40], rax
mov byte [0x140341a70], 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 0x1400b3a07
imul rcx, rax, 0x64
jmp 0x1400b3a28
cqo
idiv rbx
mov r8, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
mov rcx, rax
imul rax, r8, 0x3b9aca00
add rcx, rax
cmp byte [0x14033bdcd], 0
je 0x1400b35db
sub rcx, qword [0x140340a40]
movabs rax, 0x431bde82d7b634db
movsd xmm1, qword [0x140340a38]
xorps xmm0, xmm0
imul rcx
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cvtsi2sd xmm0, rdx
comisd xmm0, xmm1
jbe 0x1400b35db
subsd xmm0, xmm1
divsd xmm0, qword [0x140340a30]
call fcn.1400b3140
mov rcx, qword [rsp + 0x28]
xor rcx, rsp
call fcn.1400f16c0
add rsp, 0x30
pop rbx
ret