Beispiel #1
0
        public override object Clone()
        {
            Class443 class443 = new Class443();

            class443.CopyFrom(this);
            return((object)class443);
        }
Beispiel #2
0
 public void CopyFrom(Class443 from)
 {
     this.CopyFrom((Class441)from);
     this.ulong_1 = from.ulong_1;
     this.ulong_2 = from.ulong_2;
     this.ulong_3 = from.ulong_3;
     this.ulong_4 = from.ulong_4;
     this.ulong_5 = from.ulong_5;
     this.ulong_6 = from.ulong_6;
 }
 public abstract void Visit(Class443 c);
Beispiel #4
0
        private unsafe void method_22(
            Class504 section,
            byte[] buffer,
            ulong position,
            ulong uncompressedLength)
        {
            Class443 class443 = new Class443();

            class443.PageSize         = section.MaxDecompressedPageSize;
            class443.DataOffset       = position;
            class443.DecompressedSize = uncompressedLength;
            class443.CheckSum         = (ulong)Class996.smethod_3((ulong)this.uint_0, buffer, (uint)position, (uint)uncompressedLength);
            Class746     class7461    = Class746.class746_1;
            MemoryStream memoryStream = new MemoryStream();

            if (section.Compressed)
            {
                new Class955().method_1(buffer, (int)position, (int)uncompressedLength, (Stream)memoryStream);
                if (memoryStream.Length >= (long)uncompressedLength)
                {
                    memoryStream = new MemoryStream();
                    memoryStream.Write(buffer, (int)position, (int)uncompressedLength);
                }
            }
            else
            {
                memoryStream.Write(buffer, (int)position, (int)uncompressedLength);
            }
            class443.CompressedSize = (ulong)memoryStream.Length;
            class443.Crc            = Class656.class656_1.method_0(memoryStream.GetBuffer(), 0U, (uint)memoryStream.Length, Class656.smethod_0((ulong)this.uint_0, (uint)memoryStream.Length));
            ulong num1 = (ulong)(memoryStream.Length + 8L - 1L & -8L);
            int   num2 = (int)((ulong)((long)num1 + (long)class7461.K - 1L) / (ulong)class7461.K);

            byte[] data;
            if (section.Encoding == 4UL)
            {
                data = new byte[(long)num2 * (long)class7461.N];
                int num3 = (int)((long)num1 - memoryStream.Length);
                for (int index = 0; index < num3; ++index)
                {
                    memoryStream.WriteByte((byte)0);
                    fixed(byte *destination = data)
                    fixed(byte *source = memoryStream.GetBuffer())
                    this.method_28(destination, source, (int)memoryStream.Length, class7461);
            }
            else
            {
                if (section.Encoding != 1UL)
                {
                    throw new Exception();
                }
                uint num3 = (uint)(num1 - (ulong)memoryStream.Length);
                for (uint index = 0; index < num3; ++index)
                {
                    memoryStream.WriteByte((byte)0);
                }
                data = new byte[num1 + (ulong)num2 * (ulong)(class7461.N - class7461.K)];

                fixed(byte *dataBufferPtr = data)
                fixed(byte *sourcePtr = memoryStream.GetBuffer())
                this.method_26(dataBufferPtr, dataBufferPtr + num1, sourcePtr, (int)memoryStream.Length, class7461);
            }
            this.method_23((Class441)class443, data, 0, data.Length);
            if (class443.Id > 0L)
            {
                ++section.PageCount;
            }
            section.Pages.Add(class443);
        }
 public override void Visit(Class443 c) { }