Function at 0x401e80
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x68
push ebx
mov ebx, dword [esp + 0x78]
test ebx, ebx
jne 0x401e95
mov ax, 1
pop ebx
add esp, 0x68
ret
cmp dword [esp + 0x70], 0
jne 0x401ea5
mov ax, 2
pop ebx
add esp, 0x68
ret
push ebp
mov ebp, dword [esp + 0x78]
test ebp, ebp
jne 0x401eb8
pop ebp
mov ax, 3
pop ebx
add esp, 0x68
ret
push edi
mov edi, dword [esp + 0x84]
test edi, edi
jne 0x401ecf
pop edi
pop ebp
mov ax, 4
pop ebx
add esp, 0x68
ret
mov eax, dword [esp + 0x88]
test eax, eax
jne 0x401ee5
pop edi
pop ebp
mov ax, 5
pop ebx
add esp, 0x68
ret
push esi
push eax
mov dword [esp + 0x1c], 0
call fcn.004049a0
lea eax, [ebx + 8]
push eax
call fcn.004081b0
mov esi, eax
add esp, 8
test esi, esi
je 0x401f52
jmp 0x401f17
mov ebx, dword [esp + 0x84]
cmp word [esi], 0
jl 0x401f2f
mov eax, dword [esp + 0x18]
movzx ecx, ax
add eax, 1
mov dword [esp + ecx*4 + 0x38], esi
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x7c]
push ebx
push ebp
push edx
lea eax, [esp + 0x34]
mov ecx, edi
mov ebx, esi
call fcn.00401c70
push esi
call fcn.00408240
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x401f10
mov eax, dword [esp + 0x18]
movzx ecx, ax
xor edx, edx
mov dword [esp + 0x24], ecx
mov dword [esp + ecx*4 + 0x38], edx
mov dword [esp + 0x20], edx
jmp 0x401f72
xor edx, edx
cmp ax, dx
mov byte [esp + 0x13], 0
mov dword [esp + 0x1c], edx
jbe 0x40201c
lea eax, [esp + 0x38]
mov dword [esp + 0x14], eax
lea esp, [esp]
mov ecx, dword [esp + 0x14]
mov edi, dword [ecx]
xor edx, edx
lea esi, [edi + 4]
lea ebp, [edx + 4]
mov edi, edi
movzx ecx, word [esi]
cmp cx, 0x7fff
je 0x401fda
cmp cx, 0x7ffe
je 0x401fda
mov ebx, dword [esp + 0x38]
movzx ecx, cx
xor eax, eax
cmp word [ebx], cx
je 0x401fcf
nop
add eax, 1
movzx ebx, ax
mov ebx, dword [esp + ebx*4 + 0x38]
cmp word [ebx], cx
jne 0x401fc0
cmp dx, ax
movzx edx, dx
ja 0x401fda
movzx edx, ax
add esi, 2
sub ebp, 1
jne 0x401fa0
mov ecx, dword [esp + 0x1c]
cmp dx, cx
jbe 0x402003
mov esi, dword [esp + 0x14]
movzx eax, dx
mov edx, dword [esp + eax*4 + 0x38]
lea eax, [esp + eax*4 + 0x38]
mov dword [esi], edx
mov dword [eax], edi
mov byte [esp + 0x13], 1
mov eax, dword [esp + 0x18]
add dword [esp + 0x14], 4
add ecx, 1
cmp cx, ax
mov dword [esp + 0x1c], ecx
jb 0x401f90
mov ecx, dword [esp + 0x20]
add ecx, 1
cmp cx, 0xf
mov dword [esp + 0x20], ecx
ja 0x402038
cmp byte [esp + 0x13], 0
jne 0x401f70
test ax, ax
jbe 0x4021a6
mov eax, dword [esp + 0x24]
lea ebx, [esp + 0x38]
mov dword [esp + 0x20], eax
lea ecx, [ecx]
mov esi, dword [ebx]
movzx edi, word [esi + 4]
cmp di, 0x7fff
mov ebp, dword [esp + 0x84]
je 0x40208e
cmp di, 0x7ffe
je 0x402095
lea ecx, [esp + 0x14]
push ecx
push edi
push ebp
call fcn.00401c10
mov edx, dword [esp + 0x20]
mov ecx, dword [edx + 0x14]
push 0
lea eax, [esi + 0xc]
push ecx
push eax
push eax
call fcn.00404ac0
add esp, 0x1c
cmp di, 0x7ffe
jne 0x40209c
mov dword [esi + 0xc], 0
movzx edi, word [esi + 6]
cmp di, 0x7fff
je 0x4020d1
cmp di, 0x7ffe
je 0x4020d8
lea edx, [esp + 0x14]
push edx
push edi
push ebp
call fcn.00401c10
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 0x18]
push edx
lea eax, [esi + 0xc]
push 0
push eax
push eax
call fcn.00404ac0
add esp, 0x1c
cmp di, 0x7ffe
jne 0x4020df
mov dword [esi + 0x10], 0
movzx eax, word [esi + 8]
cmp ax, 0x7fff
je 0x402131
cmp ax, 0x7ffe
je 0x402131
lea ecx, [esp + 0x14]
push ecx
push eax
push ebp
call fcn.00401c10
add esp, 0xc
cmp word [esi + 4], 0x7fff
jne 0x402117
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0xc]
cmp eax, dword [esi + 0x14]
jle 0x402131
mov dword [esi + 0x14], eax
jmp 0x402131
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0xc]
sub edx, dword [esi + 0x14]
push 0
lea eax, [esi + 0xc]
push edx
push eax
push eax
call fcn.00404ac0
add esp, 0x10
movzx eax, word [esi + 0xa]
cmp ax, 0x7fff
je 0x402183
cmp ax, 0x7ffe
je 0x402183
lea ecx, [esp + 0x14]
push ecx
push eax
push ebp
call fcn.00401c10
add esp, 0xc
cmp word [esi + 8], 0x7fff
jne 0x402169
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x10]
cmp eax, dword [esi + 0x18]
jle 0x402183
mov dword [esi + 0x18], eax
jmp 0x402183
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x10]
sub edx, dword [esi + 0x18]
push 0
lea eax, [esi + 0xc]
push edx
push eax
push eax
call fcn.00404ac0
add esp, 0x10
mov eax, dword [esp + 0x8c]
add esi, 0xc
push esi
push eax
push eax
call fcn.00404d00
add esp, 0xc
add ebx, 4
sub dword [esp + 0x20], 1
jne 0x402050
cmp word [esp + 0x18], 0
jbe 0x40220f
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x38]
jmp 0x4021c0
mov eax, dword [ecx]
mov esi, 0x7ffe
cmp word [eax + 4], si
jne 0x4021d4
mov dword [eax + 0xc], 0
cmp word [eax + 6], si
jne 0x4021e1
mov dword [eax + 0x10], 0
cmp word [eax + 8], si
jne 0x4021f4
mov edi, dword [esp + 0x8c]
mov edi, dword [edi + 8]
mov dword [eax + 0x14], edi
cmp word [eax + 0xa], si
jne 0x402207
mov esi, dword [esp + 0x8c]
mov esi, dword [esi + 0xc]
mov dword [eax + 0x18], esi
add ecx, 4
sub edx, 1
jne 0x4021c0
pop esi
pop edi
pop ebp
xor ax, ax
pop ebx
add esp, 0x68
ret