Function at 0x180039560
Capabilities:
Log keystrokes via polling

Disassembly:
push rdi
sub rsp, 0x90
movaps xmmword [rsp + 0x70], xmm7
mov rdi, rcx
movaps xmm7, xmm1
call fcn.18000cfd0
test dword [rax + 0xcc], 0xfffffffd
jne 0x1800399aa
movaps xmmword [rsp + 0x80], xmm6
mov ecx, 0x68
movaps xmmword [rsp + 0x50], xmm9
movaps xmmword [rsp + 0x40], xmm10
movaps xmmword [rsp + 0x20], xmm12
mov qword [rsp + 0xa0], rbx
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
test al, 1
je 0x1800395e0
call fcn.18000cfd0
movaps xmm0, xmm7
lea rbx, [rdi + 0x18]
mulss xmm0, dword [rax + 0xc0]
mov byte [rbx], 1
addss xmm0, dword [rdi + 8]
movss dword [rdi + 8], xmm0
jmp 0x1800395e4
lea rbx, [rdi + 0x18]
movss xmm12, dword [0x1800839e0]
movaps xmm6, xmm7
mov ecx, 0x65
xorps xmm6, xmm12
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
test al, 1
je 0x180039623
call fcn.18000cfd0
movaps xmm0, xmm6
mulss xmm0, dword [rax + 0xc0]
mov byte [rbx], 1
addss xmm0, dword [rdi + 8]
movss dword [rdi + 8], xmm0
mov ecx, 0x66
mov qword [rsp + 0xa8], rsi
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
test al, 1
je 0x180039662
call fcn.18000cfd0
movss xmm0, dword [rdi]
lea rsi, [rdi + 0x18]
movaps xmm1, xmm7
mulss xmm1, dword [rax + 0xc0]
mov byte [rbx], 1
subss xmm0, xmm1
movss dword [rdi], xmm0
jmp 0x180039665
mov rsi, rbx
mov ecx, 0x64
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
test al, 1
je 0x180039696
call fcn.18000cfd0
movss xmm0, dword [rdi]
movaps xmm1, xmm6
mulss xmm1, dword [rax + 0xc0]
mov byte [rbx], 1
subss xmm0, xmm1
movss dword [rdi], xmm0
mov ecx, 0x67
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
test al, 1
je 0x1800396d5
call fcn.18000cfd0
mov rbx, rax
call fcn.18000cfd0
movaps xmm0, xmm7
mulss xmm0, dword [rax + 0xc0]
mulss xmm0, dword [rbx + 0xbc]
mov byte [rsi], 1
addss xmm0, dword [rdi + 4]
movss dword [rdi + 4], xmm0
mov ecx, 0x69
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
test al, 1
je 0x180039711
call fcn.18000cfd0
mov rbx, rax
call fcn.18000cfd0
mulss xmm6, dword [rax + 0xc0]
mulss xmm6, dword [rbx + 0xbc]
mov byte [rsi], 1
addss xmm6, dword [rdi + 4]
movss dword [rdi + 4], xmm6
mov ecx, 0x28
movaps xmmword [rsp + 0x60], xmm8
call qword [sym.imp.USER32.dll_GetKeyState]
movss xmm6, dword [0x1800835c0]
xorps xmm9, xmm9
movss xmm10, dword [0x180083644]
mov rsi, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0xa0]
shr eax, 0xf
test al, 1
je 0x1800397c2
movaps xmmword [rsp + 0x30], xmm11
movss xmm11, dword [rdi + 0x1c]
call fcn.18000cfd0
cmp byte [rax + 0xb0], 0
je 0x18003976c
xorps xmm11, xmm12
movaps xmm8, xmm7
xorps xmm8, xmm12
call fcn.18000cfd0
mulss xmm8, dword [rax + 0xc4]
mulss xmm8, xmm11
movaps xmm11, xmmword [rsp + 0x30]
addss xmm8, dword [rdi + 0x10]
comiss xmm8, xmm6
movss dword [rdi + 0x10], xmm8
jbe 0x1800397ab
nop
addss xmm8, xmm10
comiss xmm8, xmm6
ja 0x1800397a0
comiss xmm9, xmm8
jbe 0x1800397bc
addss xmm8, xmm6
comiss xmm9, xmm8
ja 0x1800397b1
movss dword [rdi + 0x10], xmm8
mov ecx, 0x26
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
test al, 1
je 0x18003982f
movss xmm8, dword [rdi + 0x1c]
call fcn.18000cfd0
cmp byte [rax + 0xb0], 0
je 0x1800397ec
xorps xmm8, xmm12
call fcn.18000cfd0
movaps xmm0, xmm7
mulss xmm0, dword [rax + 0xc4]
mulss xmm0, xmm8
addss xmm0, dword [rdi + 0x10]
comiss xmm0, xmm6
movss dword [rdi + 0x10], xmm0
jbe 0x18003981a
addss xmm0, xmm10
comiss xmm0, xmm6
ja 0x180039810
comiss xmm9, xmm0
jbe 0x18003982a
addss xmm0, xmm6
comiss xmm9, xmm0
ja 0x180039820
movss dword [rdi + 0x10], xmm0
mov ecx, 0x27
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
test al, 1
je 0x18003987f
call fcn.18000cfd0
movaps xmm0, xmm7
mulss xmm0, dword [rax + 0xc4]
addss xmm0, dword [rdi + 0xc]
comiss xmm0, xmm6
movss dword [rdi + 0xc], xmm0
jbe 0x18003986a
addss xmm0, xmm10
comiss xmm0, xmm6
ja 0x180039860
comiss xmm9, xmm0
jbe 0x18003987a
addss xmm0, xmm6
comiss xmm9, xmm0
ja 0x180039870
movss dword [rdi + 0xc], xmm0
mov ecx, 0x25
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
test al, 1
je 0x1800398e2
movaps xmm8, xmm7
xorps xmm8, xmm12
call fcn.18000cfd0
mulss xmm8, dword [rax + 0xc4]
addss xmm8, dword [rdi + 0xc]
comiss xmm8, xmm6
movss dword [rdi + 0xc], xmm8
jbe 0x1800398cb
nop dword [rax]
addss xmm8, xmm10
comiss xmm8, xmm6
ja 0x1800398c0
comiss xmm9, xmm8
jbe 0x1800398dc
addss xmm8, xmm6
comiss xmm9, xmm8
ja 0x1800398d1
movss dword [rdi + 0xc], xmm8
mov ecx, 0x61
call qword [sym.imp.USER32.dll_GetKeyState]
movaps xmm8, xmmword [rsp + 0x60]
shr eax, 0xf
test al, 1
je 0x18003993f
call fcn.18000cfd0
movaps xmm0, xmm7
mulss xmm0, dword [rax + 0xc4]
addss xmm0, dword [rdi + 0x14]
comiss xmm0, xmm6
movss dword [rdi + 0x14], xmm0
jbe 0x18003992a
nop dword [rax]
addss xmm0, xmm10
comiss xmm0, xmm6
ja 0x180039920
comiss xmm9, xmm0
jbe 0x18003993a
addss xmm0, xmm6
comiss xmm9, xmm0
ja 0x180039930
movss dword [rdi + 0x14], xmm0
mov ecx, 0x63
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
test al, 1
je 0x180039990
xorps xmm7, xmm12
call fcn.18000cfd0
mulss xmm7, dword [rax + 0xc4]
addss xmm7, dword [rdi + 0x14]
comiss xmm7, xmm6
movss dword [rdi + 0x14], xmm7
jbe 0x18003997b
addss xmm7, xmm10
comiss xmm7, xmm6
ja 0x180039971
comiss xmm9, xmm7
jbe 0x18003998b
addss xmm7, xmm6
comiss xmm9, xmm7
ja 0x180039981
movss dword [rdi + 0x14], xmm7
movaps xmm10, xmmword [rsp + 0x40]
movaps xmm9, xmmword [rsp + 0x50]
movaps xmm6, xmmword [rsp + 0x80]
movaps xmm12, xmmword [rsp + 0x20]
movaps xmm7, xmmword [rsp + 0x70]
add rsp, 0x90
pop rdi
ret