Function at 0x435cbc
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
push ebx
push esi
mov esi, dword [ebp + 0xc]
xor ebx, ebx
cmp esi, ebx
push edi
mov dword [ebp - 4], ecx
je 0x435fef
cmp dword [esi + 0x18], ebx
je 0x435fef
mov ecx, dword [0x471674]
call fcn.00409ab6
cmp eax, 0x23
jne 0x435e20
push dword [ebp + 0x10]
mov edi, dword [ebp + 8]
mov ecx, dword [ebp - 4]
push dword [esi + 4]
push edi
call fcn.00437b48
test eax, eax
jl 0x435ff8
mov al, byte [esi + 1]
mov ecx, edi
push eax
call fcn.0040e02d
push dword [ebp + 0x10]
mov ecx, dword [ebp - 4]
push dword [esi + 8]
push edi
call fcn.00437b48
test eax, eax
jl 0x435ff8
lea eax, [esi + 0xc]
push 7
push eax
mov ecx, edi
call fcn.0040e066
mov al, byte [esi]
mov ecx, edi
push eax
call fcn.0040e02d
mov al, byte [esi + 2]
mov ecx, edi
push eax
call fcn.0040e02d
mov al, byte [esi + 3]
mov ecx, edi
push eax
call fcn.0040e02d
mov eax, dword [esi + 0x18]
mov ecx, edi
mov al, byte [eax]
push eax
call fcn.0040e02d
mov eax, dword [esi + 0x18]
mov ecx, edi
mov al, byte [eax + 1]
push eax
call fcn.0040e02d
mov eax, dword [esi + 0x18]
mov ecx, edi
mov al, byte [eax + 2]
push eax
call fcn.0040e02d
mov eax, dword [esi + 0x18]
mov ecx, edi
mov al, byte [eax + 3]
push eax
call fcn.0040e02d
mov eax, dword [esi + 0x18]
mov ecx, edi
mov al, byte [eax + 4]
push eax
call fcn.0040e02d
mov eax, dword [esi + 0x18]
mov ecx, edi
mov ax, word [eax + 6]
shr eax, 8
push eax
call fcn.0040e02d
mov eax, dword [esi + 0x18]
mov ecx, edi
mov al, byte [eax + 6]
push eax
call fcn.0040e02d
mov eax, dword [esi + 0x18]
movsx ecx, word [eax + 6]
add eax, 8
push ecx
push eax
mov ecx, edi
call fcn.0040e066
mov eax, dword [esi + 0x14]
cmp eax, ebx
jne 0x435ddd
push ebx
jmp 0x435ded
mov cl, byte [eax]
cmp cl, 0xa0
ja 0x435e12
cmp word [eax + 2], 0x8c
jg 0x435e12
push ecx
mov ecx, edi
call fcn.0040e02d
mov esi, dword [esi + 0x14]
cmp esi, ebx
je 0x435e0b
movsx eax, word [esi + 2]
add esi, 4
push eax
push esi
mov ecx, edi
call fcn.0040e066
xor eax, eax
jmp 0x435ffd
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x192
jmp 0x435ff8
mov ecx, dword [0x471674]
call fcn.00409ab6
cmp eax, 0x28
jne 0x435fe4
mov edi, dword [ebp + 8]
push 0xa0
mov ecx, edi
mov dword [ebp + 0xc], ebx
mov eax, dword [edi + 4]
mov dword [ebp + 8], eax
call fcn.0040e02d
cmp dword [esi + 8], ebx
jne 0x435e5f
cmp dword [esi + 4], ebx
jne 0x435e5f
cmp dword [esi + 0x14], ebx
jne 0x435e5f
push 1
jmp 0x435e61
push 2
mov ecx, edi
call fcn.0040e02d
push ebx
mov ecx, edi
call fcn.0040e02d
push ebx
mov ecx, edi
call fcn.0040e02d
mov eax, dword [esi + 0x18]
cmp eax, ebx
je 0x435f4f
mov cx, word [eax + 6]
push 4
movsx eax, cx
cdq
pop ebx
idiv ebx
mov bl, dl
test bl, bl
je 0x435e9c
mov al, 4
sub al, bl
mov bl, al
movzx ax, bl
push 0xa1
lea eax, [eax + ecx + 0xc]
mov ecx, edi
mov dword [ebp + 0xc], eax
call fcn.0040e02d
push 0x55
mov ecx, edi
call fcn.0040e02d
lea eax, [ebp + 0xc]
mov ecx, edi
push eax
call fcn.0040e0d4
mov al, byte [esi + 3]
mov ecx, edi
push eax
call fcn.0040e02d
mov eax, dword [esi + 0x18]
mov ecx, edi
mov al, byte [eax]
push eax
call fcn.0040e02d
mov eax, dword [esi + 0x18]
mov ecx, edi
mov al, byte [eax + 1]
push eax
call fcn.0040e02d
mov eax, dword [esi + 0x18]
mov ecx, edi
mov al, byte [eax + 2]
push eax
call fcn.0040e02d
mov eax, dword [esi + 0x18]
mov ecx, edi
mov al, byte [eax + 3]
push eax
call fcn.0040e02d
mov eax, dword [esi + 0x18]
mov ecx, edi
mov al, byte [eax + 4]
push eax
call fcn.0040e02d
mov eax, dword [esi + 0x18]
mov ecx, edi
add eax, 6
push eax
call fcn.0040e0d4
mov eax, dword [esi + 0x18]
movsx ecx, word [eax + 6]
add eax, 8
push ecx
push eax
mov ecx, edi
call fcn.0040e066
movzx eax, bl
test eax, eax
jle 0x435f4d
mov ebx, eax
push 0x55
mov ecx, edi
call fcn.0040e02d
dec ebx
jne 0x435f41
xor ebx, ebx
cmp dword [esi + 8], ebx
jne 0x435f5e
cmp dword [esi + 4], ebx
jne 0x435f5e
cmp dword [esi + 0x14], ebx
je 0x435fc1
push 0x20
lea eax, [ebp - 0x24]
push ebx
push eax
call sub.MSVCRT.dll_memset
mov al, byte [esi]
and byte [ebp - 0x23], 0
mov byte [ebp - 0x24], al
mov al, byte [esi + 1]
mov byte [ebp - 0x22], al
mov al, byte [esi + 2]
mov byte [ebp - 0x21], al
lea eax, [esi + 0xc]
push 7
push eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x20], 1
push eax
call sub.MSVCRT.dll_memcpy
mov eax, dword [esi + 8]
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 4]
add esp, 0x18
mov dword [ebp - 0x10], eax
mov eax, dword [esi + 0x14]
mov dword [ebp - 8], ebx
push dword [ebp + 0x10]
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x24]
push eax
push edi
call fcn.004352f6
test eax, eax
jl 0x435ff8
mov cx, word [edi + 4]
mov eax, dword [ebp + 8]
sub cx, ax
add eax, 2
mov dword [edi + 4], eax
lea eax, [ebp + 0xc]
mov dword [ebp + 0xc], ecx
push eax
mov ecx, edi
call fcn.0040e0d4
jmp 0x435e0b
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x12d
jmp 0x435ff8
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x19e
mov eax, 0x80004005
pop edi
pop esi
pop ebx
leave
ret 0xc