private PieceDescriptor[] ReadDescriptors(BinaryReader reader, int count)
        {
            ArrayList arrayList = new ArrayList();

            for (int i = 0; i < count; i++)
            {
                PieceDescriptor pieceDescriptor = new PieceDescriptor();
                pieceDescriptor.Read(reader);
                arrayList.Add(pieceDescriptor);
            }
            return((PieceDescriptor[])arrayList.ToArray(typeof(PieceDescriptor)));
        }
        public bool GetPieceFileBounds(int piece, out uint start, out uint end)
        {
            start = uint.MaxValue;
            end   = uint.MaxValue;
            PieceDescriptor pieceDescriptor = _Descriptors[piece];
            uint            fc   = pieceDescriptor.Fc;
            bool            flag = FileOffset.IsUnicode(fc);

            start = FileOffset.NormalizeFc(fc);
            uint num = _DescriptorOffsets[piece + 1].Value - _DescriptorOffsets[piece].Value;

            end = start + num * FileOffset.GetFcDelta(flag);
            return(flag);
        }