home *** CD-ROM | disk | FTP | other *** search
/ PCNET 2006 November - Disc 1 / PCNET_CD_2006_11_1.iso / dergiden / sudoku / sudoku.jar / algorithm / a.class (.txt) next >
Encoding:
Java Class File  |  2006-02-25  |  7.2 KB  |  1,039 lines

  1. package algorithm;
  2.  
  3. import java.util.Date;
  4.  
  5. // $FF: renamed from: algorithm.a
  6. final class class_0 {
  7.    // $FF: renamed from: a long
  8.    long field_0 = 362436069L;
  9.    // $FF: renamed from: b long
  10.    long field_1 = 521288629L;
  11.    // $FF: renamed from: c int[]
  12.    int[] field_2 = new int[325];
  13.    // $FF: renamed from: d int[]
  14.    int[] field_3 = new int[730];
  15.    // $FF: renamed from: e int[][]
  16.    int[][] field_4 = new int[325][10];
  17.    // $FF: renamed from: f int[][]
  18.    int[][] field_5 = new int[730][5];
  19.    // $FF: renamed from: g int[]
  20.    int[] field_6 = new int[730];
  21.    // $FF: renamed from: h int[]
  22.    int[] field_7 = new int[325];
  23.    // $FF: renamed from: i int[]
  24.    int[] field_8 = new int[325];
  25.    // $FF: renamed from: j int[]
  26.    int[] field_9 = new int[325];
  27.    // $FF: renamed from: k int[]
  28.    int[] field_10 = new int[88];
  29.    // $FF: renamed from: l int[]
  30.    int[] field_11 = new int[88];
  31.    // $FF: renamed from: m int[]
  32.    int[] field_12 = new int[88];
  33.    // $FF: renamed from: n int[]
  34.    int[] field_13 = new int[88];
  35.    // $FF: renamed from: o int[]
  36.    int[] field_14 = new int[888];
  37.    // $FF: renamed from: p char[]
  38.    char[] field_15 = new char[]{'0', '1', '1', '1', '2', '2', '2', '3', '3', '3', '1', '1', '1', '2', '2', '2', '3', '3', '3', '1', '1', '1', '2', '2', '2', '3', '3', '3', '4', '4', '4', '5', '5', '5', '6', '6', '6', '4', '4', '4', '5', '5', '5', '6', '6', '6', '4', '4', '4', '5', '5', '5', '6', '6', '6', '7', '7', '7', '8', '8', '8', '9', '9', '9', '7', '7', '7', '8', '8', '8', '9', '9', '9', '7', '7', '7', '8', '8', '8', '9', '9', '9'};
  39.    // $FF: renamed from: q char[][]
  40.    char[][] field_16 = new char[326][7];
  41.    // $FF: renamed from: r long
  42.    long field_17;
  43.    // $FF: renamed from: s long
  44.    long field_18;
  45.    // $FF: renamed from: t long
  46.    long field_19;
  47.    // $FF: renamed from: u int
  48.    int field_20;
  49.    // $FF: renamed from: v int
  50.    int field_21;
  51.    // $FF: renamed from: w int
  52.    int field_22;
  53.    // $FF: renamed from: x int
  54.    int field_23;
  55.    // $FF: renamed from: y int
  56.    int field_24;
  57.    // $FF: renamed from: z int
  58.    int field_25;
  59.    // $FF: renamed from: A int
  60.    int field_26;
  61.    // $FF: renamed from: B int
  62.    int field_27;
  63.    // $FF: renamed from: C int
  64.    int field_28;
  65.    // $FF: renamed from: D int
  66.    int field_29;
  67.    // $FF: renamed from: E int
  68.    int field_30;
  69.    // $FF: renamed from: F int
  70.    int field_31;
  71.    // $FF: renamed from: G int
  72.    int field_32;
  73.    // $FF: renamed from: H int
  74.    int field_33;
  75.    // $FF: renamed from: I int
  76.    int field_34;
  77.    // $FF: renamed from: J int
  78.    int field_35;
  79.    // $FF: renamed from: K int
  80.    int field_36;
  81.    // $FF: renamed from: L int
  82.    int field_37 = 729;
  83.    // $FF: renamed from: M int
  84.    int field_38 = 324;
  85.    // $FF: renamed from: N int
  86.    int field_39;
  87.    // $FF: renamed from: O int
  88.    int field_40;
  89.    // $FF: renamed from: P int
  90.    int field_41;
  91.    // $FF: renamed from: Q int
  92.    int field_42;
  93.    // $FF: renamed from: R int
  94.    int field_43;
  95.    // $FF: renamed from: S int
  96.    int field_44;
  97.    // $FF: renamed from: T int
  98.    int field_45;
  99.    // $FF: renamed from: U int
  100.    int field_46;
  101.    // $FF: renamed from: V int
  102.    int field_47;
  103.    // $FF: renamed from: W int
  104.    int field_48;
  105.    // $FF: renamed from: X int
  106.    int field_49;
  107.    // $FF: renamed from: Y int
  108.    int field_50;
  109.    // $FF: renamed from: Z int
  110.    int field_51;
  111.    // $FF: renamed from: aa int
  112.    int field_52;
  113.    // $FF: renamed from: ab int
  114.    int field_53;
  115.    // $FF: renamed from: ac int
  116.    int field_54;
  117.    // $FF: renamed from: ad int
  118.    int field_55;
  119.    // $FF: renamed from: ae char[]
  120.    char[] field_56 = new char[]{'.', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
  121.    // $FF: renamed from: af boolean
  122.    boolean field_57 = false;
  123.  
  124.    // $FF: renamed from: a () long
  125.    private long method_0() {
  126.       return (this.field_0 = 36969L * (this.field_0 & 65535L) + (this.field_0 >> 16)) ^ (this.field_1 = 18000L * (this.field_1 & 65535L) + (this.field_1 >> 16));
  127.    }
  128.  
  129.    // $FF: renamed from: b (java.lang.String) void
  130.    private void method_1(String var1) {
  131.       if (this.field_57) {
  132.          System.out.println(var1);
  133.       }
  134.  
  135.    }
  136.  
  137.    public class_0() {
  138.       this.method_1("In constructor");
  139.    }
  140.  
  141.    // $FF: renamed from: b () void
  142.    private void method_2() {
  143.       class_0 var10000 = this;
  144.       int var10001 = 0;
  145.  
  146.       while(true) {
  147.          var10000.field_31 = var10001;
  148.          if (this.field_31 >= 888) {
  149.             this.field_34 = 0;
  150.             var10000 = this;
  151.             var10001 = 1;
  152.  
  153.             while(true) {
  154.                var10000.field_39 = var10001;
  155.                if (this.field_39 > 9) {
  156.                   var10000 = this;
  157.                   var10001 = 1;
  158.  
  159.                   while(true) {
  160.                      var10000.field_35 = var10001;
  161.                      if (this.field_35 > this.field_38) {
  162.                         var10000 = this;
  163.                         var10001 = 1;
  164.  
  165.                         while(true) {
  166.                            var10000.field_34 = var10001;
  167.                            if (this.field_34 > this.field_37) {
  168.                               this.field_35 = 0;
  169.                               var10000 = this;
  170.                               var10001 = 1;
  171.  
  172.                               while(true) {
  173.                                  var10000.field_39 = var10001;
  174.                                  if (this.field_39 > 9) {
  175.                                     this.field_35 = 81;
  176.                                     var10000 = this;
  177.                                     var10001 = 1;
  178.  
  179.                                     while(true) {
  180.                                        var10000.field_20 = var10001;
  181.                                        if (this.field_20 > 9) {
  182.                                           this.field_35 = 162;
  183.                                           var10000 = this;
  184.                                           var10001 = 1;
  185.  
  186.                                           while(true) {
  187.                                              var10000.field_39 = var10001;
  188.                                              if (this.field_39 > 9) {
  189.                                                 this.field_35 = 243;
  190.                                                 var10000 = this;
  191.                                                 var10001 = 1;
  192.  
  193.                                                 while(true) {
  194.                                                    var10000.field_40 = var10001;
  195.                                                    if (this.field_40 > 9) {
  196.                                                       return;
  197.                                                    }
  198.  
  199.                                                    var10000 = this;
  200.                                                    var10001 = 1;
  201.  
  202.                                                    while(true) {
  203.                                                       var10000.field_41 = var10001;
  204.                                                       if (this.field_41 > 9) {
  205.                                                          var10000 = this;
  206.                                                          var10001 = this.field_40 + 1;
  207.                                                          break;
  208.                                                       }
  209.  
  210.                                                       ++this.field_35;
  211.                                                       this.field_16[this.field_35][0] = 'c';
  212.                                                       this.field_16[this.field_35][1] = this.field_56[this.field_40];
  213.                                                       this.field_16[this.field_35][2] = 's';
  214.                                                       this.field_16[this.field_35][3] = this.field_56[this.field_41];
  215.                                                       this.field_16[this.field_35][4] = 0;
  216.                                                       var10000 = this;
  217.                                                       var10001 = this.field_41 + 1;
  218.                                                    }
  219.                                                 }
  220.                                              }
  221.  
  222.                                              var10000 = this;
  223.                                              var10001 = 1;
  224.  
  225.                                              while(true) {
  226.                                                 var10000.field_41 = var10001;
  227.                                                 if (this.field_41 > 9) {
  228.                                                    var10000 = this;
  229.                                                    var10001 = this.field_39 + 1;
  230.                                                    break;
  231.                                                 }
  232.  
  233.                                                 ++this.field_35;
  234.                                                 this.field_16[this.field_35][0] = 'r';
  235.                                                 this.field_16[this.field_35][1] = this.field_56[this.field_39];
  236.                                                 this.field_16[this.field_35][2] = 's';
  237.                                                 this.field_16[this.field_35][3] = this.field_56[this.field_41];
  238.                                                 this.field_16[this.field_35][4] = 0;
  239.                                                 var10000 = this;
  240.                                                 var10001 = this.field_41 + 1;
  241.                                              }
  242.                                           }
  243.                                        }
  244.  
  245.                                        var10000 = this;
  246.                                        var10001 = 1;
  247.  
  248.                                        while(true) {
  249.                                           var10000.field_41 = var10001;
  250.                                           if (this.field_41 > 9) {
  251.                                              var10000 = this;
  252.                                              var10001 = this.field_20 + 1;
  253.                                              break;
  254.                                           }
  255.  
  256.                                           ++this.field_35;
  257.                                           this.field_16[this.field_35][0] = 'b';
  258.                                           this.field_16[this.field_35][1] = this.field_56[this.field_20];
  259.                                           this.field_16[this.field_35][2] = 's';
  260.                                           this.field_16[this.field_35][3] = this.field_56[this.field_41];
  261.                                           this.field_16[this.field_35][4] = 0;
  262.                                           var10000 = this;
  263.                                           var10001 = this.field_41 + 1;
  264.                                        }
  265.                                     }
  266.                                  }
  267.  
  268.                                  var10000 = this;
  269.                                  var10001 = 1;
  270.  
  271.                                  while(true) {
  272.                                     var10000.field_40 = var10001;
  273.                                     if (this.field_40 > 9) {
  274.                                        var10000 = this;
  275.                                        var10001 = this.field_39 + 1;
  276.                                        break;
  277.                                     }
  278.  
  279.                                     ++this.field_35;
  280.                                     this.field_16[this.field_35][0] = 'r';
  281.                                     this.field_16[this.field_35][1] = this.field_56[this.field_39];
  282.                                     this.field_16[this.field_35][2] = 'c';
  283.                                     this.field_16[this.field_35][3] = this.field_56[this.field_40];
  284.                                     this.field_16[this.field_35][4] = 0;
  285.                                     var10000 = this;
  286.                                     var10001 = this.field_40 + 1;
  287.                                  }
  288.                               }
  289.                            }
  290.  
  291.                            var10000 = this;
  292.                            var10001 = 1;
  293.  
  294.                            while(true) {
  295.                               var10000.field_35 = var10001;
  296.                               if (this.field_35 > this.field_3[this.field_34]) {
  297.                                  var10000 = this;
  298.                                  var10001 = this.field_34 + 1;
  299.                                  break;
  300.                               }
  301.  
  302.                               this.field_30 = this.field_5[this.field_34][this.field_35];
  303.                               int var10002 = this.field_2[this.field_30]++;
  304.                               this.field_4[this.field_30][this.field_2[this.field_30]] = this.field_34;
  305.                               var10000 = this;
  306.                               var10001 = this.field_35 + 1;
  307.                            }
  308.                         }
  309.                      }
  310.  
  311.                      this.field_2[this.field_35] = 0;
  312.                      var10000 = this;
  313.                      var10001 = this.field_35 + 1;
  314.                   }
  315.                }
  316.  
  317.                var10000 = this;
  318.                var10001 = 1;
  319.  
  320.                while(true) {
  321.                   var10000.field_40 = var10001;
  322.                   if (this.field_40 > 9) {
  323.                      var10000 = this;
  324.                      var10001 = this.field_39 + 1;
  325.                      break;
  326.                   }
  327.  
  328.                   var10000 = this;
  329.                   var10001 = 1;
  330.  
  331.                   while(true) {
  332.                      var10000.field_41 = var10001;
  333.                      if (this.field_41 > 9) {
  334.                         var10000 = this;
  335.                         var10001 = this.field_40 + 1;
  336.                         break;
  337.                      }
  338.  
  339.                      ++this.field_34;
  340.                      this.field_3[this.field_34] = 4;
  341.                      this.field_5[this.field_34][1] = this.field_39 * 9 - 9 + this.field_40;
  342.                      this.field_5[this.field_34][2] = (this.field_15[this.field_39 * 9 - 9 + this.field_40] - 48) * 9 - 9 + this.field_41 + 81;
  343.                      this.field_5[this.field_34][3] = this.field_39 * 9 - 9 + this.field_41 + 162;
  344.                      this.field_5[this.field_34][4] = this.field_40 * 9 - 9 + this.field_41 + 243;
  345.                      var10000 = this;
  346.                      var10001 = this.field_41 + 1;
  347.                   }
  348.                }
  349.             }
  350.          }
  351.  
  352.          var10000 = this;
  353.          var10001 = 1;
  354.  
  355.          while(true) {
  356.             var10000.field_32 = var10001;
  357.             if (this.field_32 > this.field_31) {
  358.                this.field_14[this.field_31] = this.field_32 - 1;
  359.                var10000 = this;
  360.                var10001 = this.field_31 + 1;
  361.                break;
  362.             }
  363.  
  364.             var10000 = this;
  365.             var10001 = this.field_32 + this.field_32;
  366.          }
  367.       }
  368.    }
  369.  
  370.    // $FF: renamed from: a (java.lang.String) long
  371.    public final long method_3(String var1) {
  372.       int var2 = 21;
  373.       Date var4 = new Date();
  374.       this.field_19 = var4.getTime();
  375.       this.field_0 ^= this.field_19;
  376.       this.field_1 += this.field_19;
  377.       this.field_42 = 100;
  378.       this.field_43 = 0;
  379.       this.field_49 = 1;
  380.       class_0 var10000 = this;
  381.       int var10001 = 0;
  382.  
  383.       while(true) {
  384.          var10000.field_31 = var10001;
  385.          if (this.field_31 >= 88) {
  386.             this.method_2();
  387.  
  388.             while(var2 != 20) {
  389.                switch (var2) {
  390.                   case 21:
  391.                      this.field_55 = 0;
  392.                      var10000 = this;
  393.                      var10001 = 1;
  394.  
  395.                      while(true) {
  396.                         var10000.field_31 = var10001;
  397.                         if (this.field_31 > 81) {
  398.                            if (this.field_55 == 81) {
  399.                               --this.field_55;
  400.                               this.field_11[1] = 0;
  401.                            }
  402.  
  403.                            this.field_48 = 0;
  404.                            this.field_44 = 9999;
  405.                            var10000 = this;
  406.                            var10001 = 0;
  407.  
  408.                            while(true) {
  409.                               var10000.field_21 = var10001;
  410.                               if (this.field_21 >= this.field_42) {
  411.                                  break;
  412.                               }
  413.  
  414.                               int var3;
  415.                               if ((var3 = this.method_5()) != 1) {
  416.                                  if (var3 > 1) {
  417.                                     this.field_48 = -1 * var3;
  418.                                  }
  419.  
  420.                                  var2 = 20;
  421.                                  break;
  422.                               }
  423.  
  424.                               this.field_48 += this.field_50;
  425.                               if (this.field_50 < this.field_44) {
  426.                                  this.field_44 = this.field_50;
  427.                                  this.field_45 = this.field_12[this.field_55];
  428.                               }
  429.  
  430.                               var10000 = this;
  431.                               var10001 = this.field_21 + 1;
  432.                            }
  433.  
  434.                            if (var2 != 20) {
  435.                               var2 = this.field_43 > 0 && this.field_48 / this.field_42 > this.field_43 ? 21 : (this.field_43 > 0 ? 21 : ((this.field_42 & 1) > 0 ? 21 : 20));
  436.                            }
  437.                            break;
  438.                         }
  439.  
  440.                         label122: {
  441.                            this.field_35 = var1.charAt(this.field_31 - 1);
  442.                            this.field_32 = 0;
  443.                            if (this.field_35 != 45 && this.field_35 != 46 && this.field_35 != 48 && this.field_35 != 42) {
  444.                               while(this.field_56[this.field_32] != this.field_35 && this.field_32 <= 9) {
  445.                                  ++this.field_32;
  446.                               }
  447.  
  448.                               if (this.field_32 > 9) {
  449.                                  break label122;
  450.                               }
  451.  
  452.                               var10000 = this;
  453.                            } else {
  454.                               var10000 = this;
  455.                            }
  456.  
  457.                            var10000.field_11[this.field_31] = this.field_32;
  458.                         }
  459.  
  460.                         var10000 = this;
  461.                         var10001 = this.field_31 + 1;
  462.                      }
  463.                }
  464.             }
  465.  
  466.             return (long)this.field_48;
  467.          }
  468.  
  469.          this.field_11[this.field_31] = 0;
  470.          var10000 = this;
  471.          var10001 = this.field_31 + 1;
  472.       }
  473.    }
  474.  
  475.    // $FF: renamed from: a (long, int, int) java.lang.String[]
  476.    public final String[] method_4(long var1, int var3, int var4) {
  477.       byte var5 = 10;
  478.       String[] var6 = new String[var3];
  479.       this.method_1("Entering generate");
  480.       this.field_19 = var1;
  481.       this.field_0 ^= this.field_19;
  482.       this.field_1 += this.field_19;
  483.       this.field_53 = 1000;
  484.       if (var3 > 0) {
  485.          this.field_53 = var3;
  486.       }
  487.  
  488.       class_0 var10000 = this;
  489.       int var10001 = 0;
  490.  
  491.       while(true) {
  492.          var10000.field_31 = var10001;
  493.          if (this.field_31 >= this.field_53) {
  494.             this.field_49 = 0;
  495.             if (var4 > 0) {
  496.                this.field_49 = var4;
  497.             }
  498.  
  499.             if (this.field_49 > 2) {
  500.                this.field_49 = 2;
  501.             }
  502.  
  503.             this.method_2();
  504.             this.method_1("Entering state machine");
  505.  
  506.             for(this.field_54 = -1; var5 != 20; var5 = var14) {
  507.                label165: {
  508.                   label157: {
  509.                      switch (var5) {
  510.                         case 10:
  511.                            ++this.field_54;
  512.                            if (this.field_54 >= this.field_53) {
  513.                               var14 = 20;
  514.                               continue;
  515.                            }
  516.                         case 11:
  517.                            var10000 = this;
  518.                            var10001 = 1;
  519.  
  520.                            while(true) {
  521.                               var10000.field_31 = var10001;
  522.                               if (this.field_31 > 81) {
  523.                                  this.field_47 = 0;
  524.                                  this.field_46 = 0;
  525.                                  break;
  526.                               }
  527.  
  528.                               this.field_11[this.field_31] = 0;
  529.                               var10000 = this;
  530.                               var10001 = this.field_31 + 1;
  531.                            }
  532.                         case 12:
  533.                            this.field_27 = (int)(this.method_0() >> 8 & 127L);
  534.                            if (this.field_27 > 80) {
  535.                               var14 = 12;
  536.                               continue;
  537.                            }
  538.  
  539.                            ++this.field_27;
  540.                            if (this.field_11[this.field_27] > 0) {
  541.                               var14 = 12;
  542.                               continue;
  543.                            }
  544.                         case 13:
  545.                            break;
  546.                         case 14:
  547.                            break label157;
  548.                         default:
  549.                            break label165;
  550.                      }
  551.  
  552.                      this.field_41 = (int)(this.method_0() >> 9 & 15L);
  553.                      if (this.field_41 > 8) {
  554.                         var14 = 13;
  555.                         continue;
  556.                      }
  557.  
  558.                      ++this.field_41;
  559.                      this.field_11[this.field_27] = this.field_41;
  560.                      this.field_29 = this.method_5();
  561.                      ++this.field_46;
  562.                      if (this.field_29 < 1) {
  563.                         this.field_11[this.field_27] = 0;
  564.                      }
  565.  
  566.                      if (this.field_29 != 1) {
  567.                         var14 = 12;
  568.                         continue;
  569.                      }
  570.  
  571.                      ++this.field_47;
  572.                      if (this.method_5() != 1) {
  573.                         var14 = 11;
  574.                         continue;
  575.                      }
  576.                   }
  577.  
  578.                   var10000 = this;
  579.                   var10001 = 1;
  580.  
  581.                   label122:
  582.                   while(true) {
  583.                      var10000.field_31 = var10001;
  584.                      if (this.field_31 > 81) {
  585.                         var10000 = this;
  586.                         var10001 = 1;
  587.  
  588.                         while(true) {
  589.                            var10000.field_27 = var10001;
  590.                            if (this.field_27 > 81) {
  591.                               if (this.field_49 > 0) {
  592.                                  this.field_48 = 0;
  593.                                  this.field_44 = 9999;
  594.                                  var10000 = this;
  595.                                  var10001 = 0;
  596.  
  597.                                  while(true) {
  598.                                     var10000.field_21 = var10001;
  599.                                     if (this.field_21 >= 100) {
  600.                                        var6[this.field_54] = var6[this.field_54].concat("Rating:" + this.field_48 + "# ");
  601.                                        String[] var12;
  602.                                        String var10002;
  603.                                        String var10003;
  604.                                        if (this.field_49 > 1) {
  605.                                           var12 = var6;
  606.                                           var10001 = this.field_54;
  607.                                           var10002 = var6[this.field_54];
  608.                                           var10003 = "hint: " + String.valueOf(this.field_16[this.field_45]).substring(0, 4) + " #\n";
  609.                                        } else {
  610.                                           var12 = var6;
  611.                                           var10001 = this.field_54;
  612.                                           var10002 = var6[this.field_54];
  613.                                           var10003 = "\n";
  614.                                        }
  615.  
  616.                                        var12[var10001] = var10002.concat(var10003);
  617.                                        break;
  618.                                     }
  619.  
  620.                                     this.method_5();
  621.                                     this.field_48 += this.field_50;
  622.                                     if (this.field_50 < this.field_44) {
  623.                                        this.field_44 = this.field_50;
  624.                                        this.field_45 = this.field_12[this.field_55];
  625.                                     }
  626.  
  627.                                     var10000 = this;
  628.                                     var10001 = this.field_21 + 1;
  629.                                  }
  630.                               }
  631.  
  632.                               var10000 = this;
  633.                               var10001 = 1;
  634.  
  635.                               while(true) {
  636.                                  var10000.field_31 = var10001;
  637.                                  if (this.field_31 > 81) {
  638.                                     var6[this.field_54] = var6[this.field_54].concat("\n");
  639.                                     break label122;
  640.                                  }
  641.  
  642.                                  var6[this.field_54] = var6[this.field_54].concat(String.valueOf(this.field_56[this.field_11[this.field_31]]));
  643.                                  if (this.field_31 % 9 == 0) {
  644.                                     var6[this.field_54] = var6[this.field_54].concat("\n");
  645.                                  }
  646.  
  647.                                  var10000 = this;
  648.                                  var10001 = this.field_31 + 1;
  649.                               }
  650.                            }
  651.  
  652.                            this.field_22 = this.field_11[this.field_10[this.field_27]];
  653.                            this.field_11[this.field_10[this.field_27]] = 0;
  654.                            if (this.method_5() > 1) {
  655.                               this.field_11[this.field_10[this.field_27]] = this.field_22;
  656.                            }
  657.  
  658.                            var10000 = this;
  659.                            var10001 = this.field_27 + 1;
  660.                         }
  661.                      }
  662.  
  663.                      var10000 = this;
  664.  
  665.                      while(true) {
  666.                         var10000.field_39 = (int)(this.method_0() >> 8 & 127L);
  667.                         if (this.field_39 < this.field_31) {
  668.                            ++this.field_39;
  669.                            this.field_10[this.field_31] = this.field_10[this.field_39];
  670.                            this.field_10[this.field_39] = this.field_31;
  671.                            var10000 = this;
  672.                            var10001 = this.field_31 + 1;
  673.                            break;
  674.                         }
  675.  
  676.                         var10000 = this;
  677.                      }
  678.                   }
  679.                }
  680.  
  681.                this.method_1("Default case. New state M0S");
  682.                var14 = 10;
  683.             }
  684.  
  685.             return var6;
  686.          }
  687.  
  688.          var6[this.field_31] = new String();
  689.          var10000 = this;
  690.          var10001 = this.field_31 + 1;
  691.       }
  692.    }
  693.  
  694.    // $FF: renamed from: c () int
  695.    private int method_5() {
  696.       int var1 = 15;
  697.       class_0 var10000 = this;
  698.       int var10001 = 0;
  699.  
  700.       while(true) {
  701.          var10000.field_31 = var10001;
  702.          if (this.field_31 > this.field_37) {
  703.             var10000 = this;
  704.             var10001 = 0;
  705.  
  706.             while(true) {
  707.                var10000.field_31 = var10001;
  708.                if (this.field_31 > this.field_38) {
  709.                   this.field_55 = 0;
  710.                   var10000 = this;
  711.                   var10001 = 1;
  712.  
  713.                   while(true) {
  714.                      var10000.field_31 = var10001;
  715.                      if (this.field_31 > 81) {
  716.                         var10000 = this;
  717.                         var10001 = 1;
  718.  
  719.                         while(true) {
  720.                            var10000.field_35 = var10001;
  721.                            if (this.field_35 > this.field_38) {
  722.                               this.field_31 = this.field_55;
  723.                               this.field_23 = 0;
  724.                               this.field_28 = 0;
  725.                               this.field_51 = 0;
  726.                               this.field_50 = 0;
  727.                               this.method_1("Solve: Entering state machine");
  728.  
  729.                               while(true) {
  730.                                  label207:
  731.                                  while(true) {
  732.                                     if (var1 == 20) {
  733.                                        return this.field_51;
  734.                                     }
  735.  
  736.                                     label255: {
  737.                                        switch (var1) {
  738.                                           case 15:
  739.                                              ++this.field_31;
  740.                                              this.field_13[this.field_31] = 0;
  741.                                              this.field_52 = this.field_37 + 1;
  742.                                              if (this.field_31 > 81 || this.field_23 > 0) {
  743.                                                 var11 = 17;
  744.                                                 break label207;
  745.                                              }
  746.  
  747.                                              if (this.field_28 > 0) {
  748.                                                 this.field_12[this.field_31] = this.field_28;
  749.                                                 var11 = 16;
  750.                                                 break label207;
  751.                                              }
  752.  
  753.                                              this.field_18 = 0L;
  754.                                              var10000 = this;
  755.                                              var10001 = 1;
  756.  
  757.                                              while(true) {
  758.                                                 var10000.field_35 = var10001;
  759.                                                 if (this.field_35 > this.field_38) {
  760.                                                    break;
  761.                                                 }
  762.  
  763.                                                 if (this.field_7[this.field_35] == 0) {
  764.                                                    if (this.field_8[this.field_35] < 2) {
  765.                                                       this.field_12[this.field_31] = this.field_35;
  766.                                                       var1 = 16;
  767.                                                       break;
  768.                                                    }
  769.  
  770.                                                    if (this.field_8[this.field_35] <= this.field_52) {
  771.                                                       ++this.field_18;
  772.                                                       this.field_9[(int)this.field_18] = this.field_35;
  773.                                                    }
  774.  
  775.                                                    if (this.field_8[this.field_35] < this.field_52) {
  776.                                                       this.field_18 = 1L;
  777.                                                       this.field_9[(int)this.field_18] = this.field_35;
  778.                                                       this.field_52 = this.field_8[this.field_35];
  779.                                                    }
  780.                                                 }
  781.  
  782.                                                 var10000 = this;
  783.                                                 var10001 = this.field_35 + 1;
  784.                                              }
  785.  
  786.                                              if (var1 == 16) {
  787.                                                 continue;
  788.                                              }
  789.                                           case 19:
  790.                                              var10000 = this;
  791.  
  792.                                              while(true) {
  793.                                                 var10000.field_17 = this.method_0() & (long)this.field_14[(int)this.field_18];
  794.                                                 if (this.field_17 < this.field_18) {
  795.                                                    this.field_12[this.field_31] = this.field_9[(int)this.field_17 + 1];
  796.                                                    break;
  797.                                                 }
  798.  
  799.                                                 var10000 = this;
  800.                                              }
  801.                                           case 16:
  802.                                              break;
  803.                                           case 17:
  804.                                              --this.field_31;
  805.                                              if (this.field_31 == this.field_55) {
  806.                                                 var11 = 18;
  807.                                                 break label207;
  808.                                              }
  809.  
  810.                                              this.field_35 = this.field_12[this.field_31];
  811.                                              this.field_34 = this.field_4[this.field_35][this.field_13[this.field_31]];
  812.                                              var10000 = this;
  813.                                              var10001 = 1;
  814.  
  815.                                              while(true) {
  816.                                                 var10000.field_32 = var10001;
  817.                                                 if (this.field_32 > this.field_3[this.field_34]) {
  818.                                                    if (this.field_31 > this.field_55) {
  819.                                                       var11 = 16;
  820.                                                       break label207;
  821.                                                    }
  822.                                                    break label255;
  823.                                                 }
  824.  
  825.                                                 this.field_24 = this.field_5[this.field_34][this.field_32];
  826.                                                 int var34 = this.field_7[this.field_24]--;
  827.                                                 var10000 = this;
  828.                                                 var10001 = 1;
  829.  
  830.                                                 while(true) {
  831.                                                    var10000.field_33 = var10001;
  832.                                                    if (this.field_33 > this.field_2[this.field_24]) {
  833.                                                       var10000 = this;
  834.                                                       var10001 = this.field_32 + 1;
  835.                                                       break;
  836.                                                    }
  837.  
  838.                                                    this.field_25 = this.field_4[this.field_24][this.field_33];
  839.                                                    var34 = this.field_6[this.field_25]--;
  840.                                                    if (this.field_6[this.field_25] == 0) {
  841.                                                       var10000 = this;
  842.                                                       var10001 = 1;
  843.  
  844.                                                       while(true) {
  845.                                                          var10000.field_26 = var10001;
  846.                                                          if (this.field_26 > this.field_3[this.field_25]) {
  847.                                                             break;
  848.                                                          }
  849.  
  850.                                                          this.field_17 = (long)this.field_5[this.field_25][this.field_26];
  851.                                                          var34 = this.field_8[(int)this.field_17]++;
  852.                                                          var10000 = this;
  853.                                                          var10001 = this.field_26 + 1;
  854.                                                       }
  855.                                                    }
  856.  
  857.                                                    var10000 = this;
  858.                                                    var10001 = this.field_33 + 1;
  859.                                                 }
  860.                                              }
  861.                                           case 18:
  862.                                              break label255;
  863.                                           default:
  864.                                              var11 = 20;
  865.                                              break label207;
  866.                                        }
  867.  
  868.                                        this.field_35 = this.field_12[this.field_31];
  869.                                        int var37 = this.field_13[this.field_31]++;
  870.                                        if (this.field_13[this.field_31] > this.field_2[this.field_35]) {
  871.                                           var11 = 17;
  872.                                           break;
  873.                                        }
  874.  
  875.                                        this.field_34 = this.field_4[this.field_35][this.field_13[this.field_31]];
  876.                                        if (this.field_6[this.field_34] > 0) {
  877.                                           var11 = 16;
  878.                                           break;
  879.                                        }
  880.  
  881.                                        this.field_23 = 0;
  882.                                        this.field_28 = 0;
  883.                                        ++this.field_50;
  884.                                        var10000 = this;
  885.                                        var10001 = 1;
  886.  
  887.                                        while(true) {
  888.                                           var10000.field_32 = var10001;
  889.                                           if (this.field_32 > this.field_3[this.field_34]) {
  890.                                              var10000 = this;
  891.                                              var10001 = 1;
  892.  
  893.                                              while(true) {
  894.                                                 var10000.field_32 = var10001;
  895.                                                 if (this.field_32 > this.field_3[this.field_34]) {
  896.                                                    if (this.field_31 == 81) {
  897.                                                       ++this.field_51;
  898.                                                    }
  899.  
  900.                                                    var11 = this.field_51 > 1 ? 18 : 15;
  901.                                                    break label207;
  902.                                                 }
  903.  
  904.                                                 this.field_24 = this.field_5[this.field_34][this.field_32];
  905.                                                 var10000 = this;
  906.                                                 var10001 = 1;
  907.  
  908.                                                 while(true) {
  909.                                                    var10000.field_33 = var10001;
  910.                                                    if (this.field_33 > this.field_2[this.field_24]) {
  911.                                                       var10000 = this;
  912.                                                       var10001 = this.field_32 + 1;
  913.                                                       break;
  914.                                                    }
  915.  
  916.                                                    this.field_25 = this.field_4[this.field_24][this.field_33];
  917.                                                    var37 = this.field_6[this.field_25]++;
  918.                                                    if (this.field_6[this.field_25] == 1) {
  919.                                                       var10000 = this;
  920.                                                       var10001 = 1;
  921.  
  922.                                                       while(true) {
  923.                                                          var10000.field_26 = var10001;
  924.                                                          if (this.field_26 > this.field_3[this.field_25]) {
  925.                                                             break;
  926.                                                          }
  927.  
  928.                                                          this.field_17 = (long)this.field_5[this.field_25][this.field_26];
  929.                                                          var37 = this.field_8[(int)this.field_17]--;
  930.                                                          if (this.field_7[(int)this.field_17] + this.field_8[(int)this.field_17] < 1) {
  931.                                                             this.field_23 = (int)this.field_17;
  932.                                                          }
  933.  
  934.                                                          if (this.field_7[(int)this.field_17] == 0 && this.field_8[(int)this.field_17] < 2) {
  935.                                                             this.field_28 = (int)this.field_17;
  936.                                                          }
  937.  
  938.                                                          var10000 = this;
  939.                                                          var10001 = this.field_26 + 1;
  940.                                                       }
  941.                                                    }
  942.  
  943.                                                    var10000 = this;
  944.                                                    var10001 = this.field_33 + 1;
  945.                                                 }
  946.                                              }
  947.                                           }
  948.  
  949.                                           this.field_24 = this.field_5[this.field_34][this.field_32];
  950.                                           var37 = this.field_7[this.field_24]++;
  951.                                           var10000 = this;
  952.                                           var10001 = this.field_32 + 1;
  953.                                        }
  954.                                     }
  955.  
  956.                                     var11 = 20;
  957.                                     break;
  958.                                  }
  959.  
  960.                                  var1 = var11;
  961.                               }
  962.                            }
  963.  
  964.                            this.field_8[this.field_35] = 0;
  965.                            var10000 = this;
  966.                            var10001 = 1;
  967.  
  968.                            while(true) {
  969.                               var10000.field_34 = var10001;
  970.                               if (this.field_34 > this.field_2[this.field_35]) {
  971.                                  var10000 = this;
  972.                                  var10001 = this.field_35 + 1;
  973.                                  break;
  974.                               }
  975.  
  976.                               if (this.field_6[this.field_4[this.field_35][this.field_34]] == 0) {
  977.                                  int var33 = this.field_8[this.field_35]++;
  978.                               }
  979.  
  980.                               var10000 = this;
  981.                               var10001 = this.field_34 + 1;
  982.                            }
  983.                         }
  984.                      }
  985.  
  986.                      if (this.field_11[this.field_31] > 0) {
  987.                         ++this.field_55;
  988.                         this.field_34 = this.field_31 * 9 - 9 + this.field_11[this.field_31];
  989.                         var10000 = this;
  990.                         var10001 = 1;
  991.  
  992.                         while(true) {
  993.                            var10000.field_32 = var10001;
  994.                            if (this.field_32 > this.field_3[this.field_34]) {
  995.                               break;
  996.                            }
  997.  
  998.                            this.field_36 = this.field_5[this.field_34][this.field_32];
  999.                            if (this.field_7[this.field_36] > 0) {
  1000.                               return 0;
  1001.                            }
  1002.  
  1003.                            int var10002 = this.field_7[this.field_36]++;
  1004.                            var10000 = this;
  1005.                            var10001 = 1;
  1006.  
  1007.                            while(true) {
  1008.                               var10000.field_33 = var10001;
  1009.                               if (this.field_33 > this.field_2[this.field_36]) {
  1010.                                  var10000 = this;
  1011.                                  var10001 = this.field_32 + 1;
  1012.                                  break;
  1013.                               }
  1014.  
  1015.                               var10002 = this.field_6[this.field_4[this.field_36][this.field_33]]++;
  1016.                               var10000 = this;
  1017.                               var10001 = this.field_33 + 1;
  1018.                            }
  1019.                         }
  1020.                      }
  1021.  
  1022.                      var10000 = this;
  1023.                      var10001 = this.field_31 + 1;
  1024.                   }
  1025.                }
  1026.  
  1027.                this.field_7[this.field_31] = 0;
  1028.                var10000 = this;
  1029.                var10001 = this.field_31 + 1;
  1030.             }
  1031.          }
  1032.  
  1033.          this.field_6[this.field_31] = 0;
  1034.          var10000 = this;
  1035.          var10001 = this.field_31 + 1;
  1036.       }
  1037.    }
  1038. }
  1039.