Function at 0x1400c2ed0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], r9
push rbp
push rdi
push r12
push r13
push r14
mov rbp, rsp
sub rsp, 0x40
mov rbx, rdx
mov rax, r9
mov r12, r9
cqo
mov r14, r8
mov r13, rcx
and edx, 0xf
add rax, rdx
mov rdi, rax
and eax, 0xf
sub rax, rdx
sar rdi, 4
mov rsi, rax
test rax, rax
je 0x1400c2f29
test rdi, rdi
jne 0x1400c2f26
xor eax, eax
jmp 0x1400c30f6
dec rdi
mov qword [rsp + 0x70], r15
mov r15, qword [rbp + 0x50]
mov rcx, r15
test rdi, rdi
je 0x1400c2f8a
nop word [rax + rax]
mov eax, dword [rbx]
mov edx, dword [r13 + 4]
lea r8, [rbp - 0x20]
xor eax, dword [rcx]
mov r9, r14
mov dword [rbp - 0x20], eax
mov eax, dword [rcx + 4]
xor eax, dword [rbx + 4]
mov dword [rbp - 0x1c], eax
mov eax, dword [rcx + 8]
xor eax, dword [rbx + 8]
mov dword [rbp - 0x18], eax
mov eax, dword [rcx + 0xc]
lea rcx, [r13 + 8]
xor eax, dword [rbx + 0xc]
mov dword [rbp - 0x14], eax
call fcn.1400c1f30
mov rcx, r14
add r14, 0x10
add rbx, 0x10
dec rdi
jne 0x1400c2f40
mov r12, qword [rbp + 0x48]
test rsi, rsi
je 0x1400c30d4
movups xmm0, xmmword [rbx]
mov edx, dword [r13 + 4]
lea r9, [rbp - 0x10]
lea r8, [rbp - 0x20]
movups xmmword [rbp - 0x20], xmm0
movd eax, xmm0
xor eax, dword [rcx]
mov dword [rbp - 0x20], eax
mov eax, dword [rcx + 4]
xor dword [rbp - 0x1c], eax
mov eax, dword [rcx + 8]
xor dword [rbp - 0x18], eax
mov eax, dword [rcx + 0xc]
lea rcx, [r13 + 8]
xor dword [rbp - 0x14], eax
call fcn.1400c1f30
xor r9d, r9d
test rsi, rsi
je 0x1400c30b3
cmp rsi, 0x10
jb 0x1400c3075
lea rcx, [rsi + 0xf]
lea r8, [r14 + 0x10]
lea r10, [rbp + rsi - 0x11]
add rcx, r14
cmp r8, r10
ja 0x1400c2ffe
lea rax, [rbp - 0x10]
cmp rcx, rax
jae 0x1400c3075
lea rdx, [rsi + 0xf]
lea rax, [rbx + 0x10]
add rdx, rbx
cmp r8, rdx
ja 0x1400c3013
cmp rcx, rax
jae 0x1400c3075
lea rcx, [rbp - 0x10]
cmp rcx, rdx
ja 0x1400c3021
cmp r10, rax
jae 0x1400c3075
mov rax, rsi
lea r8, [rbp - 0x10]
mov rdx, rsi
and eax, 0xf
lea r10, [rbp - 0x10]
lea rcx, [rbp - 0x10]
sub rdx, rax
mov rax, rbx
sub rax, r8
lea r8, [rax + 0x10]
mov rax, r14
sub rax, r10
nop dword [rax]
movdqu xmm1, xmmword [rcx]
movdqu xmm0, xmmword [r8 + rcx]
add r9, 0x10
lea rcx, [rcx + 0x10]
pxor xmm0, xmm1
movdqu xmmword [rcx - 0x10], xmm0
movdqu xmmword [rax + rcx], xmm1
cmp r9, rdx
jb 0x1400c3050
cmp r9, rsi
jae 0x1400c30b3
lea rax, [rbp - 0x10]
lea rcx, [rbp - 0x10]
mov r10, r14
sub rbx, rax
sub r10, rcx
nop dword [rax + rax]
lea r8, [rbp - 0x10]
add r8, r9
inc r9
movzx edx, byte [r8]
movzx eax, byte [r8 + rbx + 0x10]
xor al, dl
mov byte [r8 + r10 + 0x10], dl
mov byte [r8], al
cmp r9, rsi
jb 0x1400c3090
mov edx, dword [r13 + 4]
lea r9, [rbp - 0x10]
lea r8, [rbp - 0x10]
lea rcx, [r13 + 8]
call fcn.1400c1f30
lea rcx, [rbp - 0x10]
movups xmm0, xmmword [rbp - 0x10]
movups xmmword [r14], xmm0
mov eax, dword [rcx]
mov dword [r15], eax
mov eax, dword [rcx + 4]
mov dword [r15 + 4], eax
mov eax, dword [rcx + 8]
mov dword [r15 + 8], eax
mov eax, dword [rcx + 0xc]
mov dword [r15 + 0xc], eax
mov r15, qword [rsp + 0x70]
mov rax, r12
mov rbx, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
add rsp, 0x40
pop r14
pop r13
pop r12
pop rdi
pop rbp
ret