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

Disassembly:
push ebp
push ebx
push edi
push esi
mov esi, dword [esp + 0x14]
not ecx
test esi, esi
je 0x5d34a7
mov eax, edx
and eax, 3
je 0x5d34a7
lea eax, [edx + 1]
mov edi, esi
movzx esi, byte [edx]
inc edx
movzx ebx, cl
xor ebx, esi
shr ecx, 8
xor ecx, dword [ebx*4 + 0x650b30]
lea esi, [edi - 1]
cmp edi, 1
je 0x5d34a7
mov edi, eax
and edi, 3
inc eax
test edi, edi
jne 0x5d3480
cmp esi, 0x20
jb 0x5d3660
mov eax, 0xff
mov edi, 0x3fc
xor ecx, dword [edx]
mov ebp, ecx
and ebp, eax
mov ebx, ecx
shr ebx, 8
and ebx, eax
mov ebx, dword [ebx*4 + 0x651330]
xor ebx, dword [ebp*4 + 0x651730]
mov ebp, ecx
shr ebp, 0xe
and ebp, edi
xor ebx, dword [ebp + 0x650f30]
shr ecx, 0x18
xor ebx, dword [ecx*4 + 0x650b30]
xor ebx, dword [edx + 4]
mov ebp, ebx
and ebp, eax
mov ecx, ebx
shr ecx, 8
and ecx, eax
mov ecx, dword [ecx*4 + 0x651330]
xor ecx, dword [ebp*4 + 0x651730]
mov ebp, ebx
shr ebp, 0xe
and ebp, edi
xor ecx, dword [ebp + 0x650f30]
shr ebx, 0x18
xor ecx, dword [ebx*4 + 0x650b30]
xor ecx, dword [edx + 8]
mov ebp, ecx
and ebp, eax
mov ebx, ecx
shr ebx, 8
and ebx, eax
mov ebx, dword [ebx*4 + 0x651330]
xor ebx, dword [ebp*4 + 0x651730]
mov ebp, ecx
shr ebp, 0xe
and ebp, edi
xor ebx, dword [ebp + 0x650f30]
shr ecx, 0x18
xor ebx, dword [ecx*4 + 0x650b30]
xor ebx, dword [edx + 0xc]
mov ebp, ebx
and ebp, eax
mov ecx, ebx
shr ecx, 8
and ecx, eax
mov ecx, dword [ecx*4 + 0x651330]
xor ecx, dword [ebp*4 + 0x651730]
mov ebp, ebx
shr ebp, 0xe
and ebp, edi
xor ecx, dword [ebp + 0x650f30]
shr ebx, 0x18
xor ecx, dword [ebx*4 + 0x650b30]
xor ecx, dword [edx + 0x10]
mov ebp, ecx
and ebp, eax
mov ebx, ecx
shr ebx, 8
and ebx, eax
mov ebx, dword [ebx*4 + 0x651330]
xor ebx, dword [ebp*4 + 0x651730]
mov ebp, ecx
shr ebp, 0xe
and ebp, edi
xor ebx, dword [ebp + 0x650f30]
shr ecx, 0x18
xor ebx, dword [ecx*4 + 0x650b30]
xor ebx, dword [edx + 0x14]
mov ebp, ebx
and ebp, eax
mov ecx, ebx
shr ecx, 8
and ecx, eax
mov ecx, dword [ecx*4 + 0x651330]
xor ecx, dword [ebp*4 + 0x651730]
mov ebp, ebx
shr ebp, 0xe
and ebp, edi
xor ecx, dword [ebp + 0x650f30]
shr ebx, 0x18
xor ecx, dword [ebx*4 + 0x650b30]
xor ecx, dword [edx + 0x18]
mov ebp, ecx
and ebp, eax
mov ebx, ecx
shr ebx, 8
and ebx, eax
mov ebx, dword [ebx*4 + 0x651330]
xor ebx, dword [ebp*4 + 0x651730]
mov ebp, ecx
shr ebp, 0xe
and ebp, edi
xor ebx, dword [ebp + 0x650f30]
shr ecx, 0x18
xor ebx, dword [ecx*4 + 0x650b30]
xor ebx, dword [edx + 0x1c]
add edx, 0x20
mov ebp, ebx
and ebp, eax
mov ecx, ebx
shr ecx, 8
and ecx, eax
mov ecx, dword [ecx*4 + 0x651330]
xor ecx, dword [ebp*4 + 0x651730]
mov ebp, ebx
shr ebp, 0xe
and ebp, edi
xor ecx, dword [ebp + 0x650f30]
shr ebx, 0x18
xor ecx, dword [ebx*4 + 0x650b30]
add esi, 0xffffffe0
cmp esi, 0x1f
ja 0x5d34ba
cmp esi, 4
jb 0x5d36af
mov edi, 0xff
xor ecx, dword [edx]
add edx, 4
mov ebx, ecx
and ebx, edi
mov eax, ecx
shr eax, 8
and eax, edi
mov eax, dword [eax*4 + 0x651330]
xor eax, dword [ebx*4 + 0x651730]
mov ebx, ecx
shr ebx, 0xe
and ebx, 0x3fc
xor eax, dword [ebx + 0x650f30]
shr ecx, 0x18
xor eax, dword [ecx*4 + 0x650b30]
add esi, 0xfffffffc
mov ecx, eax
cmp esi, 3
ja 0x5d366a
jmp 0x5d36b1
mov eax, ecx
test esi, esi
je 0x5d36cf
xor ecx, ecx
movzx edi, byte [edx + ecx]
movzx ebx, al
xor ebx, edi
shr eax, 8
xor eax, dword [ebx*4 + 0x650b30]
inc ecx
cmp esi, ecx
jne 0x5d36b7
not eax
pop esi
pop edi
pop ebx
pop ebp
ret