Function at 0x140064f50
Capabilities:
Log keystrokes via polling

Disassembly:
push rbx
sub rsp, 0x20
movsxd rbx, ecx
mov ecx, dword [0x1401cd028]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movsd xmm2, qword [0x140086ff8]
test ax, ax
jns 0x140064f7c
movsd xmm3, qword [0x140087018]
jmp 0x140064f7f
movaps xmm3, xmm2
mov rcx, rbx
add rcx, rcx
cmp byte [0x1401cd09d], 0
je 0x140064fe8
movsd xmm0, qword [0x140087058]
subsd xmm0, qword [0x1401cd108]
movsd xmm2, qword [0x1400871b8]
addsd xmm3, qword [0x1401cd190]
mov rax, qword [0x1401cd278]
mulsd xmm0, qword [0x140086fa0]
movaps xmm1, xmm3
subsd xmm2, xmm0
movsd xmm0, qword [rax + rcx*8]
call fcn.140064e20
movsd xmm1, qword [0x1401cd1d8]
divsd xmm1, qword [0x140087028]
subsd xmm0, xmm1
add rsp, 0x20
pop rbx
ret
cmp byte [0x1401cd003], 0
je 0x14006504b
movsd xmm0, qword [0x140087058]
subsd xmm0, qword [0x1401cd1c0]
movsd xmm2, qword [0x1400871b8]
addsd xmm3, qword [0x1401cd158]
mov rax, qword [0x1401cd260]
mulsd xmm0, qword [0x140086fa0]
movaps xmm1, xmm3
subsd xmm2, xmm0
movsd xmm0, qword [rax + rcx*8]
call fcn.140064e20
movsd xmm1, qword [0x1401cd170]
divsd xmm1, qword [0x140087028]
subsd xmm0, xmm1
add rsp, 0x20
pop rbx
ret
cmp byte [0x1401cd02e], 0
je 0x1400650ae
movsd xmm0, qword [0x140087058]
subsd xmm0, qword [0x1401cd0f0]
movsd xmm2, qword [0x1400871b8]
addsd xmm3, qword [0x1401cd1a0]
mov rax, qword [0x1401cd218]
mulsd xmm0, qword [0x140086fa0]
movaps xmm1, xmm3
subsd xmm2, xmm0
movsd xmm0, qword [rax + rcx*8]
call fcn.140064e20
movsd xmm1, qword [0x1401cd1e8]
divsd xmm1, qword [0x140087028]
subsd xmm0, xmm1
add rsp, 0x20
pop rbx
ret
cmp byte [0x1401cd00d], 0
je 0x140065111
movsd xmm0, qword [0x140087058]
subsd xmm0, qword [0x1401cd1b0]
movsd xmm2, qword [0x1400871b8]
addsd xmm3, qword [0x1401cd150]
mov rax, qword [0x1401cd290]
mulsd xmm0, qword [0x140086fa0]
movaps xmm1, xmm3
subsd xmm2, xmm0
movsd xmm0, qword [rax + rcx*8]
call fcn.140064e20
movsd xmm1, qword [0x1401cd188]
divsd xmm1, qword [0x140087028]
subsd xmm0, xmm1
add rsp, 0x20
pop rbx
ret
cmp byte [0x1401cd09c], 0
je 0x140065174
movsd xmm0, qword [0x140087058]
subsd xmm0, qword [0x1401cd128]
movsd xmm2, qword [0x1400871b8]
addsd xmm3, qword [0x1401cd0e8]
mov rax, qword [0x1401cd200]
mulsd xmm0, qword [0x140086fa0]
movaps xmm1, xmm3
subsd xmm2, xmm0
movsd xmm0, qword [rax + rcx*8]
call fcn.140064e20
movsd xmm1, qword [0x1401cd198]
divsd xmm1, qword [0x140087028]
subsd xmm0, xmm1
add rsp, 0x20
pop rbx
ret
cmp byte [0x1401cd02d], 0
je 0x1400651d7
movsd xmm1, qword [0x140087058]
subsd xmm1, qword [0x1401cd180]
movsd xmm2, qword [0x1400871b8]
addsd xmm3, qword [0x1401cd100]
mov rax, qword [0x1401cd230]
mulsd xmm1, qword [0x140086fa0]
movsd xmm0, qword [rax + rcx*8]
subsd xmm2, xmm1
movaps xmm1, xmm3
call fcn.140064e20
movsd xmm1, qword [0x1401cd1c8]
divsd xmm1, qword [0x140087028]
subsd xmm0, xmm1
add rsp, 0x20
pop rbx
ret
cmp byte [0x1401cd02c], 0
je 0x14006523a
movsd xmm0, qword [0x140087058]
subsd xmm0, qword [0x1401cd118]
movsd xmm2, qword [0x1400871b8]
addsd xmm3, qword [0x1401cd168]
mov rax, qword [0x1401cd248]
mulsd xmm0, qword [0x140086fa0]
movaps xmm1, xmm3
subsd xmm2, xmm0
movsd xmm0, qword [rax + rcx*8]
call fcn.140064e20
movsd xmm1, qword [0x1401cd148]
divsd xmm1, qword [0x140087028]
subsd xmm0, xmm1
add rsp, 0x20
pop rbx
ret
mov rax, qword [0x1401cd278]
movaps xmm1, xmm3
movsd xmm0, qword [rax + rcx*8]
add rsp, 0x20
pop rbx
jmp fcn.140064e20