public class org.jf.baksmali.AnalysisArguments
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jf.baksmali.AnalysisArguments
  super_class: java.lang.Object
{
  public java.util.List<java.lang.String> bootClassPath;
    descriptor: Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Signature: Ljava/util/List<Ljava/lang/String;>;
    RuntimeVisibleAnnotations: 
      com.beust.jcommander.Parameter(names = {"-b", "--bootclasspath", "--bcp"}, description = "A colon separated list of the files to include in the bootclasspath when analyzing the dex file. If not specified, baksmali will attempt to choose an appropriate default. When analyzing oat files, this can simply be the path to the device's boot.oat file. A single empty string can be used to specify that an empty bootclasspath should be used. (e.g. --bootclasspath \"\") See baksmali help classpath for more information.", splitter = Lorg/jf/util/jcommander/ColonParameterSplitter;)
      org.jf.util.jcommander.ExtendedParameter(argumentNames = {"classpath"})

  public java.util.List<java.lang.String> classPath;
    descriptor: Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Signature: Ljava/util/List<Ljava/lang/String;>;
    RuntimeVisibleAnnotations: 
      com.beust.jcommander.Parameter(names = {"-c", "--classpath", "--cp"}, description = "A colon separated list of additional files to include in the classpath when analyzing the dex file. These will be added to the classpath after any bootclasspath entries.", splitter = Lorg/jf/util/jcommander/ColonParameterSplitter;)
      org.jf.util.jcommander.ExtendedParameter(argumentNames = {"classpath"})

  public java.util.List<java.lang.String> classPathDirectories;
    descriptor: Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Signature: Ljava/util/List<Ljava/lang/String;>;
    RuntimeVisibleAnnotations: 
      com.beust.jcommander.Parameter(names = {"-d", "--classpath-dir", "--cpd", "--dir"}, description = "A directory to search for classpath files. This option can be used multiple times to specify multiple directories to search. They will be searched in the order they are provided.")
      org.jf.util.jcommander.ExtendedParameter(argumentNames = {"dir"})

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jf.baksmali.AnalysisArguments this
         0: .line 53
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 62
            aload 0 /* this */
            aconst_null
            putfield org.jf.baksmali.AnalysisArguments.bootClassPath:Ljava/util/List;
         2: .line 69
            aload 0 /* this */
            invokestatic com.google.common.collect.Lists.newArrayList:()Ljava/util/ArrayList;
            putfield org.jf.baksmali.AnalysisArguments.classPath:Ljava/util/List;
         3: .line 75
            aload 0 /* this */
            aconst_null
            putfield org.jf.baksmali.AnalysisArguments.classPathDirectories:Ljava/util/List;
         4: .line 53
            return
        end local 0 // org.jf.baksmali.AnalysisArguments this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/jf/baksmali/AnalysisArguments;

  public org.jf.dexlib2.analysis.ClassPath loadClassPathForDexFile(java.io.File, org.jf.dexlib2.iface.MultiDexContainer$DexEntry<? extends org.jf.dexlib2.dexbacked.DexBackedDexFile>, boolean);
    descriptor: (Ljava/io/File;Lorg/jf/dexlib2/iface/MultiDexContainer$DexEntry;Z)Lorg/jf/dexlib2/analysis/ClassPath;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.jf.baksmali.AnalysisArguments this
        start local 1 // java.io.File dexFileDir
        start local 2 // org.jf.dexlib2.iface.MultiDexContainer$DexEntry dexEntry
        start local 3 // boolean checkPackagePrivateAccess
         0: .line 89
            aload 0 /* this */
            aload 1 /* dexFileDir */
            aload 2 /* dexEntry */
            iload 3 /* checkPackagePrivateAccess */
            bipush -2
            invokevirtual org.jf.baksmali.AnalysisArguments.loadClassPathForDexFile:(Ljava/io/File;Lorg/jf/dexlib2/iface/MultiDexContainer$DexEntry;ZI)Lorg/jf/dexlib2/analysis/ClassPath;
            areturn
        end local 3 // boolean checkPackagePrivateAccess
        end local 2 // org.jf.dexlib2.iface.MultiDexContainer$DexEntry dexEntry
        end local 1 // java.io.File dexFileDir
        end local 0 // org.jf.baksmali.AnalysisArguments this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0    1     0                       this  Lorg/jf/baksmali/AnalysisArguments;
            0    1     1                 dexFileDir  Ljava/io/File;
            0    1     2                   dexEntry  Lorg/jf/dexlib2/iface/MultiDexContainer$DexEntry<+Lorg/jf/dexlib2/dexbacked/DexBackedDexFile;>;
            0    1     3  checkPackagePrivateAccess  Z
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/io/File;Lorg/jf/dexlib2/iface/MultiDexContainer$DexEntry<+Lorg/jf/dexlib2/dexbacked/DexBackedDexFile;>;Z)Lorg/jf/dexlib2/analysis/ClassPath;
    RuntimeVisibleAnnotations: 
      javax.annotation.Nonnull()
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        javax.annotation.Nonnull()
      METHOD_FORMAL_PARAMETER
        javax.annotation.Nonnull()
      METHOD_RETURN
        javax.annotation.Nonnull()
    RuntimeVisibleParameterAnnotations: 
      0:
        javax.annotation.Nonnull()
      1:
        javax.annotation.Nonnull()
      2:
    MethodParameters:
                           Name  Flags
      dexFileDir                 
      dexEntry                   
      checkPackagePrivateAccess  

  public org.jf.dexlib2.analysis.ClassPath loadClassPathForDexFile(java.io.File, org.jf.dexlib2.iface.MultiDexContainer$DexEntry<? extends org.jf.dexlib2.dexbacked.DexBackedDexFile>, boolean, int);
    descriptor: (Ljava/io/File;Lorg/jf/dexlib2/iface/MultiDexContainer$DexEntry;ZI)Lorg/jf/dexlib2/analysis/ClassPath;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=11, args_size=5
        start local 0 // org.jf.baksmali.AnalysisArguments this
        start local 1 // java.io.File dexFileDir
        start local 2 // org.jf.dexlib2.iface.MultiDexContainer$DexEntry dexEntry
        start local 3 // boolean checkPackagePrivateAccess
        start local 4 // int oatVersion
         0: .line 99
            aload 2 /* dexEntry */
            invokeinterface org.jf.dexlib2.iface.MultiDexContainer$DexEntry.getContainer:()Lorg/jf/dexlib2/iface/MultiDexContainer;
            astore 6 /* container */
        start local 6 // org.jf.dexlib2.iface.MultiDexContainer container
         1: .line 101
            iload 4 /* oatVersion */
            bipush -2
            if_icmpne 8
         2: .line 102
            aload 6 /* container */
            instanceof org.jf.dexlib2.dexbacked.OatFile
            ifeq 6
         3: .line 103
            iconst_1
            istore 3 /* checkPackagePrivateAccess */
         4: .line 104
            aload 6 /* container */
            checkcast org.jf.dexlib2.dexbacked.OatFile
            invokevirtual org.jf.dexlib2.dexbacked.OatFile.getOatVersion:()I
            istore 4 /* oatVersion */
         5: .line 105
            goto 9
         6: .line 106
      StackMap locals: org.jf.baksmali.AnalysisArguments java.io.File org.jf.dexlib2.iface.MultiDexContainer$DexEntry int int top org.jf.dexlib2.iface.MultiDexContainer
      StackMap stack:
            aload 2 /* dexEntry */
            invokeinterface org.jf.dexlib2.iface.MultiDexContainer$DexEntry.getDexFile:()Lorg/jf/dexlib2/iface/DexFile;
            checkcast org.jf.dexlib2.dexbacked.DexBackedDexFile
            invokevirtual org.jf.dexlib2.dexbacked.DexBackedDexFile.getOpcodes:()Lorg/jf/dexlib2/Opcodes;
            getfield org.jf.dexlib2.Opcodes.api:I
            invokestatic org.jf.dexlib2.VersionMap.mapApiToArtVersion:(I)I
            istore 4 /* oatVersion */
         7: .line 108
            goto 9
         8: .line 110
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 3 /* checkPackagePrivateAccess */
         9: .line 113
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jf.baksmali.AnalysisArguments.classPathDirectories:Ljava/util/List;
            ifnull 10
            aload 0 /* this */
            getfield org.jf.baksmali.AnalysisArguments.classPathDirectories:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ifne 11
        10: .line 114
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 1 /* dexFileDir */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
            aastore
            invokestatic com.google.common.collect.Lists.newArrayList:([Ljava/lang/Object;)Ljava/util/ArrayList;
            putfield org.jf.baksmali.AnalysisArguments.classPathDirectories:Ljava/util/List;
        11: .line 117
      StackMap locals:
      StackMap stack:
            invokestatic com.google.common.collect.Lists.newArrayList:()Ljava/util/ArrayList;
            astore 7 /* filteredClassPathDirectories */
        start local 7 // java.util.List filteredClassPathDirectories
        12: .line 118
            aload 0 /* this */
            getfield org.jf.baksmali.AnalysisArguments.classPathDirectories:Ljava/util/List;
            ifnull 24
        13: .line 119
            aload 0 /* this */
            getfield org.jf.baksmali.AnalysisArguments.classPathDirectories:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 23
      StackMap locals: org.jf.baksmali.AnalysisArguments java.io.File org.jf.dexlib2.iface.MultiDexContainer$DexEntry int int top org.jf.dexlib2.iface.MultiDexContainer java.util.List top java.util.Iterator
      StackMap stack:
        14: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 8 /* dir */
        start local 8 // java.lang.String dir
        15: .line 120
            new java.io.File
            dup
            aload 8 /* dir */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 10 /* file */
        start local 10 // java.io.File file
        16: .line 121
            aload 10 /* file */
            invokevirtual java.io.File.exists:()Z
            ifne 19
        17: .line 122
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "Warning: directory %s does not exist. Ignoring."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 8 /* dir */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        18: .line 123
            goto 23
      StackMap locals: org.jf.baksmali.AnalysisArguments java.io.File org.jf.dexlib2.iface.MultiDexContainer$DexEntry int int top org.jf.dexlib2.iface.MultiDexContainer java.util.List java.lang.String java.util.Iterator java.io.File
      StackMap stack:
        19: aload 10 /* file */
            invokevirtual java.io.File.isDirectory:()Z
            ifne 22
        20: .line 124
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "Warning: %s is not a directory. Ignoring."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 8 /* dir */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        21: .line 125
            goto 23
        22: .line 126
      StackMap locals:
      StackMap stack:
            aload 7 /* filteredClassPathDirectories */
            aload 8 /* dir */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 10 // java.io.File file
        end local 8 // java.lang.String dir
        23: .line 119
      StackMap locals: org.jf.baksmali.AnalysisArguments java.io.File org.jf.dexlib2.iface.MultiDexContainer$DexEntry int int top org.jf.dexlib2.iface.MultiDexContainer java.util.List top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        24: .line 131
      StackMap locals: org.jf.baksmali.AnalysisArguments java.io.File org.jf.dexlib2.iface.MultiDexContainer$DexEntry int int top org.jf.dexlib2.iface.MultiDexContainer java.util.List
      StackMap stack:
            aload 0 /* this */
            getfield org.jf.baksmali.AnalysisArguments.bootClassPath:Ljava/util/List;
            ifnonnull 27
        25: .line 134
            new org.jf.dexlib2.analysis.ClassPathResolver
            dup
            aload 7 /* filteredClassPathDirectories */
            aload 0 /* this */
            getfield org.jf.baksmali.AnalysisArguments.classPath:Ljava/util/List;
            aload 2 /* dexEntry */
            invokespecial org.jf.dexlib2.analysis.ClassPathResolver.<init>:(Ljava/util/List;Ljava/util/List;Lorg/jf/dexlib2/iface/MultiDexContainer$DexEntry;)V
            astore 5 /* resolver */
        start local 5 // org.jf.dexlib2.analysis.ClassPathResolver resolver
        26: .line 135
            goto 33
        end local 5 // org.jf.dexlib2.analysis.ClassPathResolver resolver
      StackMap locals:
      StackMap stack:
        27: aload 0 /* this */
            getfield org.jf.baksmali.AnalysisArguments.bootClassPath:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmpne 32
            aload 0 /* this */
            getfield org.jf.baksmali.AnalysisArguments.bootClassPath:Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.String.length:()I
            ifne 32
        28: .line 137
            new org.jf.dexlib2.analysis.ClassPathResolver
            dup
        29: .line 138
            invokestatic com.google.common.collect.ImmutableList.of:()Lcom/google/common/collect/ImmutableList;
            invokestatic com.google.common.collect.ImmutableList.of:()Lcom/google/common/collect/ImmutableList;
            aload 0 /* this */
            getfield org.jf.baksmali.AnalysisArguments.classPath:Ljava/util/List;
            aload 2 /* dexEntry */
        30: .line 137
            invokespecial org.jf.dexlib2.analysis.ClassPathResolver.<init>:(Ljava/util/List;Ljava/util/List;Ljava/util/List;Lorg/jf/dexlib2/iface/MultiDexContainer$DexEntry;)V
            astore 5 /* resolver */
        start local 5 // org.jf.dexlib2.analysis.ClassPathResolver resolver
        31: .line 139
            goto 33
        end local 5 // org.jf.dexlib2.analysis.ClassPathResolver resolver
        32: .line 140
      StackMap locals:
      StackMap stack:
            new org.jf.dexlib2.analysis.ClassPathResolver
            dup
            aload 7 /* filteredClassPathDirectories */
            aload 0 /* this */
            getfield org.jf.baksmali.AnalysisArguments.bootClassPath:Ljava/util/List;
            aload 0 /* this */
            getfield org.jf.baksmali.AnalysisArguments.classPath:Ljava/util/List;
            aload 2 /* dexEntry */
            invokespecial org.jf.dexlib2.analysis.ClassPathResolver.<init>:(Ljava/util/List;Ljava/util/List;Ljava/util/List;Lorg/jf/dexlib2/iface/MultiDexContainer$DexEntry;)V
            astore 5 /* resolver */
        start local 5 // org.jf.dexlib2.analysis.ClassPathResolver resolver
        33: .line 143
      StackMap locals: org.jf.baksmali.AnalysisArguments java.io.File org.jf.dexlib2.iface.MultiDexContainer$DexEntry int int org.jf.dexlib2.analysis.ClassPathResolver org.jf.dexlib2.iface.MultiDexContainer java.util.List
      StackMap stack:
            iload 4 /* oatVersion */
            ifne 35
            aload 6 /* container */
            instanceof org.jf.dexlib2.dexbacked.OatFile
            ifeq 35
        34: .line 144
            aload 6 /* container */
            checkcast org.jf.dexlib2.dexbacked.OatFile
            invokevirtual org.jf.dexlib2.dexbacked.OatFile.getOatVersion:()I
            istore 4 /* oatVersion */
        35: .line 146
      StackMap locals:
      StackMap stack:
            new org.jf.dexlib2.analysis.ClassPath
            dup
            aload 5 /* resolver */
            invokevirtual org.jf.dexlib2.analysis.ClassPathResolver.getResolvedClassProviders:()Ljava/util/List;
            iload 3 /* checkPackagePrivateAccess */
            iload 4 /* oatVersion */
            invokespecial org.jf.dexlib2.analysis.ClassPath.<init>:(Ljava/lang/Iterable;ZI)V
            areturn
        end local 7 // java.util.List filteredClassPathDirectories
        end local 6 // org.jf.dexlib2.iface.MultiDexContainer container
        end local 5 // org.jf.dexlib2.analysis.ClassPathResolver resolver
        end local 4 // int oatVersion
        end local 3 // boolean checkPackagePrivateAccess
        end local 2 // org.jf.dexlib2.iface.MultiDexContainer$DexEntry dexEntry
        end local 1 // java.io.File dexFileDir
        end local 0 // org.jf.baksmali.AnalysisArguments this
      LocalVariableTable:
        Start  End  Slot                          Name  Signature
            0   36     0                          this  Lorg/jf/baksmali/AnalysisArguments;
            0   36     1                    dexFileDir  Ljava/io/File;
            0   36     2                      dexEntry  Lorg/jf/dexlib2/iface/MultiDexContainer$DexEntry<+Lorg/jf/dexlib2/dexbacked/DexBackedDexFile;>;
            0   36     3     checkPackagePrivateAccess  Z
            0   36     4                    oatVersion  I
           26   27     5                      resolver  Lorg/jf/dexlib2/analysis/ClassPathResolver;
           31   32     5                      resolver  Lorg/jf/dexlib2/analysis/ClassPathResolver;
           33   36     5                      resolver  Lorg/jf/dexlib2/analysis/ClassPathResolver;
            1   36     6                     container  Lorg/jf/dexlib2/iface/MultiDexContainer<+Lorg/jf/dexlib2/dexbacked/DexBackedDexFile;>;
           12   36     7  filteredClassPathDirectories  Ljava/util/List<Ljava/lang/String;>;
           15   23     8                           dir  Ljava/lang/String;
           16   23    10                          file  Ljava/io/File;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/io/File;Lorg/jf/dexlib2/iface/MultiDexContainer$DexEntry<+Lorg/jf/dexlib2/dexbacked/DexBackedDexFile;>;ZI)Lorg/jf/dexlib2/analysis/ClassPath;
    RuntimeVisibleAnnotations: 
      javax.annotation.Nonnull()
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        javax.annotation.Nonnull()
      METHOD_FORMAL_PARAMETER
        javax.annotation.Nonnull()
      METHOD_RETURN
        javax.annotation.Nonnull()
    RuntimeVisibleParameterAnnotations: 
      0:
        javax.annotation.Nonnull()
      1:
        javax.annotation.Nonnull()
      2:
      3:
    MethodParameters:
                           Name  Flags
      dexFileDir                 
      dexEntry                   
      checkPackagePrivateAccess  
      oatVersion                 
}
SourceFile: "AnalysisArguments.java"
NestMembers:
  org.jf.baksmali.AnalysisArguments$CheckPackagePrivateArgument
InnerClasses:
  public CheckPackagePrivateArgument = org.jf.baksmali.AnalysisArguments$CheckPackagePrivateArgument of org.jf.baksmali.AnalysisArguments
  public abstract DexEntry = org.jf.dexlib2.iface.MultiDexContainer$DexEntry of org.jf.dexlib2.iface.MultiDexContainer