Function at 0x4b5570
Capabilities:
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov edx, dword [ebp + 0x10]
mov esi, dword [ebp + 0xc]
test esi, esi
je 0x4b565d
mov ebx, dword [ebp + 8]
cmp edx, 0x40
jb 0x4b55ba
cmp dword [0x6597e4], 0
je 0x4b55ba
mov edi, edx
and edi, 0xfffffff0
not ebx
push ebx
push edi
push esi
mov ebx, edx
call fcn.0042ef30
mov edx, ebx
add esp, 0xc
mov ebx, eax
not ebx
and edx, 0xf
je 0x4b58f0
add esi, edi
not ebx
test edx, edx
je 0x4b5675
mov eax, esi
and eax, 3
je 0x4b5675
movzx eax, byte [esi]
movzx ecx, bl
xor ecx, eax
lea eax, [esi + 1]
shr ebx, 8
xor ebx, dword [ecx*4 + 0x5e5590]
mov ecx, edx
add ecx, 0xffffffff
je 0x4b5671
mov edi, edx
mov edx, eax
and edx, 3
je 0x4b5671
movzx eax, byte [esi + 1]
movzx ecx, bl
xor ecx, eax
lea eax, [esi + 2]
shr ebx, 8
xor ebx, dword [ecx*4 + 0x5e5590]
mov ecx, edi
add ecx, 0xfffffffe
je 0x4b5671
mov edx, eax
and edx, 3
je 0x4b5671
movzx eax, byte [esi + 2]
movzx ecx, bl
xor ecx, eax
lea eax, [esi + 3]
shr ebx, 8
xor ebx, dword [ecx*4 + 0x5e5590]
mov ecx, edi
add ecx, 0xfffffffd
je 0x4b5671
mov edx, eax
and edx, 3
je 0x4b5671
movzx eax, byte [esi + 3]
add esi, 4
movzx ecx, bl
xor ecx, eax
shr ebx, 8
xor ebx, dword [ecx*4 + 0x5e5590]
mov edx, edi
add edx, 0xfffffffc
jmp 0x4b5675
xor ebx, ebx
test edx, edx
jne 0x4b58f0
call fcn.005096b0
jmp 0x4b58f0
mov esi, eax
mov edx, ecx
cmp edx, 0x20
jb 0x4b5822
nop
xor ebx, dword [esi]
movzx ecx, bl
movzx eax, bh
mov eax, dword [eax*4 + 0x5e5d90]
xor eax, dword [ecx*4 + 0x5e6190]
mov ecx, ebx
shr ecx, 0xe
and ecx, 0x3fc
xor eax, dword [ecx + 0x5e5990]
shr ebx, 0x18
xor eax, dword [ebx*4 + 0x5e5590]
xor eax, dword [esi + 4]
mov edi, edx
movzx edx, al
movzx ecx, ah
mov ecx, dword [ecx*4 + 0x5e5d90]
xor ecx, dword [edx*4 + 0x5e6190]
mov edx, eax
shr edx, 0xe
and edx, 0x3fc
xor ecx, dword [edx + 0x5e5990]
shr eax, 0x18
xor ecx, dword [eax*4 + 0x5e5590]
xor ecx, dword [esi + 8]
movzx edx, cl
movzx eax, ch
mov eax, dword [eax*4 + 0x5e5d90]
xor eax, dword [edx*4 + 0x5e6190]
mov edx, ecx
shr edx, 0xe
and edx, 0x3fc
xor eax, dword [edx + 0x5e5990]
shr ecx, 0x18
xor eax, dword [ecx*4 + 0x5e5590]
xor eax, dword [esi + 0xc]
movzx edx, al
movzx ecx, ah
mov ecx, dword [ecx*4 + 0x5e5d90]
xor ecx, dword [edx*4 + 0x5e6190]
mov edx, eax
shr edx, 0xe
and edx, 0x3fc
xor ecx, dword [edx + 0x5e5990]
shr eax, 0x18
xor ecx, dword [eax*4 + 0x5e5590]
xor ecx, dword [esi + 0x10]
movzx edx, cl
movzx eax, ch
mov eax, dword [eax*4 + 0x5e5d90]
xor eax, dword [edx*4 + 0x5e6190]
mov edx, ecx
shr edx, 0xe
and edx, 0x3fc
xor eax, dword [edx + 0x5e5990]
shr ecx, 0x18
xor eax, dword [ecx*4 + 0x5e5590]
xor eax, dword [esi + 0x14]
movzx edx, al
movzx ecx, ah
mov ecx, dword [ecx*4 + 0x5e5d90]
xor ecx, dword [edx*4 + 0x5e6190]
mov edx, eax
shr edx, 0xe
and edx, 0x3fc
xor ecx, dword [edx + 0x5e5990]
shr eax, 0x18
xor ecx, dword [eax*4 + 0x5e5590]
xor ecx, dword [esi + 0x18]
movzx edx, cl
movzx eax, ch
mov eax, dword [eax*4 + 0x5e5d90]
xor eax, dword [edx*4 + 0x5e6190]
mov edx, ecx
shr edx, 0xe
and edx, 0x3fc
xor eax, dword [edx + 0x5e5990]
shr ecx, 0x18
xor eax, dword [ecx*4 + 0x5e5590]
xor eax, dword [esi + 0x1c]
add esi, 0x20
movzx ecx, al
movzx edx, ah
mov ebx, dword [edx*4 + 0x5e5d90]
mov edx, edi
xor ebx, dword [ecx*4 + 0x5e6190]
mov ecx, eax
shr ecx, 0xe
and ecx, 0x3fc
xor ebx, dword [ecx + 0x5e5990]
shr eax, 0x18
xor ebx, dword [eax*4 + 0x5e5590]
add edx, 0xffffffe0
cmp edx, 0x1f
ja 0x4b5680
cmp edx, 4
jb 0x4b5880
nop word [eax + eax]
xor ebx, dword [esi]
add esi, 4
movzx ecx, bl
movzx eax, bh
mov eax, dword [eax*4 + 0x5e5d90]
xor eax, dword [ecx*4 + 0x5e6190]
mov ecx, ebx
shr ecx, 0xe
and ecx, 0x3fc
xor eax, dword [ecx + 0x5e5990]
shr ebx, 0x18
xor eax, dword [ebx*4 + 0x5e5590]
add edx, 0xfffffffc
mov ebx, eax
cmp edx, 3
ja 0x4b5830
test edx, edx
je 0x4b5886
test dl, 1
jne 0x4b588a
mov ecx, edx
cmp edx, 1
jne 0x4b58ad
jmp 0x4b58ee
mov eax, ebx
test edx, edx
jne 0x4b5872
mov ebx, eax
jmp 0x4b58ee
movzx ecx, byte [esi]
add esi, 1
mov edi, edx
movzx edx, al
xor edx, ecx
shr eax, 8
xor eax, dword [edx*4 + 0x5e5590]
mov edx, edi
lea ecx, [edi - 1]
mov ebx, eax
cmp edx, 1
je 0x4b58ee
xor edx, edx
mov ebx, eax
nop word cs:[eax + eax]
nop dword [eax + eax]
movzx eax, byte [esi + edx]
movzx edi, bl
xor edi, eax
shr ebx, 8
xor ebx, dword [edi*4 + 0x5e5590]
movzx eax, byte [esi + edx + 1]
movzx edi, bl
xor edi, eax
shr ebx, 8
xor ebx, dword [edi*4 + 0x5e5590]
add edx, 2
cmp ecx, edx
jne 0x4b58c0
not ebx
mov eax, ebx
pop esi
pop edi
pop ebx
pop ebp
ret