예제 #1
0
 Interface4 <int> Interface1 <int> .imethod_1()
 {
     Class0.Class4 class2;
     if ((this.int_0 == -2) && (this.int_2 == Thread.CurrentThread.ManagedThreadId))
     {
         this.int_0 = 0;
         class2     = this;
     }
     else
     {
         class2 = new Class0.Class4(0);
     }
     class2.int_3 = this.int_4;
     return(class2);
 }
예제 #2
0
    private static string smethod_1(int int_3, bool bool_0)
    {
        int    num  = -1827340969;
        int    num2 = -360735532;
        string str  = null;

        while (class58_0 != null)
        {
            int           num4;
            StringBuilder builder;
            byte[]        buffer2;
            Assembly      assembly2;
            int           num3 = int_1;
Label_001A:
            if (int_0 == ((0x7d9434c5 - num) ^ num2))
            {
                return(new string(new char[] { (num ^ 0x796b607b) - num2, '0', (0x576a9f35 + num) ^ num2 }));
            }
            int num13 = (int_3 ^ ((-1679363405 ^ num) - num2)) ^ num3;
            num13 ^= (num + -605645539) + num2;
            class58_0.method_0().Position = num13;
            if (byte_1 != null)
            {
                buffer2 = byte_1;
            }
            else
            {
                short num21;
                if (short_0 == -1)
                {
                    num21 = (short)((class58_0.method_1() ^ ((num ^ 0x796b7387) ^ num2)) ^ num13);
                }
                else
                {
                    num21 = short_0;
                }
                if (num21 == 0)
                {
                    buffer2 = null;
                }
                else
                {
                    buffer2 = class58_0.method_6(num21);
                    for (int i = 0; i != buffer2.Length; i++)
                    {
                        buffer2[i] = (byte)(buffer2[i] ^ ((byte)(int_1 >> ((3 & i) << 3))));
                    }
                }
            }
            int num5 = ((class58_0.method_2() ^ num13) ^ -~~--~-~~-~((0x7d9a0a6b - num) - num2)) ^ num3;
            if (num5 != ((-2037080451 ^ num) | num2))
            {
                byte[] buffer3;
                int    num15;
                bool   flag2 = (num5 & ((num ^ -110403197) ^ num2)) > 0;
                bool   flag4 = (num5 & ((num + -1754620035) - num2)) > 0;
                bool   flag3 = (num5 & ((0x5d949a2b - num) ^ num2)) > 0;
                num5 &= (-1231774084 ^ num) + num2;
                byte[] buffer4 = class58_0.method_6(num5);
                byte[] buffer6 = buffer2;
                byte   num24   = buffer6[1];
                int    length  = buffer4.Length;
                byte   num20   = (byte)((length + 11) ^ (7 + num24));
                uint   num19   = (uint)((buffer6[0] | (buffer6[2] << 8)) + (num20 << 3));
                int    index   = 0;
                ushort num16   = 0;
                while (index < length)
                {
                    if ((index & 1) == 0)
                    {
                        num19 = (uint)((num19 * ((num + 0x5767e1d2) ^ num2)) + ((0x7dbb38ee - num) - num2));
                        num16 = (ushort)(num19 >> 0x10);
                    }
                    byte num30 = (byte)num16;
                    num16 = (ushort)(num16 >> 8);
                    byte num23 = buffer4[index];
                    buffer4[index] = (byte)(((num23 ^ num24) ^ (num20 + 3)) ^ num30);
                    index++;
                    num20 = num23;
                }
                byte[] buffer = buffer4;
                if ((byte_0 > null) != (int_0 != ((-2105282981 + num) + num2)))
                {
                    for (int j = 0; j < num5; j = 1 + j)
                    {
                        byte num14 = byte_0[j & 7];
                        num14     = (byte)((num14 << 3) | (num14 >> 5));
                        buffer[j] = (byte)(buffer[j] ^ num14);
                    }
                }
                int num8 = int_0 - 12;
                if (!flag4)
                {
                    buffer3 = buffer;
                    num15   = num5;
                }
                else
                {
                    num15   = ((buffer[2] | (buffer[0] << 0x10)) | (buffer[3] << 8)) | (buffer[1] << 0x18);
                    buffer3 = new byte[num15];
                    smethod_5(buffer, 4, buffer3);
                }
                if (flag2 && (num8 == ((0x798cd819 ^ num) - num2)))
                {
                    char[] chArray2 = new char[num15];
                    for (int k = 0; k < num15; k = 1 + k)
                    {
                        chArray2[k] = (char)buffer3[k];
                    }
                    str = new string(chArray2);
                }
                else
                {
                    str = Encoding.Unicode.GetString(buffer3, 0, buffer3.Length);
                }
                num8 += (((num + -2106890668) + num2) + (3 & num8)) << 5;
                if (num8 != ((0x7973f919 ^ num) ^ num2))
                {
                    int num34 = ((num5 + int_3) ^ ((-2105954227 + num) + num2)) ^ (num8 & ((0x7d949f38 - num) - num2));
                    builder = new StringBuilder();
                    num4    = (num + 0x576a9f35) ^ num2;
                    builder.Append((char)((byte)num4));
                    str = num34.ToString(builder.ToString());
                }
                if ((false == flag3) & bool_0)
                {
                    str = string.Intern(str);
                    class59_0.method_3(int_3, str);
                }
                return(str);
            }
            byte[] buffer5 = class58_0.method_6(4);
            int_3 = ((-1466961853 - num) + num2) ^ num3;
            int_3 = (((buffer5[2] | (buffer5[3] << 0x10)) | (buffer5[0] << 8)) | (buffer5[1] << 0x18)) ^ -int_3;
            str   = class59_0.method_2(int_3);
            if (str == null)
            {
                continue;
            }
            return(str);

Label_016E:
            assembly2 = Assembly.GetExecutingAssembly();
            Assembly callingAssembly = Assembly.GetCallingAssembly();
            int_0  |= (0x7d7c0bad - num) ^ num2;
            builder = new StringBuilder();
            num4    = (-1718402686 ^ num) - num2;
            builder.Append((char)num4).Append((char)(num4 >> 0x10));
            num4 = (0x5d8eba33 - num) ^ num2;
            builder.Append((char)(num4 >> 0x10)).Append((char)num4);
            num4 = (-1500348829 ^ num) + num2;
            builder.Append((char)num4).Append((char)(num4 >> 0x10));
            num4 = (-1650607566 - num) - num2;
            builder.Append((char)num4).Append((char)(num4 >> 0x10));
            num4 = (-1500217736 ^ num) + num2;
            builder.Append((char)(num4 >> 0x10)).Append((char)num4);
            Stream     manifestResourceStream = assembly2.GetManifestResourceStream(builder.ToString());
            int        num6  = 2;
            StackTrace trace = new StackTrace(2, false);
            int_0 ^= ((num + 0x576a883b) ^ num2) | 2;
            num6   = 0;
            StackFrame frame = trace.GetFrame(0);
            int        num17 = 0;
            if (frame == null)
            {
                trace = new StackTrace();
                num17 = 1;
                frame = trace.GetFrame(1);
            }
            MethodBase method = frame?.GetMethod();
            int_0 ^= num6 + ((-2037080325 ^ num) + num2);
            Type declaringType = method?.DeclaringType;
            if (frame == null)
            {
                int_0 ^= (0x5767c710 + num) ^ num2;
            }
            bool flag = declaringType == typeof(RuntimeMethodHandle);
            int_0 ^= (num ^ -2037080421) + num2;
            if (!flag && (flag = declaringType == null))
            {
                if (smethod_4(trace, num17))
                {
                    flag = false;
                }
                else
                {
                    int_0 ^= (0x7d97f2be - num) - num2;
                }
            }
            if (flag == (trace > null))
            {
                int_0 = 0x20 ^ int_0;
            }
            int_0    ^= ((0x576a885b + num) ^ num2) | (1 + num6);
            class58_0 = new Class58(manifestResourceStream);
            short num25 = (short)(class58_0.method_1() ^ ((short)~-~--~~-~((num ^ 0x796bbbeb) - num2)));
            if (num25 == 0)
            {
                short_0 = (short)(class58_0.method_1() ^ ((short)-~-~~--~~((-1466604045 - num) ^ num2)));
            }
            else
            {
                byte_1 = class58_0.method_6(num25);
            }
            callingAssembly = assembly2;
            byte_0          = smethod_3(smethod_2(callingAssembly));
            num3            = int_2;
            int_2           = 0;
            num3           ^= (-380421005 ^ num) + num2;
            long num32 = Class6.smethod_0();
            num3 ^= (int)((uint)num32);
            num3 ^= (0x750a9c29 + num) - num2;
            int           num33  = num3;
            int           num28  = ((0x5e3827a7 - num) + num2) ^ num33;
            int           num11  = (((0x796b4cd6 ^ num) - num2) * num28) % ((-1438863760 - num) + num2);
            int           num18  = (num ^ 0x796b601e) - num2;
            int           num29  = num11;
            Class0.Class4 class1 = new Class0.Class4((num + -2106890797) | num2)
            {
                int_4 = num29
            };
            Interface4 <int> interface2 = ((Interface1 <int>)class1).imethod_1();
            try
            {
                while (interface2.imethod_2())
                {
                    int num31 = interface2.imethod_4();
                    num11 ^= num31 - num18;
                    num18 -= (3 + num11) >> 8;
                }
            }
            finally
            {
                if (interface2 != null)
                {
                    interface2.imethod_0();
                }
            }
            num3 ^= -~-~~--~~((-1813293368 - num) + num2);
            int num26 = num11;
            num3  = num26 + num3;
            int_1 = num3;
            int_0 = (int_0 & ((num ^ 0x696b6111) - num2)) ^ ((num + 0x576a88f9) ^ num2);
            if ((enum0_0 & ~-~--~~-~-~((num ^ 0x796b6197) - num2)) == ((Enum0)0))
            {
                int_0 = (num + -2106846833) + num2;
            }
            goto Label_001A;
        }
        goto Label_016E;
    }
