Exemple #1
0
        private void method_17(Class504 section, Class889 byteStream)
        {
            byteStream.vmethod_15(section.DataSize);
            byteStream.vmethod_15(section.MaxDecompressedPageSize);
            byteStream.vmethod_15(section.Encrypted);
            byteStream.vmethod_15(section.HashCode);
            ulong num = (ulong)section.Name.Length;

            if (num > 0UL)
            {
                num = (ulong)((long)num + 1L << 1);
            }
            byteStream.vmethod_15(num);
            byteStream.vmethod_15(section.Unknown);
            byteStream.vmethod_15(section.Encoding);
            byteStream.vmethod_15(section.PageCount);
            if (num > 0UL)
            {
                byte[] bytes = Encoding.Unicode.GetBytes(section.Name);
                byteStream.Stream.Write(bytes, 0, bytes.Length);
                byteStream.vmethod_1((byte)0);
                byteStream.vmethod_1((byte)0);
            }
            foreach (Class443 page in section.Pages)
            {
                byteStream.vmethod_15(page.DataOffset);
                byteStream.vmethod_15(page.PageSize);
                byteStream.vmethod_13(page.Id);
                byteStream.vmethod_15(page.DecompressedSize);
                byteStream.vmethod_15(page.CompressedSize);
                byteStream.vmethod_15(page.CheckSum);
                byteStream.vmethod_15(page.Crc);
            }
        }
Exemple #2
0
        private void method_25(Stream pageHeaderStream, Class617 section, Class616 page, int pageType)
        {
            Class889 class889 = Class889.Create(pageHeaderStream, this.dxfVersion_0, this.encoding_0);

            class889.vmethod_9(pageType);
            class889.vmethod_9(section.SectionId);
            class889.vmethod_9(page.CompressedSize);
            class889.vmethod_9(page.PageSize);
            class889.vmethod_13((long)page.StartOffset);
            class889.vmethod_11(page.HeaderChecksum);
            class889.vmethod_11(page.DataChecksum);
        }
Exemple #3
0
        private void method_18()
        {
            this.class442_0.StreamOffset = 0UL;
            ulong pageSize = this.method_19(this.list_1.Count);
            long  num1     = (long)(this.list_1.Count + 1 + 2);

            if (pageSize <= 1024UL)
            {
                Class441 class441 = this.list_1[0];
                long     num2     = num1;
                long     num3     = num2 + 1L;
                class441.Id                     = num2;
                this.list_1[1].Id               = num3;
                this.class954_0.PagesMapId      = (ulong)this.list_1[0].Id;
                this.class954_0.PagesMapOffset  = this.list_1[0].StreamOffset;
                this.class954_0.PagesMap2Id     = (ulong)this.list_1[1].Id;
                this.class954_0.PagesMap2Offset = this.list_1[1].StreamOffset;
            }
            else
            {
                Class441 class441_1 = this.list_1[0];
                long     num2       = num1;
                long     num3       = num2 + 1L;
                long     num4       = -num2;
                class441_1.Id = num4;
                Class441 class441_2 = this.list_1[1];
                long     num5       = num3;
                long     num6       = num5 + 1L;
                long     num7       = -num5;
                class441_2.Id = num7;
                uint     num8       = (uint)(this.stream_0.Position - 1152L);
                Class442 class442_1 = new Class442();
                Class442 class442_2 = class442_1;
                long     num9       = num6;
                long     num10      = num9 + 1L;
                class442_2.Id           = num9;
                class442_1.StreamOffset = (ulong)(num8 - 1152U);
                this.list_1.Add((Class441)class442_1);
                Class442 class442_3 = new Class442();
                class442_3.Id           = num10;
                class442_3.StreamOffset = (ulong)((long)num8 + (long)pageSize - 1152L);
                this.list_1.Add((Class441)class442_3);
            }
            this.class954_0.PagesMaxId     = 0UL;
            this.class954_0.PageCount      = (ulong)(uint)this.list_1.Count;
            this.class954_0.PagesMapOffset = this.class442_0.StreamOffset;
            MemoryStream sectionStream = new MemoryStream();
            Class889     class889      = Class889.Create((Stream)sectionStream, this.dxfVersion_0, this.encoding_0);

            foreach (Class441 class441 in this.list_1)
            {
                if (class441 != null)
                {
                    class889.vmethod_13(class441.Length);
                    class889.vmethod_13(class441.Id);
                    if (class441.Id > (long)this.class954_0.PagesMaxId)
                    {
                        this.class954_0.PagesMaxId = (ulong)class441.Id;
                    }
                }
            }
            byte[] pageData;
            this.method_20(this.class442_0, sectionStream, this.class954_0.PagesMapCrcSeed, pageSize, out pageData);
            this.class442_0.Length = (long)pageData.Length;
            long id = this.class442_1.Id;

            this.class442_1.CopyFrom(this.class442_0);
            this.class442_1.Id           = id;
            this.class442_1.StreamOffset = 1024UL;
            this.stream_0.Position       = (long)this.class954_0.PagesMapOffset + 1152L;
            this.stream_0.Write(pageData, 0, pageData.Length);
            this.stream_0.Position = (long)this.class954_0.PagesMap2Offset + 1152L;
            this.stream_0.Write(pageData, 0, pageData.Length);
            this.class954_0.PagesMapDataRepeatCount  = this.class442_0.DataRepeatCount;
            this.class954_0.PagesMapSizeCompressed   = this.class442_0.CompressedSize;
            this.class954_0.PagesMapSizeDecompressed = this.class442_0.DecompressedSize;
            this.class954_0.PagesMapCrcCompressed    = this.class442_0.CompressedCrc;
            this.class954_0.PagesMapCrcDecompressed  = this.class442_0.DecompressedCrc;
        }
