public class com.oracle.graal.python.runtime.NFIBz2Support
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.graal.python.runtime.NFIBz2Support
  super_class: java.lang.Object
{
  private static final com.oracle.truffle.api.TruffleLogger LOGGER;
    descriptor: Lcom/oracle/truffle/api/TruffleLogger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String SUPPORTING_NATIVE_LIB_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "libbz2support"

  private final com.oracle.graal.python.runtime.PythonContext pythonContext;
    descriptor: Lcom/oracle/graal/python/runtime/PythonContext;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.graal.python.runtime.NativeLibrary$TypedNativeLibrary<com.oracle.graal.python.runtime.NFIBz2Support$Bz2NativeFunctions> typedNativeLib;
    descriptor: Lcom/oracle/graal/python/runtime/NativeLibrary$TypedNativeLibrary;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lcom/oracle/graal/python/runtime/NativeLibrary$TypedNativeLibrary<Lcom/oracle/graal/python/runtime/NFIBz2Support$Bz2NativeFunctions;>;

  private boolean available;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$CompilationFinal()

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 54
            ldc Lcom/oracle/graal/python/runtime/NFIBz2Support;
            invokestatic com.oracle.graal.python.PythonLanguage.getLogger:(Ljava/lang/Class;)Lcom/oracle/truffle/api/TruffleLogger;
            putstatic com.oracle.graal.python.runtime.NFIBz2Support.LOGGER:Lcom/oracle/truffle/api/TruffleLogger;
         1: .line 148
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>(com.oracle.graal.python.runtime.PythonContext, com.oracle.graal.python.runtime.NativeLibrary$NFIBackend, java.lang.String);
    descriptor: (Lcom/oracle/graal/python/runtime/PythonContext;Lcom/oracle/graal/python/runtime/NativeLibrary$NFIBackend;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.oracle.graal.python.runtime.NFIBz2Support this
        start local 1 // com.oracle.graal.python.runtime.PythonContext context
        start local 2 // com.oracle.graal.python.runtime.NativeLibrary$NFIBackend backend
        start local 3 // java.lang.String noNativeAccessHelp
         0: .line 155
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 156
            aload 1 /* context */
            invokevirtual com.oracle.graal.python.runtime.PythonContext.isNativeAccessAllowed:()Z
            ifeq 8
         2: .line 157
            aload 0 /* this */
            aload 1 /* context */
            putfield com.oracle.graal.python.runtime.NFIBz2Support.pythonContext:Lcom/oracle/graal/python/runtime/PythonContext;
         3: .line 158
            aload 0 /* this */
            ldc "libbz2support"
            invokestatic com.oracle.graal.python.runtime.NFIBz2Support$Bz2NativeFunctions.values:()[Lcom/oracle/graal/python/runtime/NFIBz2Support$Bz2NativeFunctions;
         4: .line 159
            aload 2 /* backend */
            aload 3 /* noNativeAccessHelp */
            iconst_1
         5: .line 158
            invokestatic com.oracle.graal.python.runtime.NativeLibrary.create:(Ljava/lang/String;[Ljava/lang/Enum;Lcom/oracle/graal/python/runtime/NativeLibrary$NFIBackend;Ljava/lang/String;Z)Lcom/oracle/graal/python/runtime/NativeLibrary$TypedNativeLibrary;
            putfield com.oracle.graal.python.runtime.NFIBz2Support.typedNativeLib:Lcom/oracle/graal/python/runtime/NativeLibrary$TypedNativeLibrary;
         6: .line 160
            aload 0 /* this */
            iconst_1
            putfield com.oracle.graal.python.runtime.NFIBz2Support.available:Z
         7: .line 161
            goto 11
         8: .line 162
      StackMap locals: com.oracle.graal.python.runtime.NFIBz2Support com.oracle.graal.python.runtime.PythonContext com.oracle.graal.python.runtime.NativeLibrary$NFIBackend java.lang.String
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.oracle.graal.python.runtime.NFIBz2Support.pythonContext:Lcom/oracle/graal/python/runtime/PythonContext;
         9: .line 163
            aload 0 /* this */
            aconst_null
            putfield com.oracle.graal.python.runtime.NFIBz2Support.typedNativeLib:Lcom/oracle/graal/python/runtime/NativeLibrary$TypedNativeLibrary;
        10: .line 164
            aload 0 /* this */
            iconst_0
            putfield com.oracle.graal.python.runtime.NFIBz2Support.available:Z
        11: .line 166
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.String noNativeAccessHelp
        end local 2 // com.oracle.graal.python.runtime.NativeLibrary$NFIBackend backend
        end local 1 // com.oracle.graal.python.runtime.PythonContext context
        end local 0 // com.oracle.graal.python.runtime.NFIBz2Support this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   12     0                this  Lcom/oracle/graal/python/runtime/NFIBz2Support;
            0   12     1             context  Lcom/oracle/graal/python/runtime/PythonContext;
            0   12     2             backend  Lcom/oracle/graal/python/runtime/NativeLibrary$NFIBackend;
            0   12     3  noNativeAccessHelp  Ljava/lang/String;
    MethodParameters:
                    Name  Flags
      context             
      backend             
      noNativeAccessHelp  

  public static com.oracle.graal.python.runtime.NFIBz2Support createNative(com.oracle.graal.python.runtime.PythonContext, java.lang.String);
    descriptor: (Lcom/oracle/graal/python/runtime/PythonContext;Ljava/lang/String;)Lcom/oracle/graal/python/runtime/NFIBz2Support;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.oracle.graal.python.runtime.PythonContext context
        start local 1 // java.lang.String noNativeAccessHelp
         0: .line 169
            new com.oracle.graal.python.runtime.NFIBz2Support
            dup
            aload 0 /* context */
            getstatic com.oracle.graal.python.runtime.NativeLibrary$NFIBackend.NATIVE:Lcom/oracle/graal/python/runtime/NativeLibrary$NFIBackend;
            aload 1 /* noNativeAccessHelp */
            invokespecial com.oracle.graal.python.runtime.NFIBz2Support.<init>:(Lcom/oracle/graal/python/runtime/PythonContext;Lcom/oracle/graal/python/runtime/NativeLibrary$NFIBackend;Ljava/lang/String;)V
            areturn
        end local 1 // java.lang.String noNativeAccessHelp
        end local 0 // com.oracle.graal.python.runtime.PythonContext context
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0             context  Lcom/oracle/graal/python/runtime/PythonContext;
            0    1     1  noNativeAccessHelp  Ljava/lang/String;
    MethodParameters:
                    Name  Flags
      context             
      noNativeAccessHelp  

  public static com.oracle.graal.python.runtime.NFIBz2Support createLLVM(com.oracle.graal.python.runtime.PythonContext, java.lang.String);
    descriptor: (Lcom/oracle/graal/python/runtime/PythonContext;Ljava/lang/String;)Lcom/oracle/graal/python/runtime/NFIBz2Support;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.oracle.graal.python.runtime.PythonContext context
        start local 1 // java.lang.String noNativeAccessHelp
         0: .line 173
            new com.oracle.graal.python.runtime.NFIBz2Support
            dup
            aload 0 /* context */
            getstatic com.oracle.graal.python.runtime.NativeLibrary$NFIBackend.LLVM:Lcom/oracle/graal/python/runtime/NativeLibrary$NFIBackend;
            aload 1 /* noNativeAccessHelp */
            invokespecial com.oracle.graal.python.runtime.NFIBz2Support.<init>:(Lcom/oracle/graal/python/runtime/PythonContext;Lcom/oracle/graal/python/runtime/NativeLibrary$NFIBackend;Ljava/lang/String;)V
            areturn
        end local 1 // java.lang.String noNativeAccessHelp
        end local 0 // com.oracle.graal.python.runtime.PythonContext context
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0             context  Lcom/oracle/graal/python/runtime/PythonContext;
            0    1     1  noNativeAccessHelp  Ljava/lang/String;
    MethodParameters:
                    Name  Flags
      context             
      noNativeAccessHelp  

  public void notAvailable();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.graal.python.runtime.NFIBz2Support this
         0: .line 223
            aload 0 /* this */
            getfield com.oracle.graal.python.runtime.NFIBz2Support.available:Z
            ifeq 3
         1: .line 224
            ldc "Checking NFIBz2Support availability should only be done during initialization."
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:(Ljava/lang/String;)V
         2: .line 225
            aload 0 /* this */
            iconst_0
            putfield com.oracle.graal.python.runtime.NFIBz2Support.available:Z
         3: .line 227
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.graal.python.runtime.NFIBz2Support this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/graal/python/runtime/NFIBz2Support;

  public boolean isAvailable();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.graal.python.runtime.NFIBz2Support this
         0: .line 230
            aload 0 /* this */
            getfield com.oracle.graal.python.runtime.NFIBz2Support.available:Z
            ireturn
        end local 0 // com.oracle.graal.python.runtime.NFIBz2Support this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/graal/python/runtime/NFIBz2Support;

  public java.lang.Object getTimeElapsed(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // com.oracle.graal.python.runtime.NFIBz2Support this
        start local 1 // java.lang.Object zst
         0: .line 239
            aload 0 /* this */
            getfield com.oracle.graal.python.runtime.NFIBz2Support.typedNativeLib:Lcom/oracle/graal/python/runtime/NativeLibrary$TypedNativeLibrary;
            aload 0 /* this */
            getfield com.oracle.graal.python.runtime.NFIBz2Support.pythonContext:Lcom/oracle/graal/python/runtime/PythonContext;
            getstatic com.oracle.graal.python.runtime.NFIBz2Support$Bz2NativeFunctions.bz_get_timeElapsed:Lcom/oracle/graal/python/runtime/NFIBz2Support$Bz2NativeFunctions;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* zst */
            aastore
            invokevirtual com.oracle.graal.python.runtime.NativeLibrary$TypedNativeLibrary.callUncached:(Lcom/oracle/graal/python/runtime/PythonContext;Lcom/oracle/graal/python/runtime/NativeLibrary$NativeFunction;[Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object zst
        end local 0 // com.oracle.graal.python.runtime.NFIBz2Support this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/graal/python/runtime/NFIBz2Support;
            0    1     1   zst  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      zst   

  public java.lang.Object gcReleaseHelper(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // com.oracle.graal.python.runtime.NFIBz2Support this
        start local 1 // java.lang.Object bzst
         0: .line 248
            aload 0 /* this */
            getfield com.oracle.graal.python.runtime.NFIBz2Support.typedNativeLib:Lcom/oracle/graal/python/runtime/NativeLibrary$TypedNativeLibrary;
            aload 0 /* this */
            getfield com.oracle.graal.python.runtime.NFIBz2Support.pythonContext:Lcom/oracle/graal/python/runtime/PythonContext;
            getstatic com.oracle.graal.python.runtime.NFIBz2Support$Bz2NativeFunctions.bz_gc_helper:Lcom/oracle/graal/python/runtime/NFIBz2Support$Bz2NativeFunctions;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* bzst */
            aastore
            invokevirtual com.oracle.graal.python.runtime.NativeLibrary$TypedNativeLibrary.callUncached:(Lcom/oracle/graal/python/runtime/PythonContext;Lcom/oracle/graal/python/runtime/NativeLibrary$NativeFunction;[Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object bzst
        end local 0 // com.oracle.graal.python.runtime.NFIBz2Support this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/graal/python/runtime/NFIBz2Support;
            0    1     1  bzst  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      bzst  

  public java.lang.Object createStream(com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction);
    descriptor: (Lcom/oracle/graal/python/runtime/NativeLibrary$InvokeNativeFunction;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.graal.python.runtime.NFIBz2Support this
        start local 1 // com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction invokeNode
         0: .line 258
            aload 1 /* invokeNode */
            aload 0 /* this */
            getfield com.oracle.graal.python.runtime.NFIBz2Support.typedNativeLib:Lcom/oracle/graal/python/runtime/NativeLibrary$TypedNativeLibrary;
            getstatic com.oracle.graal.python.runtime.NFIBz2Support$Bz2NativeFunctions.bz_create_bzst_stream:Lcom/oracle/graal/python/runtime/NFIBz2Support$Bz2NativeFunctions;
            iconst_0
            anewarray java.lang.Object
            invokevirtual com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction.call:(Lcom/oracle/graal/python/runtime/NativeLibrary$TypedNativeLibrary;Ljava/lang/Enum;[Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 1 // com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction invokeNode
        end local 0 // com.oracle.graal.python.runtime.NFIBz2Support this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lcom/oracle/graal/python/runtime/NFIBz2Support;
            0    1     1  invokeNode  Lcom/oracle/graal/python/runtime/NativeLibrary$InvokeNativeFunction;
    MethodParameters:
            Name  Flags
      invokeNode  

  public void deallocateStream(java.lang.Object, com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction);
    descriptor: (Ljava/lang/Object;Lcom/oracle/graal/python/runtime/NativeLibrary$InvokeNativeFunction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // com.oracle.graal.python.runtime.NFIBz2Support this
        start local 1 // java.lang.Object bzst
        start local 2 // com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction invokeNode
         0: .line 268
            aload 2 /* invokeNode */
            aload 0 /* this */
            getfield com.oracle.graal.python.runtime.NFIBz2Support.typedNativeLib:Lcom/oracle/graal/python/runtime/NativeLibrary$TypedNativeLibrary;
            getstatic com.oracle.graal.python.runtime.NFIBz2Support$Bz2NativeFunctions.bz_free_stream:Lcom/oracle/graal/python/runtime/NFIBz2Support$Bz2NativeFunctions;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* bzst */
            aastore
            invokevirtual com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction.call:(Lcom/oracle/graal/python/runtime/NativeLibrary$TypedNativeLibrary;Ljava/lang/Enum;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 269
            return
        end local 2 // com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction invokeNode
        end local 1 // java.lang.Object bzst
        end local 0 // com.oracle.graal.python.runtime.NFIBz2Support this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/oracle/graal/python/runtime/NFIBz2Support;
            0    2     1        bzst  Ljava/lang/Object;
            0    2     2  invokeNode  Lcom/oracle/graal/python/runtime/NativeLibrary$InvokeNativeFunction;
    MethodParameters:
            Name  Flags
      bzst        
      invokeNode  

  public long getNextInIndex(java.lang.Object, com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction);
    descriptor: (Ljava/lang/Object;Lcom/oracle/graal/python/runtime/NativeLibrary$InvokeNativeFunction;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // com.oracle.graal.python.runtime.NFIBz2Support this
        start local 1 // java.lang.Object bzst
        start local 2 // com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction invokeNode
         0: .line 278
            aload 2 /* invokeNode */
            aload 0 /* this */
            getfield com.oracle.graal.python.runtime.NFIBz2Support.typedNativeLib:Lcom/oracle/graal/python/runtime/NativeLibrary$TypedNativeLibrary;
            getstatic com.oracle.graal.python.runtime.NFIBz2Support$Bz2NativeFunctions.bz_get_next_in_index:Lcom/oracle/graal/python/runtime/NFIBz2Support$Bz2NativeFunctions;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* bzst */
            aastore
            invokevirtual com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction.callLong:(Lcom/oracle/graal/python/runtime/NativeLibrary$TypedNativeLibrary;Ljava/lang/Enum;[Ljava/lang/Object;)J
            lreturn
        end local 2 // com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction invokeNode
        end local 1 // java.lang.Object bzst
        end local 0 // com.oracle.graal.python.runtime.NFIBz2Support this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lcom/oracle/graal/python/runtime/NFIBz2Support;
            0    1     1        bzst  Ljava/lang/Object;
            0    1     2  invokeNode  Lcom/oracle/graal/python/runtime/NativeLibrary$InvokeNativeFunction;
    MethodParameters:
            Name  Flags
      bzst        
      invokeNode  

  public long getBzsAvailInReal(java.lang.Object, com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction);
    descriptor: (Ljava/lang/Object;Lcom/oracle/graal/python/runtime/NativeLibrary$InvokeNativeFunction;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // com.oracle.graal.python.runtime.NFIBz2Support this
        start local 1 // java.lang.Object bzst
        start local 2 // com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction invokeNode
         0: .line 288
            aload 2 /* invokeNode */
            aload 0 /* this */
            getfield com.oracle.graal.python.runtime.NFIBz2Support.typedNativeLib:Lcom/oracle/graal/python/runtime/NativeLibrary$TypedNativeLibrary;
            getstatic com.oracle.graal.python.runtime.NFIBz2Support$Bz2NativeFunctions.bz_get_bzs_avail_in_real:Lcom/oracle/graal/python/runtime/NFIBz2Support$Bz2NativeFunctions;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* bzst */
            aastore
            invokevirtual com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction.callLong:(Lcom/oracle/graal/python/runtime/NativeLibrary$TypedNativeLibrary;Ljava/lang/Enum;[Ljava/lang/Object;)J
            lreturn
        end local 2 // com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction invokeNode
        end local 1 // java.lang.Object bzst
        end local 0 // com.oracle.graal.python.runtime.NFIBz2Support this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lcom/oracle/graal/python/runtime/NFIBz2Support;
            0    1     1        bzst  Ljava/lang/Object;
            0    1     2  invokeNode  Lcom/oracle/graal/python/runtime/NativeLibrary$InvokeNativeFunction;
    MethodParameters:
            Name  Flags
      bzst        
      invokeNode  

  public void setBzsAvailInReal(java.lang.Object, long, com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction);
    descriptor: (Ljava/lang/Object;JLcom/oracle/graal/python/runtime/NativeLibrary$InvokeNativeFunction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=5, args_size=4
        start local 0 // com.oracle.graal.python.runtime.NFIBz2Support this
        start local 1 // java.lang.Object bzst
        start local 2 // long v
        start local 4 // com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction invokeNode
         0: .line 299
            aload 4 /* invokeNode */
            aload 0 /* this */
            getfield com.oracle.graal.python.runtime.NFIBz2Support.typedNativeLib:Lcom/oracle/graal/python/runtime/NativeLibrary$TypedNativeLibrary;
            getstatic com.oracle.graal.python.runtime.NFIBz2Support$Bz2NativeFunctions.bz_set_bzs_avail_in_real:Lcom/oracle/graal/python/runtime/NFIBz2Support$Bz2NativeFunctions;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* bzst */
            aastore
            dup
            iconst_1
            lload 2 /* v */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokevirtual com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction.call:(Lcom/oracle/graal/python/runtime/NativeLibrary$TypedNativeLibrary;Ljava/lang/Enum;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 300
            return
        end local 4 // com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction invokeNode
        end local 2 // long v
        end local 1 // java.lang.Object bzst
        end local 0 // com.oracle.graal.python.runtime.NFIBz2Support this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/oracle/graal/python/runtime/NFIBz2Support;
            0    2     1        bzst  Ljava/lang/Object;
            0    2     2           v  J
            0    2     4  invokeNode  Lcom/oracle/graal/python/runtime/NativeLibrary$InvokeNativeFunction;
    MethodParameters:
            Name  Flags
      bzst        
      v           
      invokeNode  

  public long getOutputBufferSize(java.lang.Object, com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction);
    descriptor: (Ljava/lang/Object;Lcom/oracle/graal/python/runtime/NativeLibrary$InvokeNativeFunction;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // com.oracle.graal.python.runtime.NFIBz2Support this
        start local 1 // java.lang.Object bzst
        start local 2 // com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction invokeNode
         0: .line 309
            aload 2 /* invokeNode */
            aload 0 /* this */
            getfield com.oracle.graal.python.runtime.NFIBz2Support.typedNativeLib:Lcom/oracle/graal/python/runtime/NativeLibrary$TypedNativeLibrary;
            getstatic com.oracle.graal.python.runtime.NFIBz2Support$Bz2NativeFunctions.bz_get_output_buffer_size:Lcom/oracle/graal/python/runtime/NFIBz2Support$Bz2NativeFunctions;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* bzst */
            aastore
            invokevirtual com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction.callLong:(Lcom/oracle/graal/python/runtime/NativeLibrary$TypedNativeLibrary;Ljava/lang/Enum;[Ljava/lang/Object;)J
            lreturn
        end local 2 // com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction invokeNode
        end local 1 // java.lang.Object bzst
        end local 0 // com.oracle.graal.python.runtime.NFIBz2Support this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lcom/oracle/graal/python/runtime/NFIBz2Support;
            0    1     1        bzst  Ljava/lang/Object;
            0    1     2  invokeNode  Lcom/oracle/graal/python/runtime/NativeLibrary$InvokeNativeFunction;
    MethodParameters:
            Name  Flags
      bzst        
      invokeNode  

  public void getOutputBuffer(java.lang.Object, java.lang.Object, com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/graal/python/runtime/NativeLibrary$InvokeNativeFunction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // com.oracle.graal.python.runtime.NFIBz2Support this
        start local 1 // java.lang.Object bzst
        start local 2 // java.lang.Object dest
        start local 3 // com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction invokeNode
         0: .line 320
            aload 3 /* invokeNode */
            aload 0 /* this */
            getfield com.oracle.graal.python.runtime.NFIBz2Support.typedNativeLib:Lcom/oracle/graal/python/runtime/NativeLibrary$TypedNativeLibrary;
            getstatic com.oracle.graal.python.runtime.NFIBz2Support$Bz2NativeFunctions.bz_get_output_buffer:Lcom/oracle/graal/python/runtime/NFIBz2Support$Bz2NativeFunctions;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* bzst */
            aastore
            dup
            iconst_1
            aload 2 /* dest */
            aastore
            invokevirtual com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction.call:(Lcom/oracle/graal/python/runtime/NativeLibrary$TypedNativeLibrary;Ljava/lang/Enum;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 321
            return
        end local 3 // com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction invokeNode
        end local 2 // java.lang.Object dest
        end local 1 // java.lang.Object bzst
        end local 0 // com.oracle.graal.python.runtime.NFIBz2Support this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/oracle/graal/python/runtime/NFIBz2Support;
            0    2     1        bzst  Ljava/lang/Object;
            0    2     2        dest  Ljava/lang/Object;
            0    2     3  invokeNode  Lcom/oracle/graal/python/runtime/NativeLibrary$InvokeNativeFunction;
    MethodParameters:
            Name  Flags
      bzst        
      dest        
      invokeNode  

  public int compressInit(java.lang.Object, int, com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction);
    descriptor: (Ljava/lang/Object;ILcom/oracle/graal/python/runtime/NativeLibrary$InvokeNativeFunction;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // com.oracle.graal.python.runtime.NFIBz2Support this
        start local 1 // java.lang.Object bzst
        start local 2 // int compresslevel
        start local 3 // com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction invokeNode
         0: .line 331
            aload 3 /* invokeNode */
            aload 0 /* this */
            getfield com.oracle.graal.python.runtime.NFIBz2Support.typedNativeLib:Lcom/oracle/graal/python/runtime/NativeLibrary$TypedNativeLibrary;
            getstatic com.oracle.graal.python.runtime.NFIBz2Support$Bz2NativeFunctions.bz_compressor_init:Lcom/oracle/graal/python/runtime/NFIBz2Support$Bz2NativeFunctions;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* bzst */
            aastore
            dup
            iconst_1
            iload 2 /* compresslevel */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction.callInt:(Lcom/oracle/graal/python/runtime/NativeLibrary$TypedNativeLibrary;Ljava/lang/Enum;[Ljava/lang/Object;)I
            ireturn
        end local 3 // com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction invokeNode
        end local 2 // int compresslevel
        end local 1 // java.lang.Object bzst
        end local 0 // com.oracle.graal.python.runtime.NFIBz2Support this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/oracle/graal/python/runtime/NFIBz2Support;
            0    1     1           bzst  Ljava/lang/Object;
            0    1     2  compresslevel  I
            0    1     3     invokeNode  Lcom/oracle/graal/python/runtime/NativeLibrary$InvokeNativeFunction;
    MethodParameters:
               Name  Flags
      bzst           
      compresslevel  
      invokeNode     

  public int compress(java.lang.Object, java.lang.Object, long, int, long, com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;JIJLcom/oracle/graal/python/runtime/NativeLibrary$InvokeNativeFunction;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=9, args_size=7
        start local 0 // com.oracle.graal.python.runtime.NFIBz2Support this
        start local 1 // java.lang.Object bzst
        start local 2 // java.lang.Object data
        start local 3 // long len
        start local 5 // int action
        start local 6 // long bufsize
        start local 8 // com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction invokeNode
         0: .line 345
            aload 8 /* invokeNode */
            aload 0 /* this */
            getfield com.oracle.graal.python.runtime.NFIBz2Support.typedNativeLib:Lcom/oracle/graal/python/runtime/NativeLibrary$TypedNativeLibrary;
            getstatic com.oracle.graal.python.runtime.NFIBz2Support$Bz2NativeFunctions.bz_compress:Lcom/oracle/graal/python/runtime/NFIBz2Support$Bz2NativeFunctions;
            iconst_5
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* bzst */
            aastore
            dup
            iconst_1
            aload 2 /* data */
            aastore
            dup
            iconst_2
            lload 3 /* len */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_3
            iload 5 /* action */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_4
            lload 6 /* bufsize */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokevirtual com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction.callInt:(Lcom/oracle/graal/python/runtime/NativeLibrary$TypedNativeLibrary;Ljava/lang/Enum;[Ljava/lang/Object;)I
            ireturn
        end local 8 // com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction invokeNode
        end local 6 // long bufsize
        end local 5 // int action
        end local 3 // long len
        end local 2 // java.lang.Object data
        end local 1 // java.lang.Object bzst
        end local 0 // com.oracle.graal.python.runtime.NFIBz2Support this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lcom/oracle/graal/python/runtime/NFIBz2Support;
            0    1     1        bzst  Ljava/lang/Object;
            0    1     2        data  Ljava/lang/Object;
            0    1     3         len  J
            0    1     5      action  I
            0    1     6     bufsize  J
            0    1     8  invokeNode  Lcom/oracle/graal/python/runtime/NativeLibrary$InvokeNativeFunction;
    MethodParameters:
            Name  Flags
      bzst        
      data        
      len         
      action      
      bufsize     
      invokeNode  

  public int decompressInit(java.lang.Object, com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction);
    descriptor: (Ljava/lang/Object;Lcom/oracle/graal/python/runtime/NativeLibrary$InvokeNativeFunction;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // com.oracle.graal.python.runtime.NFIBz2Support this
        start local 1 // java.lang.Object bzst
        start local 2 // com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction invokeNode
         0: .line 355
            aload 2 /* invokeNode */
            aload 0 /* this */
            getfield com.oracle.graal.python.runtime.NFIBz2Support.typedNativeLib:Lcom/oracle/graal/python/runtime/NativeLibrary$TypedNativeLibrary;
            getstatic com.oracle.graal.python.runtime.NFIBz2Support$Bz2NativeFunctions.bz_decompress_init:Lcom/oracle/graal/python/runtime/NFIBz2Support$Bz2NativeFunctions;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* bzst */
            aastore
            invokevirtual com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction.callInt:(Lcom/oracle/graal/python/runtime/NativeLibrary$TypedNativeLibrary;Ljava/lang/Enum;[Ljava/lang/Object;)I
            ireturn
        end local 2 // com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction invokeNode
        end local 1 // java.lang.Object bzst
        end local 0 // com.oracle.graal.python.runtime.NFIBz2Support this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lcom/oracle/graal/python/runtime/NFIBz2Support;
            0    1     1        bzst  Ljava/lang/Object;
            0    1     2  invokeNode  Lcom/oracle/graal/python/runtime/NativeLibrary$InvokeNativeFunction;
    MethodParameters:
            Name  Flags
      bzst        
      invokeNode  

  public int decompress(java.lang.Object, java.lang.Object, long, long, long, long, com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;JJJJLcom/oracle/graal/python/runtime/NativeLibrary$InvokeNativeFunction;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=12, args_size=8
        start local 0 // com.oracle.graal.python.runtime.NFIBz2Support this
        start local 1 // java.lang.Object bzst
        start local 2 // java.lang.Object input_buffer
        start local 3 // long offset
        start local 5 // long max_length
        start local 7 // long bufsize
        start local 9 // long bzs_avail_in_real
        start local 11 // com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction invokeNode
         0: .line 370
            aload 11 /* invokeNode */
            aload 0 /* this */
            getfield com.oracle.graal.python.runtime.NFIBz2Support.typedNativeLib:Lcom/oracle/graal/python/runtime/NativeLibrary$TypedNativeLibrary;
            getstatic com.oracle.graal.python.runtime.NFIBz2Support$Bz2NativeFunctions.bz_decompress:Lcom/oracle/graal/python/runtime/NFIBz2Support$Bz2NativeFunctions;
            bipush 6
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* bzst */
            aastore
            dup
            iconst_1
            aload 2 /* input_buffer */
            aastore
            dup
            iconst_2
            lload 3 /* offset */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_3
            lload 5 /* max_length */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_4
            lload 7 /* bufsize */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_5
            lload 9 /* bzs_avail_in_real */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokevirtual com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction.callInt:(Lcom/oracle/graal/python/runtime/NativeLibrary$TypedNativeLibrary;Ljava/lang/Enum;[Ljava/lang/Object;)I
            ireturn
        end local 11 // com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction invokeNode
        end local 9 // long bzs_avail_in_real
        end local 7 // long bufsize
        end local 5 // long max_length
        end local 3 // long offset
        end local 2 // java.lang.Object input_buffer
        end local 1 // java.lang.Object bzst
        end local 0 // com.oracle.graal.python.runtime.NFIBz2Support this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    1     0               this  Lcom/oracle/graal/python/runtime/NFIBz2Support;
            0    1     1               bzst  Ljava/lang/Object;
            0    1     2       input_buffer  Ljava/lang/Object;
            0    1     3             offset  J
            0    1     5         max_length  J
            0    1     7            bufsize  J
            0    1     9  bzs_avail_in_real  J
            0    1    11         invokeNode  Lcom/oracle/graal/python/runtime/NativeLibrary$InvokeNativeFunction;
    MethodParameters:
                   Name  Flags
      bzst               
      input_buffer       
      offset             
      max_length         
      bufsize            
      bzs_avail_in_real  
      invokeNode         
}
SourceFile: "NFIBz2Support.java"
NestMembers:
  com.oracle.graal.python.runtime.NFIBz2Support$Bz2NativeFunctions  com.oracle.graal.python.runtime.NFIBz2Support$Pointer  com.oracle.graal.python.runtime.NFIBz2Support$PointerReleaseCallback
InnerClasses:
  final Bz2NativeFunctions = com.oracle.graal.python.runtime.NFIBz2Support$Bz2NativeFunctions of com.oracle.graal.python.runtime.NFIBz2Support
  public Pointer = com.oracle.graal.python.runtime.NFIBz2Support$Pointer of com.oracle.graal.python.runtime.NFIBz2Support
  PointerReleaseCallback = com.oracle.graal.python.runtime.NFIBz2Support$PointerReleaseCallback of com.oracle.graal.python.runtime.NFIBz2Support
  public abstract InvokeNativeFunction = com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction of com.oracle.graal.python.runtime.NativeLibrary
  final NFIBackend = com.oracle.graal.python.runtime.NativeLibrary$NFIBackend of com.oracle.graal.python.runtime.NativeLibrary
  abstract NativeFunction = com.oracle.graal.python.runtime.NativeLibrary$NativeFunction of com.oracle.graal.python.runtime.NativeLibrary
  public final TypedNativeLibrary = com.oracle.graal.python.runtime.NativeLibrary$TypedNativeLibrary of com.oracle.graal.python.runtime.NativeLibrary
  public abstract CompilationFinal = com.oracle.truffle.api.CompilerDirectives$CompilationFinal of com.oracle.truffle.api.CompilerDirectives