예제 #3
0
 // Token: 0x06000003 RID: 3
 // RVA: 0x00027538 File Offset: 0x00025738
 private bool method_0()
 {
     int i = this.class3_0.method_4();
     while (i >= 258)
     {
         int num;
         switch (this.int_4)
         {
         case 7:
             while (((num = this.class4_0.method_1(this.class2_0)) & -256) == 0)
             {
                 this.class3_0.method_0(num);
                 if (--i < 258)
                 {
                     return true;
                 }
             }
             if (num >= 257)
             {
                 this.int_6 = Class0.Class1.int_0[num - 257];
                 this.int_5 = Class0.Class1.int_1[num - 257];
                 goto IL_9E;
             }
             if (num < 0)
             {
                 return false;
             }
             this.class4_1 = null;
             this.class4_0 = null;
             this.int_4 = 2;
             return true;
         case 8:
             goto IL_9E;
         case 9:
             goto IL_EE;
         case 10:
             break;
         default:
             continue;
         }
         IL_121:
         if (this.int_5 > 0)
         {
             this.int_4 = 10;
             int num2 = this.class2_0.method_0(this.int_5);
             if (num2 < 0)
             {
                 return false;
             }
             this.class2_0.method_1(this.int_5);
             this.int_7 += num2;
         }
         this.class3_0.method_2(this.int_6, this.int_7);
         i -= this.int_6;
         this.int_4 = 7;
         continue;
         IL_EE:
         num = this.class4_1.method_1(this.class2_0);
         if (num >= 0)
         {
             this.int_7 = Class0.Class1.int_2[num];
             this.int_5 = Class0.Class1.int_3[num];
             goto IL_121;
         }
         return false;
         IL_9E:
         if (this.int_5 > 0)
         {
             this.int_4 = 8;
             int num3 = this.class2_0.method_0(this.int_5);
             if (num3 < 0)
             {
                 return false;
             }
             this.class2_0.method_1(this.int_5);
             this.int_6 += num3;
         }
         this.int_4 = 9;
         goto IL_EE;
     }
     return true;
 }
