public class org.jf.baksmali.ListFieldOffsetsCommand extends org.jf.baksmali.DexInputCommand
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jf.baksmali.ListFieldOffsetsCommand
  super_class: org.jf.baksmali.DexInputCommand
{
  private boolean help;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.beust.jcommander.Parameter(names = {"-h", "-?", "--help"}, help = true, description = "Show usage information")

  private org.jf.baksmali.AnalysisArguments analysisArguments;
    descriptor: Lorg/jf/baksmali/AnalysisArguments;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.beust.jcommander.ParametersDelegate()

  public void <init>(java.util.List<com.beust.jcommander.JCommander>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jf.baksmali.ListFieldOffsetsCommand this
        start local 1 // java.util.List commandAncestors
         0: .line 62
            aload 0 /* this */
            aload 1 /* commandAncestors */
            invokespecial org.jf.baksmali.DexInputCommand.<init>:(Ljava/util/List;)V
         1: .line 59
            aload 0 /* this */
            new org.jf.baksmali.AnalysisArguments
            dup
            invokespecial org.jf.baksmali.AnalysisArguments.<init>:()V
            putfield org.jf.baksmali.ListFieldOffsetsCommand.analysisArguments:Lorg/jf/baksmali/AnalysisArguments;
         2: .line 63
            return
        end local 1 // java.util.List commandAncestors
        end local 0 // org.jf.baksmali.ListFieldOffsetsCommand this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    3     0              this  Lorg/jf/baksmali/ListFieldOffsetsCommand;
            0    3     1  commandAncestors  Ljava/util/List<Lcom/beust/jcommander/JCommander;>;
    Signature: (Ljava/util/List<Lcom/beust/jcommander/JCommander;>;)V
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        javax.annotation.Nonnull()
    RuntimeVisibleParameterAnnotations: 
      0:
        javax.annotation.Nonnull()
    MethodParameters:
                  Name  Flags
      commandAncestors  

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=10, args_size=1
        start local 0 // org.jf.baksmali.ListFieldOffsetsCommand this
         0: .line 66
            aload 0 /* this */
            getfield org.jf.baksmali.ListFieldOffsetsCommand.help:Z
            ifne 1
            aload 0 /* this */
            getfield org.jf.baksmali.ListFieldOffsetsCommand.inputList:Ljava/util/List;
            ifnull 1
            aload 0 /* this */
            getfield org.jf.baksmali.ListFieldOffsetsCommand.inputList:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 3
         1: .line 67
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jf.baksmali.ListFieldOffsetsCommand.usage:()V
         2: .line 68
            return
         3: .line 71
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jf.baksmali.ListFieldOffsetsCommand.inputList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmple 7
         4: .line 72
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "Too many files specified"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         5: .line 73
            aload 0 /* this */
            invokevirtual org.jf.baksmali.ListFieldOffsetsCommand.usage:()V
         6: .line 74
            return
         7: .line 77
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jf.baksmali.ListFieldOffsetsCommand.inputList:Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            astore 1 /* input */
        start local 1 // java.lang.String input
         8: .line 78
            aload 0 /* this */
            aload 1 /* input */
            invokevirtual org.jf.baksmali.ListFieldOffsetsCommand.loadDexFile:(Ljava/lang/String;)V
         9: .line 79
            aload 0 /* this */
            invokevirtual org.jf.baksmali.ListFieldOffsetsCommand.getOptions:()Lorg/jf/baksmali/BaksmaliOptions;
            astore 2 /* options */
        start local 2 // org.jf.baksmali.BaksmaliOptions options
        10: .line 82
            aload 0 /* this */
            getfield org.jf.baksmali.ListFieldOffsetsCommand.dexFile:Lorg/jf/dexlib2/dexbacked/DexBackedDexFile;
            invokevirtual org.jf.dexlib2.dexbacked.DexBackedDexFile.getClasses:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 23
      StackMap locals: org.jf.baksmali.ListFieldOffsetsCommand java.lang.String org.jf.baksmali.BaksmaliOptions top java.util.Iterator
      StackMap stack:
        11: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jf.dexlib2.iface.ClassDef
            astore 3 /* classDef */
        start local 3 // org.jf.dexlib2.iface.ClassDef classDef
        12: .line 83
            aload 2 /* options */
            getfield org.jf.baksmali.BaksmaliOptions.classPath:Lorg/jf/dexlib2/analysis/ClassPath;
            aload 3 /* classDef */
            invokevirtual org.jf.dexlib2.analysis.ClassPath.getClass:(Ljava/lang/CharSequence;)Lorg/jf/dexlib2/analysis/TypeProto;
            checkcast org.jf.dexlib2.analysis.ClassProto
            astore 5 /* classProto */
        start local 5 // org.jf.dexlib2.analysis.ClassProto classProto
        13: .line 84
            aload 5 /* classProto */
            invokevirtual org.jf.dexlib2.analysis.ClassProto.getInstanceFields:()Lorg/jf/util/SparseArray;
            astore 6 /* fields */
        start local 6 // org.jf.util.SparseArray fields
        14: .line 85
            new java.lang.StringBuilder
            dup
            ldc "Class "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* classDef */
            invokeinterface org.jf.dexlib2.iface.ClassDef.getType:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " : "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* fields */
            invokevirtual org.jf.util.SparseArray.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " instance fields\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* className */
        start local 7 // java.lang.String className
        15: .line 86
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            aload 7 /* className */
            invokevirtual java.lang.String.getBytes:()[B
            invokevirtual java.io.PrintStream.write:([B)V
        16: .line 87
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        17: goto 21
        18: .line 88
      StackMap locals: org.jf.baksmali.ListFieldOffsetsCommand java.lang.String org.jf.baksmali.BaksmaliOptions org.jf.dexlib2.iface.ClassDef java.util.Iterator org.jf.dexlib2.analysis.ClassProto org.jf.util.SparseArray java.lang.String int
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 6 /* fields */
            iload 8 /* i */
            invokevirtual org.jf.util.SparseArray.keyAt:(I)I
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* fields */
            iload 8 /* i */
            invokevirtual org.jf.util.SparseArray.valueAt:(I)Ljava/lang/Object;
            checkcast org.jf.dexlib2.iface.reference.FieldReference
            invokeinterface org.jf.dexlib2.iface.reference.FieldReference.getType:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* fields */
            iload 8 /* i */
            invokevirtual org.jf.util.SparseArray.valueAt:(I)Ljava/lang/Object;
            checkcast org.jf.dexlib2.iface.reference.FieldReference
            invokeinterface org.jf.dexlib2.iface.reference.FieldReference.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 9 /* field */
        start local 9 // java.lang.String field
        19: .line 89
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            aload 9 /* field */
            invokevirtual java.lang.String.getBytes:()[B
            invokevirtual java.io.PrintStream.write:([B)V
        end local 9 // java.lang.String field
        20: .line 87
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 8 /* i */
            aload 6 /* fields */
            invokevirtual org.jf.util.SparseArray.size:()I
            if_icmplt 18
        end local 8 // int i
        22: .line 91
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "\n"
            invokevirtual java.lang.String.getBytes:()[B
            invokevirtual java.io.PrintStream.write:([B)V
        end local 7 // java.lang.String className
        end local 6 // org.jf.util.SparseArray fields
        end local 5 // org.jf.dexlib2.analysis.ClassProto classProto
        end local 3 // org.jf.dexlib2.iface.ClassDef classDef
        23: .line 82
      StackMap locals: org.jf.baksmali.ListFieldOffsetsCommand java.lang.String org.jf.baksmali.BaksmaliOptions top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        24: .line 93
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.close:()V
        25: .line 94
            goto 28
      StackMap locals: org.jf.baksmali.ListFieldOffsetsCommand java.lang.String org.jf.baksmali.BaksmaliOptions
      StackMap stack: java.io.IOException
        26: astore 3 /* ex */
        start local 3 // java.io.IOException ex
        27: .line 95
            new java.lang.RuntimeException
            dup
            aload 3 /* ex */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.io.IOException ex
        28: .line 97
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.jf.baksmali.BaksmaliOptions options
        end local 1 // java.lang.String input
        end local 0 // org.jf.baksmali.ListFieldOffsetsCommand this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   29     0        this  Lorg/jf/baksmali/ListFieldOffsetsCommand;
            8   29     1       input  Ljava/lang/String;
           10   29     2     options  Lorg/jf/baksmali/BaksmaliOptions;
           12   23     3    classDef  Lorg/jf/dexlib2/iface/ClassDef;
           13   23     5  classProto  Lorg/jf/dexlib2/analysis/ClassProto;
           14   23     6      fields  Lorg/jf/util/SparseArray<Lorg/jf/dexlib2/iface/reference/FieldReference;>;
           15   23     7   className  Ljava/lang/String;
           17   22     8           i  I
           19   20     9       field  Ljava/lang/String;
           27   28     3          ex  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          10    25      26  Class java.io.IOException

  private org.jf.baksmali.BaksmaliOptions getOptions();
    descriptor: ()Lorg/jf/baksmali/BaksmaliOptions;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // org.jf.baksmali.ListFieldOffsetsCommand this
         0: .line 101
            aload 0 /* this */
            getfield org.jf.baksmali.ListFieldOffsetsCommand.dexFile:Lorg/jf/dexlib2/dexbacked/DexBackedDexFile;
            ifnonnull 2
         1: .line 102
            new java.lang.IllegalStateException
            dup
            ldc "You must call loadDexFile first"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 105
      StackMap locals:
      StackMap stack:
            new org.jf.baksmali.BaksmaliOptions
            dup
            invokespecial org.jf.baksmali.BaksmaliOptions.<init>:()V
            astore 1 /* options */
        start local 1 // org.jf.baksmali.BaksmaliOptions options
         3: .line 107
            aload 1 /* options */
            aload 0 /* this */
            getfield org.jf.baksmali.ListFieldOffsetsCommand.apiLevel:I
            putfield org.jf.baksmali.BaksmaliOptions.apiLevel:I
         4: .line 110
            aload 1 /* options */
            aload 0 /* this */
            getfield org.jf.baksmali.ListFieldOffsetsCommand.analysisArguments:Lorg/jf/baksmali/AnalysisArguments;
         5: .line 111
            aload 0 /* this */
            getfield org.jf.baksmali.ListFieldOffsetsCommand.inputFile:Ljava/io/File;
            invokevirtual java.io.File.getAbsoluteFile:()Ljava/io/File;
            invokevirtual java.io.File.getParentFile:()Ljava/io/File;
            aload 0 /* this */
            getfield org.jf.baksmali.ListFieldOffsetsCommand.dexEntry:Lorg/jf/dexlib2/iface/MultiDexContainer$DexEntry;
            iconst_0
         6: .line 110
            invokevirtual org.jf.baksmali.AnalysisArguments.loadClassPathForDexFile:(Ljava/io/File;Lorg/jf/dexlib2/iface/MultiDexContainer$DexEntry;Z)Lorg/jf/dexlib2/analysis/ClassPath;
            putfield org.jf.baksmali.BaksmaliOptions.classPath:Lorg/jf/dexlib2/analysis/ClassPath;
         7: .line 112
            goto 12
      StackMap locals: org.jf.baksmali.ListFieldOffsetsCommand org.jf.baksmali.BaksmaliOptions
      StackMap stack: java.lang.Exception
         8: astore 2 /* ex */
        start local 2 // java.lang.Exception ex
         9: .line 113
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "Error occurred while loading class path files."
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        10: .line 114
            aload 2 /* ex */
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            invokevirtual java.lang.Exception.printStackTrace:(Ljava/io/PrintStream;)V
        11: .line 115
            iconst_m1
            invokestatic java.lang.System.exit:(I)V
        end local 2 // java.lang.Exception ex
        12: .line 118
      StackMap locals:
      StackMap stack:
            aload 1 /* options */
            areturn
        end local 1 // org.jf.baksmali.BaksmaliOptions options
        end local 0 // org.jf.baksmali.ListFieldOffsetsCommand this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   13     0     this  Lorg/jf/baksmali/ListFieldOffsetsCommand;
            3   13     1  options  Lorg/jf/baksmali/BaksmaliOptions;
            9   12     2       ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           4     7       8  Class java.lang.Exception
    RuntimeVisibleAnnotations: 
      javax.annotation.Nonnull()
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN
        javax.annotation.Nonnull()
}
SourceFile: "ListFieldOffsetsCommand.java"
InnerClasses:
  public abstract DexEntry = org.jf.dexlib2.iface.MultiDexContainer$DexEntry of org.jf.dexlib2.iface.MultiDexContainer
    RuntimeVisibleAnnotations: 
      com.beust.jcommander.Parameters(commandDescription = "Lists the instance field offsets for classes in a dex file.")
      org.jf.util.jcommander.ExtendedParameters(commandName = "fieldoffsets", commandAliases = {"fieldoffset", "fo"})