Function at 0xeadfb0
Capabilities:
Compute adler32 checksum
Enumerate pe sections

Disassembly:
push ebp
push edi
push esi
push ebx
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
mov ebx, ecx
and ecx, 0xffff
shr ebx, 0x10
cmp edi, 1
je 0xeae113
test esi, esi
mov ebp, 1
je 0xeae0ca
cmp edi, 0xf
jbe 0xeae0d1
cmp edi, 0x15af
mov ebp, 0x80078071
jbe 0xeae14d
sub edi, 0x15b0
lea eax, [esi + 0x15b0]
movzx edx, byte [esi]
add ecx, edx
movzx edx, byte [esi + 1]
add ebx, ecx
add ecx, edx
movzx edx, byte [esi + 2]
add ebx, ecx
add ecx, edx
movzx edx, byte [esi + 3]
add ebx, ecx
add ecx, edx
movzx edx, byte [esi + 4]
add ebx, ecx
add ecx, edx
movzx edx, byte [esi + 5]
add ebx, ecx
add ecx, edx
movzx edx, byte [esi + 6]
add ebx, ecx
add ecx, edx
movzx edx, byte [esi + 7]
add ebx, ecx
add ecx, edx
movzx edx, byte [esi + 8]
add ebx, ecx
add ecx, edx
movzx edx, byte [esi + 9]
add ebx, ecx
add ecx, edx
movzx edx, byte [esi + 0xa]
add ebx, ecx
add ecx, edx
movzx edx, byte [esi + 0xb]
add ebx, ecx
add ecx, edx
movzx edx, byte [esi + 0xc]
add ebx, ecx
add ecx, edx
movzx edx, byte [esi + 0xd]
add ebx, ecx
add ecx, edx
movzx edx, byte [esi + 0xe]
add ebx, ecx
add ecx, edx
movzx edx, byte [esi + 0xf]
add esi, 0x10
add ebx, ecx
add ecx, edx
add ebx, ecx
cmp esi, eax
jne 0xeae007
mov eax, ecx
mul ebp
mov eax, ebx
shr edx, 0xf
imul edx, edx, 0xfff1
sub ecx, edx
mul ebp
shr edx, 0xf
imul edx, edx, 0xfff1
sub ebx, edx
cmp edi, 0x15af
ja 0xeadffb
test edi, edi
jne 0xeae144
mov ebp, ebx
shl ebp, 0x10
or ebp, ecx
pop ebx
mov eax, ebp
pop esi
pop edi
pop ebp
ret
test edi, edi
je 0xeae0e4
movzx eax, byte [esi]
add esi, 1
add ecx, eax
add ebx, ecx
sub edi, 1
jne 0xeae0d5
cmp ecx, 0xfff1
mov eax, ebx
lea ebp, [ecx - 0xfff1]
mov edx, 0x80078071
cmovb ebp, ecx
mul edx
shr edx, 0xf
imul edx, edx, 0xfff1
sub ebx, edx
shl ebx, 0x10
or ebp, ebx
mov eax, ebp
pop ebx
pop esi
pop edi
pop ebp
ret
movzx eax, byte [esi]
add ecx, eax
cmp ecx, 0xfff1
lea eax, [ecx - 0xfff1]
cmovae ecx, eax
add ebx, ecx
cmp ebx, 0xfff1
lea ebp, [ebx - 0xfff1]
cmovb ebp, ebx
shl ebp, 0x10
or ebp, ecx
pop ebx
mov eax, ebp
pop esi
pop edi
pop ebp
ret
cmp edi, 0xf
jbe 0xeae1ee
mov edx, edi
mov eax, esi
movzx ebp, byte [eax]
sub edx, 0x10
add ecx, ebp
movzx ebp, byte [eax + 1]
add ebx, ecx
add ecx, ebp
movzx ebp, byte [eax + 2]
add ebx, ecx
add ecx, ebp
movzx ebp, byte [eax + 3]
add ebx, ecx
add ecx, ebp
movzx ebp, byte [eax + 4]
add ebx, ecx
add ecx, ebp
movzx ebp, byte [eax + 5]
add ebx, ecx
add ecx, ebp
movzx ebp, byte [eax + 6]
add ebx, ecx
add ecx, ebp
movzx ebp, byte [eax + 7]
add ebx, ecx
add ecx, ebp
movzx ebp, byte [eax + 8]
add ebx, ecx
add ecx, ebp
movzx ebp, byte [eax + 9]
add ebx, ecx
add ecx, ebp
movzx ebp, byte [eax + 0xa]
add ebx, ecx
add ecx, ebp
movzx ebp, byte [eax + 0xb]
add ebx, ecx
add ecx, ebp
movzx ebp, byte [eax + 0xc]
add ebx, ecx
add ecx, ebp
movzx ebp, byte [eax + 0xd]
add ebx, ecx
add ecx, ebp
movzx ebp, byte [eax + 0xe]
add ebx, ecx
add ecx, ebp
movzx ebp, byte [eax + 0xf]
add ebx, ecx
add ecx, ebp
add ebx, ecx
add eax, 0x10
cmp edx, 0xf
ja 0xeae151
lea eax, [edi - 0x10]
and eax, 0xfffffff0
and edi, 0xf
lea esi, [esi + eax + 0x10]
je 0xeae205
sub edi, 1
xor eax, eax
add edi, 1
movzx edx, byte [esi + eax]
add eax, 1
add ecx, edx
add ebx, ecx
cmp eax, edi
jne 0xeae1f6
mov eax, ecx
mov esi, 0x80078071
mul esi
mov eax, ebx
shr edx, 0xf
imul edx, edx, 0xfff1
sub ecx, edx
mul esi
shr edx, 0xf
imul edx, edx, 0xfff1
sub ebx, edx
mov ebp, ebx
shl ebp, 0x10
or ebp, ecx
jmp 0xeae0ca