Function at 0x5efa2c
Capabilities:
Compute adler32 checksum

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
push esi
mov ebx, edx
push edi
mov edi, ecx
movzx esi, byte [ebx]
movzx eax, byte [ebx + 1]
shl esi, 8
add esi, eax
movzx eax, byte [ebx + 2]
shl esi, 8
add esi, eax
movzx eax, byte [ebx + 3]
shl esi, 8
add esi, eax
cmp esi, 0x57bc0000
jne 0x5efcda
movzx ecx, byte [ebx + 4]
movzx eax, byte [ebx + 5]
shl ecx, 8
add ecx, eax
movzx eax, byte [ebx + 6]
shl ecx, 8
add ecx, eax
movzx eax, byte [ebx + 7]
shl ecx, 8
add ecx, eax
jne 0x5efcda
movzx ecx, byte [ebx + 8]
movzx eax, byte [ebx + 9]
shl ecx, 8
add ecx, eax
mov dword [0x10091890], ebx
movzx eax, byte [ebx + 0xa]
shl ecx, 8
add ecx, eax
mov dword [0x10091898], edi
movzx eax, byte [ebx + 0xb]
add ebx, 0x10
shl ecx, 8
add eax, ecx
mov dword [0x1009189c], edi
mov ecx, ebx
mov dword [ebp - 0x18], eax
lea esi, [eax + edi]
mov dword [ebp - 0x1c], esi
mov dword [0x10091894], esi
call fcn.005ef70c
cmp eax, ebx
mov dword [ebp - 0x14], eax
mov ebx, dword [0x1005d2e0]
je 0x5efb1d
cmp dword [0x1009189c], esi
jbe 0x5efb0a
push 0x1337
push 0x100881a0
push 0x10088eec
call ebx
add esp, 0xc
cmp dword [0x1009189c], esi
ja 0x5efcda
mov eax, dword [ebp - 0x14]
mov ecx, eax
mov esi, eax
call fcn.005ef70c
cmp eax, esi
mov dword [ebp - 0x14], eax
mov esi, dword [ebp - 0x1c]
jne 0x5efadf
mov esi, dword [ebp - 0x18]
add esi, edi
cmp byte [eax], 5
jne 0x5efcc6
cmp byte [eax + 1], 0xfa
jne 0x5efcc6
cmp dword [0x1009189c], esi
je 0x5efb5d
push 0x132d
push 0x100881a0
push 0x10088eb4
call ebx
add esp, 0xc
cmp dword [0x1009189c], esi
jne 0x5efcda
mov esi, dword [ebp - 0x18]
mov eax, 0x5e6ea9af
mul esi
xor ebx, ebx
mov dword [ebp - 0x1c], esi
shr edx, 0xb
mov ecx, 1
imul eax, edx, 0x15b0
mov edx, esi
mov dword [ebp - 0x10], ebx
sub edx, eax
mov dword [ebp - 4], edx
test esi, esi
je 0x5efc91
xor esi, esi
cmp edx, 7
jbe 0x5efbee
mov eax, 7
sub eax, edi
mov dword [ebp - 0x10], eax
movzx eax, byte [edi]
add esi, 8
add ecx, eax
movzx eax, byte [edi + 1]
add ebx, ecx
add ecx, eax
movzx eax, byte [edi + 2]
add ebx, ecx
add ecx, eax
movzx eax, byte [edi + 3]
add ebx, ecx
add ecx, eax
movzx eax, byte [edi + 4]
add ebx, ecx
add ecx, eax
movzx eax, byte [edi + 5]
add ebx, ecx
add ecx, eax
movzx eax, byte [edi + 6]
add ebx, ecx
add ecx, eax
movzx eax, byte [edi + 7]
add ebx, ecx
add edi, 8
add ecx, eax
mov eax, dword [ebp - 0x10]
add eax, edi
add ebx, ecx
cmp eax, edx
jb 0x5efb9d
mov dword [ebp - 0x10], ebx
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], edx
cmp esi, eax
jae 0x5efc56
sub eax, esi
cmp eax, 2
jb 0x5efc42
mov edx, dword [ebp - 4]
sub edx, esi
sub edx, 2
shr edx, 1
inc edx
lea esi, [esi + edx*2]
mov dword [ebp - 0x20], esi
mov esi, dword [ebp - 8]
mov ebx, esi
nop
movzx eax, byte [edi]
add ecx, eax
movzx eax, byte [edi + 1]
add esi, ecx
add edi, 2
add ecx, eax
add ebx, ecx
sub edx, 1
jne 0x5efc1c
mov dword [ebp - 8], esi
mov esi, dword [ebp - 0x20]
mov edx, dword [ebp - 8]
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp - 0x10]
cmp esi, dword [ebp - 4]
jae 0x5efc4f
movzx eax, byte [edi]
add ecx, eax
add ebx, ecx
inc edi
mov eax, dword [ebp - 0xc]
add eax, edx
add ebx, eax
mov eax, 0x80078071
mul ecx
shr edx, 0xf
imul eax, edx, 0xffff000f
add ecx, eax
mov eax, 0x80078071
mul ebx
shr edx, 0xf
imul eax, edx, 0xffff000f
mov edx, dword [ebp - 4]
add ebx, eax
sub dword [ebp - 0x1c], edx
mov edx, 0x15b0
mov dword [ebp - 0x10], ebx
mov dword [ebp - 4], edx
jne 0x5efb8c
mov edx, dword [ebp - 0x14]
shl ebx, 0x10
add ebx, ecx
movzx esi, byte [edx + 2]
movzx eax, byte [edx + 3]
shl esi, 8
add esi, eax
movzx eax, byte [edx + 4]
movzx edx, byte [edx + 5]
shl esi, 8
add esi, eax
shl esi, 8
add esi, edx
cmp ebx, esi
jne 0x5efcda
mov eax, dword [ebp - 0x18]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x1333
push 0x100881a0
push 0x1005d510
call ebx
add esp, 0xc
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret