public class org.jf.smali.Main extends org.jf.util.jcommander.Command
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jf.smali.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 = {"-h", "-?", "--help"}, help = true, description = "Show usage information")

  public boolean version;
    descriptor: Z
    flags: (0x0001) ACC_PUBLIC
    RuntimeVisibleAnnotations: 
      com.beust.jcommander.Parameter(names = {"-v", "--version"}, 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.smali.Main.loadVersion:()Ljava/lang/String;
            putstatic org.jf.smali.Main.VERSION:Ljava/lang/String;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.jf.smali.Main this
         0: .line 65
            return
        end local 0 // org.jf.smali.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jf/smali/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.smali.Main this
         0: .line 68
            aload 0 /* this */
            getfield org.jf.smali.Main.jc:Lcom/beust/jcommander/JCommander;
            areturn
        end local 0 // org.jf.smali.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jf/smali/Main;

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jf.smali.Main this
         0: .line 72
            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 73
            return
        end local 0 // org.jf.smali.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jf/smali/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.smali.Main
            dup
            invokespecial org.jf.smali.Main.<init>:()V
            astore 1 /* main */
        start local 1 // org.jf.smali.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.smali.Main.jc:Lcom/beust/jcommander/JCommander;
         3: .line 80
            aload 2 /* jc */
            ldc "smali"
            invokevirtual com.beust.jcommander.JCommander.setProgramName:(Ljava/lang/String;)V
         4: .line 81
            aload 1 /* main */
            invokevirtual org.jf.smali.Main.getCommandHierarchy:()Ljava/util/List;
            astore 3 /* commandHierarchy */
        start local 3 // java.util.List commandHierarchy
         5: .line 83
            aload 2 /* jc */
            new org.jf.smali.AssembleCommand
            dup
            aload 3 /* commandHierarchy */
            invokespecial org.jf.smali.AssembleCommand.<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.smali.PrintTokensCommand
            dup
            aload 3 /* commandHierarchy */
            invokespecial org.jf.smali.PrintTokensCommand.<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.smali.HelpCommand
            dup
            aload 3 /* commandHierarchy */
            invokespecial org.jf.smali.HelpCommand.<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.smali.HelpCommand$HlepCommand
            dup
            aload 3 /* commandHierarchy */
            invokespecial org.jf.smali.HelpCommand$HlepCommand.<init>:(Ljava/util/List;)V
            invokestatic org.jf.util.jcommander.ExtendedCommands.addExtendedCommand:(Lcom/beust/jcommander/JCommander;Lorg/jf/util/jcommander/Command;)V
         9: .line 88
            aload 2 /* jc */
            aload 0 /* args */
            invokevirtual com.beust.jcommander.JCommander.parse:([Ljava/lang/String;)V
        10: .line 90
            aload 1 /* main */
            getfield org.jf.smali.Main.version:Z
            ifeq 12
        11: .line 91
            invokestatic org.jf.smali.Main.version:()V
        12: .line 94
      StackMap locals: org.jf.smali.Main com.beust.jcommander.JCommander java.util.List
      StackMap stack:
            aload 2 /* jc */
            invokevirtual com.beust.jcommander.JCommander.getParsedCommand:()Ljava/lang/String;
            ifnull 13
            aload 1 /* main */
            getfield org.jf.smali.Main.help:Z
            ifeq 15
        13: .line 95
      StackMap locals:
      StackMap stack:
            aload 1 /* main */
            invokevirtual org.jf.smali.Main.usage:()V
        14: .line 96
            return
        15: .line 99
      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
        16: .line 100
            aload 4 /* command */
            invokevirtual org.jf.util.jcommander.Command.run:()V
        17: .line 101
            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.smali.Main main
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   18     0              args  [Ljava/lang/String;
            1   18     1              main  Lorg/jf/smali/Main;
            2   18     2                jc  Lcom/beust/jcommander/JCommander;
            5   18     3  commandHierarchy  Ljava/util/List<Lcom/beust/jcommander/JCommander;>;
           16   18     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 104
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "smali "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic org.jf.smali.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 105
            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 106
            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 107
            iconst_0
            invokestatic java.lang.System.exit:(I)V
         4: .line 108
            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 111
            ldc Lorg/jf/smali/Main;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            ldc "smali.properties"
            invokevirtual java.lang.ClassLoader.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
            astore 0 /* propertiesStream */
        start local 0 // java.io.InputStream propertiesStream
         1: .line 112
            ldc "[unknown version]"
            astore 1 /* version */
        start local 1 // java.lang.String version
         2: .line 113
            aload 0 /* propertiesStream */
            ifnull 8
         3: .line 114
            new java.util.Properties
            dup
            invokespecial java.util.Properties.<init>:()V
            astore 2 /* properties */
        start local 2 // java.util.Properties properties
         4: .line 116
            aload 2 /* properties */
            aload 0 /* propertiesStream */
            invokevirtual java.util.Properties.load:(Ljava/io/InputStream;)V
         5: .line 117
            aload 2 /* properties */
            ldc "application.version"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* version */
         6: .line 118
            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 122
      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.smali.HelpCommand$HlepCommand of org.jf.smali.HelpCommand
    RuntimeVisibleAnnotations: 
      org.jf.util.jcommander.ExtendedParameters(includeParametersInUsage = true, commandName = "smali", postfixDescription = "See smali help <command> for more information about a specific command")