class org.apache.commons.compress.archivers.sevenz.BoundedSeekableByteChannelInputStream extends java.io.InputStream
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.apache.commons.compress.archivers.sevenz.BoundedSeekableByteChannelInputStream
  super_class: java.io.InputStream
{
  private static final int MAX_BUF_LEN;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8192

  private final java.nio.ByteBuffer buffer;
    descriptor: Ljava/nio/ByteBuffer;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.nio.channels.SeekableByteChannel channel;
    descriptor: Ljava/nio/channels/SeekableByteChannel;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private long bytesRemaining;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  public void <init>(java.nio.channels.SeekableByteChannel, long);
    descriptor: (Ljava/nio/channels/SeekableByteChannel;J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.apache.commons.compress.archivers.sevenz.BoundedSeekableByteChannelInputStream this
        start local 1 // java.nio.channels.SeekableByteChannel channel
        start local 2 // long size
         0: .line 31
            aload 0 /* this */
            invokespecial java.io.InputStream.<init>:()V
         1: .line 33
            aload 0 /* this */
            aload 1 /* channel */
            putfield org.apache.commons.compress.archivers.sevenz.BoundedSeekableByteChannelInputStream.channel:Ljava/nio/channels/SeekableByteChannel;
         2: .line 34
            aload 0 /* this */
            lload 2 /* size */
            putfield org.apache.commons.compress.archivers.sevenz.BoundedSeekableByteChannelInputStream.bytesRemaining:J
         3: .line 35
            lload 2 /* size */
            ldc 8192
            lcmp
            ifge 6
            lload 2 /* size */
            lconst_0
            lcmp
            ifle 6
         4: .line 36
            aload 0 /* this */
            lload 2 /* size */
            l2i
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            putfield org.apache.commons.compress.archivers.sevenz.BoundedSeekableByteChannelInputStream.buffer:Ljava/nio/ByteBuffer;
         5: .line 37
            goto 7
         6: .line 38
      StackMap locals: org.apache.commons.compress.archivers.sevenz.BoundedSeekableByteChannelInputStream java.nio.channels.SeekableByteChannel long
      StackMap stack:
            aload 0 /* this */
            sipush 8192
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            putfield org.apache.commons.compress.archivers.sevenz.BoundedSeekableByteChannelInputStream.buffer:Ljava/nio/ByteBuffer;
         7: .line 40
      StackMap locals:
      StackMap stack:
            return
        end local 2 // long size
        end local 1 // java.nio.channels.SeekableByteChannel channel
        end local 0 // org.apache.commons.compress.archivers.sevenz.BoundedSeekableByteChannelInputStream this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lorg/apache/commons/compress/archivers/sevenz/BoundedSeekableByteChannelInputStream;
            0    8     1  channel  Ljava/nio/channels/SeekableByteChannel;
            0    8     2     size  J
    MethodParameters:
         Name  Flags
      channel  final
      size     final

  public int read();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.apache.commons.compress.archivers.sevenz.BoundedSeekableByteChannelInputStream this
         0: .line 44
            aload 0 /* this */
            getfield org.apache.commons.compress.archivers.sevenz.BoundedSeekableByteChannelInputStream.bytesRemaining:J
            lconst_0
            lcmp
            ifle 6
         1: .line 45
            aload 0 /* this */
            dup
            getfield org.apache.commons.compress.archivers.sevenz.BoundedSeekableByteChannelInputStream.bytesRemaining:J
            lconst_1
            lsub
            putfield org.apache.commons.compress.archivers.sevenz.BoundedSeekableByteChannelInputStream.bytesRemaining:J
         2: .line 46
            aload 0 /* this */
            iconst_1
            invokevirtual org.apache.commons.compress.archivers.sevenz.BoundedSeekableByteChannelInputStream.read:(I)I
            istore 1 /* read */
        start local 1 // int read
         3: .line 47
            iload 1 /* read */
            ifge 5
         4: .line 48
            iload 1 /* read */
            ireturn
         5: .line 50
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.compress.archivers.sevenz.BoundedSeekableByteChannelInputStream.buffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.get:()B
            sipush 255
            iand
            ireturn
        end local 1 // int read
         6: .line 52
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        end local 0 // org.apache.commons.compress.archivers.sevenz.BoundedSeekableByteChannelInputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/apache/commons/compress/archivers/sevenz/BoundedSeekableByteChannelInputStream;
            3    6     1  read  I
    Exceptions:
      throws java.io.IOException

  public int read(byte[], int, int);
    descriptor: ([BII)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // org.apache.commons.compress.archivers.sevenz.BoundedSeekableByteChannelInputStream this
        start local 1 // byte[] b
        start local 2 // int off
        start local 3 // int len
         0: .line 57
            aload 0 /* this */
            getfield org.apache.commons.compress.archivers.sevenz.BoundedSeekableByteChannelInputStream.bytesRemaining:J
            lconst_0
            lcmp
            ifne 2
         1: .line 58
            iconst_m1
            ireturn
         2: .line 60
      StackMap locals:
      StackMap stack:
            iload 3 /* len */
            istore 4 /* bytesToRead */
        start local 4 // int bytesToRead
         3: .line 61
            iload 4 /* bytesToRead */
            i2l
            aload 0 /* this */
            getfield org.apache.commons.compress.archivers.sevenz.BoundedSeekableByteChannelInputStream.bytesRemaining:J
            lcmp
            ifle 5
         4: .line 62
            aload 0 /* this */
            getfield org.apache.commons.compress.archivers.sevenz.BoundedSeekableByteChannelInputStream.bytesRemaining:J
            l2i
            istore 4 /* bytesToRead */
         5: .line 66
      StackMap locals: int
      StackMap stack:
            iload 4 /* bytesToRead */
            aload 0 /* this */
            getfield org.apache.commons.compress.archivers.sevenz.BoundedSeekableByteChannelInputStream.buffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.capacity:()I
            if_icmpgt 9
         6: .line 67
            aload 0 /* this */
            getfield org.apache.commons.compress.archivers.sevenz.BoundedSeekableByteChannelInputStream.buffer:Ljava/nio/ByteBuffer;
            astore 6 /* buf */
        start local 6 // java.nio.ByteBuffer buf
         7: .line 68
            aload 0 /* this */
            iload 4 /* bytesToRead */
            invokevirtual org.apache.commons.compress.archivers.sevenz.BoundedSeekableByteChannelInputStream.read:(I)I
            istore 5 /* bytesRead */
        start local 5 // int bytesRead
         8: .line 69
            goto 12
        end local 6 // java.nio.ByteBuffer buf
        end local 5 // int bytesRead
         9: .line 70
      StackMap locals:
      StackMap stack:
            iload 4 /* bytesToRead */
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            astore 6 /* buf */
        start local 6 // java.nio.ByteBuffer buf
        10: .line 71
            aload 0 /* this */
            getfield org.apache.commons.compress.archivers.sevenz.BoundedSeekableByteChannelInputStream.channel:Ljava/nio/channels/SeekableByteChannel;
            aload 6 /* buf */
            invokeinterface java.nio.channels.SeekableByteChannel.read:(Ljava/nio/ByteBuffer;)I
            istore 5 /* bytesRead */
        start local 5 // int bytesRead
        11: .line 72
            aload 6 /* buf */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
        12: .line 74
      StackMap locals: int java.nio.ByteBuffer
      StackMap stack:
            iload 5 /* bytesRead */
            iflt 15
        13: .line 75
            aload 6 /* buf */
            aload 1 /* b */
            iload 2 /* off */
            iload 5 /* bytesRead */
            invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
            pop
        14: .line 76
            aload 0 /* this */
            dup
            getfield org.apache.commons.compress.archivers.sevenz.BoundedSeekableByteChannelInputStream.bytesRemaining:J
            iload 5 /* bytesRead */
            i2l
            lsub
            putfield org.apache.commons.compress.archivers.sevenz.BoundedSeekableByteChannelInputStream.bytesRemaining:J
        15: .line 78
      StackMap locals:
      StackMap stack:
            iload 5 /* bytesRead */
            ireturn
        end local 6 // java.nio.ByteBuffer buf
        end local 5 // int bytesRead
        end local 4 // int bytesToRead
        end local 3 // int len
        end local 2 // int off
        end local 1 // byte[] b
        end local 0 // org.apache.commons.compress.archivers.sevenz.BoundedSeekableByteChannelInputStream this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   16     0         this  Lorg/apache/commons/compress/archivers/sevenz/BoundedSeekableByteChannelInputStream;
            0   16     1            b  [B
            0   16     2          off  I
            0   16     3          len  I
            3   16     4  bytesToRead  I
            8    9     5    bytesRead  I
           11   16     5    bytesRead  I
            7    9     6          buf  Ljava/nio/ByteBuffer;
           10   16     6          buf  Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      b     final
      off   final
      len   final

  private int read(int);
    descriptor: (I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.apache.commons.compress.archivers.sevenz.BoundedSeekableByteChannelInputStream this
        start local 1 // int len
         0: .line 82
            aload 0 /* this */
            getfield org.apache.commons.compress.archivers.sevenz.BoundedSeekableByteChannelInputStream.buffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.rewind:()Ljava/nio/Buffer;
            iload 1 /* len */
            invokevirtual java.nio.Buffer.limit:(I)Ljava/nio/Buffer;
            pop
         1: .line 83
            aload 0 /* this */
            getfield org.apache.commons.compress.archivers.sevenz.BoundedSeekableByteChannelInputStream.channel:Ljava/nio/channels/SeekableByteChannel;
            aload 0 /* this */
            getfield org.apache.commons.compress.archivers.sevenz.BoundedSeekableByteChannelInputStream.buffer:Ljava/nio/ByteBuffer;
            invokeinterface java.nio.channels.SeekableByteChannel.read:(Ljava/nio/ByteBuffer;)I
            istore 2 /* read */
        start local 2 // int read
         2: .line 84
            aload 0 /* this */
            getfield org.apache.commons.compress.archivers.sevenz.BoundedSeekableByteChannelInputStream.buffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
         3: .line 85
            iload 2 /* read */
            ireturn
        end local 2 // int read
        end local 1 // int len
        end local 0 // org.apache.commons.compress.archivers.sevenz.BoundedSeekableByteChannelInputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/commons/compress/archivers/sevenz/BoundedSeekableByteChannelInputStream;
            0    4     1   len  I
            2    4     2  read  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      len   

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.apache.commons.compress.archivers.sevenz.BoundedSeekableByteChannelInputStream this
         0: .line 91
            return
        end local 0 // org.apache.commons.compress.archivers.sevenz.BoundedSeekableByteChannelInputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/compress/archivers/sevenz/BoundedSeekableByteChannelInputStream;
}
SourceFile: "BoundedSeekableByteChannelInputStream.java"