Function at 0x14002f558
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
mov rdi, qword [0x14010fb98]
xor r14d, r14d
movaps xmmword [rax - 0x28], xmm6
movaps xmmword [rax - 0x38], xmm7
xorps xmm7, xmm7
movaps xmmword [rax - 0x48], xmm8
movaps xmmword [rax - 0x58], xmm9
cmp qword [rdi + 0x3f18], r14
je 0x14002f60c
movss xmm3, dword [rdi + 0x3f2c]
xor ecx, ecx
subss xmm3, dword [rdi + 0x18]
movss dword [rdi + 0x3f2c], xmm3
call fcn.14002ec60
test al, al
je 0x14002f5ff
movss xmm1, dword [rdi + 0xe08]
movss xmm2, dword [rdi + 0xe0c]
subss xmm2, dword [rdi + 0x3f24]
subss xmm1, dword [rdi + 0x3f20]
movss xmm0, dword [rdi + 0x38]
mulss xmm0, xmm0
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm2, xmm1
comiss xmm2, xmm0
jbe 0x14002f5ff
mov dword [rdi + 0x3f2c], r14d
xorps xmm3, xmm3
comiss xmm7, xmm3
jb 0x14002f60c
xorps xmm1, xmm1
call fcn.14002f49c
or r11d, 0xffffffff
mov ecx, 0x286
mov edx, r11d
call fcn.140030218
test al, al
je 0x14002f62c
movss xmm9, dword [rdi + 0xe1c]
jmp 0x14002f630
xorps xmm9, xmm9
mov edx, r11d
mov ecx, 0x287
call fcn.140030218
test al, al
je 0x14002f64c
movss xmm8, dword [rdi + 0xe18]
jmp 0x14002f650
xorps xmm8, xmm8
mov rbx, qword [rdi + 0x3f00]
test rbx, rbx
je 0x14002fae2
cmp byte [rbx + 0xc1], r14b
jne 0x14002fae2
mov eax, dword [rbx + 0x14]
jmp 0x14002f68e
and eax, 0x218
cmp eax, 0x10
jne 0x14002f694
mov rax, qword [rbx + 0x370]
test rax, rax
je 0x14002f694
mov rbx, rax
mov eax, dword [rax + 0x14]
bt eax, 0x18
jb 0x14002f672
mov esi, 1
mov ecx, esi
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x14002f6b4
mov eax, dword [rbx + 0x90]
mov dword [rbx + 0x5c], eax
jmp 0x14002fae2
mov rax, qword [rbx]
movss xmm0, dword [rax + 0x3c24]
mov rax, qword [rbx + 0x370]
mulss xmm0, dword [rbx + 0x298]
test rax, rax
je 0x14002f6db
mulss xmm0, dword [rax + 0x298]
mulss xmm0, dword [0x1400f9030]
movss xmm1, dword [rbx + 0x5c]
mulss xmm0, dword [rdi + 0x18]
addss xmm0, dword [0x1400f8f0c]
cvttss2si eax, xmm0
movss xmm0, dword [rbx + 0x90]
comiss xmm1, xmm0
movd xmm2, eax
cvtdq2ps xmm2, xmm2
jbe 0x14002f717
addss xmm0, xmm2
minss xmm0, xmm1
jmp 0x14002f724
comiss xmm0, xmm1
jbe 0x14002f73a
subss xmm0, xmm2
maxss xmm0, xmm1
movss dword [rbx + 0xa0], xmm0
mov dword [rbx + 0xb0], r14d
mov dword [rbx + 0xa8], r14d
movss xmm0, dword [rdi + 0xe18]
ucomiss xmm0, xmm7
jp 0x14002f75c
jne 0x14002f75c
movss xmm0, dword [rdi + 0xe1c]
ucomiss xmm0, xmm7
jp 0x14002f75c
je 0x14002fae2
xorps xmm0, xmm0
cvtss2sd xmm0, xmm9
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_fabs]
movss xmm1, dword [rdi + 0x3f38]
xorps xmm2, xmm2
movss xmm6, dword [0x1400f9020]
cvtsd2ss xmm2, xmm0
movaps xmm0, xmm1
divss xmm0, xmm6
divss xmm2, xmm6
subss xmm1, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm8
addss xmm1, xmm2
movss dword [rdi + 0x3f38], xmm1
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_fabs]
movss xmm1, dword [rdi + 0x3f3c]
xorps xmm2, xmm2
cvtsd2ss xmm2, xmm0
movaps xmm0, xmm1
divss xmm0, xmm6
divss xmm2, xmm6
subss xmm1, xmm0
addss xmm1, xmm2
movss dword [rdi + 0x3f3c], xmm1
addss xmm9, dword [rdi + 0x3f30]
addss xmm8, dword [rdi + 0x3f34]
mov qword [rdi + 0x3f30], r14
ucomiss xmm9, xmm7
movss dword [rbp + 0x20], xmm9
movss dword [rbp + 0x24], xmm8
jp 0x14002f80d
jne 0x14002f80d
ucomiss xmm8, xmm7
jp 0x14002f80d
je 0x14002fae2
mov rbx, qword [rdi + 0x3f18]
test rbx, rbx
jne 0x14002f8aa
mov rax, qword [0x14010fb98]
lea r9, [rbp - 0x50]
xorps xmm0, xmm0
lea r11d, [rbx + 2]
movdqu xmmword [rbp - 0x50], xmm0
mov r8d, 0x94
movss xmm0, dword [rbp + r8 - 0x74]
ucomiss xmm0, xmm7
jp 0x14002f848
je 0x14002f887
mov rcx, qword [rax + 0x3f00]
jmp 0x14002f87b
movss xmm0, dword [r8 + rcx]
ucomiss xmm0, xmm7
jp 0x14002f861
mov r10b, r14b
je 0x14002f864
mov r10b, sil
and edx, 0x210
test r10b, r10b
je 0x14002f874
cmp edx, 0x10
jne 0x14002f887
mov rcx, qword [rcx + 0x370]
mov edx, dword [rcx + 0x14]
bt edx, 0x18
mov qword [r9], rcx
jb 0x14002f851
add r8, 4
add r9, 8
sub r11, rsi
jne 0x14002f83a
mov rcx, qword [rbp - 0x50]
mov rbx, qword [rbp - 0x48]
test rcx, rcx
jne 0x14002f8de
test rbx, rbx
je 0x14002fae2
test dword [rbx + 0x14], 0x210
jne 0x14002fae2
ucomiss xmm9, xmm7
jp 0x14002f8bf
je 0x14002f8d6
movss xmm0, dword [rbx + 0x94]
ucomiss xmm0, xmm7
jp 0x14002f965
jne 0x14002f965
mov al, r14b
jmp 0x14002f968
cmp rcx, rbx
je 0x14002f954
test rcx, rcx
je 0x14002f954
test rbx, rbx
je 0x14002f95d
mov edx, dword [rax + 0x3f28]
cmp edx, 0xffffffff
jne 0x14002f904
mov edx, dword [rax + 0x3e50]
mov dword [rax + 0x3f28], edx
cmp edx, dword [rax + 0x3e50]
jne 0x14002f91c
ucomiss xmm9, xmm7
jp 0x14002f914
je 0x14002f91c
ucomiss xmm8, xmm7
jp 0x14002f933
jne 0x14002f933
movss xmm0, dword [rax + 0x3f38]
movss xmm1, dword [rax + 0x3f3c]
ucomiss xmm0, xmm1
jp 0x14002f948
jne 0x14002f948
movaps xmm0, xmm9
unpcklps xmm0, xmm8
movsd qword [rax + 0x3f30], xmm0
jmp 0x14002fae2
comiss xmm0, xmm1
cmova rbx, rcx
jmp 0x14002f8a1
test rbx, rbx
jne 0x14002f8aa
mov rbx, rcx
jmp 0x14002f8a1
mov al, sil
ucomiss xmm8, xmm7
mov byte [rbp + 0x20], al
jp 0x14002f973
je 0x14002f982
movss xmm0, dword [rbx + 0x98]
ucomiss xmm0, xmm7
jp 0x14002f98b
jne 0x14002f98b
mov sil, r14b
mov byte [rbp + 0x21], r14b
jmp 0x14002f98f
mov byte [rbp + 0x21], sil
movss xmm6, dword [0x1400f8f20]
test al, al
je 0x14002fa4e
test sil, sil
je 0x14002f9c5
movss xmm0, dword [rdi + 0x3f38]
mov rax, r14
comiss xmm0, dword [rdi + 0x3f3c]
seta al
mov byte [rbp + rax + 0x20], r14b
mov sil, byte [rbp + 0x21]
mov al, byte [rbp + 0x20]
test al, al
je 0x14002fa4e
movaps xmm1, xmm9
mov rcx, rbx
call fcn.14002f49c
mov rax, qword [rbx]
movss xmm2, dword [rbx + 0x208]
subss xmm2, dword [rbx + 0x200]
movss xmm0, dword [rax + 0x3c24]
mov rax, qword [rbx + 0x370]
mulss xmm0, dword [rbx + 0x298]
mulss xmm2, xmm6
test rax, rax
je 0x14002fa14
mulss xmm0, dword [rax + 0x298]
addss xmm0, xmm0
mov dword [rbx + 0xa4], r14d
mov dword [rbx + 0xac], r14d
minss xmm0, xmm2
cvttss2si eax, xmm0
movss xmm0, dword [rbx + 0x8c]
movd xmm2, eax
cvtdq2ps xmm2, xmm2
mulss xmm2, xmm9
subss xmm0, xmm2
movss dword [rbx + 0x9c], xmm0
test sil, sil
je 0x14002fae2
movaps xmm1, xmm8
mov rcx, rbx
call fcn.14002f49c
movss xmm1, dword [rbx + 0x20c]
subss xmm1, dword [rbx + 0x204]
movss xmm2, dword [rdi + 0xe18]
ucomiss xmm2, xmm7
mov rcx, qword [rbx + 0x370]
mulss xmm1, xmm6
jp 0x14002fa8d
je 0x14002fae2
cmp byte [rdi + 0xe25], r14b
jne 0x14002fae2
mov rax, qword [rbx]
movss xmm0, dword [rax + 0x3c24]
mulss xmm0, dword [rbx + 0x298]
test rcx, rcx
je 0x14002fab6
mulss xmm0, dword [rcx + 0x298]
mulss xmm0, dword [0x1400f900c]
minss xmm0, xmm1
cvttss2si eax, xmm0
movss xmm0, dword [rbx + 0x90]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm2
subss xmm0, xmm1
movss dword [rbx + 0x5c], xmm0
movaps xmm6, xmmword [rsp + 0x60]
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm7, xmmword [rsp + 0x50]
mov rsp, r11
pop r15
pop r14
pop rbp
ret