Exemple #1
0
    public Class357(Stream A_0, Class938 A_1)
    {
        this.list_1 = new List <int>();
        int    num      = A_1.method_26();
        int    count    = A_1.method_5();
        ushort num3     = A_1.method_9();
        int    capacity = 0x6d + ((num * (count - 4)) / 4);

        this.list_0 = new List <int>(capacity);
        this.list_0.AddRange(A_1.method_28());
        if (num > 0)
        {
            int num5 = A_1.method_24();
            A_1.method_9();
            byte[] buffer = new byte[count];
            int[]  dst    = new int[(count / 4) - 1];
            while (num5 >= 0)
            {
                long num6 = Class1004.smethod_4(num5, num3);
                this.list_1.Add(num5);
                A_0.Position = num6;
                A_0.Read(buffer, 0, count);
                Buffer.BlockCopy(buffer, 0, dst, 0, count - 4);
                this.list_0.AddRange(dst);
                num5 = BitConverter.ToInt32(buffer, count - 4);
            }
        }
    }
    public void method_10(Stream A_0, Class357 A_1, Class938 A_2)
    {
        int    count = this.list_0.Count;
        int    num2  = A_2.method_5();
        ushort num3  = A_2.method_9();
        int    num4  = this.method_0() / 4;
        int    num5  = num4 - 1;
        double num6  = (num5 * count) - 109.0;
        double num7  = (num5 * num5) - 1.0;
        int    num8  = (int)Math.Ceiling((double)(num6 / num7));

        A_2.method_15(num8);
        byte[] buffer = new byte[num2];
        A_1.method_2(num8, this);
        this.method_11(num8, A_1);
        List <int> list  = A_1.method_0();
        int        num9  = 0;
        int        num10 = 0;

        while (num9 < num8)
        {
            num10 = this.method_12(num10, buffer);
            int  num11  = list[num9];
            long offset = Class1004.smethod_4(num11, num3);
            A_0.Seek(offset, SeekOrigin.Begin);
            A_0.Write(buffer, 0, num2);
            num9++;
        }
    }
    internal void method_9(byte[] A_0, int A_1, int A_2, Class938 A_3)
    {
        ushort num   = A_3.method_9();
        int    count = A_3.method_5();
        long   num3  = smethod_4(A_2, num);

        this.stream_0.Position = num3;
        this.stream_0.Read(A_0, A_1, count);
    }
    public Class939(Class1004 A_0, Stream A_1, Class357 A_2, Class938 A_3)
    {
        int num5 = 3;

        this.list_0 = new List <int>();
        this.list_1 = new List <int>();
        if (A_0 == null)
        {
            throw new ArgumentNullException(BookmarkStart.b("伨䈪䄬䨮", num5));
        }
        if (A_1 == null)
        {
            throw new ArgumentNullException(BookmarkStart.b("娨弪弬䨮倰帲", num5));
        }
        this.stream_0 = A_0.method_4();
        List <int> list  = A_2.method_0();
        int        count = A_3.method_5();

        this.ushort_0 = A_3.method_9();
        byte[] buffer = new byte[count];
        int[]  dst    = new int[count >> 2];
        this.int_0 = 0x200;
        int num2 = 0;
        int num3 = list.Count;

        while (num2 < num3)
        {
            int num4 = list[num2];
            if (num4 >= 0)
            {
                A_0.method_9(buffer, 0, num4, A_3);
                Buffer.BlockCopy(buffer, 0, dst, 0, count);
                this.list_0.AddRange(dst);
            }
            num2++;
        }
    }