Function at 0x4384d0
Capabilities:
Enumerate pe sections

Disassembly:
push ecx
cmp dword [esp + 0xc], 0
mov dword [esp], 0
jbe 0x4386da
push ebx
mov ebx, dword [esp + 0x14]
push ebp
push esi
mov esi, dword [esp + 0x14]
push edi
mov edi, dword [esp + 0x24]
cmp byte [esp + 0x28], 0
movzx eax, word [esi + 2]
movzx ebp, word [esi]
mov dword [esp + 0x24], eax
je 0x43852b
mov edx, dword [edi]
mov edx, dword [edx + 0x34]
movzx eax, bp
push eax
push str.ExtraHeaderId
mov ecx, edi
call edx
movzx ecx, word [esp + 0x24]
mov eax, dword [edi]
mov edx, dword [eax + 0x2c]
push ecx
push str.ExtraHeaderLen
mov ecx, edi
call edx
add dword [esp + 0x10], 4
cmp bp, 1
jne 0x438601
mov eax, dword [esp + 0x24]
cmp ax, 8
jb 0x43857c
movzx ecx, byte [esi + 4]
mov byte [ebx + 0x30], cl
movzx edx, byte [esi + 5]
mov byte [ebx + 0x31], dl
movzx ecx, byte [esi + 6]
mov byte [ebx + 0x32], cl
movzx edx, byte [esi + 7]
mov byte [ebx + 0x33], dl
movzx ecx, byte [esi + 8]
mov byte [ebx + 0x34], cl
movzx edx, byte [esi + 9]
mov byte [ebx + 0x35], dl
movzx ecx, byte [esi + 0xa]
mov byte [ebx + 0x36], cl
movzx edx, byte [esi + 0xb]
mov byte [ebx + 0x37], dl
cmp ax, 0x10
jb 0x4385ba
movzx ecx, byte [esi + 0xc]
mov byte [ebx + 0x28], cl
movzx edx, byte [esi + 0xd]
mov byte [ebx + 0x29], dl
movzx ecx, byte [esi + 0xe]
mov byte [ebx + 0x2a], cl
movzx edx, byte [esi + 0xf]
mov byte [ebx + 0x2b], dl
movzx ecx, byte [esi + 0x10]
mov byte [ebx + 0x2c], cl
movzx edx, byte [esi + 0x11]
mov byte [ebx + 0x2d], dl
movzx ecx, byte [esi + 0x12]
mov byte [ebx + 0x2e], cl
movzx edx, byte [esi + 0x13]
mov byte [ebx + 0x2f], dl
cmp ax, 0x18
jb 0x4386b9
movzx eax, byte [esi + 0x14]
mov byte [ebx + 0x38], al
movzx ecx, byte [esi + 0x15]
mov byte [ebx + 0x39], cl
movzx edx, byte [esi + 0x16]
mov byte [ebx + 0x3a], dl
movzx eax, byte [esi + 0x17]
mov byte [ebx + 0x3b], al
movzx ecx, byte [esi + 0x18]
mov byte [ebx + 0x3c], cl
movzx edx, byte [esi + 0x19]
mov byte [ebx + 0x3d], dl
movzx eax, byte [esi + 0x1a]
mov byte [ebx + 0x3e], al
movzx ecx, byte [esi + 0x1b]
mov byte [ebx + 0x3f], cl
jmp 0x4386b9
cmp bp, 0x7075
jne 0x438652
mov ebp, dword [esp + 0x2c]
test ebp, ebp
je 0x4386b9
add ebp, 0xc8
mov ecx, ebp
call fcn.00408220
movzx edx, word [esp + 0x24]
sub edx, 5
push edx
lea eax, [esi + 9]
push eax
mov ecx, ebp
call fcn.004087a0
cmp byte [esp + 0x28], 0
je 0x4386b9
mov ecx, ebp
call fcn.0040a520
push eax
push str.unicodeFilename
mov ecx, edi
call fcn.00431870
jmp 0x4386b9
cmp bp, 0x17
jne 0x4386b9
cmp byte [esp + 0x28], 0
je 0x4386b9
mov edx, dword [edi]
mov eax, dword [edx + 0x14]
push str.Strong_Encryption_Header__0x0017_
mov ecx, edi
call eax
movzx eax, word [esi + 4]
mov edx, dword [edi]
mov edx, dword [edx + 0x2c]
push eax
push str.Format
mov ecx, edi
call edx
movzx ecx, word [esi + 6]
mov eax, dword [edi]
mov edx, dword [eax + 0x34]
push ecx
push str.AlgId
mov ecx, edi
call edx
movzx ecx, word [esi + 8]
mov eax, dword [edi]
mov edx, dword [eax + 0x2c]
push ecx
push str.Bitlen
mov ecx, edi
call edx
movzx ecx, word [esi + 0xa]
mov eax, dword [edi]
mov edx, dword [eax + 0x2c]
push ecx
push str.Flags
mov ecx, edi
call edx
movzx eax, word [esp + 0x24]
mov ecx, dword [esp + 0x10]
add ecx, eax
cmp ecx, dword [esp + 0x1c]
mov dword [esp + 0x10], ecx
lea esi, [esi + eax + 4]
jb 0x4384f3
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret 0x18