public class org.apache.cassandra.io.util.CompressedChunkReader$Mmap extends org.apache.cassandra.io.util.CompressedChunkReader
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.io.util.CompressedChunkReader$Mmap
  super_class: org.apache.cassandra.io.util.CompressedChunkReader
{
  protected final org.apache.cassandra.io.util.MmappedRegions regions;
    descriptor: Lorg/apache/cassandra/io/util/MmappedRegions;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 171
            ldc Lorg/apache/cassandra/io/util/CompressedChunkReader;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.apache.cassandra.io.util.CompressedChunkReader$Mmap.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.apache.cassandra.io.util.ChannelProxy, org.apache.cassandra.io.compress.CompressionMetadata, org.apache.cassandra.io.util.MmappedRegions);
    descriptor: (Lorg/apache/cassandra/io/util/ChannelProxy;Lorg/apache/cassandra/io/compress/CompressionMetadata;Lorg/apache/cassandra/io/util/MmappedRegions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.apache.cassandra.io.util.CompressedChunkReader$Mmap this
        start local 1 // org.apache.cassandra.io.util.ChannelProxy channel
        start local 2 // org.apache.cassandra.io.compress.CompressionMetadata metadata
        start local 3 // org.apache.cassandra.io.util.MmappedRegions regions
         0: .line 177
            aload 0 /* this */
            aload 1 /* channel */
            aload 2 /* metadata */
            invokespecial org.apache.cassandra.io.util.CompressedChunkReader.<init>:(Lorg/apache/cassandra/io/util/ChannelProxy;Lorg/apache/cassandra/io/compress/CompressionMetadata;)V
         1: .line 178
            aload 0 /* this */
            aload 3 /* regions */
            putfield org.apache.cassandra.io.util.CompressedChunkReader$Mmap.regions:Lorg/apache/cassandra/io/util/MmappedRegions;
         2: .line 179
            return
        end local 3 // org.apache.cassandra.io.util.MmappedRegions regions
        end local 2 // org.apache.cassandra.io.compress.CompressionMetadata metadata
        end local 1 // org.apache.cassandra.io.util.ChannelProxy channel
        end local 0 // org.apache.cassandra.io.util.CompressedChunkReader$Mmap this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/apache/cassandra/io/util/CompressedChunkReader$Mmap;
            0    3     1   channel  Lorg/apache/cassandra/io/util/ChannelProxy;
            0    3     2  metadata  Lorg/apache/cassandra/io/compress/CompressionMetadata;
            0    3     3   regions  Lorg/apache/cassandra/io/util/MmappedRegions;
    MethodParameters:
          Name  Flags
      channel   
      metadata  
      regions   

  public void readChunk(long, java.nio.ByteBuffer);
    descriptor: (JLjava/nio/ByteBuffer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=12, args_size=3
        start local 0 // org.apache.cassandra.io.util.CompressedChunkReader$Mmap this
        start local 1 // long position
        start local 3 // java.nio.ByteBuffer uncompressed
         0: .line 187
            getstatic org.apache.cassandra.io.util.CompressedChunkReader$Mmap.$assertionsDisabled:Z
            ifne 1
            lload 1 /* position */
            aload 3 /* uncompressed */
            invokevirtual java.nio.ByteBuffer.capacity:()I
            ineg
            i2l
            land
            lload 1 /* position */
            lcmp
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 188
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.io.util.CompressedChunkReader$Mmap.$assertionsDisabled:Z
            ifne 2
            lload 1 /* position */
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.CompressedChunkReader$Mmap.fileLength:J
            lcmp
            ifle 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 190
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.CompressedChunkReader$Mmap.metadata:Lorg/apache/cassandra/io/compress/CompressionMetadata;
            lload 1 /* position */
            invokevirtual org.apache.cassandra.io.compress.CompressionMetadata.chunkFor:(J)Lorg/apache/cassandra/io/compress/CompressionMetadata$Chunk;
            astore 4 /* chunk */
        start local 4 // org.apache.cassandra.io.compress.CompressionMetadata$Chunk chunk
         3: .line 192
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.CompressedChunkReader$Mmap.regions:Lorg/apache/cassandra/io/util/MmappedRegions;
            aload 4 /* chunk */
            getfield org.apache.cassandra.io.compress.CompressionMetadata$Chunk.offset:J
            invokevirtual org.apache.cassandra.io.util.MmappedRegions.floor:(J)Lorg/apache/cassandra/io/util/MmappedRegions$Region;
            astore 5 /* region */
        start local 5 // org.apache.cassandra.io.util.MmappedRegions$Region region
         4: .line 193
            aload 5 /* region */
            invokevirtual org.apache.cassandra.io.util.MmappedRegions$Region.offset:()J
            lstore 6 /* segmentOffset */
        start local 6 // long segmentOffset
         5: .line 194
            aload 4 /* chunk */
            getfield org.apache.cassandra.io.compress.CompressionMetadata$Chunk.offset:J
            lload 6 /* segmentOffset */
            lsub
            invokestatic com.google.common.primitives.Ints.checkedCast:(J)I
            istore 8 /* chunkOffset */
        start local 8 // int chunkOffset
         6: .line 195
            aload 5 /* region */
            invokevirtual org.apache.cassandra.io.util.MmappedRegions$Region.buffer:()Ljava/nio/ByteBuffer;
            astore 9 /* compressedChunk */
        start local 9 // java.nio.ByteBuffer compressedChunk
         7: .line 197
            aload 9 /* compressedChunk */
            iload 8 /* chunkOffset */
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            iload 8 /* chunkOffset */
            aload 4 /* chunk */
            getfield org.apache.cassandra.io.compress.CompressionMetadata$Chunk.length:I
            iadd
            invokevirtual java.nio.Buffer.limit:(I)Ljava/nio/Buffer;
            pop
         8: .line 199
            aload 3 /* uncompressed */
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
            pop
         9: .line 201
            aload 0 /* this */
            invokevirtual org.apache.cassandra.io.util.CompressedChunkReader$Mmap.shouldCheckCrc:()Z
            ifeq 15
        10: .line 203
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.CompressedChunkReader$Mmap.metadata:Lorg/apache/cassandra/io/compress/CompressionMetadata;
            getfield org.apache.cassandra.io.compress.CompressionMetadata.checksumType:Lorg/apache/cassandra/utils/ChecksumType;
            aload 9 /* compressedChunk */
            invokevirtual org.apache.cassandra.utils.ChecksumType.of:(Ljava/nio/ByteBuffer;)J
            l2i
            istore 10 /* checksum */
        start local 10 // int checksum
        11: .line 205
            aload 9 /* compressedChunk */
            aload 9 /* compressedChunk */
            invokevirtual java.nio.ByteBuffer.capacity:()I
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
        12: .line 206
            aload 9 /* compressedChunk */
            invokevirtual java.nio.ByteBuffer.getInt:()I
            iload 10 /* checksum */
            if_icmpeq 14
        13: .line 207
            new org.apache.cassandra.io.compress.CorruptBlockException
            dup
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.CompressedChunkReader$Mmap.channel:Lorg/apache/cassandra/io/util/ChannelProxy;
            invokevirtual org.apache.cassandra.io.util.ChannelProxy.filePath:()Ljava/lang/String;
            aload 4 /* chunk */
            invokespecial org.apache.cassandra.io.compress.CorruptBlockException.<init>:(Ljava/lang/String;Lorg/apache/cassandra/io/compress/CompressionMetadata$Chunk;)V
            athrow
        14: .line 209
      StackMap locals: org.apache.cassandra.io.util.CompressedChunkReader$Mmap long java.nio.ByteBuffer org.apache.cassandra.io.compress.CompressionMetadata$Chunk org.apache.cassandra.io.util.MmappedRegions$Region long int java.nio.ByteBuffer int
      StackMap stack:
            aload 9 /* compressedChunk */
            iload 8 /* chunkOffset */
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            iload 8 /* chunkOffset */
            aload 4 /* chunk */
            getfield org.apache.cassandra.io.compress.CompressionMetadata$Chunk.length:I
            iadd
            invokevirtual java.nio.Buffer.limit:(I)Ljava/nio/Buffer;
            pop
        end local 10 // int checksum
        15: .line 214
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.CompressedChunkReader$Mmap.metadata:Lorg/apache/cassandra/io/compress/CompressionMetadata;
            invokevirtual org.apache.cassandra.io.compress.CompressionMetadata.compressor:()Lorg/apache/cassandra/io/compress/ICompressor;
            aload 9 /* compressedChunk */
            aload 3 /* uncompressed */
            invokeinterface org.apache.cassandra.io.compress.ICompressor.uncompress:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)V
        16: .line 215
            goto 22
        17: .line 216
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 10 /* e */
        start local 10 // java.io.IOException e
        18: .line 218
            new org.apache.cassandra.io.compress.CorruptBlockException
            dup
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.CompressedChunkReader$Mmap.channel:Lorg/apache/cassandra/io/util/ChannelProxy;
            invokevirtual org.apache.cassandra.io.util.ChannelProxy.filePath:()Ljava/lang/String;
            aload 4 /* chunk */
            aload 10 /* e */
            invokespecial org.apache.cassandra.io.compress.CorruptBlockException.<init>:(Ljava/lang/String;Lorg/apache/cassandra/io/compress/CompressionMetadata$Chunk;Ljava/lang/Throwable;)V
            athrow
        end local 10 // java.io.IOException e
        19: .line 221
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 11
        20: .line 222
            aload 3 /* uncompressed */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
        21: .line 223
            aload 11
            athrow
        22: .line 222
      StackMap locals:
      StackMap stack:
            aload 3 /* uncompressed */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
        end local 9 // java.nio.ByteBuffer compressedChunk
        end local 8 // int chunkOffset
        end local 6 // long segmentOffset
        end local 5 // org.apache.cassandra.io.util.MmappedRegions$Region region
        end local 4 // org.apache.cassandra.io.compress.CompressionMetadata$Chunk chunk
        23: .line 224
            goto 26
        24: .line 225
      StackMap locals: org.apache.cassandra.io.util.CompressedChunkReader$Mmap long java.nio.ByteBuffer
      StackMap stack: org.apache.cassandra.io.compress.CorruptBlockException
            astore 4 /* e */
        start local 4 // org.apache.cassandra.io.compress.CorruptBlockException e
        25: .line 227
            new org.apache.cassandra.io.sstable.CorruptSSTableException
            dup
            aload 4 /* e */
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.CompressedChunkReader$Mmap.channel:Lorg/apache/cassandra/io/util/ChannelProxy;
            invokevirtual org.apache.cassandra.io.util.ChannelProxy.filePath:()Ljava/lang/String;
            invokespecial org.apache.cassandra.io.sstable.CorruptSSTableException.<init>:(Ljava/lang/Throwable;Ljava/lang/String;)V
            athrow
        end local 4 // org.apache.cassandra.io.compress.CorruptBlockException e
        26: .line 230
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.nio.ByteBuffer uncompressed
        end local 1 // long position
        end local 0 // org.apache.cassandra.io.util.CompressedChunkReader$Mmap this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   27     0             this  Lorg/apache/cassandra/io/util/CompressedChunkReader$Mmap;
            0   27     1         position  J
            0   27     3     uncompressed  Ljava/nio/ByteBuffer;
            3   23     4            chunk  Lorg/apache/cassandra/io/compress/CompressionMetadata$Chunk;
            4   23     5           region  Lorg/apache/cassandra/io/util/MmappedRegions$Region;
            5   23     6    segmentOffset  J
            6   23     8      chunkOffset  I
            7   23     9  compressedChunk  Ljava/nio/ByteBuffer;
           11   15    10         checksum  I
           18   19    10                e  Ljava/io/IOException;
           25   26     4                e  Lorg/apache/cassandra/io/compress/CorruptBlockException;
      Exception table:
        from    to  target  type
          15    16      17  Class java.io.IOException
          15    19      19  any
           0    23      24  Class org.apache.cassandra.io.compress.CorruptBlockException
    MethodParameters:
              Name  Flags
      position      
      uncompressed  

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.util.CompressedChunkReader$Mmap this
         0: .line 234
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.CompressedChunkReader$Mmap.regions:Lorg/apache/cassandra/io/util/MmappedRegions;
            invokevirtual org.apache.cassandra.io.util.MmappedRegions.closeQuietly:()V
         1: .line 235
            aload 0 /* this */
            invokespecial org.apache.cassandra.io.util.CompressedChunkReader.close:()V
         2: .line 236
            return
        end local 0 // org.apache.cassandra.io.util.CompressedChunkReader$Mmap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/cassandra/io/util/CompressedChunkReader$Mmap;
}
SourceFile: "CompressedChunkReader.java"
NestHost: org.apache.cassandra.io.util.CompressedChunkReader
InnerClasses:
  public Chunk = org.apache.cassandra.io.compress.CompressionMetadata$Chunk of org.apache.cassandra.io.compress.CompressionMetadata
  public Mmap = org.apache.cassandra.io.util.CompressedChunkReader$Mmap of org.apache.cassandra.io.util.CompressedChunkReader
  public final Region = org.apache.cassandra.io.util.MmappedRegions$Region of org.apache.cassandra.io.util.MmappedRegions