Function at 0x180001750
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0x40
mov rax, qword [0x180013240]
xor rax, rsp
mov qword [rsp + 0x30], rax
movsxd rdi, edx
mov rsi, rcx
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
mov r9, rax
cmp rbx, 0x989680
jne 0x180001796
imul rax, r9, 0x64
jmp 0x180001811
cmp rbx, 0x16e3600
jne 0x1800017f3
movabs r10, 0xb2f4fc0794908cf3
mov rax, r10
imul r9
mov rax, r10
lea r8, [r9 + rdx]
sar r8, 0x18
mov rcx, r8
shr rcx, 0x3f
add r8, rcx
imul rcx, r8, 0x16e3600
sub r9, rcx
imul rcx, r9, 0x3b9aca00
imul rcx
lea rax, [rcx + rdx]
sar rax, 0x18
mov rcx, rax
shr rcx, 0x3f
add rax, rcx
imul rcx, r8, 0x3b9aca00
jmp 0x18000180e
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
imul rcx, rcx, 0x3b9aca00
add rax, rcx
xorps xmm1, xmm1
lea r8, [rsp + 0x28]
mov rcx, rax
xorps xmm0, xmm0
sub rcx, qword [0x180013df8]
xor r9d, r9d
cvtsi2sd xmm0, qword [0x180013c20]
mov qword [0x180013df8], rax
lea edx, [r9 + 1]
cvtsi2sd xmm1, rcx
mulsd xmm0, qword [0x18000fbb8]
mulsd xmm1, qword [0x18000fbb0]
addsd xmm1, xmm0
cvttsd2si rcx, xmm1
mov qword [0x180013c20], rcx
mov rcx, qword [0x180013de0]
mov rax, qword [rcx]
call qword [rax + 0x2c8]
imul r14, rdi, 0x2c
xorps xmm2, xmm2
xorps xmm1, xmm1
lea r15, [0x180000000]
mov rcx, rsi
mov eax, dword [r14 + r15 + 0x13d34]
shr eax, 1
cvtsi2ss xmm2, rax
mov eax, dword [r14 + r15 + 0x13d30]
shr eax, 1
cvtsi2ss xmm1, rax
call fcn.1800011d0
mov rcx, qword [0x180013de0]
xor r9d, r9d
mov rdx, qword [0x180013d00]
xor r8d, r8d
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rcx, qword [0x180013de0]
lea rbp, [r15 + 0x13d08]
xor edx, edx
lea rbp, [rbp + rdi*8]
mov r9, rbp
mov rax, qword [rcx]
lea r8d, [rdx + 1]
call qword [rax + 0x40]
mov rcx, qword [0x180013de0]
lea r9, [0x180013cf8]
xor edx, edx
mov rax, qword [rcx]
lea r8d, [rdx + 1]
call qword [rax + 0x50]
mov rcx, qword [0x180013de0]
lea r8, [0x180013ce8]
xor r9d, r9d
mov rax, qword [rcx]
lea edx, [r9 + 1]
call qword [rax + 0x108]
lea rcx, [rsp + 0x20]
mov dword [rsp + 0x20], 1
call fcn.180001560
mov rcx, qword [0x180013de0]
xor r8d, r8d
mov edx, dword [0x180013dbc]
mov rax, qword [rcx]
call qword [rax + 0x68]
mov rcx, qword [0x180013de0]
mov rdx, qword [0x180013cf0]
mov rax, qword [rcx]
call qword [rax + 0x1b0]
mov rcx, qword [0x180013de0]
xor r9d, r9d
mov rdx, qword [0x180013cd0]
xor r8d, r8d
mov rax, qword [rcx]
call qword [rax + 0x48]
inc dword [0x180013e00]
mov ebx, 6
xor edi, edi
mov rcx, qword [0x180013de0]
xor r9d, r9d
mov r8, qword [rdi + r15 + 0xcac0]
mov rax, qword [rcx]
lea edx, [r9 + 1]
call qword [rax + 0x108]
mov rcx, qword [0x180013de0]
xor edx, edx
mov r9, qword [rdi + r15 + 0xcb18]
mov rax, qword [rcx]
lea r8d, [rdx + 1]
call qword [rax + 0x40]
mov rcx, qword [0x180013de0]
lea r9, [0x180013cf8]
xor edx, edx
mov rax, qword [rcx]
lea r8d, [rdx + 1]
call qword [rax + 0x50]
mov rcx, qword [0x180013de0]
lea r9, [0x180013cf0]
mov edx, 1
mov r8d, edx
mov rax, qword [rcx]
call qword [rax + 0x40]
mov rcx, qword [0x180013de0]
lea r9, [0x180013ce0]
mov edx, 2
mov rax, qword [rcx]
lea r8d, [rdx - 1]
call qword [rax + 0x40]
mov eax, dword [0x180013d8c]
lea ecx, [rbx + 3]
shr eax, cl
xorps xmm2, xmm2
xorps xmm1, xmm1
cvtsi2ss xmm2, rax
mov eax, dword [0x180013d88]
shr eax, cl
mov rcx, rsi
cvtsi2ss xmm1, rax
call fcn.1800011d0
mov eax, dword [0x180013e00]
lea rcx, [rsp + 0x20]
mov dword [rsp + 0x24], eax
mov dword [rsp + 0x20], ebx
call fcn.180001560
mov rcx, qword [0x180013de0]
xor r8d, r8d
mov edx, dword [0x180013dbc]
mov rax, qword [rcx]
call qword [rax + 0x68]
sub ebx, 1
lea rdi, [rdi - 8]
jns 0x180001983
mov eax, dword [r14 + r15 + 0x13d34]
xorps xmm2, xmm2
xorps xmm1, xmm1
mov rcx, rsi
cvtsi2ss xmm2, rax
mov eax, dword [r14 + r15 + 0x13d30]
cvtsi2ss xmm1, rax
call fcn.1800011d0
mov rcx, qword [0x180013de0]
lea r8, [rsp + 0x28]
xor r9d, r9d
mov rax, qword [rcx]
lea edx, [r9 + 1]
call qword [rax + 0x108]
mov rcx, qword [rsp + 0x28]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [0x180013de0]
xor edx, edx
mov r9, rbp
mov rax, qword [rcx]
lea r8d, [rdx + 1]
call qword [rax + 0x40]
mov rcx, qword [0x180013de0]
lea r9, [0x180013cf8]
xor edx, edx
mov rax, qword [rcx]
lea r8d, [rdx + 1]
call qword [rax + 0x50]
mov rcx, qword [0x180013de0]
lea r9, [0x180013d28]
mov edx, 1
mov r8d, edx
mov rax, qword [rcx]
call qword [rax + 0x50]
mov rcx, qword [0x180013de0]
lea r9, [0x180013ce0]
mov edx, 1
mov r8d, edx
mov rax, qword [rcx]
call qword [rax + 0x40]
mov rcx, qword [0x180013de0]
mov edx, 2
mov r9, qword [0x18000cae0]
mov rax, qword [rcx]
lea r8d, [rdx - 1]
call qword [rax + 0x40]
mov rcx, qword [0x180013de0]
xor r9d, r9d
mov rdx, qword [0x180013dd0]
xor r8d, r8d
mov rax, qword [rcx]
call qword [rax + 0x48]
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x180001b9b
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x180001b9b
mov ecx, 0x12
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x180001b9b
mov ecx, 1
jmp 0x180001b9d
xor ecx, ecx
mov eax, dword [0x180013c20]
mov dword [rsp + 0x24], ecx
lea rcx, [rsp + 0x20]
mov dword [rsp + 0x20], eax
call fcn.180001560
mov rcx, qword [0x180013de0]
xor r8d, r8d
mov edx, dword [0x180013dbc]
mov rax, qword [rcx]
call qword [rax + 0x68]
mov eax, dword [r14 + r15 + 0x13d34]
xorps xmm2, xmm2
shr eax, 1
xorps xmm1, xmm1
mov rcx, rsi
cvtsi2ss xmm2, rax
mov eax, dword [r14 + r15 + 0x13d30]
shr eax, 1
cvtsi2ss xmm1, rax
call fcn.1800011d0
mov rcx, qword [0x180013de0]
xor r9d, r9d
mov rdx, qword [0x180013d00]
xor r8d, r8d
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rcx, qword [0x180013de0]
lea r9, [0x180013cf0]
xor edx, edx
mov rax, qword [rcx]
lea r8d, [rdx + 1]
call qword [rax + 0x40]
mov rcx, qword [0x180013de0]
lea r9, [0x180013cf8]
xor edx, edx
mov rax, qword [rcx]
lea r8d, [rdx + 1]
call qword [rax + 0x50]
mov rcx, qword [0x180013de0]
lea r8, [0x180013cd8]
xor r9d, r9d
mov rax, qword [rcx]
lea edx, [r9 + 1]
call qword [rax + 0x108]
lea rcx, [rsp + 0x20]
mov dword [rsp + 0x20], 0
call fcn.180001560
mov rcx, qword [0x180013de0]
xor r8d, r8d
mov edx, dword [0x180013dbc]
mov rax, qword [rcx]
call qword [rax + 0x68]
mov rcx, qword [0x180013de0]
mov rdx, qword [0x180013ce0]
mov rax, qword [rcx]
call qword [rax + 0x1b0]
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.1800095d0
mov rbx, qword [rsp + 0x80]
add rsp, 0x40
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret