Function at 0x1400ee700
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, 0xe8
mov r15, rdx
mov rax, qword [0x140219028]
xor rax, rsp
mov qword [rsp + 0xe0], rax
cmp r8d, 0x40
jb 0x1400eec4f
mov eax, r8d
and eax, 7
jne 0x1400eec4f
mov rsi, rcx
mov rcx, qword [rcx + 8]
mov edx, r8d
lea ebp, [r8 + 0x68]
mov eax, dword [rcx + 0x14]
cmp ebp, eax
ja 0x1400eee34
mov rbx, qword [rcx + 8]
mov ebp, dword [rbx + rdx + 4]
cmp ebp, 0xc8799269
jne 0x1400eee34
add rbx, rdx
mov ebp, dword [rbx]
cmp ebp, 0x68
jb 0x1400eee34
mov ebp, dword [rbx]
add ebp, r8d
cmp ebp, eax
ja 0x1400eee34
mov edi, dword [rbx + 8]
xor ebp, ebp
cmp edi, 0xf1645913
cmove rbp, rbx
lea r12, [rbp + 0x10]
test rbp, rbp
cmove r12, rbp
lea ebp, [r8 + 0x10]
cmp ebp, eax
ja 0x1400eee47
mov rbp, qword [rcx + 8]
mov ebx, dword [rbp + rdx + 4]
cmp ebx, 0xc8799269
jne 0x1400eee47
add rbp, rdx
mov edx, dword [rbp]
cmp edx, 0x10
jb 0x1400eee47
mov ebx, dword [rbp]
add ebx, r8d
xor edx, edx
cmp ebx, eax
ja 0x1400ee7fd
test rbp, rbp
je 0x1400ee7fd
mov edx, dword [rbp]
cmp rdx, 0x11
jb 0x1400eee42
add r8d, edx
cmp r8d, eax
ja 0x1400eee42
add rdx, 0xfffffffffffffff0
test r12, r12
je 0x1400eec4f
cmp byte [r12 + 0x50], 0
je 0x1400eec4f
cmp byte [rdx + r12 - 1], 0
jne 0x1400eec4f
mov rax, qword [r12 + 0x20]
test rax, rax
je 0x1400eec4f
mov rcx, qword [r12 + 0x38]
test rcx, rcx
je 0x1400eec4f
cmp rcx, rax
je 0x1400ee84b
inc rax
cmp rcx, rax
jne 0x1400eec4f
mov rdi, r12
add rdi, 0x50
mov qword [rsp + 0x88], rdi
je 0x1400eee60
mov rcx, rdi
call fcn.14013dc90
lea rcx, [rsp + 0x88]
mov qword [rcx + 8], rax
call fcn.1400eeed0
cmp rax, qword [r12 + 0x20]
jne 0x1400eec4f
mov eax, dword [r12]
cmp eax, 4
je 0x1400eeda7
mov dword [rsp + 0x64], eax
mov qword [rsp + 0x68], rdi
mov eax, dword [r12 + 4]
mov dword [rsp + 0x70], eax
mov eax, dword [r12 + 8]
mov dword [rsp + 0x5c], eax
mov eax, dword [r12 + 0xc]
mov dword [rsp + 0x60], eax
mov r8d, dword [r12 + 0x10]
mov eax, dword [r12 + 0x14]
xor r14d, r14d
mov ecx, dword [r12 + 0x18]
mov dword [rsp + 0x74], ecx
cmp rax, 0x40
jb 0x1400eee59
mov ecx, eax
mov ebp, 0
and ecx, 7
jne 0x1400ee995
mov rcx, qword [rsi + 8]
lea ebp, [rax + 0x14]
mov edx, dword [rcx + 0x14]
cmp ebp, edx
ja 0x1400eee3b
mov rbx, qword [rcx + 8]
mov ebp, dword [rbx + rax + 4]
cmp ebp, 0xc8799269
jne 0x1400eee3b
add rbx, rax
mov ebp, dword [rbx]
cmp ebp, 0x14
jb 0x1400eee3b
mov ebp, dword [rbx]
add ebp, eax
cmp ebp, edx
ja 0x1400eee3b
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 0x1400eee59
mov rbx, qword [rcx + 8]
mov ebp, dword [rbx + rax + 4]
cmp ebp, 0xc8799269
jne 0x1400eee59
add rbx, rax
mov ebp, dword [rbx]
cmp ebp, 0x10
jb 0x1400eee59
mov edi, dword [rbx]
add edi, eax
xor ebp, ebp
cmp edi, edx
ja 0x1400ee995
test rbx, rbx
je 0x1400ee995
mov ebp, dword [rbx]
cmp rbp, 0x11
jb 0x1400eee4e
add eax, ebp
cmp eax, edx
ja 0x1400eee4e
add rbp, 0xfffffffffffffff0
mov qword [rsp + 0x80], rsi
mov qword [rsp + 0x50], r15
test r14, r14
je 0x1400eec4a
cmp r8d, 2
jb 0x1400eec4a
cmp r8d, 0x3ffffffe
ja 0x1400eec4a
lea r13d, [r8 + 1]
lea rsi, [r13*4]
cmp rbp, rsi
jb 0x1400eec4a
mov qword [rsp + 0x78], r8
mov ecx, 0x20
call fcn.14011d790
mov r15, rax
mov qword [rax + 8], 0
mov rcx, rsi
call fcn.14011d790
mov qword [r15], rax
lea rdi, [rax + r13*4]
mov qword [r15 + 0x10], rdi
test rsi, rsi
je 0x1400eede2
mov rcx, rax
xor edx, edx
mov r8, rsi
call fcn.140122050
mov qword [r15 + 8], rdi
mov qword [r15 + 0x18], 0
xor eax, eax
nop dword [rax + rax]
test rax, rax
je 0x1400eea54
mov ecx, dword [r14 + rax*4]
cmp ecx, dword [r14 + rax*4 - 4]
jle 0x1400eec41
mov rdx, qword [r15]
mov dword [rdx + rax*4], ecx
inc rax
cmp r13, rax
jne 0x1400eea30
jmp 0x1400eea59
mov ecx, dword [r14]
jmp 0x1400eea44
mov rdi, qword [r15]
mov rdx, qword [r15 + 8]
mov r8, rdx
sub r8, rdi
je 0x1400eee63
mov rax, r8
shr rax, 2
mov rcx, rdi
not rcx
add rcx, rdx
jne 0x1400eea82
xor esi, esi
jmp 0x1400eeac8
mov rdx, r8
and rdx, 0xfffffffffffffffe
xor esi, esi
lea rbx, [0x1401fc8d0]
nop word cs:[rax + rax]
movzx ecx, al
movzx ebp, byte [rdi + rsi]
xor ebp, ecx
shr eax, 8
xor eax, dword [rbx + rbp*4]
movzx ecx, al
movzx ebp, byte [rdi + rsi + 1]
xor ebp, ecx
shr eax, 8
xor eax, dword [rbx + rbp*4]
add rsi, 2
cmp rdx, rsi
jne 0x1400eeaa0
test r8b, 1
je 0x1400eeae4
movzx ecx, al
movzx edx, byte [rdi + rsi]
xor edx, ecx
lea rcx, [0x1401fc8d0]
shr eax, 8
xor eax, dword [rcx + rdx*4]
mov dword [r15 + 0x18], eax
cmp eax, dword [rsp + 0x74]
jne 0x1400eec41
test r15, r15
je 0x1400eec4a
mov rcx, r15
call fcn.1400eca30
mov r14, rax
mov rdi, qword [rsp + 0x78]
lea rsi, [rdi*8]
mov eax, dword [r12 + 0x1c]
test eax, eax
mov rbp, qword [rsp + 0x80]
jne 0x1400eed26
lea rax, [r12 + 0x1c]
movabs rcx, 0xaaaaaa0000000000
mov qword [rsp + 0xd0], rcx
mov rdx, qword [rbp + 8]
mov qword [rsp + 0xc0], rdx
mov dword [rsp + 0xc8], 0x53215531
cmp edi, 0x1fffffff
ja 0x1400eee86
mov ebx, esi
mov r15, qword [rsp + 0x50]
lea ecx, [rdi*4]
mov dword [rsp + 0xcc], ebx
mov qword [rsp + 0xd8], rax
movaps xmm0, xmmword [0x1401efb80]
movups xmmword [rsp + 0xa8], xmm0
mov qword [rsp + 0xa0], rdx
mov dword [rsp + 0xa8], 0x53215531
cmp edi, 0x1fffffff
ja 0x1400eee92
mov dword [rsp + 0xac], esi
mov edx, dword [rsp + 0x64]
mov dword [rsp + 0xb0], ecx
mov byte [rsp + 0xb4], 0
mov qword [rsp + 0xb8], rax
test edx, edx
jne 0x1400eec7d
lea rax, [r12 + 0x38]
add r12, 0x20
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], r12
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 + 0x68]
mov r8d, dword [rsp + 0x5c]
mov r9d, dword [rsp + 0x60]
call fcn.1400ec820
mov rax, qword [rsi]
test rax, rax
je 0x1400eee6a
mov ecx, dword [rsp + 0x70]
lock or dword [rax + 0x10], ecx
mov qword [r15], rax
jmp 0x1400eec56
test r15, r15
jne 0x1400eee71
mov r15, qword [rsp + 0x50]
mov qword [r15], 0
mov rcx, qword [rsp + 0xe0]
xor rcx, rsp
call fcn.14011fe20
mov rax, r15
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp edx, 1
jne 0x1400eecd8
lea rax, [r12 + 0x38]
add r12, 0x20
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], r12
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 + 0x68]
mov r8d, dword [rsp + 0x5c]
mov r9d, dword [rsp + 0x60]
call fcn.1400139c0
jmp 0x1400eec28
cmp edx, 2
jne 0x1400eedea
lea rax, [r12 + 0x38]
add r12, 0x20
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r12
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x20], rax
lea rsi, [rsp + 0x98]
lea r9, [rsp + 0xc0]
mov rcx, rsi
mov rdx, qword [rsp + 0x68]
mov r8, r14
call fcn.140013bb0
jmp 0x1400eec28
xor r9d, r9d
cmp eax, 0x40
jb 0x1400eed99
mov ecx, eax
and ecx, 7
jne 0x1400eed99
mov rcx, qword [rbp + 8]
lea edx, [rax + 0x10]
mov r8d, dword [rcx + 0x14]
cmp edx, r8d
ja 0x1400eeec0
mov rbx, qword [rcx + 8]
mov edx, dword [rbx + rax + 4]
cmp edx, 0xc8799269
jne 0x1400eeec0
add rbx, rax
mov edx, dword [rbx]
cmp edx, 0x10
jb 0x1400eeec0
mov edx, dword [rbx]
add edx, eax
xor r9d, r9d
cmp edx, r8d
ja 0x1400eed99
test rbx, rbx
je 0x1400eed99
mov r9d, dword [rbx]
cmp r9, 0x11
jb 0x1400eeeb6
add eax, r9d
cmp eax, r8d
ja 0x1400eeeb6
add r9, 0xfffffffffffffff0
cmp r9, rsi
jae 0x1400eeb28
jmp 0x1400eec4a
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [r15], rax
lea rax, [r12 + 0x38]
lea r9, [r12 + 0x20]
mov qword [rsp + 0x20], rax
mov rcx, r15
mov rdx, rsi
mov r8, rdi
call fcn.140013c40
mov rax, qword [r15]
mov ecx, dword [r12 + 4]
lock or dword [rax + 0x10], ecx
jmp 0x1400eec56
mov rdi, rax
jmp 0x1400eea1a
cmp edx, 3
jne 0x1400eee6a
lea rax, [r12 + 0x38]
add r12, 0x20
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r12
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x20], rax
lea rsi, [rsp + 0x98]
lea r9, [rsp + 0xc0]
mov rcx, rsi
mov rdx, qword [rsp + 0x68]
mov r8, r14
call fcn.1400140d0
jmp 0x1400eec28
xor ebp, ebp
jmp 0x1400ee795
xor ebp, ebp
jmp 0x1400ee934
call fcn.140176020
xor edx, edx
jmp 0x1400ee7fd
mov rdi, r8
call fcn.140176020
mov r8, rdi
xor ebp, ebp
jmp 0x1400ee995
int3
xor eax, eax
jmp 0x1400eeae4
xor eax, eax
jmp 0x1400eec3c
mov rcx, r15
call fcn.1401168c0
mov rcx, r15
call fcn.14011d780
jmp 0x1400eec4a
int3
int3
call fcn.140176020
mov rdi, qword [rsp + 0x78]
xor r9d, r9d
jmp 0x1400eed99