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

Disassembly:
push rbp
push rsi
push rdi
push rbx
mov rbp, rsp
test rdx, rdx
je 0x5d08a9
not ecx
test r8, r8
je 0x5d0b69
lea rsi, [r8 - 0x20]
xor r11d, r11d
lea r9, [0x0075fc50]
nop word cs:[rax + rax]
lea rdi, [rdx + r11]
test dil, 3
je 0x5d08b0
movzx eax, byte [rdi]
movzx edi, cl
xor edi, eax
shr ecx, 8
xor ecx, dword [r9 + rdi*4]
inc r11
dec rsi
cmp r8, r11
jne 0x5d0880
jmp 0x5d0b69
xor ecx, ecx
jmp 0x5d0b6b
mov r10, r8
sub r10, r11
cmp r10, 0x20
jae 0x5d08f0
cmp r10, 4
jae 0x5d0aa4
test r10, r10
je 0x5d0b69
test r10b, 1
jne 0x5d0b16
mov rdx, r10
cmp r10, 1
jne 0x5d0b40
jmp 0x5d0b69
xor ecx, dword [rdi]
movzx ebx, cl
movzx eax, ch
mov eax, dword [r9 + rax*4 + 0x800]
xor eax, dword [r9 + rbx*4 + 0xc00]
mov ebx, ecx
shr ebx, 0x10
movzx ebx, bl
xor eax, dword [r9 + rbx*4 + 0x400]
shr ecx, 0x18
xor eax, dword [r9 + rcx*4]
xor eax, dword [rdi + 4]
movzx ebx, al
movzx ecx, ah
mov ecx, dword [r9 + rcx*4 + 0x800]
xor ecx, dword [r9 + rbx*4 + 0xc00]
mov ebx, eax
shr ebx, 0x10
movzx ebx, bl
xor ecx, dword [r9 + rbx*4 + 0x400]
shr eax, 0x18
xor ecx, dword [r9 + rax*4]
xor ecx, dword [rdi + 8]
movzx ebx, cl
movzx eax, ch
mov eax, dword [r9 + rax*4 + 0x800]
xor eax, dword [r9 + rbx*4 + 0xc00]
mov ebx, ecx
shr ebx, 0x10
movzx ebx, bl
xor eax, dword [r9 + rbx*4 + 0x400]
shr ecx, 0x18
xor eax, dword [r9 + rcx*4]
xor eax, dword [rdi + 0xc]
movzx ebx, al
movzx ecx, ah
mov ecx, dword [r9 + rcx*4 + 0x800]
xor ecx, dword [r9 + rbx*4 + 0xc00]
mov ebx, eax
shr ebx, 0x10
movzx ebx, bl
xor ecx, dword [r9 + rbx*4 + 0x400]
shr eax, 0x18
xor ecx, dword [r9 + rax*4]
xor ecx, dword [rdi + 0x10]
movzx ebx, cl
movzx eax, ch
mov eax, dword [r9 + rax*4 + 0x800]
xor eax, dword [r9 + rbx*4 + 0xc00]
mov ebx, ecx
shr ebx, 0x10
movzx ebx, bl
xor eax, dword [r9 + rbx*4 + 0x400]
shr ecx, 0x18
xor eax, dword [r9 + rcx*4]
xor eax, dword [rdi + 0x14]
movzx ebx, al
movzx ecx, ah
mov ecx, dword [r9 + rcx*4 + 0x800]
xor ecx, dword [r9 + rbx*4 + 0xc00]
mov ebx, eax
shr ebx, 0x10
movzx ebx, bl
xor ecx, dword [r9 + rbx*4 + 0x400]
shr eax, 0x18
xor ecx, dword [r9 + rax*4]
xor ecx, dword [rdi + 0x18]
movzx ebx, cl
movzx eax, ch
mov eax, dword [r9 + rax*4 + 0x800]
xor eax, dword [r9 + rbx*4 + 0xc00]
mov ebx, ecx
shr ebx, 0x10
movzx ebx, bl
xor eax, dword [r9 + rbx*4 + 0x400]
shr ecx, 0x18
xor eax, dword [r9 + rcx*4]
xor eax, dword [rdi + 0x1c]
movzx ebx, al
movzx ecx, ah
mov ecx, dword [r9 + rcx*4 + 0x800]
xor ecx, dword [r9 + rbx*4 + 0xc00]
mov ebx, eax
shr ebx, 0x10
movzx ebx, bl
xor ecx, dword [r9 + rbx*4 + 0x400]
shr eax, 0x18
xor ecx, dword [r9 + rax*4]
add r10, 0xffffffffffffffe0
add rdi, 0x20
cmp r10, 0x1f
ja 0x5d08f0
and rsi, 0xffffffffffffffe0
add rdx, rsi
lea rdi, [r11 + rdx + 0x20]
add r8, 0xffffffffffffffe0
sub r8, rsi
sub r8, r11
mov r10, r8
cmp r10, 4
jb 0x5d08c6
lea r11, [r10 - 4]
mov r8, r11
shr r8, 2
mov rax, rdi
nop word cs:[rax + rax]
xor ecx, dword [rax]
movzx ebx, cl
movzx esi, ch
mov edx, ecx
mov esi, dword [r9 + rsi*4 + 0x800]
xor esi, dword [r9 + rbx*4 + 0xc00]
add rax, 4
shr ecx, 0x10
movzx ecx, cl
xor esi, dword [r9 + rcx*4 + 0x400]
shr edx, 0x18
mov ecx, esi
xor ecx, dword [r9 + rdx*4]
add r10, 0xfffffffffffffffc
cmp r10, 3
ja 0x5d0ac0
lea rdi, [rdi + r8*4 + 4]
and r11d, 3
mov r10, r11
test r10, r10
jne 0x5d08cf
jmp 0x5d0b69
movzx eax, byte [rdi]
inc rdi
movzx edx, cl
xor edx, eax
shr ecx, 8
xor ecx, dword [r9 + rdx*4]
lea rdx, [r10 - 1]
cmp r10, 1
je 0x5d0b69
nop word cs:[rax + rax]
movzx eax, byte [rdi]
movzx ebx, cl
xor ebx, eax
shr ecx, 8
xor ecx, dword [r9 + rbx*4]
movzx eax, byte [rdi + 1]
movzx ebx, cl
xor ebx, eax
shr ecx, 8
xor ecx, dword [r9 + rbx*4]
add rdi, 2
add rdx, 0xfffffffffffffffe
jne 0x5d0b40
not ecx
mov eax, ecx
pop rbx
pop rdi
pop rsi
pop rbp
ret
push rbp
mov rbp, rsp
mov r8d, r8d
pop rbp
jmp 0x5d0850