public bool ProcessDebugHeader(ImageDebugDirectory directory, byte [] header)
{
if (directory.Type != 2) //IMAGE_DEBUG_TYPE_CODEVIEW
return false;
if (directory.MajorVersion != 0 || directory.MinorVersion != 0)
return false;
if (header.Length < 24)
return false;
var magic = ReadInt32 (header, 0);
if (magic != 0x53445352)
return false;
var guid_bytes = new byte [16];
Buffer.BlockCopy (header, 4, guid_bytes, 0, 16);
this.guid = new Guid (guid_bytes);
this.age = ReadInt32 (header, 20);
return PopulateFunctions ();
}