private unsafe Chunk CreateChunk(ChunkHeader* header) { switch (header->Magic) { case "MPHD": var mphd = new MphdChunk(header); Flags = mphd.Flags; return mphd; case "MAIN": _main = new MainChunk(header); return _main; case "MWMO": return new StringReferenceChunk(header); case "MODF": return new ModfChunk(header); default: return new Chunk(header); } }