public class org.apache.cassandra.security.EncryptionUtils
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.security.EncryptionUtils
  super_class: java.lang.Object
{
  public static final int COMPRESSED_BLOCK_HEADER_SIZE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  public static final int ENCRYPTED_BLOCK_HEADER_SIZE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  private static final io.netty.util.concurrent.FastThreadLocal<java.nio.ByteBuffer> reusableBuffers;
    descriptor: Lio/netty/util/concurrent/FastThreadLocal;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Lio/netty/util/concurrent/FastThreadLocal<Ljava/nio/ByteBuffer;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 49
            new org.apache.cassandra.security.EncryptionUtils$1
            dup
            invokespecial org.apache.cassandra.security.EncryptionUtils$1.<init>:()V
            putstatic org.apache.cassandra.security.EncryptionUtils.reusableBuffers:Lio/netty/util/concurrent/FastThreadLocal;
         1: .line 55
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.security.EncryptionUtils this
         0: .line 44
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.apache.cassandra.security.EncryptionUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/security/EncryptionUtils;

  public static java.nio.ByteBuffer compress(java.nio.ByteBuffer, java.nio.ByteBuffer, boolean, org.apache.cassandra.io.compress.ICompressor);
    descriptor: (Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;ZLorg/apache/cassandra/io/compress/ICompressor;)Ljava/nio/ByteBuffer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // java.nio.ByteBuffer inputBuffer
        start local 1 // java.nio.ByteBuffer outputBuffer
        start local 2 // boolean allowBufferResize
        start local 3 // org.apache.cassandra.io.compress.ICompressor compressor
         0: .line 68
            aload 0 /* inputBuffer */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            istore 4 /* inputLength */
        start local 4 // int inputLength
         1: .line 69
            aload 3 /* compressor */
            iload 4 /* inputLength */
            invokeinterface org.apache.cassandra.io.compress.ICompressor.initialCompressedBufferLength:(I)I
            istore 5 /* compressedLength */
        start local 5 // int compressedLength
         2: .line 70
            aload 1 /* outputBuffer */
            iload 5 /* compressedLength */
            iconst_4
            iadd
            iload 2 /* allowBufferResize */
            invokestatic org.apache.cassandra.utils.ByteBufferUtil.ensureCapacity:(Ljava/nio/ByteBuffer;IZ)Ljava/nio/ByteBuffer;
            astore 1 /* outputBuffer */
         3: .line 72
            aload 1 /* outputBuffer */
            iload 4 /* inputLength */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         4: .line 73
            aload 3 /* compressor */
            aload 0 /* inputBuffer */
            aload 1 /* outputBuffer */
            invokeinterface org.apache.cassandra.io.compress.ICompressor.compress:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)V
         5: .line 74
            aload 1 /* outputBuffer */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
         6: .line 76
            aload 1 /* outputBuffer */
            areturn
        end local 5 // int compressedLength
        end local 4 // int inputLength
        end local 3 // org.apache.cassandra.io.compress.ICompressor compressor
        end local 2 // boolean allowBufferResize
        end local 1 // java.nio.ByteBuffer outputBuffer
        end local 0 // java.nio.ByteBuffer inputBuffer
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    7     0        inputBuffer  Ljava/nio/ByteBuffer;
            0    7     1       outputBuffer  Ljava/nio/ByteBuffer;
            0    7     2  allowBufferResize  Z
            0    7     3         compressor  Lorg/apache/cassandra/io/compress/ICompressor;
            1    7     4        inputLength  I
            2    7     5   compressedLength  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                   Name  Flags
      inputBuffer        
      outputBuffer       
      allowBufferResize  
      compressor         

  public static java.nio.ByteBuffer encryptAndWrite(java.nio.ByteBuffer, java.nio.channels.WritableByteChannel, boolean, javax.crypto.Cipher);
    descriptor: (Ljava/nio/ByteBuffer;Ljava/nio/channels/WritableByteChannel;ZLjavax/crypto/Cipher;)Ljava/nio/ByteBuffer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=4
        start local 0 // java.nio.ByteBuffer inputBuffer
        start local 1 // java.nio.channels.WritableByteChannel channel
        start local 2 // boolean allowBufferResize
        start local 3 // javax.crypto.Cipher cipher
         0: .line 90
            aload 0 /* inputBuffer */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            istore 4 /* plainTextLength */
        start local 4 // int plainTextLength
         1: .line 91
            aload 3 /* cipher */
            iload 4 /* plainTextLength */
            invokevirtual javax.crypto.Cipher.getOutputSize:(I)I
            istore 5 /* encryptLength */
        start local 5 // int encryptLength
         2: .line 92
            aload 0 /* inputBuffer */
            invokevirtual java.nio.ByteBuffer.duplicate:()Ljava/nio/ByteBuffer;
            astore 6 /* outputBuffer */
        start local 6 // java.nio.ByteBuffer outputBuffer
         3: .line 93
            aload 6 /* outputBuffer */
            iload 5 /* encryptLength */
            iload 2 /* allowBufferResize */
            invokestatic org.apache.cassandra.utils.ByteBufferUtil.ensureCapacity:(Ljava/nio/ByteBuffer;IZ)Ljava/nio/ByteBuffer;
            astore 6 /* outputBuffer */
         4: .line 97
            bipush 8
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            astore 7 /* intBuf */
        start local 7 // java.nio.ByteBuffer intBuf
         5: .line 98
            aload 7 /* intBuf */
            iconst_0
            iload 5 /* encryptLength */
            invokevirtual java.nio.ByteBuffer.putInt:(II)Ljava/nio/ByteBuffer;
            pop
         6: .line 99
            aload 7 /* intBuf */
            iconst_4
            iload 4 /* plainTextLength */
            invokevirtual java.nio.ByteBuffer.putInt:(II)Ljava/nio/ByteBuffer;
            pop
         7: .line 100
            aload 1 /* channel */
            aload 7 /* intBuf */
            invokeinterface java.nio.channels.WritableByteChannel.write:(Ljava/nio/ByteBuffer;)I
            pop
         8: .line 104
            aload 3 /* cipher */
            aload 0 /* inputBuffer */
            aload 6 /* outputBuffer */
            invokevirtual javax.crypto.Cipher.doFinal:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I
            pop
         9: .line 105
            goto 12
        10: .line 106
      StackMap locals: java.nio.ByteBuffer java.nio.channels.WritableByteChannel int javax.crypto.Cipher int int java.nio.ByteBuffer java.nio.ByteBuffer
      StackMap stack: java.security.GeneralSecurityException
            astore 8 /* e */
        start local 8 // java.security.GeneralSecurityException e
        11: .line 108
            new java.io.IOException
            dup
            ldc "failed to encrypt commit log block"
            aload 8 /* e */
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 8 // java.security.GeneralSecurityException e
        12: .line 111
      StackMap locals:
      StackMap stack:
            aload 6 /* outputBuffer */
            iconst_0
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            iload 5 /* encryptLength */
            invokevirtual java.nio.Buffer.limit:(I)Ljava/nio/Buffer;
            pop
        13: .line 112
            aload 1 /* channel */
            aload 6 /* outputBuffer */
            invokeinterface java.nio.channels.WritableByteChannel.write:(Ljava/nio/ByteBuffer;)I
            pop
        14: .line 113
            aload 6 /* outputBuffer */
            iconst_0
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            iload 5 /* encryptLength */
            invokevirtual java.nio.Buffer.limit:(I)Ljava/nio/Buffer;
            pop
        15: .line 115
            aload 6 /* outputBuffer */
            areturn
        end local 7 // java.nio.ByteBuffer intBuf
        end local 6 // java.nio.ByteBuffer outputBuffer
        end local 5 // int encryptLength
        end local 4 // int plainTextLength
        end local 3 // javax.crypto.Cipher cipher
        end local 2 // boolean allowBufferResize
        end local 1 // java.nio.channels.WritableByteChannel channel
        end local 0 // java.nio.ByteBuffer inputBuffer
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   16     0        inputBuffer  Ljava/nio/ByteBuffer;
            0   16     1            channel  Ljava/nio/channels/WritableByteChannel;
            0   16     2  allowBufferResize  Z
            0   16     3             cipher  Ljavax/crypto/Cipher;
            1   16     4    plainTextLength  I
            2   16     5      encryptLength  I
            3   16     6       outputBuffer  Ljava/nio/ByteBuffer;
            5   16     7             intBuf  Ljava/nio/ByteBuffer;
           11   12     8                  e  Ljava/security/GeneralSecurityException;
      Exception table:
        from    to  target  type
           8     9      10  Class javax.crypto.ShortBufferException
           8     9      10  Class javax.crypto.IllegalBlockSizeException
           8     9      10  Class javax.crypto.BadPaddingException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                   Name  Flags
      inputBuffer        
      channel            
      allowBufferResize  
      cipher             

  public static java.nio.ByteBuffer encrypt(java.nio.ByteBuffer, java.nio.ByteBuffer, boolean, javax.crypto.Cipher);
    descriptor: (Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;ZLjavax/crypto/Cipher;)Ljava/nio/ByteBuffer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // java.nio.ByteBuffer inputBuffer
        start local 1 // java.nio.ByteBuffer outputBuffer
        start local 2 // boolean allowBufferResize
        start local 3 // javax.crypto.Cipher cipher
         0: .line 121
            aload 1 /* outputBuffer */
            ldc "output buffer may not be null"
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 122
            aload 0 /* inputBuffer */
            new org.apache.cassandra.security.EncryptionUtils$ChannelAdapter
            dup
            aload 1 /* outputBuffer */
            invokespecial org.apache.cassandra.security.EncryptionUtils$ChannelAdapter.<init>:(Ljava/nio/ByteBuffer;)V
            iload 2 /* allowBufferResize */
            aload 3 /* cipher */
            invokestatic org.apache.cassandra.security.EncryptionUtils.encryptAndWrite:(Ljava/nio/ByteBuffer;Ljava/nio/channels/WritableByteChannel;ZLjavax/crypto/Cipher;)Ljava/nio/ByteBuffer;
            areturn
        end local 3 // javax.crypto.Cipher cipher
        end local 2 // boolean allowBufferResize
        end local 1 // java.nio.ByteBuffer outputBuffer
        end local 0 // java.nio.ByteBuffer inputBuffer
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0        inputBuffer  Ljava/nio/ByteBuffer;
            0    2     1       outputBuffer  Ljava/nio/ByteBuffer;
            0    2     2  allowBufferResize  Z
            0    2     3             cipher  Ljavax/crypto/Cipher;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                   Name  Flags
      inputBuffer        
      outputBuffer       
      allowBufferResize  
      cipher             

  public static java.nio.ByteBuffer decrypt(java.nio.channels.ReadableByteChannel, java.nio.ByteBuffer, boolean, javax.crypto.Cipher);
    descriptor: (Ljava/nio/channels/ReadableByteChannel;Ljava/nio/ByteBuffer;ZLjavax/crypto/Cipher;)Ljava/nio/ByteBuffer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=4
        start local 0 // java.nio.channels.ReadableByteChannel channel
        start local 1 // java.nio.ByteBuffer outputBuffer
        start local 2 // boolean allowBufferResize
        start local 3 // javax.crypto.Cipher cipher
         0: .line 134
            getstatic org.apache.cassandra.security.EncryptionUtils.reusableBuffers:Lio/netty/util/concurrent/FastThreadLocal;
            invokevirtual io.netty.util.concurrent.FastThreadLocal.get:()Ljava/lang/Object;
            checkcast java.nio.ByteBuffer
            astore 4 /* metadataBuffer */
        start local 4 // java.nio.ByteBuffer metadataBuffer
         1: .line 135
            aload 4 /* metadataBuffer */
            invokevirtual java.nio.ByteBuffer.capacity:()I
            bipush 8
            if_icmpge 4
         2: .line 137
            aload 4 /* metadataBuffer */
            bipush 8
            iconst_1
            invokestatic org.apache.cassandra.utils.ByteBufferUtil.ensureCapacity:(Ljava/nio/ByteBuffer;IZ)Ljava/nio/ByteBuffer;
            astore 4 /* metadataBuffer */
         3: .line 138
            getstatic org.apache.cassandra.security.EncryptionUtils.reusableBuffers:Lio/netty/util/concurrent/FastThreadLocal;
            aload 4 /* metadataBuffer */
            invokevirtual io.netty.util.concurrent.FastThreadLocal.set:(Ljava/lang/Object;)V
         4: .line 141
      StackMap locals: java.nio.ByteBuffer
      StackMap stack:
            aload 4 /* metadataBuffer */
            iconst_0
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            bipush 8
            invokevirtual java.nio.Buffer.limit:(I)Ljava/nio/Buffer;
            pop
         5: .line 142
            aload 0 /* channel */
            aload 4 /* metadataBuffer */
            invokeinterface java.nio.channels.ReadableByteChannel.read:(Ljava/nio/ByteBuffer;)I
            pop
         6: .line 143
            aload 4 /* metadataBuffer */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            bipush 8
            if_icmpge 8
         7: .line 144
            new java.lang.IllegalStateException
            dup
            ldc "could not read encrypted blocked metadata header"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 145
      StackMap locals:
      StackMap stack:
            aload 4 /* metadataBuffer */
            invokevirtual java.nio.ByteBuffer.getInt:()I
            istore 5 /* encryptedLength */
        start local 5 // int encryptedLength
         9: .line 147
            aload 4 /* metadataBuffer */
            invokevirtual java.nio.ByteBuffer.getInt:()I
            istore 6 /* plainTextLength */
        start local 6 // int plainTextLength
        10: .line 149
            aload 1 /* outputBuffer */
            iload 6 /* plainTextLength */
            iload 5 /* encryptedLength */
            invokestatic java.lang.Math.max:(II)I
            iload 2 /* allowBufferResize */
            invokestatic org.apache.cassandra.utils.ByteBufferUtil.ensureCapacity:(Ljava/nio/ByteBuffer;IZ)Ljava/nio/ByteBuffer;
            astore 1 /* outputBuffer */
        11: .line 150
            aload 1 /* outputBuffer */
            iconst_0
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            iload 5 /* encryptedLength */
            invokevirtual java.nio.Buffer.limit:(I)Ljava/nio/Buffer;
            pop
        12: .line 151
            aload 0 /* channel */
            aload 1 /* outputBuffer */
            invokeinterface java.nio.channels.ReadableByteChannel.read:(Ljava/nio/ByteBuffer;)I
            pop
        13: .line 153
            aload 1 /* outputBuffer */
            invokevirtual java.nio.ByteBuffer.duplicate:()Ljava/nio/ByteBuffer;
            astore 7 /* dupe */
        start local 7 // java.nio.ByteBuffer dupe
        14: .line 154
            aload 7 /* dupe */
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
            pop
        15: .line 158
            aload 3 /* cipher */
            aload 1 /* outputBuffer */
            aload 7 /* dupe */
            invokevirtual javax.crypto.Cipher.doFinal:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I
            pop
        16: .line 159
            goto 19
        17: .line 160
      StackMap locals: java.nio.channels.ReadableByteChannel java.nio.ByteBuffer int javax.crypto.Cipher java.nio.ByteBuffer int int java.nio.ByteBuffer
      StackMap stack: java.security.GeneralSecurityException
            astore 8 /* e */
        start local 8 // java.security.GeneralSecurityException e
        18: .line 162
            new java.io.IOException
            dup
            ldc "failed to decrypt commit log block"
            aload 8 /* e */
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 8 // java.security.GeneralSecurityException e
        19: .line 165
      StackMap locals:
      StackMap stack:
            aload 7 /* dupe */
            iconst_0
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            iload 6 /* plainTextLength */
            invokevirtual java.nio.Buffer.limit:(I)Ljava/nio/Buffer;
            pop
        20: .line 166
            aload 7 /* dupe */
            areturn
        end local 7 // java.nio.ByteBuffer dupe
        end local 6 // int plainTextLength
        end local 5 // int encryptedLength
        end local 4 // java.nio.ByteBuffer metadataBuffer
        end local 3 // javax.crypto.Cipher cipher
        end local 2 // boolean allowBufferResize
        end local 1 // java.nio.ByteBuffer outputBuffer
        end local 0 // java.nio.channels.ReadableByteChannel channel
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   21     0            channel  Ljava/nio/channels/ReadableByteChannel;
            0   21     1       outputBuffer  Ljava/nio/ByteBuffer;
            0   21     2  allowBufferResize  Z
            0   21     3             cipher  Ljavax/crypto/Cipher;
            1   21     4     metadataBuffer  Ljava/nio/ByteBuffer;
            9   21     5    encryptedLength  I
           10   21     6    plainTextLength  I
           14   21     7               dupe  Ljava/nio/ByteBuffer;
           18   19     8                  e  Ljava/security/GeneralSecurityException;
      Exception table:
        from    to  target  type
          15    16      17  Class javax.crypto.ShortBufferException
          15    16      17  Class javax.crypto.IllegalBlockSizeException
          15    16      17  Class javax.crypto.BadPaddingException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                   Name  Flags
      channel            
      outputBuffer       
      allowBufferResize  
      cipher             

  public static java.nio.ByteBuffer decrypt(org.apache.cassandra.io.util.FileDataInput, java.nio.ByteBuffer, boolean, javax.crypto.Cipher);
    descriptor: (Lorg/apache/cassandra/io/util/FileDataInput;Ljava/nio/ByteBuffer;ZLjavax/crypto/Cipher;)Ljava/nio/ByteBuffer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.apache.cassandra.io.util.FileDataInput fileDataInput
        start local 1 // java.nio.ByteBuffer outputBuffer
        start local 2 // boolean allowBufferResize
        start local 3 // javax.crypto.Cipher cipher
         0: .line 173
            new org.apache.cassandra.security.EncryptionUtils$DataInputReadChannel
            dup
            aload 0 /* fileDataInput */
            invokespecial org.apache.cassandra.security.EncryptionUtils$DataInputReadChannel.<init>:(Lorg/apache/cassandra/io/util/FileDataInput;)V
            aload 1 /* outputBuffer */
            iload 2 /* allowBufferResize */
            aload 3 /* cipher */
            invokestatic org.apache.cassandra.security.EncryptionUtils.decrypt:(Ljava/nio/channels/ReadableByteChannel;Ljava/nio/ByteBuffer;ZLjavax/crypto/Cipher;)Ljava/nio/ByteBuffer;
            areturn
        end local 3 // javax.crypto.Cipher cipher
        end local 2 // boolean allowBufferResize
        end local 1 // java.nio.ByteBuffer outputBuffer
        end local 0 // org.apache.cassandra.io.util.FileDataInput fileDataInput
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    1     0      fileDataInput  Lorg/apache/cassandra/io/util/FileDataInput;
            0    1     1       outputBuffer  Ljava/nio/ByteBuffer;
            0    1     2  allowBufferResize  Z
            0    1     3             cipher  Ljavax/crypto/Cipher;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                   Name  Flags
      fileDataInput      
      outputBuffer       
      allowBufferResize  
      cipher             

  public static java.nio.ByteBuffer uncompress(java.nio.ByteBuffer, java.nio.ByteBuffer, boolean, org.apache.cassandra.io.compress.ICompressor);
    descriptor: (Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;ZLorg/apache/cassandra/io/compress/ICompressor;)Ljava/nio/ByteBuffer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // java.nio.ByteBuffer inputBuffer
        start local 1 // java.nio.ByteBuffer outputBuffer
        start local 2 // boolean allowBufferResize
        start local 3 // org.apache.cassandra.io.compress.ICompressor compressor
         0: .line 185
            aload 0 /* inputBuffer */
            invokevirtual java.nio.ByteBuffer.getInt:()I
            istore 4 /* outputLength */
        start local 4 // int outputLength
         1: .line 186
            aload 1 /* outputBuffer */
            iload 4 /* outputLength */
            iload 2 /* allowBufferResize */
            invokestatic org.apache.cassandra.utils.ByteBufferUtil.ensureCapacity:(Ljava/nio/ByteBuffer;IZ)Ljava/nio/ByteBuffer;
            astore 1 /* outputBuffer */
         2: .line 187
            aload 3 /* compressor */
            aload 0 /* inputBuffer */
            aload 1 /* outputBuffer */
            invokeinterface org.apache.cassandra.io.compress.ICompressor.uncompress:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)V
         3: .line 188
            aload 1 /* outputBuffer */
            iconst_0
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            iload 4 /* outputLength */
            invokevirtual java.nio.Buffer.limit:(I)Ljava/nio/Buffer;
            pop
         4: .line 190
            aload 1 /* outputBuffer */
            areturn
        end local 4 // int outputLength
        end local 3 // org.apache.cassandra.io.compress.ICompressor compressor
        end local 2 // boolean allowBufferResize
        end local 1 // java.nio.ByteBuffer outputBuffer
        end local 0 // java.nio.ByteBuffer inputBuffer
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    5     0        inputBuffer  Ljava/nio/ByteBuffer;
            0    5     1       outputBuffer  Ljava/nio/ByteBuffer;
            0    5     2  allowBufferResize  Z
            0    5     3         compressor  Lorg/apache/cassandra/io/compress/ICompressor;
            1    5     4       outputLength  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                   Name  Flags
      inputBuffer        
      outputBuffer       
      allowBufferResize  
      compressor         

  public static int uncompress(byte[], int, int, byte[], int, org.apache.cassandra.io.compress.ICompressor);
    descriptor: ([BII[BILorg/apache/cassandra/io/compress/ICompressor;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=8, args_size=6
        start local 0 // byte[] input
        start local 1 // int inputOffset
        start local 2 // int inputLength
        start local 3 // byte[] output
        start local 4 // int outputOffset
        start local 5 // org.apache.cassandra.io.compress.ICompressor compressor
         0: .line 195
            aload 0 /* input */
            iload 1 /* inputOffset */
            invokestatic org.apache.cassandra.security.EncryptionUtils.readInt:([BI)I
            istore 6 /* outputLength */
        start local 6 // int outputLength
         1: .line 196
            iinc 1 /* inputOffset */ 4
         2: .line 197
            iinc 2 /* inputLength */ -4
         3: .line 199
            aload 3 /* output */
            arraylength
            iload 4 /* outputOffset */
            isub
            iload 6 /* outputLength */
            if_icmpge 8
         4: .line 201
            ldc "buffer to uncompress into is not large enough; buf size = %d, buf offset = %d, target size = %s"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
         5: .line 202
            aload 3 /* output */
            arraylength
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            iload 4 /* outputOffset */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            iload 6 /* outputLength */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
         6: .line 201
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 7 /* msg */
        start local 7 // java.lang.String msg
         7: .line 203
            new java.lang.IllegalStateException
            dup
            aload 7 /* msg */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // java.lang.String msg
         8: .line 206
      StackMap locals: int
      StackMap stack:
            aload 5 /* compressor */
            aload 0 /* input */
            iload 1 /* inputOffset */
            iload 2 /* inputLength */
            aload 3 /* output */
            iload 4 /* outputOffset */
            invokeinterface org.apache.cassandra.io.compress.ICompressor.uncompress:([BII[BI)I
            ireturn
        end local 6 // int outputLength
        end local 5 // org.apache.cassandra.io.compress.ICompressor compressor
        end local 4 // int outputOffset
        end local 3 // byte[] output
        end local 2 // int inputLength
        end local 1 // int inputOffset
        end local 0 // byte[] input
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0         input  [B
            0    9     1   inputOffset  I
            0    9     2   inputLength  I
            0    9     3        output  [B
            0    9     4  outputOffset  I
            0    9     5    compressor  Lorg/apache/cassandra/io/compress/ICompressor;
            1    9     6  outputLength  I
            7    8     7           msg  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
              Name  Flags
      input         
      inputOffset   
      inputLength   
      output        
      outputOffset  
      compressor    

  private static int readInt(byte[], int);
    descriptor: ([BI)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // byte[] input
        start local 1 // int inputOffset
         0: .line 211
            aload 0 /* input */
            iload 1 /* inputOffset */
            iconst_3
            iadd
            baload
            sipush 255
            iand
         1: .line 212
            aload 0 /* input */
            iload 1 /* inputOffset */
            iconst_2
            iadd
            baload
            sipush 255
            iand
            bipush 8
            ishl
         2: .line 211
            ior
         3: .line 213
            aload 0 /* input */
            iload 1 /* inputOffset */
            iconst_1
            iadd
            baload
            sipush 255
            iand
            bipush 16
            ishl
         4: .line 211
            ior
         5: .line 214
            aload 0 /* input */
            iload 1 /* inputOffset */
            baload
            sipush 255
            iand
            bipush 24
            ishl
         6: .line 211
            ior
            ireturn
        end local 1 // int inputOffset
        end local 0 // byte[] input
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0        input  [B
            0    7     1  inputOffset  I
    MethodParameters:
             Name  Flags
      input        
      inputOffset  
}
SourceFile: "EncryptionUtils.java"
NestMembers:
  org.apache.cassandra.security.EncryptionUtils$1  org.apache.cassandra.security.EncryptionUtils$ChannelAdapter  org.apache.cassandra.security.EncryptionUtils$ChannelProxyReadChannel  org.apache.cassandra.security.EncryptionUtils$DataInputReadChannel
InnerClasses:
  org.apache.cassandra.security.EncryptionUtils$1
  private final ChannelAdapter = org.apache.cassandra.security.EncryptionUtils$ChannelAdapter of org.apache.cassandra.security.EncryptionUtils
  public ChannelProxyReadChannel = org.apache.cassandra.security.EncryptionUtils$ChannelProxyReadChannel of org.apache.cassandra.security.EncryptionUtils
  private DataInputReadChannel = org.apache.cassandra.security.EncryptionUtils$DataInputReadChannel of org.apache.cassandra.security.EncryptionUtils