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

Disassembly:
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
mov dword [rsp + 8], ecx
sub rsp, 0x28
mov rdx, qword [rsp + 0x38]
mov r8d, dword [rsp + 0x40]
test rdx, rdx
jne 0x14010e9d8
xor eax, eax
add rsp, 0x28
ret
mov ecx, dword [rsp + 0x30]
add rsp, 0x28
jmp 0x14010e9f0
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov dword [rsp + 8], ecx
push rdi
mov r11, qword [rsp + 0x20]
lea rdi, [0x14019f1e0]
mov eax, dword [rsp + 0x10]
mov r10, qword [rsp + 0x18]
not eax
test r11, r11
je 0x14010ea45
nop dword [rax + rax]
test r10b, 3
je 0x14010ea45
movzx edx, byte [r10]
mov ecx, eax
xor rdx, rcx
inc r10
shr ecx, 8
movzx r8d, dl
mov eax, dword [rdi + r8*4]
xor eax, ecx
sub r11, 1
jne 0x14010ea20
cmp r11, 0x20
jb 0x14010ec88
mov qword [rsp + 0x28], rbx
mov rbx, r11
shr rbx, 5
imul rcx, rbx, 0xffffffffffffffe0
add r11, rcx
nop dword [rax]
nop word [rax + rax]
xor eax, dword [r10]
mov r9d, eax
shr rax, 0x10
movzx edx, al
mov eax, r9d
shr rax, 8
movzx ecx, al
mov eax, r9d
shr rax, 0x18
mov r8d, dword [rdi + rdx*4 + 0x400]
xor r8d, dword [rdi + rcx*4 + 0x800]
xor r8d, dword [rdi + rax*4]
movzx eax, r9b
xor r8d, dword [rdi + rax*4 + 0xc00]
xor r8d, dword [r10 + 4]
mov r9d, r8d
mov eax, r8d
shr rax, 0x10
movzx edx, al
mov eax, r8d
shr rax, 8
movzx ecx, al
mov eax, r9d
mov r8d, dword [rdi + rdx*4 + 0x400]
shr rax, 0x18
xor r8d, dword [rdi + rcx*4 + 0x800]
xor r8d, dword [rdi + rax*4]
movzx eax, r9b
xor r8d, dword [rdi + rax*4 + 0xc00]
xor r8d, dword [r10 + 8]
mov r9d, r8d
mov eax, r8d
shr rax, 0x10
movzx edx, al
mov eax, r8d
shr rax, 8
movzx ecx, al
mov eax, r9d
mov r8d, dword [rdi + rdx*4 + 0x400]
shr rax, 0x18
xor r8d, dword [rdi + rcx*4 + 0x800]
xor r8d, dword [rdi + rax*4]
movzx eax, r9b
xor r8d, dword [rdi + rax*4 + 0xc00]
xor r8d, dword [r10 + 0xc]
mov r9d, r8d
mov eax, r8d
shr rax, 0x10
movzx edx, al
mov eax, r8d
shr rax, 8
movzx ecx, al
mov eax, r9d
mov r8d, dword [rdi + rdx*4 + 0x400]
shr rax, 0x18
xor r8d, dword [rdi + rcx*4 + 0x800]
xor r8d, dword [rdi + rax*4]
movzx eax, r9b
xor r8d, dword [rdi + rax*4 + 0xc00]
xor r8d, dword [r10 + 0x10]
mov r9d, r8d
mov eax, r8d
shr rax, 0x10
movzx edx, al
mov eax, r8d
shr rax, 8
movzx ecx, al
mov eax, r9d
mov r8d, dword [rdi + rdx*4 + 0x400]
shr rax, 0x18
xor r8d, dword [rdi + rcx*4 + 0x800]
xor r8d, dword [rdi + rax*4]
movzx eax, r9b
xor r8d, dword [rdi + rax*4 + 0xc00]
xor r8d, dword [r10 + 0x14]
mov eax, r8d
shr rax, 0x10
movzx edx, al
mov eax, r8d
shr rax, 8
mov r9d, r8d
mov r8d, dword [rdi + rdx*4 + 0x400]
movzx ecx, al
mov eax, r9d
shr rax, 0x18
xor r8d, dword [rdi + rcx*4 + 0x800]
xor r8d, dword [rdi + rax*4]
movzx eax, r9b
xor r8d, dword [rdi + rax*4 + 0xc00]
xor r8d, dword [r10 + 0x18]
mov r9d, r8d
mov eax, r8d
shr rax, 8
movzx edx, al
mov eax, r8d
shr rax, 0x10
movzx ecx, al
mov eax, r9d
mov r8d, dword [rdi + rdx*4 + 0x800]
shr rax, 0x18
xor r8d, dword [rdi + rcx*4 + 0x400]
xor r8d, dword [rdi + rax*4]
movzx eax, r9b
xor r8d, dword [rdi + rax*4 + 0xc00]
xor r8d, dword [r10 + 0x1c]
add r10, 0x20
mov eax, r8d
shr rax, 0x10
movzx edx, al
mov eax, r8d
shr rax, 8
movzx ecx, al
mov eax, dword [rdi + rdx*4 + 0x400]
xor eax, dword [rdi + rcx*4 + 0x800]
mov ecx, r8d
shr rcx, 0x18
xor eax, dword [rdi + rcx*4]
movzx ecx, r8b
xor eax, dword [rdi + rcx*4 + 0xc00]
sub rbx, 1
jne 0x14010ea70
mov rbx, qword [rsp + 0x28]
cmp r11, 4
jb 0x14010ece4
mov r9, r11
shr r9, 2
imul rcx, r9, 0xfffffffffffffffc
add r11, rcx
nop dword [rax]
xor eax, dword [r10]
add r10, 4
mov r8d, eax
shr rax, 0x10
movzx edx, al
mov eax, r8d
shr rax, 8
movzx ecx, al
mov eax, dword [rdi + rdx*4 + 0x400]
xor eax, dword [rdi + rcx*4 + 0x800]
mov ecx, r8d
shr rcx, 0x18
xor eax, dword [rdi + rcx*4]
movzx ecx, r8b
xor eax, dword [rdi + rcx*4 + 0xc00]
sub r9, 1
jne 0x14010eca0
test r11, r11
je 0x14010ed10
nop dword [rax]
movzx edx, byte [r10]
lea r10, [r10 + 1]
mov ecx, eax
xor rdx, rcx
shr ecx, 8
movzx r8d, dl
mov eax, dword [rdi + r8*4]
xor eax, ecx
sub r11, 1
jne 0x14010ecf0
not eax
pop rdi
ret