public Parser CreateParser() { uint magic; if (!LoadedImage.TryReadBeUInt32(RawImage, 0, out magic)) { throw new BadImageFormatException("Invalid Mach-O header."); } switch (magic) { case MH_MAGIC: return(new Loader32(this, new BeImageReader(RawImage, 0))); case MH_MAGIC_64: return(new Loader64(this, new BeImageReader(RawImage, 0))); case MH_MAGIC_32_LE: return(new Loader32(this, new LeImageReader(RawImage, 0))); case MH_MAGIC_64_LE: return(new Loader64(this, new LeImageReader(RawImage, 0))); } throw new BadImageFormatException("Invalid Mach-O header."); }