Function at 0x4357d3
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
shr ebx, 0x10
and ecx, 0xffff
cmp edi, 1
je 0x4359f5
test esi, esi
mov eax, 1
je 0x435842
cmp edi, 0xf
ja 0x435847
dec edi
cmp edi, 0xffffffff
je 0x435819
movzx edx, byte [esi]
dec edi
inc esi
add ecx, edx
add ebx, ecx
cmp edi, 0xffffffff
jne 0x43580b
cmp ecx, 0xfff0
jbe 0x435827
sub ecx, 0xfff1
mov eax, ebx
mov esi, 0x80078071
mul esi
mov eax, ebx
shr edx, 0xf
imul edx, edx, 0xfff1
sub eax, edx
shl eax, 0x10
or eax, ecx
pop ebx
pop esi
pop edi
pop ebp
ret
cmp edi, 0x15af
jbe 0x435916
mov ebp, 0x80078071
sub edi, 0x15b0
mov edx, 0x15b
movzx eax, byte [esi]
add ecx, eax
add ebx, ecx
movzx eax, byte [esi + 1]
add ecx, eax
add ebx, ecx
movzx eax, byte [esi + 2]
add ecx, eax
add ebx, ecx
movzx eax, byte [esi + 3]
add ecx, eax
add ebx, ecx
movzx eax, byte [esi + 4]
add ecx, eax
add ebx, ecx
movzx eax, byte [esi + 5]
add ecx, eax
add ebx, ecx
movzx eax, byte [esi + 6]
add ecx, eax
add ebx, ecx
movzx eax, byte [esi + 7]
add ecx, eax
add ebx, ecx
movzx eax, byte [esi + 8]
add ecx, eax
add ebx, ecx
movzx eax, byte [esi + 9]
add ecx, eax
add ebx, ecx
movzx eax, byte [esi + 0xa]
add ecx, eax
add ebx, ecx
movzx eax, byte [esi + 0xb]
add ecx, eax
add ebx, ecx
movzx eax, byte [esi + 0xc]
add ecx, eax
add ebx, ecx
movzx eax, byte [esi + 0xd]
add ecx, eax
add ebx, ecx
movzx eax, byte [esi + 0xe]
add ecx, eax
add ebx, ecx
movzx eax, byte [esi + 0xf]
add esi, 0x10
add ecx, eax
add ebx, ecx
dec edx
jne 0x435863
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 0x435858
test edi, edi
je 0x4359ee
cmp edi, 0xf
jbe 0x4359b5
movzx edx, byte [esi]
sub edi, 0x10
movzx ebp, byte [esi + 1]
add ecx, edx
add ebx, ecx
movzx edx, byte [esi + 2]
add ecx, ebp
add ebx, ecx
movzx ebp, byte [esi + 3]
add ecx, edx
add ebx, ecx
movzx edx, byte [esi + 4]
add ecx, ebp
add ebx, ecx
movzx ebp, byte [esi + 5]
add ecx, edx
add ebx, ecx
movzx edx, byte [esi + 6]
add ecx, ebp
add ebx, ecx
movzx ebp, byte [esi + 7]
add ecx, edx
add ebx, ecx
movzx edx, byte [esi + 8]
add ecx, ebp
add ebx, ecx
movzx ebp, byte [esi + 9]
add ecx, edx
add ebx, ecx
movzx edx, byte [esi + 0xa]
add ecx, ebp
add ebx, ecx
movzx ebp, byte [esi + 0xb]
add ecx, edx
add ebx, ecx
movzx edx, byte [esi + 0xc]
add ecx, ebp
add ebx, ecx
movzx ebp, byte [esi + 0xd]
add ecx, edx
add ebx, ecx
movzx edx, byte [esi + 0xe]
add ecx, ebp
add ebx, ecx
movzx ebp, byte [esi + 0xf]
add ecx, edx
add ebx, ecx
add ecx, ebp
add ebx, ecx
add esi, 0x10
cmp edi, 0xf
ja 0x435927
dec edi
cmp edi, 0xffffffff
je 0x4359c9
movzx ebp, byte [esi]
dec edi
inc esi
add ecx, ebp
add ebx, ecx
cmp edi, 0xffffffff
jne 0x4359bb
mov eax, ecx
mov ebp, 0x80078071
mul ebp
mov eax, edx
shr eax, 0xf
imul eax, eax, 0xfff1
sub ecx, eax
mov eax, ebx
mul ebp
shr edx, 0xf
imul edx, edx, 0xfff1
sub ebx, edx
mov eax, ebx
jmp 0x43583d
movzx edx, byte [esi]
add ecx, edx
cmp ecx, 0xfff0
jbe 0x435a08
sub ecx, 0xfff1
add ebx, ecx
cmp ebx, 0xfff0
jbe 0x4359ee
sub ebx, 0xfff1
jmp 0x4359ee