Advertisement
Guest User

JarMain

a guest
Feb 21st, 2014
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 38.44 KB | None | 0 0
  1. package load;
  2.  
  3. import java.util.*;
  4. import java.lang.reflect.*;
  5. import java.io.*;
  6.  
  7. public class JarMain extends ClassLoader
  8. {
  9.     private String a;
  10.     private static final HashMap<String, Class> b;
  11.     private static final HashMap<String, byte[]> c;
  12.     public static boolean d;
  13.     public static boolean e;
  14.     private static final String[] z;
  15.    
  16.     public JarMain() {
  17.         final boolean e = JarMain.e;
  18.         super(JarMain.class.getClassLoader());
  19.         final BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(this.getClass().getResourceAsStream(JarMain.z[0])));
  20.         while (true) {
  21.             while (bufferedReader.ready()) {
  22.                 this.a = bufferedReader.readLine();
  23.                 if (e) {
  24.                     if (JarMain.d) {
  25.                         JarMain.e = !e;
  26.                     }
  27.                     return;
  28.                 }
  29.                 if (e) {
  30.                     break;
  31.                 }
  32.             }
  33.             bufferedReader.close();
  34.             this.b();
  35.             continue;
  36.         }
  37.     }
  38.    
  39.     @Override
  40.     public Class loadClass(final String s) {
  41.         return this.findClass(s);
  42.     }
  43.    
  44.     private byte[] a(final byte[] array) {
  45.         final boolean e = JarMain.e;
  46.         final String string = this.a + JarMain.z[5];
  47.         final int[] array2 = new int[257];
  48.         final int[] array3 = new int[257];
  49.         int n = 0;
  50.         int i = 0;
  51.         while (true) {
  52.         Label_0160_Outer:
  53.             while (i < 256) {
  54.                 array2[i] = i;
  55.                 ++i;
  56.                 if (e) {
  57.                     int j = 0;
  58.                     while (true) {
  59.                         while (j < 256) {
  60.                             int n3;
  61.                             final int n2 = n3 = n;
  62.                             Label_0132: {
  63.                                 if (!e) {
  64.                                     final int length = string.length();
  65.                                     if (e) {
  66.                                         Label_0232: {
  67.                                             while (true) {
  68.                                                 if (n3 < length) {
  69.                                                     n = (n + array2[j] + array3[j]) % 256;
  70.                                                     final char c = (char)array2[j];
  71.                                                     array2[j] = array2[n];
  72.                                                     array2[n] = c;
  73.                                                     ++j;
  74.                                                     if (e) {
  75.                                                         break Label_0232;
  76.                                                     }
  77.                                                     if (!e) {
  78.                                                         n3 = j;
  79.                                                         continue Label_0160_Outer;
  80.                                                     }
  81.                                                 }
  82.                                                 break;
  83.                                             }
  84.                                             n = (j = 0);
  85.                                         }
  86.                                         int k = 0;
  87.                                         while (k < array.length) {
  88.                                             j = (j + 1) % 256;
  89.                                             n = (n + array2[j]) % 256;
  90.                                             final char c2 = (char)array2[j];
  91.                                             array2[j] = array2[n];
  92.                                             array2[n] = c2;
  93.                                             final char c3 = (char)array2[(array2[j] + array2[n]) % 256];
  94.                                             final byte[] array4 = array;
  95.                                             if (e) {
  96.                                                 return array4;
  97.                                             }
  98.                                             array[k] ^= (byte)c3;
  99.                                             ++k;
  100.                                             if (e) {
  101.                                                 break;
  102.                                             }
  103.                                         }
  104.                                         return array;
  105.                                     }
  106.                                     if (n2 != length) {
  107.                                         break Label_0132;
  108.                                     }
  109.                                 }
  110.                                 n = n2;
  111.                             }
  112.                             array3[j] = string.charAt(n++);
  113.                             ++j;
  114.                             if (e) {
  115.                                 break;
  116.                             }
  117.                         }
  118.                         n = 0;
  119.                         j = 0;
  120.                         continue;
  121.                     }
  122.                 }
  123.                 if (e) {
  124.                     break;
  125.                 }
  126.             }
  127.             n = 0;
  128.             continue;
  129.         }
  130.     }
  131.    
  132.     public Class findClass(final String s) {
  133.         final Class<?> clazz = JarMain.b.get(s);
  134.         Label_0028: {
  135.             Class<?> clazz2;
  136.             try {
  137.                 final Class<?> systemClass;
  138.                 clazz2 = (systemClass = clazz);
  139.                 if (JarMain.e) {
  140.                     return systemClass;
  141.                 }
  142.                 if (clazz2 != null) {
  143.                     return clazz;
  144.                 }
  145.                 break Label_0028;
  146.             }
  147.             catch (ClassNotFoundException ex) {
  148.                 throw ex;
  149.             }
  150.             try {
  151.                 if (clazz2 != null) {
  152.                     return clazz;
  153.                 }
  154.             }
  155.             catch (ClassNotFoundException ex2) {
  156.                 throw ex2;
  157.             }
  158.             try {
  159.                 return this.findSystemClass(s);
  160.             }
  161.             catch (ClassNotFoundException ex3) {
  162.                 try {
  163.                     final byte[] array = JarMain.c.get(s);
  164.                     final Class<?> defineClass = this.defineClass(s, array, 0, array.length);
  165.                     JarMain.b.put(s, defineClass);
  166.                     return defineClass;
  167.                 }
  168.                 catch (Exception ex4) {
  169.                     return null;
  170.                 }
  171.             }
  172.         }
  173.     }
  174.    
  175.     @Override
  176.     public InputStream getResourceAsStream(final String s) {
  177.         final byte[] array = JarMain.c.get(s.replace("/", ".").replace(JarMain.z[2], ""));
  178.         if (array != null) {
  179.             return new ByteArrayInputStream(array);
  180.         }
  181.         return null;
  182.     }
  183.    
  184.     public static void main(final String[] array) {
  185.         final boolean e = JarMain.e;
  186.         final Method method = new JarMain().loadClass(JarMain.z[4]).getMethod(JarMain.z[3], String[].class);
  187.         final int modifiers = method.getModifiers();
  188.         final boolean public1 = Modifier.isPublic(modifiers);
  189.         Label_0086: {
  190.             if (!e) {
  191.                 if (!public1) {
  192.                     break Label_0086;
  193.                 }
  194.                 Modifier.isStatic(modifiers);
  195.             }
  196.             if (public1) {
  197.                 method.invoke(null, new String[0]);
  198.             }
  199.         }
  200.         if (e) {
  201.             JarMain.d = !JarMain.d;
  202.         }
  203.     }
  204.    
  205.     private byte[] a() {
  206.         final boolean e = JarMain.e;
  207.         final InputStream resourceAsStream = this.getClass().getResourceAsStream(JarMain.z[6]);
  208.         final byte[] array = new byte[1024];
  209.         final ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
  210.         int read;
  211.         while ((read = resourceAsStream.read(array)) > -1) {
  212.             byteArrayOutputStream.write(array, 0, read);
  213.             if (e) {
  214.                 return byteArrayOutputStream.toByteArray();
  215.             }
  216.             if (e) {
  217.                 break;
  218.             }
  219.         }
  220.         resourceAsStream.close();
  221.         byteArrayOutputStream.close();
  222.         return byteArrayOutputStream.toByteArray();
  223.     }
  224.    
  225.     private void b() {
  226.         //
  227.         // This method could not be decompiled.
  228.         //
  229.         // Original Bytecode:
  230.         //
  231.         //     0: getstatic       load/JarMain.e:Z
  232.         //     3: istore          6
  233.         //     5: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  234.         //     8: ldc             ""
  235.         //    10: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  236.         //    13: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  237.         //    16: ldc             ""
  238.         //    18: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  239.         //    21: new             Ljava/util/jar/JarInputStream;
  240.         //    24: dup            
  241.         //    25: new             Ljava/io/ByteArrayInputStream;
  242.         //    28: dup            
  243.         //    29: aload_0        
  244.         //    30: aload_0        
  245.         //    31: invokespecial   load/JarMain.a:()[B
  246.         //    34: invokespecial   load/JarMain.a:([B)[B
  247.         //    37: invokespecial   java/io/ByteArrayInputStream.<init>:([B)V
  248.         //    40: invokespecial   java/util/jar/JarInputStream.<init>:(Ljava/io/InputStream;)V
  249.         //    43: astore_2      
  250.         //    44: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  251.         //    47: ldc             ""
  252.         //    49: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  253.         //    52: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  254.         //    55: ldc             ""
  255.         //    57: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  256.         //    60: sipush          1024
  257.         //    63: newarray        B
  258.         //    65: astore          4
  259.         //    67: aload_2        
  260.         //    68: invokevirtual   java/util/jar/JarInputStream.getNextJarEntry:()Ljava/util/jar/JarEntry;
  261.         //    71: dup            
  262.         //    72: astore_3      
  263.         //    73: ifnull          417
  264.         //    76: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  265.         //    79: ldc             ""
  266.         //    81: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  267.         //    84: iload           6
  268.         //    86: ifne            421
  269.         //    89: getstatic       load/JarMain.z:[Ljava/lang/String;
  270.         //    92: iconst_1      
  271.         //    93: aaload        
  272.         //    94: aload_3        
  273.         //    95: invokevirtual   java/util/jar/JarEntry.getName:()Ljava/lang/String;
  274.         //    98: invokevirtual   java/lang/String.equals:(Ljava/lang/Object;)Z
  275.         //   101: iload           6
  276.         //   103: ifne            138
  277.         //   106: goto            110
  278.         //   109: athrow        
  279.         //   110: ifeq            134
  280.         //   113: goto            117
  281.         //   116: athrow        
  282.         //   117: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  283.         //   120: ldc             ""
  284.         //   122: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  285.         //   125: iload           6
  286.         //   127: ifeq            67
  287.         //   130: goto            134
  288.         //   133: athrow        
  289.         //   134: aload_3        
  290.         //   135: invokevirtual   java/util/jar/JarEntry.isDirectory:()Z
  291.         //   138: ifeq            158
  292.         //   141: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  293.         //   144: ldc             ""
  294.         //   146: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  295.         //   149: iload           6
  296.         //   151: ifeq            67
  297.         //   154: goto            158
  298.         //   157: athrow        
  299.         //   158: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  300.         //   161: ldc             ""
  301.         //   163: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  302.         //   166: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  303.         //   169: ldc             ""
  304.         //   171: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  305.         //   174: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  306.         //   177: ldc             ""
  307.         //   179: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  308.         //   182: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  309.         //   185: ldc             ""
  310.         //   187: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  311.         //   190: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  312.         //   193: ldc             ""
  313.         //   195: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  314.         //   198: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  315.         //   201: ldc             ""
  316.         //   203: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  317.         //   206: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  318.         //   209: ldc             ""
  319.         //   211: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  320.         //   214: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  321.         //   217: ldc             ""
  322.         //   219: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  323.         //   222: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  324.         //   225: ldc             ""
  325.         //   227: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  326.         //   230: new             Ljava/io/ByteArrayOutputStream;
  327.         //   233: dup            
  328.         //   234: invokespecial   java/io/ByteArrayOutputStream.<init>:()V
  329.         //   237: astore          5
  330.         //   239: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  331.         //   242: ldc             ""
  332.         //   244: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  333.         //   247: aload_2        
  334.         //   248: aload           4
  335.         //   250: invokevirtual   java/util/jar/JarInputStream.read:([B)I
  336.         //   253: dup            
  337.         //   254: istore_1      
  338.         //   255: iconst_m1      
  339.         //   256: if_icmple       290
  340.         //   259: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  341.         //   262: ldc             ""
  342.         //   264: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  343.         //   267: aload           5
  344.         //   269: aload           4
  345.         //   271: iconst_0      
  346.         //   272: iload_1        
  347.         //   273: invokevirtual   java/io/ByteArrayOutputStream.write:([BII)V
  348.         //   276: iload           6
  349.         //   278: ifne            412
  350.         //   281: iload           6
  351.         //   283: ifeq            247
  352.         //   286: goto            290
  353.         //   289: athrow        
  354.         //   290: aload           5
  355.         //   292: invokevirtual   java/io/ByteArrayOutputStream.close:()V
  356.         //   295: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  357.         //   298: ldc             ""
  358.         //   300: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  359.         //   303: getstatic       load/JarMain.c:Ljava/util/HashMap;
  360.         //   306: aload_3        
  361.         //   307: invokevirtual   java/util/jar/JarEntry.getName:()Ljava/lang/String;
  362.         //   310: ldc             "/"
  363.         //   312: ldc             "."
  364.         //   314: invokevirtual   java/lang/String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
  365.         //   317: getstatic       load/JarMain.z:[Ljava/lang/String;
  366.         //   320: iconst_2      
  367.         //   321: aaload        
  368.         //   322: ldc             ""
  369.         //   324: invokevirtual   java/lang/String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
  370.         //   327: aload           5
  371.         //   329: invokevirtual   java/io/ByteArrayOutputStream.toByteArray:()[B
  372.         //   332: invokevirtual   java/util/HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
  373.         //   335: pop            
  374.         //   336: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  375.         //   339: ldc             ""
  376.         //   341: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  377.         //   344: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  378.         //   347: ldc             ""
  379.         //   349: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  380.         //   352: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  381.         //   355: ldc             ""
  382.         //   357: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  383.         //   360: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  384.         //   363: ldc             ""
  385.         //   365: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  386.         //   368: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  387.         //   371: ldc             ""
  388.         //   373: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  389.         //   376: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  390.         //   379: ldc             ""
  391.         //   381: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  392.         //   384: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  393.         //   387: ldc             ""
  394.         //   389: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  395.         //   392: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  396.         //   395: ldc             ""
  397.         //   397: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  398.         //   400: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  399.         //   403: ldc             ""
  400.         //   405: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  401.         //   408: aload_2        
  402.         //   409: invokevirtual   java/util/jar/JarInputStream.closeEntry:()V
  403.         //   412: iload           6
  404.         //   414: ifeq            67
  405.         //   417: aload_2        
  406.         //   418: invokevirtual   java/util/jar/JarInputStream.close:()V
  407.         //   421: goto            441
  408.         //   424: astore_1      
  409.         //   425: ldc             Lload/JarMain;.class
  410.         //   427: invokevirtual   java/lang/Class.getName:()Ljava/lang/String;
  411.         //   430: invokestatic    java/util/logging/Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
  412.         //   433: getstatic       java/util/logging/Level.SEVERE:Ljava/util/logging/Level;
  413.         //   436: aconst_null    
  414.         //   437: aload_1        
  415.         //   438: invokevirtual   java/util/logging/Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
  416.         //   441: return        
  417.         //    Exceptions:
  418.         //  Try           Handler
  419.         //  Start  End    Start  End    Type                
  420.         //  -----  -----  -----  -----  ---------------------
  421.         //  259    286    289    290    Ljava/io/IOException;
  422.         //  138    154    157    158    Ljava/io/IOException;
  423.         //  110    130    133    134    Ljava/io/IOException;
  424.         //  89     113    116    117    Ljava/io/IOException;
  425.         //  76     106    109    110    Ljava/io/IOException;
  426.         //  5      421    424    441    Ljava/io/IOException;
  427.         //
  428.         // The error that occurred was:
  429.         //
  430.         // java.lang.IllegalStateException: Expression is linked from several locations: Label_0110:
  431.         //     at com.strobel.decompiler.ast.Error.expressionLinkedFromMultipleLocations(Error.java:27)
  432.         //     at com.strobel.decompiler.ast.AstOptimizer.mergeDisparateObjectInitializations(AstOptimizer.java:2592)
  433.         //     at com.strobel.decompiler.ast.AstOptimizer.optimize(AstOptimizer.java:235)
  434.         //     at com.strobel.decompiler.ast.AstOptimizer.optimize(AstOptimizer.java:42)
  435.         //     at com.strobel.decompiler.languages.java.ast.AstMethodBodyBuilder.createMethodBody(AstMethodBodyBuilder.java:214)
  436.         //     at com.strobel.decompiler.languages.java.ast.AstMethodBodyBuilder.createMethodBody(AstMethodBodyBuilder.java:99)
  437.         //     at com.strobel.decompiler.languages.java.ast.AstBuilder.createMethodBody(AstBuilder.java:712)
  438.         //     at com.strobel.decompiler.languages.java.ast.AstBuilder.createMethod(AstBuilder.java:611)
  439.         //     at com.strobel.decompiler.languages.java.ast.AstBuilder.addTypeMembers(AstBuilder.java:493)
  440.         //     at com.strobel.decompiler.languages.java.ast.AstBuilder.createTypeCore(AstBuilder.java:460)
  441.         //     at com.strobel.decompiler.languages.java.ast.AstBuilder.createTypeNoCache(AstBuilder.java:140)
  442.         //     at com.strobel.decompiler.languages.java.ast.AstBuilder.createType(AstBuilder.java:129)
  443.         //     at com.strobel.decompiler.languages.java.ast.AstBuilder.addType(AstBuilder.java:104)
  444.         //     at com.strobel.decompiler.languages.java.JavaLanguage.decompileType(JavaLanguage.java:59)
  445.         //     at com.strobel.decompiler.DecompilerDriver.decompileType(DecompilerDriver.java:300)
  446.         //     at com.strobel.decompiler.DecompilerDriver.main(DecompilerDriver.java:126)
  447.         //
  448.         //
  449.         // This method could not be decompiled.
  450.         //
  451.         // Original Bytecode:
  452.         //
  453.         //     0: getstatic       load/JarMain.e:Z
  454.         //     3: istore          6
  455.         //     5: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  456.         //     8: ldc             ""
  457.         //    10: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  458.         //    13: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  459.         //    16: ldc             ""
  460.         //    18: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  461.         //    21: new             Ljava/util/jar/JarInputStream;
  462.         //    24: dup            
  463.         //    25: new             Ljava/io/ByteArrayInputStream;
  464.         //    28: dup            
  465.         //    29: aload_0        
  466.         //    30: aload_0        
  467.         //    31: invokespecial   load/JarMain.a:()[B
  468.         //    34: invokespecial   load/JarMain.a:([B)[B
  469.         //    37: invokespecial   java/io/ByteArrayInputStream.<init>:([B)V
  470.         //    40: invokespecial   java/util/jar/JarInputStream.<init>:(Ljava/io/InputStream;)V
  471.         //    43: astore_2      
  472.         //    44: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  473.         //    47: ldc             ""
  474.         //    49: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  475.         //    52: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  476.         //    55: ldc             ""
  477.         //    57: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  478.         //    60: sipush          1024
  479.         //    63: newarray        B
  480.         //    65: astore          4
  481.         //    67: aload_2        
  482.         //    68: invokevirtual   java/util/jar/JarInputStream.getNextJarEntry:()Ljava/util/jar/JarEntry;
  483.         //    71: dup            
  484.         //    72: astore_3      
  485.         //    73: ifnull          417
  486.         //    76: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  487.         //    79: ldc             ""
  488.         //    81: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  489.         //    84: iload           6
  490.         //    86: ifne            421
  491.         //    89: getstatic       load/JarMain.z:[Ljava/lang/String;
  492.         //    92: iconst_1      
  493.         //    93: aaload        
  494.         //    94: aload_3        
  495.         //    95: invokevirtual   java/util/jar/JarEntry.getName:()Ljava/lang/String;
  496.         //    98: invokevirtual   java/lang/String.equals:(Ljava/lang/Object;)Z
  497.         //   101: iload           6
  498.         //   103: ifne            138
  499.         //   106: goto            110
  500.         //   109: athrow        
  501.         //   110: ifeq            134
  502.         //   113: goto            117
  503.         //   116: athrow        
  504.         //   117: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  505.         //   120: ldc             ""
  506.         //   122: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  507.         //   125: iload           6
  508.         //   127: ifeq            67
  509.         //   130: goto            134
  510.         //   133: athrow        
  511.         //   134: aload_3        
  512.         //   135: invokevirtual   java/util/jar/JarEntry.isDirectory:()Z
  513.         //   138: ifeq            158
  514.         //   141: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  515.         //   144: ldc             ""
  516.         //   146: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  517.         //   149: iload           6
  518.         //   151: ifeq            67
  519.         //   154: goto            158
  520.         //   157: athrow        
  521.         //   158: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  522.         //   161: ldc             ""
  523.         //   163: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  524.         //   166: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  525.         //   169: ldc             ""
  526.         //   171: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  527.         //   174: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  528.         //   177: ldc             ""
  529.         //   179: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  530.         //   182: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  531.         //   185: ldc             ""
  532.         //   187: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  533.         //   190: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  534.         //   193: ldc             ""
  535.         //   195: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  536.         //   198: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  537.         //   201: ldc             ""
  538.         //   203: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  539.         //   206: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  540.         //   209: ldc             ""
  541.         //   211: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  542.         //   214: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  543.         //   217: ldc             ""
  544.         //   219: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  545.         //   222: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  546.         //   225: ldc             ""
  547.         //   227: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  548.         //   230: new             Ljava/io/ByteArrayOutputStream;
  549.         //   233: dup            
  550.         //   234: invokespecial   java/io/ByteArrayOutputStream.<init>:()V
  551.         //   237: astore          5
  552.         //   239: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  553.         //   242: ldc             ""
  554.         //   244: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  555.         //   247: aload_2        
  556.         //   248: aload           4
  557.         //   250: invokevirtual   java/util/jar/JarInputStream.read:([B)I
  558.         //   253: dup            
  559.         //   254: istore_1      
  560.         //   255: iconst_m1      
  561.         //   256: if_icmple       290
  562.         //   259: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  563.         //   262: ldc             ""
  564.         //   264: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  565.         //   267: aload           5
  566.         //   269: aload           4
  567.         //   271: iconst_0      
  568.         //   272: iload_1        
  569.         //   273: invokevirtual   java/io/ByteArrayOutputStream.write:([BII)V
  570.         //   276: iload           6
  571.         //   278: ifne            412
  572.         //   281: iload           6
  573.         //   283: ifeq            247
  574.         //   286: goto            290
  575.         //   289: athrow        
  576.         //   290: aload           5
  577.         //   292: invokevirtual   java/io/ByteArrayOutputStream.close:()V
  578.         //   295: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  579.         //   298: ldc             ""
  580.         //   300: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  581.         //   303: getstatic       load/JarMain.c:Ljava/util/HashMap;
  582.         //   306: aload_3        
  583.         //   307: invokevirtual   java/util/jar/JarEntry.getName:()Ljava/lang/String;
  584.         //   310: ldc             "/"
  585.         //   312: ldc             "."
  586.         //   314: invokevirtual   java/lang/String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
  587.         //   317: getstatic       load/JarMain.z:[Ljava/lang/String;
  588.         //   320: iconst_2      
  589.         //   321: aaload        
  590.         //   322: ldc             ""
  591.         //   324: invokevirtual   java/lang/String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
  592.         //   327: aload           5
  593.         //   329: invokevirtual   java/io/ByteArrayOutputStream.toByteArray:()[B
  594.         //   332: invokevirtual   java/util/HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
  595.         //   335: pop            
  596.         //   336: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  597.         //   339: ldc             ""
  598.         //   341: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  599.         //   344: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  600.         //   347: ldc             ""
  601.         //   349: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  602.         //   352: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  603.         //   355: ldc             ""
  604.         //   357: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  605.         //   360: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  606.         //   363: ldc             ""
  607.         //   365: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  608.         //   368: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  609.         //   371: ldc             ""
  610.         //   373: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  611.         //   376: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  612.         //   379: ldc             ""
  613.         //   381: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  614.         //   384: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  615.         //   387: ldc             ""
  616.         //   389: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  617.         //   392: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  618.         //   395: ldc             ""
  619.         //   397: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  620.         //   400: getstatic       java/lang/System.out:Ljava/io/PrintStream;
  621.         //   403: ldc             ""
  622.         //   405: invokevirtual   java/io/PrintStream.println:(Ljava/lang/String;)V
  623.         //   408: aload_2        
  624.         //   409: invokevirtual   java/util/jar/JarInputStream.closeEntry:()V
  625.         //   412: iload           6
  626.         //   414: ifeq            67
  627.         //   417: aload_2        
  628.         //   418: invokevirtual   java/util/jar/JarInputStream.close:()V
  629.         //   421: goto            441
  630.         //   424: astore_1      
  631.         //   425: ldc             Lload/JarMain;.class
  632.         //   427: invokevirtual   java/lang/Class.getName:()Ljava/lang/String;
  633.         //   430: invokestatic    java/util/logging/Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
  634.         //   433: getstatic       java/util/logging/Level.SEVERE:Ljava/util/logging/Level;
  635.         //   436: aconst_null    
  636.         //   437: aload_1        
  637.         //   438: invokevirtual   java/util/logging/Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
  638.         //   441: return        
  639.         //    Exceptions:
  640.         //  Try           Handler
  641.         //  Start  End    Start  End    Type                
  642.         //  -----  -----  -----  -----  ---------------------
  643.         //  259    286    289    290    Ljava/io/IOException;
  644.         //  138    154    157    158    Ljava/io/IOException;
  645.         //  110    130    133    134    Ljava/io/IOException;
  646.         //  89     113    116    117    Ljava/io/IOException;
  647.         //  76     106    109    110    Ljava/io/IOException;
  648.         //  5      421    424    441    Ljava/io/IOException;
  649.         //
  650.         // The error that occurred was:
  651.         //
  652.         // java.lang.IllegalStateException: Expression is linked from several locations: Label_0110:
  653.         //     at com.strobel.decompiler.ast.Error.expressionLinkedFromMultipleLocations(Error.java:27)
  654.         //     at com.strobel.decompiler.ast.AstOptimizer.mergeDisparateObjectInitializations(AstOptimizer.java:2592)
  655.         //     at com.strobel.decompiler.ast.AstOptimizer.optimize(AstOptimizer.java:235)
  656.         //     at com.strobel.decompiler.ast.AstOptimizer.optimize(AstOptimizer.java:42)
  657.         //     at com.strobel.decompiler.languages.java.ast.AstMethodBodyBuilder.createMethodBody(AstMethodBodyBuilder.java:214)
  658.         //     at com.strobel.decompiler.languages.java.ast.AstMethodBodyBuilder.createMethodBody(AstMethodBodyBuilder.java:99)
  659.         //     at com.strobel.decompiler.languages.java.ast.AstBuilder.createMethodBody(AstBuilder.java:712)
  660.         //     at com.strobel.decompiler.languages.java.ast.AstBuilder.createMethod(AstBuilder.java:611)
  661.         //     at com.strobel.decompiler.languages.java.ast.AstBuilder.addTypeMembers(AstBuilder.java:493)
  662.         //     at com.strobel.decompiler.languages.java.ast.AstBuilder.createTypeCore(AstBuilder.java:460)
  663.         //     at com.strobel.decompiler.languages.java.ast.AstBuilder.createTypeNoCache(AstBuilder.java:140)
  664.         //     at com.strobel.decompiler.languages.java.ast.AstBuilder.createType(AstBuilder.java:129)
  665.         //     at com.strobel.decompiler.languages.java.ast.AstBuilder.addType(AstBuilder.java:104)
  666.         //     at com.strobel.decompiler.languages.java.JavaLanguage.decompileType(JavaLanguage.java:59)
  667.         //     at com.strobel.decompiler.DecompilerDriver.decompileType(DecompilerDriver.java:300)
  668.         //     at com.strobel.decompiler.DecompilerDriver.main(DecompilerDriver.java:126)
  669.         //
  670.         throw new IllegalStateException("An error occurred while decompiling this method.");
  671.     }
  672.    
  673.     static {
  674.         final String[] z2 = new String[7];
  675.         int n7;
  676.         int n6;
  677.         int n5;
  678.         int n4;
  679.         int n3;
  680.         int n2;
  681.         int n = n2 = (n3 = (n4 = (n5 = (n6 = (n7 = 0)))));
  682.         String s = ",\u0001";
  683.         int n8 = -1;
  684.         String intern = null;
  685.     Label_0091_Outer:
  686.         while (true) {
  687.             final char[] charArray = s.toCharArray();
  688.             int length;
  689.             int n10;
  690.             final int n9 = n10 = (length = charArray.length);
  691.             int n11 = 0;
  692.             while (true) {
  693.                 Label_0166: {
  694.                     if (n9 > 1) {
  695.                         break Label_0166;
  696.                     }
  697.                     length = (n10 = n11);
  698.                     do {
  699.                         final char c2 = charArray[n10];
  700.                         char c3 = '\0';
  701.                         switch (n11 % 5) {
  702.                             case 0: {
  703.                                 c3 = 'e';
  704.                                 break;
  705.                             }
  706.                             case 1: {
  707.                                 c3 = 'E';
  708.                                 break;
  709.                             }
  710.                             case 2: {
  711.                                 c3 = '\u000f';
  712.                                 break;
  713.                             }
  714.                             case 3: {
  715.                                 c3 = 'o';
  716.                                 break;
  717.                             }
  718.                             default: {
  719.                                 c3 = '\r';
  720.                                 break;
  721.                             }
  722.                         }
  723.                         charArray[length] = (char)(c2 ^ c3);
  724.                         ++n11;
  725.                     } while (n9 == 0);
  726.                 }
  727.                 if (n9 > n11) {
  728.                     continue;
  729.                 }
  730.                 break;
  731.             }
  732.             intern = new String(charArray).intern();
  733.             switch (n8) {
  734.                 default: {
  735.                     z2[n2] = intern;
  736.                     n = (n2 = (n3 = (n4 = (n5 = (n6 = (n7 = 1))))));
  737.                     s = "(\u0000[. ,\u000bI@@$\u000bF)H6\u0011!\"K";
  738.                     n8 = 0;
  739.                     continue Label_0091_Outer;
  740.                 }
  741.                 case 0: {
  742.                     z2[n] = intern;
  743.                     n = (n2 = (n3 = (n4 = (n5 = (n6 = (n7 = 2))))));
  744.                     s = "K&c\u000e~\u0016";
  745.                     n8 = 1;
  746.                     continue Label_0091_Outer;
  747.                 }
  748.                 case 1: {
  749.                     z2[n3] = intern;
  750.                     n = (n2 = (n3 = (n4 = (n5 = (n6 = (n7 = 3))))));
  751.                     s = "\b$f\u0001";
  752.                     n8 = 2;
  753.                     continue Label_0091_Outer;
  754.                 }
  755.                 case 2: {
  756.                     z2[n4] = intern;
  757.                     n = (n2 = (n3 = (n4 = (n5 = (n6 = (n7 = 4))))));
  758.                     s = "57f\u0001n\f5n\u0003";
  759.                     n8 = 3;
  760.                     continue Label_0091_Outer;
  761.                 }
  762.                 case 3: {
  763.                     z2[n5] = intern;
  764.                     n = (n2 = (n3 = (n4 = (n5 = (n6 = (n7 = 5))))));
  765.                     s = "!\u0000\\8:*\u0012D*G7\u0010;??.";
  766.                     n8 = 4;
  767.                     continue Label_0091_Outer;
  768.                 }
  769.                 case 4: {
  770.                     z2[n6] = intern;
  771.                     n = (n2 = (n3 = (n4 = (n5 = (n6 = (n7 = 6))))));
  772.                     s = "J)`\u000eiJ\bN!D#\u0000\\;#(\u0003";
  773.                     n8 = 5;
  774.                     continue Label_0091_Outer;
  775.                 }
  776.                 case 5: {
  777.                     break Label_0091_Outer;
  778.                 }
  779.             }
  780.         }
  781.         z2[n7] = intern;
  782.         z = z2;
  783.         b = new HashMap<String, Class>();
  784.         c = new HashMap<String, byte[]>();
  785.     }
  786. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement