Function at 0x14000bbb0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x148
movapd xmmword [rsp + 0x130], xmm15
movapd xmmword [rsp + 0x120], xmm14
movapd xmmword [rsp + 0x110], xmm13
movapd xmmword [rsp + 0x100], xmm12
movapd xmmword [rsp + 0xf0], xmm11
movapd xmmword [rsp + 0xe0], xmm10
movapd xmmword [rsp + 0xd0], xmm9
movapd xmmword [rsp + 0xc0], xmm8
movapd xmmword [rsp + 0xb0], xmm7
movapd xmmword [rsp + 0xa0], xmm6
mov dword [rsp + 0x40], r9d
mov rbx, rdx
mov rdi, rcx
mov r12, qword [rsp + 0x1b8]
mov rax, qword [rsp + 0x1b0]
movsxd rcx, dword [rax]
mov qword [rsp + 0x60], rax
movsxd rsi, dword [rax + 4]
mov eax, esi
imul eax, ecx
movsxd r15, eax
shl r15, 4
mov r13d, esi
cmp rsi, 1
mov qword [rsp + 0x80], rcx
mov qword [rsp + 0x58], r8
mov qword [rsp + 0x38], rsi
jne 0x14000bcb0
add r15, rdi
movsxd rax, dword [rsp + 0x40]
add rbx, 8
imul rax, r8
shl rax, 4
mov rcx, rdi
nop word [rax + rax]
movsd xmm0, qword [rbx - 8]
movsd qword [rcx], xmm0
movsd xmm0, qword [rbx]
movsd qword [rcx + 8], xmm0
add rbx, rax
add rcx, 0x10
cmp rcx, r15
jne 0x14000bc90
jmp 0x14000bd10
add qword [rsp + 0x60], 8
imul rcx, r8
mov qword [rsp + 0x78], rcx
movsxd rbp, dword [rsp + 0x40]
shl rsi, 4
imul rbp, r8
shl rbp, 4
xor r14d, r14d
nop word cs:[rax + rax]
lea rcx, [rdi + r14]
mov qword [rsp + 0x28], r12
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x20], rax
mov rdx, rbx
mov r8, qword [rsp + 0x78]
mov r9d, dword [rsp + 0x40]
call fcn.14000bbb0
add r14, rsi
add rbx, rbp
cmp r15, r14
jne 0x14000bce0
mov rsi, qword [rsp + 0x80]
lea eax, [rsi - 2]
cmp eax, 3
ja case.default.0x14000bd32
lea rcx, [0x140096a2c]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
add r12, 0x108
mov rdx, qword [rsp + 0x38]
mov rax, rdx
shl rax, 4
mov rcx, qword [rsp + 0x58]
shl rcx, 4
movapd xmm0, xmmword [0x140096020]
nop dword [rax + rax]
movsd xmm1, qword [rdi + rax]
movsd xmm2, qword [rdi + rax + 8]
movapd xmm3, xmm2
xorpd xmm3, xmm0
movsd xmm4, qword [rdi]
movupd xmm5, xmmword [r12]
unpcklpd xmm3, xmm2
unpcklpd xmm1, xmm1
mulpd xmm1, xmm5
shufpd xmm5, xmm5, 1
mulpd xmm5, xmm3
addpd xmm1, xmm5
subsd xmm4, xmm1
movsd qword [rdi + rax], xmm4
movsd xmm2, qword [rdi + 8]
movapd xmm3, xmm1
unpckhpd xmm3, xmm1
subsd xmm2, xmm3
movsd qword [rdi + rax + 8], xmm2
movupd xmm2, xmmword [rdi]
addpd xmm2, xmm1
movupd xmmword [rdi], xmm2
add rdi, 0x10
add r12, rcx
dec edx
jne 0x14000bd60
jmp 0x14000c5c5
mov ebx, dword [r12]
mov rcx, rsi
shl rcx, 4
call fcn.14007202c
cmp dword [rsp + 0x38], 0
jle 0x14000c631
mov ecx, esi
add r12, 0x108
mov edx, ecx
and edx, 0xfffffffe
mov qword [rsp + 0x78], rdx
mov rdx, rax
add rdx, 0x10
mov qword [rsp + 0x38], rdx
mov rdx, r13
shl rdx, 4
mov qword [rsp + 0x98], rdx
mov rdx, r13
shl rdx, 5
mov qword [rsp + 0x90], rdx
mov r11, rcx
shl r11, 4
add r11, 0xfffffffffffffff0
xor r14d, r14d
movapd xmm0, xmmword [0x140096020]
mov qword [rsp + 0x60], rdi
xor edx, edx
mov qword [rsp + 0x40], rdx
jmp 0x14000be6f
mov r8, qword [rsp + 0x40]
inc r8
add qword [rsp + 0x60], 0x10
mov rdx, r8
mov qword [rsp + 0x40], r8
cmp r8, r13
je 0x14000c631
test ecx, ecx
jle 0x14000be50
cmp esi, 1
jne 0x14000be90
xor edx, edx
mov r8, qword [rsp + 0x40]
jmp 0x14000beea
mov r9, qword [rsp + 0x60]
mov r10, qword [rsp + 0x38]
xor edx, edx
mov r8, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x78]
mov r15, qword [rsp + 0x98]
mov rbp, qword [rsp + 0x90]
nop word cs:[rax + rax]
movups xmm1, xmmword [r9]
movups xmmword [r10 - 0x10], xmm1
add r8, r13
movupd xmm1, xmmword [r9 + r15]
movupd xmmword [r10], xmm1
add r8, r13
add rdx, 2
add r10, 0x20
add r9, rbp
cmp rsi, rdx
jne 0x14000bec0
test cl, 1
je 0x14000bf02
shl r8, 4
shl rdx, 4
movupd xmm1, xmmword [rdi + r8]
movupd xmmword [rax + rdx], xmm1
xor r8d, r8d
mov r15, qword [rsp + 0x40]
jmp 0x14000bf27
add r15, r13
inc r8d
mov rsi, qword [rsp + 0x80]
cmp r8d, esi
je 0x14000be50
mov rbp, r15
shl rbp, 4
movupd xmm1, xmmword [rax]
movupd xmmword [rdi + rbp], xmm1
cmp ecx, 2
jl 0x14000bf10
add rbp, rdi
mov edx, r15d
imul edx, dword [rsp + 0x58]
movupd xmm1, xmmword [rbp]
xor r9d, r9d
xor r10d, r10d
nop word cs:[rax + rax]
add r10d, edx
cmp r10d, ebx
mov esi, ebx
cmovl esi, r14d
sub r10d, esi
movsxd rsi, r10d
shl rsi, 4
movsd xmm2, qword [rax + r9 + 0x10]
movsd xmm3, qword [rax + r9 + 0x18]
movapd xmm4, xmm3
xorpd xmm4, xmm0
movupd xmm5, xmmword [r12 + rsi]
unpcklpd xmm4, xmm3
unpcklpd xmm2, xmm2
mulpd xmm2, xmm5
shufpd xmm5, xmm5, 1
mulpd xmm5, xmm4
addpd xmm2, xmm5
addpd xmm1, xmm2
movupd xmmword [rbp], xmm1
add r9, 0x10
cmp r11, r9
jne 0x14000bf60
jmp 0x14000bf10
mov r9, qword [rsp + 0x38]
mov rax, r9
mov rcx, r9
mov r8, qword [rsp + 0x58]
imul rcx, r8
shl rcx, 4
movsd xmm0, qword [r12 + rcx + 0x110]
unpcklpd xmm0, xmm0
shl r8, 4
mov rcx, r9
shl rcx, 5
shl r9, 4
xor edx, edx
movapd xmm1, xmmword [0x140096020]
movapd xmm2, xmmword [0x140096790]
nop dword [rax]
movsd xmm4, qword [rdi + r9]
movsd xmm5, qword [rdi + r9 + 8]
movapd xmm6, xmm5
xorpd xmm6, xmm1
movsd xmm3, qword [rdi + rcx]
movsd xmm7, qword [rdi + rcx + 8]
movapd xmm8, xmm7
xorpd xmm8, xmm1
movupd xmm9, xmmword [r12 + rdx + 0x108]
unpcklpd xmm5, xmm6
mulpd xmm5, xmm9
shufpd xmm9, xmm9, 1
unpcklpd xmm4, xmm4
mulpd xmm4, xmm9
addpd xmm4, xmm5
movupd xmm5, xmmword [r12 + rdx*2 + 0x108]
unpcklpd xmm7, xmm8
mulpd xmm7, xmm5
shufpd xmm5, xmm5, 1
unpcklpd xmm3, xmm3
mulpd xmm3, xmm5
addpd xmm3, xmm7
movapd xmm5, xmm4
subpd xmm5, xmm3
mulpd xmm5, xmm0
addpd xmm3, xmm4
shufpd xmm3, xmm3, 1
movupd xmm4, xmmword [rdi]
movapd xmm6, xmm3
mulpd xmm6, xmm2
addpd xmm6, xmm4
movupd xmmword [rdi + r9], xmm6
movupd xmm4, xmmword [rdi]
addpd xmm4, xmm3
movupd xmmword [rdi], xmm4
movupd xmm3, xmmword [rdi + r9]
movapd xmm4, xmm3
addpd xmm4, xmm5
subpd xmm3, xmm5
movsd xmm3, xmm4
movupd xmmword [rdi + rcx], xmm3
movupd xmm3, xmmword [rdi + r9]
movapd xmm4, xmm3
subpd xmm4, xmm5
addpd xmm5, xmm3
movsd xmm5, xmm4
movupd xmmword [rdi + r9], xmm5
add rdi, 0x10
add rdx, r8
dec rax
jne 0x14000c010
jmp 0x14000c5c5
mov rsi, qword [rsp + 0x38]
mov rax, rsi
lea rcx, [r12 + 0x108]
mov r11, qword [rsp + 0x58]
shl r11, 4
lea rdx, [r11 + r11*2]
mov r8, rsi
shl r8, 4
lea r9, [r8 + r8*2]
shl rsi, 5
xor r10d, r10d
movapd xmm0, xmmword [0x140096020]
jmp 0x14000c16b
movapd xmm1, xmm2
movsd xmm1, xmm4
movsd xmm4, xmm2
movupd xmmword [rdi + r8], xmm1
movupd xmmword [rdi + r9], xmm4
add rdi, 0x10
add rcx, rdx
add r10, r11
dec rax
je 0x14000c5c5
movsd xmm3, qword [rdi + r8]
movsd xmm5, qword [rdi + r8 + 8]
movapd xmm6, xmm5
xorpd xmm6, xmm0
movsd xmm1, qword [rdi + rsi]
movsd xmm7, qword [rdi + rsi + 8]
movapd xmm8, xmm7
xorpd xmm8, xmm0
movsd xmm2, qword [rdi + r9]
movsd xmm4, qword [rdi + r9 + 8]
movapd xmm9, xmm4
xorpd xmm9, xmm0
movupd xmm10, xmmword [r12 + r10 + 0x108]
unpcklpd xmm5, xmm6
mulpd xmm5, xmm10
shufpd xmm10, xmm10, 1
unpcklpd xmm3, xmm3
mulpd xmm3, xmm10
addpd xmm3, xmm5
movupd xmm5, xmmword [r12 + r10*2 + 0x108]
unpcklpd xmm8, xmm7
unpcklpd xmm1, xmm1
mulpd xmm1, xmm5
shufpd xmm5, xmm5, 1
mulpd xmm5, xmm8
addpd xmm1, xmm5
movupd xmm5, xmmword [rcx]
unpcklpd xmm4, xmm9
mulpd xmm4, xmm5
shufpd xmm5, xmm5, 1
unpcklpd xmm2, xmm2
mulpd xmm2, xmm5
addpd xmm2, xmm4
movupd xmm5, xmmword [rdi]
movapd xmm4, xmm5
subpd xmm4, xmm1
movapd xmm6, xmm3
subpd xmm6, xmm2
addpd xmm2, xmm3
shufpd xmm2, xmm2, 1
addpd xmm1, xmm5
movupd xmmword [rdi], xmm1
subpd xmm1, xmm2
movupd xmmword [rdi + rsi], xmm1
movupd xmm1, xmmword [rdi]
addpd xmm1, xmm2
movupd xmmword [rdi], xmm1
cmp dword [r12 + 4], 0
movapd xmm2, xmm4
addpd xmm2, xmm6
subpd xmm4, xmm6
jne 0x14000c140
movapd xmm1, xmm4
movsd xmm1, xmm2
shufpd xmm4, xmm2, 2
jmp 0x14000c14c
mov rbp, qword [rsp + 0x38]
test ebp, ebp
mov r15, qword [rsp + 0x58]
jle 0x14000c5c5
lea rax, [r12 + 0x108]
mov rcx, rbp
imul rcx, r15
mov rdx, rcx
shl rdx, 4
lea r9, [r12 + rdx]
add r9, 0x108
movsd xmm0, qword [r12 + rdx + 0x110]
shl rcx, 5
lea r10, [r12 + rcx]
add r10, 0x108
movsd xmm1, qword [r12 + rcx + 0x108]
mov rcx, rbp
shl rcx, 6
add rcx, rdi
lea rdx, [rbp*2]
add rdx, rbp
shl rdx, 4
add rdx, rdi
mov r8, r13
shl r8, 5
add r8, rdi
shl rbp, 4
add rbp, rdi
movapd xmm2, xmm1
unpcklpd xmm2, xmm1
movapd xmmword [rsp + 0x80], xmm2
movsd xmm3, qword [r9]
movapd xmm2, xmm3
unpcklpd xmm2, xmm3
movapd xmmword [rsp + 0x40], xmm2
movapd xmm2, xmm0
unpcklpd xmm2, xmm0
movapd xmmword [rsp + 0x60], xmm2
movsd xmm7, qword [r10 + 8]
movapd xmm6, xmm7
unpcklpd xmm6, xmm3
unpcklpd xmm3, xmm7
unpcklpd xmm7, xmm7
shl r13, 2
lea r9, [r15*8]
xor r10d, r10d
movapd xmm8, xmmword [0x140096020]
xor r11d, r11d
xor esi, esi
nop word cs:[rax + rax]
movsd xmm4, qword [rbp + rsi*4]
movsd xmm14, qword [rbp + rsi*4 + 8]
movapd xmm12, xmm14
xorpd xmm12, xmm8
movsd xmm10, qword [r8 + rsi*4]
movsd xmm13, qword [r8 + rsi*4 + 8]
movapd xmm11, xmm13
xorpd xmm11, xmm8
mov ebx, r11d
imul rbx, r15
shl rbx, 4
movsd xmm15, qword [rdx + rsi*4]
movsd xmm9, qword [rdx + rsi*4 + 8]
movapd xmm2, xmm9
xorpd xmm2, xmm8
mov r14d, esi
and r14d, 0xfffffffc
imul r14, r15
shl r14, 4
unpcklpd xmm12, xmm14
movupd xmm14, xmmword [rax + r10*2]
unpcklpd xmm4, xmm4
mulpd xmm4, xmm14
shufpd xmm14, xmm14, 1
mulpd xmm14, xmm12
movsd xmm12, qword [rcx + rsi*4]
addpd xmm4, xmm14
movsd xmm5, qword [rcx + rsi*4 + 8]
unpcklpd xmm11, xmm13
movupd xmm13, xmmword [rax + r10*4]
unpcklpd xmm10, xmm10
mulpd xmm10, xmm13
shufpd xmm13, xmm13, 1
mulpd xmm13, xmm11
movapd xmm14, xmm5
xorpd xmm14, xmm8
addpd xmm10, xmm13
movupd xmm11, xmmword [rdi + rsi*4]
unpcklpd xmm2, xmm9
movupd xmm9, xmmword [rax + rbx]
unpcklpd xmm15, xmm15
mulpd xmm15, xmm9
shufpd xmm9, xmm9, 1
mulpd xmm9, xmm2
addpd xmm15, xmm9
movupd xmm2, xmmword [rax + r14]
unpcklpd xmm14, xmm5
unpcklpd xmm12, xmm12
mulpd xmm12, xmm2
shufpd xmm2, xmm2, 1
mulpd xmm2, xmm14
addpd xmm12, xmm2
movapd xmm14, xmm4
addpd xmm14, xmm12
subpd xmm4, xmm12
movapd xmm12, xmm4
unpckhpd xmm12, xmm4
movapd xmm13, xmm10
addpd xmm13, xmm15
subpd xmm10, xmm15
movapd xmm15, xmm10
movapd xmm2, xmm13
addpd xmm2, xmm14
addpd xmm2, xmm11
movupd xmmword [rdi + rsi*4], xmm2
movapd xmm5, xmm14
mulpd xmm5, xmmword [rsp + 0x40]
addpd xmm5, xmm11
movapd xmm2, xmm13
mulpd xmm2, xmmword [rsp + 0x80]
addpd xmm2, xmm5
movapd xmm9, xmm4
xorpd xmm12, xmm8
shufpd xmm12, xmm13, 2
unpcklpd xmm13, xmm4
xorpd xmm4, xmm8
shufpd xmm9, xmm4, 1
movapd xmm4, xmm10
xorpd xmm4, xmm8
shufpd xmm10, xmm4, 1
mulpd xmm10, xmm7
mulpd xmm9, xmmword [rsp + 0x60]
addpd xmm9, xmm10
movapd xmm5, xmm2
subpd xmm5, xmm9
movupd xmmword [rbp + rsi*4], xmm5
addpd xmm9, xmm2
movupd xmmword [rcx + rsi*4], xmm9
movapd xmm2, xmm14
mulsd xmm2, xmm1
addsd xmm2, xmm11
unpckhpd xmm14, xmm14
unpckhpd xmm11, xmm11
mulsd xmm14, xmm1
addsd xmm14, xmm11
unpckhpd xmm15, xmm15
mulsd xmm15, xmm0
unpcklpd xmm15, xmm14
mulsd xmm4, xmm0
unpcklpd xmm2, xmm4
mulpd xmm12, xmm6
addpd xmm12, xmm15
mulpd xmm13, xmm3
addpd xmm13, xmm2
movapd xmm2, xmm12
addpd xmm2, xmm13
movupd xmmword [r8 + rsi*4], xmm2
movapd xmm2, xmm12
movsd xmm2, xmm13
movsd xmm13, xmm12
subpd xmm2, xmm13
movupd xmmword [rdx + rsi*4], xmm2
add rsi, 4
add r11, 3
add r10, r9
cmp r13, rsi
jne 0x14000c370
movaps xmm6, xmmword [rsp + 0xa0]
movaps xmm7, xmmword [rsp + 0xb0]
movaps xmm8, xmmword [rsp + 0xc0]
movaps xmm9, xmmword [rsp + 0xd0]
movaps xmm10, xmmword [rsp + 0xe0]
movaps xmm11, xmmword [rsp + 0xf0]
movaps xmm12, xmmword [rsp + 0x100]
movaps xmm13, xmmword [rsp + 0x110]
movaps xmm14, xmmword [rsp + 0x120]
movaps xmm15, xmmword [rsp + 0x130]
add rsp, 0x148
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, rax
movaps xmm6, xmmword [rsp + 0xa0]
movaps xmm7, xmmword [rsp + 0xb0]
movaps xmm8, xmmword [rsp + 0xc0]
movaps xmm9, xmmword [rsp + 0xd0]
movaps xmm10, xmmword [rsp + 0xe0]
movaps xmm11, xmmword [rsp + 0xf0]
movaps xmm12, xmmword [rsp + 0x100]
movaps xmm13, xmmword [rsp + 0x110]
movaps xmm14, xmmword [rsp + 0x120]
movaps xmm15, xmmword [rsp + 0x130]
add rsp, 0x148
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.140071418