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

Disassembly:
push ebx
push edi
push esi
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x5ae792
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
not ebx
test edx, edx
je 0x5ae79d
mov eax, ecx
and eax, 3
je 0x5ae79d
lea eax, [ecx + 1]
movzx esi, byte [ecx]
movzx edi, bl
xor edi, esi
shr ebx, 8
xor ebx, dword [edi*4 + 0x605b88]
mov esi, edx
add esi, 0xffffffff
je 0x5ae799
mov edi, eax
and edi, 3
je 0x5ae799
lea eax, [ecx + 2]
movzx esi, byte [ecx + 1]
movzx edi, bl
xor edi, esi
shr ebx, 8
xor ebx, dword [edi*4 + 0x605b88]
mov esi, edx
add esi, 0xfffffffe
je 0x5ae799
mov edi, eax
and edi, 3
je 0x5ae799
lea eax, [ecx + 3]
movzx esi, byte [ecx + 2]
movzx edi, bl
xor edi, esi
shr ebx, 8
xor ebx, dword [edi*4 + 0x605b88]
mov esi, edx
add esi, 0xfffffffd
je 0x5ae799
mov edi, eax
and edi, 3
je 0x5ae799
movzx eax, byte [ecx + 3]
add ecx, 4
movzx esi, bl
xor esi, eax
shr ebx, 8
xor ebx, dword [esi*4 + 0x605b88]
add edx, 0xfffffffc
jmp 0x5ae79d
xor eax, eax
jmp 0x5aea10
mov ecx, eax
mov edx, esi
cmp edx, 0x20
jb 0x5ae94e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor ebx, dword [ecx]
movzx esi, bl
movzx eax, bh
mov eax, dword [eax*4 + 0x606388]
xor eax, dword [esi*4 + 0x606788]
mov esi, ebx
shr esi, 0xe
and esi, 0x3fc
xor eax, dword [esi + 0x605f88]
shr ebx, 0x18
xor eax, dword [ebx*4 + 0x605b88]
xor eax, dword [ecx + 4]
movzx esi, al
movzx edi, ah
mov ebx, dword [edi*4 + 0x606388]
xor ebx, dword [esi*4 + 0x606788]
mov esi, eax
shr esi, 0xe
and esi, 0x3fc
xor ebx, dword [esi + 0x605f88]
shr eax, 0x18
xor ebx, dword [eax*4 + 0x605b88]
xor ebx, dword [ecx + 8]
movzx esi, bl
movzx eax, bh
mov eax, dword [eax*4 + 0x606388]
xor eax, dword [esi*4 + 0x606788]
mov esi, ebx
shr esi, 0xe
and esi, 0x3fc
xor eax, dword [esi + 0x605f88]
shr ebx, 0x18
xor eax, dword [ebx*4 + 0x605b88]
xor eax, dword [ecx + 0xc]
movzx esi, al
movzx edi, ah
mov ebx, dword [edi*4 + 0x606388]
xor ebx, dword [esi*4 + 0x606788]
mov esi, eax
shr esi, 0xe
and esi, 0x3fc
xor ebx, dword [esi + 0x605f88]
shr eax, 0x18
xor ebx, dword [eax*4 + 0x605b88]
xor ebx, dword [ecx + 0x10]
movzx esi, bl
movzx eax, bh
mov eax, dword [eax*4 + 0x606388]
xor eax, dword [esi*4 + 0x606788]
mov esi, ebx
shr esi, 0xe
and esi, 0x3fc
xor eax, dword [esi + 0x605f88]
shr ebx, 0x18
xor eax, dword [ebx*4 + 0x605b88]
xor eax, dword [ecx + 0x14]
movzx esi, al
movzx edi, ah
mov ebx, dword [edi*4 + 0x606388]
xor ebx, dword [esi*4 + 0x606788]
mov esi, eax
shr esi, 0xe
and esi, 0x3fc
xor ebx, dword [esi + 0x605f88]
shr eax, 0x18
xor ebx, dword [eax*4 + 0x605b88]
xor ebx, dword [ecx + 0x18]
movzx esi, bl
movzx eax, bh
mov eax, dword [eax*4 + 0x606388]
xor eax, dword [esi*4 + 0x606788]
mov esi, ebx
shr esi, 0xe
and esi, 0x3fc
xor eax, dword [esi + 0x605f88]
shr ebx, 0x18
xor eax, dword [ebx*4 + 0x605b88]
xor eax, dword [ecx + 0x1c]
add ecx, 0x20
movzx esi, al
movzx edi, ah
mov ebx, dword [edi*4 + 0x606388]
xor ebx, dword [esi*4 + 0x606788]
mov esi, eax
shr esi, 0xe
and esi, 0x3fc
xor ebx, dword [esi + 0x605f88]
shr eax, 0x18
xor ebx, dword [eax*4 + 0x605b88]
add edx, 0xffffffe0
cmp edx, 0x1f
ja 0x5ae7b0
cmp edx, 4
jb 0x5ae9a4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor ebx, dword [ecx]
add ecx, 4
movzx esi, bl
movzx eax, bh
mov eax, dword [eax*4 + 0x606388]
xor eax, dword [esi*4 + 0x606788]
mov esi, ebx
shr esi, 0xe
and esi, 0x3fc
xor eax, dword [esi + 0x605f88]
shr ebx, 0x18
xor eax, dword [ebx*4 + 0x605b88]
add edx, 0xfffffffc
mov ebx, eax
cmp edx, 3
ja 0x5ae960
test edx, edx
jne 0x5ae9aa
jmp 0x5aea0e
mov eax, ebx
test edx, edx
je 0x5aea0e
test dl, 1
jne 0x5ae9b8
mov esi, edx
cmp edx, 1
jne 0x5ae9d5
jmp 0x5aea0e
movzx esi, byte [ecx]
add ecx, 1
movzx edi, al
xor edi, esi
shr eax, 8
xor eax, dword [edi*4 + 0x605b88]
lea esi, [edx - 1]
cmp edx, 1
je 0x5aea0e
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [ecx + edx]
movzx ebx, al
xor ebx, edi
shr eax, 8
xor eax, dword [ebx*4 + 0x605b88]
movzx edi, byte [ecx + edx + 1]
movzx ebx, al
xor ebx, edi
shr eax, 8
xor eax, dword [ebx*4 + 0x605b88]
add edx, 2
cmp esi, edx
jne 0x5ae9e0
not eax
pop esi
pop edi
pop ebx
ret
jmp 0x5ae6e0