Function at 0x1400c6390
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 r12, rdx
mov rax, qword [0x14030d038]
xor rax, rsp
mov qword [rsp + 0xc0], rax
mov rdi, qword [rcx + 8]
mov al, byte [rdi + 0x29]
test al, 1
jne 0x1400c6c2e
mov rax, qword [rdi + 8]
mov eax, dword [rax + 0x24]
test al, 1
jne 0x1400c6c2e
mov rsi, r9
mov r14d, r8d
mov qword [rsp + 0x50], rcx
movzx eax, byte [r9 + 0x17]
test al, al
jns 0x1400c63ee
mov rax, qword [rsi + 8]
add rax, 0x51
cmp rax, 0x58
mov ebp, 0x58
cmova rbp, rax
mov rcx, rdi
mov rdx, rbp
mov r8d, 0xf1645913
call fcn.1400c6d40
xor r13d, r13d
mov r15b, 1
cmp eax, 0x40
jb 0x1400c64dd
mov ecx, eax
and ecx, 7
jne 0x1400c64dd
mov eax, eax
lea edx, [rax + rbp]
add edx, 0x10
mov ecx, dword [rdi + 0x14]
cmp edx, ecx
ja 0x1400c6c03
mov rdi, qword [rdi + 8]
mov edx, dword [rdi + rax + 4]
cmp edx, 0xc8799269
jne 0x1400c6c03
add ebp, 0x10
add rdi, rax
mov edx, dword [rdi]
cmp edx, ebp
jb 0x1400c6c03
add eax, dword [rdi]
cmp eax, ecx
ja 0x1400c6c03
mov eax, dword [rdi + 8]
xor r13d, r13d
cmp eax, 0xf1645913
cmovne rdi, r13
test rdi, rdi
je 0x1400c64dd
mov rbx, rdi
add rbx, 0x10
je 0x1400c64dd
mov ebp, dword [rsp + 0x148]
xorps xmm0, xmm0
movups xmmword [rbx + 0x40], xmm0
movups xmmword [rbx + 0x30], xmm0
movups xmmword [rbx + 0x20], xmm0
movups xmmword [rbx + 0x10], xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x50], 0
lea rcx, [rdi + 0x60]
movzx r8d, byte [rsi + 0x17]
test r8b, r8b
jns 0x1400c64c2
mov r8, qword [rsi + 8]
mov rsi, qword [rsi]
inc r8
mov rdx, rsi
call fcn.1401178b0
mov dword [rdi + 0x10], r14d
or ebp, 0x40
mov dword [rdi + 0x14], ebp
xor r15d, r15d
mov r13, rbx
cmp r14d, 4
je 0x1400c6555
mov rdi, qword [rsp + 0x140]
mov rsi, qword [rdi + 8]
sub rsi, qword [rdi]
mov rbp, rsi
sar rbp, 2
dec rbp
mov rax, rbp
shr rax, 0x3d
jne 0x1400c6c36
movabs rax, 0x1fffffffffffffff
and rax, rbp
je 0x1400c6c36
mov eax, dword [rdi + 0x1c]
test eax, eax
je 0x1400c6965
test r15b, r15b
jne 0x1400c6c36
mov ecx, dword [rsp + 0x138]
mov edx, dword [rsp + 0x130]
mov dword [r13 + 8], edx
mov dword [r13 + 0xc], ecx
mov dword [r13 + 0x10], ebp
mov dword [r13 + 0x14], eax
mov eax, dword [rdi + 0x18]
mov dword [r13 + 0x18], eax
test r13, r13
je 0x1400c6c36
mov rsi, qword [rsp + 0x150]
movabs rcx, 0xaaaaaaaaaaaaaaaa
mov qword [r12], rcx
mov eax, dword [r13]
cmp eax, 4
je 0x1400c6b03
mov dword [rsp + 0x70], eax
mov qword [rsp + 0x60], r12
mov eax, dword [r13 + 4]
mov dword [rsp + 0x6c], eax
mov eax, dword [r13 + 8]
mov dword [rsp + 0x58], eax
mov eax, dword [r13 + 0xc]
mov dword [rsp + 0x5c], eax
mov r14d, dword [r13 + 0x10]
mov eax, dword [r13 + 0x14]
xor r12d, r12d
mov ecx, dword [r13 + 0x18]
mov dword [rsp + 0x74], ecx
cmp rax, 0x40
mov rdx, qword [rsp + 0x50]
jb 0x1400c6c45
mov ecx, eax
mov ebp, 0
and ecx, 7
jne 0x1400c6684
mov rcx, qword [rdx + 8]
lea ebp, [rax + 0x14]
mov edx, dword [rcx + 0x14]
cmp ebp, edx
ja 0x1400c6c27
mov rbx, qword [rcx + 8]
mov ebp, dword [rbx + rax + 4]
cmp ebp, 0xc8799269
jne 0x1400c6c27
add rbx, rax
mov ebp, dword [rbx]
cmp ebp, 0x14
jb 0x1400c6c27
mov ebp, dword [rbx]
add ebp, eax
cmp ebp, edx
ja 0x1400c6c27
mov edi, dword [rbx + 8]
xor ebp, ebp
cmp edi, 0xbcea225b
cmove rbp, rbx
lea r12, [rbp + 0x10]
test rbp, rbp
cmove r12, rbp
lea ebp, [rax + 0x10]
cmp ebp, edx
ja 0x1400c6c45
mov rbx, qword [rcx + 8]
mov ebp, dword [rbx + rax + 4]
cmp ebp, 0xc8799269
jne 0x1400c6c45
add rbx, rax
mov ebp, dword [rbx]
cmp ebp, 0x10
jb 0x1400c6c45
mov edi, dword [rbx]
add edi, eax
xor ebp, ebp
cmp edi, edx
ja 0x1400c6684
test rbx, rbx
je 0x1400c6684
mov ebp, dword [rbx]
cmp rbp, 0x11
jb 0x1400c6c40
add eax, ebp
cmp eax, edx
ja 0x1400c6c40
add rbp, 0xfffffffffffffff0
test r12, r12
je 0x1400c6c0b
cmp r14d, 2
jb 0x1400c6c0b
cmp r14d, 0x3ffffffe
ja 0x1400c6c0b
lea edi, [r14 + 1]
lea rsi, [rdi*4]
cmp rbp, rsi
jb 0x1400c6c0b
mov ecx, 0x20
call fcn.140112048
mov r15, rax
mov rcx, rsi
call fcn.140112048
mov qword [r15], rax
lea rbx, [rax + rdi*4]
mov qword [r15 + 0x10], rbx
test rsi, rsi
je 0x1400c6b39
mov rcx, rax
xor edx, edx
mov r8, rsi
call fcn.140117f60
mov qword [r15 + 8], rbx
mov qword [r15 + 0x18], 0
xor eax, eax
nop dword [rax]
test rax, rax
je 0x1400c6725
mov ecx, dword [r12 + rax*4]
cmp ecx, dword [r12 + rax*4 - 4]
jle 0x1400c6b8d
mov rdx, qword [r15]
mov dword [rdx + rax*4], ecx
add rax, 1
cmp rdi, rax
jne 0x1400c6700
jmp 0x1400c672b
mov ecx, dword [r12]
jmp 0x1400c6714
mov rcx, qword [r15]
mov rdx, qword [r15 + 8]
mov r8, rdx
sub r8, rcx
je 0x1400c6c4c
mov rax, r8
shr rax, 2
mov rdi, rcx
not rdi
add rdi, rdx
mov r12, qword [rsp + 0x60]
jne 0x1400c6759
xor edi, edi
jmp 0x1400c6798
mov rdx, r8
and rdx, 0xfffffffffffffffe
xor edi, edi
lea rsi, [0x1402d0c00]
nop dword [rax]
movzx ebx, al
movzx ebp, byte [rcx + rdi]
xor ebp, ebx
shr eax, 8
xor eax, dword [rsi + rbp*4]
movzx ebp, al
movzx ebx, byte [rcx + rdi + 1]
xor ebx, ebp
shr eax, 8
xor eax, dword [rsi + rbx*4]
add rdi, 2
cmp rdx, rdi
jne 0x1400c6770
test r8b, 1
je 0x1400c67b4
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, dword [rsp + 0x74]
jne 0x1400c6b95
mov rcx, r15
call fcn.1400c6f10
mov r15, rax
lea rsi, [r14*8]
mov eax, dword [r13 + 0x1c]
test eax, eax
mov rbp, qword [rsp + 0x50]
jne 0x1400c6a35
lea rax, [r13 + 0x1c]
movabs rcx, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0xb0], rcx
mov rdx, qword [rbp + 8]
mov qword [rsp + 0xa0], rdx
mov dword [rsp + 0xa8], 0x53215531
cmp r14d, 0x1fffffff
ja 0x1400c6c58
mov ebx, esi
lea ecx, [r14*4]
mov dword [rsp + 0xac], ebx
mov dword [rsp + 0xb0], 0
mov byte [rsp + 0xb4], 0
mov qword [rsp + 0xb8], rax
movaps xmm0, xmmword [0x1402ae190]
movups xmmword [rsp + 0x88], xmm0
mov qword [rsp + 0x80], rdx
mov dword [rsp + 0x88], 0x53215531
cmp r14d, 0x1fffffff
ja 0x1400c6c64
mov dword [rsp + 0x8c], esi
mov dword [rsp + 0x90], ecx
mov byte [rsp + 0x94], 0
mov qword [rsp + 0x98], rax
lea rdx, [r13 + 0x50]
mov eax, dword [rsp + 0x70]
test eax, eax
jne 0x1400c6912
lea rax, [r13 + 0x38]
lea rcx, [r13 + 0x20]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rcx
lea rax, [rsp + 0x80]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r15
lea rsi, [rsp + 0x78]
mov rcx, rsi
mov r8d, dword [rsp + 0x58]
mov r9d, dword [rsp + 0x5c]
call fcn.1400c73b0
mov rax, qword [rsi]
test rax, rax
mov rsi, qword [rsp + 0x150]
je 0x1400c6b86
mov ecx, dword [rsp + 0x6c]
lock or dword [rax + 0x10], ecx
mov qword [r12], rax
jmp 0x1400c6bc0
cmp eax, 1
jne 0x1400c6ac2
lea rax, [r13 + 0x38]
lea rcx, [r13 + 0x20]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rcx
lea rax, [rsp + 0x80]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r15
lea rsi, [rsp + 0x78]
mov rcx, rsi
mov r8d, dword [rsp + 0x58]
mov r9d, dword [rsp + 0x5c]
call fcn.1400c78f0
jmp 0x1400c68ed
mov rax, qword [rsp + 0x50]
mov rcx, qword [rax + 8]
mov rdx, rsi
mov r8d, 0xbcea225b
call fcn.1400c6d40
test eax, eax
je 0x1400c6c36
xor ecx, ecx
cmp eax, 0x40
jb 0x1400c69f0
mov edx, eax
and edx, 7
jne 0x1400c69f0
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rcx + 8]
add esi, 0x10
and esi, 0xfffffffc
lea ebx, [rax + rsi]
mov r8d, dword [rdx + 0x14]
cmp ebx, r8d
ja 0x1400c6c85
mov ebx, eax
mov rdx, qword [rdx + 8]
mov ecx, dword [rdx + rbx + 4]
cmp ecx, 0xc8799269
jne 0x1400c6c85
add rdx, rbx
mov ecx, dword [rdx]
cmp ecx, esi
jb 0x1400c6c85
mov ecx, dword [rdx]
add ecx, eax
cmp ecx, r8d
ja 0x1400c6c85
mov ebx, dword [rdx + 8]
xor ecx, ecx
cmp ebx, 0xbcea225b
cmove rcx, rdx
lea rdx, [rcx + 0x10]
test rcx, rcx
cmove rdx, rcx
test rdx, rdx
je 0x1400c6c36
mov rcx, qword [rdi]
cmp qword [rdi + 8], rcx
je 0x1400c6a2d
xor ebx, ebx
nop
mov ecx, dword [rcx + rbx*4]
mov dword [rdx + rbx*4], ecx
add rbx, 1
mov rcx, qword [rdi]
mov rsi, qword [rdi + 8]
sub rsi, rcx
sar rsi, 2
cmp rbx, rsi
jb 0x1400c6a10
mov dword [rdi + 0x1c], eax
jmp 0x1400c6527
xor edx, edx
cmp eax, 0x40
jb 0x1400c6aa4
mov ecx, eax
and ecx, 7
jne 0x1400c6aa4
mov rcx, qword [rbp + 8]
lea edx, [rax + 0x10]
mov r8d, dword [rcx + 0x14]
cmp edx, r8d
ja 0x1400c6c91
mov rdi, qword [rcx + 8]
mov edx, dword [rdi + rax + 4]
cmp edx, 0xc8799269
jne 0x1400c6c91
add rdi, rax
mov edx, dword [rdi]
cmp edx, 0x10
jb 0x1400c6c91
mov ebx, dword [rdi]
add ebx, eax
xor edx, edx
cmp ebx, r8d
ja 0x1400c6aa4
test rdi, rdi
je 0x1400c6aa4
mov edx, dword [rdi]
cmp rdx, 0x11
jb 0x1400c6c8c
add eax, edx
cmp eax, r8d
ja 0x1400c6c8c
add rdx, 0xfffffffffffffff0
cmp rdx, rsi
jae 0x1400c67e6
mov qword [r12], 0
mov rsi, qword [rsp + 0x150]
jmp 0x1400c6bc0
cmp eax, 2
jne 0x1400c6b41
lea rax, [r13 + 0x38]
lea rcx, [r13 + 0x20]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rcx
lea rax, [rsp + 0x80]
mov qword [rsp + 0x20], rax
lea rsi, [rsp + 0x78]
lea r9, [rsp + 0xa0]
mov rcx, rsi
mov r8, r15
call fcn.14014efd0
jmp 0x1400c68ed
mov qword [r12], rcx
lea rax, [r13 + 0x38]
lea r9, [r13 + 0x20]
lea r8, [r13 + 0x50]
mov qword [rsp + 0x20], rax
mov rcx, r12
mov rbp, qword [rsp + 0x50]
mov rdx, rbp
call fcn.14014ef70
mov rax, qword [r12]
mov ecx, dword [r13 + 4]
lock or dword [rax + 0x10], ecx
jmp 0x1400c6bc0
mov rbx, rax
jmp 0x1400c66ef
cmp eax, 3
jne 0x1400c6c98
lea rax, [r13 + 0x38]
lea rcx, [r13 + 0x20]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rcx
lea rax, [rsp + 0x80]
mov qword [rsp + 0x20], rax
lea rsi, [rsp + 0x78]
lea r9, [rsp + 0xa0]
mov rcx, rsi
mov r8, r15
call fcn.14014f450
jmp 0x1400c68ed
xor eax, eax
jmp 0x1400c6909
mov rcx, qword [r15]
mov r12, qword [rsp + 0x60]
test rcx, rcx
mov rsi, qword [rsp + 0x150]
je 0x1400c6bab
mov qword [r15 + 8], rcx
call fcn.140112038
mov rcx, r15
call fcn.140112038
mov qword [r12], 0
mov rbp, qword [rsp + 0x50]
mov rcx, qword [rbp + 8]
mov rdx, r13
mov r8d, 0xf1645913
call fcn.1400c6cb0
test rsi, rsi
je 0x1400c6bd9
mov dword [rsi], eax
mov dword [rbp + 0x48], eax
mov rcx, qword [rsp + 0xc0]
xor rcx, rsp
call fcn.140115e50
mov rax, r12
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor r13d, r13d
jmp 0x1400c64dd
mov r12, qword [rsp + 0x60]
mov qword [r12], 0
mov rbp, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x150]
jmp 0x1400c6bc0
xor ebp, ebp
jmp 0x1400c6623
mov rcx, rdi
call fcn.140150c70
mov qword [r12], 0
jmp 0x1400c6bdc
call fcn.140150c70
xor ebp, ebp
jmp 0x1400c6684
xor eax, eax
mov r12, qword [rsp + 0x60]
jmp 0x1400c67b4
int3
int3
xor ecx, ecx
jmp 0x1400c69f0
call fcn.140150c70
xor edx, edx
jmp 0x1400c6aa4
xor eax, eax
mov rsi, qword [rsp + 0x150]
jmp 0x1400c6909