Function at 0x180017700
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x20], rbp
push rdi
sub rsp, 0xe0
mov rdi, qword [0x1801358e8]
movzx ebp, dl
mov rcx, rdi
call fcn.180001ae0
test al, al
je 0x180017b6e
mov qword [rsp + 0xf0], rbx
mov rcx, rdi
mov qword [rsp + 0xf8], rsi
call fcn.180001ae0
test al, al
jne 0x180017749
xor esi, esi
mov ebx, esi
jmp 0x180017798
mov rcx, rdi
call fcn.180001ae0
xor esi, esi
test al, al
jne 0x18001775b
mov ebx, esi
jmp 0x180017798
movzx ebx, byte [rdi + 0x213]
cmp bl, 0xff
jne 0x18001776c
mov rbx, rsi
jmp 0x180017798
mov qword [rsp + 0x100], r14
mov r14, qword [rdi + 0xd8]
mov rcx, r14
call fcn.180001ae0
test al, al
jne 0x18001778c
mov rbx, rsi
jmp 0x180017790
mov rbx, qword [r14 + rbx*8]
mov r14, qword [rsp + 0x100]
mov rcx, rbx
call fcn.180001ae0
test al, al
je 0x180017b5e
lea rcx, [rbx + 0xb40]
call fcn.180001ae0
test al, al
je 0x1800177bf
mov rsi, qword [rbx + 0xb40]
mov rcx, rsi
call fcn.180001ae0
test al, al
je 0x180017b5e
movsd xmm0, qword [rdi + 0x20]
mov ecx, 0x57
mov eax, dword [rdi + 0x28]
mov ebx, dword [rdi + 0x38]
movaps xmmword [rsp + 0xd0], xmm6
movsd xmm6, qword [rdi + 0x30]
movaps xmmword [rsp + 0xc0], xmm7
xorps xmm7, xmm7
movaps xmmword [rsp + 0xb0], xmm8
xorps xmm8, xmm8
movaps xmmword [rsp + 0xa0], xmm9
xorps xmm9, xmm9
movaps xmmword [rsp + 0x90], xmm10
movaps xmmword [rsp + 0x80], xmm11
movaps xmmword [rsp + 0x70], xmm12
movaps xmmword [rsp + 0x60], xmm13
xorps xmm13, xmm13
movaps xmmword [rsp + 0x50], xmm14
movaps xmmword [rsp + 0x40], xmm15
movsd qword [rsp + 0x20], xmm0
mov dword [rsp + 0x28], eax
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movaps xmm12, xmm6
movsd qword [rsp + 0x30], xmm6
movss xmm15, dword [rsp + 0x30]
movd xmm14, ebx
shufps xmm12, xmm12, 0x55
test ax, ax
je 0x1800178aa
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x1800178aa
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x1800178aa
movaps xmm7, xmm15
movaps xmm8, xmm12
movaps xmm9, xmm14
addss xmm7, xmm13
addss xmm8, xmm13
addss xmm9, xmm13
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movss xmm6, dword [rsp + 0x28]
movss xmm10, dword [rsp + 0x24]
movss xmm11, dword [rsp + 0x20]
test ax, ax
je 0x1800178fd
mov ecx, 0x57
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x1800178fd
mov ecx, 0x53
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x1800178fd
addss xmm7, xmm11
addss xmm8, xmm10
addss xmm9, xmm6
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18001793c
mov ecx, 0x57
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x18001793c
mov ecx, 0x53
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x18001793c
subss xmm7, xmm11
subss xmm8, xmm10
subss xmm9, xmm6
mov ecx, 0x53
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18001797b
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x18001797b
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x18001797b
subss xmm7, xmm15
subss xmm8, xmm12
subss xmm9, xmm14
mov ecx, 0x57
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1800179c9
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1800179c9
movaps xmm0, xmm12
addss xmm7, xmm15
addss xmm0, xmm8
subss xmm7, xmm11
movaps xmm8, xmm0
movaps xmm0, xmm14
addss xmm0, xmm9
subss xmm8, xmm10
movaps xmm9, xmm0
subss xmm9, xmm6
mov ecx, 0x57
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180017a17
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180017a17
movaps xmm0, xmm12
addss xmm7, xmm15
addss xmm0, xmm8
addss xmm7, xmm11
movaps xmm8, xmm0
movaps xmm0, xmm14
addss xmm0, xmm9
addss xmm8, xmm10
movaps xmm9, xmm0
addss xmm9, xmm6
mov ecx, 0x53
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180017a55
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180017a55
subss xmm7, xmm15
subss xmm8, xmm12
subss xmm9, xmm14
addss xmm7, xmm11
addss xmm8, xmm10
addss xmm9, xmm6
mov ecx, 0x53
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180017a93
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180017a93
subss xmm7, xmm15
subss xmm8, xmm12
subss xmm9, xmm14
subss xmm7, xmm11
subss xmm8, xmm10
subss xmm9, xmm6
movaps xmm15, xmmword [rsp + 0x40]
movaps xmm0, xmm8
movaps xmm14, xmmword [rsp + 0x50]
movaps xmm1, xmm7
movaps xmm12, xmmword [rsp + 0x70]
movaps xmm11, xmmword [rsp + 0x80]
movaps xmm10, xmmword [rsp + 0x90]
movaps xmm6, xmmword [rsp + 0xd0]
mulss xmm1, xmm7
mulss xmm0, xmm8
mulss xmm9, xmm9
addss xmm1, xmm0
xorps xmm0, xmm0
addss xmm1, xmm9
movaps xmm9, xmmword [rsp + 0xa0]
ucomiss xmm0, xmm1
ja 0x180017af7
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x180017aff
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
ucomiss xmm0, xmm13
movaps xmm13, xmmword [rsp + 0x60]
jp 0x180017b0d
je 0x180017b16
divss xmm7, xmm0
divss xmm8, xmm0
mulss xmm7, dword [0x18008655c]
mulss xmm8, dword [0x18008655c]
test bpl, bpl
je 0x180017b4d
lea rcx, [rsi + 0x480]
call fcn.180001ae0
test al, al
je 0x180017b4d
movss dword [rsi + 0x480], xmm7
movss dword [rsi + 0x484], xmm8
movaps xmm7, xmmword [rsp + 0xc0]
movaps xmm8, xmmword [rsp + 0xb0]
mov rsi, qword [rsp + 0xf8]
mov rbx, qword [rsp + 0xf0]
mov rbp, qword [rsp + 0x108]
add rsp, 0xe0
pop rdi
ret