Function at 0x1800334a0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x20], rbx
push rsi
push rdi
push r12
sub rsp, 0x90
mov rdi, qword [0x1800cf358]
mov rsi, rcx
mov edx, 8
mov rcx, rdi
mov r12, qword [rdi + 0xf10]
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1800334f1
lea rbx, [rdi + 0x2c8]
cmp rbx, qword [0x1800cf130]
jae 0x1800334f1
cmp rbx, 0x1000
jbe 0x1800334f1
mov rbx, qword [rbx]
jmp 0x1800334f3
xor ebx, ebx
test r12, r12
je 0x1800338e5
test rbx, rbx
je 0x1800338e5
mov qword [rsp + 0xb8], r14
mov qword [rsp + 0xc0], r15
movaps xmmword [rsp + 0x80], xmm6
movaps xmmword [rsp + 0x70], xmm7
movss xmm7, dword [rbx + 0x1c]
movaps xmmword [rsp + 0x60], xmm8
movaps xmm0, xmm7
movss xmm8, dword [rbx + 0x20]
mulss xmm0, xmm7
movaps xmm1, xmm8
movaps xmmword [rsp + 0x50], xmm9
movss xmm9, dword [rbx + 0x18]
movaps xmm2, xmm9
mulss xmm1, xmm8
mulss xmm2, xmm9
addss xmm2, xmm0
xorps xmm0, xmm0
addss xmm2, xmm1
ucomiss xmm0, xmm2
ja 0x180033571
xorps xmm0, xmm0
sqrtss xmm0, xmm2
jmp 0x180033579
movaps xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
xorps xmm6, xmm6
ucomiss xmm0, xmm6
jp 0x18003358c
jne 0x18003358c
xorps xmm7, xmm7
xorps xmm8, xmm8
jmp 0x18003359d
movaps xmm6, xmm9
divss xmm6, xmm0
divss xmm7, xmm0
divss xmm8, xmm0
mov rcx, rdi
mov qword [rsp + 0xb0], rbp
call fcn.18000db10
mov rcx, rax
mov rdx, qword [rax]
call qword [rdx + 0x148]
movss xmm9, dword [0x1800b65a8]
test al, al
jne 0x180033652
movss xmm1, dword [rsi + 0xc4]
lea r14, [rdi + 0x2c8]
mov rax, qword [r14]
addss xmm1, xmm9
movsd xmm2, qword [rax]
mov eax, dword [rax + 8]
movaps xmm0, xmm2
shufps xmm0, xmm0, 0x55
comiss xmm1, xmm0
mov dword [rsp + 0x38], eax
movsd qword [rsp + 0x30], xmm2
ja 0x180033652
call fcn.18000e690
test al, al
jne 0x180033617
mov ecx, 0x20
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x180033652
cmp byte [rsi + 0xe4], 0
lea r15, [rsi + 0xc4]
jne 0x18003368a
mov rax, qword [r14]
lea r15, [rsi + 0xc4]
movsd xmm1, qword [rax]
mov eax, dword [rax + 8]
movaps xmm0, xmm1
shufps xmm0, xmm0, 0x55
comiss xmm0, dword [rsi + 0xc4]
mov dword [rsp + 0x38], eax
movsd qword [rsp + 0x30], xmm1
jbe 0x18003368a
lea r14, [rdi + 0x2c8]
mov rax, qword [r14]
lea r15, [rsi + 0xc4]
movsd xmm1, qword [rax]
mov eax, dword [rax + 8]
movaps xmm0, xmm1
shufps xmm0, xmm0, 0x55
mov dword [rsp + 0x38], eax
movsd qword [rsp + 0x30], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_floorf
subss xmm0, xmm9
movss dword [r15], xmm0
mov edx, dword [rsi + 0xd8]
movaps xmm9, xmmword [rsp + 0x50]
mov rbp, qword [rsp + 0xb0]
sub edx, 1
je 0x180033753
cmp edx, 1
jne 0x1800337b7
call fcn.18000e690
test al, al
jne 0x180033701
mov ecx, 0x20
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180033701
mov rax, qword [0x1800cf348]
movss xmm0, dword [rsi + 0xe0]
mov rcx, qword [rax + 0xd0]
mov rax, qword [rcx + 0xe0]
movss dword [rax], xmm0
mov rax, qword [rcx + 0xe8]
movss dword [rax], xmm0
mov byte [rsi + 0xc8], 1
jmp 0x1800337b7
mov rcx, rdi
call fcn.18000db10
mov rcx, rax
mov rdx, qword [rax]
call qword [rdx + 0x148]
test al, al
jne 0x1800337b7
cmp byte [rsi + 0xc8], al
je 0x1800337b7
mov rax, qword [0x1800cf348]
mov rcx, qword [rax + 0xd0]
mov rax, qword [rcx + 0xe0]
mov dword [rax], 0x41a00000
mov rax, qword [rcx + 0xe8]
mov dword [rax], 0x41a00000
jmp 0x1800337b0
call fcn.18000e690
test al, al
jne 0x180033789
mov ecx, 0x20
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180033789
cvtps2pd xmm0, xmm7
comisd xmm0, xmmword [0x1800b6818]
jbe 0x180033789
mov dword [rbx + 0x1c], 0x3e800000
mov byte [rsi + 0xc8], 1
jmp 0x1800337b7
mov rcx, rdi
call fcn.18000db10
mov rcx, rax
mov rdx, qword [rax]
call qword [rdx + 0x148]
test al, al
jne 0x1800337b7
cmp byte [rsi + 0xc8], al
je 0x1800337b7
mov dword [rbx + 0x1c], 0xbfc00000
mov byte [rsi + 0xc8], 0
mov rax, qword [r14]
movsd xmm0, qword [rax]
mov ecx, dword [rax + 8]
mov eax, dword [r15]
movsd qword [rsi + 0xcc], xmm0
movss xmm0, dword [rsi + 0xe8]
mov dword [rsi + 0xd4], ecx
movaps xmm1, xmm0
mov rcx, qword [0x1800cf348]
mov dword [rsi + 0xd0], eax
mulss xmm0, xmm8
mulss xmm1, xmm6
addss xmm0, dword [rsi + 0xd4]
addss xmm1, dword [rsi + 0xcc]
movss dword [rsi + 0xd4], xmm0
movsd xmm0, qword [rsi + 0xcc]
movss xmm0, xmm1
movsd qword [rsi + 0xcc], xmm0
movaps xmm6, xmm0
mov rax, qword [rcx]
mov ebx, dword [rsi + 0xd4]
mov rdx, qword [rax + 0xd0]
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
movsd xmm1, qword [rsp + 0x20]
lea rdx, [rsp + 0x30]
cvttss2si eax, xmm0
mov rcx, rdi
movsd qword [rsp + 0x30], xmm1
mov dword [rsp + 0x38], eax
mov rax, qword [rdi]
mov r9, qword [rax + 0x30]
call r9
movaps xmm8, xmmword [rsp + 0x60]
movaps xmm7, xmmword [rsp + 0x70]
movaps xmm6, xmmword [rsp + 0x80]
mov rcx, qword [rax + 0x10]
mov r15, qword [rsp + 0xc0]
mov r14, qword [rsp + 0xb8]
mov rax, qword [rcx + 0x108]
cmp dword [rax], 0
jne 0x1800338e5
movsd xmm0, qword [rsi + 0xcc]
lea rdx, [rsp + 0x30]
mov eax, dword [rsi + 0xd4]
mov r8, r12
mov rcx, rsi
movsd qword [rsp + 0x30], xmm0
mov dword [rsp + 0x38], eax
call fcn.1800331d0
mov rbx, qword [rsp + 0xc8]
add rsp, 0x90
pop r12
pop rdi
pop rsi
ret