Function at 0x435b11
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 0x435d33
test esi, esi
mov eax, 1
je 0x435b80
cmp edi, 0xf
ja 0x435b85
dec edi
cmp edi, 0xffffffff
je 0x435b57
movzx edx, byte [esi]
dec edi
inc esi
add ecx, edx
add ebx, ecx
cmp edi, 0xffffffff
jne 0x435b49
cmp ecx, 0xfff0
jbe 0x435b65
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 0x435c54
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 0x435ba1
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 0x435b96
test edi, edi
je 0x435d2c
cmp edi, 0xf
jbe 0x435cf3
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 0x435c65
dec edi
cmp edi, 0xffffffff
je 0x435d07
movzx ebp, byte [esi]
dec edi
inc esi
add ecx, ebp
add ebx, ecx
cmp edi, 0xffffffff
jne 0x435cf9
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 0x435b7b
movzx edx, byte [esi]
add ecx, edx
cmp ecx, 0xfff0
jbe 0x435d46
sub ecx, 0xfff1
add ebx, ecx
cmp ebx, 0xfff0
jbe 0x435d2c
sub ebx, 0xfff1
jmp 0x435d2c