Function at 0x140064290
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 0x1400642bc
movsd xmm3, qword [0x140085cf0]
jmp 0x1400642bf
movaps xmm3, xmm2
mov rcx, rbx
add rcx, rcx
cmp byte [0x14017c1cd], 0
je 0x140064328
movsd xmm0, qword [0x140085d30]
subsd xmm0, qword [0x14017c238]
movsd xmm2, qword [0x140085e80]
addsd xmm3, qword [0x14017c2c0]
mov rax, qword [0x14017c3a8]
mulsd xmm0, qword [0x140085c70]
movaps xmm1, xmm3
subsd xmm2, xmm0
movsd xmm0, qword [rax + rcx*8]
call fcn.140064140
movsd xmm1, qword [0x14017c308]
divsd xmm1, qword [0x140085d00]
subsd xmm0, xmm1
add rsp, 0x20
pop rbx
ret
cmp byte [0x14017c163], 0
je 0x14006438b
movsd xmm0, qword [0x140085d30]
subsd xmm0, qword [0x14017c2f0]
movsd xmm2, qword [0x140085e80]
addsd xmm3, qword [0x14017c288]
mov rax, qword [0x14017c390]
mulsd xmm0, qword [0x140085c70]
movaps xmm1, xmm3
subsd xmm2, xmm0
movsd xmm0, qword [rax + rcx*8]
call fcn.140064140
movsd xmm1, qword [0x14017c2a0]
divsd xmm1, qword [0x140085d00]
subsd xmm0, xmm1
add rsp, 0x20
pop rbx
ret
cmp byte [0x14017c1ae], 0
je 0x1400643ee
movsd xmm0, qword [0x140085d30]
subsd xmm0, qword [0x14017c220]
movsd xmm2, qword [0x140085e80]
addsd xmm3, qword [0x14017c2d0]
mov rax, qword [0x14017c348]
mulsd xmm0, qword [0x140085c70]
movaps xmm1, xmm3
subsd xmm2, xmm0
movsd xmm0, qword [rax + rcx*8]
call fcn.140064140
movsd xmm1, qword [0x14017c318]
divsd xmm1, qword [0x140085d00]
subsd xmm0, xmm1
add rsp, 0x20
pop rbx
ret
cmp byte [0x14017c165], 0
je 0x140064451
movsd xmm0, qword [0x140085d30]
subsd xmm0, qword [0x14017c2e0]
movsd xmm2, qword [0x140085e80]
addsd xmm3, qword [0x14017c280]
mov rax, qword [0x14017c3c0]
mulsd xmm0, qword [0x140085c70]
movaps xmm1, xmm3
subsd xmm2, xmm0
movsd xmm0, qword [rax + rcx*8]
call fcn.140064140
movsd xmm1, qword [0x14017c2b8]
divsd xmm1, qword [0x140085d00]
subsd xmm0, xmm1
add rsp, 0x20
pop rbx
ret
cmp byte [0x14017c1cc], 0
je 0x1400644b4
movsd xmm0, qword [0x140085d30]
subsd xmm0, qword [0x14017c258]
movsd xmm2, qword [0x140085e80]
addsd xmm3, qword [0x14017c218]
mov rax, qword [0x14017c330]
mulsd xmm0, qword [0x140085c70]
movaps xmm1, xmm3
subsd xmm2, xmm0
movsd xmm0, qword [rax + rcx*8]
call fcn.140064140
movsd xmm1, qword [0x14017c2c8]
divsd xmm1, qword [0x140085d00]
subsd xmm0, xmm1
add rsp, 0x20
pop rbx
ret
cmp byte [0x14017c1ad], 0
je 0x140064517
movsd xmm1, qword [0x140085d30]
subsd xmm1, qword [0x14017c2b0]
movsd xmm2, qword [0x140085e80]
addsd xmm3, qword [0x14017c230]
mov rax, qword [0x14017c360]
mulsd xmm1, qword [0x140085c70]
movsd xmm0, qword [rax + rcx*8]
subsd xmm2, xmm1
movaps xmm1, xmm3
call fcn.140064140
movsd xmm1, qword [0x14017c2f8]
divsd xmm1, qword [0x140085d00]
subsd xmm0, xmm1
add rsp, 0x20
pop rbx
ret
cmp byte [0x14017c1ac], 0
je 0x14006457a
movsd xmm0, qword [0x140085d30]
subsd xmm0, qword [0x14017c248]
movsd xmm2, qword [0x140085e80]
addsd xmm3, qword [0x14017c298]
mov rax, qword [0x14017c378]
mulsd xmm0, qword [0x140085c70]
movaps xmm1, xmm3
subsd xmm2, xmm0
movsd xmm0, qword [rax + rcx*8]
call fcn.140064140
movsd xmm1, qword [0x14017c278]
divsd xmm1, qword [0x140085d00]
subsd xmm0, xmm1
add rsp, 0x20
pop rbx
ret
mov rax, qword [0x14017c3a8]
movaps xmm1, xmm3
movsd xmm0, qword [rax + rcx*8]
add rsp, 0x20
pop rbx
jmp fcn.140064140