Function at 0x1400cc260
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
sub rsp, 0x308
cmp dword [0x14030f318], 0
jne 0x1400cc52b
mov qword [rax + 8], rbx
xor r8d, r8d
mov qword [rax + 0x10], rsi
mov edx, 1
mov qword [rax - 8], rdi
nop dword [rax + rax]
lea eax, [r8 + 0xff]
mov byte [rsp + r8 + 0x100], dl
mov byte [rsp + rax + 0x100], dl
mov eax, edx
mov byte [rsp + rax], r8b
mov eax, edx
and al, 0x80
inc r8d
neg al
lea eax, [rdx + rdx]
sbb ecx, ecx
and ecx, 0x11b
xor ecx, eax
xor edx, ecx
cmp edx, 1
jne 0x1400cc290
mov eax, edx
mov r8d, 0xa
lea rdx, [0x14030b180]
mov dword [rdx], eax
test eax, eax
je 0x1400cc2ec
movzx ecx, byte [rsp + rax]
movzx eax, byte [rsp + rcx + 0x119]
jmp 0x1400cc2ee
xor eax, eax
add rdx, 4
sub r8, 1
jne 0x1400cc2d8
xor ebx, ebx
lea rsi, [0x140000000]
xor edi, edi
test bl, bl
je 0x1400cc31e
movzx eax, bl
movzx ecx, byte [rsp + rax]
lea rax, [rsp + 0x1ff]
sub rax, rcx
movzx ecx, byte [rax]
jmp 0x1400cc320
xor cl, cl
movzx eax, cl
lea ecx, [rax + rax]
xor ecx, eax
add ecx, ecx
xor ecx, eax
add ecx, ecx
xor ecx, eax
add ecx, ecx
xor ecx, eax
mov edx, ecx
shr edx, 8
xor dl, cl
xor dl, 0x63
je 0x1400cc35a
movzx eax, dl
movzx ecx, byte [rsp + rax]
movzx eax, byte [rsp + rcx + 0x101]
movzx r8d, byte [rsp + rcx + 0x119]
jmp 0x1400cc35f
xor eax, eax
xor r8d, r8d
shl eax, 8
movzx edx, dl
or eax, edx
mov dword [rdi + rsi + 0x308180], edx
shl eax, 8
or eax, edx
shl eax, 8
or eax, r8d
mov ecx, eax
mov dword [rdi + rsi + 0x309180], eax
ror ecx, 0x18
mov dword [rdi + rsi + 0x309580], ecx
mov ecx, eax
ror eax, 8
mov dword [rdi + rsi + 0x309d80], eax
mov eax, edx
ror eax, 0x18
ror ecx, 0x10
mov dword [rdi + rsi + 0x308580], eax
mov eax, edx
mov dword [rdi + rsi + 0x309980], ecx
shl eax, 8
bswap eax
mov dword [rdi + rsi + 0x308980], eax
movzx eax, bl
bswap edx
mov dword [rdi + rsi + 0x308d80], edx
lea ecx, [rax*8]
xor ecx, eax
shl ecx, 2
xor ecx, eax
lea edx, [rcx + rcx]
mov ecx, edx
shr ecx, 8
movzx eax, cl
xor al, dl
cmp al, 5
je 0x1400cc43a
movzx eax, dl
xor rcx, rax
xor rcx, 5
movzx eax, byte [rsp + rcx]
lea rcx, [rsp + 0x1ff]
sub rcx, rax
movzx r9d, byte [rcx]
test r9b, r9b
je 0x1400cc43d
movzx eax, byte [rsp + r9]
mov r10d, r9d
movzx ecx, byte [rsp + rax + 0x1ee]
movzx edx, byte [rsp + rax + 0x1c7]
movzx r8d, byte [rsp + rax + 0x1df]
movzx eax, byte [rsp + r9]
movzx r11d, byte [rsp + rax + 0x168]
jmp 0x1400cc44a
xor r9b, r9b
xor r10d, r10d
xor ecx, ecx
xor edx, edx
xor r8d, r8d
xor r11d, r11d
shl r11d, 8
inc ebx
or r11d, ecx
shl r11d, 8
or r11d, edx
shl r11d, 8
or r11d, r8d
mov r8d, r11d
mov dword [rdi + rsi + 0x307180], r11d
shr r8d, 0x18
mov eax, r11d
shl eax, 8
mov edx, r11d
or r8d, eax
shr edx, 0x10
mov eax, r11d
mov dword [rdi + rsi + 0x307580], r8d
shl eax, 0x10
mov ecx, r11d
or edx, eax
shl ecx, 0x18
mov eax, r11d
mov dword [rdi + rsi + 0x307980], edx
shr eax, 8
or ecx, eax
mov dword [rsi + r10*4 + 0x30a180], r11d
mov dword [rdi + rsi + 0x307d80], ecx
mov dword [rsi + r10*4 + 0x30ad80], ecx
movzx ecx, r9b
mov eax, ecx
mov dword [rdi + rsi + 0x306180], ecx
ror eax, 0x18
mov dword [rdi + rsi + 0x306580], eax
mov eax, ecx
shl eax, 8
bswap eax
bswap ecx
mov dword [rdi + rsi + 0x306980], eax
mov dword [rdi + rsi + 0x306d80], ecx
add rdi, 4
mov dword [rsi + r10*4 + 0x30a580], r8d
mov dword [rsi + r10*4 + 0x30a980], edx
cmp ebx, 0x100
jb 0x1400cc303
mov rdi, qword [rsp + 0x300]
mov rsi, qword [rsp + 0x318]
mov rbx, qword [rsp + 0x310]
mov dword [0x14030f318], 1
xor eax, eax
add rsp, 0x308
ret