Function at 0x408588
Capabilities:
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
xor eax, 0xffffffff
mov dword [ebp - 0x14], eax
mov al, 0
cmp dword [ebp - 0x10], 0
mov byte [ebp - 0x19], al
je 0x4085d2
mov eax, dword [ebp - 0xc]
and eax, 3
cmp eax, 0
setne cl
mov byte [ebp - 0x19], cl
mov al, byte [ebp - 0x19]
test al, 1
jne 0x4085db
jmp 0x408615
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
mov edx, ecx
add edx, 1
mov dword [ebp - 0xc], edx
movzx ecx, byte [ecx]
xor eax, ecx
and eax, 0xff
mov eax, dword [eax*4 + 0x41b968]
mov ecx, dword [ebp - 0x14]
shr ecx, 8
xor eax, ecx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x10]
add eax, 0xffffffff
mov dword [ebp - 0x10], eax
jmp 0x4085b1
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x10], 0x20
jb 0x408920
mov eax, dword [ebp - 0x18]
mov ecx, eax
add ecx, 4
mov dword [ebp - 0x18], ecx
mov eax, dword [eax]
mov ecx, dword [ebp - 0x14]
xor ecx, eax
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
and eax, 0xff
mov eax, dword [eax*4 + 0x41c568]
mov ecx, dword [ebp - 0x14]
shr ecx, 8
and ecx, 0xff
xor eax, dword [ecx*4 + 0x41c168]
mov ecx, dword [ebp - 0x14]
shr ecx, 0x10
and ecx, 0xff
xor eax, dword [ecx*4 + 0x41bd68]
mov ecx, dword [ebp - 0x14]
shr ecx, 0x18
xor eax, dword [ecx*4 + 0x41b968]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x18]
mov ecx, eax
add ecx, 4
mov dword [ebp - 0x18], ecx
mov eax, dword [eax]
mov ecx, dword [ebp - 0x14]
xor ecx, eax
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
and eax, 0xff
mov eax, dword [eax*4 + 0x41c568]
mov ecx, dword [ebp - 0x14]
shr ecx, 8
and ecx, 0xff
xor eax, dword [ecx*4 + 0x41c168]
mov ecx, dword [ebp - 0x14]
shr ecx, 0x10
and ecx, 0xff
xor eax, dword [ecx*4 + 0x41bd68]
mov ecx, dword [ebp - 0x14]
shr ecx, 0x18
xor eax, dword [ecx*4 + 0x41b968]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x18]
mov ecx, eax
add ecx, 4
mov dword [ebp - 0x18], ecx
mov eax, dword [eax]
mov ecx, dword [ebp - 0x14]
xor ecx, eax
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
and eax, 0xff
mov eax, dword [eax*4 + 0x41c568]
mov ecx, dword [ebp - 0x14]
shr ecx, 8
and ecx, 0xff
xor eax, dword [ecx*4 + 0x41c168]
mov ecx, dword [ebp - 0x14]
shr ecx, 0x10
and ecx, 0xff
xor eax, dword [ecx*4 + 0x41bd68]
mov ecx, dword [ebp - 0x14]
shr ecx, 0x18
xor eax, dword [ecx*4 + 0x41b968]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x18]
mov ecx, eax
add ecx, 4
mov dword [ebp - 0x18], ecx
mov eax, dword [eax]
mov ecx, dword [ebp - 0x14]
xor ecx, eax
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
and eax, 0xff
mov eax, dword [eax*4 + 0x41c568]
mov ecx, dword [ebp - 0x14]
shr ecx, 8
and ecx, 0xff
xor eax, dword [ecx*4 + 0x41c168]
mov ecx, dword [ebp - 0x14]
shr ecx, 0x10
and ecx, 0xff
xor eax, dword [ecx*4 + 0x41bd68]
mov ecx, dword [ebp - 0x14]
shr ecx, 0x18
xor eax, dword [ecx*4 + 0x41b968]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x18]
mov ecx, eax
add ecx, 4
mov dword [ebp - 0x18], ecx
mov eax, dword [eax]
mov ecx, dword [ebp - 0x14]
xor ecx, eax
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
and eax, 0xff
mov eax, dword [eax*4 + 0x41c568]
mov ecx, dword [ebp - 0x14]
shr ecx, 8
and ecx, 0xff
xor eax, dword [ecx*4 + 0x41c168]
mov ecx, dword [ebp - 0x14]
shr ecx, 0x10
and ecx, 0xff
xor eax, dword [ecx*4 + 0x41bd68]
mov ecx, dword [ebp - 0x14]
shr ecx, 0x18
xor eax, dword [ecx*4 + 0x41b968]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x18]
mov ecx, eax
add ecx, 4
mov dword [ebp - 0x18], ecx
mov eax, dword [eax]
mov ecx, dword [ebp - 0x14]
xor ecx, eax
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
and eax, 0xff
mov eax, dword [eax*4 + 0x41c568]
mov ecx, dword [ebp - 0x14]
shr ecx, 8
and ecx, 0xff
xor eax, dword [ecx*4 + 0x41c168]
mov ecx, dword [ebp - 0x14]
shr ecx, 0x10
and ecx, 0xff
xor eax, dword [ecx*4 + 0x41bd68]
mov ecx, dword [ebp - 0x14]
shr ecx, 0x18
xor eax, dword [ecx*4 + 0x41b968]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x18]
mov ecx, eax
add ecx, 4
mov dword [ebp - 0x18], ecx
mov eax, dword [eax]
mov ecx, dword [ebp - 0x14]
xor ecx, eax
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
and eax, 0xff
mov eax, dword [eax*4 + 0x41c568]
mov ecx, dword [ebp - 0x14]
shr ecx, 8
and ecx, 0xff
xor eax, dword [ecx*4 + 0x41c168]
mov ecx, dword [ebp - 0x14]
shr ecx, 0x10
and ecx, 0xff
xor eax, dword [ecx*4 + 0x41bd68]
mov ecx, dword [ebp - 0x14]
shr ecx, 0x18
xor eax, dword [ecx*4 + 0x41b968]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x18]
mov ecx, eax
add ecx, 4
mov dword [ebp - 0x18], ecx
mov eax, dword [eax]
mov ecx, dword [ebp - 0x14]
xor ecx, eax
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
and eax, 0xff
mov eax, dword [eax*4 + 0x41c568]
mov ecx, dword [ebp - 0x14]
shr ecx, 8
and ecx, 0xff
xor eax, dword [ecx*4 + 0x41c168]
mov ecx, dword [ebp - 0x14]
shr ecx, 0x10
and ecx, 0xff
xor eax, dword [ecx*4 + 0x41bd68]
mov ecx, dword [ebp - 0x14]
shr ecx, 0x18
xor eax, dword [ecx*4 + 0x41b968]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x10]
sub eax, 0x20
mov dword [ebp - 0x10], eax
jmp 0x40861b
jmp 0x408922
cmp dword [ebp - 0x10], 4
jb 0x408995
mov eax, dword [ebp - 0x18]
mov ecx, eax
add ecx, 4
mov dword [ebp - 0x18], ecx
mov eax, dword [eax]
mov ecx, dword [ebp - 0x14]
xor ecx, eax
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
and eax, 0xff
mov eax, dword [eax*4 + 0x41c568]
mov ecx, dword [ebp - 0x14]
shr ecx, 8
and ecx, 0xff
xor eax, dword [ecx*4 + 0x41c168]
mov ecx, dword [ebp - 0x14]
shr ecx, 0x10
and ecx, 0xff
xor eax, dword [ecx*4 + 0x41bd68]
mov ecx, dword [ebp - 0x14]
shr ecx, 0x18
xor eax, dword [ecx*4 + 0x41b968]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x10]
sub eax, 4
mov dword [ebp - 0x10], eax
jmp 0x408922
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0x10], 0
je 0x4089e7
jmp 0x4089a6
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
mov edx, ecx
add edx, 1
mov dword [ebp - 0xc], edx
movzx ecx, byte [ecx]
xor eax, ecx
and eax, 0xff
mov eax, dword [eax*4 + 0x41b968]
mov ecx, dword [ebp - 0x14]
shr ecx, 8
xor eax, ecx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x10]
add eax, 0xffffffff
mov dword [ebp - 0x10], eax
cmp eax, 0
jne 0x4089a6
jmp 0x4089e7
mov eax, dword [ebp - 0x14]
xor eax, 0xffffffff
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
add esp, 0x1c
pop ebp
ret