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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc8
mov rsi, rdx
mov rax, qword [0x140163028]
xor rax, rsp
mov qword [rsp + 0xc0], rax
test r8, r8
je 0x14000c687
mov r12, r8
mov rdx, rcx
mov eax, dword [r8]
cmp eax, 4
je 0x14000c5e1
mov dword [rsp + 0x60], eax
mov qword [rsp + 0x50], rsi
mov eax, dword [r12 + 4]
mov dword [rsp + 0x5c], eax
mov r13d, dword [r12 + 0x10]
mov eax, dword [r12 + 0x14]
xor r15d, r15d
mov ecx, dword [r12 + 0x18]
mov dword [rsp + 0x64], ecx
mov bl, 1
cmp rax, 0x40
mov qword [rsp + 0x68], rdx
jb 0x14000c6c1
mov ecx, eax
mov esi, 0
and ecx, 7
jne 0x14000c1e1
mov rcx, qword [rdx + 8]
lea ebp, [rax + 0x14]
mov edx, dword [rcx + 0x14]
cmp ebp, edx
ja 0x14000c6b5
mov rbp, qword [rcx + 8]
mov ebx, dword [rbp + rax + 4]
cmp ebx, 0xc8799269
jne 0x14000c6b5
add rbp, rax
mov ebx, dword [rbp]
cmp ebx, 0x14
jb 0x14000c6b5
mov ebx, dword [rbp]
add ebx, eax
cmp ebx, edx
ja 0x14000c6b5
mov ebx, dword [rbp + 8]
cmp ebx, 0xbcea225b
jne 0x14000c6b5
lea r15, [rbp + 0x10]
test rbp, rbp
sete bl
cmove r15, rbp
lea ebp, [rax + 0x10]
cmp ebp, edx
ja 0x14000c6c1
mov rbp, qword [rcx + 8]
mov edi, dword [rbp + rax + 4]
cmp edi, 0xc8799269
jne 0x14000c6c1
mov edi, dword [rbp + rax]
cmp edi, 0x10
jb 0x14000c6c1
mov edi, dword [rbp + rax]
add edi, eax
cmp edi, edx
ja 0x14000c6c1
mov esi, dword [rbp + rax]
cmp rsi, 0x11
jb 0x14000c6bc
add eax, esi
cmp eax, edx
ja 0x14000c6bc
add rsi, 0xfffffffffffffff0
lea eax, [r13 - 2]
cmp eax, 0x3ffffffc
ja 0x14000c57b
test bl, bl
jne 0x14000c57b
lea r14d, [r13 + 1]
lea rbx, [r14*4]
cmp rsi, rbx
jb 0x14000c57b
mov qword [rsp + 0x70], r13
mov ecx, 0x20
call fcn.140105030
mov r13, rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov qword [rax + 0x10], 0
test r14d, r14d
je 0x14000c6c8
mov rcx, rbx
call fcn.140105030
mov qword [r13], rax
lea rdi, [rax + r14*4]
mov qword [r13 + 0x10], rdi
test rbx, rbx
je 0x14000c617
mov rcx, rax
xor edx, edx
mov r8, rbx
call fcn.14010a410
mov qword [r13 + 8], rdi
mov r8, r13
add r8, 0x18
mov qword [r13 + 0x18], 0
xor eax, eax
nop word cs:[rax + rax]
nop
test rax, rax
je 0x14000c2a6
mov ecx, dword [r15 + rax*4]
cmp ecx, dword [r15 + rax*4 - 4]
jle 0x14000c668
mov rdx, qword [r13]
mov dword [rdx + rax*4], ecx
add rax, 1
cmp r14, rax
jne 0x14000c280
jmp 0x14000c2ab
mov ecx, dword [r15]
jmp 0x14000c294
mov rcx, qword [r13]
mov rax, qword [r13 + 8]
mov r9, rax
sub r9, rcx
je 0x14000c6e0
mov rdx, r9
shr rdx, 2
mov rbp, rcx
not rbp
add rbp, rax
jne 0x14000c2d5
xor ebp, ebp
jmp 0x14000c318
mov rbx, r9
and rbx, 0xfffffffffffffffe
xor ebp, ebp
lea rax, [0x1401551e0]
nop word cs:[rax + rax]
nop
movzx edi, dl
movzx esi, byte [rcx + rbp]
xor esi, edi
shr edx, 8
xor edx, dword [rax + rsi*4]
movzx edi, dl
movzx esi, byte [rcx + rbp + 1]
xor esi, edi
shr edx, 8
xor edx, dword [rax + rsi*4]
add rbp, 2
cmp rbx, rbp
jne 0x14000c2f0
test r9b, 1
je 0x14000c334
movzx eax, dl
movzx ebp, byte [rcx + rbp]
xor ebp, eax
lea rax, [0x1401551e0]
shr edx, 8
xor edx, dword [rax + rbp*4]
mov dword [r8], edx
cmp edx, dword [rsp + 0x64]
jne 0x14000c66c
mov rcx, r13
call fcn.14000a0d0
mov r14, rax
mov eax, dword [r12 + 0x1c]
mov rbp, qword [rsp + 0x70]
test ebp, ebp
mov rbx, qword [rsp + 0x68]
je 0x14000c57b
lea rsi, [rbp*8]
test eax, eax
jne 0x14000c506
lea rax, [r12 + 0x1c]
movaps xmm0, xmmword [0x140141df0]
movaps xmmword [rsp + 0xb0], xmm0
movaps xmmword [rsp + 0xa0], xmm0
mov rdx, qword [rbx + 8]
mov qword [rsp + 0xa0], rdx
mov dword [rsp + 0xa8], 0x53215531
cmp ebp, 0x1fffffff
ja 0x14000c6e7
mov ebx, esi
lea ecx, [rbp*4]
mov dword [rsp + 0xac], ebx
mov dword [rsp + 0xb0], 0
mov byte [rsp + 0xb4], 0
mov qword [rsp + 0xb8], rax
movaps xmmword [rsp + 0x80], xmm0
movaps xmmword [rsp + 0x90], xmm0
mov qword [rsp + 0x80], rdx
mov dword [rsp + 0x88], 0x53215531
cmp ebp, 0x1fffffff
ja 0x14000c6f3
mov dword [rsp + 0x8c], esi
mov dword [rsp + 0x90], ecx
mov byte [rsp + 0x94], 0
mov qword [rsp + 0x98], rax
lea rsi, [r12 + 0x50]
mov eax, dword [rsp + 0x60]
test eax, eax
jne 0x14000c495
lea rdi, [r12 + 0x38]
add r12, 0x20
mov ecx, 0x28
call fcn.140105030
mov rbx, rax
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x38], r12
lea rax, [rsp + 0x80]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r14
mov rcx, rbx
mov rdx, rsi
call fcn.14000ea00
mov rsi, qword [rsp + 0x50]
mov eax, dword [rsp + 0x5c]
or dword [rbx + 0x10], eax
mov qword [rsi], rbx
jmp 0x14000c68e
cmp eax, 1
jne 0x14000c585
lea rdi, [r12 + 0x38]
add r12, 0x20
mov ecx, 0x40
call fcn.140105030
mov rbx, rax
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x38], r12
lea rax, [rsp + 0x80]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r14
mov rcx, rbx
mov rdx, rsi
call fcn.14000ea00
lea rax, [0x140141478]
mov qword [rbx], rax
lea rax, [rbx + 0x30]
xorps xmm0, xmm0
movups xmmword [rbx + 0x30], xmm0
mov qword [rbx + 0x28], rax
jmp 0x14000c481
xor edx, edx
cmp eax, 0x40
jb 0x14000c572
mov ecx, eax
and ecx, 7
jne 0x14000c572
mov rcx, qword [rbx + 8]
lea edx, [rax + 0x10]
mov r8d, dword [rcx + 0x14]
cmp edx, r8d
ja 0x14000c71d
mov rdx, qword [rcx + 8]
mov edi, dword [rdx + rax + 4]
cmp edi, 0xc8799269
jne 0x14000c71d
mov edi, dword [rdx + rax]
cmp edi, 0x10
jb 0x14000c71d
mov edi, dword [rdx + rax]
add edi, eax
cmp edi, r8d
ja 0x14000c71d
mov edx, dword [rdx + rax]
cmp rdx, 0x11
jb 0x14000c713
add eax, edx
cmp eax, r8d
ja 0x14000c713
add rdx, 0xfffffffffffffff0
cmp rdx, rsi
jae 0x14000c373
mov rsi, qword [rsp + 0x50]
jmp 0x14000c687
cmp eax, 2
jne 0x14000c61f
lea rax, [r12 + 0x38]
add r12, 0x20
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r12
lea rax, [rsp + 0x80]
mov qword [rsp + 0x20], rax
lea rdi, [rsp + 0x78]
lea r9, [rsp + 0xa0]
mov rcx, rdi
mov rdx, rsi
mov r8, r14
call fcn.14000c9b0
mov rbx, qword [rdi]
test rbx, rbx
mov rsi, qword [rsp + 0x50]
jne 0x14000c486
xor ebx, ebx
jmp 0x14000c48d
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsi], rax
lea rax, [r12 + 0x38]
lea r9, [r12 + 0x20]
lea r8, [r12 + 0x50]
mov qword [rsp + 0x20], rax
mov rcx, rsi
call fcn.14000c800
mov rax, qword [rsi]
mov ecx, dword [r12 + 4]
or dword [rax + 0x10], ecx
jmp 0x14000c68e
mov rdi, rax
jmp 0x14000c260
cmp eax, 3
jne 0x14000c724
lea rax, [r12 + 0x38]
add r12, 0x20
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r12
lea rax, [rsp + 0x80]
mov qword [rsp + 0x20], rax
lea rdi, [rsp + 0x78]
lea r9, [rsp + 0xa0]
mov rcx, rdi
mov rdx, rsi
mov r8, r14
call fcn.14000d040
jmp 0x14000c5c9
mov rcx, qword [r13]
test rcx, rcx
mov rsi, qword [rsp + 0x50]
je 0x14000c67f
mov qword [r13 + 8], rcx
call fcn.140105028
mov rcx, r13
call fcn.140105028
mov qword [rsi], 0
mov rcx, qword [rsp + 0xc0]
xor rcx, rsp
call fcn.140107cc0
mov rax, rsi
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor ebp, ebp
jmp 0x14000c17d
call fcn.140001c50
xor esi, esi
jmp 0x14000c1e1
mov r8, r13
add r8, 0x18
mov qword [r13 + 0x18], 0
xor ecx, ecx
xor eax, eax
jmp 0x14000c2b3
xor edx, edx
jmp 0x14000c334
int3
int3
call fcn.140001c50
mov rbx, qword [rsp + 0x68]
xor edx, edx
jmp 0x14000c572
xor ebx, ebx
mov rsi, qword [rsp + 0x50]
jmp 0x14000c48d