예제 #4
0
 // Token: 0x06000004 RID: 4
 // RVA: 0x00027704 File Offset: 0x00025904
 private bool method_1()
 {
     switch (this.int_4)
     {
     case 2:
     {
         if (this.bool_0)
         {
             this.int_4 = 12;
             return false;
         }
         int num = this.class2_0.method_0(3);
         if (num < 0)
         {
             return false;
         }
         this.class2_0.method_1(3);
         if ((num & 1) != 0)
         {
             this.bool_0 = true;
         }
         switch (num >> 1)
         {
         case 0:
             this.class2_0.method_4();
             this.int_4 = 3;
             break;
         case 1:
             this.class4_0 = Class0.Class4.class4_0;
             this.class4_1 = Class0.Class4.class4_1;
             this.int_4 = 7;
             break;
         case 2:
             this.class5_0 = new Class0.Class5();
             this.int_4 = 6;
             break;
         }
         return true;
     }
     case 3:
         if ((this.int_8 = this.class2_0.method_0(16)) < 0)
         {
             return false;
         }
         this.class2_0.method_1(16);
         this.int_4 = 4;
         break;
     case 4:
         break;
     case 5:
         goto IL_137;
     case 6:
         if (!this.class5_0.method_0(this.class2_0))
         {
             return false;
         }
         this.class4_0 = this.class5_0.method_1();
         this.class4_1 = this.class5_0.method_2();
         this.int_4 = 7;
         goto IL_1BB;
     case 7:
     case 8:
     case 9:
     case 10:
         goto IL_1BB;
     case 11:
         return false;
     case 12:
         return false;
     default:
         return false;
     }
     int num2 = this.class2_0.method_0(16);
     if (num2 < 0)
     {
         return false;
     }
     this.class2_0.method_1(16);
     this.int_4 = 5;
     IL_137:
     int num3 = this.class3_0.method_3(this.class2_0, this.int_8);
     this.int_8 -= num3;
     if (this.int_8 == 0)
     {
         this.int_4 = 2;
         return true;
     }
     return !this.class2_0.method_5();
     IL_1BB:
     return this.method_0();
 }
