Function at 0x14001eb80
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
test rdx, rdx
je 0x14001ed38
mov r14, r9
mov r15, r8
mov r13, rdx
mov rdi, rcx
mov rax, qword [rcx + 0x80]
lea rsi, [r9 + 7]
lea rbp, [r8 + 7]
xor ebx, ebx
nop word cs:[rax + rax]
cmp rax, 0x3f
ja 0x14001ebf9
movzx eax, byte [rdi + rax + 0x40]
xor al, byte [rbp - 7]
mov byte [rsi - 7], al
mov rax, qword [rdi + 0x80]
add rax, 1
mov qword [rdi + 0x80], rax
add rbx, 1
add rsi, 1
add rbp, 1
cmp r13, rbx
jne 0x14001ebc0
jmp 0x14001ed38
sub r13, rbx
cmp r13, 0x40
jb 0x14001ecc1
lea r12, [rdi + 0x40]
nop word [rax + rax]
mov rcx, rdi
mov rdx, r12
call fcn.14001eec0
add dword [rdi + 0x30], 1
mov rax, 0xfffffffffffffff8
nop word cs:[rax + rax]
movzx ecx, byte [rdi + rax + 0x48]
xor cl, byte [rbp + rax + 1]
mov byte [rsi + rax + 1], cl
movzx ecx, byte [rdi + rax + 0x49]
xor cl, byte [rbp + rax + 2]
mov byte [rsi + rax + 2], cl
movzx ecx, byte [rdi + rax + 0x4a]
xor cl, byte [rbp + rax + 3]
mov byte [rsi + rax + 3], cl
movzx ecx, byte [rdi + rax + 0x4b]
xor cl, byte [rbp + rax + 4]
mov byte [rsi + rax + 4], cl
movzx ecx, byte [rdi + rax + 0x4c]
xor cl, byte [rbp + rax + 5]
mov byte [rsi + rax + 5], cl
movzx ecx, byte [rdi + rax + 0x4d]
xor cl, byte [rbp + rax + 6]
mov byte [rsi + rax + 6], cl
movzx ecx, byte [rdi + rax + 0x4e]
xor cl, byte [rbp + rax + 7]
mov byte [rsi + rax + 7], cl
movzx ecx, byte [rdi + rax + 0x4f]
xor cl, byte [rbp + rax + 8]
mov byte [rsi + rax + 8], cl
add rax, 8
cmp rax, 0x38
jb 0x14001ec30
add rbx, 0x40
add r13, 0xffffffffffffffc0
add rsi, 0x40
add rbp, 0x40
cmp r13, 0x3f
ja 0x14001ec10
test r13, r13
je 0x14001ed38
lea r12, [rdi + 0x40]
mov rcx, rdi
mov rdx, r12
call fcn.14001eec0
add dword [rdi + 0x30], 1
cmp r13, 8
jae 0x14001ed4b
xor eax, eax
mov rcx, rax
or rcx, 1
test r13b, 1
je 0x14001ecfb
mov dl, byte [rdi + rax + 0x40]
add rax, rbx
xor dl, byte [r15 + rax]
mov byte [r14 + rax], dl
mov rax, rcx
cmp r13, rcx
je 0x14001ed31
lea rcx, [r14 + rbx]
add rcx, 1
lea rdx, [r15 + rbx]
add rdx, 1
movzx ebx, byte [rdi + rax + 0x40]
xor bl, byte [rdx + rax - 1]
mov byte [rcx + rax - 1], bl
movzx ebx, byte [rdi + rax + 0x41]
xor bl, byte [rdx + rax]
mov byte [rcx + rax], bl
add rax, 2
cmp r13, rax
jne 0x14001ed10
mov qword [rdi + 0x80], r13
xor eax, eax
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r10, [r14 + rbx]
lea rax, [rbx + r13]
lea rdx, [r14 + rax]
lea r9, [r15 + rbx]
add rax, r15
lea rcx, [rdi + r13]
add rcx, 0x40
cmp r10, rax
setb r8b
cmp r9, rdx
setb r11b
cmp r10, rcx
setb cl
cmp r12, rdx
setb dl
xor eax, eax
test r8b, r11b
jne 0x14001ecdc
and cl, dl
jne 0x14001ecdc
cmp r13, 0x20
jae 0x14001eda0
xor eax, eax
jmp 0x14001ee78
mov rax, r13
and rax, 0xffffffffffffffe0
lea rcx, [rax - 0x20]
mov r8, rcx
shr r8, 5
add r8, 1
test rcx, rcx
je 0x14001ee33
lea rbp, [r14 + rbx]
add rbp, 0x30
lea rdx, [r15 + rbx]
add rdx, 0x30
mov rcx, r8
and rcx, 0xfffffffffffffffe
neg rcx
xor esi, esi
nop word [rax + rax]
movups xmm0, xmmword [rdx + rsi - 0x30]
movups xmm1, xmmword [rdx + rsi - 0x20]
movups xmm2, xmmword [rdi + rsi + 0x40]
xorps xmm2, xmm0
movups xmm0, xmmword [rdi + rsi + 0x50]
xorps xmm0, xmm1
movups xmmword [rbp + rsi - 0x30], xmm2
movups xmmword [rbp + rsi - 0x20], xmm0
movups xmm0, xmmword [rdx + rsi - 0x10]
movups xmm1, xmmword [rdx + rsi]
movups xmm2, xmmword [rdi + rsi + 0x60]
xorps xmm2, xmm0
movups xmm0, xmmword [rdi + rsi + 0x70]
xorps xmm0, xmm1
movups xmmword [rbp + rsi - 0x10], xmm2
movups xmmword [rbp + rsi], xmm0
add rsi, 0x40
add rcx, 2
jne 0x14001ede0
jmp 0x14001ee35
xor esi, esi
test r8b, 1
je 0x14001ee65
lea rcx, [rsi + rbx]
movups xmm0, xmmword [r15 + rcx]
movups xmm1, xmmword [r15 + rcx + 0x10]
movups xmm2, xmmword [rdi + rsi + 0x40]
xorps xmm2, xmm0
movups xmm0, xmmword [rdi + rsi + 0x50]
xorps xmm0, xmm1
movups xmmword [r14 + rcx], xmm2
movups xmmword [r14 + rcx + 0x10], xmm0
cmp r13, rax
je 0x14001ed31
test r13b, 0x18
je 0x14001ecdc
mov rcx, rax
mov rax, r13
and rax, 0xfffffffffffffff8
nop word cs:[rax + rax]
nop dword [rax]
mov rdx, qword [rdi + rcx + 0x40]
xor rdx, qword [r9 + rcx]
mov qword [r10 + rcx], rdx
add rcx, 8
cmp rax, rcx
jne 0x14001ee90
cmp r13, rax
jne 0x14001ecdc
jmp 0x14001ed31