public class org.jf.baksmali.Main extends org.jf.util.jcommander.Command
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jf.baksmali.Main
  super_class: org.jf.util.jcommander.Command
{
  public static final java.lang.String VERSION;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private boolean help;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.beust.jcommander.Parameter(names = {"--help", "-h", "-?"}, help = true, description = "Show usage information")

  public boolean version;
    descriptor: Z
    flags: (0x0001) ACC_PUBLIC
    RuntimeVisibleAnnotations: 
      com.beust.jcommander.Parameter(names = {"--version", "-v"}, help = true, description = "Print the version of baksmali and then exit")

  private com.beust.jcommander.JCommander jc;
    descriptor: Lcom/beust/jcommander/JCommander;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 52
            invokestatic org.jf.baksmali.Main.loadVersion:()Ljava/lang/String;
            putstatic org.jf.baksmali.Main.VERSION:Ljava/lang/String;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jf.baksmali.Main this
         0: .line 65
            aload 0 /* this */
            invokestatic com.google.common.collect.Lists.newArrayList:()Ljava/util/ArrayList;
            invokespecial org.jf.util.jcommander.Command.<init>:(Ljava/util/List;)V
         1: .line 66
            return
        end local 0 // org.jf.baksmali.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jf/baksmali/Main;

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.jf.baksmali.Main this
         0: .line 69
            return
        end local 0 // org.jf.baksmali.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jf/baksmali/Main;

  protected com.beust.jcommander.JCommander getJCommander();
    descriptor: ()Lcom/beust/jcommander/JCommander;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jf.baksmali.Main this
         0: .line 72
            aload 0 /* this */
            getfield org.jf.baksmali.Main.jc:Lcom/beust/jcommander/JCommander;
            areturn
        end local 0 // org.jf.baksmali.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jf/baksmali/Main;

  public static void main(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 76
            new org.jf.baksmali.Main
            dup
            invokespecial org.jf.baksmali.Main.<init>:()V
            astore 1 /* main */
        start local 1 // org.jf.baksmali.Main main
         1: .line 78
            new com.beust.jcommander.JCommander
            dup
            aload 1 /* main */
            invokespecial com.beust.jcommander.JCommander.<init>:(Ljava/lang/Object;)V
            astore 2 /* jc */
        start local 2 // com.beust.jcommander.JCommander jc
         2: .line 79
            aload 1 /* main */
            aload 2 /* jc */
            putfield org.jf.baksmali.Main.jc:Lcom/beust/jcommander/JCommander;
         3: .line 80
            aload 2 /* jc */
            ldc "baksmali"
            invokevirtual com.beust.jcommander.JCommander.setProgramName:(Ljava/lang/String;)V
         4: .line 81
            aload 1 /* main */
            invokevirtual org.jf.baksmali.Main.getCommandHierarchy:()Ljava/util/List;
            astore 3 /* commandHierarchy */
        start local 3 // java.util.List commandHierarchy
         5: .line 83
            aload 2 /* jc */
            new org.jf.baksmali.DisassembleCommand
            dup
            aload 3 /* commandHierarchy */
            invokespecial org.jf.baksmali.DisassembleCommand.<init>:(Ljava/util/List;)V
            invokestatic org.jf.util.jcommander.ExtendedCommands.addExtendedCommand:(Lcom/beust/jcommander/JCommander;Lorg/jf/util/jcommander/Command;)V
         6: .line 84
            aload 2 /* jc */
            new org.jf.baksmali.DeodexCommand
            dup
            aload 3 /* commandHierarchy */
            invokespecial org.jf.baksmali.DeodexCommand.<init>:(Ljava/util/List;)V
            invokestatic org.jf.util.jcommander.ExtendedCommands.addExtendedCommand:(Lcom/beust/jcommander/JCommander;Lorg/jf/util/jcommander/Command;)V
         7: .line 85
            aload 2 /* jc */
            new org.jf.baksmali.DumpCommand
            dup
            aload 3 /* commandHierarchy */
            invokespecial org.jf.baksmali.DumpCommand.<init>:(Ljava/util/List;)V
            invokestatic org.jf.util.jcommander.ExtendedCommands.addExtendedCommand:(Lcom/beust/jcommander/JCommander;Lorg/jf/util/jcommander/Command;)V
         8: .line 86
            aload 2 /* jc */
            new org.jf.baksmali.HelpCommand
            dup
            aload 3 /* commandHierarchy */
            invokespecial org.jf.baksmali.HelpCommand.<init>:(Ljava/util/List;)V
            invokestatic org.jf.util.jcommander.ExtendedCommands.addExtendedCommand:(Lcom/beust/jcommander/JCommander;Lorg/jf/util/jcommander/Command;)V
         9: .line 87
            aload 2 /* jc */
            new org.jf.baksmali.HelpCommand$HlepCommand
            dup
            aload 3 /* commandHierarchy */
            invokespecial org.jf.baksmali.HelpCommand$HlepCommand.<init>:(Ljava/util/List;)V
            invokestatic org.jf.util.jcommander.ExtendedCommands.addExtendedCommand:(Lcom/beust/jcommander/JCommander;Lorg/jf/util/jcommander/Command;)V
        10: .line 88
            aload 2 /* jc */
            new org.jf.baksmali.ListCommand
            dup
            aload 3 /* commandHierarchy */
            invokespecial org.jf.baksmali.ListCommand.<init>:(Ljava/util/List;)V
            invokestatic org.jf.util.jcommander.ExtendedCommands.addExtendedCommand:(Lcom/beust/jcommander/JCommander;Lorg/jf/util/jcommander/Command;)V
        11: .line 90
            aload 2 /* jc */
            aload 0 /* args */
            invokevirtual com.beust.jcommander.JCommander.parse:([Ljava/lang/String;)V
        12: .line 92
            aload 1 /* main */
            getfield org.jf.baksmali.Main.version:Z
            ifeq 14
        13: .line 93
            invokestatic org.jf.baksmali.Main.version:()V
        14: .line 96
      StackMap locals: org.jf.baksmali.Main com.beust.jcommander.JCommander java.util.List
      StackMap stack:
            aload 2 /* jc */
            invokevirtual com.beust.jcommander.JCommander.getParsedCommand:()Ljava/lang/String;
            ifnull 15
            aload 1 /* main */
            getfield org.jf.baksmali.Main.help:Z
            ifeq 17
        15: .line 97
      StackMap locals:
      StackMap stack:
            aload 1 /* main */
            invokevirtual org.jf.baksmali.Main.usage:()V
        16: .line 98
            return
        17: .line 101
      StackMap locals:
      StackMap stack:
            aload 2 /* jc */
            invokevirtual com.beust.jcommander.JCommander.getCommands:()Ljava/util/Map;
            aload 2 /* jc */
            invokevirtual com.beust.jcommander.JCommander.getParsedCommand:()Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.beust.jcommander.JCommander
            invokevirtual com.beust.jcommander.JCommander.getObjects:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.jf.util.jcommander.Command
            astore 4 /* command */
        start local 4 // org.jf.util.jcommander.Command command
        18: .line 102
            aload 4 /* command */
            invokevirtual org.jf.util.jcommander.Command.run:()V
        19: .line 103
            return
        end local 4 // org.jf.util.jcommander.Command command
        end local 3 // java.util.List commandHierarchy
        end local 2 // com.beust.jcommander.JCommander jc
        end local 1 // org.jf.baksmali.Main main
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   20     0              args  [Ljava/lang/String;
            1   20     1              main  Lorg/jf/baksmali/Main;
            2   20     2                jc  Lcom/beust/jcommander/JCommander;
            5   20     3  commandHierarchy  Ljava/util/List<Lcom/beust/jcommander/JCommander;>;
           18   20     4           command  Lorg/jf/util/jcommander/Command;
    MethodParameters:
      Name  Flags
      args  

  protected static void version();
    descriptor: ()V
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 106
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "baksmali "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic org.jf.baksmali.Main.VERSION:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " (http://smali.org)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         1: .line 107
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Copyright (C) 2010 Ben Gruver (JesusFreke@JesusFreke.com)"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 108
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "BSD license (http://www.opensource.org/licenses/bsd-license.php)"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         3: .line 109
            iconst_0
            invokestatic java.lang.System.exit:(I)V
         4: .line 110
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static java.lang.String loadVersion();
    descriptor: ()Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=0
         0: .line 113
            ldc Lorg/jf/baksmali/Baksmali;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            ldc "baksmali.properties"
            invokevirtual java.lang.ClassLoader.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
            astore 0 /* propertiesStream */
        start local 0 // java.io.InputStream propertiesStream
         1: .line 114
            ldc "[unknown version]"
            astore 1 /* version */
        start local 1 // java.lang.String version
         2: .line 115
            aload 0 /* propertiesStream */
            ifnull 8
         3: .line 116
            new java.util.Properties
            dup
            invokespecial java.util.Properties.<init>:()V
            astore 2 /* properties */
        start local 2 // java.util.Properties properties
         4: .line 118
            aload 2 /* properties */
            aload 0 /* propertiesStream */
            invokevirtual java.util.Properties.load:(Ljava/io/InputStream;)V
         5: .line 119
            aload 2 /* properties */
            ldc "application.version"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* version */
         6: .line 120
            goto 8
      StackMap locals: java.io.InputStream java.lang.String java.util.Properties
      StackMap stack: java.io.IOException
         7: pop
        end local 2 // java.util.Properties properties
         8: .line 124
      StackMap locals:
      StackMap stack:
            aload 1 /* version */
            areturn
        end local 1 // java.lang.String version
        end local 0 // java.io.InputStream propertiesStream
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            1    9     0  propertiesStream  Ljava/io/InputStream;
            2    9     1           version  Ljava/lang/String;
            4    8     2        properties  Ljava/util/Properties;
      Exception table:
        from    to  target  type
           4     6       7  Class java.io.IOException
}
SourceFile: "Main.java"
InnerClasses:
  public HlepCommand = org.jf.baksmali.HelpCommand$HlepCommand of org.jf.baksmali.HelpCommand
    RuntimeVisibleAnnotations: 
      org.jf.util.jcommander.ExtendedParameters(includeParametersInUsage = true, commandName = "baksmali", postfixDescription = "See baksmali help <command> for more information about a specific command")