Function at 0x1400a4260
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
movaps xmmword [rsp + 0x70], xmm6
movaps xmmword [rsp + 0x60], xmm7
movaps xmmword [rsp + 0x50], xmm8
mov rax, qword [0x140131e70]
xor rax, rsp
mov qword [rbp - 0x38], rax
cmp dword [0x14031a8e0], 0
mov edi, 1
jne 0x1400a460f
lea ecx, [rdi + 1]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400a45cf
cmp byte [0x1403201f0], 0
jne 0x1400a4313
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 0x1400a42e7
imul rax, rax, 0x64
jmp 0x1400a4305
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
mov qword [0x14031f230], rax
mov byte [0x1403201f0], dil
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 0x1400a4331
imul rbx, rax, 0x64
jmp 0x1400a4352
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
mov rbx, rax
imul rax, rcx, 0x3b9aca00
add rbx, rax
movss xmm0, dword [0x14031a8d0]
mov rax, qword [0x14031a9e0]
addss xmm0, dword [0x1400f4060]
sub rbx, qword [0x14031f230]
movss xmm6, dword [0x1400f3fa4]
movss xmm1, dword [rax + 4]
comiss xmm0, xmm1
jbe 0x1400a4394
cmp rbx, 0x77359400
jl 0x1400a4394
addss xmm1, xmm6
movss dword [rax + 4], xmm1
cmp byte [0x14031a8dd], 0
je 0x1400a4abe
mov rax, qword [0x14031ef78]
lea r8, str.Background
xor edx, edx
mov rcx, qword [rax + 0x41d8]
mov rcx, qword [rcx + 0x40]
call fcn.14001ceb0
movaps xmm0, xmmword [0x1400f4430]
lea rcx, [rbp - 0x48]
movups xmmword [rbp - 0x48], xmm0
mov rsi, rax
call fcn.1400173e0
movss xmm8, dword [0x1400f4040]
xor r14d, r14d
mov rcx, qword [0x14031a9e0]
mov r15d, eax
movd xmm1, dword [0x14031a880]
xorps xmm7, xmm7
movd xmm0, dword [0x14031a878]
cvtdq2ps xmm1, xmm1
movss xmm2, dword [rcx + 4]
movaps xmm4, xmm2
addss xmm2, xmm8
subss xmm4, xmm8
addss xmm1, dword [rcx]
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
movaps xmm3, xmm1
addss xmm3, xmm8
addss xmm1, dword [0x1400f4018]
test eax, 0xff000000
je 0x1400a44e8
mov rcx, rsi
mov dword [rsp + 0x20], r14d
test byte [rsi + 0x30], dil
je 0x1400a4480
movss xmm0, dword [0x1400f3f58]
lea r8, [rbp - 0x50]
subss xmm3, xmm0
subss xmm4, xmm0
addss xmm1, xmm0
addss xmm2, xmm0
lea rdx, [rbp - 0x48]
movss dword [rbp - 0x50], xmm3
movss dword [rbp - 0x4c], xmm4
movss dword [rbp - 0x48], xmm1
movss dword [rbp - 0x44], xmm2
jmp 0x1400a44bc
subss xmm3, dword [0x1400f3f54]
subss xmm4, dword [0x1400f3f54]
addss xmm1, dword [0x1400f3f58]
addss xmm2, dword [0x1400f3f58]
lea r8, [rbp - 0x48]
movss dword [rbp - 0x48], xmm3
lea rdx, [rbp - 0x50]
movss dword [rbp - 0x44], xmm4
movss dword [rbp - 0x50], xmm1
movss dword [rbp - 0x4c], xmm2
xorps xmm3, xmm3
call fcn.14004aa30
mov r8d, dword [rsi + 0x78]
mov r9d, r15d
mov rdx, qword [rsi + 0x80]
mov rcx, rsi
movss dword [rsp + 0x28], xmm6
mov dword [rsp + 0x20], edi
call fcn.140048c40
mov dword [rsi + 0x78], r14d
mov rax, qword [0x14031ef78]
lea r8, str.Background
xor edx, edx
mov rcx, qword [rax + 0x41d8]
mov rcx, qword [rcx + 0x40]
call fcn.14001ceb0
movaps xmm0, xmmword [0x1400f4430]
lea rcx, [rbp - 0x48]
movups xmmword [rbp - 0x48], xmm0
mov r10, rax
call fcn.1400173e0
movd xmm3, dword [0x14031a880]
mov r9d, eax
mov rcx, qword [0x14031a9e0]
movd xmm0, dword [0x14031a878]
cvtdq2ps xmm3, xmm3
cvtdq2ps xmm0, xmm0
addss xmm3, dword [rcx]
addss xmm3, xmm0
movaps xmm1, xmm3
addss xmm1, xmm8
cmp rbx, 0x7744d640
jl 0x1400a455f
mov edx, 0x1e
jmp 0x1400a457a
movabs rax, 0x7ab69e31156a6f47
imul rbx
sar rdx, 0x19
mov rax, rdx
shr rax, 0x3f
add rdx, rax
movss xmm2, dword [rcx + 4]
addss xmm3, dword [0x1400f4018]
mov dword [rsp + 0x28], r14d
addss xmm2, xmm8
movss dword [rsp + 0x20], xmm7
movss dword [rbp - 0x48], xmm1
lea r8, [rbp - 0x48]
xorps xmm0, xmm0
movss dword [rbp - 0x4c], xmm2
cvtsi2ss xmm0, rdx
lea rdx, [rbp - 0x50]
mov rcx, r10
movaps xmm1, xmm2
movss dword [rbp - 0x50], xmm3
subss xmm1, xmm0
movss dword [rbp - 0x44], xmm1
call fcn.14004b1c0
jmp 0x1400a4abe
mov eax, dword [0x14031f1ec]
cdq
mov byte [0x1403201f0], 0
sub eax, edx
sar eax, 1
movd xmm1, eax
mov eax, dword [0x14031f1e8]
cdq
sub eax, edx
sar eax, 1
cvtdq2ps xmm1, xmm1
movd xmm0, eax
mov rax, qword [0x14031a9e0]
cvtdq2ps xmm0, xmm0
movss dword [rax], xmm1
movss dword [rax + 4], xmm0
jmp 0x1400a4abe
cmp dword [0x14031a8e0], edi
jne 0x1400a4724
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400a46e4
cmp byte [0x1403201f0], 0
jne 0x1400a4682
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 0x1400a4656
imul rax, rax, 0x64
jmp 0x1400a4674
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
mov qword [0x14031f230], rax
mov byte [0x1403201f0], dil
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 0x1400a46a0
imul rax, rax, 0x64
jmp 0x1400a46be
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
sub rax, qword [0x14031f230]
cmp rax, 0x17e6c640
jl 0x1400a4abe
mov rax, qword [0x14031a9e0]
mov dword [rax + 4], 0x461c3c00
jmp 0x1400a4abe
mov eax, dword [0x14031f1ec]
cdq
mov byte [0x1403201f0], 0
sub eax, edx
sar eax, 1
add eax, 3
movd xmm0, eax
mov rax, qword [0x14031a9e0]
cvtdq2ps xmm0, xmm0
movss dword [rax], xmm0
mov rax, qword [0x14031a9e0]
movss xmm1, dword [0x14031a8d0]
movss dword [rax + 4], xmm1
jmp 0x1400a4abe
cmp dword [0x14031a8e0], 2
jne 0x1400a47cc
mov eax, dword [0x14031f1ec]
cdq
sub eax, edx
sar eax, 1
mov r8d, eax
lea ecx, [rax - 0xf]
mov eax, dword [0x14031f1e8]
movd xmm0, ecx
cdq
mov rcx, qword [0x14031a9e0]
sub eax, edx
sar eax, 1
cvtdq2ps xmm0, xmm0
movd xmm1, eax
movss dword [rcx], xmm0
cvtdq2ps xmm1, xmm1
movss dword [rcx + 4], xmm1
mov rdx, qword [0x14031a9e8]
mov rcx, rdx
sub rcx, qword [0x14031a9e0]
sar rcx, 3
cmp rcx, 2
jae 0x1400a4abe
cmp rdx, qword [0x14031a9f0]
lea eax, [r8 + 0xf]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rbp - 0x4c], xmm1
movss dword [rbp - 0x50], xmm0
je 0x1400a47be
movsd xmm0, qword [rbp - 0x50]
movsd qword [rdx], xmm0
add qword [0x14031a9e8], 8
jmp 0x1400a4abe
lea r8, [rbp - 0x50]
call fcn.1400a4b70
jmp 0x1400a4abe
cmp dword [0x14031a8e0], 3
jne 0x1400a4a97
mov rax, qword [0x14031a9e0]
mov ecx, 2
mov dword [rax + 4], 0x440e8000
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400a4a85
cmp byte [0x1403201f0], 0
jne 0x1400a484e
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 0x1400a4822
imul rax, rax, 0x64
jmp 0x1400a4840
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
mov qword [0x14031f230], rax
mov byte [0x1403201f0], dil
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 0x1400a486c
imul rbx, rax, 0x64
jmp 0x1400a488d
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
mov rbx, rax
imul rax, rcx, 0x3b9aca00
add rbx, rax
sub rbx, qword [0x14031f230]
cmp byte [0x14031a8dd], 0
je 0x1400a4abe
mov rax, qword [0x14031ef78]
lea r8, str.Background
xor edx, edx
mov rcx, qword [rax + 0x41d8]
mov rcx, qword [rcx + 0x40]
call fcn.14001ceb0
movaps xmm0, xmmword [0x1400f4430]
lea rcx, [rbp - 0x48]
movups xmmword [rbp - 0x48], xmm0
mov rsi, rax
call fcn.1400173e0
movss xmm7, dword [0x1400f4040]
xor r14d, r14d
mov rcx, qword [0x14031a9e0]
mov r15d, eax
movd xmm1, dword [0x14031a880]
xorps xmm6, xmm6
movd xmm0, dword [0x14031a878]
movss xmm8, dword [0x1400f4018]
movss xmm2, dword [rcx + 4]
movaps xmm4, xmm2
addss xmm2, xmm7
subss xmm4, xmm7
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm0, xmm0
addss xmm1, dword [rcx]
addss xmm1, xmm0
movaps xmm3, xmm1
addss xmm1, xmm8
addss xmm3, xmm7
test eax, 0xff000000
je 0x1400a49d6
lea r8, [rbp - 0x48]
mov dword [rsp + 0x20], r14d
lea rdx, [rbp - 0x50]
mov rcx, rsi
test byte [rsi + 0x30], dil
je 0x1400a496e
movss xmm0, dword [0x1400f3f58]
subss xmm3, xmm0
subss xmm4, xmm0
addss xmm1, xmm0
addss xmm2, xmm0
jmp 0x1400a498e
subss xmm3, dword [0x1400f3f54]
subss xmm4, dword [0x1400f3f54]
addss xmm1, dword [0x1400f3f58]
addss xmm2, dword [0x1400f3f58]
movss dword [rbp - 0x48], xmm3
xorps xmm3, xmm3
movss dword [rbp - 0x44], xmm4
movss dword [rbp - 0x50], xmm1
movss dword [rbp - 0x4c], xmm2
call fcn.14004aa30
movss xmm0, dword [0x1400f3fa4]
mov r9d, r15d
mov r8d, dword [rsi + 0x78]
mov rcx, rsi
mov rdx, qword [rsi + 0x80]
movss dword [rsp + 0x28], xmm0
mov dword [rsp + 0x20], edi
call fcn.140048c40
mov dword [rsi + 0x78], r14d
mov rax, qword [0x14031ef78]
lea r8, str.Background
xor edx, edx
mov rcx, qword [rax + 0x41d8]
mov rcx, qword [rcx + 0x40]
call fcn.14001ceb0
movaps xmm0, xmmword [0x1400f4430]
lea rcx, [rbp - 0x48]
movups xmmword [rbp - 0x48], xmm0
mov r10, rax
call fcn.1400173e0
movd xmm3, dword [0x14031a880]
mov r9d, eax
mov rcx, qword [0x14031a9e0]
movd xmm0, dword [0x14031a878]
cvtdq2ps xmm3, xmm3
cvtdq2ps xmm0, xmm0
addss xmm3, dword [rcx]
addss xmm3, xmm0
movaps xmm1, xmm3
addss xmm1, xmm7
cmp rbx, 0x59777140
jl 0x1400a4a4c
mov edx, 0x1e
jmp 0x1400a4a67
movabs rax, 0x55e63b88c230e77f
imul rbx
sar rdx, 0x18
mov rax, rdx
shr rax, 0x3f
add rdx, rax
movss xmm2, dword [rcx + 4]
addss xmm3, xmm8
mov dword [rsp + 0x28], r14d
addss xmm2, xmm7
movss dword [rsp + 0x20], xmm6
jmp 0x1400a4597
cmp byte [0x1403201f0], 0
je 0x1400a4abe
mov byte [0x1403201f0], 0
jmp 0x1400a4abe
cmp dword [0x14031a8e0], 4
jne 0x1400a4abe
mov rax, qword [0x14031a9e0]
movss xmm0, dword [rax + 4]
ucomiss xmm0, dword [0x1400f4124]
jp 0x1400a4ab7
je 0x1400a4ac7
mov dword [rax + 4], 0x44408000
cmp dword [0x14031a8e0], 2
je 0x1400a4b31
mov r8, qword [0x14031a9e8]
mov rax, r8
sub rax, qword [0x14031a9e0]
sar rax, 3
test rax, rax
je 0x1400a4b31
cmp rax, rdi
jbe 0x1400a4b31
mov rcx, rdi
nop dword [rax]
mov rax, qword [0x14031a9e0]
lea rcx, [rax + rcx*8]
lea rdx, [rcx + 8]
sub r8, rdx
call sub.VCRUNTIME140.dll_memmove
mov r8, qword [0x14031a9e8]
inc edi
add r8, 0xfffffffffffffff8
movsxd rcx, edi
mov rax, r8
mov qword [0x14031a9e8], r8
sub rax, qword [0x14031a9e0]
sar rax, 3
cmp rcx, rax
jb 0x1400a4af0
mov rcx, qword [rbp - 0x38]
xor rcx, rsp
call fcn.1400d0b50
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
movaps xmm6, xmmword [rsp + 0x70]
movaps xmm7, xmmword [rsp + 0x60]
movaps xmm8, xmmword [r11 - 0x30]
mov rsp, r11
pop r15
pop r14
pop rbp
ret