Function at 0x1800896d0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x18], rdi
push rbp
mov rbp, rsp
sub rsp, 0x80
cmp byte [rcx + 0x50], 0
mov rdi, rcx
je 0x180089d20
mov eax, dword [rcx + 0x58]
mov qword [rsp + 0x98], rbx
test eax, eax
jne 0x180089772
mov rax, qword [rcx + 0x40]
add rcx, 0x28
cmp rax, 0xa
jb 0x180089739
mov rbx, rcx
cmp rax, 0xf
jbe 0x180089716
mov rbx, qword [rcx]
mov qword [rcx + 0x10], 0xa
lea rdx, str.___Gravity
mov rcx, rbx
mov r8d, 0xa
call sub.VCRUNTIME140.dll_memmove
mov byte [rbx + 0xa], 0
jmp 0x18008974a
lea r9, str.___Gravity
mov edx, 0xa
call fcn.18006e220
mov rcx, qword [0x180316800]
lea rdx, [rbp - 0x60]
add rcx, 0x18
mov qword [rbp - 0x60], 0x47c34f80
mov dword [rbp - 0x58], 0x47c34f80
call fcn.180068490
jmp 0x180089d18
movaps xmmword [rsp + 0x70], xmm6
movaps xmmword [rsp + 0x60], xmm7
movaps xmmword [rsp + 0x50], xmm8
cmp eax, 1
jne 0x180089999
mov rcx, qword [0x180316800]
lea rdx, [rbp - 0x60]
add rcx, 0x18
mov qword [rbp - 0x60], 0x47c34f80
xorps xmm6, xmm6
mov dword [rbp - 0x58], 0x47c34f80
call fcn.180068490
mov rax, qword [rdi + 0x40]
lea rcx, [rdi + 0x28]
cmp rax, 9
jb 0x1800897ee
mov rbx, rcx
cmp rax, 0xf
jbe 0x1800897cb
mov rbx, qword [rcx]
mov qword [rcx + 0x10], 9
lea rdx, str.___Motion
mov rcx, rbx
mov r8d, 9
call sub.VCRUNTIME140.dll_memmove
mov byte [rbx + 9], 0
jmp 0x1800897ff
lea r9, str.___Motion
mov edx, 9
call fcn.18006e220
mov ecx, 0x20
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x180089838
mov rcx, qword [0x180316800]
lea rdx, [rbp - 0x60]
add rcx, 0x18
mov dword [rbp - 0x60], 0x47c34f80
mov dword [rbp - 0x5c], 0x3e4ccccd
mov dword [rbp - 0x58], 0x47c34f80
call fcn.180068490
mov ecx, 0xa0
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x180089871
mov rcx, qword [0x180316800]
lea rdx, [rbp - 0x60]
add rcx, 0x18
mov dword [rbp - 0x60], 0x47c34f80
mov dword [rbp - 0x5c], 0xbe4ccccd
mov dword [rbp - 0x58], 0x47c34f80
call fcn.180068490
mov rcx, qword [0x180316800]
add rcx, 0x18
call fcn.180067120
mov rcx, qword [0x180316800]
movaps xmm7, xmm0
add rcx, 0x18
call fcn.1800671f0
ucomiss xmm0, xmm6
jp 0x1800898c1
jne 0x1800898c1
ucomiss xmm7, xmm6
jp 0x1800898c1
jne 0x1800898c1
mov rcx, qword [0x180316800]
add rcx, 0x18
mov dword [rbp - 0x60], 0
mov qword [rbp - 0x5c], 0x47c34f80
jmp 0x180089cff
mov rbx, qword [0x180316800]
lea rcx, [rbx + 0x18]
call fcn.180067120
mov rcx, qword [0x180316800]
movaps xmm8, xmm0
add rcx, 0x18
call fcn.1800671f0
mov rcx, qword [0x180316800]
lea rdx, [rbp + 0x10]
add rcx, 0x18
movaps xmm7, xmm0
call fcn.180067920
comiss xmm6, xmm7
movss xmm3, dword [0x180304438]
movss xmm1, dword [rax]
movaps xmm2, xmm3
movss xmm0, dword [0x180304528]
jbe 0x180089923
addss xmm1, dword [0x18030447c]
movaps xmm2, xmm0
comiss xmm8, xmm6
jbe 0x18008993a
ucomiss xmm7, xmm6
subss xmm1, xmm2
jp 0x18008994f
jne 0x18008994f
addss xmm1, xmm0
jmp 0x18008994f
comiss xmm6, xmm8
jbe 0x18008994f
ucomiss xmm7, xmm6
addss xmm1, xmm2
jp 0x18008994f
jne 0x18008994f
addss xmm1, xmm3
cvtps2pd xmm7, xmm1
mulsd xmm7, qword [0x1803042b0]
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
xorps xmm0, xmmword [0x1803047e0]
xorps xmm1, xmm1
mulsd xmm0, qword [0x1803042f8]
mov dword [rbp - 0x5c], 0x47c34f80
cvtsd2ss xmm1, xmm0
movaps xmm0, xmm7
movss dword [rbp - 0x60], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
mulsd xmm0, qword [0x1803042f8]
jmp 0x180089cf2
cmp eax, 2
jne 0x1800899b5
mov rcx, qword [0x180316800]
mov dl, 1
add rcx, 0x18
call fcn.180068d70
jmp 0x180089d08
cmp eax, 3
jne 0x180089ac0
cmp byte [rcx + 0x90], 0
je 0x180089a7b
mov rcx, qword [0x180316800]
add rcx, 0x18
call fcn.180066f90
mov rbx, qword [0x180316800]
lea rdx, [rbp - 0x54]
lea rcx, [rbx + 0x18]
call fcn.180067ab0
mov rcx, qword [0x180316800]
lea rdx, [rbp - 0x48]
add rcx, 0x18
movss xmm6, dword [rax]
mulss xmm6, dword [0x1803042c4]
call fcn.180067ab0
mov rcx, qword [0x180316800]
lea rdx, [rbp - 0x3c]
add rcx, 0x18
movss dword [rbp - 0x60], xmm6
movss xmm0, dword [rax + 4]
mulss xmm0, dword [0x1803042d8]
movss dword [rbp - 0x5c], xmm0
call fcn.180067ab0
lea rdx, [rbp - 0x60]
lea rcx, [rbx + 0x18]
movss xmm0, dword [rax + 8]
mulss xmm0, dword [0x1803042c4]
movss dword [rbp - 0x58], xmm0
call fcn.180068490
movss xmm1, dword [0x18030422c]
mov byte [rdi + 0x90], 0
mov rcx, qword [0x180316800]
add rcx, 0xa0
call fcn.180069e90
mov rcx, qword [0x180316800]
add rcx, 0x18
call fcn.180067de0
test al, al
je 0x180089d08
cmp byte [rdi + 0x90], 0
jne 0x180089d08
mov rcx, qword [0x180316800]
movss xmm1, dword [0x1803042a4]
add rcx, 0xa0
call fcn.180069e90
jmp 0x180089d08
cmp eax, 5
jne 0x180089d08
mov rcx, qword [0x180316800]
add rcx, 0x18
call fcn.180067050
cmp eax, 8
jg 0x180089bc3
mov rcx, qword [0x180316800]
lea rdx, [rbp - 0x60]
add rcx, 0x18
mov qword [rbp - 0x60], 0
xorps xmm6, xmm6
mov dword [rbp - 0x58], 0
call fcn.180068490
mov rbx, qword [0x180316800]
lea rcx, [rbx + 0x18]
call fcn.180067120
mov rcx, qword [0x180316800]
movaps xmm8, xmm0
add rcx, 0x18
call fcn.1800671f0
mov rcx, qword [0x180316800]
lea rdx, [rbp + 0x10]
add rcx, 0x18
movaps xmm7, xmm0
call fcn.180067920
comiss xmm6, xmm7
movss xmm3, dword [0x180304438]
movss xmm1, dword [rax]
movaps xmm2, xmm3
movss xmm0, dword [0x180304528]
jbe 0x180089b6a
addss xmm1, dword [0x18030447c]
movaps xmm2, xmm0
comiss xmm8, xmm6
jbe 0x180089b81
ucomiss xmm7, xmm6
subss xmm1, xmm2
jp 0x180089b96
jne 0x180089b96
addss xmm1, xmm0
jmp 0x180089b96
comiss xmm6, xmm8
jbe 0x180089b96
ucomiss xmm7, xmm6
addss xmm1, xmm2
jp 0x180089b96
jne 0x180089b96
addss xmm1, xmm3
cvtps2pd xmm7, xmm1
mulsd xmm7, qword [0x1803042b0]
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
xorps xmm0, xmmword [0x1803047e0]
xorps xmm1, xmm1
mulsd xmm0, xmm6
cvtsd2ss xmm1, xmm0
movaps xmm0, xmm7
jmp 0x180089cdd
mov rbx, qword [0x180316800]
lea rcx, [rbx + 0x18]
call fcn.180067120
mov rcx, qword [0x180316800]
movaps xmm8, xmm0
add rcx, 0x18
call fcn.1800671f0
mov rcx, qword [0x180316800]
lea rdx, [rbp + 0x10]
add rcx, 0x18
movaps xmm7, xmm0
call fcn.180067920
movss xmm3, dword [0x180304438]
xorps xmm1, xmm1
comiss xmm1, xmm7
movss xmm0, dword [0x180304528]
movaps xmm2, xmm3
movss xmm6, dword [rax]
jbe 0x180089c28
addss xmm6, dword [0x18030447c]
movaps xmm2, xmm0
comiss xmm8, xmm1
jbe 0x180089c3f
ucomiss xmm7, xmm1
subss xmm6, xmm2
jp 0x180089c54
jne 0x180089c54
addss xmm6, xmm0
jmp 0x180089c54
comiss xmm1, xmm8
jbe 0x180089c54
ucomiss xmm7, xmm1
addss xmm6, xmm2
jp 0x180089c54
jne 0x180089c54
addss xmm6, xmm3
mov rcx, qword [0x180316800]
lea rdx, [rbp - 0x3c]
add rcx, 0x18
call fcn.180067ab0
mov rcx, qword [0x180316800]
lea rdx, [rbp - 0x48]
add rcx, 0x18
movss xmm7, dword [rax + 8]
call fcn.180067ab0
mulss xmm7, xmm7
cvtps2pd xmm8, xmm6
movss xmm0, dword [rax]
mulsd xmm8, qword [0x1803042b0]
mulss xmm0, xmm0
addss xmm7, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm7
ja 0x180089caf
xorps xmm0, xmm0
sqrtss xmm0, xmm7
jmp 0x180089cb7
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
xorps xmm6, xmm6
cvtss2sd xmm6, xmm0
movaps xmm0, xmm8
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
xorps xmm0, xmmword [0x1803047e0]
xorps xmm1, xmm1
mulsd xmm0, xmm6
cvtsd2ss xmm1, xmm0
movaps xmm0, xmm8
movss dword [rbp - 0x60], xmm1
mov dword [rbp - 0x5c], 0x47c34f80
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
mulsd xmm0, xmm6
cvtsd2ss xmm0, xmm0
lea rcx, [rbx + 0x18]
movss dword [rbp - 0x58], xmm0
lea rdx, [rbp - 0x60]
call fcn.180068490
movaps xmm7, xmmword [rsp + 0x60]
movaps xmm6, xmmword [rsp + 0x70]
movaps xmm8, xmmword [rsp + 0x50]
mov rbx, qword [rsp + 0x98]
mov rdi, qword [rsp + 0xa0]
add rsp, 0x80
pop rbp
ret