internal WiiPartitionGroupSection(NStream stream, WiiDiscHeaderSection hdr, WiiPartitionHeaderSection partHdr, byte[] data, long discOffset, long size, bool encrypted) : base(stream, discOffset, new byte[(0x400 * 32) * 64], size) { _isIsoDec = hdr.IsIsoDecPartition(partHdr.DiscOffset); _partHdr = partHdr; _h3Table = _partHdr.H3Table; _idx = 0; _maxLength = base.Data.Length; //0x8000 per block * 64 = 0x200000 _data = new WiiPartitionGroupEncryptionState((int)WiiPartitionSection.GroupSize, this.Key, _h3Table); this.IsEncrypted = encrypted || !data.Equals(0x26c, new byte[20], 0, 20); this.Junk = new byte[WiiPartitionSection.GroupSize]; _unscrubValid = new bool[64]; _data.Populate(data, (int)size, this.IsEncrypted && !_isIsoDec, _isIsoDec, _idx); initialise(); }