Function at 0x180088140
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rdi
push rbp
lea rbp, [rax - 0x5f]
sub rsp, 0xf0
cmp byte [rcx + 8], 0
mov rbx, r8
mov rdi, rcx
je 0x1800885f6
movaps xmmword [rax - 0x18], xmm6
lea rdx, [rbp - 0x69]
movaps xmmword [rax - 0x28], xmm7
mov rcx, rbx
movaps xmmword [rax - 0x38], xmm8
movaps xmmword [rax - 0x48], xmm9
movaps xmmword [rax - 0x58], xmm10
movaps xmmword [rax - 0x68], xmm11
movaps xmmword [rax - 0x78], xmm12
movaps xmmword [rsp + 0x70], xmm13
movaps xmmword [rsp + 0x60], xmm14
movaps xmmword [rsp + 0x50], xmm15
call fcn.180061300
movss xmm7, dword [rdi + 0x1c]
lea rdx, [rbp - 0x79]
mov rcx, rbx
cvtps2pd xmm7, xmm7
call fcn.180061160
movsd xmm0, qword [rax + 8]
movsd xmm10, qword [0x1802ffe80]
movsd xmm8, qword [rax]
mulsd xmm0, xmm10
mulsd xmm8, xmm10
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
movaps xmm6, xmm0
movaps xmm0, xmm8
mulsd xmm6, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
movsd xmm11, qword [0x180300520]
movaps xmm12, xmm0
xorps xmm12, xmm11
movaps xmm0, xmm8
mulsd xmm12, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
movaps xmm13, xmm0
lea rdx, [rbp - 0x79]
mov rcx, rbx
mulsd xmm13, xmm6
call fcn.180061160
movsd xmm7, qword [rax + 8]
movsd xmm9, qword [rax]
mulsd xmm7, xmm10
mulsd xmm9, xmm10
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
movaps xmm8, xmm0
movaps xmm0, xmm9
mulsd xmm8, qword [0x1802ffea8]
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
movaps xmm14, xmm0
movaps xmm0, xmm7
xorps xmm14, xmm11
mulsd xmm14, xmm8
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
movaps xmm15, xmm0
movaps xmm0, xmm9
xorps xmm15, xmm11
mulsd xmm15, qword [0x1802ffea8]
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
mulsd xmm0, xmm8
lea rdx, [rbp - 0x79]
mov rcx, rbx
movsd qword [rbp + 0x67], xmm0
call fcn.180061160
movsd xmm7, qword [rax + 8]
movsd xmm9, qword [rax]
mulsd xmm7, xmm10
mulsd xmm9, xmm10
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
movaps xmm8, xmm0
movaps xmm0, xmm9
mulsd xmm8, qword [0x1802ffe90]
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
movaps xmm10, xmm0
movaps xmm0, xmm7
xorps xmm10, xmm11
mulsd xmm10, xmm8
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
movaps xmm7, xmm0
xorps xmm7, xmm11
mulsd xmm7, qword [0x1802ffe90]
movaps xmm0, xmm9
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
cmp dword [0x180310814], 0
movaps xmm9, xmm0
movaps xmm11, xmmword [rsp + 0x90]
mulsd xmm9, xmm8
movaps xmm8, xmmword [rsp + 0xc0]
jne 0x1800883aa
mov ecx, 0x57
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x180088364
mov rcx, rbx
call fcn.180061620
test al, al
je 0x180088364
movsd xmm0, qword [rbp - 0x69]
lea rdx, [rbp - 0x69]
movsd xmm1, qword [rbp - 0x59]
addsd xmm0, xmm12
addsd xmm1, xmm13
mov rcx, rbx
movsd qword [rbp - 0x69], xmm0
movsd qword [rbp - 0x59], xmm1
call fcn.180061b40
mov ecx, 0x53
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x1800883aa
mov rcx, rbx
call fcn.180061620
test al, al
je 0x1800883aa
movsd xmm0, qword [rbp - 0x69]
lea rdx, [rbp - 0x69]
movsd xmm1, qword [rbp - 0x59]
subsd xmm0, xmm12
subsd xmm1, xmm13
mov rcx, rbx
movsd qword [rbp - 0x69], xmm0
movsd qword [rbp - 0x59], xmm1
call fcn.180061b40
cmp dword [0x180310814], 1
jne 0x180088443
mov ecx, 0x57
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x1800883fd
mov rcx, rbx
call fcn.180061620
test al, al
jne 0x1800883fd
movsd xmm0, qword [rbp - 0x69]
lea rdx, [rbp - 0x69]
movsd xmm1, qword [rbp - 0x59]
addsd xmm0, xmm12
addsd xmm1, xmm13
mov rcx, rbx
movsd qword [rbp - 0x69], xmm0
movsd qword [rbp - 0x59], xmm1
call fcn.180061b40
mov ecx, 0x53
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x180088443
mov rcx, rbx
call fcn.180061620
test al, al
jne 0x180088443
movsd xmm0, qword [rbp - 0x69]
lea rdx, [rbp - 0x69]
movsd xmm1, qword [rbp - 0x59]
subsd xmm0, xmm12
subsd xmm1, xmm13
mov rcx, rbx
movsd qword [rbp - 0x69], xmm0
movsd qword [rbp - 0x59], xmm1
call fcn.180061b40
cmp dword [0x180310814], 2
movaps xmm13, xmmword [rsp + 0x70]
movaps xmm12, xmmword [rsp + 0x80]
jne 0x180088513
mov ecx, 0x57
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x1800884ba
mov rcx, rbx
call fcn.180061620
movsd xmm6, qword [rbp + 0x67]
test al, al
jne 0x1800884bf
movsd xmm0, qword [rbp - 0x69]
lea rdx, [rbp - 0x69]
movsd xmm1, qword [rbp - 0x61]
addsd xmm0, xmm14
addsd xmm1, xmm15
mov rcx, rbx
movsd qword [rbp - 0x69], xmm0
movsd xmm0, qword [rbp - 0x59]
addsd xmm0, xmm6
movsd qword [rbp - 0x61], xmm1
movsd qword [rbp - 0x59], xmm0
call fcn.180061b40
jmp 0x1800884bf
movsd xmm6, qword [rbp + 0x67]
mov ecx, 0x53
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x180088513
mov rcx, rbx
call fcn.180061620
test al, al
jne 0x180088513
movsd xmm0, qword [rbp - 0x69]
lea rdx, [rbp - 0x69]
movsd xmm1, qword [rbp - 0x61]
subsd xmm0, xmm14
addsd xmm1, xmm15
mov rcx, rbx
movsd qword [rbp - 0x69], xmm0
movsd xmm0, qword [rbp - 0x59]
subsd xmm0, xmm6
movsd qword [rbp - 0x61], xmm1
movsd qword [rbp - 0x59], xmm0
call fcn.180061b40
cmp dword [0x180310814], 3
movaps xmm15, xmmword [rsp + 0x50]
movaps xmm14, xmmword [rsp + 0x60]
movaps xmm6, xmmword [rsp + 0xe0]
jne 0x1800885dc
mov ecx, 0x57
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x180088588
mov rcx, rbx
call fcn.180061620
test al, al
jne 0x180088588
movsd xmm0, qword [rbp - 0x69]
lea rdx, [rbp - 0x69]
movsd xmm1, qword [rbp - 0x61]
addsd xmm0, xmm10
addsd xmm1, xmm7
mov rcx, rbx
movsd qword [rbp - 0x69], xmm0
movsd xmm0, qword [rbp - 0x59]
addsd xmm0, xmm9
movsd qword [rbp - 0x61], xmm1
movsd qword [rbp - 0x59], xmm0
call fcn.180061b40
mov ecx, 0x53
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x1800885dc
mov rcx, rbx
call fcn.180061620
test al, al
jne 0x1800885dc
movsd xmm0, qword [rbp - 0x69]
lea rdx, [rbp - 0x69]
movsd xmm1, qword [rbp - 0x61]
subsd xmm0, xmm10
addsd xmm1, xmm7
mov rcx, rbx
movsd qword [rbp - 0x69], xmm0
movsd xmm0, qword [rbp - 0x59]
subsd xmm0, xmm9
movsd qword [rbp - 0x61], xmm1
movsd qword [rbp - 0x59], xmm0
call fcn.180061b40
movaps xmm9, xmmword [rsp + 0xb0]
movaps xmm7, xmmword [rsp + 0xd0]
movaps xmm10, xmmword [rsp + 0xa0]
lea r11, [rsp + 0xf0]
mov rbx, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov rsp, r11
pop rbp
ret