Function at 0x435b13
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 0x435d35
test esi, esi
mov eax, 1
je 0x435b82
cmp edi, 0xf
ja 0x435b87
dec edi
cmp edi, 0xffffffff
je 0x435b59
movzx edx, byte [esi]
dec edi
inc esi
add ecx, edx
add ebx, ecx
cmp edi, 0xffffffff
jne 0x435b4b
cmp ecx, 0xfff0
jbe 0x435b67
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 0x435c56
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 0x435ba3
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 0x435b98
test edi, edi
je 0x435d2e
cmp edi, 0xf
jbe 0x435cf5
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 0x435c67
dec edi
cmp edi, 0xffffffff
je 0x435d09
movzx ebp, byte [esi]
dec edi
inc esi
add ecx, ebp
add ebx, ecx
cmp edi, 0xffffffff
jne 0x435cfb
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 0x435b7d
movzx edx, byte [esi]
add ecx, edx
cmp ecx, 0xfff0
jbe 0x435d48
sub ecx, 0xfff1
add ebx, ecx
cmp ebx, 0xfff0
jbe 0x435d2e
sub ebx, 0xfff1
jmp 0x435d2e