Function at 0x54f4e0
Capabilities:
Compute adler32 checksum

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
mov esi, ecx
mov ebx, edx
push edi
mov ecx, 0x70ac9b
call fcn.0056b0a5
mov edi, esi
movzx ecx, si
mov esi, dword [ebp + 8]
shr edi, 0x10
cmp esi, 1
jne 0x54f534
movzx eax, byte [ebx]
add eax, ecx
cmp eax, 0xfff1
lea edx, [eax - 0xfff1]
cmovb edx, eax
lea eax, [edx + edi]
cmp eax, 0xfff1
lea ecx, [eax - 0xfff1]
pop edi
cmovb ecx, eax
shl ecx, 0x10
or ecx, edx
pop esi
mov eax, ecx
pop ebx
pop ebp
ret
test ebx, ebx
jne 0x54f540
pop edi
pop esi
lea eax, [ebx + 1]
pop ebx
pop ebp
ret
cmp esi, 0x10
jae 0x54f58b
test esi, esi
je 0x54f55f
nop dword [eax]
movzx eax, byte [ebx]
lea ebx, [ebx + 1]
add ecx, eax
add edi, ecx
sub esi, 1
jne 0x54f550
cmp ecx, 0xfff1
lea esi, [ecx - 0xfff1]
mov eax, 0x80078071
cmovb esi, ecx
mul edi
shr edx, 0xf
mov eax, edx
shl eax, 4
sub eax, edx
add eax, edi
shl eax, 0x10
pop edi
or eax, esi
pop esi
pop ebx
pop ebp
ret
cmp esi, 0x15b0
jb 0x54f679
mov eax, 0x5e6ea9af
mul esi
shr edx, 0xb
mov dword [ebp + 8], edx
nop dword [eax]
nop dword [eax + eax]
sub esi, 0x15b0
mov edx, 0x15b
nop dword [eax + eax]
movzx eax, byte [ebx]
add ecx, eax
movzx eax, byte [ebx + 1]
add edi, ecx
add ecx, eax
movzx eax, byte [ebx + 2]
add edi, ecx
add ecx, eax
movzx eax, byte [ebx + 3]
add edi, ecx
add ecx, eax
movzx eax, byte [ebx + 4]
add edi, ecx
add ecx, eax
movzx eax, byte [ebx + 5]
add edi, ecx
add ecx, eax
movzx eax, byte [ebx + 6]
add edi, ecx
add ecx, eax
movzx eax, byte [ebx + 7]
add edi, ecx
add ecx, eax
movzx eax, byte [ebx + 8]
add edi, ecx
add ecx, eax
movzx eax, byte [ebx + 9]
add edi, ecx
add ecx, eax
movzx eax, byte [ebx + 0xa]
add edi, ecx
add ecx, eax
movzx eax, byte [ebx + 0xb]
add edi, ecx
add ecx, eax
movzx eax, byte [ebx + 0xc]
add edi, ecx
add ecx, eax
movzx eax, byte [ebx + 0xd]
add edi, ecx
add ecx, eax
movzx eax, byte [ebx + 0xe]
add edi, ecx
add ecx, eax
movzx eax, byte [ebx + 0xf]
add edi, ecx
add ebx, 0x10
add ecx, eax
add edi, ecx
sub edx, 1
jne 0x54f5c0
mov eax, 0x80078071
mul ecx
shr edx, 0xf
imul eax, edx, 0xffff000f
add ecx, eax
mov eax, 0x80078071
mul edi
shr edx, 0xf
imul eax, edx, 0xffff000f
add edi, eax
sub dword [ebp + 8], 1
jne 0x54f5b0
test esi, esi
je 0x54f755
cmp esi, 0x10
jb 0x54f71e
mov edx, esi
shr edx, 4
nop
movzx eax, byte [ebx]
sub esi, 0x10
add ecx, eax
movzx eax, byte [ebx + 1]
add edi, ecx
add ecx, eax
movzx eax, byte [ebx + 2]
add edi, ecx
add ecx, eax
movzx eax, byte [ebx + 3]
add edi, ecx
add ecx, eax
movzx eax, byte [ebx + 4]
add edi, ecx
add ecx, eax
movzx eax, byte [ebx + 5]
add edi, ecx
add ecx, eax
movzx eax, byte [ebx + 6]
add edi, ecx
add ecx, eax
movzx eax, byte [ebx + 7]
add edi, ecx
add ecx, eax
movzx eax, byte [ebx + 8]
add edi, ecx
add ecx, eax
movzx eax, byte [ebx + 9]
add edi, ecx
add ecx, eax
movzx eax, byte [ebx + 0xa]
add edi, ecx
add ecx, eax
movzx eax, byte [ebx + 0xb]
add edi, ecx
add ecx, eax
movzx eax, byte [ebx + 0xc]
add edi, ecx
add ecx, eax
movzx eax, byte [ebx + 0xd]
add edi, ecx
add ecx, eax
movzx eax, byte [ebx + 0xe]
add edi, ecx
add ecx, eax
movzx eax, byte [ebx + 0xf]
add edi, ecx
add ebx, 0x10
add ecx, eax
add edi, ecx
sub edx, 1
jne 0x54f690
test esi, esi
je 0x54f731
movzx eax, byte [ebx]
lea ebx, [ebx + 1]
add ecx, eax
add edi, ecx
sub esi, 1
jne 0x54f722
mov eax, 0x80078071
mul ecx
shr edx, 0xf
imul eax, edx, 0xffff000f
add ecx, eax
mov eax, 0x80078071
mul edi
shr edx, 0xf
imul edx, edx, 0xffff000f
add edi, edx
shl edi, 0x10
or edi, ecx
mov eax, edi
pop edi
pop esi
pop ebx
pop ebp
ret