예제 #1
0
 private static Class23[] smethod_31(Class23 class23_0, Class23 class23_1, Class23 class23_2, Class23 class23_3, Class23 class23_4, int int_3)
 {
     Class23[] array = new Class23[3];
        if ((class23_2.uint_0[0] & 1u) == 0u)
        {
        throw new ArgumentException("Argument k must be odd.");
        }
        int num = class23_2.method_9();
        uint num2 = (uint)(1 << ((num & 31) - 1 & 31));
        Class23 @class = Class23.smethod_24(Class23.smethod_2(2), class23_3);
        Class23 class2 = Class23.smethod_24(Class23.smethod_2(1), class23_3);
        Class23 class3 = Class23.smethod_24(class23_0, class23_3);
        Class23 class4 = class2;
        bool flag = true;
        for (int i = class23_2.int_2 - 1; i >= 0; i--)
        {
        while (num2 != 0u && (i != 0 || num2 != 1u))
        {
            if ((class23_2.uint_0[i] & num2) != 0u)
            {
                class4 = Class23.smethod_24(Class23.smethod_8(class4, class3), class23_3);
                @class = Class23.smethod_24(Class23.smethod_6(Class23.smethod_8(@class, class3), Class23.smethod_8(class23_0, class2)), class23_3);
                class3 = class23_3.method_6(Class23.smethod_8(class3, class3), class23_3, class23_4);
                class3 = Class23.smethod_24(Class23.smethod_6(class3, Class23.smethod_9(Class23.smethod_8(class2, class23_1), 1)), class23_3);
                if (flag)
                {
                    flag = false;
                }
                else
                {
                    class2 = class23_3.method_6(Class23.smethod_8(class2, class2), class23_3, class23_4);
                }
                class2 = Class23.smethod_24(Class23.smethod_8(class2, class23_1), class23_3);
            }
            else
            {
                class4 = Class23.smethod_24(Class23.smethod_6(Class23.smethod_8(class4, @class), class2), class23_3);
                class3 = Class23.smethod_24(Class23.smethod_6(Class23.smethod_8(@class, class3), Class23.smethod_8(class23_0, class2)), class23_3);
                @class = class23_3.method_6(Class23.smethod_8(@class, @class), class23_3, class23_4);
                @class = Class23.smethod_24(Class23.smethod_6(@class, Class23.smethod_9(class2, 1)), class23_3);
                if (flag)
                {
                    class2 = Class23.smethod_24(class23_1, class23_3);
                    flag = false;
                }
                else
                {
                    class2 = class23_3.method_6(Class23.smethod_8(class2, class2), class23_3, class23_4);
                }
            }
            num2 >>= 1;
        }
        num2 = 2147483648u;
        }
        class4 = Class23.smethod_24(Class23.smethod_6(Class23.smethod_8(class4, @class), class2), class23_3);
        @class = Class23.smethod_24(Class23.smethod_6(Class23.smethod_8(@class, class3), Class23.smethod_8(class23_0, class2)), class23_3);
        if (flag)
        {
        flag = false;
        }
        else
        {
        class2 = class23_3.method_6(Class23.smethod_8(class2, class2), class23_3, class23_4);
        }
        class2 = Class23.smethod_24(Class23.smethod_8(class2, class23_1), class23_3);
        for (int i = 0; i < int_3; i++)
        {
        class4 = Class23.smethod_24(Class23.smethod_8(class4, @class), class23_3);
        @class = Class23.smethod_24(Class23.smethod_6(Class23.smethod_8(@class, @class), Class23.smethod_9(class2, 1)), class23_3);
        if (flag)
        {
            class2 = Class23.smethod_24(class23_1, class23_3);
            flag = false;
        }
        else
        {
            class2 = class23_3.method_6(Class23.smethod_8(class2, class2), class23_3, class23_4);
        }
        }
        array[0] = class4;
        array[1] = @class;
        array[2] = class2;
        return array;
 }
예제 #2
0
 public Class23 method_5(Class23 class23_0, Class23 class23_1)
 {
     if ((class23_0.uint_0[499] & 2147483648u) != 0u)
        {
        throw new ArithmeticException("Positive exponents only.");
        }
        Class23 @class = Class23.smethod_2(1);
        bool flag = false;
        Class23 class2;
        if ((this.uint_0[499] & 2147483648u) != 0u)
        {
        class2 = Class23.smethod_24(Class23.smethod_14(this), class23_1);
        flag = true;
        }
        else
        {
        class2 = Class23.smethod_24(this, class23_1);
        }
        if ((class23_1.uint_0[499] & 2147483648u) != 0u)
        {
        class23_1 = Class23.smethod_14(class23_1);
        }
        Class23 class3 = new Class23();
        int num = class23_1.int_2 << 1;
        class3.uint_0[num] = 1u;
        class3.int_2 = num + 1;
        class3 = Class23.smethod_23(class3, class23_1);
        int num2 = class23_0.method_9();
        int num3 = 0;
        Class23 result;
        for (int i = 0; i < class23_0.int_2; i++)
        {
        uint num4 = 1u;
        int j = 0;
        while (j < 32)
        {
            if ((class23_0.uint_0[i] & num4) != 0u)
            {
                @class = this.method_6(Class23.smethod_8(@class, class2), class23_1, class3);
            }
            num4 = (uint)num4 << 1;
            class2 = this.method_6(Class23.smethod_8(class2, class2), class23_1, class3);
            if (class2.int_2 != 1 || class2.uint_0[0] != 1u)
            {
                num3++;
                if (num3 == num2)
                {
                    break;
                }
                j++;
            }
            else
            {
                if (flag && (class23_0.uint_0[0] & 1u) != 0u)
                {
                    result = Class23.smethod_14(@class);
                    return result;
                }
                result = @class;
                return result;
            }
        }
        }
        if (flag && (class23_0.uint_0[0] & 1u) != 0u)
        {
        result = Class23.smethod_14(@class);
        return result;
        }
        result = @class;
        return result;
 }