Function at 0x1400ca7f0
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], r9
mov qword [rax + 0x10], rdx
push rbx
push r15
sub rsp, 0x38
mov r15d, dword [rsp + 0x88]
mov rbx, r8
mov r11, rcx
test r15d, r15d
je 0x1400cab12
movsxd r10, dword [rsp + 0x80]
mov qword [rax + 8], rbp
mov qword [rax - 0x18], rsi
mov qword [rax - 0x20], rdi
mov qword [rax - 0x28], r12
lea esi, [r10 - 8]
mov qword [rax - 0x30], r13
mov r12, r10
mov qword [rax - 0x38], r14
lea eax, [r10 - 0x20]
mov r14, qword [rsp + 0x70]
movsxd r13, eax
lea eax, [r10 - 4]
movsxd rbp, eax
mov qword [rsp], rbp
mov dword [rsp + 0x88], esi
nop
movzx eax, r11b
dec r15d
or al, bl
xor r10d, r10d
or al, r14b
xor edx, edx
test al, 0xf
jne 0x1400ca903
test r13, r13
js 0x1400ca994
movdqa xmm3, xmmword [0x1401cf2e0]
lea r10, [r13 + 0x20]
shr r10, 5
lea rax, [rbx + 0x10]
mov rdx, r10
mov rcx, r11
mov r8, r14
mov r9, r10
shl r10d, 5
sub rcx, rbx
sub r8, rbx
shl rdx, 5
lea rax, [rax + 0x20]
movdqa xmm1, xmm3
pxor xmm1, xmmword [rcx + rax - 0x30]
movdqa xmm0, xmm3
pxor xmm0, xmmword [rax - 0x30]
movdqa xmm2, xmm3
pmaxub xmm1, xmm0
movdqa xmm0, xmm3
pxor xmm1, xmm3
movdqu xmmword [r8 + rax - 0x30], xmm1
pxor xmm2, xmmword [rcx + rax - 0x20]
pxor xmm0, xmmword [rax - 0x20]
pmaxub xmm2, xmm0
pxor xmm2, xmm3
movdqu xmmword [r8 + rax - 0x20], xmm2
sub r9, 1
jne 0x1400ca8b0
jmp 0x1400ca994
test r13, r13
js 0x1400ca994
movdqa xmm3, xmmword [0x1401cf2e0]
lea rdx, [r13 + 0x20]
shr rdx, 5
lea rcx, [rbx + 0x10]
mov r10d, edx
mov r8, r11
mov r9, r14
shl r10d, 5
sub r8, rbx
sub r9, rbx
mov rdi, rdx
shl rdx, 5
nop word [rax + rax]
movdqu xmm1, xmmword [r8 + rcx - 0x10]
movdqu xmm0, xmmword [rcx - 0x10]
lea rcx, [rcx + 0x20]
pxor xmm1, xmm3
pxor xmm0, xmm3
pmaxub xmm1, xmm0
pxor xmm1, xmm3
movdqu xmmword [r9 + rcx - 0x30], xmm1
movdqa xmm1, xmm3
movdqu xmm2, xmmword [r8 + rcx - 0x20]
movdqu xmm0, xmmword [rcx - 0x20]
pxor xmm2, xmm3
pxor xmm1, xmm0
pmaxub xmm2, xmm1
pxor xmm2, xmm3
movdqu xmmword [r9 + rcx - 0x20], xmm2
sub rdi, 1
jne 0x1400ca940
cmp r10d, esi
jg 0x1400ca9fa
movdqa xmm2, xmmword [0x1401cf2e0]
mov eax, esi
sub eax, r10d
movsxd rcx, r10d
shr eax, 3
mov r9, r14
mov rdi, rbx
add rcx, r11
sub r9, r11
sub rdi, r11
inc eax
mov r8d, eax
lea r10d, [r10 + rax*8]
lea rdx, [rdx + rax*8]
nop dword [rax + rax]
movq xmm1, qword [rcx]
movq xmm0, qword [rdi + rcx]
pxor xmm1, xmm2
lea rcx, [rcx + 8]
pxor xmm0, xmm2
pmaxub xmm1, xmm0
pxor xmm1, xmm2
movq qword [r9 + rcx - 8], xmm1
sub r8, 1
jne 0x1400ca9d0
cmp rdx, rbp
jg 0x1400caa9f
sub rbp, rdx
lea r9, [r11 + 1]
mov rdi, rbx
shr rbp, 2
mov rsi, r14
add r9, rdx
sub rdi, r11
sub rsi, r11
inc rbp
lea r10d, [r10 + rbp*4]
nop dword [rax]
nop dword [rax + rax]
movzx ecx, byte [rdi + r9 - 1]
movzx r8d, byte [r9 + rdi]
movzx edx, byte [r9]
movzx eax, byte [r9 - 1]
lea r9, [r9 + 4]
cmp al, cl
cmovl eax, ecx
cmp dl, r8b
mov byte [rsi + r9 - 5], al
mov ecx, edx
cmovl ecx, r8d
mov byte [r9 + rsi - 4], cl
movzx ecx, byte [rdi + r9 - 3]
movzx eax, byte [r9 - 3]
movzx r8d, byte [rdi + r9 - 2]
cmp al, cl
movzx edx, byte [r9 - 2]
cmovl eax, ecx
cmp dl, r8b
mov ecx, edx
mov byte [rsi + r9 - 3], al
cmovl ecx, r8d
mov byte [rsi + r9 - 2], cl
sub rbp, 1
jne 0x1400caa30
mov esi, dword [rsp + 0x88]
mov rbp, qword [rsp]
movsxd rcx, r10d
cmp rcx, r12
jge 0x1400caadc
mov r9, rbx
lea rax, [rcx + r11]
mov r10, r14
sub r9, r11
sub r10, r11
mov r8, r12
sub r8, rcx
nop dword [rax]
movzx edx, byte [rax + r9]
movzx ecx, byte [rax]
lea rax, [rax + 1]
cmp cl, dl
cmovl ecx, edx
mov byte [rax + r10 - 1], cl
sub r8, 1
jne 0x1400caac0
add r11, qword [rsp + 0x58]
add rbx, qword [rsp + 0x68]
add r14, qword [rsp + 0x78]
test r15d, r15d
jne 0x1400ca860
mov r14, qword [rsp + 0x10]
mov r13, qword [rsp + 0x18]
mov r12, qword [rsp + 0x20]
mov rdi, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x50]
add rsp, 0x38
pop r15
pop rbx
ret