Function at 0x1400c6650
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push r12
push r14
sub rsp, 0x38
mov r12d, dword [rsp + 0x98]
mov rbp, r9
mov rbx, r8
mov r14, rcx
test r12d, r12d
je 0x1400c6a5b
movsxd r10, dword [rsp + 0x90]
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], r13
lea eax, [r10 - 0x20]
mov qword [rsp + 0x20], r15
mov r15, qword [rsp + 0x80]
lea edi, [r10 - 8]
movsxd r13, eax
lea eax, [r10 - 4]
movsxd rsi, eax
mov qword [rsp], rsi
mov qword [rsp + 8], r13
mov dword [rsp + 0x98], edi
mov qword [rsp + 0x10], r10
nop dword [rax]
movzx eax, r14b
dec r12d
or al, bl
xor r11d, r11d
or al, r15b
xor edx, edx
test al, 0xf
jne 0x1400c6775
test r13, r13
js 0x1400c6808
lea r11, [r13 + 0x20]
mov rcx, r14
shr r11, 5
lea rax, [rbx + 0x10]
mov rdx, r11
mov r8, r15
mov r9, r11
sub rcx, rbx
shl r11d, 5
sub r8, rbx
shl rdx, 5
nop dword [rax + rax]
movdqu xmm2, xmmword [rcx + rax - 0x10]
movdqu xmm1, xmmword [rax - 0x10]
lea rax, [rax + 0x20]
pcmpgtb xmm1, xmm2
psubsb xmm2, xmmword [rax - 0x30]
pxor xmm2, xmm1
psubsb xmm2, xmm1
movdqu xmmword [r8 + rax - 0x30], xmm2
movdqu xmm3, xmmword [rcx + rax - 0x20]
movdqu xmm1, xmmword [rax - 0x20]
pcmpgtb xmm1, xmm3
psubsb xmm3, xmmword [rax - 0x20]
pxor xmm3, xmm1
psubsb xmm3, xmm1
movdqu xmmword [r8 + rax - 0x20], xmm3
sub r9, 1
jne 0x1400c6720
jmp 0x1400c6808
test r13, r13
js 0x1400c6808
lea rdx, [r13 + 0x20]
mov r8, r14
shr rdx, 5
lea rcx, [rbx + 0x10]
mov r11d, edx
mov r9, r15
shl r11d, 5
sub r8, rbx
sub r9, rbx
mov r10, rdx
shl rdx, 5
nop dword [rax]
nop dword [rax + rax]
movdqu xmm0, xmmword [rcx - 0x10]
movdqu xmm2, xmmword [rcx + r8 - 0x10]
lea rcx, [rcx + 0x20]
movdqa xmm1, xmm0
pcmpgtb xmm1, xmm2
psubsb xmm2, xmm0
pxor xmm2, xmm1
psubsb xmm2, xmm1
movdqu xmmword [rcx + r9 - 0x30], xmm2
movdqu xmm0, xmmword [rcx - 0x20]
movdqu xmm3, xmmword [rcx + r8 - 0x20]
movdqa xmm1, xmm0
pcmpgtb xmm1, xmm3
psubsb xmm3, xmm0
pxor xmm3, xmm1
psubsb xmm3, xmm1
movdqu xmmword [rcx + r9 - 0x20], xmm3
sub r10, 1
jne 0x1400c67b0
cmp r11d, edi
jg 0x1400c686f
mov eax, edi
movsxd rcx, r11d
sub eax, r11d
mov r9, r14
shr eax, 3
mov r10, r15
add rcx, rbx
sub r9, rbx
sub r10, rbx
inc eax
mov r8d, eax
lea r11d, [r11 + rax*8]
lea rdx, [rdx + rax*8]
nop dword [rax]
nop dword [rax + rax]
movq xmm0, qword [rcx]
movq xmm2, qword [rcx + r9]
movdqa xmm1, xmm0
lea rcx, [rcx + 8]
pcmpgtb xmm1, xmm2
psubsb xmm2, xmm0
pxor xmm2, xmm1
psubsb xmm2, xmm1
movq qword [rcx + r10 - 8], xmm2
sub r8, 1
jne 0x1400c6840
cmp rdx, rsi
jg 0x1400c69bc
mov rdi, qword [rsp]
lea r8, [rbx + 1]
sub rdi, rdx
mov rsi, r14
mov rbp, r15
shr rdi, 2
add r8, rdx
sub rsi, rbx
sub rbp, rbx
mov r13d, 0x7f
inc rdi
lea r11d, [r11 + rdi*4]
nop dword [rax]
nop word [rax + rax]
movsx ecx, byte [r8 - 1]
movsx eax, byte [r8 + rsi - 1]
sub eax, ecx
cdq
mov r10d, eax
xor r10d, edx
sub r10d, edx
lea ecx, [r10 + 0x80]
cmp ecx, 0xff
jbe 0x1400c68e6
test r10d, r10d
mov eax, 0xffffff80
cmovg eax, r13d
movzx r10d, al
movsx ecx, byte [r8]
movsx eax, byte [r8 + rsi]
sub eax, ecx
cdq
mov r9d, eax
xor r9d, edx
sub r9d, edx
lea ecx, [r9 + 0x80]
cmp ecx, 0xff
jbe 0x1400c691a
test r9d, r9d
mov eax, 0xffffff80
cmovg eax, r13d
movzx r9d, al
mov byte [r8 + rbp - 1], r10b
mov byte [r8 + rbp], r9b
movsx ecx, byte [r8 + 1]
movsx eax, byte [r8 + rsi + 1]
sub eax, ecx
cdq
mov r10d, eax
xor r10d, edx
sub r10d, edx
lea ecx, [r10 + 0x80]
cmp ecx, 0xff
jbe 0x1400c6959
test r10d, r10d
mov eax, 0xffffff80
cmovg eax, r13d
movzx r10d, al
movsx ecx, byte [r8 + 2]
movsx eax, byte [r8 + rsi + 2]
sub eax, ecx
cdq
mov r9d, eax
xor r9d, edx
sub r9d, edx
lea ecx, [r9 + 0x80]
cmp ecx, 0xff
jbe 0x1400c698f
test r9d, r9d
mov eax, 0xffffff80
cmovg eax, r13d
movzx r9d, al
mov byte [r8 + rbp + 1], r10b
mov byte [r8 + rbp + 2], r9b
add r8, 4
sub rdi, 1
jne 0x1400c68b0
mov r13, qword [rsp + 8]
mov edi, dword [rsp + 0x98]
mov rsi, qword [rsp]
mov rbp, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x10]
movsxd rax, r11d
cmp rax, rcx
jge 0x1400c6a2e
mov r11, r14
lea r8, [rax + rbx]
mov r10, r15
sub r11, rbx
sub r10, rbx
mov r9, rcx
sub r9, rax
mov edi, 0x7f
nop dword [rax]
nop dword [rax + rax]
movsx ecx, byte [r8]
movsx eax, byte [r11 + r8]
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
lea ecx, [rax + 0x80]
cmp ecx, 0xff
jbe 0x1400c6a1a
test eax, eax
mov ecx, 0xffffff80
cmovg ecx, edi
mov eax, ecx
mov byte [r10 + r8], al
inc r8
sub r9, 1
jne 0x1400c69f0
mov edi, dword [rsp + 0x98]
add r14, qword [rsp + 0x68]
add rbx, rbp
add r15, qword [rsp + 0x88]
test r12d, r12d
jne 0x1400c66d0
mov r15, qword [rsp + 0x20]
mov r13, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x60]
add rsp, 0x38
pop r14
pop r12
pop rbp
pop rbx
ret