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

Disassembly:
push rbx
mov eax, ecx
mov r9, rdx
not eax
test r8, r8
je 0x14000bf3f
lea rdx, [0x14001d640]
test r9b, 3
jne 0x14000bf26
jmp 0x14000bf48
test r9b, 3
je 0x14000bf48
movzx ecx, byte [r9]
add r9, 1
xor ecx, eax
shr eax, 8
movzx ecx, cl
xor eax, dword [rdx + rcx*4]
sub r8, 1
jne 0x14000bf20
not eax
pop rbx
ret
cmp r8, 0x1f
jbe 0x14000c1ad
lea rcx, [r8 - 0x20]
and rcx, 0xffffffffffffffe0
lea r10, [r9 + rcx + 0x20]
nop
xor eax, dword [r9]
mov r11d, eax
movzx ecx, al
mov ebx, eax
movzx eax, ah
shr r11d, 0x10
shr ebx, 0x18
mov eax, eax
mov ecx, dword [rdx + rcx*4 + 0xc00]
movzx r11d, r11b
xor ecx, dword [rdx + rbx*4]
xor ecx, dword [r9 + 4]
xor ecx, dword [rdx + rax*4 + 0x800]
xor ecx, dword [rdx + r11*4 + 0x400]
mov r11d, ecx
movzx eax, cl
mov ebx, ecx
movzx ecx, ch
shr r11d, 0x10
shr ebx, 0x18
mov ecx, ecx
mov eax, dword [rdx + rax*4 + 0xc00]
movzx r11d, r11b
xor eax, dword [rdx + rbx*4]
xor eax, dword [r9 + 8]
xor eax, dword [rdx + rcx*4 + 0x800]
xor eax, dword [rdx + r11*4 + 0x400]
mov r11d, eax
movzx ecx, al
mov ebx, eax
movzx eax, ah
shr r11d, 0x10
shr ebx, 0x18
mov eax, eax
mov ecx, dword [rdx + rcx*4 + 0xc00]
movzx r11d, r11b
xor ecx, dword [rdx + rbx*4]
xor ecx, dword [r9 + 0xc]
xor ecx, dword [rdx + rax*4 + 0x800]
xor ecx, dword [rdx + r11*4 + 0x400]
mov r11d, ecx
movzx eax, cl
mov ebx, ecx
movzx ecx, ch
shr r11d, 0x10
shr ebx, 0x18
mov ecx, ecx
mov eax, dword [rdx + rax*4 + 0xc00]
movzx r11d, r11b
xor eax, dword [rdx + rbx*4]
xor eax, dword [r9 + 0x10]
xor eax, dword [rdx + rcx*4 + 0x800]
xor eax, dword [rdx + r11*4 + 0x400]
mov r11d, eax
movzx ecx, al
mov ebx, eax
movzx eax, ah
shr r11d, 0x10
shr ebx, 0x18
mov eax, eax
mov ecx, dword [rdx + rcx*4 + 0xc00]
movzx r11d, r11b
xor ecx, dword [rdx + rbx*4]
xor ecx, dword [r9 + 0x14]
xor ecx, dword [rdx + rax*4 + 0x800]
xor ecx, dword [rdx + r11*4 + 0x400]
mov r11d, ecx
movzx eax, cl
mov ebx, ecx
movzx ecx, ch
shr r11d, 0x10
mov ecx, ecx
shr ebx, 0x18
mov eax, dword [rdx + rax*4 + 0xc00]
movzx r11d, r11b
xor eax, dword [rdx + rbx*4]
xor eax, dword [r9 + 0x18]
add r9, 0x20
xor eax, dword [rdx + rcx*4 + 0x800]
xor eax, dword [rdx + r11*4 + 0x400]
mov r11d, eax
movzx ecx, al
mov ebx, eax
movzx eax, ah
shr r11d, 0x10
shr ebx, 0x18
mov eax, eax
mov ecx, dword [rdx + rcx*4 + 0xc00]
movzx r11d, r11b
xor ecx, dword [rdx + rbx*4]
xor ecx, dword [r9 - 4]
xor ecx, dword [rdx + rax*4 + 0x800]
xor ecx, dword [rdx + r11*4 + 0x400]
mov r11d, ecx
movzx eax, cl
mov ebx, ecx
movzx ecx, ch
shr r11d, 0x10
shr ebx, 0x18
mov ecx, ecx
mov eax, dword [rdx + rax*4 + 0xc00]
movzx r11d, r11b
xor eax, dword [rdx + rbx*4]
xor eax, dword [rdx + rcx*4 + 0x800]
xor eax, dword [rdx + r11*4 + 0x400]
cmp r9, r10
jne 0x14000bf60
mov rbx, r8
and ebx, 0x1f
and r8d, 0x1c
je 0x14000c1a8
lea rcx, [rbx - 4]
shr rcx, 2
lea r9, [r10 + rcx*4 + 4]
nop dword [rax]
xor eax, dword [r10]
add r10, 4
mov r8d, eax
movzx ecx, al
mov r11d, eax
movzx eax, ah
shr r8d, 0x10
mov eax, eax
shr r11d, 0x18
mov ecx, dword [rdx + rcx*4 + 0xc00]
movzx r8d, r8b
xor ecx, dword [rdx + r11*4]
xor ecx, dword [rdx + rax*4 + 0x800]
mov eax, dword [rdx + r8*4 + 0x400]
xor eax, ecx
cmp r10, r9
jne 0x14000c138
and ebx, 3
mov r8, rbx
test r8, r8
je 0x14000bf3f
add r8, r9
movzx ecx, byte [r9]
add r9, 1
xor ecx, eax
shr eax, 8
movzx ecx, cl
xor eax, dword [rdx + rcx*4]
cmp r9, r8
jne 0x14000c18c
not eax
pop rbx
ret
mov r8, rbx
jmp 0x14000c180
mov r10, r9
mov rbx, r8
cmp r8, 3
ja 0x14000c124
jmp 0x14000c189
test rdx, rdx
je 0x14000c3a0
mov r8d, r8d
jmp 0x14000bf00
xor eax, eax
ret