Function at 0x180064360
Capabilities:
Log keystrokes via polling

Disassembly:
mov r11, rsp
push rsi
push rdi
sub rsp, 0x78
mov rax, qword [0x1800b53b0]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov qword [r11 + 8], rbx
movabs rdi, 0x2aaaaaaaaaaaaaab
mov qword [r11 + 0x18], r12
lea r12, [0x180080ee0]
mov qword [r11 - 0x18], r13
mov qword [r11 - 0x20], r14
lea r14, [0x180080ec8]
mov qword [r11 - 0x28], r15
xor r15d, r15d
movaps xmmword [rsp + 0x50], xmm6
movsd xmm6, qword [0x1800a5a10]
mov qword [r11 + 0x10], rbp
nop dword [rax + rax]
mov ebx, dword [r14]
mov ecx, ebx
mov dword [rsp + 0x30], ebx
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
mov rsi, qword [0x1800e2560]
mov r8, qword [0x1800e2568]
jae 0x1800644ab
cmp rsi, r8
je 0x180064401
mov rax, rsi
cmp dword [rax], ebx
je 0x1800645e7
add rax, 0x18
cmp rax, r8
jne 0x1800643f0
mov dword [rsp + 0x38], r15d
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rdi, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rdi, 0x989680
jne 0x180064424
imul rax, rax, 0x64
jmp 0x180064442
cqo
idiv rdi
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rdi
add rax, rcx
sub rax, qword [0x1800de740]
xorps xmm0, xmm0
mov rdx, qword [0x1800e2568]
cmp rdx, qword [0x1800e2570]
cvtsi2sd xmm0, rax
divsd xmm0, xmm6
movsd qword [rsp + 0x40], xmm0
je 0x180064486
movsd qword [rdx + 8], xmm0
mov dword [rdx], ebx
mov qword [rdx + 0x10], r15
mov r8, qword [0x1800e2568]
add r8, 0x18
jmp 0x1800645cf
lea rax, [rsp + 0x38]
lea r9, [rsp + 0x40]
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x30]
call fcn.180066240
mov r8, qword [0x1800e2568]
jmp 0x1800645d6
cmp rsi, r8
je 0x1800645e7
mov rax, rsi
cmp dword [rax], ebx
je 0x1800644c9
add rax, 0x18
cmp rax, r8
jne 0x1800644b7
jmp 0x1800645e7
mov rcx, r8
mov rax, rdi
sub rcx, rsi
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
je 0x1800645e7
lea rdi, [rdx + rdx*2]
shl rdi, 3
sub rdi, 0x18
dec rdx
cmp dword [rdi + rsi], ebx
je 0x180064507
test rdx, rdx
jne 0x1800644f1
jmp 0x1800645dd
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbp, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbp, 0x989680
jne 0x180064525
imul rax, rax, 0x64
jmp 0x180064543
cqo
idiv rbp
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rbp
add rax, rcx
sub rax, qword [0x1800de740]
xorps xmm0, xmm0
mov rdx, qword [0x1800e2580]
cmp rdx, qword [0x1800e2588]
movsd xmm1, qword [rdi + rsi + 8]
cvtsi2sd xmm0, rax
movsd qword [rsp + 0x38], xmm1
divsd xmm0, xmm6
movsd qword [rsp + 0x40], xmm0
je 0x18006458e
movsd qword [rdx + 8], xmm1
movsd qword [rdx + 0x10], xmm0
mov dword [rdx], ebx
add qword [0x1800e2580], 0x18
jmp 0x1800645a7
lea rax, [rsp + 0x40]
lea r9, [rsp + 0x38]
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x30]
call fcn.180066410
mov rcx, qword [0x1800e2560]
mov r8, qword [0x1800e2568]
add rcx, rdi
lea rdx, [rcx + 0x18]
sub r8, rdx
call sub.VCRUNTIME140.dll_memmove
mov r8, qword [0x1800e2568]
sub r8, 0x18
mov qword [0x1800e2568], r8
mov rsi, qword [0x1800e2560]
movabs rdi, 0x2aaaaaaaaaaaaaab
add r14, 4
cmp r14, r12
jne 0x1800643c0
movaps xmm6, xmmword [rsp + 0x50]
sub r8, rsi
mov r15, qword [rsp + 0x60]
mov rax, rdi
mov r14, qword [rsp + 0x68]
mov r13, qword [rsp + 0x70]
mov r12, qword [rsp + 0xa0]
mov rbp, qword [rsp + 0x98]
mov rbx, qword [rsp + 0x90]
imul r8
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rax, rdx
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.1800759c0
add rsp, 0x78
pop rdi
pop rsi
ret