예제 #1
0
        // Token: 0x06000062 RID: 98 RVA: 0x00007BF8 File Offset: 0x00005DF8
        public void Init(byte[] H)
        {
            this.uint_0[0]    = new uint[16][];
            this.uint_0[1]    = new uint[16][];
            this.uint_0[0][0] = new uint[4];
            this.uint_0[1][0] = new uint[4];
            this.uint_0[1][8] = Class8.smethod_2(H);
            for (int i = 4; i >= 1; i >>= 1)
            {
                uint[] array = (uint[])this.uint_0[1][i + i].Clone();
                Class8.smethod_4(array);
                this.uint_0[1][i] = array;
            }
            uint[] array2 = (uint[])this.uint_0[1][1].Clone();
            Class8.smethod_4(array2);
            this.uint_0[0][8] = array2;
            for (int j = 4; j >= 1; j >>= 1)
            {
                uint[] array3 = (uint[])this.uint_0[0][j + j].Clone();
                Class8.smethod_4(array3);
                this.uint_0[0][j] = array3;
            }
            int num = 0;

            for (;;)
            {
                for (int k = 2; k < 16; k += k)
                {
                    for (int l = 1; l < k; l++)
                    {
                        uint[] array4 = (uint[])this.uint_0[num][k].Clone();
                        Class8.smethod_10(array4, this.uint_0[num][l]);
                        this.uint_0[num][k + l] = array4;
                    }
                }
                if (++num == 32)
                {
                    break;
                }
                if (num > 1)
                {
                    this.uint_0[num]    = new uint[16][];
                    this.uint_0[num][0] = new uint[4];
                    for (int m = 8; m > 0; m >>= 1)
                    {
                        uint[] array5 = (uint[])this.uint_0[num - 2][m].Clone();
                        Class8.smethod_5(array5);
                        this.uint_0[num][m] = array5;
                    }
                }
            }
        }
예제 #2
0
 // Token: 0x0600001D RID: 29 RVA: 0x00003198 File Offset: 0x00001398
 public static void smethod_3(object[] object_0)
 {
     try
     {
         List <object> list  = new List <object>();
         List <Guid>   list2 = new List <Guid>();
         int           num   = 0;
         int           num2  = object_0.Length - 1;
         for (int i = num; i <= num2; i += 3)
         {
             Guid   guid  = (Guid)object_0[i];
             byte[] byte_ = (byte[])object_0[i + 1];
             bool   flag  = (bool)object_0[i + 2];
             list2.Add(guid);
             GClass2 gclass = Class23.smethod_1(guid);
             if (gclass == null)
             {
                 list.Add(guid);
             }
             else
             {
                 if (gclass.bool_0 != flag)
                 {
                     gclass.bool_0 = flag;
                     Class5.bool_1 = true;
                 }
                 if (!Class26.smethod_5(gclass.byte_1, byte_))
                 {
                     list.Add(guid);
                     Class5.bool_0 = true;
                     Class8.smethod_87(string.Format("Plugin [{0}] requires an update.", guid));
                 }
             }
         }
         Class8.smethod_5(list2.ToArray());
         try
         {
             foreach (GClass2 gclass2 in Class8.list_2)
             {
                 if (!list2.Contains(gclass2.guid_0))
                 {
                     Class5.bool_0 = true;
                     Class8.smethod_87(string.Format("Plugin [{0}] is being uninstalled.", gclass2.guid_0));
                     if (gclass2.bool_0)
                     {
                         Class5.bool_1 = true;
                     }
                     if (gclass2.gclass3_0 != null)
                     {
                         try
                         {
                             gclass2.gclass3_0.method_8();
                         }
                         catch (Exception exception_)
                         {
                             Class8.smethod_85(gclass2.gclass3_0, exception_, "PluginUninstalling");
                         }
                     }
                 }
             }
         }
         finally
         {
             List <GClass2> .Enumerator enumerator;
             ((IDisposable)enumerator).Dispose();
         }
         if (list.Count == 0 && Class5.bool_0)
         {
             if (Class5.bool_1)
             {
                 Class8.smethod_7();
             }
             Class8.smethod_41();
         }
         else
         {
             Class8.smethod_88(Class8.client_0, true, CommandType.PluginCommand, 2, list.ToArray());
         }
     }
     catch (Exception exception_2)
     {
         Class8.smethod_86(exception_2, "HandlePluginDetailsCommand");
     }
 }