protected virtual bool Parse([NotNull] PEHeader peHeader)
{
#region Sanity checks
if (peHeader == null) throw new ArgumentNullException(nameof(peHeader));
#endregion
Architecture = new Architecture(OS.Windows, GetCpu(peHeader.FileHeader.Machine));
if (peHeader.Subsystem >= Subsystem.WindowsCui) NeedsTerminal = true;
return peHeader.Is32BitHeader
? (peHeader.OptionalHeader32.CLRRuntimeHeader.VirtualAddress == 0)
: (peHeader.OptionalHeader64.CLRRuntimeHeader.VirtualAddress == 0);
}