Function at 0x180013c40
Capabilities:
Log keystrokes via polling

Disassembly:
mov r11, rsp
push rsi
sub rsp, 0x80
mov rsi, rcx
mov rcx, qword [0x1800a8bb0]
test rcx, rcx
je 0x180013fdd
mov rax, qword [rcx + 0xd0]
test rax, rax
je 0x180013fdd
mov rax, qword [rax + 0xe0]
mov qword [r11 + 8], rbx
xor ebx, ebx
mov qword [r11 + 0x10], rbp
mov qword [r11 + 0x20], r12
mov dword [rax], ebx
mov rax, qword [rcx]
mov rdx, qword [rax + 0xe8]
call rdx
mov rbp, rax
mov r12, qword [rax + 0xed8]
test r12, r12
je 0x180013fc5
cmp qword [rax + 0x298], rbx
je 0x180013fc5
cvttss2si ecx, dword [rsi + 0xf0]
mov dword [rsi + 0xf4], ecx
cmp byte [rsi + 0xfc], bl
je 0x180013ccf
mov dword [rsi + 0xf8], ebx
jmp 0x180013ce8
mov eax, dword [rsi + 0xf8]
inc eax
mov dword [rsi + 0xf8], eax
cdq
idiv ecx
test edx, edx
jne 0x180013fc5
mov rax, qword [rbp + 0x298]
mov qword [rsp + 0xa0], rdi
mov qword [rsp + 0x70], r15
movaps xmmword [rsp + 0x60], xmm6
movss xmm0, dword [rax + 0x1c]
mulss xmm0, xmm0
movaps xmmword [rsp + 0x50], xmm7
movss xmm7, dword [rax + 0x20]
movaps xmmword [rsp + 0x40], xmm8
movss xmm8, dword [rax + 0x18]
movaps xmm1, xmm8
mulss xmm1, xmm8
addss xmm1, xmm0
movaps xmm0, xmm7
mulss xmm0, xmm7
addss xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x180013d49
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x180013d51
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
xorps xmm6, xmm6
ucomiss xmm0, xmm6
jp 0x180013d60
jne 0x180013d60
xorps xmm7, xmm7
jmp 0x180013d6c
movaps xmm6, xmm8
divss xmm6, xmm0
divss xmm7, xmm0
mov rcx, rbp
mov qword [rsp + 0x78], r14
call fcn.180006440
movss xmm8, dword [0x1800983fc]
test al, al
jne 0x180013e4b
movss xmm0, dword [rsi + 0xbc]
addss xmm0, dword [0x18009837c]
mov rax, qword [rbp + 0x298]
comiss xmm0, dword [rax + 4]
ja 0x180013e4b
mov rcx, qword [0x1800a8bb0]
mov rax, qword [rcx]
mov rdx, qword [rax + 0xe8]
call rdx
test rax, rax
je 0x180013e0c
mov rax, qword [rax + 0x298]
test rax, rax
je 0x180013e0c
movss xmm0, dword [rax + 0x20]
movss xmm1, dword [rax + 0x18]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x180013df6
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x180013dfe
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
comiss xmm0, dword [0x180098324]
setae al
test al, al
jne 0x180013e1c
mov ecx, 0x20
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x180013e4b
lea r14, [rsi + 0xdc]
lea r15, [rsi + 0xbc]
cmp byte [r14], bl
jne 0x180013e74
mov rax, qword [rbp + 0x298]
lea r15, [rsi + 0xbc]
movss xmm0, dword [rax + 4]
comiss xmm0, dword [rsi + 0xbc]
jbe 0x180013e74
mov rax, qword [rbp + 0x298]
lea r15, [rsi + 0xbc]
movss xmm0, dword [rax + 4]
call sub.api_ms_win_crt_math_l1_1_0.dll_floorf
subss xmm0, xmm8
lea r14, [rsi + 0xdc]
movss dword [r15], xmm0
mov rax, qword [rbp + 0x298]
mov rcx, qword [0x1800a8bb0]
movsd xmm0, qword [rax]
movsd qword [rsi + 0xc4], xmm0
mov eax, dword [rax + 8]
movss xmm0, dword [rsi + 0xe0]
mov dword [rsi + 0xcc], eax
movaps xmm1, xmm0
mov eax, dword [r15]
mov dword [rsi + 0xc8], eax
mulss xmm0, xmm7
mulss xmm1, xmm6
addss xmm0, dword [rsi + 0xcc]
addss xmm1, dword [rsi + 0xc4]
movss dword [rsi + 0xcc], xmm0
movsd xmm0, qword [rsi + 0xc4]
movss xmm0, xmm1
movsd qword [rsi + 0xc4], xmm0
movaps xmm6, xmm0
mov rax, qword [rcx]
mov ebx, dword [rsi + 0xcc]
mov rdx, qword [rax + 0xe0]
call rdx
movaps xmm0, xmm6
mov rdi, rax
call sub.api_ms_win_crt_math_l1_1_0.dll_floorf
cvttss2si ecx, xmm0
movaps xmm0, xmm6
shufps xmm0, xmm0, 0x55
mov dword [rsp + 0x20], ecx
call sub.api_ms_win_crt_math_l1_1_0.dll_floorf
cvttss2si ecx, xmm0
movd xmm0, ebx
mov dword [rsp + 0x24], ecx
call sub.api_ms_win_crt_math_l1_1_0.dll_floorf
cvttss2si eax, xmm0
lea rdx, [rsp + 0x20]
mov rcx, rdi
mov dword [rsp + 0x28], eax
mov rax, qword [rdi]
mov r8, qword [rax + 0x10]
call r8
movaps xmm7, xmmword [rsp + 0x50]
movaps xmm6, xmmword [rsp + 0x60]
mov rdi, qword [rsp + 0xa0]
mov rcx, qword [rax + 0x30]
mov rax, qword [rcx + 0x128]
cmp dword [rax], 0
jne 0x180013fb5
cmp byte [rsi + 0xdd], 0
je 0x180013f8d
cmp byte [r14], 0
je 0x180013f8d
mov rax, qword [rbp + 0x298]
movss xmm0, dword [rax + 4]
call sub.api_ms_win_crt_math_l1_1_0.dll_floorf
subss xmm0, xmm8
ucomiss xmm0, dword [r15]
jp 0x180013fb5
jne 0x180013fb5
movsd xmm0, qword [rsi + 0xc4]
lea rdx, [rsp + 0x20]
mov eax, dword [rsi + 0xcc]
mov r8, r12
mov rcx, rsi
movsd qword [rsp + 0x20], xmm0
mov dword [rsp + 0x28], eax
call fcn.180013980
mov r14, qword [rsp + 0x78]
mov r15, qword [rsp + 0x70]
movaps xmm8, xmmword [rsp + 0x40]
mov rbp, qword [rsp + 0x98]
mov rbx, qword [rsp + 0x90]
mov r12, qword [rsp + 0xa8]
add rsp, 0x80
pop rsi
ret