예제 #5
0
 // Token: 0x0600001F RID: 31
 // RVA: 0x000281CC File Offset: 0x000263CC
 public bool method_0(Class0.Class2 class2_0)
 {
     while (true)
     {
         switch (this.int_2)
         {
         case 0:
             this.int_3 = class2_0.method_0(5);
             if (this.int_3 >= 0)
             {
                 this.int_3 += 257;
                 class2_0.method_1(5);
                 this.int_2 = 1;
                 goto IL_1DD;
             }
             return false;
         case 1:
             goto IL_1DD;
         case 2:
             goto IL_18F;
         case 3:
             goto IL_156;
         case 4:
             break;
         case 5:
             goto IL_2C;
         default:
             continue;
         }
         IL_E1:
         int num;
         while (((num = this.class4_0.method_1(class2_0)) & -16) == 0)
         {
             this.byte_1[this.int_8++] = (this.byte_2 = (byte)num);
             if (this.int_8 == this.int_6)
             {
                 return true;
             }
         }
         if (num >= 0)
         {
             if (num >= 17)
             {
                 this.byte_2 = 0;
             }
             this.int_7 = num - 16;
             this.int_2 = 5;
             goto IL_2C;
         }
         return false;
         IL_156:
         while (this.int_8 < this.int_5)
         {
             int num2 = class2_0.method_0(3);
             if (num2 < 0)
             {
                 return false;
             }
             class2_0.method_1(3);
             this.byte_0[Class0.Class5.int_9[this.int_8]] = (byte)num2;
             this.int_8++;
         }
         this.class4_0 = new Class0.Class4(this.byte_0);
         this.byte_0 = null;
         this.int_8 = 0;
         this.int_2 = 4;
         goto IL_E1;
         IL_2C:
         int num3 = Class0.Class5.int_1[this.int_7];
         int num4 = class2_0.method_0(num3);
         if (num4 < 0)
         {
             return false;
         }
         class2_0.method_1(num3);
         num4 += Class0.Class5.int_0[this.int_7];
         while (num4-- > 0)
         {
             this.byte_1[this.int_8++] = this.byte_2;
         }
         if (this.int_8 == this.int_6)
         {
             break;
         }
         this.int_2 = 4;
         continue;
         IL_18F:
         this.int_5 = class2_0.method_0(4);
         if (this.int_5 >= 0)
         {
             this.int_5 += 4;
             class2_0.method_1(4);
             this.byte_0 = new byte[19];
             this.int_8 = 0;
             this.int_2 = 3;
             goto IL_156;
         }
         return false;
         IL_1DD:
         this.int_4 = class2_0.method_0(5);
         if (this.int_4 >= 0)
         {
             this.int_4++;
             class2_0.method_1(5);
             this.int_6 = this.int_3 + this.int_4;
             this.byte_1 = new byte[this.int_6];
             this.int_2 = 2;
             goto IL_18F;
         }
         return false;
     }
     return true;
 }