Function at 0x180002ff0
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x1c8]
sub rsp, 0x2a0
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
movaps xmmword [rax - 0x78], xmm10
movaps xmmword [rax - 0x88], xmm11
movaps xmmword [rax - 0x98], xmm12
movaps xmmword [rax - 0xa8], xmm13
movaps xmmword [rax - 0xb8], xmm14
mov rax, qword [0x180008010]
xor rax, rsp
mov qword [rbp + 0x108], rax
movabs r12, 0x142373288
mov rax, qword [r12]
mov rcx, qword [rax + 0xe0]
mov qword [rbp + 0x28], rcx
mov rdi, qword [rax + 0x48]
mov rax, qword [rcx]
mov rdx, qword [rax + 0xa8]
call rdx
mov r13, rax
mov qword [rbp - 0x30], rax
test rax, rax
je 0x180003a4b
mov rcx, qword [r12]
mov rdx, qword [rcx + 0xd0]
mov rbx, qword [rdx + 0x48]
mov qword [rsp + 0x78], rbx
mov rcx, qword [rbx]
mov rdx, qword [rcx + 0x448]
mov rcx, rbx
call rdx
mov r15, rax
mov qword [rbp + 0x20], rax
test rax, rax
je 0x180003a4b
xor esi, esi
mov qword [rbp + 0x38], rsi
mov rcx, qword [rbx]
mov r8, qword [rcx + 0x470]
lea rdx, [rbp + 0x38]
mov rcx, rbx
call r8
mov r14, qword [rbp + 0x38]
test al, al
cmove r14, rsi
mov qword [rbp - 0x40], r14
mov qword [rbp + 0x38], r14
test r14, r14
je 0x180003a4b
mov rax, qword [r14]
mov r8, qword [rax + 0x1d8]
xor edx, edx
mov rcx, r14
call r8
mov rsi, rax
mov qword [rbp - 0x38], rax
test rax, rax
je 0x180003a4b
mov rcx, qword [rax]
mov rdx, qword [rcx + 0x280]
mov rcx, rax
call rdx
test rax, rax
je 0x180003a4b
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x180003a4b
mov rbx, qword [rcx + 0xd0]
test rbx, rbx
je 0x180003a4b
mov rax, qword [r12]
mov rcx, qword [rax + 0xc0]
mov rax, qword [rcx]
mov r8, qword [rax + 0x38]
xor edx, edx
call r8
movss xmm1, dword [0x18000881c]
addss xmm1, xmm0
movss dword [0x18000881c], xmm1
movss xmm0, dword [0x1800068ac]
movss dword [0x180008818], xmm0
mov rax, qword [r15]
mov r8, qword [rax + 0x3a8]
lea rdx, str.mat_head
mov rcx, r15
call r8
mov dword [rbp - 0x48], eax
call fcn.180001d80
movsd xmm12, qword [rdi + 0x17c0]
mov ecx, dword [rdi + 0x17c8]
movss dword [0x180008830], xmm12
movaps xmm11, xmm12
shufps xmm11, xmm11, 0x55
movsd qword [rbp - 0x10], xmm12
movss dword [0x180008834], xmm11
movd xmm14, ecx
movss dword [0x180008838], xmm14
movzx eax, byte [r14 + 0xce4]
mov byte [0x18000884c], al
mov dword [0x180008888], 1
xorps xmm10, xmm10
mov qword [0x180008890], 0
mov dword [0x180008898], 0x3f800000
mov qword [0x180008840], 0
mov dword [0x180008848], 0x3f800000
xorps xmm0, xmm0
movups xmmword [rbp + 0xd8], xmm0
movss xmm0, dword [0x1800068d0]
movss dword [rsp + 0x74], xmm0
mov ecx, 4
call fcn.1800047e8
mov r12, rax
mov qword [rbp + 0xd8], rax
lea rcx, [rax + 4]
mov qword [rbp + 0xe8], rcx
mov eax, dword [rsp + 0x74]
mov dword [r12], eax
mov qword [rbp + 0xe0], rcx
xorps xmm0, xmm0
movups xmmword [rbp + 0xf0], xmm0
movss xmm0, dword [0x1800068dc]
movss dword [rsp + 0x70], xmm0
mov ecx, 4
call fcn.1800047e8
mov rcx, rax
mov qword [rbp + 0xf0], rax
lea rdx, [rax + 4]
mov qword [rbp + 0x100], rdx
mov eax, dword [rsp + 0x70]
mov dword [rcx], eax
mov qword [rbp + 0xf8], rdx
xorps xmm1, xmm1
movdqu xmmword [rbp + 0xa0], xmm1
xor r12d, r12d
mov r15d, r12d
mov qword [rbp + 0xb0], r12
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
mov r14d, eax
mov dword [rbp - 0x44], eax
mov rcx, qword [rsi + 0x10]
mov rdx, qword [rcx]
mov r8, qword [rdx + 0x60]
call r8
mov qword [rbp + 0x30], rax
mov rcx, qword [r13]
mov rdx, qword [rcx + 0x30]
mov rcx, r13
call rdx
mov rsi, rax
mov rdi, qword [rbp + 0xa8]
test rax, rax
je 0x180003853
movss xmm13, dword [0x180006910]
movss xmm9, dword [0x1800068d4]
mov r12, qword [rsp + 0x78]
nop
mov rax, qword [rsi]
mov rdx, qword [rax + 0x178]
mov rcx, rsi
call rdx
test al, al
jne 0x18000382f
mov rax, qword [rsi]
mov rdx, qword [rax + 0x60]
mov rcx, rsi
call rdx
mov qword [rbp + 0x10], rax
mov rcx, qword [rsi]
mov rdx, qword [rcx + 0x18]
mov rcx, rsi
call rdx
test rax, rax
je 0x18000382f
mov rcx, qword [rax]
mov rdx, qword [rcx + 0x10]
mov rcx, rax
call rdx
mov r13, rax
mov rcx, qword [rsi]
mov rdx, qword [rcx + 0x18]
mov rcx, rsi
call rdx
test rax, rax
je 0x18000382f
mov rcx, qword [rax]
mov rdx, qword [rcx + 0x10]
mov rcx, rax
call rdx
mov rcx, qword [rsi]
mov r8, qword [rcx + 0xc8]
lea rdx, [rbp + 0xb8]
mov rcx, rsi
call r8
mov rax, qword [rsi]
mov rdx, qword [rax + 8]
mov rcx, rsi
call rdx
mov ebx, eax
mov rcx, qword [r12]
mov rdx, qword [rcx + 0xc8]
mov rcx, r12
call rdx
mov rcx, qword [rax]
mov r8, qword [rcx + 0x78]
mov edx, ebx
mov rcx, rax
call r8
mov rbx, rax
test rax, rax
je 0x18000382f
mov r14, qword [rax + 0x10]
test r14, r14
je 0x18000382f
mov qword [rbp - 0x58], 0
mov dword [rbp - 0x50], 0
xor eax, eax
mov dword [rsp + 0x70], eax
mov dword [rsp + 0x74], eax
mov rcx, qword [rbx]
mov rdx, qword [rcx + 0x130]
mov rcx, rbx
call rdx
mov rcx, qword [rax]
mov rdx, qword [rcx + 0x100]
mov rcx, rax
call rdx
mov r12, rax
mov qword [rbp + 0x40], 0
mov rax, qword [rsp + 0x78]
mov rcx, qword [rax]
mov r8, qword [rcx + 0x470]
lea rdx, [rbp + 0x40]
mov rcx, rax
call r8
mov rcx, qword [rbp + 0x40]
test al, al
mov eax, 0
cmove rcx, rax
mov qword [rbp + 0x40], rcx
test rcx, rcx
je 0x1800039ae
mov rax, qword [rcx]
mov r8, qword [rax + 0x1d8]
xor edx, edx
call r8
test rax, rax
je 0x1800039ae
mov rcx, qword [rbp - 0x40]
mov rax, qword [rcx]
mov r8, qword [rax + 0x1d8]
xor edx, edx
call r8
test rax, rax
je 0x1800039ae
mov rcx, qword [rbp - 0x40]
cmp rcx, rbx
je 0x18000382a
mov eax, dword [rbx + 0x3e0]
cmp dword [rcx + 0x3e0], eax
jne 0x1800034c7
test eax, eax
jne 0x18000382a
lea rax, [rsp + 0x74]
mov qword [rsp + 0x40], rax
lea rax, [rbp - 0x58]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], r13
mov r9, qword [rbp + 0x10]
mov r8, r12
mov rdx, qword [rbp + 0x20]
call fcn.1800019c0
test al, al
je 0x18000382a
mov rax, qword [rbx]
mov rdx, qword [rax + 0x130]
mov rcx, rbx
call rdx
mov rcx, qword [rax]
mov rdx, qword [rcx + 0x100]
mov rcx, rax
call rdx
movss xmm6, dword [rbp - 0x50]
movss xmm7, dword [rbp - 0x54]
movss xmm8, dword [rbp - 0x58]
xor esi, esi
cmp dword [0x18000875c], esi
jne 0x18000360e
movss dword [rbp - 0x10], xmm12
movss dword [rbp - 0xc], xmm11
movss dword [rbp - 8], xmm14
movabs rax, 0x142373288
mov rax, qword [rax]
mov rcx, qword [rax + 0x70]
movaps xmm2, xmm6
subss xmm2, xmm14
movaps xmm1, xmm7
subss xmm1, xmm11
movaps xmm0, xmm8
subss xmm0, xmm12
movss dword [rbp - 0x28], xmm0
movss dword [rbp - 0x24], xmm1
movss dword [rbp - 0x20], xmm2
mov rax, qword [rcx]
mov r10, qword [rax + 0x308]
mov dword [rsp + 0x68], 4
mov qword [rsp + 0x60], rsi
lea rax, str.RayWorldIntersection_Game_
mov qword [rsp + 0x58], rax
mov dword [rsp + 0x50], esi
mov qword [rsp + 0x48], rsi
mov dword [rsp + 0x40], esi
mov qword [rsp + 0x38], rsi
mov dword [rsp + 0x30], 1
lea rax, [rbp + 0x50]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0xa000150a
mov r9d, 0x101
lea r8, [rbp - 0x28]
lea rdx, [rbp - 0x10]
call r10
test eax, eax
jle 0x18000360e
mov rcx, qword [rbp + 0x28]
mov rax, qword [rcx]
mov r8, qword [rax + 0xd0]
mov rdx, qword [rbp + 0x58]
call r8
cmp rax, r14
jne 0x18000382a
lea rdx, [0x18000682c]
mov rcx, qword [rbp + 0x30]
call qword [sym.imp.VCRUNTIME140.dll_strstr]
test rax, rax
jne 0x1800036b2
mov rcx, qword [rbp - 0x40]
mov eax, dword [rcx + 0x20]
movzx ecx, byte [rcx + 0xce4]
mov dword [rbp - 0x80], eax
mov eax, dword [rbp - 0x48]
mov dword [rbp - 0x7c], eax
mov eax, 6
mov dword [rbp - 0x78], eax
mov dword [rbp - 0x74], 0xc
movss dword [rbp - 0x70], xmm12
movss dword [rbp - 0x6c], xmm11
movss dword [rbp - 0x68], xmm14
mov dword [rbp - 0x64], 0
mov byte [rbp - 0x60], cl
cmp rdi, r15
je 0x180003691
movups xmm0, xmmword [rbp - 0x80]
movups xmmword [rdi], xmm0
movups xmm1, xmmword [rbp - 0x70]
movups xmmword [rdi + 0x10], xmm1
mov eax, dword [rbp - 0x60]
mov dword [rdi + 0x20], eax
add rdi, 0x24
mov qword [rbp + 0xa8], rdi
jmp 0x1800036b2
lea r8, [rbp - 0x80]
mov rdx, rdi
lea rcx, [rbp + 0xa0]
call fcn.1800042d0
mov r15, qword [rbp + 0xb0]
mov rdi, qword [rbp + 0xa8]
movsxd rax, dword [0x1800087fc]
mov r12, qword [rbp + 0xd8]
movss xmm0, dword [r12 + rax*4]
comiss xmm0, xmm10
jbe 0x18000382a
mov r13d, dword [rsp + 0x70]
nop word [rax + rax]
movabs rax, 0x142373288
mov rax, qword [rax]
mov rcx, qword [rax + 0x48]
movsd xmm2, qword [rcx + 0x17c0]
movss xmm0, dword [rcx + 0x17c8]
subss xmm0, xmm6
andps xmm0, xmm13
comiss xmm9, xmm0
setae r14b
movaps xmm1, xmm2
shufps xmm1, xmm1, 0x55
subss xmm1, xmm7
movsd qword [rbp + 0x10], xmm2
subss xmm2, xmm8
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm2, xmm1
addss xmm2, xmm10
xorps xmm1, xmm1
cvtss2sd xmm1, xmm2
xorps xmm0, xmm0
ucomisd xmm0, xmm1
ja 0x18000374d
sqrtpd xmm0, xmm1
jmp 0x180003755
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
cvtsd2ss xmm0, xmm0
comiss xmm9, xmm0
setae al
test al, al
je 0x18000377d
test r14b, r14b
je 0x18000377d
mov ecx, 0x75
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18000377d
mov dl, 1
jmp 0x18000377f
xor dl, dl
mov eax, dword [rbx + 0x20]
movzx ecx, byte [rbx + 0xce4]
mov dword [rbp - 0x80], eax
mov eax, dword [rsp + 0x74]
mov dword [rbp - 0x7c], eax
mov eax, 1
test dl, dl
mov edx, 6
cmovne eax, edx
mov dword [rbp - 0x78], eax
mov dword [rbp - 0x74], r13d
movss dword [rbp - 0x70], xmm8
movss dword [rbp - 0x6c], xmm7
movss dword [rbp - 0x68], xmm6
mov dword [rbp - 0x64], 0
mov byte [rbp - 0x60], cl
cmp rdi, r15
je 0x1800037ea
movups xmm0, xmmword [rbp - 0x80]
movups xmmword [rdi], xmm0
movups xmm1, xmmword [rbp - 0x70]
movups xmmword [rdi + 0x10], xmm1
mov eax, dword [rbp - 0x60]
mov dword [rdi + 0x20], eax
add rdi, 0x24
mov qword [rbp + 0xa8], rdi
jmp 0x18000380b
lea r8, [rbp - 0x80]
mov rdx, rdi
lea rcx, [rbp + 0xa0]
call fcn.1800042d0
mov r15, qword [rbp + 0xb0]
mov rdi, qword [rbp + 0xa8]
inc esi
movd xmm1, esi
cvtdq2ps xmm1, xmm1
movsxd rax, dword [0x1800087fc]
movss xmm0, dword [r12 + rax*4]
comiss xmm0, xmm1
ja 0x1800036e0
mov r12, qword [rsp + 0x78]
mov rcx, qword [rbp - 0x30]
mov rax, qword [rcx]
mov rdx, qword [rax + 0x30]
call rdx
mov rsi, rax
test rax, rax
jne 0x180003330
mov r13, qword [rbp - 0x30]
mov r14d, dword [rbp - 0x44]
xor r12d, r12d
mov rax, qword [r13]
mov rdx, qword [rax + 0x10]
mov rcx, r13
call rdx
cmp dword [0x18000874c], 0
je 0x1800039ae
movss xmm0, dword [0x18000881c]
comiss xmm0, dword [0x180008818]
jb 0x1800039ae
cmp qword [rbp + 0xa0], rdi
je 0x1800039a4
mov rdi, qword [rbp - 0x38]
mov rcx, rdi
call fcn.180003c10
test al, al
je 0x1800039a4
lea rdx, [rbp + 0xa0]
lea rcx, [rbp - 0x10]
call fcn.1800040a0
mov rbx, rax
mov qword [rbp - 0x38], rax
mov dword [0x18000888c], r14d
mov dword [rbp + 0xb8], r14d
mov rdx, rax
lea rcx, [rbp + 0xc0]
call fcn.1800040a0
nop
mov r9, qword [0x180008858]
cmp r9, qword [0x180008860]
je 0x180003931
mov eax, dword [rbp + 0xb8]
mov dword [r9], eax
mov rdx, qword [rbp + 0xd0]
mov qword [rbp + 0xd0], r12
mov rcx, qword [rbp + 0xc8]
mov qword [rbp + 0xc8], r12
mov rax, qword [rbp + 0xc0]
mov qword [rbp + 0xc0], r12
mov qword [r9 + 8], rax
mov qword [r9 + 0x10], rcx
mov qword [r9 + 0x18], rdx
add qword [0x180008858], 0x20
jmp 0x180003948
lea r8, [rbp + 0xb8]
mov rdx, r9
lea rcx, [0x180008850]
call fcn.1800044f0
nop
lea rcx, [rbp + 0xc0]
call fcn.180004020
nop
mov rcx, rbx
call fcn.180004020
mov rax, qword [0x180008858]
cmp qword [0x180008850], rax
je 0x18000399f
movabs rdx, 0x1426111c8
mov dword [rsp + 0x20], 0xffffffff
mov r9d, 0x100
lea r8, [0x180008830]
mov rdx, qword [rdx]
mov rcx, qword [rdi + 0x18]
movabs rax, 0x141491880
call rax
call fcn.180001d80
mov dword [0x18000881c], 0
lea rcx, [rbp + 0xa0]
call fcn.180004020
nop
mov rax, qword [rbp + 0xf0]
test rax, rax
je 0x180003a08
lea rcx, [rax + 4]
sub rcx, rax
sar rcx, 2
lea rdx, [rcx*4]
cmp rdx, 0x1000
jb 0x1800039ff
add rdx, 0x27
mov rcx, qword [rax - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180003aab
mov rax, rcx
mov rcx, rax
call fcn.1800047e0
nop
mov rax, qword [rbp + 0xd8]
test rax, rax
je 0x180003a4b
mov rdx, qword [rbp + 0xe8]
sub rdx, rax
and rdx, 0xfffffffffffffffc
cmp rdx, 0x1000
jb 0x180003a43
add rdx, 0x27
mov rcx, qword [rax - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180003ab2
mov rax, rcx
mov rcx, rax
call fcn.1800047e0
mov rcx, qword [rbp + 0x108]
xor rcx, rsp
call fcn.1800047c0
lea r11, [rsp + 0x2a0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3