Function at 0x180001490
Capabilities:
Encode data using xor

Disassembly:
mov r11, rsp
sub rsp, 0x98
mov rcx, qword [0x18000c778]
mov qword [r11 + 8], rbx
mov rbx, rdx
mov rdx, qword [0x18000c780]
mov qword [r11 + 0x18], rsi
mov rax, rdx
sub rax, rcx
mov qword [r11 + 0x20], rdi
sar rax, 2
xor edi, edi
mov rsi, r8
test rax, rax
je 0x1800019f0
mov qword [r11 + 0x10], rbp
lea ebp, [rdi + 0x34]
mov qword [r11 - 8], r14
mov r14d, edi
movaps xmmword [r11 - 0x18], xmm6
movss xmm6, dword [0x1800096a0]
movaps xmmword [rsp + 0x70], xmm7
movss xmm7, dword [0x180009700]
movaps xmmword [r11 - 0x38], xmm8
movss xmm8, dword [0x1800096a8]
movaps xmmword [r11 - 0x48], xmm9
movss xmm9, dword [0x1800096b8]
movaps xmmword [r11 - 0x58], xmm10
movss xmm10, dword [0x180009690]
movaps xmmword [r11 - 0x68], xmm11
movss xmm11, dword [0x180009694]
movaps xmmword [r11 - 0x78], xmm12
movss xmm12, dword [0x1800096e8]
nop dword [rax]
mov ecx, 0x1701
call qword [sym.imp.OPENGL32.dll_glMatrixMode]
mov rax, qword [0x18000c760]
lea rcx, [rax + r14*4]
call qword [sym.imp.OPENGL32.dll_glLoadMatrixf]
mov ecx, 0x1700
call qword [sym.imp.OPENGL32.dll_glMatrixMode]
mov rax, qword [0x18000c778]
lea rcx, [rax + r14*4]
call qword [sym.imp.OPENGL32.dll_glLoadMatrixf]
movaps xmm0, xmm9
call qword [sym.imp.OPENGL32.dll_glLineWidth]
movss xmm2, dword [rsi + 8]
movaps xmm3, xmm8
movss xmm1, dword [rsi + 4]
movss xmm0, dword [rsi]
call qword [sym.imp.OPENGL32.dll_glColor4f]
mov ecx, 1
call qword [sym.imp.OPENGL32.dll_glBegin]
movss xmm1, dword [rbx + 4]
movss xmm2, dword [rbx + 8]
xorps xmm1, xmm7
movss xmm0, dword [rbx]
mulss xmm1, xmm6
mulss xmm2, xmm6
mulss xmm0, xmm6
call qword [sym.imp.OPENGL32.dll_glVertex3f]
movss xmm2, dword [rbx + 8]
movss xmm1, dword [rbx + 4]
movss xmm0, dword [rbx]
mulss xmm2, xmm6
mulss xmm1, xmm6
mulss xmm0, xmm6
call qword [sym.imp.OPENGL32.dll_glVertex3f]
movss xmm1, dword [rbx + 4]
movss xmm0, dword [rbx]
xorps xmm1, xmm7
movss xmm2, dword [rbx + 8]
xorps xmm0, xmm7
mulss xmm1, xmm6
mulss xmm0, xmm6
mulss xmm2, xmm6
call qword [sym.imp.OPENGL32.dll_glVertex3f]
movss xmm1, dword [rbx + 4]
movss xmm2, dword [rbx + 8]
xorps xmm1, xmm7
movss xmm0, dword [rbx]
mulss xmm1, xmm6
mulss xmm2, xmm6
mulss xmm0, xmm6
call qword [sym.imp.OPENGL32.dll_glVertex3f]
movss xmm1, dword [rbx + 4]
movss xmm0, dword [rbx]
xorps xmm1, xmm7
movss xmm2, dword [rbx + 8]
xorps xmm0, xmm7
mulss xmm1, xmm6
mulss xmm0, xmm6
mulss xmm2, xmm6
call qword [sym.imp.OPENGL32.dll_glVertex3f]
movss xmm0, dword [rbx]
movss xmm2, dword [rbx + 8]
xorps xmm0, xmm7
movss xmm1, dword [rbx + 4]
mulss xmm0, xmm6
mulss xmm2, xmm6
mulss xmm1, xmm6
call qword [sym.imp.OPENGL32.dll_glVertex3f]
movss xmm0, dword [rbx]
movss xmm2, dword [rbx + 8]
xorps xmm0, xmm7
movss xmm1, dword [rbx + 4]
mulss xmm0, xmm6
mulss xmm2, xmm6
mulss xmm1, xmm6
call qword [sym.imp.OPENGL32.dll_glVertex3f]
movss xmm2, dword [rbx + 8]
movss xmm1, dword [rbx + 4]
movss xmm0, dword [rbx]
mulss xmm2, xmm6
mulss xmm1, xmm6
mulss xmm0, xmm6
call qword [sym.imp.OPENGL32.dll_glVertex3f]
movss xmm2, dword [rbx + 8]
movss xmm1, dword [rbx + 4]
movss xmm0, dword [rbx]
mulss xmm2, xmm6
mulss xmm1, xmm6
mulss xmm0, xmm6
call qword [sym.imp.OPENGL32.dll_glVertex3f]
movss xmm2, dword [rbx + 8]
movss xmm1, dword [rbx + 4]
xorps xmm2, xmm7
movss xmm0, dword [rbx]
mulss xmm2, xmm6
mulss xmm1, xmm6
mulss xmm0, xmm6
call qword [sym.imp.OPENGL32.dll_glVertex3f]
movss xmm2, dword [rbx + 8]
movss xmm1, dword [rbx + 4]
xorps xmm2, xmm7
movss xmm0, dword [rbx]
mulss xmm2, xmm6
mulss xmm1, xmm6
mulss xmm0, xmm6
call qword [sym.imp.OPENGL32.dll_glVertex3f]
movss xmm2, dword [rbx + 8]
movss xmm1, dword [rbx + 4]
xorps xmm2, xmm7
movss xmm0, dword [rbx]
xorps xmm1, xmm7
mulss xmm2, xmm6
mulss xmm1, xmm6
mulss xmm0, xmm6
call qword [sym.imp.OPENGL32.dll_glVertex3f]
movss xmm2, dword [rbx + 8]
movss xmm1, dword [rbx + 4]
xorps xmm2, xmm7
movss xmm0, dword [rbx]
mulss xmm2, xmm6
mulss xmm1, xmm6
mulss xmm0, xmm6
call qword [sym.imp.OPENGL32.dll_glVertex3f]
movss xmm2, dword [rbx + 8]
movss xmm0, dword [rbx]
xorps xmm2, xmm7
movss xmm1, dword [rbx + 4]
xorps xmm0, xmm7
mulss xmm2, xmm6
mulss xmm0, xmm6
mulss xmm1, xmm6
call qword [sym.imp.OPENGL32.dll_glVertex3f]
movss xmm2, dword [rbx + 8]
movss xmm0, dword [rbx]
xorps xmm2, xmm7
movss xmm1, dword [rbx + 4]
xorps xmm0, xmm7
mulss xmm2, xmm6
mulss xmm0, xmm6
mulss xmm1, xmm6
call qword [sym.imp.OPENGL32.dll_glVertex3f]
movss xmm0, dword [rbx]
movss xmm2, dword [rbx + 8]
xorps xmm0, xmm7
movss xmm1, dword [rbx + 4]
mulss xmm0, xmm6
mulss xmm2, xmm6
mulss xmm1, xmm6
call qword [sym.imp.OPENGL32.dll_glVertex3f]
movss xmm2, dword [rbx + 8]
movss xmm0, dword [rbx]
xorps xmm2, xmm7
movss xmm1, dword [rbx + 4]
xorps xmm0, xmm7
mulss xmm2, xmm6
mulss xmm0, xmm6
mulss xmm1, xmm6
call qword [sym.imp.OPENGL32.dll_glVertex3f]
movss xmm2, dword [rbx + 8]
movss xmm1, dword [rbx + 4]
xorps xmm2, xmm7
mulss xmm2, xmm6
movss xmm0, dword [rbx]
xorps xmm1, xmm7
xorps xmm0, xmm7
mulss xmm1, xmm6
mulss xmm0, xmm6
call qword [sym.imp.OPENGL32.dll_glVertex3f]
movss xmm2, dword [rbx + 8]
movss xmm1, dword [rbx + 4]
xorps xmm2, xmm7
movss xmm0, dword [rbx]
xorps xmm1, xmm7
xorps xmm0, xmm7
mulss xmm2, xmm6
mulss xmm1, xmm6
mulss xmm0, xmm6
call qword [sym.imp.OPENGL32.dll_glVertex3f]
movss xmm2, dword [rbx + 8]
movss xmm1, dword [rbx + 4]
xorps xmm2, xmm7
movss xmm0, dword [rbx]
xorps xmm1, xmm7
mulss xmm2, xmm6
mulss xmm1, xmm6
mulss xmm0, xmm6
call qword [sym.imp.OPENGL32.dll_glVertex3f]
movss xmm2, dword [rbx + 8]
movss xmm1, dword [rbx + 4]
xorps xmm2, xmm7
movss xmm0, dword [rbx]
xorps xmm1, xmm7
xorps xmm0, xmm7
mulss xmm2, xmm6
mulss xmm1, xmm6
mulss xmm0, xmm6
call qword [sym.imp.OPENGL32.dll_glVertex3f]
movss xmm1, dword [rbx + 4]
movss xmm0, dword [rbx]
xorps xmm1, xmm7
movss xmm2, dword [rbx + 8]
xorps xmm0, xmm7
mulss xmm1, xmm6
mulss xmm0, xmm6
mulss xmm2, xmm6
call qword [sym.imp.OPENGL32.dll_glVertex3f]
movss xmm2, dword [rbx + 8]
movss xmm1, dword [rbx + 4]
xorps xmm2, xmm7
movss xmm0, dword [rbx]
xorps xmm1, xmm7
mulss xmm2, xmm6
mulss xmm1, xmm6
mulss xmm0, xmm6
call qword [sym.imp.OPENGL32.dll_glVertex3f]
movss xmm1, dword [rbx + 4]
movss xmm2, dword [rbx + 8]
xorps xmm1, xmm7
movss xmm0, dword [rbx]
mulss xmm1, xmm6
mulss xmm2, xmm6
mulss xmm0, xmm6
call qword [sym.imp.OPENGL32.dll_glVertex3f]
call qword [sym.imp.OPENGL32.dll_glEnd]
movss xmm2, dword [rsi + 8]
movaps xmm3, xmm10
movss xmm1, dword [rsi + 4]
movss xmm0, dword [rsi]
call qword [sym.imp.OPENGL32.dll_glColor4f]
call qword [sym.imp.OPENGL32.dll_glLoadIdentity]
movaps xmm3, xmm11
movaps xmm2, xmm8
movaps xmm1, xmm8
movaps xmm0, xmm8
call qword [sym.imp.OPENGL32.dll_glColor4f]
mov ecx, 1
call qword [sym.imp.OPENGL32.dll_glBegin]
movaps xmm2, xmm12
xorps xmm1, xmm1
xorps xmm0, xmm0
call qword [sym.imp.OPENGL32.dll_glVertex3f]
mov rax, qword [0x18000c778]
movss xmm2, dword [rax + rbp + 4]
movss xmm1, dword [rax + rbp]
movss xmm0, dword [rax + rbp - 4]
call qword [sym.imp.OPENGL32.dll_glVertex3f]
call qword [sym.imp.OPENGL32.dll_glEnd]
mov rdx, qword [0x18000c780]
lea rbp, [rbp + 0x40]
mov rcx, qword [0x18000c778]
add edi, 0x10
mov rax, rdx
movsxd r14, edi
sub rax, rcx
sar rax, 2
cmp r14, rax
jb 0x180001540
movaps xmm12, xmmword [rsp + 0x20]
movaps xmm11, xmmword [rsp + 0x30]
movaps xmm10, xmmword [rsp + 0x40]
movaps xmm9, xmmword [rsp + 0x50]
movaps xmm8, xmmword [rsp + 0x60]
movaps xmm7, xmmword [rsp + 0x70]
movaps xmm6, xmmword [rsp + 0x80]
mov r14, qword [rsp + 0x90]
mov rbp, qword [rsp + 0xa8]
mov rax, qword [0x18000c760]
cmp rax, qword [0x18000c768]
mov rdi, qword [rsp + 0xb8]
mov rsi, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0xa0]
je 0x180001a1f
mov qword [0x18000c768], rax
cmp rcx, rdx
je 0x180001a2b
mov qword [0x18000c780], rcx
add rsp, 0x98
ret