Function at 0x40e390
Capabilities:
Enumerate pe sections

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x40e6fc
sub esp, 0x38
mov eax, dword [esp + 0x40]
test eax, eax
je 0x40e6e2
movzx ecx, byte [eax + 4]
test cl, 4
jne 0x40e6ca
mov ecx, dword [esp + 0x3c]
mov ebx, dword [ecx + 0x20]
mov ebx, dword [ebx + 0x10]
mov edx, dword [ebx]
mov ebx, dword [eax + 8]
mov dword [esp + 4], ebx
lea ebx, [esp + 0x44]
mov dword [esp], ebx
mov ebx, dword [edx]
call ebx
mov eax, dword [esp + 8]
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x40]
movzx ebx, byte [ecx + 4]
or ebx, 4
mov byte [ecx + 4], bl
mov ebx, dword [ecx + 0xc]
test ebx, ebx
je 0x40e673
mov edx, dword [esp + 0x3c]
jmp 0x40e565
lea edx, [ebp + 1]
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x18]
cmp ebp, 8
jae 0x40e4e1
test byte [ebx], al
movzx edx, byte [ebx + ebp]
xchg esi, eax
cmp al, dl
xchg esi, eax
je 0x40e440
test dl, dl
jne 0x40e40a
test eax, eax
jne 0x40e40a
mov eax, ebx
mov edi, ebp
jmp 0x40e40a
mov edx, ebx
lea ebx, [ebx + ebp*8 + 8]
mov dword [esp + 0x30], ebx
mov ebx, dword [ebx + 4]
mov esi, dword [esp + 0x48]
cmp ebx, esi
je 0x40e45e
mov ebx, edx
movzx esi, byte [esp + 0x13]
jmp 0x40e40a
mov ebx, dword [esp + 0x30]
mov ebx, dword [ebx]
mov ecx, dword [esp + 0x44]
cmp ebx, ecx
je 0x40e4ab
mov dword [esp + 0x14], edi
mov dword [esp + 0x2c], eax
mov dword [esp + 8], esi
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.00402150
movzx eax, byte [esp + 0xc]
test al, al
jne 0x40e4ab
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x18]
movzx esi, byte [esp + 0x13]
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x14]
jmp 0x40e40a
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x3c]
movzx edx, byte [edx + 0x2e]
imul edx, ecx
mov ecx, dword [esp + 0x40]
movzx ebx, byte [ecx + 4]
lea eax, [edx + eax + 0x48]
test bl, 4
je 0x40e6b2
and ebx, 0xfffffffb
mov byte [ecx + 4], bl
mov dword [esp + 0x4c], eax
add esp, 0x38
ret
movzx ebp, word [edx + 0x30]
lea ebx, [ebx + ebp - 4]
mov ebx, dword [ebx]
test ebx, ebx
je 0x40e50a
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x24], eax
xor eax, eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x24]
jmp 0x40e419
mov ebx, dword [esp + 0x40]
mov ebp, dword [ebx + 0x10]
test ebp, ebp
jne 0x40e5d1
mov ebp, dword [ebx]
inc ebp
movzx esi, byte [ebx + 5]
cmp ebp, 8
jle 0x40e638
mov ecx, esi
mov edx, 1
shl edx, cl
shr edx, 1
lea esi, [edx + edx*2]
lea edx, [edx + esi*4]
cmp ebp, edx
seta dl
test dl, dl
je 0x40e5b0
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.0040bd30
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x3c]
mov eax, ecx
mov ecx, dword [esp + 0x40]
movzx ebx, byte [ecx + 5]
mov ebp, ecx
mov ecx, ebx
mov esi, 1
shl esi, cl
lea ebx, [esi - 1]
and ebx, eax
mov esi, dword [ebp + 0x10]
test esi, esi
jne 0x40e64a
movzx esi, word [edx + 0x30]
imul ebx, esi
add ebx, dword [ebp + 0xc]
mov esi, eax
shr eax, 0x18
cmp al, 4
jae 0x40e641
mov ecx, esi
lea esi, [eax + 4]
xchg esi, eax
mov byte [esp + 0x13], al
xchg esi, eax
xor eax, eax
xor edi, edi
jmp 0x40e4f3
movzx edx, word [ebx + 6]
cmp cl, 0xf
jbe 0x40e5be
mov ecx, 0xf
and ecx, 0xf
mov ebp, 1
shl ebp, cl
cmp dx, bp
jae 0x40e543
test eax, eax
je 0x40e614
test byte [eax], al
mov ecx, edi
and edi, 7
movzx edx, byte [esp + 0x13]
mov byte [eax + edi], dl
mov edx, eax
lea edi, [eax + ecx*8 + 8]
mov ebp, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
mov dword [edi + 4], ebp
mov ebp, dword [0x881b80]
test ebp, ebp
jne 0x40e60d
mov dword [edi], eax
mov ebp, dword [ebx]
inc ebp
mov dword [ebx], ebp
mov eax, edx
jmp 0x40e4b3
call fcn.0044b4d0
jmp 0x40e601
mov dword [esp], ebx
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x34]
mov dword [esp + 8], ecx
call fcn.0040a2b0
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x40]
xor edi, edi
jmp 0x40e5d5
mov ecx, esi
xor edx, edx
jmp 0x40e53f
mov ecx, esi
mov esi, eax
jmp 0x40e5a1
mov dword [esp + 0x20], ebx
mov dword [esp], edx
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
call fcn.0040e950
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x40]
jmp 0x40e584
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x28]
mov dword [esp], ecx
call fcn.00409aa0
mov eax, dword [0x881b80]
mov ecx, dword [esp + 4]
test eax, eax
jne 0x40e6a2
mov edx, dword [esp + 0x40]
mov dword [edx + 0xc], ecx
mov eax, dword [esp + 0x1c]
mov ecx, edx
jmp 0x40e401
mov edx, dword [esp + 0x40]
lea edi, [edx + 0xc]
mov eax, ecx
call fcn.0044b4d0
jmp 0x40e697
lea eax, [0x681b80]
mov dword [esp], eax
mov dword [esp + 4], 0x15
call fcn.00426cb0
ud2
lea eax, [0x681b80]
mov dword [esp], eax
mov dword [esp + 4], 0x15
call fcn.00426cb0
ud2
lea eax, [0x643760]
mov dword [esp], eax
lea eax, [0x6c8658]
mov dword [esp + 4], eax
call fcn.00426780
ud2
call fcn.00449d70
jmp fcn.0040e390