Function at 0x4adc40
Capabilities:
Hash data with crc32

Disassembly:
push ebp
xor eax, eax
mov ebp, esp
push esi
push ebx
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x4adec5
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
mov ecx, eax
mov ebx, edx
xor ecx, 0xffffffff
test esi, esi
je 0x4ade55
test bl, 3
je 0x4ade55
mov al, byte [ebx]
inc ebx
xor eax, ecx
shr ecx, 8
and eax, 0xff
mov edx, dword [eax*4 + 0x6704a0]
xor ecx, edx
dec esi
jne 0x4adc67
cmp esi, 0x1f
jbe 0x4ade9e
mov eax, dword [ebx]
add ebx, 4
xor ecx, eax
movzx eax, ch
movzx edx, cl
shr ecx, 0x10
mov eax, dword [eax*4 + 0x670ca0]
xor eax, dword [edx*4 + 0x6710a0]
movzx edx, cl
xor eax, dword [edx*4 + 0x6708a0]
mov edx, ecx
shr edx, 8
mov ecx, eax
mov eax, dword [edx*4 + 0x6704a0]
xor ecx, eax
mov eax, dword [ebx]
xor ecx, eax
add ebx, 4
movzx eax, ch
movzx edx, cl
shr ecx, 0x10
mov eax, dword [eax*4 + 0x670ca0]
xor eax, dword [edx*4 + 0x6710a0]
movzx edx, cl
xor eax, dword [edx*4 + 0x6708a0]
mov edx, ecx
shr edx, 8
mov ecx, eax
mov eax, dword [edx*4 + 0x6704a0]
xor ecx, eax
mov eax, dword [ebx]
xor ecx, eax
add ebx, 4
movzx eax, ch
movzx edx, cl
shr ecx, 0x10
mov eax, dword [eax*4 + 0x670ca0]
xor eax, dword [edx*4 + 0x6710a0]
movzx edx, cl
xor eax, dword [edx*4 + 0x6708a0]
mov edx, ecx
shr edx, 8
mov ecx, eax
mov eax, dword [edx*4 + 0x6704a0]
xor ecx, eax
mov eax, dword [ebx]
xor ecx, eax
add ebx, 4
movzx eax, ch
movzx edx, cl
shr ecx, 0x10
mov eax, dword [eax*4 + 0x670ca0]
xor eax, dword [edx*4 + 0x6710a0]
movzx edx, cl
xor eax, dword [edx*4 + 0x6708a0]
mov edx, ecx
shr edx, 8
mov ecx, eax
mov eax, dword [edx*4 + 0x6704a0]
xor ecx, eax
mov eax, dword [ebx]
xor ecx, eax
add ebx, 4
movzx eax, ch
movzx edx, cl
shr ecx, 0x10
mov eax, dword [eax*4 + 0x670ca0]
xor eax, dword [edx*4 + 0x6710a0]
movzx edx, cl
xor eax, dword [edx*4 + 0x6708a0]
mov edx, ecx
shr edx, 8
mov ecx, eax
mov eax, dword [edx*4 + 0x6704a0]
xor ecx, eax
mov eax, dword [ebx]
xor ecx, eax
add ebx, 4
movzx eax, ch
movzx edx, cl
shr ecx, 0x10
mov eax, dword [eax*4 + 0x670ca0]
xor eax, dword [edx*4 + 0x6710a0]
movzx edx, cl
xor eax, dword [edx*4 + 0x6708a0]
mov edx, ecx
shr edx, 8
mov ecx, eax
mov eax, dword [edx*4 + 0x6704a0]
xor ecx, eax
mov eax, dword [ebx]
xor ecx, eax
add ebx, 4
movzx eax, ch
movzx edx, cl
shr ecx, 0x10
mov eax, dword [eax*4 + 0x670ca0]
xor eax, dword [edx*4 + 0x6710a0]
movzx edx, cl
xor eax, dword [edx*4 + 0x6708a0]
mov edx, ecx
shr edx, 8
mov ecx, eax
mov eax, dword [edx*4 + 0x6704a0]
xor ecx, eax
mov eax, dword [ebx]
xor ecx, eax
add ebx, 4
movzx eax, ch
movzx edx, cl
mov eax, dword [eax*4 + 0x670ca0]
xor eax, dword [edx*4 + 0x6710a0]
sub esi, 0x20
shr ecx, 0x10
movzx edx, cl
xor eax, dword [edx*4 + 0x6708a0]
mov edx, ecx
shr edx, 8
mov ecx, eax
mov eax, dword [edx*4 + 0x6704a0]
xor ecx, eax
cmp esi, 0x1f
ja 0x4adc92
cmp esi, 3
jbe 0x4adea3
mov eax, dword [ebx]
sub esi, 4
xor ecx, eax
add ebx, 4
movzx eax, ch
movzx edx, cl
shr ecx, 0x10
mov eax, dword [eax*4 + 0x670ca0]
xor eax, dword [edx*4 + 0x6710a0]
movzx edx, cl
xor eax, dword [edx*4 + 0x6708a0]
mov edx, ecx
shr edx, 8
mov ecx, eax
mov eax, dword [edx*4 + 0x6704a0]
xor ecx, eax
cmp esi, 3
ja 0x4ade63
test esi, esi
jmp 0x4adebe
mov al, byte [ebx]
inc ebx
xor eax, ecx
shr ecx, 8
and eax, 0xff
mov edx, dword [eax*4 + 0x6704a0]
xor ecx, edx
dec esi
jne 0x4adea7
mov eax, ecx
xor eax, 0xffffffff
pop ebx
pop esi
pop ebp
ret