Exemple #4
0
        private unsafe void method_1()
        {
            this.stream_0.Position             = this.stream_0.Length;
            this.class954_0.FileSize           = (ulong)(this.stream_0.Length + 1024L);
            this.class954_0.Header2Offset      = (ulong)(this.stream_0.Position - 1152L);
            this.class954_0.SectionsMapCrcSeed = this.class995_0.method_2((uint)this.class954_0.SectionsMapCrcSeed);
            this.class954_0.PagesMapCrcSeed    = this.class995_0.method_2((uint)this.class954_0.PagesMapCrcSeed);
            Class888 class888 = new Class888();

            class888.method_0(this.class954_0.CrcSeed, this.class995_0);
            this.class954_0.CrcSeedEncoded = this.class995_0.method_2((uint)(this.class954_0.CrcSeed & (ulong)ushort.MaxValue));
            MemoryStream memoryStream1 = new MemoryStream();
            Class889     byteStream    = Class889.Create((Stream)memoryStream1, this.dxfVersion_0, this.encoding_0);

            this.method_3(byteStream);
            ulong num1 = Class656.class656_0.method_0(memoryStream1.GetBuffer(), 0U, (uint)memoryStream1.Length, Class656.smethod_1(0UL, (uint)memoryStream1.Length));

            memoryStream1.Position = 264L;
            byteStream.vmethod_15(num1);
            Class955     class955      = new Class955();
            MemoryStream memoryStream2 = new MemoryStream();

            class955.method_1(memoryStream1.GetBuffer(), 0, (int)memoryStream1.Length, (Stream)memoryStream2);
            if (memoryStream2.Length >= memoryStream1.Length)
            {
                memoryStream2 = memoryStream1;
            }
            ulong        num2          = Class656.class656_0.method_0(memoryStream2.GetBuffer(), 0U, (uint)memoryStream2.Length, Class656.smethod_1(0UL, (uint)memoryStream2.Length));
            MemoryStream memoryStream3 = new MemoryStream(12);
            Class889     class889_1    = Class889.Create((Stream)memoryStream3, this.dxfVersion_0, this.encoding_0);
            ulong        control       = this.class995_0.method_1();

            class889_1.vmethod_15(control);
            class889_1.vmethod_15(Class888.smethod_0(control, control));
            ulong        num3          = Class656.class656_0.method_0(memoryStream3.GetBuffer(), 0U, (uint)memoryStream3.Length, Class656.smethod_0(0UL, (uint)memoryStream3.Length));
            MemoryStream memoryStream4 = new MemoryStream(1024);
            Class889     class889_2    = Class889.Create((Stream)memoryStream4, this.dxfVersion_0, this.encoding_0);

            class889_2.vmethod_15(num3);
            class889_2.vmethod_15(control);
            class889_2.vmethod_15(num2);
            if (memoryStream2.Length < 272L)
            {
                class889_2.vmethod_13(memoryStream2.Length);
            }
            else
            {
                if (memoryStream2.Length != 272L)
                {
                    throw new Exception();
                }
                class889_2.vmethod_13(-272L);
            }
            memoryStream4.Write(memoryStream2.GetBuffer(), 0, (int)memoryStream2.Length);
            uint num4         = Class746.class746_0.K * 3U;
            uint length       = (uint)class889_2.Stream.Length;
            uint num5         = (uint)((ulong)(uint)((int)length + 8 - 1) & 18446744073709551608UL);
            uint paddingSize1 = num5 - length;

            this.method_25((Stream)memoryStream4, paddingSize1);
            uint num6 = num4 / num5;

            for (int index = 1; (long)index < (long)num6; ++index)
            {
                memoryStream4.Write(memoryStream4.GetBuffer(), 0, (int)num5);
            }
            uint paddingSize2 = num4 - (uint)memoryStream4.Length;

            this.method_25((Stream)memoryStream4, paddingSize2);
            byte[] buffer = new byte[1024];
            fixed(byte *source = memoryStream4.GetBuffer())
            fixed(byte *destination = buffer)
            {
                this.method_28(destination, source, (int)num4, Class746.class746_0);
                this.method_24(destination + 765, 259U);
            }
            MemoryStream memoryStream5 = new MemoryStream(buffer, true);

            memoryStream5.Position = memoryStream5.Length - 40L;
            class888.Write((Stream)memoryStream5);
            if (memoryStream5.Length != 1024L)
            {
                throw new Exception();
            }
            this.stream_0.Write(buffer, 0, buffer.Length);
            this.stream_0.Position = 128L;
            this.stream_0.Write(buffer, 0, buffer.Length);
        }