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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rdi
lea rbp, [0x1803a8ff0]
mov edi, r8d
mov rbx, rdx
not ecx
test r8d, r8d
je 0x1801694bf
nop
test bl, 3
je 0x1801694bf
movzx edx, byte [rbx]
mov eax, ecx
xor rdx, rax
shr ecx, 8
movzx eax, dl
inc rbx
xor ecx, dword [rbp + rax*4]
add edi, 0xffffffff
jne 0x1801694a0
cmp edi, 0x20
jb 0x18016972d
mov qword [rsp + 0x10], rsi
mov esi, edi
shr rsi, 5
nop dword [rax]
nop word [rax + rax]
mov edx, dword [rbx]
mov r8d, dword [rbx + 4]
mov r10d, dword [rbx + 8]
mov r11d, dword [rbx + 0xc]
mov eax, ecx
xor rdx, rax
mov rax, rdx
shr rax, 0x10
movzx ecx, al
mov rax, rdx
shr rax, 8
mov r9d, dword [rbp + rcx*4 + 0x400]
movzx ecx, al
mov eax, dword [rbp + rcx*4 + 0x800]
xor r9, rax
mov rax, rdx
shr rax, 0x18
mov eax, dword [rbp + rax*4]
xor r9, rax
movzx eax, dl
mov eax, dword [rbp + rax*4 + 0xc00]
xor r9, rax
xor r9, r8
mov rax, r9
shr rax, 0x10
movzx ecx, al
mov rax, r9
shr rax, 8
mov edx, dword [rbp + rcx*4 + 0x400]
movzx ecx, al
mov eax, dword [rbp + rcx*4 + 0x800]
xor rdx, rax
mov rax, r9
shr rax, 0x18
mov eax, dword [rbp + rax*4]
xor rdx, rax
movzx eax, r9b
mov r9d, dword [rbx + 0x10]
mov eax, dword [rbp + rax*4 + 0xc00]
xor rdx, rax
xor rdx, r10
mov r10d, dword [rbx + 0x14]
mov rax, rdx
shr rax, 0x10
movzx ecx, al
mov rax, rdx
shr rax, 8
mov r8d, dword [rbp + rcx*4 + 0x400]
movzx ecx, al
mov eax, dword [rbp + rcx*4 + 0x800]
xor r8, rax
mov rax, rdx
shr rax, 0x18
mov eax, dword [rbp + rax*4]
xor r8, rax
movzx eax, dl
mov eax, dword [rbp + rax*4 + 0xc00]
xor r8, rax
xor r8, r11
mov r11d, dword [rbx + 0x18]
mov rax, r8
shr rax, 0x10
movzx ecx, al
mov rax, r8
shr rax, 8
mov edx, dword [rbp + rcx*4 + 0x400]
movzx ecx, al
mov eax, dword [rbp + rcx*4 + 0x800]
xor rdx, rax
mov rax, r8
shr rax, 0x18
mov eax, dword [rbp + rax*4]
xor rdx, rax
movzx eax, r8b
mov eax, dword [rbp + rax*4 + 0xc00]
xor rdx, rax
xor rdx, r9
mov rax, rdx
shr rax, 0x10
movzx ecx, al
mov r8d, dword [rbp + rcx*4 + 0x400]
mov r9d, dword [rbx + 0x1c]
mov rax, rdx
shr rax, 8
add rbx, 0x20
movzx ecx, al
add edi, 0xffffffe0
mov eax, dword [rbp + rcx*4 + 0x800]
xor r8, rax
mov rax, rdx
shr rax, 0x18
mov eax, dword [rbp + rax*4]
xor r8, rax
movzx eax, dl
mov eax, dword [rbp + rax*4 + 0xc00]
xor r8, rax
xor r8, r10
mov rax, r8
shr rax, 0x10
movzx ecx, al
mov rax, r8
shr rax, 8
mov edx, dword [rbp + rcx*4 + 0x400]
movzx ecx, al
mov eax, dword [rbp + rcx*4 + 0x800]
xor rdx, rax
mov rax, r8
shr rax, 0x18
mov eax, dword [rbp + rax*4]
xor rdx, rax
movzx eax, r8b
mov eax, dword [rbp + rax*4 + 0xc00]
xor rdx, rax
xor rdx, r11
mov rax, rdx
shr rax, 0x10
movzx ecx, al
mov rax, rdx
shr rax, 8
mov r8d, dword [rbp + rcx*4 + 0x400]
movzx ecx, al
mov eax, dword [rbp + rcx*4 + 0x800]
xor r8, rax
mov rax, rdx
shr rax, 0x18
mov eax, dword [rbp + rax*4]
xor r8, rax
movzx eax, dl
mov eax, dword [rbp + rax*4 + 0xc00]
xor r8, rax
xor r8, r9
mov rax, r8
shr rax, 0x10
movzx ecx, al
mov rax, r8
shr rax, 8
movzx edx, al
mov rax, r8
shr rax, 0x18
mov ecx, dword [rbp + rcx*4 + 0x400]
xor ecx, dword [rbp + rdx*4 + 0x800]
xor ecx, dword [rbp + rax*4]
movzx eax, r8b
xor ecx, dword [rbp + rax*4 + 0xc00]
sub rsi, 1
jne 0x1801694e0
mov rsi, qword [rsp + 0x10]
cmp edi, 4
jb 0x18016978d
mov r9d, edi
shr r9, 2
nop dword [rax]
mov r8d, dword [rbx]
add edi, 0xfffffffc
mov eax, ecx
add rbx, 4
xor r8, rax
mov rax, r8
shr rax, 0x10
movzx ecx, al
mov rax, r8
shr rax, 8
movzx edx, al
mov rax, r8
shr rax, 0x18
mov ecx, dword [rbp + rcx*4 + 0x400]
xor ecx, dword [rbp + rdx*4 + 0x800]
xor ecx, dword [rbp + rax*4]
movzx eax, r8b
xor ecx, dword [rbp + rax*4 + 0xc00]
sub r9, 1
jne 0x180169740
test edi, edi
je 0x1801697ac
movzx edx, byte [rbx]
lea rbx, [rbx + 1]
mov eax, ecx
shr ecx, 8
xor rdx, rax
movzx eax, dl
xor ecx, dword [rbp + rax*4]
add edi, 0xffffffff
jne 0x180169791
mov rbx, qword [rsp + 0x18]
not ecx
mov rbp, qword [rsp + 0x20]
mov eax, ecx
pop rdi
ret