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

Disassembly:
push rbp
push rdi
push rsi
push rbx
test rdx, rdx
je 0x5e84c0
test r8d, r8d
not ecx
je 0x5e8230
test dl, 3
je 0x5e8240
lea r9, [0x007b1ba0]
jmp 0x5e8217
test dl, 3
je 0x5e8240
add rdx, 1
mov eax, ecx
shr ecx, 8
xor al, byte [rdx - 1]
movzx eax, al
xor ecx, dword [r9 + rax*4]
sub r8d, 1
jne 0x5e8212
mov eax, ecx
not eax
pop rbx
pop rsi
pop rdi
pop rbp
ret
cmp r8d, 0x1f
jbe 0x5e8423
lea ebx, [r8 - 0x20]
lea r9, [0x007b1ba0]
mov r10, rdx
shr ebx, 5
mov rax, rbx
shl rax, 5
lea r11, [rdx + rax + 0x20]
nop word [rax + rax]
xor ecx, dword [r10]
movzx edi, ch
mov esi, ecx
movzx eax, cl
shr ecx, 0x18
mov eax, dword [r9 + rax*4 + 0xc00]
shr esi, 0x10
xor eax, dword [r9 + rcx*4]
movzx esi, sil
xor eax, dword [r10 + 4]
xor eax, dword [r9 + rdi*4 + 0x800]
xor eax, dword [r9 + rsi*4 + 0x400]
movzx esi, ah
movzx ebp, al
mov ecx, eax
shr eax, 0x18
shr ecx, 0x10
mov edi, eax
mov eax, dword [r9 + rbp*4 + 0xc00]
movzx ecx, cl
xor eax, dword [r9 + rdi*4]
xor eax, dword [r10 + 8]
xor eax, dword [r9 + rsi*4 + 0x800]
xor eax, dword [r9 + rcx*4 + 0x400]
movzx esi, ah
movzx ebp, al
mov ecx, eax
shr eax, 0x18
shr ecx, 0x10
mov edi, eax
mov eax, dword [r9 + rbp*4 + 0xc00]
movzx ecx, cl
xor eax, dword [r9 + rdi*4]
xor eax, dword [r10 + 0xc]
xor eax, dword [r9 + rsi*4 + 0x800]
xor eax, dword [r9 + rcx*4 + 0x400]
movzx esi, ah
movzx ebp, al
mov ecx, eax
shr eax, 0x18
shr ecx, 0x10
mov edi, eax
mov eax, dword [r9 + rbp*4 + 0xc00]
movzx ecx, cl
xor eax, dword [r9 + rdi*4]
xor eax, dword [r10 + 0x10]
xor eax, dword [r9 + rsi*4 + 0x800]
xor eax, dword [r9 + rcx*4 + 0x400]
movzx esi, ah
movzx ebp, al
mov ecx, eax
shr eax, 0x18
shr ecx, 0x10
mov edi, eax
mov eax, dword [r9 + rbp*4 + 0xc00]
movzx ecx, cl
xor eax, dword [r9 + rdi*4]
xor eax, dword [r10 + 0x14]
xor eax, dword [r9 + rsi*4 + 0x800]
xor eax, dword [r9 + rcx*4 + 0x400]
movzx esi, ah
movzx ebp, al
mov ecx, eax
shr eax, 0x18
shr ecx, 0x10
mov edi, eax
mov eax, dword [r9 + rbp*4 + 0xc00]
movzx ecx, cl
xor eax, dword [r9 + rdi*4]
add r10, 0x20
xor eax, dword [r10 - 8]
xor eax, dword [r9 + rsi*4 + 0x800]
xor eax, dword [r9 + rcx*4 + 0x400]
movzx esi, ah
mov ecx, eax
movzx ebp, al
shr eax, 0x18
shr ecx, 0x10
mov edi, eax
mov eax, dword [r9 + rbp*4 + 0xc00]
movzx ecx, cl
xor eax, dword [r9 + rdi*4]
xor eax, dword [r10 - 4]
xor eax, dword [r9 + rsi*4 + 0x800]
xor eax, dword [r9 + rcx*4 + 0x400]
mov ecx, eax
mov esi, eax
movzx edi, al
shr ecx, 0x18
shr esi, 0x10
movzx eax, ah
mov ecx, dword [r9 + rcx*4]
xor ecx, dword [r9 + rdi*4 + 0xc00]
movzx esi, sil
xor ecx, dword [r9 + rax*4 + 0x800]
xor ecx, dword [r9 + rsi*4 + 0x400]
cmp r10, r11
jne 0x5e8270
add rbx, 1
and r8d, 0x1f
shl rbx, 5
add rdx, rbx
cmp r8d, 3
jbe 0x5e848a
lea eax, [r8 - 4]
lea r9, [0x007b1ba0]
mov r10, rdx
shr eax, 2
mov edi, eax
lea rsi, [rdx + rdi*4 + 4]
mov eax, dword [r10]
add r10, 4
xor eax, ecx
mov ecx, eax
mov r11d, eax
movzx ebx, al
shr ecx, 0x18
shr r11d, 0x10
movzx eax, ah
mov ecx, dword [r9 + rcx*4]
xor ecx, dword [r9 + rbx*4 + 0xc00]
movzx r11d, r11b
xor ecx, dword [r9 + rax*4 + 0x800]
xor ecx, dword [r9 + r11*4 + 0x400]
cmp r10, rsi
jne 0x5e8441
lea rdx, [rdx + rdi*4 + 4]
and r8d, 3
test r8d, r8d
je 0x5e8230
sub r8d, 1
lea r9, [0x007b1ba0]
lea r8, [rdx + r8 + 1]
add rdx, 1
mov eax, ecx
shr ecx, 8
xor al, byte [rdx - 1]
movzx eax, al
xor ecx, dword [r9 + rax*4]
cmp rdx, r8
jne 0x5e84a3
jmp 0x5e8230
xor eax, eax
pop rbx
pop rsi
pop rdi
pop rbp
ret