Function at 0x1400c96a0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
mov rax, qword [rsp + 0xd0]
mov r13, qword [rsp + 0xc0]
mov ebx, dword [rax]
mov qword [rsp + 0xb8], r9
mov r14, rcx
mov rbp, rdx
mov rsi, r8
test ebx, ebx
je 0x1400c9716
test r8, r8
je 0x1400c9716
mov rdx, qword [rsp + 0xc8]
jmp 0x1400c96f5
test rsi, rsi
je 0x1400c9716
mov eax, ebx
add r14, 1
add rbp, 1
add ebx, 1
movzx eax, byte [rdx + rax]
xor al, byte [r14 - 1]
sub rsi, 1
mov byte [rbp - 1], al
and ebx, 0xf
jne 0x1400c96f0
cmp rsi, 0xf
jbe 0x1400c9cd8
lea rax, [rsi - 0x10]
mov qword [rsp + 0xa8], rbp
mov rdi, rbp
and rax, 0xfffffffffffffff0
mov qword [rsp + 0xb0], rsi
lea r12, [rax + 0x10]
lea rax, [r14 + r12]
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x40], rax
nop dword [rax]
mov r8, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0xc8]
mov rcx, r13
call qword [rsp + 0xd8]
movzx eax, byte [r13 + 0xf]
movzx r9d, byte [r13 + 0xe]
movzx r8d, byte [r13 + 0xd]
movzx ecx, byte [r13 + 0xc]
add eax, 1
movzx edx, byte [r13 + 0xb]
movzx r12d, byte [r13 + 6]
shr eax, 8
add r9d, eax
mov eax, r9d
movzx r9d, r9b
shr eax, 8
add r8d, eax
mov eax, r8d
movzx r8d, r8b
shr eax, 8
add ecx, eax
mov eax, ecx
movzx ecx, cl
shr eax, 8
add eax, edx
movzx edx, byte [r13 + 0xa]
mov dword [rsp + 0x20], eax
shr eax, 8
lea esi, [rdx + rax]
movzx edx, byte [r13 + 9]
movzx eax, byte [r13 + 7]
mov ebx, esi
mov dword [rsp + 0x34], esi
movzx esi, byte [r13 + 4]
shr ebx, 8
add edx, ebx
movzx ebx, byte [r13 + 3]
mov dword [rsp + 0x38], edx
mov r15d, edx
movzx edx, byte [r13 + 8]
shr r15d, 8
lea r10d, [rdx + r15]
mov r11d, r10d
mov dword [rsp + 0x3c], r10d
movzx r10d, byte [r13 + 1]
shr r11d, 8
add eax, r11d
movzx r11d, byte [r13 + 2]
mov ebp, eax
movzx eax, al
shr ebp, 8
shl rax, 8
add r12d, ebp
mov ebp, r12d
movzx r12d, r12b
shr ebp, 8
mov edx, ebp
movzx ebp, byte [r13 + 5]
add ebp, edx
mov edx, ebp
movzx ebp, bpl
shr edx, 8
add esi, edx
mov edx, esi
movzx esi, sil
shr edx, 8
add ebx, edx
mov edx, ebx
movzx ebx, bl
shr edx, 8
add r11d, edx
mov edx, r11d
movzx r11d, r11b
shr edx, 8
add r10d, edx
movzx edx, byte [r13 + 0xf]
mov r15d, r10d
movzx r10d, r10b
add edx, 1
shr r15d, 8
add r15b, byte [r13]
or rax, r12
movzx edx, dl
shl rax, 8
movzx r15d, r15b
add r14, 0x10
shl rdx, 8
or rax, rbp
add rdi, 0x10
or rdx, r9
shl rax, 8
shl rdx, 8
or rax, rsi
mov rsi, qword [rsp + 0xc8]
or rdx, r8
shl rax, 8
shl rdx, 8
or rax, rbx
or rdx, rcx
movzx ecx, byte [rsp + 0x20]
shl rax, 8
shl rdx, 8
or rax, r11
or rdx, rcx
movzx ecx, byte [rsp + 0x34]
shl rax, 8
shl rdx, 8
or rax, r10
or rdx, rcx
movzx ecx, byte [rsp + 0x38]
shl rax, 8
shl rdx, 8
or rax, r15
or rdx, rcx
movzx ecx, byte [rsp + 0x3c]
mov qword [rsp + 0x20], rax
shl rdx, 8
or rdx, rcx
mov qword [rsp + 0x28], rdx
movdqu xmm0, xmmword [rsp + 0x20]
movups xmmword [r13], xmm0
mov rax, qword [r14 - 0x10]
xor rax, qword [rsi]
mov qword [rdi - 0x10], rax
mov rax, qword [r14 - 8]
xor rax, qword [rsi + 8]
mov qword [rdi - 8], rax
mov rax, qword [rsp + 0x40]
cmp r14, rax
jne 0x1400c9750
mov r12, qword [rsp + 0x48]
mov rbp, qword [rsp + 0xa8]
xor ebx, ebx
mov rsi, qword [rsp + 0xb0]
add rbp, r12
and esi, 0xf
test rsi, rsi
je 0x1400c9cbd
mov r8, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0xc8]
mov rcx, r13
call qword [rsp + 0xd8]
movzx eax, byte [r13 + 0xf]
movzx edx, byte [r13 + 0xe]
movzx ecx, byte [r13 + 0xd]
movzx r10d, byte [r13 + 4]
add eax, 1
shr eax, 8
add eax, edx
movzx edx, byte [r13 + 0xf]
mov dword [rsp + 0x20], eax
shr eax, 8
add eax, ecx
movzx ecx, byte [r13 + 0xc]
add edx, 1
mov dword [rsp + 0x34], eax
shr eax, 8
lea r14d, [rcx + rax]
movzx ecx, byte [r13 + 0xb]
mov edi, r14d
shr edi, 8
lea r15d, [rcx + rdi]
movzx ecx, byte [r13 + 0xa]
mov edi, r15d
movzx r15d, r15b
shr edi, 8
lea edi, [rcx + rdi]
movzx ecx, byte [r13 + 9]
mov dword [rsp + 0x38], edi
shr edi, 8
add ecx, edi
movzx edi, byte [r13 + 6]
mov dword [rsp + 0x3c], ecx
shr ecx, 8
mov eax, ecx
movzx ecx, byte [r13 + 8]
lea r9d, [rcx + rax]
movzx eax, byte [r13 + 7]
mov dword [rsp + 0x48], r9d
shr r9d, 8
add eax, r9d
movzx r9d, byte [r13 + 3]
mov r8d, eax
movzx eax, al
shr r8d, 8
shl rax, 8
add edi, r8d
mov r11d, edi
movzx edi, dil
shr r11d, 8
or rax, rdi
mov ecx, r11d
movzx r11d, byte [r13 + 5]
shl rax, 8
add r11d, ecx
mov r8d, r11d
movzx r11d, r11b
shr r8d, 8
add r10d, r8d
mov r8d, r10d
movzx r10d, r10b
shr r8d, 8
add r9d, r8d
mov r8d, r9d
movzx r9d, r9b
shr r8d, 8
mov ecx, r8d
movzx r8d, byte [r13 + 2]
add r8d, ecx
mov r12d, r8d
movzx r8d, r8b
shr r12d, 8
mov ecx, r12d
movzx r12d, byte [r13 + 1]
add ecx, r12d
mov r12d, ecx
shr r12d, 8
add r12b, byte [r13]
or rax, r11
shl rax, 8
or rax, r10
shl rax, 8
or rax, r9
shl rax, 8
or rax, r8
movzx r8d, cl
shl rax, 8
mov r11, rax
movzx eax, dl
movzx edx, byte [rsp + 0x20]
shl rax, 8
or r11, r8
movzx r8d, r12b
or rax, rdx
movzx edx, byte [rsp + 0x34]
mov rcx, r11
shl rax, 8
shl rcx, 8
or rax, rdx
movzx edx, r14b
or rcx, r8
shl rax, 8
mov qword [rsp + 0x20], rcx
lea ecx, [rbx + 1]
or rax, rdx
movzx edx, byte [rsp + 0x38]
shl rax, 8
or rax, r15
shl rax, 8
or rax, rdx
movzx edx, byte [rsp + 0x3c]
shl rax, 8
or rax, rdx
movzx edx, byte [rsp + 0x48]
shl rax, 8
or rax, rdx
mov qword [rsp + 0x28], rax
movdqu xmm1, xmmword [rsp + 0x20]
mov eax, ebx
movups xmmword [r13], xmm1
mov rdi, qword [rsp + 0xc8]
movzx edx, byte [rdi + rax]
mov rdi, qword [rsp + 0x40]
xor dl, byte [rdi + rax]
mov byte [rbp + rax], dl
mov rdx, rsi
sub rdx, 1
je 0x1400c9cba
mov r14, qword [rsp + 0xc8]
mov eax, ecx
movzx r8d, byte [r14 + rax]
xor r8b, byte [rdi + rax]
mov byte [rbp + rax], r8b
lea eax, [rbx + 2]
cmp rdx, 1
je 0x1400c9cba
movzx r8d, byte [rdi + rax]
xor r8b, byte [r14 + rax]
mov byte [rbp + rax], r8b
lea eax, [rbx + 3]
cmp rsi, 3
je 0x1400c9cba
movzx r8d, byte [rdi + rax]
xor r8b, byte [r14 + rax]
mov byte [rbp + rax], r8b
lea eax, [rbx + 4]
cmp rsi, 4
je 0x1400c9cba
movzx r8d, byte [rdi + rax]
xor r8b, byte [r14 + rax]
mov byte [rbp + rax], r8b
lea eax, [rbx + 5]
cmp rsi, 5
je 0x1400c9cba
movzx r8d, byte [rdi + rax]
xor r8b, byte [r14 + rax]
mov byte [rbp + rax], r8b
lea eax, [rbx + 6]
cmp rsi, 6
je 0x1400c9cba
movzx r8d, byte [rdi + rax]
xor r8b, byte [r14 + rax]
mov byte [rbp + rax], r8b
lea eax, [rbx + 7]
cmp rsi, 7
je 0x1400c9cba
movzx r8d, byte [rdi + rax]
xor r8b, byte [r14 + rax]
mov byte [rbp + rax], r8b
lea eax, [rbx + 8]
cmp rsi, 8
je 0x1400c9cba
movzx r8d, byte [rdi + rax]
xor r8b, byte [r14 + rax]
mov byte [rbp + rax], r8b
lea eax, [rbx + 9]
cmp rsi, 9
je 0x1400c9cba
movzx r8d, byte [rdi + rax]
xor r8b, byte [r14 + rax]
mov byte [rbp + rax], r8b
lea eax, [rbx + 0xa]
cmp rsi, 0xa
je 0x1400c9cba
movzx r8d, byte [rdi + rax]
xor r8b, byte [r14 + rax]
mov byte [rbp + rax], r8b
lea eax, [rbx + 0xb]
cmp rsi, 0xb
je 0x1400c9cba
movzx r8d, byte [rdi + rax]
xor r8b, byte [r14 + rax]
mov byte [rbp + rax], r8b
lea eax, [rbx + 0xc]
cmp rsi, 0xc
je 0x1400c9cba
movzx r8d, byte [rdi + rax]
xor r8b, byte [r14 + rax]
mov byte [rbp + rax], r8b
lea eax, [rbx + 0xd]
cmp rsi, 0xd
je 0x1400c9cba
movzx r8d, byte [rdi + rax]
xor r8b, byte [r14 + rax]
mov byte [rbp + rax], r8b
lea eax, [rbx + 0xe]
cmp rsi, 0xe
je 0x1400c9cba
movzx r8d, byte [rdi + rax]
xor r8b, byte [r14 + rax]
mov byte [rbp + rax], r8b
lea ebx, [rcx + rdx]
mov rax, qword [rsp + 0xd0]
mov dword [rax], ebx
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rsp + 0x40], r14
jmp 0x1400c9956