Function at 0x14000c33c
Capabilities:
Encode data using xor

Disassembly:
test r8, r8
je 0x14000c7b5
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x60
mov r11, r8
mov r14, r9
shr r11, 4
mov rbx, rdx
cmp byte [rcx], 0
mov r10, rcx
je 0x14000c388
mov r8, r11
call fcn.14000c7b8
jmp 0x14000c79e
lea r9, [rcx + 8]
mov edi, 4
mov qword [rbp - 0x30], r9
mov r8, r9
test r11, r11
je 0x14000c788
lea rax, [rcx + 0x18]
lea r13, [rbp - 0x28]
lea r12, [rbp - 0x18]
sub r13, r14
sub r12, rdx
lea rcx, [rbp - 0x18]
sub rax, rcx
mov qword [rbp - 0x40], r12
mov qword [rbp - 0x38], rax
lea r15, [r14 + 1]
lea rsi, [0x140000000]
cmp byte [r10 + 1], 0
je 0x14000c3f2
mov rcx, rbx
sub r8, rbx
mov rdx, rdi
mov eax, dword [r8 + rcx]
xor eax, dword [rcx]
mov dword [r12 + rcx], eax
add rcx, rdi
sub rdx, 1
jne 0x14000c3dd
jmp 0x14000c3f9
movups xmm0, xmmword [rbx]
movups xmmword [rbp - 0x18], xmm0
mov r10, qword [rbp - 0x38]
xor edx, edx
lea rax, [rbp - 0x18]
add rax, rdx
mov ecx, dword [rax + r10]
xor ecx, dword [rax]
mov dword [rbp + rdx - 0x28], ecx
add rdx, rdi
cmp rdx, 0x10
jl 0x14000c3ff
movzx ecx, byte [rbp - 0x28]
lea r8, [r15 - 1]
movzx eax, byte [rbp - 0x23]
mov r10, qword [rbp + 0x40]
mov dword [rbp + 0x50], 1
mov edx, dword [rsi + rcx*4 + 0x57ab0]
xor edx, dword [rsi + rax*4 + 0x57eb0]
movzx eax, byte [rbp - 0x1e]
movzx ecx, byte [rbp - 0x25]
xor edx, dword [rsi + rax*4 + 0x582b0]
movzx eax, byte [rbp - 0x19]
xor edx, dword [rsi + rax*4 + 0x586b0]
movzx eax, byte [rbp - 0x24]
mov dword [r8], edx
mov edx, dword [rsi + rcx*4 + 0x586b0]
movzx ecx, byte [rbp - 0x26]
xor edx, dword [rsi + rax*4 + 0x57ab0]
movzx eax, byte [rbp - 0x1f]
xor edx, dword [rsi + rax*4 + 0x57eb0]
movzx eax, byte [rbp - 0x1a]
xor edx, dword [rsi + rax*4 + 0x582b0]
movzx eax, byte [rbp - 0x20]
mov dword [r15 + 3], edx
mov edx, dword [rsi + rcx*4 + 0x582b0]
movzx ecx, byte [rbp - 0x27]
xor edx, dword [rsi + rax*4 + 0x57ab0]
movzx eax, byte [rbp - 0x21]
xor edx, dword [rsi + rax*4 + 0x586b0]
movzx eax, byte [rbp - 0x1b]
xor edx, dword [rsi + rax*4 + 0x57eb0]
movzx eax, byte [rbp - 0x22]
mov dword [r15 + 7], edx
mov edx, dword [rsi + rcx*4 + 0x57eb0]
xor edx, dword [rsi + rax*4 + 0x582b0]
movzx eax, byte [rbp - 0x1d]
xor edx, dword [rsi + rax*4 + 0x586b0]
movzx eax, byte [rbp - 0x1c]
xor edx, dword [rsi + rax*4 + 0x57ab0]
mov dword [r15 + 0xb], edx
mov ecx, dword [r10 + 4]
lea eax, [rcx - 1]
cmp eax, 1
jle 0x14000c620
mov r12d, dword [rbp + 0x50]
lea rsi, [rbp - 0x28]
sub rsi, r10
lea rax, [rbp - 0x27]
sub rsi, 0x28
lea rdi, [r10 + 0x28]
mov r9, r15
lea rbx, [0x140000000]
sub r9, rax
lea rdx, [rsi + r9]
mov ecx, 4
mov eax, dword [rdi + rdx]
xor eax, dword [rdi]
mov dword [rsi + rdi], eax
add rdi, 4
sub rcx, 1
jne 0x14000c524
movzx ecx, byte [rbp - 0x28]
inc r12d
movzx eax, byte [rbp - 0x23]
sub rsi, 0x10
mov edx, dword [rbx + rcx*4 + 0x57ab0]
xor edx, dword [rbx + rax*4 + 0x57eb0]
movzx eax, byte [rbp - 0x1e]
movzx ecx, byte [rbp - 0x25]
xor edx, dword [rbx + rax*4 + 0x582b0]
movzx eax, byte [rbp - 0x19]
xor edx, dword [rbx + rax*4 + 0x586b0]
movzx eax, byte [rbp - 0x24]
mov dword [r8], edx
mov edx, dword [rbx + rcx*4 + 0x586b0]
movzx ecx, byte [rbp - 0x26]
xor edx, dword [rbx + rax*4 + 0x57ab0]
movzx eax, byte [rbp - 0x1f]
xor edx, dword [rbx + rax*4 + 0x57eb0]
movzx eax, byte [rbp - 0x1a]
xor edx, dword [rbx + rax*4 + 0x582b0]
movzx eax, byte [rbp - 0x20]
mov dword [r15 + 3], edx
mov edx, dword [rbx + rcx*4 + 0x582b0]
movzx ecx, byte [rbp - 0x27]
xor edx, dword [rbx + rax*4 + 0x57ab0]
movzx eax, byte [rbp - 0x21]
xor edx, dword [rbx + rax*4 + 0x586b0]
movzx eax, byte [rbp - 0x1b]
xor edx, dword [rbx + rax*4 + 0x57eb0]
movzx eax, byte [rbp - 0x22]
mov dword [r15 + 7], edx
mov edx, dword [rbx + rcx*4 + 0x57eb0]
xor edx, dword [rbx + rax*4 + 0x582b0]
movzx eax, byte [rbp - 0x1d]
xor edx, dword [rbx + rax*4 + 0x586b0]
movzx eax, byte [rbp - 0x1c]
xor edx, dword [rbx + rax*4 + 0x57ab0]
mov dword [r15 + 0xb], edx
mov ecx, dword [r10 + 4]
lea eax, [rcx - 1]
cmp r12d, eax
jl 0x14000c51b
mov rbx, qword [rbp + 0x48]
lea rsi, [0x140000000]
mov r12, qword [rbp - 0x40]
mov edi, 4
movsxd rdx, ecx
mov r9, rdi
shl rdx, 4
mov rcx, r14
add rdx, 8
add rdx, r10
sub rdx, r8
mov eax, dword [rcx + rdx]
xor eax, dword [rcx]
mov dword [rcx + r13], eax
add rcx, rdi
sub r9, 1
jne 0x14000c637
movzx eax, byte [rbp - 0x28]
mov rcx, r8
mov rdx, rdi
mov al, byte [rsi + rax*4 + 0x57ab1]
mov byte [r8], al
movzx eax, byte [rbp - 0x23]
mov al, byte [rsi + rax*4 + 0x57ab1]
mov byte [r15], al
movzx eax, byte [rbp - 0x1e]
mov al, byte [rsi + rax*4 + 0x57ab1]
mov byte [r15 + 1], al
movzx eax, byte [rbp - 0x19]
mov al, byte [rsi + rax*4 + 0x57ab1]
mov byte [r15 + 2], al
movzx eax, byte [rbp - 0x24]
mov al, byte [rsi + rax*4 + 0x57ab1]
mov byte [r15 + 3], al
movzx eax, byte [rbp - 0x1f]
mov al, byte [rsi + rax*4 + 0x57ab1]
mov byte [r15 + 4], al
movzx eax, byte [rbp - 0x1a]
mov al, byte [rsi + rax*4 + 0x57ab1]
mov byte [r15 + 5], al
movzx eax, byte [rbp - 0x25]
mov al, byte [rsi + rax*4 + 0x57ab1]
mov byte [r15 + 6], al
movzx eax, byte [rbp - 0x20]
mov al, byte [rsi + rax*4 + 0x57ab1]
mov byte [r15 + 7], al
movzx eax, byte [rbp - 0x1b]
mov al, byte [rsi + rax*4 + 0x57ab1]
mov byte [r15 + 8], al
movzx eax, byte [rbp - 0x26]
mov al, byte [rsi + rax*4 + 0x57ab1]
mov byte [r15 + 9], al
movzx eax, byte [rbp - 0x21]
mov al, byte [rsi + rax*4 + 0x57ab1]
mov byte [r15 + 0xa], al
movzx eax, byte [rbp - 0x1c]
mov al, byte [rsi + rax*4 + 0x57ab1]
mov byte [r15 + 0xb], al
movzx eax, byte [rbp - 0x27]
mov al, byte [rsi + rax*4 + 0x57ab1]
mov byte [r15 + 0xc], al
movzx eax, byte [rbp - 0x22]
mov al, byte [rsi + rax*4 + 0x57ab1]
mov byte [r15 + 0xd], al
movzx eax, byte [rbp - 0x1d]
mov al, byte [rsi + rax*4 + 0x57ab1]
mov byte [r15 + 0xe], al
movsxd r9, dword [r10 + 4]
shl r9, 4
add r9, 0x18
add r9, r10
sub r9, r8
mov eax, dword [rcx + r9]
xor dword [rcx], eax
add rcx, rdi
sub rdx, 1
jne 0x14000c74f
add rbx, 0x10
lea r14, [r14 + 0x10]
sub r12, 0x10
mov qword [rbp + 0x48], rbx
sub r13, 0x10
mov qword [rbp - 0x40], r12
add r15, 0x10
sub r11, 1
jne 0x14000c3cd
mov r9, qword [rbp - 0x30]
sub r8, r9
mov rcx, rdi
mov eax, dword [r8 + r9]
mov dword [r9], eax
add r9, rdi
sub rcx, 1
jne 0x14000c78e
mov rbx, qword [rsp + 0xb8]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret