public unsafe NintendoExtendedHeader GetExtendedHeader() { PackagedContentMetaReader *reader = this.m_Reader; ContentMetaAccessorBase\u003Cnn\u003A\u003Ancm\u003A\u003APackagedContentMetaHeader\u002Cnn\u003A\u003Ancm\u003A\u003APackagedContentInfo\u003E *packagedContentInfoPtr = (ContentMetaAccessorBase\u003Cnn\u003A\u003Ancm\u003A\u003APackagedContentMetaHeader\u002Cnn\u003A\u003Ancm\u003A\u003APackagedContentInfo\u003E *)reader; if (*(byte *)packagedContentInfoPtr == (byte)0) { \u003CModule\u003E.abort(); } switch (*(byte *)(*(int *)((IntPtr)packagedContentInfoPtr + 4) + 12)) { case 1: case 2: case 3: case 4: case 5: GC.KeepAlive((object)this); return((NintendoExtendedHeader)null); case 128: ApplicationMetaExtendedHeader * metaExtendedHeaderPtr1 = (ApplicationMetaExtendedHeader *)(*(int *)((IntPtr)reader + 4) + 32); NintendoApplicationExtendedHeader applicationExtendedHeader = new NintendoApplicationExtendedHeader((ulong)*(long *)metaExtendedHeaderPtr1, (uint)*(int *)((IntPtr)metaExtendedHeaderPtr1 + 8)); GC.KeepAlive((object)this); return((NintendoExtendedHeader)applicationExtendedHeader); case 129: PatchMetaExtendedHeader * metaExtendedHeaderPtr2 = (PatchMetaExtendedHeader *)(*(int *)((IntPtr)reader + 4) + 32); NintendoPatchExtendedHeader patchExtendedHeader = new NintendoPatchExtendedHeader((ulong)*(long *)metaExtendedHeaderPtr2, (uint)*(int *)((IntPtr)metaExtendedHeaderPtr2 + 8)); GC.KeepAlive((object)this); return((NintendoExtendedHeader)patchExtendedHeader); case 130: AddOnContentMetaExtendedHeader * metaExtendedHeaderPtr3 = (AddOnContentMetaExtendedHeader *)(*(int *)((IntPtr)reader + 4) + 32); NintendoAddOnContentExtendedHeader contentExtendedHeader = new NintendoAddOnContentExtendedHeader((ulong)*(long *)metaExtendedHeaderPtr3, (uint)*(int *)((IntPtr)metaExtendedHeaderPtr3 + 8), (string)null); GC.KeepAlive((object)this); return((NintendoExtendedHeader)contentExtendedHeader); default: throw new ArgumentException(string.Format("Unknown content meta type.")); } }
public static unsafe NintendoContentMeta CreateApplicationMeta(ulong id, uint version, byte attributes, uint requiredDownloadSystemVersion, NintendoApplicationExtendedHeader appExHeader, List <NintendoContentInfo> contentInfoList, List <NintendoContentMetaInfo> contentMetaInfoList, byte[] digest) { NintendoContentMeta nintendoContentMeta = new NintendoContentMeta((ContentMetaType)128, id, version, attributes, requiredDownloadSystemVersion, contentInfoList, contentMetaInfoList, digest); ApplicationMetaExtendedHeader metaExtendedHeader; // ISSUE: initblk instruction __memset(ref metaExtendedHeader, 0, 16);