public class sun.instrument.InstrumentationImpl implements java.lang.instrument.Instrumentation
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.instrument.InstrumentationImpl
  super_class: java.lang.Object
{
  private final sun.instrument.TransformerManager mTransformerManager;
    descriptor: Lsun/instrument/TransformerManager;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private sun.instrument.TransformerManager mRetransfomableTransformerManager;
    descriptor: Lsun/instrument/TransformerManager;
    flags: (0x0002) ACC_PRIVATE

  private final long mNativeAgent;
    descriptor: J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean mEnvironmentSupportsRedefineClasses;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private volatile boolean mEnvironmentSupportsRetransformClassesKnown;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean mEnvironmentSupportsRetransformClasses;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private final boolean mEnvironmentSupportsNativeMethodPrefix;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 408
            ldc "instrument"
            invokestatic java.lang.System.loadLibrary:(Ljava/lang/String;)V
         1: .line 409
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>(long, boolean, boolean);
    descriptor: (JZZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // sun.instrument.InstrumentationImpl this
        start local 1 // long nativeAgent
        start local 3 // boolean environmentSupportsRedefineClasses
        start local 4 // boolean environmentSupportsNativeMethodPrefix
         0: .line 72
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 75
            aload 0 /* this */
            new sun.instrument.TransformerManager
            dup
            iconst_0
            invokespecial sun.instrument.TransformerManager.<init>:(Z)V
            putfield sun.instrument.InstrumentationImpl.mTransformerManager:Lsun/instrument/TransformerManager;
         2: .line 76
            aload 0 /* this */
            aconst_null
            putfield sun.instrument.InstrumentationImpl.mRetransfomableTransformerManager:Lsun/instrument/TransformerManager;
         3: .line 77
            aload 0 /* this */
            lload 1 /* nativeAgent */
            putfield sun.instrument.InstrumentationImpl.mNativeAgent:J
         4: .line 78
            aload 0 /* this */
            iload 3 /* environmentSupportsRedefineClasses */
            putfield sun.instrument.InstrumentationImpl.mEnvironmentSupportsRedefineClasses:Z
         5: .line 79
            aload 0 /* this */
            iconst_0
            putfield sun.instrument.InstrumentationImpl.mEnvironmentSupportsRetransformClassesKnown:Z
         6: .line 80
            aload 0 /* this */
            iconst_0
            putfield sun.instrument.InstrumentationImpl.mEnvironmentSupportsRetransformClasses:Z
         7: .line 81
            aload 0 /* this */
            iload 4 /* environmentSupportsNativeMethodPrefix */
            putfield sun.instrument.InstrumentationImpl.mEnvironmentSupportsNativeMethodPrefix:Z
         8: .line 82
            return
        end local 4 // boolean environmentSupportsNativeMethodPrefix
        end local 3 // boolean environmentSupportsRedefineClasses
        end local 1 // long nativeAgent
        end local 0 // sun.instrument.InstrumentationImpl this
      LocalVariableTable:
        Start  End  Slot                                   Name  Signature
            0    9     0                                   this  Lsun/instrument/InstrumentationImpl;
            0    9     1                            nativeAgent  J
            0    9     3     environmentSupportsRedefineClasses  Z
            0    9     4  environmentSupportsNativeMethodPrefix  Z
    MethodParameters:
                                       Name  Flags
      nativeAgent                            
      environmentSupportsRedefineClasses     
      environmentSupportsNativeMethodPrefix  

  public void addTransformer(java.lang.instrument.ClassFileTransformer);
    descriptor: (Ljava/lang/instrument/ClassFileTransformer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.instrument.InstrumentationImpl this
        start local 1 // java.lang.instrument.ClassFileTransformer transformer
         0: .line 86
            aload 0 /* this */
            aload 1 /* transformer */
            iconst_0
            invokevirtual sun.instrument.InstrumentationImpl.addTransformer:(Ljava/lang/instrument/ClassFileTransformer;Z)V
         1: .line 87
            return
        end local 1 // java.lang.instrument.ClassFileTransformer transformer
        end local 0 // sun.instrument.InstrumentationImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lsun/instrument/InstrumentationImpl;
            0    2     1  transformer  Ljava/lang/instrument/ClassFileTransformer;
    MethodParameters:
             Name  Flags
      transformer  

  public synchronized void addTransformer(java.lang.instrument.ClassFileTransformer, boolean);
    descriptor: (Ljava/lang/instrument/ClassFileTransformer;Z)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // sun.instrument.InstrumentationImpl this
        start local 1 // java.lang.instrument.ClassFileTransformer transformer
        start local 2 // boolean canRetransform
         0: .line 91
            aload 1 /* transformer */
            ifnonnull 2
         1: .line 92
            new java.lang.NullPointerException
            dup
            ldc "null passed as 'transformer' in addTransformer"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 94
      StackMap locals:
      StackMap stack:
            iload 2 /* canRetransform */
            ifeq 13
         3: .line 95
            aload 0 /* this */
            invokevirtual sun.instrument.InstrumentationImpl.isRetransformClassesSupported:()Z
            ifne 7
         4: .line 96
            new java.lang.UnsupportedOperationException
            dup
         5: .line 97
            ldc "adding retransformable transformers is not supported in this environment"
         6: .line 96
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 99
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.instrument.InstrumentationImpl.mRetransfomableTransformerManager:Lsun/instrument/TransformerManager;
            ifnonnull 9
         8: .line 100
            aload 0 /* this */
            new sun.instrument.TransformerManager
            dup
            iconst_1
            invokespecial sun.instrument.TransformerManager.<init>:(Z)V
            putfield sun.instrument.InstrumentationImpl.mRetransfomableTransformerManager:Lsun/instrument/TransformerManager;
         9: .line 102
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.instrument.InstrumentationImpl.mRetransfomableTransformerManager:Lsun/instrument/TransformerManager;
            aload 1 /* transformer */
            invokevirtual sun.instrument.TransformerManager.addTransformer:(Ljava/lang/instrument/ClassFileTransformer;)V
        10: .line 103
            aload 0 /* this */
            getfield sun.instrument.InstrumentationImpl.mRetransfomableTransformerManager:Lsun/instrument/TransformerManager;
            invokevirtual sun.instrument.TransformerManager.getTransformerCount:()I
            iconst_1
            if_icmpne 16
        11: .line 104
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
            iconst_1
            invokevirtual sun.instrument.InstrumentationImpl.setHasRetransformableTransformers:(JZ)V
        12: .line 106
            goto 16
        13: .line 107
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.instrument.InstrumentationImpl.mTransformerManager:Lsun/instrument/TransformerManager;
            aload 1 /* transformer */
            invokevirtual sun.instrument.TransformerManager.addTransformer:(Ljava/lang/instrument/ClassFileTransformer;)V
        14: .line 108
            aload 0 /* this */
            getfield sun.instrument.InstrumentationImpl.mTransformerManager:Lsun/instrument/TransformerManager;
            invokevirtual sun.instrument.TransformerManager.getTransformerCount:()I
            iconst_1
            if_icmpne 16
        15: .line 109
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
            iconst_1
            invokevirtual sun.instrument.InstrumentationImpl.setHasTransformers:(JZ)V
        16: .line 112
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean canRetransform
        end local 1 // java.lang.instrument.ClassFileTransformer transformer
        end local 0 // sun.instrument.InstrumentationImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   17     0            this  Lsun/instrument/InstrumentationImpl;
            0   17     1     transformer  Ljava/lang/instrument/ClassFileTransformer;
            0   17     2  canRetransform  Z
    MethodParameters:
                Name  Flags
      transformer     
      canRetransform  

  public synchronized boolean removeTransformer(java.lang.instrument.ClassFileTransformer);
    descriptor: (Ljava/lang/instrument/ClassFileTransformer;)Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // sun.instrument.InstrumentationImpl this
        start local 1 // java.lang.instrument.ClassFileTransformer transformer
         0: .line 116
            aload 1 /* transformer */
            ifnonnull 2
         1: .line 117
            new java.lang.NullPointerException
            dup
            ldc "null passed as 'transformer' in removeTransformer"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 119
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* transformer */
            invokevirtual sun.instrument.InstrumentationImpl.findTransformerManager:(Ljava/lang/instrument/ClassFileTransformer;)Lsun/instrument/TransformerManager;
            astore 2 /* mgr */
        start local 2 // sun.instrument.TransformerManager mgr
         3: .line 120
            aload 2 /* mgr */
            ifnull 11
         4: .line 121
            aload 2 /* mgr */
            aload 1 /* transformer */
            invokevirtual sun.instrument.TransformerManager.removeTransformer:(Ljava/lang/instrument/ClassFileTransformer;)Z
            pop
         5: .line 122
            aload 2 /* mgr */
            invokevirtual sun.instrument.TransformerManager.getTransformerCount:()I
            ifne 10
         6: .line 123
            aload 2 /* mgr */
            invokevirtual sun.instrument.TransformerManager.isRetransformable:()Z
            ifeq 9
         7: .line 124
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
            iconst_0
            invokevirtual sun.instrument.InstrumentationImpl.setHasRetransformableTransformers:(JZ)V
         8: .line 125
            goto 10
         9: .line 126
      StackMap locals: sun.instrument.TransformerManager
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
            iconst_0
            invokevirtual sun.instrument.InstrumentationImpl.setHasTransformers:(JZ)V
        10: .line 129
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        11: .line 131
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // sun.instrument.TransformerManager mgr
        end local 1 // java.lang.instrument.ClassFileTransformer transformer
        end local 0 // sun.instrument.InstrumentationImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   12     0         this  Lsun/instrument/InstrumentationImpl;
            0   12     1  transformer  Ljava/lang/instrument/ClassFileTransformer;
            3   12     2          mgr  Lsun/instrument/TransformerManager;
    MethodParameters:
             Name  Flags
      transformer  

  public boolean isModifiableClass(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.instrument.InstrumentationImpl this
        start local 1 // java.lang.Class theClass
         0: .line 136
            aload 1 /* theClass */
            ifnonnull 4
         1: .line 137
            new java.lang.NullPointerException
            dup
         2: .line 138
            ldc "null passed as 'theClass' in isModifiableClass"
         3: .line 137
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 140
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
            aload 1 /* theClass */
            invokevirtual sun.instrument.InstrumentationImpl.isModifiableClass0:(JLjava/lang/Class;)Z
            ireturn
        end local 1 // java.lang.Class theClass
        end local 0 // sun.instrument.InstrumentationImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lsun/instrument/InstrumentationImpl;
            0    5     1  theClass  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
          Name  Flags
      theClass  

  public boolean isModifiableModule(java.lang.Module);
    descriptor: (Ljava/lang/Module;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.instrument.InstrumentationImpl this
        start local 1 // java.lang.Module module
         0: .line 144
            aload 1 /* module */
            ifnonnull 2
         1: .line 145
            new java.lang.NullPointerException
            dup
            ldc "'module' is null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 147
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // java.lang.Module module
        end local 0 // sun.instrument.InstrumentationImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lsun/instrument/InstrumentationImpl;
            0    3     1  module  Ljava/lang/Module;
    MethodParameters:
        Name  Flags
      module  

  public boolean isRetransformClassesSupported();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // sun.instrument.InstrumentationImpl this
         0: .line 153
            aload 0 /* this */
            getfield sun.instrument.InstrumentationImpl.mEnvironmentSupportsRetransformClassesKnown:Z
            ifne 3
         1: .line 154
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
            invokevirtual sun.instrument.InstrumentationImpl.isRetransformClassesSupported0:(J)Z
            putfield sun.instrument.InstrumentationImpl.mEnvironmentSupportsRetransformClasses:Z
         2: .line 155
            aload 0 /* this */
            iconst_1
            putfield sun.instrument.InstrumentationImpl.mEnvironmentSupportsRetransformClassesKnown:Z
         3: .line 157
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.instrument.InstrumentationImpl.mEnvironmentSupportsRetransformClasses:Z
            ireturn
        end local 0 // sun.instrument.InstrumentationImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/instrument/InstrumentationImpl;

  public void retransformClasses(java.lang.Class<?>[]);
    descriptor: ([Ljava/lang/Class;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.instrument.InstrumentationImpl this
        start local 1 // java.lang.Class[] classes
         0: .line 162
            aload 0 /* this */
            invokevirtual sun.instrument.InstrumentationImpl.isRetransformClassesSupported:()Z
            ifne 4
         1: .line 163
            new java.lang.UnsupportedOperationException
            dup
         2: .line 164
            ldc "retransformClasses is not supported in this environment"
         3: .line 163
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 166
      StackMap locals:
      StackMap stack:
            aload 1 /* classes */
            arraylength
            ifne 6
         5: .line 167
            return
         6: .line 169
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
            aload 1 /* classes */
            invokevirtual sun.instrument.InstrumentationImpl.retransformClasses0:(J[Ljava/lang/Class;)V
         7: .line 170
            return
        end local 1 // java.lang.Class[] classes
        end local 0 // sun.instrument.InstrumentationImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lsun/instrument/InstrumentationImpl;
            0    8     1  classes  [Ljava/lang/Class;
    Signature: ([Ljava/lang/Class<*>;)V
    MethodParameters:
         Name  Flags
      classes  

  public boolean isRedefineClassesSupported();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.instrument.InstrumentationImpl this
         0: .line 174
            aload 0 /* this */
            getfield sun.instrument.InstrumentationImpl.mEnvironmentSupportsRedefineClasses:Z
            ireturn
        end local 0 // sun.instrument.InstrumentationImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/instrument/InstrumentationImpl;

  public void redefineClasses(java.lang.instrument.ClassDefinition[]);
    descriptor: ([Ljava/lang/instrument/ClassDefinition;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // sun.instrument.InstrumentationImpl this
        start local 1 // java.lang.instrument.ClassDefinition[] definitions
         0: .line 180
            aload 0 /* this */
            invokevirtual sun.instrument.InstrumentationImpl.isRedefineClassesSupported:()Z
            ifne 2
         1: .line 181
            new java.lang.UnsupportedOperationException
            dup
            ldc "redefineClasses is not supported in this environment"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 183
      StackMap locals:
      StackMap stack:
            aload 1 /* definitions */
            ifnonnull 4
         3: .line 184
            new java.lang.NullPointerException
            dup
            ldc "null passed as 'definitions' in redefineClasses"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 186
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         5: goto 9
         6: .line 187
      StackMap locals: int
      StackMap stack:
            aload 1 /* definitions */
            iload 2 /* i */
            aaload
            ifnonnull 8
         7: .line 188
            new java.lang.NullPointerException
            dup
            ldc "element of 'definitions' is null in redefineClasses"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 186
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 2 /* i */
            aload 1 /* definitions */
            arraylength
            if_icmplt 6
        end local 2 // int i
        10: .line 191
            aload 1 /* definitions */
            arraylength
            ifne 12
        11: .line 192
            return
        12: .line 195
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
            aload 1 /* definitions */
            invokevirtual sun.instrument.InstrumentationImpl.redefineClasses0:(J[Ljava/lang/instrument/ClassDefinition;)V
        13: .line 196
            return
        end local 1 // java.lang.instrument.ClassDefinition[] definitions
        end local 0 // sun.instrument.InstrumentationImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   14     0         this  Lsun/instrument/InstrumentationImpl;
            0   14     1  definitions  [Ljava/lang/instrument/ClassDefinition;
            5   10     2            i  I
    Exceptions:
      throws java.lang.ClassNotFoundException
    MethodParameters:
             Name  Flags
      definitions  

  public java.lang.Class[] getAllLoadedClasses();
    descriptor: ()[Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.instrument.InstrumentationImpl this
         0: .line 201
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
            invokevirtual sun.instrument.InstrumentationImpl.getAllLoadedClasses0:(J)[Ljava/lang/Class;
            areturn
        end local 0 // sun.instrument.InstrumentationImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/instrument/InstrumentationImpl;

  public java.lang.Class[] getInitiatedClasses(java.lang.ClassLoader);
    descriptor: (Ljava/lang/ClassLoader;)[Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.instrument.InstrumentationImpl this
        start local 1 // java.lang.ClassLoader loader
         0: .line 207
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
            aload 1 /* loader */
            invokevirtual sun.instrument.InstrumentationImpl.getInitiatedClasses0:(JLjava/lang/ClassLoader;)[Ljava/lang/Class;
            areturn
        end local 1 // java.lang.ClassLoader loader
        end local 0 // sun.instrument.InstrumentationImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lsun/instrument/InstrumentationImpl;
            0    1     1  loader  Ljava/lang/ClassLoader;
    MethodParameters:
        Name  Flags
      loader  

  public long getObjectSize(java.lang.Object);
    descriptor: (Ljava/lang/Object;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.instrument.InstrumentationImpl this
        start local 1 // java.lang.Object objectToSize
         0: .line 212
            aload 1 /* objectToSize */
            ifnonnull 2
         1: .line 213
            new java.lang.NullPointerException
            dup
            ldc "null passed as 'objectToSize' in getObjectSize"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 215
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
            aload 1 /* objectToSize */
            invokevirtual sun.instrument.InstrumentationImpl.getObjectSize0:(JLjava/lang/Object;)J
            lreturn
        end local 1 // java.lang.Object objectToSize
        end local 0 // sun.instrument.InstrumentationImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lsun/instrument/InstrumentationImpl;
            0    3     1  objectToSize  Ljava/lang/Object;
    MethodParameters:
              Name  Flags
      objectToSize  

  public void appendToBootstrapClassLoaderSearch(java.util.jar.JarFile);
    descriptor: (Ljava/util/jar/JarFile;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // sun.instrument.InstrumentationImpl this
        start local 1 // java.util.jar.JarFile jarfile
         0: .line 220
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
            aload 1 /* jarfile */
            invokevirtual java.util.jar.JarFile.getName:()Ljava/lang/String;
            iconst_1
            invokevirtual sun.instrument.InstrumentationImpl.appendToClassLoaderSearch0:(JLjava/lang/String;Z)V
         1: .line 221
            return
        end local 1 // java.util.jar.JarFile jarfile
        end local 0 // sun.instrument.InstrumentationImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lsun/instrument/InstrumentationImpl;
            0    2     1  jarfile  Ljava/util/jar/JarFile;
    MethodParameters:
         Name  Flags
      jarfile  

  public void appendToSystemClassLoaderSearch(java.util.jar.JarFile);
    descriptor: (Ljava/util/jar/JarFile;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // sun.instrument.InstrumentationImpl this
        start local 1 // java.util.jar.JarFile jarfile
         0: .line 225
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
            aload 1 /* jarfile */
            invokevirtual java.util.jar.JarFile.getName:()Ljava/lang/String;
            iconst_0
            invokevirtual sun.instrument.InstrumentationImpl.appendToClassLoaderSearch0:(JLjava/lang/String;Z)V
         1: .line 226
            return
        end local 1 // java.util.jar.JarFile jarfile
        end local 0 // sun.instrument.InstrumentationImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lsun/instrument/InstrumentationImpl;
            0    2     1  jarfile  Ljava/util/jar/JarFile;
    MethodParameters:
         Name  Flags
      jarfile  

  public boolean isNativeMethodPrefixSupported();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.instrument.InstrumentationImpl this
         0: .line 230
            aload 0 /* this */
            getfield sun.instrument.InstrumentationImpl.mEnvironmentSupportsNativeMethodPrefix:Z
            ireturn
        end local 0 // sun.instrument.InstrumentationImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/instrument/InstrumentationImpl;

  public synchronized void setNativeMethodPrefix(java.lang.instrument.ClassFileTransformer, java.lang.String);
    descriptor: (Ljava/lang/instrument/ClassFileTransformer;Ljava/lang/String;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // sun.instrument.InstrumentationImpl this
        start local 1 // java.lang.instrument.ClassFileTransformer transformer
        start local 2 // java.lang.String prefix
         0: .line 235
            aload 0 /* this */
            invokevirtual sun.instrument.InstrumentationImpl.isNativeMethodPrefixSupported:()Z
            ifne 4
         1: .line 236
            new java.lang.UnsupportedOperationException
            dup
         2: .line 237
            ldc "setNativeMethodPrefix is not supported in this environment"
         3: .line 236
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 239
      StackMap locals:
      StackMap stack:
            aload 1 /* transformer */
            ifnonnull 8
         5: .line 240
            new java.lang.NullPointerException
            dup
         6: .line 241
            ldc "null passed as 'transformer' in setNativeMethodPrefix"
         7: .line 240
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 243
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* transformer */
            invokevirtual sun.instrument.InstrumentationImpl.findTransformerManager:(Ljava/lang/instrument/ClassFileTransformer;)Lsun/instrument/TransformerManager;
            astore 3 /* mgr */
        start local 3 // sun.instrument.TransformerManager mgr
         9: .line 244
            aload 3 /* mgr */
            ifnonnull 13
        10: .line 245
            new java.lang.IllegalArgumentException
            dup
        11: .line 246
            ldc "transformer not registered in setNativeMethodPrefix"
        12: .line 245
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 248
      StackMap locals: sun.instrument.TransformerManager
      StackMap stack:
            aload 3 /* mgr */
            aload 1 /* transformer */
            aload 2 /* prefix */
            invokevirtual sun.instrument.TransformerManager.setNativeMethodPrefix:(Ljava/lang/instrument/ClassFileTransformer;Ljava/lang/String;)Z
            pop
        14: .line 249
            aload 3 /* mgr */
            invokevirtual sun.instrument.TransformerManager.getNativeMethodPrefixes:()[Ljava/lang/String;
            astore 4 /* prefixes */
        start local 4 // java.lang.String[] prefixes
        15: .line 250
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
            aload 4 /* prefixes */
            aload 3 /* mgr */
            invokevirtual sun.instrument.TransformerManager.isRetransformable:()Z
            invokevirtual sun.instrument.InstrumentationImpl.setNativeMethodPrefixes:(J[Ljava/lang/String;Z)V
        16: .line 251
            return
        end local 4 // java.lang.String[] prefixes
        end local 3 // sun.instrument.TransformerManager mgr
        end local 2 // java.lang.String prefix
        end local 1 // java.lang.instrument.ClassFileTransformer transformer
        end local 0 // sun.instrument.InstrumentationImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   17     0         this  Lsun/instrument/InstrumentationImpl;
            0   17     1  transformer  Ljava/lang/instrument/ClassFileTransformer;
            0   17     2       prefix  Ljava/lang/String;
            9   17     3          mgr  Lsun/instrument/TransformerManager;
           15   17     4     prefixes  [Ljava/lang/String;
    MethodParameters:
             Name  Flags
      transformer  
      prefix       

  public void redefineModule(java.lang.Module, java.util.Set<java.lang.Module>, java.util.Map<java.lang.String, java.util.Set<java.lang.Module>>, java.util.Map<java.lang.String, java.util.Set<java.lang.Module>>, java.util.Set<java.lang.Class<?>>, java.util.Map<java.lang.Class<?>, java.util.List<java.lang.Class<?>>>);
    descriptor: (Ljava/lang/Module;Ljava/util/Set;Ljava/util/Map;Ljava/util/Map;Ljava/util/Set;Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=12, args_size=7
        start local 0 // sun.instrument.InstrumentationImpl this
        start local 1 // java.lang.Module module
        start local 2 // java.util.Set extraReads
        start local 3 // java.util.Map extraExports
        start local 4 // java.util.Map extraOpens
        start local 5 // java.util.Set extraUses
        start local 6 // java.util.Map extraProvides
         0: .line 261
            aload 1 /* module */
            invokevirtual java.lang.Module.isNamed:()Z
            ifne 2
         1: .line 262
            return
         2: .line 264
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* module */
            invokevirtual sun.instrument.InstrumentationImpl.isModifiableModule:(Ljava/lang/Module;)Z
            ifne 4
         3: .line 265
            new java.lang.instrument.UnmodifiableModuleException
            dup
            aload 1 /* module */
            invokevirtual java.lang.Module.getName:()Ljava/lang/String;
            invokespecial java.lang.instrument.UnmodifiableModuleException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 268
      StackMap locals:
      StackMap stack:
            new java.util.HashSet
            dup
            aload 2 /* extraReads */
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            astore 2 /* extraReads */
         5: .line 269
            aload 2 /* extraReads */
            aconst_null
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 270
            new java.lang.NullPointerException
            dup
            ldc "'extraReads' contains null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 273
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* module */
            aload 3 /* extraExports */
            invokevirtual sun.instrument.InstrumentationImpl.cloneAndCheckMap:(Ljava/lang/Module;Ljava/util/Map;)Ljava/util/Map;
            astore 3 /* extraExports */
         8: .line 274
            aload 0 /* this */
            aload 1 /* module */
            aload 4 /* extraOpens */
            invokevirtual sun.instrument.InstrumentationImpl.cloneAndCheckMap:(Ljava/lang/Module;Ljava/util/Map;)Ljava/util/Map;
            astore 4 /* extraOpens */
         9: .line 277
            new java.util.HashSet
            dup
            aload 5 /* extraUses */
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            astore 5 /* extraUses */
        10: .line 278
            aload 5 /* extraUses */
            aconst_null
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 12
        11: .line 279
            new java.lang.NullPointerException
            dup
            ldc "'extraUses' contains null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 282
      StackMap locals:
      StackMap stack:
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 7 /* tmpProvides */
        start local 7 // java.util.Map tmpProvides
        13: .line 283
            aload 6 /* extraProvides */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 9
            goto 23
      StackMap locals: sun.instrument.InstrumentationImpl java.lang.Module java.util.Set java.util.Map java.util.Map java.util.Set java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
        14: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 8 /* e */
        start local 8 // java.util.Map$Entry e
        15: .line 284
            aload 8 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.Class
            astore 10 /* service */
        start local 10 // java.lang.Class service
        16: .line 285
            aload 10 /* service */
            ifnonnull 18
        17: .line 286
            new java.lang.NullPointerException
            dup
            ldc "'extraProvides' contains null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 287
      StackMap locals: sun.instrument.InstrumentationImpl java.lang.Module java.util.Set java.util.Map java.util.Map java.util.Set java.util.Map java.util.Map java.util.Map$Entry java.util.Iterator java.lang.Class
      StackMap stack:
            new java.util.ArrayList
            dup
            aload 8 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.Collection
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 11 /* providers */
        start local 11 // java.util.List providers
        19: .line 288
            aload 11 /* providers */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 21
        20: .line 289
            new java.lang.IllegalArgumentException
            dup
            ldc "list of providers is empty"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        21: .line 290
      StackMap locals: java.util.List
      StackMap stack:
            aload 11 /* providers */
            aload 1 /* module */
            aload 10 /* service */
            invokedynamic accept(Ljava/lang/Module;Ljava/lang/Class;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  sun/instrument/InstrumentationImpl.lambda$0(Ljava/lang/Module;Ljava/lang/Class;Ljava/lang/Class;)V (6)
                  (Ljava/lang/Class;)V
            invokeinterface java.util.List.forEach:(Ljava/util/function/Consumer;)V
        22: .line 296
            aload 7 /* tmpProvides */
            aload 10 /* service */
            aload 11 /* providers */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 11 // java.util.List providers
        end local 10 // java.lang.Class service
        end local 8 // java.util.Map$Entry e
        23: .line 283
      StackMap locals: sun.instrument.InstrumentationImpl java.lang.Module java.util.Set java.util.Map java.util.Map java.util.Set java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        24: .line 298
            aload 7 /* tmpProvides */
            astore 6 /* extraProvides */
        25: .line 302
            aload 2 /* extraReads */
            aload 1 /* module */
            invokedynamic accept(Ljava/lang/Module;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  sun/instrument/InstrumentationImpl.lambda$1(Ljava/lang/Module;Ljava/lang/Module;)V (6)
                  (Ljava/lang/Module;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
        26: .line 305
            aload 3 /* extraExports */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 9
            goto 31
      StackMap locals:
      StackMap stack:
        27: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 8 /* e */
        start local 8 // java.util.Map$Entry e
        28: .line 306
            aload 8 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 10 /* pkg */
        start local 10 // java.lang.String pkg
        29: .line 307
            aload 8 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.Set
            astore 11 /* targets */
        start local 11 // java.util.Set targets
        30: .line 308
            aload 11 /* targets */
            aload 1 /* module */
            aload 10 /* pkg */
            invokedynamic accept(Ljava/lang/Module;Ljava/lang/String;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  sun/instrument/InstrumentationImpl.lambda$2(Ljava/lang/Module;Ljava/lang/String;Ljava/lang/Module;)V (6)
                  (Ljava/lang/Module;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
        end local 11 // java.util.Set targets
        end local 10 // java.lang.String pkg
        end local 8 // java.util.Map$Entry e
        31: .line 305
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 27
        32: .line 312
            aload 4 /* extraOpens */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 9
            goto 37
      StackMap locals:
      StackMap stack:
        33: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 8 /* e */
        start local 8 // java.util.Map$Entry e
        34: .line 313
            aload 8 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 10 /* pkg */
        start local 10 // java.lang.String pkg
        35: .line 314
            aload 8 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.Set
            astore 11 /* targets */
        start local 11 // java.util.Set targets
        36: .line 315
            aload 11 /* targets */
            aload 1 /* module */
            aload 10 /* pkg */
            invokedynamic accept(Ljava/lang/Module;Ljava/lang/String;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  sun/instrument/InstrumentationImpl.lambda$3(Ljava/lang/Module;Ljava/lang/String;Ljava/lang/Module;)V (6)
                  (Ljava/lang/Module;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
        end local 11 // java.util.Set targets
        end local 10 // java.lang.String pkg
        end local 8 // java.util.Map$Entry e
        37: .line 312
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 33
        38: .line 319
            aload 5 /* extraUses */
            aload 1 /* module */
            invokedynamic accept(Ljava/lang/Module;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  sun/instrument/InstrumentationImpl.lambda$4(Ljava/lang/Module;Ljava/lang/Class;)V (6)
                  (Ljava/lang/Class;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
        39: .line 322
            aload 6 /* extraProvides */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 9
            goto 44
      StackMap locals:
      StackMap stack:
        40: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 8 /* e */
        start local 8 // java.util.Map$Entry e
        41: .line 323
            aload 8 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.Class
            astore 10 /* service */
        start local 10 // java.lang.Class service
        42: .line 324
            aload 8 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.List
            astore 11 /* providers */
        start local 11 // java.util.List providers
        43: .line 325
            aload 11 /* providers */
            aload 1 /* module */
            aload 10 /* service */
            invokedynamic accept(Ljava/lang/Module;Ljava/lang/Class;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  sun/instrument/InstrumentationImpl.lambda$5(Ljava/lang/Module;Ljava/lang/Class;Ljava/lang/Class;)V (6)
                  (Ljava/lang/Class;)V
            invokeinterface java.util.List.forEach:(Ljava/util/function/Consumer;)V
        end local 11 // java.util.List providers
        end local 10 // java.lang.Class service
        end local 8 // java.util.Map$Entry e
        44: .line 322
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 40
        45: .line 327
            return
        end local 7 // java.util.Map tmpProvides
        end local 6 // java.util.Map extraProvides
        end local 5 // java.util.Set extraUses
        end local 4 // java.util.Map extraOpens
        end local 3 // java.util.Map extraExports
        end local 2 // java.util.Set extraReads
        end local 1 // java.lang.Module module
        end local 0 // sun.instrument.InstrumentationImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   46     0           this  Lsun/instrument/InstrumentationImpl;
            0   46     1         module  Ljava/lang/Module;
            0   46     2     extraReads  Ljava/util/Set<Ljava/lang/Module;>;
            0   46     3   extraExports  Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/Module;>;>;
            0   46     4     extraOpens  Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/Module;>;>;
            0   46     5      extraUses  Ljava/util/Set<Ljava/lang/Class<*>;>;
            0   46     6  extraProvides  Ljava/util/Map<Ljava/lang/Class<*>;Ljava/util/List<Ljava/lang/Class<*>;>;>;
           13   46     7    tmpProvides  Ljava/util/Map<Ljava/lang/Class<*>;Ljava/util/List<Ljava/lang/Class<*>;>;>;
           15   23     8              e  Ljava/util/Map$Entry<Ljava/lang/Class<*>;Ljava/util/List<Ljava/lang/Class<*>;>;>;
           16   23    10        service  Ljava/lang/Class<*>;
           19   23    11      providers  Ljava/util/List<Ljava/lang/Class<*>;>;
           28   31     8              e  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/Set<Ljava/lang/Module;>;>;
           29   31    10            pkg  Ljava/lang/String;
           30   31    11        targets  Ljava/util/Set<Ljava/lang/Module;>;
           34   37     8              e  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/Set<Ljava/lang/Module;>;>;
           35   37    10            pkg  Ljava/lang/String;
           36   37    11        targets  Ljava/util/Set<Ljava/lang/Module;>;
           41   44     8              e  Ljava/util/Map$Entry<Ljava/lang/Class<*>;Ljava/util/List<Ljava/lang/Class<*>;>;>;
           42   44    10        service  Ljava/lang/Class<*>;
           43   44    11      providers  Ljava/util/List<Ljava/lang/Class<*>;>;
    Signature: (Ljava/lang/Module;Ljava/util/Set<Ljava/lang/Module;>;Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/Module;>;>;Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/Module;>;>;Ljava/util/Set<Ljava/lang/Class<*>;>;Ljava/util/Map<Ljava/lang/Class<*>;Ljava/util/List<Ljava/lang/Class<*>;>;>;)V
    MethodParameters:
               Name  Flags
      module         
      extraReads     
      extraExports   
      extraOpens     
      extraUses      
      extraProvides  

  private java.util.Map<java.lang.String, java.util.Set<java.lang.Module>> cloneAndCheckMap(java.lang.Module, java.util.Map<java.lang.String, java.util.Set<java.lang.Module>>);
    descriptor: (Ljava/lang/Module;Ljava/util/Map;)Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // sun.instrument.InstrumentationImpl this
        start local 1 // java.lang.Module module
        start local 2 // java.util.Map map
         0: .line 332
            aload 2 /* map */
            invokeinterface java.util.Map.isEmpty:()Z
            ifeq 2
         1: .line 333
            invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
            areturn
         2: .line 335
      StackMap locals:
      StackMap stack:
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 3 /* result */
        start local 3 // java.util.Map result
         3: .line 336
            aload 1 /* module */
            invokevirtual java.lang.Module.getPackages:()Ljava/util/Set;
            astore 4 /* packages */
        start local 4 // java.util.Set packages
         4: .line 337
            aload 2 /* map */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 17
      StackMap locals: sun.instrument.InstrumentationImpl java.lang.Module java.util.Map java.util.Map java.util.Set top java.util.Iterator
      StackMap stack:
         5: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 5 /* e */
        start local 5 // java.util.Map$Entry e
         6: .line 338
            aload 5 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* pkg */
        start local 7 // java.lang.String pkg
         7: .line 339
            aload 7 /* pkg */
            ifnonnull 9
         8: .line 340
            new java.lang.NullPointerException
            dup
            ldc "package cannot be null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 341
      StackMap locals: sun.instrument.InstrumentationImpl java.lang.Module java.util.Map java.util.Map java.util.Set java.util.Map$Entry java.util.Iterator java.lang.String
      StackMap stack:
            aload 4 /* packages */
            aload 7 /* pkg */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 11
        10: .line 342
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            aload 7 /* pkg */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " not in module"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 343
      StackMap locals:
      StackMap stack:
            new java.util.HashSet
            dup
            aload 5 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.Collection
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            astore 8 /* targets */
        start local 8 // java.util.Set targets
        12: .line 344
            aload 8 /* targets */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 14
        13: .line 345
            new java.lang.IllegalArgumentException
            dup
            ldc "set of targets is empty"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 346
      StackMap locals: java.util.Set
      StackMap stack:
            aload 8 /* targets */
            aconst_null
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 16
        15: .line 347
            new java.lang.NullPointerException
            dup
            ldc "set of targets cannot include null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 348
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            aload 7 /* pkg */
            aload 8 /* targets */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 8 // java.util.Set targets
        end local 7 // java.lang.String pkg
        end local 5 // java.util.Map$Entry e
        17: .line 337
      StackMap locals: sun.instrument.InstrumentationImpl java.lang.Module java.util.Map java.util.Map java.util.Set top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        18: .line 350
            aload 3 /* result */
            areturn
        end local 4 // java.util.Set packages
        end local 3 // java.util.Map result
        end local 2 // java.util.Map map
        end local 1 // java.lang.Module module
        end local 0 // sun.instrument.InstrumentationImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   19     0      this  Lsun/instrument/InstrumentationImpl;
            0   19     1    module  Ljava/lang/Module;
            0   19     2       map  Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/Module;>;>;
            3   19     3    result  Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/Module;>;>;
            4   19     4  packages  Ljava/util/Set<Ljava/lang/String;>;
            6   17     5         e  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/Set<Ljava/lang/Module;>;>;
            7   17     7       pkg  Ljava/lang/String;
           12   17     8   targets  Ljava/util/Set<Ljava/lang/Module;>;
    Signature: (Ljava/lang/Module;Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/Module;>;>;)Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/Module;>;>;
    MethodParameters:
        Name  Flags
      module  
      map     

  private sun.instrument.TransformerManager findTransformerManager(java.lang.instrument.ClassFileTransformer);
    descriptor: (Ljava/lang/instrument/ClassFileTransformer;)Lsun/instrument/TransformerManager;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.instrument.InstrumentationImpl this
        start local 1 // java.lang.instrument.ClassFileTransformer transformer
         0: .line 356
            aload 0 /* this */
            getfield sun.instrument.InstrumentationImpl.mTransformerManager:Lsun/instrument/TransformerManager;
            aload 1 /* transformer */
            invokevirtual sun.instrument.TransformerManager.includesTransformer:(Ljava/lang/instrument/ClassFileTransformer;)Z
            ifeq 2
         1: .line 357
            aload 0 /* this */
            getfield sun.instrument.InstrumentationImpl.mTransformerManager:Lsun/instrument/TransformerManager;
            areturn
         2: .line 359
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.instrument.InstrumentationImpl.mRetransfomableTransformerManager:Lsun/instrument/TransformerManager;
            ifnull 5
         3: .line 360
            aload 0 /* this */
            getfield sun.instrument.InstrumentationImpl.mRetransfomableTransformerManager:Lsun/instrument/TransformerManager;
            aload 1 /* transformer */
            invokevirtual sun.instrument.TransformerManager.includesTransformer:(Ljava/lang/instrument/ClassFileTransformer;)Z
            ifeq 5
         4: .line 361
            aload 0 /* this */
            getfield sun.instrument.InstrumentationImpl.mRetransfomableTransformerManager:Lsun/instrument/TransformerManager;
            areturn
         5: .line 363
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.lang.instrument.ClassFileTransformer transformer
        end local 0 // sun.instrument.InstrumentationImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lsun/instrument/InstrumentationImpl;
            0    6     1  transformer  Ljava/lang/instrument/ClassFileTransformer;
    MethodParameters:
             Name  Flags
      transformer  

  private native boolean isModifiableClass0(long, java.lang.Class<?>);
    descriptor: (JLjava/lang/Class;)Z
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    Signature: (JLjava/lang/Class<*>;)Z
    MethodParameters:
             Name  Flags
      nativeAgent  
      theClass     

  private native boolean isRetransformClassesSupported0(long);
    descriptor: (J)Z
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
             Name  Flags
      nativeAgent  

  private native void setHasTransformers(long, boolean);
    descriptor: (JZ)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
             Name  Flags
      nativeAgent  
      has          

  private native void setHasRetransformableTransformers(long, boolean);
    descriptor: (JZ)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
             Name  Flags
      nativeAgent  
      has          

  private native void retransformClasses0(long, java.lang.Class<?>[]);
    descriptor: (J[Ljava/lang/Class;)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    Signature: (J[Ljava/lang/Class<*>;)V
    MethodParameters:
             Name  Flags
      nativeAgent  
      classes      

  private native void redefineClasses0(long, java.lang.instrument.ClassDefinition[]);
    descriptor: (J[Ljava/lang/instrument/ClassDefinition;)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    Exceptions:
      throws java.lang.ClassNotFoundException
    MethodParameters:
             Name  Flags
      nativeAgent  
      definitions  

  private native java.lang.Class[] getAllLoadedClasses0(long);
    descriptor: (J)[Ljava/lang/Class;
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
             Name  Flags
      nativeAgent  

  private native java.lang.Class[] getInitiatedClasses0(long, java.lang.ClassLoader);
    descriptor: (JLjava/lang/ClassLoader;)[Ljava/lang/Class;
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
             Name  Flags
      nativeAgent  
      loader       

  private native long getObjectSize0(long, java.lang.Object);
    descriptor: (JLjava/lang/Object;)J
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    RuntimeVisibleAnnotations: 
      jdk.internal.vm.annotation.IntrinsicCandidate()
    MethodParameters:
              Name  Flags
      nativeAgent   
      objectToSize  

  private native void appendToClassLoaderSearch0(long, java.lang.String, boolean);
    descriptor: (JLjava/lang/String;Z)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
             Name  Flags
      nativeAgent  
      jarfile      
      bootLoader   

  private native void setNativeMethodPrefixes(long, java.lang.String[], boolean);
    descriptor: (J[Ljava/lang/String;Z)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
                   Name  Flags
      nativeAgent        
      prefixes           
      isRetransformable  

  private static void setAccessible(java.lang.reflect.AccessibleObject, boolean);
    descriptor: (Ljava/lang/reflect/AccessibleObject;Z)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.reflect.AccessibleObject ao
        start local 1 // boolean accessible
         0: .line 419
            new sun.instrument.InstrumentationImpl$1
            dup
            aload 0 /* ao */
            iload 1 /* accessible */
            invokespecial sun.instrument.InstrumentationImpl$1.<init>:(Ljava/lang/reflect/AccessibleObject;Z)V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            pop
         1: .line 424
            return
        end local 1 // boolean accessible
        end local 0 // java.lang.reflect.AccessibleObject ao
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0          ao  Ljava/lang/reflect/AccessibleObject;
            0    2     1  accessible  Z
    MethodParameters:
            Name  Flags
      ao          final
      accessible  final

  private void loadClassAndStartAgent(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=10, args_size=4
        start local 0 // sun.instrument.InstrumentationImpl this
        start local 1 // java.lang.String classname
        start local 2 // java.lang.String methodname
        start local 3 // java.lang.String optionsString
         0: .line 433
            invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
            astore 4 /* mainAppLoader */
        start local 4 // java.lang.ClassLoader mainAppLoader
         1: .line 434
            aload 4 /* mainAppLoader */
            aload 1 /* classname */
            invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 5 /* javaAgentClass */
        start local 5 // java.lang.Class javaAgentClass
         2: .line 436
            aconst_null
            astore 6 /* m */
        start local 6 // java.lang.reflect.Method m
         3: .line 437
            aconst_null
            astore 7 /* firstExc */
        start local 7 // java.lang.NoSuchMethodException firstExc
         4: .line 438
            iconst_0
            istore 8 /* twoArgAgent */
        start local 8 // boolean twoArgAgent
         5: .line 451
            aload 5 /* javaAgentClass */
            aload 2 /* methodname */
         6: .line 452
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
         7: .line 453
            ldc Ljava/lang/String;
            aastore
            dup
            iconst_1
         8: .line 454
            ldc Ljava/lang/instrument/Instrumentation;
            aastore
         9: .line 451
            invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 6 /* m */
        10: .line 457
            iconst_1
            istore 8 /* twoArgAgent */
        11: .line 458
            goto 14
      StackMap locals: sun.instrument.InstrumentationImpl java.lang.String java.lang.String java.lang.String java.lang.ClassLoader java.lang.Class java.lang.reflect.Method java.lang.NoSuchMethodException int
      StackMap stack: java.lang.NoSuchMethodException
        12: astore 9 /* x */
        start local 9 // java.lang.NoSuchMethodException x
        13: .line 460
            aload 9 /* x */
            astore 7 /* firstExc */
        end local 9 // java.lang.NoSuchMethodException x
        14: .line 463
      StackMap locals:
      StackMap stack:
            aload 6 /* m */
            ifnonnull 21
        15: .line 466
            aload 5 /* javaAgentClass */
            aload 2 /* methodname */
        16: .line 467
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/String;
            aastore
        17: .line 466
            invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 6 /* m */
        18: .line 468
            goto 21
      StackMap locals:
      StackMap stack: java.lang.NoSuchMethodException
        19: pop
        20: .line 471
            aload 7 /* firstExc */
            athrow
        21: .line 476
      StackMap locals:
      StackMap stack:
            aload 6 /* m */
            invokevirtual java.lang.reflect.Method.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
            ifne 24
        22: .line 477
            new java.lang.StringBuilder
            dup
            ldc "method "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* classname */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* methodname */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " must be declared public"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 9 /* msg */
        start local 9 // java.lang.String msg
        23: .line 478
            new java.lang.IllegalAccessException
            dup
            aload 9 /* msg */
            invokespecial java.lang.IllegalAccessException.<init>:(Ljava/lang/String;)V
            athrow
        end local 9 // java.lang.String msg
        24: .line 481
      StackMap locals:
      StackMap stack:
            aload 5 /* javaAgentClass */
            invokevirtual java.lang.Class.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
            ifne 27
        25: .line 482
            aload 5 /* javaAgentClass */
            invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
            invokevirtual java.lang.Module.isNamed:()Z
            ifne 27
        26: .line 485
            aload 6 /* m */
            iconst_1
            invokestatic sun.instrument.InstrumentationImpl.setAccessible:(Ljava/lang/reflect/AccessibleObject;Z)V
        27: .line 489
      StackMap locals:
      StackMap stack:
            iload 8 /* twoArgAgent */
            ifeq 30
        28: .line 490
            aload 6 /* m */
            aconst_null
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* optionsString */
            aastore
            dup
            iconst_1
            aload 0 /* this */
            aastore
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
        29: .line 491
            goto 31
        30: .line 492
      StackMap locals:
      StackMap stack:
            aload 6 /* m */
            aconst_null
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* optionsString */
            aastore
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
        31: .line 494
      StackMap locals:
      StackMap stack:
            return
        end local 8 // boolean twoArgAgent
        end local 7 // java.lang.NoSuchMethodException firstExc
        end local 6 // java.lang.reflect.Method m
        end local 5 // java.lang.Class javaAgentClass
        end local 4 // java.lang.ClassLoader mainAppLoader
        end local 3 // java.lang.String optionsString
        end local 2 // java.lang.String methodname
        end local 1 // java.lang.String classname
        end local 0 // sun.instrument.InstrumentationImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   32     0            this  Lsun/instrument/InstrumentationImpl;
            0   32     1       classname  Ljava/lang/String;
            0   32     2      methodname  Ljava/lang/String;
            0   32     3   optionsString  Ljava/lang/String;
            1   32     4   mainAppLoader  Ljava/lang/ClassLoader;
            2   32     5  javaAgentClass  Ljava/lang/Class<*>;
            3   32     6               m  Ljava/lang/reflect/Method;
            4   32     7        firstExc  Ljava/lang/NoSuchMethodException;
            5   32     8     twoArgAgent  Z
           13   14     9               x  Ljava/lang/NoSuchMethodException;
           23   24     9             msg  Ljava/lang/String;
      Exception table:
        from    to  target  type
           5    11      12  Class java.lang.NoSuchMethodException
          15    18      19  Class java.lang.NoSuchMethodException
    Exceptions:
      throws java.lang.Throwable
    MethodParameters:
               Name  Flags
      classname      
      methodname     
      optionsString  

  private void loadClassAndCallPremain(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // sun.instrument.InstrumentationImpl this
        start local 1 // java.lang.String classname
        start local 2 // java.lang.String optionsString
         0: .line 502
            aload 0 /* this */
            aload 1 /* classname */
            ldc "premain"
            aload 2 /* optionsString */
            invokevirtual sun.instrument.InstrumentationImpl.loadClassAndStartAgent:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
         1: .line 503
            return
        end local 2 // java.lang.String optionsString
        end local 1 // java.lang.String classname
        end local 0 // sun.instrument.InstrumentationImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lsun/instrument/InstrumentationImpl;
            0    2     1      classname  Ljava/lang/String;
            0    2     2  optionsString  Ljava/lang/String;
    Exceptions:
      throws java.lang.Throwable
    MethodParameters:
               Name  Flags
      classname      
      optionsString  

  private void loadClassAndCallAgentmain(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // sun.instrument.InstrumentationImpl this
        start local 1 // java.lang.String classname
        start local 2 // java.lang.String optionsString
         0: .line 512
            aload 0 /* this */
            aload 1 /* classname */
            ldc "agentmain"
            aload 2 /* optionsString */
            invokevirtual sun.instrument.InstrumentationImpl.loadClassAndStartAgent:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
         1: .line 513
            return
        end local 2 // java.lang.String optionsString
        end local 1 // java.lang.String classname
        end local 0 // sun.instrument.InstrumentationImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lsun/instrument/InstrumentationImpl;
            0    2     1      classname  Ljava/lang/String;
            0    2     2  optionsString  Ljava/lang/String;
    Exceptions:
      throws java.lang.Throwable
    MethodParameters:
               Name  Flags
      classname      
      optionsString  

  private byte[] transform(java.lang.Module, java.lang.ClassLoader, java.lang.String, java.lang.Class<?>, java.security.ProtectionDomain, byte[], );
    descriptor: (Ljava/lang/Module;Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/Class;Ljava/security/ProtectionDomain;[BZ)[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=9, args_size=8
        start local 0 // sun.instrument.InstrumentationImpl this
        start local 1 // java.lang.Module module
        start local 2 // java.lang.ClassLoader loader
        start local 3 // java.lang.String classname
        start local 4 // java.lang.Class classBeingRedefined
        start local 5 // java.security.ProtectionDomain protectionDomain
        start local 6 // byte[] classfileBuffer
        start local 7 // boolean isRetransformer
         0: .line 524
            iload 7 /* isRetransformer */
            ifeq 2
         1: .line 525
            aload 0 /* this */
            getfield sun.instrument.InstrumentationImpl.mRetransfomableTransformerManager:Lsun/instrument/TransformerManager;
            goto 3
         2: .line 526
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.instrument.InstrumentationImpl.mTransformerManager:Lsun/instrument/TransformerManager;
         3: .line 524
      StackMap locals:
      StackMap stack: sun.instrument.TransformerManager
            astore 8 /* mgr */
        start local 8 // sun.instrument.TransformerManager mgr
         4: .line 529
            aload 1 /* module */
            ifnonnull 11
         5: .line 530
            aload 4 /* classBeingRedefined */
            ifnull 8
         6: .line 531
            aload 4 /* classBeingRedefined */
            invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
            astore 1 /* module */
         7: .line 532
            goto 11
         8: .line 533
      StackMap locals: sun.instrument.TransformerManager
      StackMap stack:
            aload 2 /* loader */
            ifnonnull 9
            invokestatic jdk.internal.loader.BootLoader.getUnnamedModule:()Ljava/lang/Module;
            goto 10
         9: .line 534
      StackMap locals:
      StackMap stack:
            aload 2 /* loader */
            invokevirtual java.lang.ClassLoader.getUnnamedModule:()Ljava/lang/Module;
        10: .line 533
      StackMap locals:
      StackMap stack: java.lang.Module
            astore 1 /* module */
        11: .line 537
      StackMap locals:
      StackMap stack:
            aload 8 /* mgr */
            ifnonnull 13
        12: .line 538
            aconst_null
            areturn
        13: .line 540
      StackMap locals:
      StackMap stack:
            aload 8 /* mgr */
            aload 1 /* module */
        14: .line 541
            aload 2 /* loader */
        15: .line 542
            aload 3 /* classname */
        16: .line 543
            aload 4 /* classBeingRedefined */
        17: .line 544
            aload 5 /* protectionDomain */
        18: .line 545
            aload 6 /* classfileBuffer */
        19: .line 540
            invokevirtual sun.instrument.TransformerManager.transform:(Ljava/lang/Module;Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/Class;Ljava/security/ProtectionDomain;[B)[B
            areturn
        end local 8 // sun.instrument.TransformerManager mgr
        end local 7 // boolean isRetransformer
        end local 6 // byte[] classfileBuffer
        end local 5 // java.security.ProtectionDomain protectionDomain
        end local 4 // java.lang.Class classBeingRedefined
        end local 3 // java.lang.String classname
        end local 2 // java.lang.ClassLoader loader
        end local 1 // java.lang.Module module
        end local 0 // sun.instrument.InstrumentationImpl this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   20     0                 this  Lsun/instrument/InstrumentationImpl;
            0   20     1               module  Ljava/lang/Module;
            0   20     2               loader  Ljava/lang/ClassLoader;
            0   20     3            classname  Ljava/lang/String;
            0   20     4  classBeingRedefined  Ljava/lang/Class<*>;
            0   20     5     protectionDomain  Ljava/security/ProtectionDomain;
            0   20     6      classfileBuffer  [B
            0   20     7      isRetransformer  Z
            4   20     8                  mgr  Lsun/instrument/TransformerManager;
    Signature: (Ljava/lang/Module;Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/Class<*>;Ljava/security/ProtectionDomain;[BZ)[B
    MethodParameters:
                     Name  Flags
      module               
      loader               
      classname            
      classBeingRedefined  
      protectionDomain     
      classfileBuffer      
      isRetransformer      

  public static void loadAgent(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.String path
         0: .line 555
            aload 0 /* path */
            invokestatic sun.instrument.InstrumentationImpl.loadAgent0:(Ljava/lang/String;)V
         1: .line 556
            return
        end local 0 // java.lang.String path
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  path  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      path  

  private static native void loadAgent0(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
      Name  Flags
      path  

  private static void lambda$0(java.lang.Module, java.lang.Class, java.lang.Class);
    descriptor: (Ljava/lang/Module;Ljava/lang/Class;Ljava/lang/Class;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=3, args_size=3
        start local 2 // java.lang.Class p
         0: .line 291
            aload 2 /* p */
            invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
            aload 0
            if_acmpeq 2
         1: .line 292
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 2 /* p */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " not in "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 293
      StackMap locals:
      StackMap stack:
            aload 1
            aload 2 /* p */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 4
         3: .line 294
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 2 /* p */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " is not a "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 295
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Class p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     2     p  Ljava/lang/Class<*>;

  private static void lambda$1(java.lang.Module, java.lang.Module);
    descriptor: (Ljava/lang/Module;Ljava/lang/Module;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.Module m
         0: .line 302
            aload 0
            aload 1 /* m */
            invokestatic jdk.internal.module.Modules.addReads:(Ljava/lang/Module;Ljava/lang/Module;)V
            return
        end local 1 // java.lang.Module m
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     m  Ljava/lang/Module;

  private static void lambda$2(java.lang.Module, java.lang.String, java.lang.Module);
    descriptor: (Ljava/lang/Module;Ljava/lang/String;Ljava/lang/Module;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 2 // java.lang.Module m
         0: .line 308
            aload 0
            aload 1
            aload 2 /* m */
            invokestatic jdk.internal.module.Modules.addExports:(Ljava/lang/Module;Ljava/lang/String;Ljava/lang/Module;)V
            return
        end local 2 // java.lang.Module m
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     2     m  Ljava/lang/Module;

  private static void lambda$3(java.lang.Module, java.lang.String, java.lang.Module);
    descriptor: (Ljava/lang/Module;Ljava/lang/String;Ljava/lang/Module;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 2 // java.lang.Module m
         0: .line 315
            aload 0
            aload 1
            aload 2 /* m */
            invokestatic jdk.internal.module.Modules.addOpens:(Ljava/lang/Module;Ljava/lang/String;Ljava/lang/Module;)V
            return
        end local 2 // java.lang.Module m
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     2     m  Ljava/lang/Module;

  private static void lambda$4(java.lang.Module, java.lang.Class);
    descriptor: (Ljava/lang/Module;Ljava/lang/Class;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.Class service
         0: .line 319
            aload 0
            aload 1 /* service */
            invokestatic jdk.internal.module.Modules.addUses:(Ljava/lang/Module;Ljava/lang/Class;)V
            return
        end local 1 // java.lang.Class service
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     1  service  Ljava/lang/Class<*>;

  private static void lambda$5(java.lang.Module, java.lang.Class, java.lang.Class);
    descriptor: (Ljava/lang/Module;Ljava/lang/Class;Ljava/lang/Class;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 2 // java.lang.Class p
         0: .line 325
            aload 0
            aload 1
            aload 2 /* p */
            invokestatic jdk.internal.module.Modules.addProvides:(Ljava/lang/Module;Ljava/lang/Class;Ljava/lang/Class;)V
            return
        end local 2 // java.lang.Class p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     2     p  Ljava/lang/Class<*>;
}
SourceFile: "InstrumentationImpl.java"
NestMembers:
  sun.instrument.InstrumentationImpl$1
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map
  sun.instrument.InstrumentationImpl$1