Function at 0x1400c88c0
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, 0x108
movaps xmmword [rsp + 0xf0], xmm6
mov r12, rdx
mov rax, qword [0x14030d038]
xor rax, rsp
mov qword [rsp + 0xe8], rax
cmp r8d, 0x40
jb 0x1400c901a
mov eax, r8d
and eax, 7
jne 0x1400c901a
mov r15, rcx
mov rcx, qword [rcx + 8]
mov edx, r8d
lea ebp, [r8 + 0x68]
mov eax, dword [rcx + 0x14]
cmp ebp, eax
ja 0x1400c9051
mov rbx, qword [rcx + 8]
mov ebp, dword [rbx + rdx + 4]
cmp ebp, 0xc8799269
jne 0x1400c9051
add rbx, rdx
mov ebp, dword [rbx]
cmp ebp, 0x68
jb 0x1400c9051
mov ebp, dword [rbx]
add ebp, r8d
cmp ebp, eax
ja 0x1400c9051
mov edi, dword [rbx + 8]
xor ebp, ebp
cmp edi, 0xf1645913
cmove rbp, rbx
lea r13, [rbp + 0x10]
test rbp, rbp
cmove r13, rbp
lea ebp, [r8 + 0x10]
cmp ebp, eax
ja 0x1400c9064
mov rbp, qword [rcx + 8]
mov ebx, dword [rbp + rdx + 4]
cmp ebx, 0xc8799269
jne 0x1400c9064
add rbp, rdx
mov edx, dword [rbp]
cmp edx, 0x10
jb 0x1400c9064
mov ebx, dword [rbp]
add ebx, r8d
xor edx, edx
cmp ebx, eax
ja 0x1400c89c5
test rbp, rbp
je 0x1400c89c5
mov edx, dword [rbp]
cmp rdx, 0x11
jb 0x1400c905f
add r8d, edx
cmp r8d, eax
ja 0x1400c905f
add rdx, 0xfffffffffffffff0
test r13, r13
je 0x1400c901a
cmp byte [r13 + 0x50], 0
je 0x1400c901a
cmp byte [rdx + r13 - 1], 0
jne 0x1400c901a
mov rax, qword [r13 + 0x20]
test rax, rax
je 0x1400c901a
mov rcx, qword [r13 + 0x38]
test rcx, rcx
je 0x1400c901a
cmp rcx, rax
je 0x1400c8a10
inc rax
cmp rcx, rax
jne 0x1400c901a
lea rdi, [r13 + 0x50]
lea rbx, [r13 + 0x20]
test rdi, rdi
je 0x1400c9077
mov rcx, rdi
call fcn.140132750
movaps xmm6, xmmword [0x1402ae190]
lea rbp, [rsp + 0xc0]
movaps xmmword [rbp], xmm6
mov rcx, rdi
mov rdx, rax
mov r8, rbp
call fcn.1400c2e30
mov rax, qword [rbp]
bswap rax
cmp rax, qword [rbx]
jne 0x1400c901a
lea rcx, [r13 + 0x38]
mov eax, dword [r13]
cmp eax, 4
je 0x1400c8f69
mov dword [rsp + 0x60], eax
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x78], rdi
mov eax, dword [r13 + 4]
mov dword [rsp + 0x84], eax
mov eax, dword [r13 + 8]
mov dword [rsp + 0x58], eax
mov eax, dword [r13 + 0xc]
mov dword [rsp + 0x5c], eax
mov esi, dword [r13 + 0x10]
mov eax, dword [r13 + 0x14]
xor r14d, r14d
mov ecx, dword [r13 + 0x18]
mov dword [rsp + 0x64], ecx
cmp rax, 0x40
jb 0x1400c9070
mov ecx, eax
mov ebp, 0
and ecx, 7
jne 0x1400c8b76
mov rcx, qword [r15 + 8]
lea ebp, [rax + 0x14]
mov edx, dword [rcx + 0x14]
cmp ebp, edx
ja 0x1400c9058
mov rbx, qword [rcx + 8]
mov ebp, dword [rbx + rax + 4]
cmp ebp, 0xc8799269
jne 0x1400c9058
add rbx, rax
mov ebp, dword [rbx]
cmp ebp, 0x14
jb 0x1400c9058
mov ebp, dword [rbx]
add ebp, eax
cmp ebp, edx
ja 0x1400c9058
mov edi, dword [rbx + 8]
xor ebp, ebp
cmp edi, 0xbcea225b
cmove rbp, rbx
lea r14, [rbp + 0x10]
test rbp, rbp
cmove r14, rbp
lea ebp, [rax + 0x10]
cmp ebp, edx
ja 0x1400c9070
mov rbx, qword [rcx + 8]
mov ebp, dword [rbx + rax + 4]
cmp ebp, 0xc8799269
jne 0x1400c9070
add rbx, rax
mov ebp, dword [rbx]
cmp ebp, 0x10
jb 0x1400c9070
mov edi, dword [rbx]
add edi, eax
xor ebp, ebp
cmp edi, edx
ja 0x1400c8b76
test rbx, rbx
je 0x1400c8b76
mov ebp, dword [rbx]
cmp rbp, 0x11
jb 0x1400c906b
add eax, ebp
cmp eax, edx
ja 0x1400c906b
add rbp, 0xfffffffffffffff0
mov qword [rsp + 0x90], r15
mov qword [rsp + 0x50], r12
test r14, r14
je 0x1400c8f10
cmp esi, 2
jb 0x1400c8f10
cmp esi, 0x3ffffffe
ja 0x1400c8f10
lea edi, [rsi + 1]
lea r12, [rdi*4]
cmp rbp, r12
jb 0x1400c8f10
mov qword [rsp + 0x88], rsi
mov ecx, 0x20
call fcn.140112048
mov r15, rax
mov rcx, r12
call fcn.140112048
mov qword [r15], rax
lea rsi, [rax + rdi*4]
mov qword [r15 + 0x10], rsi
test r12, r12
je 0x1400c8f9e
mov rcx, rax
xor edx, edx
mov r8, r12
call fcn.140117f60
mov qword [r15 + 8], rsi
mov qword [r15 + 0x18], 0
xor eax, eax
nop word cs:[rax + rax]
nop dword [rax + rax]
test rax, rax
je 0x1400c8c35
mov ecx, dword [r14 + rax*4]
cmp ecx, dword [r14 + rax*4 - 4]
jle 0x1400c8ffc
mov rdx, qword [r15]
mov dword [rdx + rax*4], ecx
add rax, 1
cmp rdi, rax
jne 0x1400c8c10
jmp 0x1400c8c3a
mov ecx, dword [r14]
jmp 0x1400c8c24
mov rcx, qword [r15]
mov rdx, qword [r15 + 8]
mov r8, rdx
sub r8, rcx
je 0x1400c907e
mov rax, r8
shr rax, 2
mov rbx, rcx
not rbx
add rbx, rdx
mov r9d, dword [rsp + 0x64]
jne 0x1400c8c68
xor edi, edi
jmp 0x1400c8ca8
mov rdx, r8
and rdx, 0xfffffffffffffffe
xor edi, edi
lea rbx, [0x1402d0c00]
nop dword [rax + rax]
movzx esi, al
movzx ebp, byte [rcx + rdi]
xor ebp, esi
shr eax, 8
xor eax, dword [rbx + rbp*4]
movzx ebp, al
movzx esi, byte [rcx + rdi + 1]
xor esi, ebp
shr eax, 8
xor eax, dword [rbx + rsi*4]
add rdi, 2
cmp rdx, rdi
jne 0x1400c8c80
test r8b, 1
je 0x1400c8cc4
movzx edx, al
movzx ebp, byte [rcx + rdi]
xor ebp, edx
lea rdx, [0x1402d0c00]
shr eax, 8
xor eax, dword [rdx + rbp*4]
mov dword [r15 + 0x18], eax
cmp eax, r9d
jne 0x1400c8fff
mov rcx, r15
call fcn.1400c6f10
mov r14, rax
mov rbp, qword [rsp + 0x88]
lea rsi, [rbp*8]
mov eax, dword [r13 + 0x1c]
test eax, eax
mov r15, qword [rsp + 0x90]
jne 0x1400c8e98
add r13, 0x1c
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0xd8], rax
movups xmmword [rsp + 0xc8], xmm6
mov rdx, qword [r15 + 8]
mov qword [rsp + 0xc0], rdx
mov dword [rsp + 0xc8], 0x53215531
cmp ebp, 0x1fffffff
ja 0x1400c908a
mov ebx, esi
lea ecx, [rbp*4]
mov dword [rsp + 0xcc], ebx
mov dword [rsp + 0xd0], 0
mov byte [rsp + 0xd4], 0
mov qword [rsp + 0xd8], r13
movups xmmword [rsp + 0xa8], xmm6
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xa0], rdx
mov dword [rsp + 0xa8], 0x53215531
cmp ebp, 0x1fffffff
ja 0x1400c9096
mov dword [rsp + 0xac], esi
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0xb0], ecx
mov byte [rsp + 0xb4], 0
mov qword [rsp + 0xb8], r13
test eax, eax
jne 0x1400c8e38
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r14
lea rsi, [rsp + 0x98]
mov rcx, rsi
mov rdx, qword [rsp + 0x78]
mov r8d, dword [rsp + 0x58]
mov r9d, dword [rsp + 0x5c]
call fcn.1400c73b0
mov rax, qword [rsi]
test rax, rax
mov r12, qword [rsp + 0x50]
je 0x1400c8ff5
mov ecx, dword [rsp + 0x84]
lock or dword [rax + 0x10], ecx
mov qword [r12], rax
jmp 0x1400c9022
cmp eax, 1
jne 0x1400c8f1a
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r14
lea rsi, [rsp + 0x98]
mov rcx, rsi
mov rdx, qword [rsp + 0x78]
mov r8d, dword [rsp + 0x58]
mov r9d, dword [rsp + 0x5c]
call fcn.1400c78f0
jmp 0x1400c8e13
xor edx, edx
cmp eax, 0x40
jb 0x1400c8f07
mov ecx, eax
and ecx, 7
jne 0x1400c8f07
mov rcx, qword [r15 + 8]
lea edx, [rax + 0x10]
mov r8d, dword [rcx + 0x14]
cmp edx, r8d
ja 0x1400c90c7
mov rbx, qword [rcx + 8]
mov edx, dword [rbx + rax + 4]
cmp edx, 0xc8799269
jne 0x1400c90c7
add rbx, rax
mov edx, dword [rbx]
cmp edx, 0x10
jb 0x1400c90c7
mov edi, dword [rbx]
add edi, eax
xor edx, edx
cmp edi, r8d
ja 0x1400c8f07
test rbx, rbx
je 0x1400c8f07
mov edx, dword [rbx]
cmp rdx, 0x11
jb 0x1400c90ba
add eax, edx
cmp eax, r8d
ja 0x1400c90ba
add rdx, 0xfffffffffffffff0
cmp rdx, rsi
jae 0x1400c8d00
mov r12, qword [rsp + 0x50]
jmp 0x1400c901a
cmp eax, 2
jne 0x1400c8fa6
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x20], rax
lea rsi, [rsp + 0x98]
lea r9, [rsp + 0xc0]
mov rcx, rsi
mov rdx, qword [rsp + 0x78]
mov r8, r14
call fcn.14014efd0
jmp 0x1400c8e13
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [r12], rax
mov qword [rsp + 0x20], rcx
mov rcx, r12
mov rdx, r15
mov r8, rdi
mov r9, rbx
call fcn.14014ef70
mov rax, qword [r12]
mov ecx, dword [r13 + 4]
lock or dword [rax + 0x10], ecx
jmp 0x1400c9022
mov rsi, rax
jmp 0x1400c8bf3
cmp eax, 3
jne 0x1400c90ce
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x20], rax
lea rsi, [rsp + 0x98]
lea r9, [rsp + 0xc0]
mov rcx, rsi
mov rdx, qword [rsp + 0x78]
mov r8, r14
call fcn.14014f450
jmp 0x1400c8e13
xor eax, eax
jmp 0x1400c8e2f
mov rcx, qword [r15]
test rcx, rcx
mov r12, qword [rsp + 0x50]
je 0x1400c9012
mov qword [r15 + 8], rcx
call fcn.140112038
mov rcx, r15
call fcn.140112038
mov qword [r12], 0
mov rcx, qword [rsp + 0xe8]
xor rcx, rsp
call fcn.140115e50
mov rax, r12
movaps xmm6, xmmword [rsp + 0xf0]
add rsp, 0x108
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor ebp, ebp
jmp 0x1400c895d
xor ebp, ebp
jmp 0x1400c8b15
call fcn.140150c70
xor edx, edx
jmp 0x1400c89c5
call fcn.140150c70
xor ebp, ebp
jmp 0x1400c8b76
xor eax, eax
jmp 0x1400c8a29
xor eax, eax
mov r9d, dword [rsp + 0x64]
jmp 0x1400c8cc4
int3
int3
call fcn.140150c70
mov rbp, qword [rsp + 0x88]
xor edx, edx
jmp 0x1400c8f07
xor eax, eax
mov r12, qword [rsp + 0x50]
jmp 0x1400c8e2f