Function at 0x4f7d30
Capabilities:
Compute adler32 checksum

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
push eax
mov edi, dword [ebp + 0x10]
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
test ebx, ebx
je 0x4f7d5e
cmp edi, 0x40
jb 0x4f7d5e
cmp dword [0x689534], 0
je 0x4f7d5e
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
jmp fcn.00463fa0
mov esi, eax
shr esi, 0x10
movzx ecx, ax
cmp edi, 1
jne 0x4f7d9e
movzx eax, byte [ebx]
lea edx, [ecx + eax]
cmp edx, 0xfff1
lea eax, [ecx + eax - 0xfff1]
cmovb eax, edx
add esi, eax
mov ecx, esi
shl ecx, 0x10
cmp esi, 0xfff1
lea esi, [ecx + 0xf0000]
cmovb esi, ecx
or esi, eax
jmp 0x4f8015
test ebx, ebx
je 0x4f7dea
cmp edi, 0x10
jae 0x4f7e01
test edi, edi
je 0x4f7dbd
xor eax, eax
nop dword [eax]
movzx edx, byte [ebx + eax]
add ecx, edx
add esi, ecx
inc eax
cmp edi, eax
jne 0x4f7db0
lea edi, [ecx - 0xfff1]
cmp ecx, 0xfff1
cmovb edi, ecx
mov ecx, 0x80078071
mov eax, esi
mul ecx
shr edx, 0xf
imul eax, edx, 0xfff1
sub esi, eax
shl esi, 0x10
or esi, edi
jmp 0x4f8015
mov esi, 1
test edi, edi
jne 0x4f8015
call fcn.00549360
jmp 0x4f8015
cmp edi, 0x15b0
jb 0x4f7f40
nop dword [eax]
add edi, 0xffffea50
mov dword [ebp - 0x10], edi
mov eax, 0xffffea50
nop
movzx edx, byte [ebx + eax + 0x15b0]
add edx, ecx
add esi, edx
movzx ecx, byte [ebx + eax + 0x15b1]
add ecx, edx
add esi, ecx
movzx edx, byte [ebx + eax + 0x15b2]
add edx, ecx
add esi, edx
movzx ecx, byte [ebx + eax + 0x15b3]
add ecx, edx
add esi, ecx
movzx edx, byte [ebx + eax + 0x15b4]
add edx, ecx
add esi, edx
movzx ecx, byte [ebx + eax + 0x15b5]
add ecx, edx
add esi, ecx
movzx edx, byte [ebx + eax + 0x15b6]
add edx, ecx
add esi, edx
movzx ecx, byte [ebx + eax + 0x15b7]
add ecx, edx
add esi, ecx
movzx edx, byte [ebx + eax + 0x15b8]
add edx, ecx
add esi, edx
movzx ecx, byte [ebx + eax + 0x15b9]
add ecx, edx
add esi, ecx
movzx edx, byte [ebx + eax + 0x15ba]
add edx, ecx
add esi, edx
movzx ecx, byte [ebx + eax + 0x15bb]
add ecx, edx
add esi, ecx
movzx edx, byte [ebx + eax + 0x15bc]
add edx, ecx
add esi, edx
movzx ecx, byte [ebx + eax + 0x15bd]
add ecx, edx
add esi, ecx
movzx edx, byte [ebx + eax + 0x15be]
add edx, ecx
add esi, edx
movzx ecx, byte [ebx + eax + 0x15bf]
add ecx, edx
add esi, ecx
add eax, 0x10
jne 0x4f7e20
mov eax, ecx
mov edx, 0x80078071
mul edx
mov edi, edx
shr edi, 0xf
mov eax, esi
mov edx, 0x80078071
mul edx
imul eax, edi, 0xfff1
sub ecx, eax
shr edx, 0xf
imul eax, edx, 0xfff1
sub esi, eax
add ebx, 0x15b0
mov edi, dword [ebp - 0x10]
cmp edi, 0x15af
ja 0x4f7e10
test edi, edi
je 0x4f8010
cmp edi, 0x10
jb 0x4f7fd2
nop dword [eax]
add edi, 0xfffffff0
movzx eax, byte [ebx]
add eax, ecx
add esi, eax
movzx ecx, byte [ebx + 1]
add ecx, eax
add esi, ecx
movzx eax, byte [ebx + 2]
add eax, ecx
add esi, eax
movzx ecx, byte [ebx + 3]
add ecx, eax
add esi, ecx
movzx eax, byte [ebx + 4]
add eax, ecx
add esi, eax
movzx ecx, byte [ebx + 5]
add ecx, eax
add esi, ecx
movzx eax, byte [ebx + 6]
add eax, ecx
add esi, eax
movzx ecx, byte [ebx + 7]
add ecx, eax
add esi, ecx
movzx eax, byte [ebx + 8]
add eax, ecx
add esi, eax
movzx ecx, byte [ebx + 9]
add ecx, eax
add esi, ecx
movzx eax, byte [ebx + 0xa]
add eax, ecx
add esi, eax
movzx ecx, byte [ebx + 0xb]
add ecx, eax
add esi, ecx
movzx eax, byte [ebx + 0xc]
add eax, ecx
add esi, eax
movzx ecx, byte [ebx + 0xd]
add ecx, eax
add esi, ecx
movzx eax, byte [ebx + 0xe]
add eax, ecx
add esi, eax
movzx ecx, byte [ebx + 0xf]
add ecx, eax
add esi, ecx
add ebx, 0x10
cmp edi, 0xf
ja 0x4f7f40
test edi, edi
je 0x4f7fed
xor eax, eax
nop word cs:[eax + eax]
movzx edx, byte [ebx + eax]
add ecx, edx
add esi, ecx
inc eax
cmp edi, eax
jne 0x4f7fe0
mov edi, 0x80078071
mov eax, ecx
mul edi
shr edx, 0xf
imul eax, edx, 0xfff1
sub ecx, eax
mov eax, esi
mul edi
shr edx, 0xf
imul eax, edx, 0xfff1
sub esi, eax
shl esi, 0x10
or esi, ecx
mov eax, esi
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
ret