コード例 #1
0
        public static int[,] Decrypt(int[,,] array)
        {
            int[,] numArray = new int[array.Length / 6, 3];
            for (int index1 = 0; index1 < array.Length / 6; ++index1)
            {
                int num1 = 0;
                int num2 = 0;
                int num3 = 0;
                int num4 = 0;
                int num5 = 0;
                int num6 = 0;
                for (int index2 = 0; index2 < 2; ++index2)
                {
                    bool flag = false;
                    for (int index3 = 0; index3 < 3; ++index3)
                    {
                        if (index2 == 0)
                        {
                            switch (index3)
                            {
                            case 0:
                                num1 = array[index1, index2, index3];
                                continue;

                            case 1:
                                num2 = array[index1, index2, index3];
                                continue;

                            case 2:
                                num3 = array[index1, index2, index3];
                                continue;

                            default:
                                continue;
                            }
                        }
                        else
                        {
                            switch (index3)
                            {
                            case 0:
                                num4 = array[index1, index2, index3];
                                break;

                            case 1:
                                num5 = array[index1, index2, index3];
                                break;

                            case 2:
                                num6 = array[index1, index2, index3];
                                break;
                            }
                            flag = true;
                        }
                    }
                    if (flag)
                    {
                        if (num1 - num4 < 0 || num2 - num5 < 0 || num3 - num6 < 0)
                        {
                            numArray[index1, 0] = num4 - num1;
                            numArray[index1, 1] = num5 - num2;
                            numArray[index1, 2] = num6 - num3;
                        }
                        else
                        {
                            numArray[index1, 0] = num1 - num4;
                            numArray[index1, 1] = num2 - num5;
                            numArray[index1, 2] = num3 - num6;
                        }
                        if ((index1 + 1) % 7 != 0 && Charset.GetChar(numArray[index1, 0], numArray[index1, 1], numArray[index1, 2]) != num6 - num5)
                        {
                            integrityViolated = true;
                        }
                        num4 = 0;
                        num5 = 0;
                        num6 = 0;
                        num1 = 0;
                        num2 = 0;
                        num3 = 0;
                    }
                }
            }
            return(numArray);
        }