Function at 0x5fb5a0
Capabilities:
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x30
mov esi, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
test ecx, ecx
jne 0x5fb5c8
xor edi, edi
test esi, esi
jne 0x5fb5be
call fcn.0058b300
mov eax, edi
add esp, 0x30
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [ebp + 8]
cmp esi, 0x40
jb 0x5fb5dd
cmp dword [0x7be564], 0
jne 0x5fb6e0
not edx
cmp esi, 0x17
jae 0x5fb712
cmp esi, 8
jae 0x5fb61b
test esi, esi
je 0x5fb6d9
xor eax, eax
mov edi, edx
mov ebx, esi
movzx esi, byte [ecx + eax]
movzx edx, dl
xor edx, esi
mov esi, ebx
shr edi, 8
xor edi, dword [edx*4 + 0x790a40]
inc eax
mov edx, edi
cmp ebx, eax
jne 0x5fb5f9
not edi
jmp 0x5fb5be
mov ebx, 0xff
mov edi, edx
shr edx, 8
mov eax, ecx
movzx ecx, byte [ecx]
and edi, ebx
xor edi, ecx
xor edx, dword [edi*4 + 0x790a40]
mov ecx, edx
shr ecx, 8
movzx edi, byte [eax + 1]
and edx, ebx
xor edx, edi
xor ecx, dword [edx*4 + 0x790a40]
mov edx, ecx
shr edx, 8
movzx edi, byte [eax + 2]
and ecx, ebx
xor ecx, edi
xor edx, dword [ecx*4 + 0x790a40]
mov ecx, edx
shr ecx, 8
movzx edi, byte [eax + 3]
and edx, ebx
xor edx, edi
xor ecx, dword [edx*4 + 0x790a40]
mov edx, ecx
shr edx, 8
movzx edi, byte [eax + 4]
and ecx, ebx
xor ecx, edi
xor edx, dword [ecx*4 + 0x790a40]
mov ecx, edx
shr ecx, 8
movzx edi, byte [eax + 5]
and edx, ebx
xor edx, edi
xor ecx, dword [edx*4 + 0x790a40]
mov edx, ecx
shr edx, 8
movzx edi, byte [eax + 6]
and ecx, ebx
xor ecx, edi
xor edx, dword [ecx*4 + 0x790a40]
mov edi, edx
movzx ecx, byte [eax + 7]
and edx, ebx
xor edx, ecx
mov ecx, eax
shr edi, 8
xor edi, dword [edx*4 + 0x790a40]
mov edx, edi
add esi, 0xfffffff8
add ecx, 8
cmp esi, 7
jbe 0x5fb5ed
jmp 0x5fb620
mov edi, edx
jmp 0x5fb617
mov edi, esi
and edi, 0xfffffff0
not edx
push edx
push edi
push ecx
mov ebx, ecx
call fcn.005db0a0
add esp, 0xc
xor ecx, ecx
mov edx, esi
and edx, 0xf
cmovne ecx, edi
and esi, 0xf
je 0x5fb8ab
add ebx, ecx
mov ecx, ebx
mov edx, eax
jmp 0x5fb5e8
mov ebx, edx
test cl, 3
jne 0x5fba7a
mov edx, 0xcccccccd
mov eax, esi
mul edx
shr edx, 4
lea eax, [edx*4]
lea eax, [eax + eax*4]
mov dword [ebp - 0x3c], eax
mov edi, edx
dec edi
jne 0x5fb8b2
xor eax, eax
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x1c], 0
mov edx, ebx
mov dword [ebp - 0x10], ecx
xor edx, dword [ecx]
mov ecx, edx
shr ecx, 8
mov edi, 0xff
and edx, edi
xor ecx, dword [edx*4 + 0x790a40]
mov edx, ecx
shr edx, 8
and ecx, edi
xor edx, dword [ecx*4 + 0x790a40]
mov ebx, edx
shr ebx, 8
and edx, edi
xor ebx, dword [edx*4 + 0x790a40]
mov ecx, ebx
shr ecx, 8
and ebx, edi
xor ecx, dword [ebx*4 + 0x790a40]
xor ecx, eax
mov eax, dword [ebp - 0x10]
xor ecx, dword [eax + 4]
mov eax, ecx
shr eax, 8
and ecx, edi
xor eax, dword [ecx*4 + 0x790a40]
mov ecx, eax
shr ecx, 8
and eax, edi
xor ecx, dword [eax*4 + 0x790a40]
mov eax, ecx
shr eax, 8
and ecx, edi
xor eax, dword [ecx*4 + 0x790a40]
mov ecx, eax
shr ecx, 8
and eax, edi
xor ecx, dword [eax*4 + 0x790a40]
xor ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
xor ecx, dword [eax + 8]
mov eax, ecx
shr eax, 8
and ecx, edi
xor eax, dword [ecx*4 + 0x790a40]
mov ecx, eax
shr ecx, 8
and eax, edi
xor ecx, dword [eax*4 + 0x790a40]
mov edx, ecx
shr edx, 8
and ecx, edi
xor edx, dword [ecx*4 + 0x790a40]
mov eax, edx
shr eax, 8
and edx, edi
xor eax, dword [edx*4 + 0x790a40]
xor eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x10]
xor eax, dword [ecx + 0xc]
mov ecx, eax
shr ecx, 8
and eax, edi
xor ecx, dword [eax*4 + 0x790a40]
mov eax, ecx
shr eax, 8
and ecx, edi
xor eax, dword [ecx*4 + 0x790a40]
mov ecx, eax
shr ecx, 8
and eax, edi
xor ecx, dword [eax*4 + 0x790a40]
mov eax, ecx
shr eax, 8
and ecx, edi
xor eax, dword [ecx*4 + 0x790a40]
xor eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x10]
xor eax, dword [ecx + 0x10]
mov ecx, eax
shr ecx, 8
and eax, edi
xor ecx, dword [eax*4 + 0x790a40]
mov eax, ecx
shr eax, 8
and ecx, edi
xor eax, dword [ecx*4 + 0x790a40]
sub esi, dword [ebp - 0x3c]
mov ecx, eax
shr ecx, 8
and eax, edi
xor ecx, dword [eax*4 + 0x790a40]
mov edx, ecx
and ecx, edi
shr edx, 8
xor edx, dword [ecx*4 + 0x790a40]
mov ecx, dword [ebp - 0x10]
add ecx, 0x14
jmp 0x5fb5e8
mov edi, eax
jmp 0x5fb617
lea eax, [edx + edx*4]
lea eax, [ecx + eax*4]
add eax, 0xffffffec
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
xor eax, eax
mov edx, ebx
mov dword [ebp - 0x10], ecx
xor edx, dword [ecx]
mov dword [ebp - 0x30], edx
mov ecx, edx
mov ebx, 0xff
and ecx, ebx
mov dword [ebp - 0x20], ecx
mov ecx, edx
shr ecx, 8
and ecx, ebx
mov ecx, dword [ecx*4 + 0x791240]
mov edx, dword [ebp - 0x20]
xor ecx, dword [edx*4 + 0x790e40]
mov dword [ebp - 0x38], ecx
mov ecx, dword [ebp - 0x10]
xor eax, dword [ecx + 4]
mov ecx, eax
and ecx, ebx
mov edx, eax
shr edx, 8
and edx, ebx
mov edx, dword [edx*4 + 0x791240]
xor edx, dword [ecx*4 + 0x790e40]
mov dword [ebp - 0x20], edx
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
xor edx, dword [ecx + 8]
mov ecx, edx
mov dword [ebp - 0x14], edx
and ecx, ebx
shr edx, 8
and edx, ebx
mov edx, dword [edx*4 + 0x791240]
xor edx, dword [ecx*4 + 0x790e40]
mov dword [ebp - 0x2c], edx
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x18]
xor edx, dword [ecx + 0xc]
mov dword [ebp - 0x18], edx
mov ecx, edx
and ecx, ebx
shr edx, 8
and edx, ebx
mov edx, dword [edx*4 + 0x791240]
xor edx, dword [ecx*4 + 0x790e40]
mov dword [ebp - 0x28], edx
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x1c]
xor edx, dword [ecx + 0x10]
mov dword [ebp - 0x1c], edx
mov ecx, edx
and ecx, ebx
shr edx, 8
and edx, ebx
mov edx, dword [edx*4 + 0x791240]
xor edx, dword [ecx*4 + 0x790e40]
mov dword [ebp - 0x24], edx
mov ecx, dword [ebp - 0x30]
shr ecx, 0xe
mov edx, 0x3fc
and ecx, edx
mov ebx, dword [ebp - 0x38]
xor ebx, dword [ecx + 0x791640]
mov ecx, eax
shr ecx, 0xe
and ecx, edx
mov edx, dword [ebp - 0x20]
xor edx, dword [ecx + 0x791640]
mov dword [ebp - 0x20], edx
mov ecx, dword [ebp - 0x14]
shr ecx, 0xe
mov edx, 0x3fc
and ecx, edx
mov edx, dword [ebp - 0x2c]
xor edx, dword [ecx + 0x791640]
mov dword [ebp - 0x2c], edx
mov ecx, dword [ebp - 0x18]
shr ecx, 0xe
mov edx, 0x3fc
and ecx, edx
mov edx, dword [ebp - 0x28]
xor edx, dword [ecx + 0x791640]
mov dword [ebp - 0x28], edx
mov ecx, dword [ebp - 0x1c]
shr ecx, 0xe
mov edx, 0x3fc
and ecx, edx
mov edx, dword [ebp - 0x24]
xor edx, dword [ecx + 0x791640]
mov dword [ebp - 0x24], edx
mov ecx, dword [ebp - 0x30]
shr ecx, 0x18
mov edx, ebx
xor edx, dword [ecx*4 + 0x791a40]
mov ecx, eax
shr ecx, 0x18
mov eax, dword [ebp - 0x20]
xor eax, dword [ecx*4 + 0x791a40]
mov ecx, dword [ebp - 0x14]
shr ecx, 0x18
mov ebx, dword [ebp - 0x2c]
xor ebx, dword [ecx*4 + 0x791a40]
mov dword [ebp - 0x14], ebx
mov ecx, dword [ebp - 0x18]
shr ecx, 0x18
mov ebx, dword [ebp - 0x28]
xor ebx, dword [ecx*4 + 0x791a40]
mov dword [ebp - 0x18], ebx
mov ecx, dword [ebp - 0x1c]
shr ecx, 0x18
mov ebx, dword [ebp - 0x24]
xor ebx, dword [ecx*4 + 0x791a40]
mov dword [ebp - 0x1c], ebx
mov ecx, dword [ebp - 0x10]
add ecx, 0x14
dec edi
jne 0x5fb8d7
mov ecx, dword [ebp - 0x34]
jmp 0x5fb758
lea eax, [ecx + 1]
movzx edx, byte [ecx]
movzx edi, bl
xor edi, edx
mov edx, ecx
mov ecx, ebx
shr ecx, 8
mov ebx, ecx
mov ecx, edx
xor ebx, dword [edi*4 + 0x790a40]
inc ecx
cmp esi, 1
lea esi, [esi - 1]
je 0x5fb71d
mov edx, eax
and edx, 3
inc eax
test edx, edx
je 0x5fb71d
jmp 0x5fba7d