public class org.apache.cassandra.streaming.compress.CompressedStreamWriter extends org.apache.cassandra.streaming.StreamWriter
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.streaming.compress.CompressedStreamWriter
  super_class: org.apache.cassandra.streaming.StreamWriter
{
  public static final int CHUNK_SIZE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 10485760

  private static final org.slf4j.Logger logger;
    descriptor: Lorg/slf4j/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final org.apache.cassandra.streaming.compress.CompressionInfo compressionInfo;
    descriptor: Lorg/apache/cassandra/streaming/compress/CompressionInfo;
    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 46
            ldc Lorg/apache/cassandra/streaming/compress/CompressedStreamWriter;
            invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
            putstatic org.apache.cassandra.streaming.compress.CompressedStreamWriter.logger:Lorg/slf4j/Logger;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.apache.cassandra.io.sstable.format.SSTableReader, java.util.Collection<org.apache.cassandra.utils.Pair<java.lang.Long, java.lang.Long>>, org.apache.cassandra.streaming.compress.CompressionInfo, org.apache.cassandra.streaming.StreamSession);
    descriptor: (Lorg/apache/cassandra/io/sstable/format/SSTableReader;Ljava/util/Collection;Lorg/apache/cassandra/streaming/compress/CompressionInfo;Lorg/apache/cassandra/streaming/StreamSession;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // org.apache.cassandra.streaming.compress.CompressedStreamWriter this
        start local 1 // org.apache.cassandra.io.sstable.format.SSTableReader sstable
        start local 2 // java.util.Collection sections
        start local 3 // org.apache.cassandra.streaming.compress.CompressionInfo compressionInfo
        start local 4 // org.apache.cassandra.streaming.StreamSession session
         0: .line 52
            aload 0 /* this */
            aload 1 /* sstable */
            aload 2 /* sections */
            aload 4 /* session */
            invokespecial org.apache.cassandra.streaming.StreamWriter.<init>:(Lorg/apache/cassandra/io/sstable/format/SSTableReader;Ljava/util/Collection;Lorg/apache/cassandra/streaming/StreamSession;)V
         1: .line 53
            aload 0 /* this */
            aload 3 /* compressionInfo */
            putfield org.apache.cassandra.streaming.compress.CompressedStreamWriter.compressionInfo:Lorg/apache/cassandra/streaming/compress/CompressionInfo;
         2: .line 54
            return
        end local 4 // org.apache.cassandra.streaming.StreamSession session
        end local 3 // org.apache.cassandra.streaming.compress.CompressionInfo compressionInfo
        end local 2 // java.util.Collection sections
        end local 1 // org.apache.cassandra.io.sstable.format.SSTableReader sstable
        end local 0 // org.apache.cassandra.streaming.compress.CompressedStreamWriter this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lorg/apache/cassandra/streaming/compress/CompressedStreamWriter;
            0    3     1          sstable  Lorg/apache/cassandra/io/sstable/format/SSTableReader;
            0    3     2         sections  Ljava/util/Collection<Lorg/apache/cassandra/utils/Pair<Ljava/lang/Long;Ljava/lang/Long;>;>;
            0    3     3  compressionInfo  Lorg/apache/cassandra/streaming/compress/CompressionInfo;
            0    3     4          session  Lorg/apache/cassandra/streaming/StreamSession;
    Signature: (Lorg/apache/cassandra/io/sstable/format/SSTableReader;Ljava/util/Collection<Lorg/apache/cassandra/utils/Pair<Ljava/lang/Long;Ljava/lang/Long;>;>;Lorg/apache/cassandra/streaming/compress/CompressionInfo;Lorg/apache/cassandra/streaming/StreamSession;)V
    MethodParameters:
                 Name  Flags
      sstable          
      sections         
      compressionInfo  
      session          

  public void write(org.apache.cassandra.io.util.DataOutputStreamPlus);
    descriptor: (Lorg/apache/cassandra/io/util/DataOutputStreamPlus;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=22, args_size=2
        start local 0 // org.apache.cassandra.streaming.compress.CompressedStreamWriter this
        start local 1 // org.apache.cassandra.io.util.DataOutputStreamPlus out
         0: .line 59
            aload 0 /* this */
            invokevirtual org.apache.cassandra.streaming.compress.CompressedStreamWriter.totalSize:()J
            lstore 2 /* totalSize */
        start local 2 // long totalSize
         1: .line 60
            getstatic org.apache.cassandra.streaming.compress.CompressedStreamWriter.logger:Lorg/slf4j/Logger;
            ldc "[Stream #{}] Start streaming file {} to {}, repairedAt = {}, totalSize = {}"
            iconst_5
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.apache.cassandra.streaming.compress.CompressedStreamWriter.session:Lorg/apache/cassandra/streaming/StreamSession;
            invokevirtual org.apache.cassandra.streaming.StreamSession.planId:()Ljava/util/UUID;
            aastore
            dup
            iconst_1
         2: .line 61
            aload 0 /* this */
            getfield org.apache.cassandra.streaming.compress.CompressedStreamWriter.sstable:Lorg/apache/cassandra/io/sstable/format/SSTableReader;
            invokevirtual org.apache.cassandra.io.sstable.format.SSTableReader.getFilename:()Ljava/lang/String;
            aastore
            dup
            iconst_2
            aload 0 /* this */
            getfield org.apache.cassandra.streaming.compress.CompressedStreamWriter.session:Lorg/apache/cassandra/streaming/StreamSession;
            getfield org.apache.cassandra.streaming.StreamSession.peer:Ljava/net/InetAddress;
            aastore
            dup
            iconst_3
            aload 0 /* this */
            getfield org.apache.cassandra.streaming.compress.CompressedStreamWriter.sstable:Lorg/apache/cassandra/io/sstable/format/SSTableReader;
            invokevirtual org.apache.cassandra.io.sstable.format.SSTableReader.getSSTableMetadata:()Lorg/apache/cassandra/io/sstable/metadata/StatsMetadata;
            getfield org.apache.cassandra.io.sstable.metadata.StatsMetadata.repairedAt:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_4
            lload 2 /* totalSize */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
         3: .line 60
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
         4: .line 62
            aconst_null
            astore 4
            aconst_null
            astore 5
         5: aload 0 /* this */
            getfield org.apache.cassandra.streaming.compress.CompressedStreamWriter.sstable:Lorg/apache/cassandra/io/sstable/format/SSTableReader;
            invokevirtual org.apache.cassandra.io.sstable.format.SSTableReader.getDataChannel:()Lorg/apache/cassandra/io/util/ChannelProxy;
            invokevirtual org.apache.cassandra.io.util.ChannelProxy.sharedCopy:()Lorg/apache/cassandra/io/util/ChannelProxy;
            astore 6 /* fc */
        start local 6 // org.apache.cassandra.io.util.ChannelProxy fc
         6: .line 64
            lconst_0
            lstore 7 /* progress */
        start local 7 // long progress
         7: .line 66
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.streaming.compress.CompressedStreamWriter.compressionInfo:Lorg/apache/cassandra/streaming/compress/CompressionInfo;
            getfield org.apache.cassandra.streaming.compress.CompressionInfo.chunks:[Lorg/apache/cassandra/io/compress/CompressionMetadata$Chunk;
            invokevirtual org.apache.cassandra.streaming.compress.CompressedStreamWriter.getTransferSections:([Lorg/apache/cassandra/io/compress/CompressionMetadata$Chunk;)Ljava/util/List;
            astore 9 /* sections */
        start local 9 // java.util.List sections
         8: .line 68
            iconst_0
            istore 10 /* sectionIdx */
        start local 10 // int sectionIdx
         9: .line 71
            aload 9 /* sections */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 12
            goto 23
      StackMap locals: org.apache.cassandra.streaming.compress.CompressedStreamWriter org.apache.cassandra.io.util.DataOutputStreamPlus long java.lang.Throwable java.lang.Throwable org.apache.cassandra.io.util.ChannelProxy long java.util.List int top java.util.Iterator
      StackMap stack:
        10: aload 12
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.utils.Pair
            astore 11 /* section */
        start local 11 // org.apache.cassandra.utils.Pair section
        11: .line 74
            aload 11 /* section */
            getfield org.apache.cassandra.utils.Pair.right:Ljava/lang/Object;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            aload 11 /* section */
            getfield org.apache.cassandra.utils.Pair.left:Ljava/lang/Object;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            lsub
            lstore 13 /* length */
        start local 13 // long length
        12: .line 76
            getstatic org.apache.cassandra.streaming.compress.CompressedStreamWriter.logger:Lorg/slf4j/Logger;
            ldc "[Stream #{}] Writing section {} with length {} to stream."
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.apache.cassandra.streaming.compress.CompressedStreamWriter.session:Lorg/apache/cassandra/streaming/StreamSession;
            invokevirtual org.apache.cassandra.streaming.StreamSession.planId:()Ljava/util/UUID;
            aastore
            dup
            iconst_1
            iload 10 /* sectionIdx */
            iinc 10 /* sectionIdx */ 1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            lload 13 /* length */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
        13: .line 79
            lconst_0
            lstore 15 /* bytesTransferred */
        start local 15 // long bytesTransferred
        14: .line 80
            goto 22
        15: .line 82
      StackMap locals: org.apache.cassandra.streaming.compress.CompressedStreamWriter org.apache.cassandra.io.util.DataOutputStreamPlus long java.lang.Throwable java.lang.Throwable org.apache.cassandra.io.util.ChannelProxy long java.util.List int org.apache.cassandra.utils.Pair java.util.Iterator long long
      StackMap stack:
            lload 15 /* bytesTransferred */
            lstore 17 /* bytesTransferredFinal */
        start local 17 // long bytesTransferredFinal
        16: .line 83
            ldc 10485760
            lload 13 /* length */
            lload 15 /* bytesTransferred */
            lsub
            invokestatic java.lang.Math.min:(JJ)J
            l2i
            istore 19 /* toTransfer */
        start local 19 // int toTransfer
        17: .line 84
            aload 0 /* this */
            getfield org.apache.cassandra.streaming.compress.CompressedStreamWriter.limiter:Lorg/apache/cassandra/streaming/StreamManager$StreamRateLimiter;
            iload 19 /* toTransfer */
            invokevirtual org.apache.cassandra.streaming.StreamManager$StreamRateLimiter.acquire:(I)V
        18: .line 85
            aload 1 /* out */
            aload 6 /* fc */
            aload 11 /* section */
            lload 17 /* bytesTransferredFinal */
            iload 19 /* toTransfer */
            invokedynamic apply(Lorg/apache/cassandra/io/util/ChannelProxy;Lorg/apache/cassandra/utils/Pair;JI)Lcom/google/common/base/Function;
              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;)Ljava/lang/Object;
                  org/apache/cassandra/streaming/compress/CompressedStreamWriter.lambda$0(Lorg/apache/cassandra/io/util/ChannelProxy;Lorg/apache/cassandra/utils/Pair;JILjava/nio/channels/WritableByteChannel;)Ljava/lang/Long; (6)
                  (Ljava/nio/channels/WritableByteChannel;)Ljava/lang/Long;
            invokevirtual org.apache.cassandra.io.util.DataOutputStreamPlus.applyToChannel:(Lcom/google/common/base/Function;)Ljava/lang/Object;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            lstore 20 /* lastWrite */
        start local 20 // long lastWrite
        19: .line 86
            lload 15 /* bytesTransferred */
            lload 20 /* lastWrite */
            ladd
            lstore 15 /* bytesTransferred */
        20: .line 87
            lload 7 /* progress */
            lload 20 /* lastWrite */
            ladd
            lstore 7 /* progress */
        21: .line 88
            aload 0 /* this */
            getfield org.apache.cassandra.streaming.compress.CompressedStreamWriter.session:Lorg/apache/cassandra/streaming/StreamSession;
            aload 0 /* this */
            getfield org.apache.cassandra.streaming.compress.CompressedStreamWriter.sstable:Lorg/apache/cassandra/io/sstable/format/SSTableReader;
            getfield org.apache.cassandra.io.sstable.format.SSTableReader.descriptor:Lorg/apache/cassandra/io/sstable/Descriptor;
            getstatic org.apache.cassandra.io.sstable.Component.DATA:Lorg/apache/cassandra/io/sstable/Component;
            invokevirtual org.apache.cassandra.io.sstable.Descriptor.filenameFor:(Lorg/apache/cassandra/io/sstable/Component;)Ljava/lang/String;
            getstatic org.apache.cassandra.streaming.ProgressInfo$Direction.OUT:Lorg/apache/cassandra/streaming/ProgressInfo$Direction;
            lload 7 /* progress */
            lload 2 /* totalSize */
            invokevirtual org.apache.cassandra.streaming.StreamSession.progress:(Ljava/lang/String;Lorg/apache/cassandra/streaming/ProgressInfo$Direction;JJ)V
        end local 20 // long lastWrite
        end local 19 // int toTransfer
        end local 17 // long bytesTransferredFinal
        22: .line 80
      StackMap locals:
      StackMap stack:
            lload 15 /* bytesTransferred */
            lload 13 /* length */
            lcmp
            iflt 15
        end local 15 // long bytesTransferred
        end local 13 // long length
        end local 11 // org.apache.cassandra.utils.Pair section
        23: .line 71
      StackMap locals: org.apache.cassandra.streaming.compress.CompressedStreamWriter org.apache.cassandra.io.util.DataOutputStreamPlus long java.lang.Throwable java.lang.Throwable org.apache.cassandra.io.util.ChannelProxy long java.util.List int top java.util.Iterator
      StackMap stack:
            aload 12
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        24: .line 91
            getstatic org.apache.cassandra.streaming.compress.CompressedStreamWriter.logger:Lorg/slf4j/Logger;
            ldc "[Stream #{}] Finished streaming file {} to {}, bytesTransferred = {}, totalSize = {}"
            iconst_5
            anewarray java.lang.Object
            dup
            iconst_0
        25: .line 92
            aload 0 /* this */
            getfield org.apache.cassandra.streaming.compress.CompressedStreamWriter.session:Lorg/apache/cassandra/streaming/StreamSession;
            invokevirtual org.apache.cassandra.streaming.StreamSession.planId:()Ljava/util/UUID;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.apache.cassandra.streaming.compress.CompressedStreamWriter.sstable:Lorg/apache/cassandra/io/sstable/format/SSTableReader;
            invokevirtual org.apache.cassandra.io.sstable.format.SSTableReader.getFilename:()Ljava/lang/String;
            aastore
            dup
            iconst_2
            aload 0 /* this */
            getfield org.apache.cassandra.streaming.compress.CompressedStreamWriter.session:Lorg/apache/cassandra/streaming/StreamSession;
            getfield org.apache.cassandra.streaming.StreamSession.peer:Ljava/net/InetAddress;
            aastore
            dup
            iconst_3
            lload 7 /* progress */
            invokestatic org.apache.cassandra.utils.FBUtilities.prettyPrintMemory:(J)Ljava/lang/String;
            aastore
            dup
            iconst_4
            lload 2 /* totalSize */
            invokestatic org.apache.cassandra.utils.FBUtilities.prettyPrintMemory:(J)Ljava/lang/String;
            aastore
        26: .line 91
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
        end local 10 // int sectionIdx
        end local 9 // java.util.List sections
        end local 7 // long progress
        27: .line 93
            aload 6 /* fc */
            ifnull 33
            aload 6 /* fc */
            invokevirtual org.apache.cassandra.io.util.ChannelProxy.close:()V
            goto 33
      StackMap locals: org.apache.cassandra.streaming.compress.CompressedStreamWriter org.apache.cassandra.io.util.DataOutputStreamPlus long java.lang.Throwable java.lang.Throwable org.apache.cassandra.io.util.ChannelProxy
      StackMap stack: java.lang.Throwable
        28: astore 4
            aload 6 /* fc */
            ifnull 29
            aload 6 /* fc */
            invokevirtual org.apache.cassandra.io.util.ChannelProxy.close:()V
        end local 6 // org.apache.cassandra.io.util.ChannelProxy fc
      StackMap locals:
      StackMap stack:
        29: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        30: astore 5
            aload 4
            ifnonnull 31
            aload 5
            astore 4
            goto 32
      StackMap locals:
      StackMap stack:
        31: aload 4
            aload 5
            if_acmpeq 32
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        32: aload 4
            athrow
        33: .line 94
      StackMap locals:
      StackMap stack:
            return
        end local 2 // long totalSize
        end local 1 // org.apache.cassandra.io.util.DataOutputStreamPlus out
        end local 0 // org.apache.cassandra.streaming.compress.CompressedStreamWriter this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   34     0                   this  Lorg/apache/cassandra/streaming/compress/CompressedStreamWriter;
            0   34     1                    out  Lorg/apache/cassandra/io/util/DataOutputStreamPlus;
            1   34     2              totalSize  J
            6   29     6                     fc  Lorg/apache/cassandra/io/util/ChannelProxy;
            7   27     7               progress  J
            8   27     9               sections  Ljava/util/List<Lorg/apache/cassandra/utils/Pair<Ljava/lang/Long;Ljava/lang/Long;>;>;
            9   27    10             sectionIdx  I
           11   23    11                section  Lorg/apache/cassandra/utils/Pair<Ljava/lang/Long;Ljava/lang/Long;>;
           12   23    13                 length  J
           14   23    15       bytesTransferred  J
           16   22    17  bytesTransferredFinal  J
           17   22    19             toTransfer  I
           19   22    20              lastWrite  J
      Exception table:
        from    to  target  type
           6    27      28  any
           5    30      30  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      out   

  protected long totalSize();
    descriptor: ()J
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=7, args_size=1
        start local 0 // org.apache.cassandra.streaming.compress.CompressedStreamWriter this
         0: .line 99
            lconst_0
            lstore 1 /* size */
        start local 1 // long size
         1: .line 101
            aload 0 /* this */
            getfield org.apache.cassandra.streaming.compress.CompressedStreamWriter.compressionInfo:Lorg/apache/cassandra/streaming/compress/CompressionInfo;
            getfield org.apache.cassandra.streaming.compress.CompressionInfo.chunks:[Lorg/apache/cassandra/io/compress/CompressionMetadata$Chunk;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 5
      StackMap locals: org.apache.cassandra.streaming.compress.CompressedStreamWriter long top int int org.apache.cassandra.io.compress.CompressionMetadata$Chunk[]
      StackMap stack:
         2: aload 6
            iload 4
            aaload
            astore 3 /* chunk */
        start local 3 // org.apache.cassandra.io.compress.CompressionMetadata$Chunk chunk
         3: .line 102
            lload 1 /* size */
            aload 3 /* chunk */
            getfield org.apache.cassandra.io.compress.CompressionMetadata$Chunk.length:I
            iconst_4
            iadd
            i2l
            ladd
            lstore 1 /* size */
        end local 3 // org.apache.cassandra.io.compress.CompressionMetadata$Chunk chunk
         4: .line 101
            iinc 4 1
      StackMap locals:
      StackMap stack:
         5: iload 4
            iload 5
            if_icmplt 2
         6: .line 103
            lload 1 /* size */
            lreturn
        end local 1 // long size
        end local 0 // org.apache.cassandra.streaming.compress.CompressedStreamWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lorg/apache/cassandra/streaming/compress/CompressedStreamWriter;
            1    7     1   size  J
            3    4     3  chunk  Lorg/apache/cassandra/io/compress/CompressionMetadata$Chunk;

  private java.util.List<org.apache.cassandra.utils.Pair<java.lang.Long, java.lang.Long>> getTransferSections(org.apache.cassandra.io.compress.CompressionMetadata$Chunk[]);
    descriptor: ([Lorg/apache/cassandra/io/compress/CompressionMetadata$Chunk;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // org.apache.cassandra.streaming.compress.CompressedStreamWriter this
        start local 1 // org.apache.cassandra.io.compress.CompressionMetadata$Chunk[] chunks
         0: .line 109
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* transferSections */
        start local 2 // java.util.List transferSections
         1: .line 110
            aconst_null
            astore 3 /* lastSection */
        start local 3 // org.apache.cassandra.utils.Pair lastSection
         2: .line 111
            aload 1 /* chunks */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 13
      StackMap locals: org.apache.cassandra.streaming.compress.CompressedStreamWriter org.apache.cassandra.io.compress.CompressionMetadata$Chunk[] java.util.List org.apache.cassandra.utils.Pair top int int org.apache.cassandra.io.compress.CompressionMetadata$Chunk[]
      StackMap stack:
         3: aload 7
            iload 5
            aaload
            astore 4 /* chunk */
        start local 4 // org.apache.cassandra.io.compress.CompressionMetadata$Chunk chunk
         4: .line 113
            aload 3 /* lastSection */
            ifnull 11
         5: .line 115
            aload 4 /* chunk */
            getfield org.apache.cassandra.io.compress.CompressionMetadata$Chunk.offset:J
            aload 3 /* lastSection */
            getfield org.apache.cassandra.utils.Pair.right:Ljava/lang/Object;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            lcmp
            ifne 8
         6: .line 118
            aload 3 /* lastSection */
            getfield org.apache.cassandra.utils.Pair.left:Ljava/lang/Object;
            checkcast java.lang.Long
            aload 4 /* chunk */
            getfield org.apache.cassandra.io.compress.CompressionMetadata$Chunk.offset:J
            aload 4 /* chunk */
            getfield org.apache.cassandra.io.compress.CompressionMetadata$Chunk.length:I
            i2l
            ladd
            ldc 4
            ladd
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokestatic org.apache.cassandra.utils.Pair.create:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/apache/cassandra/utils/Pair;
            astore 3 /* lastSection */
         7: .line 119
            goto 12
         8: .line 122
      StackMap locals: org.apache.cassandra.streaming.compress.CompressedStreamWriter org.apache.cassandra.io.compress.CompressionMetadata$Chunk[] java.util.List org.apache.cassandra.utils.Pair org.apache.cassandra.io.compress.CompressionMetadata$Chunk int int org.apache.cassandra.io.compress.CompressionMetadata$Chunk[]
      StackMap stack:
            aload 2 /* transferSections */
            aload 3 /* lastSection */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         9: .line 123
            aload 4 /* chunk */
            getfield org.apache.cassandra.io.compress.CompressionMetadata$Chunk.offset:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aload 4 /* chunk */
            getfield org.apache.cassandra.io.compress.CompressionMetadata$Chunk.offset:J
            aload 4 /* chunk */
            getfield org.apache.cassandra.io.compress.CompressionMetadata$Chunk.length:I
            i2l
            ladd
            ldc 4
            ladd
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokestatic org.apache.cassandra.utils.Pair.create:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/apache/cassandra/utils/Pair;
            astore 3 /* lastSection */
        10: .line 125
            goto 12
        11: .line 128
      StackMap locals:
      StackMap stack:
            aload 4 /* chunk */
            getfield org.apache.cassandra.io.compress.CompressionMetadata$Chunk.offset:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aload 4 /* chunk */
            getfield org.apache.cassandra.io.compress.CompressionMetadata$Chunk.offset:J
            aload 4 /* chunk */
            getfield org.apache.cassandra.io.compress.CompressionMetadata$Chunk.length:I
            i2l
            ladd
            ldc 4
            ladd
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokestatic org.apache.cassandra.utils.Pair.create:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/apache/cassandra/utils/Pair;
            astore 3 /* lastSection */
        end local 4 // org.apache.cassandra.io.compress.CompressionMetadata$Chunk chunk
        12: .line 111
      StackMap locals: org.apache.cassandra.streaming.compress.CompressedStreamWriter org.apache.cassandra.io.compress.CompressionMetadata$Chunk[] java.util.List org.apache.cassandra.utils.Pair top int int org.apache.cassandra.io.compress.CompressionMetadata$Chunk[]
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        13: iload 5
            iload 6
            if_icmplt 3
        14: .line 131
            aload 3 /* lastSection */
            ifnull 16
        15: .line 132
            aload 2 /* transferSections */
            aload 3 /* lastSection */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        16: .line 133
      StackMap locals: org.apache.cassandra.streaming.compress.CompressedStreamWriter org.apache.cassandra.io.compress.CompressionMetadata$Chunk[] java.util.List org.apache.cassandra.utils.Pair
      StackMap stack:
            aload 2 /* transferSections */
            areturn
        end local 3 // org.apache.cassandra.utils.Pair lastSection
        end local 2 // java.util.List transferSections
        end local 1 // org.apache.cassandra.io.compress.CompressionMetadata$Chunk[] chunks
        end local 0 // org.apache.cassandra.streaming.compress.CompressedStreamWriter this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   17     0              this  Lorg/apache/cassandra/streaming/compress/CompressedStreamWriter;
            0   17     1            chunks  [Lorg/apache/cassandra/io/compress/CompressionMetadata$Chunk;
            1   17     2  transferSections  Ljava/util/List<Lorg/apache/cassandra/utils/Pair<Ljava/lang/Long;Ljava/lang/Long;>;>;
            2   17     3       lastSection  Lorg/apache/cassandra/utils/Pair<Ljava/lang/Long;Ljava/lang/Long;>;
            4   12     4             chunk  Lorg/apache/cassandra/io/compress/CompressionMetadata$Chunk;
    Signature: ([Lorg/apache/cassandra/io/compress/CompressionMetadata$Chunk;)Ljava/util/List<Lorg/apache/cassandra/utils/Pair<Ljava/lang/Long;Ljava/lang/Long;>;>;
    MethodParameters:
        Name  Flags
      chunks  

  private static java.lang.Long lambda$0(org.apache.cassandra.io.util.ChannelProxy, org.apache.cassandra.utils.Pair, long, int, java.nio.channels.WritableByteChannel);
    descriptor: (Lorg/apache/cassandra/io/util/ChannelProxy;Lorg/apache/cassandra/utils/Pair;JILjava/nio/channels/WritableByteChannel;)Ljava/lang/Long;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=6, locals=6, args_size=5
        start local 5 // java.nio.channels.WritableByteChannel wbc
         0: .line 85
            aload 0
            aload 1
            getfield org.apache.cassandra.utils.Pair.left:Ljava/lang/Object;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            lload 2
            ladd
            iload 4
            i2l
            aload 5 /* wbc */
            invokevirtual org.apache.cassandra.io.util.ChannelProxy.transferTo:(JJLjava/nio/channels/WritableByteChannel;)J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            areturn
        end local 5 // java.nio.channels.WritableByteChannel wbc
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     5   wbc  Ljava/nio/channels/WritableByteChannel;
}
SourceFile: "CompressedStreamWriter.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public Chunk = org.apache.cassandra.io.compress.CompressionMetadata$Chunk of org.apache.cassandra.io.compress.CompressionMetadata
  public final Direction = org.apache.cassandra.streaming.ProgressInfo$Direction of org.apache.cassandra.streaming.ProgressInfo
  public StreamRateLimiter = org.apache.cassandra.streaming.StreamManager$StreamRateLimiter of org.apache.cassandra.streaming.StreamManager