Function at 0x180101ab0
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 rdi, r9
shr rdi, 3
mov r10, rcx
mov esi, ebx
test rdi, rdi
je 0x180101be5
cmp rdi, 8
jb 0x180101ba4
add rcx, 0xfffffffffffffff8
lea rax, [r8 - 8]
lea rax, [rax + rdi*8]
lea rcx, [rcx + rdi*8]
cmp r10, rax
ja 0x180101b05
cmp rcx, r8
jae 0x180101ba4
lea rax, [rdx - 8]
lea rax, [rax + rdi*8]
cmp r10, rax
ja 0x180101b1b
cmp rcx, rdx
jae 0x180101ba4
mov rbp, rdi
and rbp, 0xfffffffffffffff8
mov rcx, rdx
lea rax, [r8 + 0x10]
sub rcx, r8
mov r11, r10
sub r11, r8
nop dword [rax]
nop word [rax + rax]
movdqu xmm0, xmmword [rax - 0x10]
add rsi, 8
movdqu xmm1, xmmword [rcx + rax - 0x10]
movdqu xmm2, xmmword [rcx + rax]
lea rax, [rax + 0x40]
pxor xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x40]
movdqu xmmword [r11 + rax - 0x50], xmm1
pxor xmm2, xmm0
movdqu xmm0, xmmword [rax - 0x30]
movdqu xmm1, xmmword [rcx + rax - 0x30]
movdqu xmmword [r11 + rax - 0x40], xmm2
pxor xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x20]
movdqu xmm2, xmmword [rcx + rax - 0x20]
movdqu xmmword [r11 + rax - 0x30], xmm1
pxor xmm2, xmm0
movdqu xmmword [r11 + rax - 0x20], xmm2
cmp rsi, rbp
jb 0x180101b40
cmp rsi, rdi
jae 0x180101be5
mov rbp, rdx
lea rcx, [r8 + rsi*8]
mov r14, r10
sub rbp, r8
sub r14, r8
mov r11, rdi
sub r11, rsi
mov rsi, rdi
nop dword [rax]
nop word [rax + rax]
mov rax, qword [rcx + rbp]
xor rax, qword [rcx]
mov qword [rcx + r14], rax
lea rcx, [rcx + 8]
sub r11, 1
jne 0x180101bd0
lea rsi, [rsi*8]
sub r9, rsi
je 0x180101e14
add r10, rsi
add rdx, rsi
add r8, rsi
mov rdi, r9
shr rdi, 2
mov rsi, rbx
test rdi, rdi
je 0x180101d05
cmp rdi, 0x10
jb 0x180101cd4
lea rax, [rdi - 1]
lea rax, [r8 + rax*4]
lea rcx, [rdi - 1]
lea rcx, [r10 + rcx*4]
cmp r10, rax
ja 0x180101c3a
cmp rcx, r8
jae 0x180101cd4
lea rax, [rdi - 1]
lea rax, [rdx + rax*4]
cmp r10, rax
ja 0x180101c50
cmp rcx, rdx
jae 0x180101cd4
mov rbp, rdi
and rbp, 0xfffffffffffffff0
mov rcx, rdx
lea rax, [r8 + 0x10]
sub rcx, r8
mov r11, r10
sub r11, r8
nop word [rax + rax]
movdqu xmm0, xmmword [rax - 0x10]
add rsi, 0x10
movdqu xmm1, xmmword [rax + rcx - 0x10]
movdqu xmm2, xmmword [rax + rcx]
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 + rcx - 0x30]
movdqu xmmword [rax + r11 - 0x40], xmm2
pxor xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x20]
movdqu xmm2, xmmword [rax + rcx - 0x20]
movdqu xmmword [rax + r11 - 0x30], xmm1
pxor xmm2, xmm0
movdqu xmmword [rax + r11 - 0x20], xmm2
cmp rsi, rbp
jb 0x180101c70
cmp rsi, rdi
jae 0x180101d05
mov rbp, rdx
lea rcx, [r8 + rsi*4]
mov r14, r10
sub rbp, r8
sub r14, r8
mov r11, rdi
sub r11, rsi
mov rsi, rdi
mov eax, dword [rcx + rbp]
xor eax, dword [rcx]
mov dword [rcx + r14], eax
lea rcx, [rcx + 4]
sub r11, 1
jne 0x180101cf2
lea rsi, [rsi*4]
sub r9, rsi
je 0x180101e14
add r10, rsi
add rdx, rsi
add r8, rsi
test r9, r9
je 0x180101e14
cmp r9, 0x40
jb 0x180101de3
lea rcx, [r10 - 1]
lea rax, [r8 - 1]
add rcx, r9
add rax, r9
cmp r10, rax
ja 0x180101d4e
cmp rcx, r8
jae 0x180101de3
lea rax, [rdx - 1]
add rax, r9
cmp r10, rax
ja 0x180101d63
cmp rcx, rdx
jae 0x180101de3
mov rdi, r9
and rdi, 0xffffffffffffffc0
mov rcx, rdx
mov r11, r10
sub rcx, r8
mov rax, r8
sub r11, r8
nop dword [rax]
movdqu xmm0, xmmword [rax]
add rbx, 0x40
movdqu xmm1, xmmword [rax + rcx]
movdqu xmm2, xmmword [rax + rcx + 0x10]
lea rax, [rax + 0x40]
pxor xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x30]
movdqu xmmword [rax + r11 - 0x40], xmm1
pxor xmm2, xmm0
movdqu xmm0, xmmword [rax - 0x20]
movdqu xmm1, xmmword [rax + rcx - 0x20]
movdqu xmmword [rax + r11 - 0x30], xmm2
pxor xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x10]
movdqu xmm2, xmmword [rcx + rax - 0x10]
movdqu xmmword [rax + r11 - 0x20], xmm1
pxor xmm2, xmm0
movdqu xmmword [r11 + rax - 0x10], xmm2
cmp rbx, rdi
jb 0x180101d80
cmp rbx, r9
jae 0x180101e14
sub rdx, r8
lea rax, [rbx + r8]
sub r10, r8
sub r9, rbx
nop word [rax + rax]
movzx ecx, byte [rdx + rax]
xor cl, byte [rax]
mov byte [r10 + rax], cl
lea rax, [rax + 1]
sub r9, 1
jne 0x180101e00
mov rbx, qword [rsp + 0x10]
mov rbp, qword [rsp + 0x18]
mov rsi, qword [rsp + 0x20]
mov rdi, qword [rsp + 0x28]
pop r14
ret