Function at 0x1400645a0
Capabilities:
Log keystrokes via polling

Disassembly:
push rbx
sub rsp, 0x20
movsxd rbx, ecx
mov ecx, dword [0x14017c17c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movsd xmm2, qword [0x140085cd0]
test ax, ax
jns 0x1400645cc
movsd xmm3, qword [0x140085cf0]
jmp 0x1400645cf
movaps xmm3, xmm2
mov rcx, rbx
add rcx, rcx
cmp byte [0x14017c1cd], 0
je 0x140064639
movsd xmm0, qword [0x140085d30]
subsd xmm0, qword [0x14017c238]
movsd xmm2, qword [0x140085e80]
addsd xmm3, qword [0x14017c210]
mov rax, qword [0x14017c3a8]
mulsd xmm0, qword [0x140085c70]
movaps xmm1, xmm3
subsd xmm2, xmm0
movsd xmm0, qword [rax + rcx*8 + 8]
call fcn.140064140
movsd xmm1, qword [0x14017c250]
divsd xmm1, qword [0x140085d00]
addsd xmm0, xmm1
add rsp, 0x20
pop rbx
ret
cmp byte [0x14017c163], 0
je 0x14006469d
movsd xmm0, qword [0x140085d30]
subsd xmm0, qword [0x14017c2f0]
movsd xmm2, qword [0x140085e80]
addsd xmm3, qword [0x14017c300]
mov rax, qword [0x14017c390]
mulsd xmm0, qword [0x140085c70]
movaps xmm1, xmm3
subsd xmm2, xmm0
movsd xmm0, qword [rax + rcx*8 + 8]
call fcn.140064140
movsd xmm1, qword [0x14017c2d8]
divsd xmm1, qword [0x140085d00]
addsd xmm0, xmm1
add rsp, 0x20
pop rbx
ret
cmp byte [0x14017c1ae], 0
je 0x140064701
movsd xmm0, qword [0x140085d30]
subsd xmm0, qword [0x14017c220]
movsd xmm2, qword [0x140085e80]
addsd xmm3, qword [0x14017c208]
mov rax, qword [0x14017c348]
mulsd xmm0, qword [0x140085c70]
movaps xmm1, xmm3
subsd xmm2, xmm0
movsd xmm0, qword [rax + rcx*8 + 8]
call fcn.140064140
movsd xmm1, qword [0x14017c268]
divsd xmm1, qword [0x140085d00]
addsd xmm0, xmm1
add rsp, 0x20
pop rbx
ret
cmp byte [0x14017c165], 0
je 0x140064765
movsd xmm0, qword [0x140085d30]
subsd xmm0, qword [0x14017c2e0]
movsd xmm2, qword [0x140085e80]
addsd xmm3, qword [0x14017c260]
mov rax, qword [0x14017c3c0]
mulsd xmm0, qword [0x140085c70]
movaps xmm1, xmm3
subsd xmm2, xmm0
movsd xmm0, qword [rax + rcx*8 + 8]
call fcn.140064140
movsd xmm1, qword [0x14017c240]
divsd xmm1, qword [0x140085d00]
addsd xmm0, xmm1
add rsp, 0x20
pop rbx
ret
cmp byte [0x14017c1cc], 0
je 0x1400647c9
movsd xmm0, qword [0x140085d30]
subsd xmm0, qword [0x14017c258]
movsd xmm2, qword [0x140085e80]
addsd xmm3, qword [0x14017c290]
mov rax, qword [0x14017c330]
mulsd xmm0, qword [0x140085c70]
movaps xmm1, xmm3
subsd xmm2, xmm0
movsd xmm0, qword [rax + rcx*8 + 8]
call fcn.140064140
movsd xmm1, qword [0x14017c270]
divsd xmm1, qword [0x140085d00]
addsd xmm0, xmm1
add rsp, 0x20
pop rbx
ret
cmp byte [0x14017c1ad], 0
je 0x14006482d
movsd xmm1, qword [0x140085d30]
subsd xmm1, qword [0x14017c2b0]
movsd xmm2, qword [0x140085e80]
addsd xmm3, qword [0x14017c2a8]
mov rax, qword [0x14017c360]
mulsd xmm1, qword [0x140085c70]
movsd xmm0, qword [rax + rcx*8 + 8]
subsd xmm2, xmm1
movaps xmm1, xmm3
call fcn.140064140
movsd xmm1, qword [0x14017c2e8]
divsd xmm1, qword [0x140085d00]
addsd xmm0, xmm1
add rsp, 0x20
pop rbx
ret
cmp byte [0x14017c1ac], 0
je 0x140064891
movsd xmm0, qword [0x140085d30]
subsd xmm0, qword [0x14017c248]
movsd xmm2, qword [0x140085e80]
addsd xmm3, qword [0x14017c228]
mov rax, qword [0x14017c378]
mulsd xmm0, qword [0x140085c70]
movaps xmm1, xmm3
subsd xmm2, xmm0
movsd xmm0, qword [rax + rcx*8 + 8]
call fcn.140064140
movsd xmm1, qword [0x14017c310]
divsd xmm1, qword [0x140085d00]
addsd xmm0, xmm1
add rsp, 0x20
pop rbx
ret
mov rax, qword [0x14017c3a8]
movaps xmm1, xmm3
movsd xmm0, qword [rax + rcx*8 + 8]
add rsp, 0x20
pop rbx
jmp fcn.140064140