Function at 0x18000bbc0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
xor ebx, ebx
mov r10, rdx
test cl, 3
jne 0x18000be5f
test r10b, 3
jne 0x18000be5f
test r8b, 3
jne 0x18000be5f
test cl, 7
jne 0x18000bd3f
test r10b, 7
jne 0x18000bd3f
test r8b, 7
jne 0x18000bd3f
mov rdi, r9
mov esi, ebx
shr rdi, 3
test rdi, rdi
je 0x18000bd25
cmp rdi, 8
jb 0x18000bce4
lea rax, [r8 - 8]
lea rax, [rax + rdi*8]
lea rdx, [rcx - 8]
lea rdx, [rdx + rdi*8]
cmp rcx, rax
ja 0x18000bc4f
cmp rdx, r8
jae 0x18000bce4
lea rax, [r10 - 8]
lea rax, [rax + rdi*8]
cmp rcx, rax
ja 0x18000bc65
cmp rdx, r10
jae 0x18000bce4
mov rbp, rdi
and rbp, 0xfffffffffffffff8
mov rdx, r10
lea rax, [r8 + 0x10]
sub rdx, r8
mov r11, rcx
sub r11, r8
nop dword [rax]
movdqu xmm0, xmmword [rax - 0x10]
add rsi, 8
movdqu xmm1, xmmword [rax + rdx - 0x10]
movdqu xmm2, xmmword [rdx + rax]
lea rax, [rax + 0x40]
pxor xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x40]
movdqu xmmword [rax + r11 - 0x50], xmm1
pxor xmm2, xmm0
movdqu xmm0, xmmword [rax - 0x30]
movdqu xmm1, xmmword [rax + rdx - 0x30]
movdqu xmmword [rax + r11 - 0x40], xmm2
pxor xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x20]
movdqu xmm2, xmmword [rax + rdx - 0x20]
movdqu xmmword [rax + r11 - 0x30], xmm1
pxor xmm2, xmm0
movdqu xmmword [rax + r11 - 0x20], xmm2
cmp rsi, rbp
jb 0x18000bc80
cmp rsi, rdi
jae 0x18000bd25
mov r14, r10
lea rdx, [r8 + rsi*8]
mov rbp, rcx
sub r14, r8
sub rbp, r8
mov r11, rdi
sub r11, rsi
mov rsi, rdi
nop dword [rax]
nop word [rax + rax]
mov rax, qword [r14 + rdx]
xor rax, qword [rdx]
mov qword [rdx + rbp], rax
lea rdx, [rdx + 8]
sub r11, 1
jne 0x18000bd10
lea rsi, [rsi*8]
sub r9, rsi
je 0x18000bf54
add rcx, rsi
add r10, rsi
add r8, rsi
mov rdi, r9
mov rsi, rbx
shr rdi, 2
test rdi, rdi
je 0x18000be45
cmp rdi, 0x10
jb 0x18000be14
lea rax, [rdi - 1]
lea rax, [r8 + rax*4]
lea rdx, [rdi - 1]
lea rdx, [rcx + rdx*4]
cmp rcx, rax
ja 0x18000bd7a
cmp rdx, r8
jae 0x18000be14
lea rax, [rdi - 1]
lea rax, [r10 + rax*4]
cmp rcx, rax
ja 0x18000bd90
cmp rdx, r10
jae 0x18000be14
mov rbp, rdi
and rbp, 0xfffffffffffffff0
mov rdx, r10
lea rax, [r8 + 0x10]
sub rdx, r8
mov r11, rcx
sub r11, r8
nop word [rax + rax]
movdqu xmm0, xmmword [rax - 0x10]
add rsi, 0x10
movdqu xmm1, xmmword [rax + rdx - 0x10]
movdqu xmm2, xmmword [rdx + rax]
lea rax, [rax + 0x40]
pxor xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x40]
movdqu xmmword [rax + r11 - 0x50], xmm1
pxor xmm2, xmm0
movdqu xmm0, xmmword [rax - 0x30]
movdqu xmm1, xmmword [rax + rdx - 0x30]
movdqu xmmword [rax + r11 - 0x40], xmm2
pxor xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x20]
movdqu xmm2, xmmword [rax + rdx - 0x20]
movdqu xmmword [rax + r11 - 0x30], xmm1
pxor xmm2, xmm0
movdqu xmmword [rax + r11 - 0x20], xmm2
cmp rsi, rbp
jb 0x18000bdb0
cmp rsi, rdi
jae 0x18000be45
mov r14, r10
lea rdx, [r8 + rsi*4]
mov rbp, rcx
sub r14, r8
sub rbp, r8
mov r11, rdi
sub r11, rsi
mov rsi, rdi
mov eax, dword [r14 + rdx]
xor eax, dword [rdx]
mov dword [rdx + rbp], eax
lea rdx, [rdx + 4]
sub r11, 1
jne 0x18000be32
lea rsi, [rsi*4]
sub r9, rsi
je 0x18000bf54
add rcx, rsi
add r10, rsi
add r8, rsi
test r9, r9
je 0x18000bf54
cmp r9, 0x40
jb 0x18000bf24
lea rdx, [rcx - 1]
lea rax, [r8 - 1]
add rdx, r9
add rax, r9
cmp rcx, rax
ja 0x18000be8e
cmp rdx, r8
jae 0x18000bf24
lea rax, [r10 - 1]
add rax, r9
cmp rcx, rax
ja 0x18000bea3
cmp rdx, r10
jae 0x18000bf24
mov rdi, r9
and rdi, 0xffffffffffffffc0
mov rdx, r10
lea rax, [r8 + 0x10]
sub rdx, r8
mov r11, rcx
sub r11, r8
nop word [rax + rax]
movdqu xmm0, xmmword [rax - 0x10]
add rbx, 0x40
movdqu xmm1, xmmword [rax + rdx - 0x10]
movdqu xmm2, xmmword [rdx + rax]
lea rax, [rax + 0x40]
pxor xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x40]
movdqu xmmword [rax + r11 - 0x50], xmm1
pxor xmm2, xmm0
movdqu xmm0, xmmword [rax - 0x30]
movdqu xmm1, xmmword [rax + rdx - 0x30]
movdqu xmmword [rax + r11 - 0x40], xmm2
pxor xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x20]
movdqu xmm2, xmmword [rax + rdx - 0x20]
movdqu xmmword [rax + r11 - 0x30], xmm1
pxor xmm2, xmm0
movdqu xmmword [rax + r11 - 0x20], xmm2
cmp rbx, rdi
jb 0x18000bec0
cmp rbx, r9
jae 0x18000bf54
sub r10, r8
lea rdx, [rbx + r8]
sub rcx, r8
sub r9, rbx
nop word [rax + rax]
movzx eax, byte [r10 + rdx]
xor al, byte [rdx]
mov byte [rdx + rcx], al
lea rdx, [rdx + 1]
sub r9, 1
jne 0x18000bf40
mov rbx, qword [rsp + 0x10]
mov rbp, qword [rsp + 0x18]
mov rsi, qword [rsp + 0x20]
mov rdi, qword [rsp + 0x28]
pop r14
ret