Function at 0x14000c550
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x28
mov qword [rsp + 0x80], r8
mov r10, rdx
test rdx, rdx
je 0x14000c541
cmp qword [rsp + 0x80], 0x2e
not ecx
mov r8d, ecx
jbe 0x14000c3de
mov rax, qword [rsp + 0x80]
lea rsi, [0x14001f6a0]
nop word [rax + rax]
test r10b, 7
je 0x14000c4f4
add r10, 1
mov edx, r8d
xor r8b, byte [r10 - 1]
shr edx, 8
movzx r8d, r8b
xor edx, dword [rsi + r8*4]
mov r8d, edx
sub rax, 1
jne 0x14000c1a0
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x10], 0xffffffffffffffff
mov rax, qword [rsp + 0x10]
mov qword [rsp], r10
xor r11d, r11d
xor r15d, r15d
mov qword [rsp + 0x78], r10
xor ebp, ebp
xor r12d, r12d
lea rdx, [0x14001d6a0]
mov qword [rsp + 8], rax
mov qword [rsp + 0x18], rsi
nop dword [rax]
mov rax, qword [rsp]
mov edi, r8d
mov esi, r12d
mov ebx, ebp
mov r10d, r15d
mov r14d, r11d
mov r9d, 1
xor rdi, qword [rax]
xor rsi, qword [rax + 8]
add rax, 0x28
xor rbx, qword [rax - 0x18]
xor r10, qword [rax - 0x10]
mov r13, rdi
xor r14, qword [rax - 8]
mov qword [rsp], rax
movzx eax, dil
mov r8d, dword [rdx + rax*4]
movzx eax, sil
mov r12d, dword [rdx + rax*4]
movzx eax, bl
mov ebp, dword [rdx + rax*4]
movzx eax, r10b
mov r15d, dword [rdx + rax*4]
movzx eax, r14b
mov r11d, dword [rdx + rax*4]
nop dword [rax]
lea ecx, [r9*8]
mov rdi, r13
movsxd rax, r9d
add r9d, 1
shr rdi, cl
shl rax, 8
movzx edi, dil
add rdi, rax
xor r8d, dword [rdx + rdi*4]
mov rdi, rsi
shr rdi, cl
movzx edi, dil
add rdi, rax
xor r12d, dword [rdx + rdi*4]
mov rdi, rbx
shr rdi, cl
movzx edi, dil
add rdi, rax
xor ebp, dword [rdx + rdi*4]
mov rdi, r10
shr rdi, cl
movzx edi, dil
add rdi, rax
xor r15d, dword [rdx + rdi*4]
mov rdi, r14
shr rdi, cl
movzx ecx, dil
add rax, rcx
xor r11d, dword [rdx + rax*4]
cmp r9d, 8
jne 0x14000c268
sub qword [rsp + 8], 1
jne 0x14000c208
mov rax, qword [rsp + 0x10]
mov r10, qword [rsp + 0x78]
mov edx, ebp
mov rsi, qword [rsp + 0x18]
lea rax, [rax + rax*4]
lea r10, [r10 + rax*8]
mov eax, r12d
mov qword [rsp + 0x10], rax
xor r8, qword [r10]
mov eax, 8
nop word [rax + rax]
mov rcx, r8
movzx r8d, r8b
mov r8d, dword [rsi + r8*4]
shr rcx, 8
xor r8, rcx
sub eax, 1
jne 0x14000c310
mov rax, qword [rsp + 0x10]
mov r8d, r8d
xor rax, qword [r10 + 8]
mov ecx, 8
xor rax, r8
nop dword [rax + rax]
mov r8, rax
movzx eax, al
mov eax, dword [rsi + rax*4]
shr r8, 8
xor rax, r8
sub ecx, 1
jne 0x14000c340
xor rdx, qword [r10 + 0x10]
mov eax, eax
xor rax, rdx
mov edx, 8
nop dword [rax + rax]
mov rcx, rax
movzx eax, al
mov eax, dword [rsi + rax*4]
shr rcx, 8
xor rax, rcx
sub edx, 1
jne 0x14000c368
mov eax, eax
xor r15, qword [r10 + 0x18]
xor r15, rax
mov eax, 8
nop dword [rax + rax]
mov rdx, r15
movzx r15d, r15b
mov r15d, dword [rsi + r15*4]
shr rdx, 8
xor r15, rdx
sub eax, 1
jne 0x14000c390
xor r11, qword [r10 + 0x20]
mov r15d, r15d
mov eax, 8
xor r15, r11
nop word cs:[rax + rax]
mov rdx, r15
movzx r15d, r15b
mov r15d, dword [rsi + r15*4]
shr rdx, 8
xor r15, rdx
sub eax, 1
jne 0x14000c3c0
mov r8d, r15d
add r10, 0x28
cmp qword [rsp + 0x80], 7
jbe 0x14000c4a3
mov rax, qword [rsp + 0x80]
lea rsi, [0x14001f6a0]
sub rax, 8
shr rax, 3
lea r9, [r10 + rax*8 + 8]
nop dword [rax]
mov eax, r8d
xor r8b, byte [r10]
add r10, 8
movzx r8d, r8b
shr eax, 8
xor eax, dword [rsi + r8*4]
mov edx, eax
xor al, byte [r10 - 7]
movzx eax, al
shr edx, 8
xor edx, dword [rsi + rax*4]
mov eax, edx
xor dl, byte [r10 - 6]
movzx edx, dl
shr eax, 8
xor eax, dword [rsi + rdx*4]
mov edx, eax
xor al, byte [r10 - 5]
movzx eax, al
shr edx, 8
xor edx, dword [rsi + rax*4]
mov eax, edx
xor dl, byte [r10 - 4]
movzx edx, dl
shr eax, 8
xor eax, dword [rsi + rdx*4]
mov edx, eax
xor al, byte [r10 - 3]
movzx eax, al
shr edx, 8
xor edx, dword [rsi + rax*4]
mov eax, edx
xor dl, byte [r10 - 2]
movzx edx, dl
shr eax, 8
xor eax, dword [rsi + rdx*4]
mov r8d, eax
xor al, byte [r10 - 1]
movzx eax, al
shr r8d, 8
xor r8d, dword [rsi + rax*4]
cmp r10, r9
jne 0x14000c410
and qword [rsp + 0x80], 7
cmp qword [rsp + 0x80], 0
je 0x14000c4de
mov rdx, qword [rsp + 0x80]
lea rsi, [0x14001f6a0]
add rdx, r10
add r10, 1
mov eax, r8d
xor r8b, byte [r10 - 1]
shr eax, 8
movzx r8d, r8b
xor eax, dword [rsi + r8*4]
mov r8d, eax
cmp r10, rdx
jne 0x14000c4c0
mov eax, r8d
not eax
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
movabs rdx, 0xcccccccccccccccd
mov qword [rsp + 0x80], rax
mov rax, rdx
mul qword [rsp + 0x80]
shr rdx, 5
lea rax, [rdx + rdx*4]
shl rax, 3
sub qword [rsp + 0x80], rax
sub rdx, 1
mov qword [rsp + 0x10], rdx
jne 0x14000c1da
xor r11d, r11d
xor r15d, r15d
xor edx, edx
jmp 0x14000c302
xor eax, eax
jmp 0x14000c4e3
mov r8d, r8d
jmp 0x14000c150