public class org.apache.cassandra.utils.vint.VIntCoding
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.utils.vint.VIntCoding
  super_class: java.lang.Object
{
  protected static final io.netty.util.concurrent.FastThreadLocal<byte[]> encodingBuffer;
    descriptor: Lio/netty/util/concurrent/FastThreadLocal;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    Signature: Lio/netty/util/concurrent/FastThreadLocal<[B>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 150
            new org.apache.cassandra.utils.vint.VIntCoding$1
            dup
            invokespecial org.apache.cassandra.utils.vint.VIntCoding$1.<init>:()V
            putstatic org.apache.cassandra.utils.vint.VIntCoding.encodingBuffer:Lio/netty/util/concurrent/FastThreadLocal;
         1: .line 157
            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.utils.vint.VIntCoding this
         0: .line 61
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.apache.cassandra.utils.vint.VIntCoding this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/utils/vint/VIntCoding;

  public static long readUnsignedVInt(java.io.DataInput);
    descriptor: (Ljava/io/DataInput;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=1
        start local 0 // java.io.DataInput input
         0: .line 66
            aload 0 /* input */
            invokeinterface java.io.DataInput.readByte:()B
            istore 1 /* firstByte */
        start local 1 // int firstByte
         1: .line 69
            iload 1 /* firstByte */
            iflt 3
         2: .line 70
            iload 1 /* firstByte */
            i2l
            lreturn
         3: .line 72
      StackMap locals: int
      StackMap stack:
            iload 1 /* firstByte */
            invokestatic org.apache.cassandra.utils.vint.VIntCoding.numberOfExtraBytesToRead:(I)I
            istore 2 /* size */
        start local 2 // int size
         4: .line 73
            iload 1 /* firstByte */
            iload 2 /* size */
            invokestatic org.apache.cassandra.utils.vint.VIntCoding.firstByteValueMask:(I)I
            iand
            i2l
            lstore 3 /* retval */
        start local 3 // long retval
         5: .line 74
            iconst_0
            istore 5 /* ii */
        start local 5 // int ii
         6: goto 11
         7: .line 76
      StackMap locals: int long int
      StackMap stack:
            aload 0 /* input */
            invokeinterface java.io.DataInput.readByte:()B
            istore 6 /* b */
        start local 6 // byte b
         8: .line 77
            lload 3 /* retval */
            bipush 8
            lshl
            lstore 3 /* retval */
         9: .line 78
            lload 3 /* retval */
            iload 6 /* b */
            sipush 255
            iand
            i2l
            lor
            lstore 3 /* retval */
        end local 6 // byte b
        10: .line 74
            iinc 5 /* ii */ 1
      StackMap locals:
      StackMap stack:
        11: iload 5 /* ii */
            iload 2 /* size */
            if_icmplt 7
        end local 5 // int ii
        12: .line 81
            lload 3 /* retval */
            lreturn
        end local 3 // long retval
        end local 2 // int size
        end local 1 // int firstByte
        end local 0 // java.io.DataInput input
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   13     0      input  Ljava/io/DataInput;
            1   13     1  firstByte  I
            4   13     2       size  I
            5   13     3     retval  J
            6   12     5         ii  I
            8   10     6          b  B
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      input  

  public static long getUnsignedVInt(java.nio.ByteBuffer, int);
    descriptor: (Ljava/nio/ByteBuffer;I)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.nio.ByteBuffer input
        start local 1 // int readerIndex
         0: .line 95
            aload 0 /* input */
            iload 1 /* readerIndex */
            aload 0 /* input */
            invokevirtual java.nio.ByteBuffer.limit:()I
            invokestatic org.apache.cassandra.utils.vint.VIntCoding.getUnsignedVInt:(Ljava/nio/ByteBuffer;II)J
            lreturn
        end local 1 // int readerIndex
        end local 0 // java.nio.ByteBuffer input
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0        input  Ljava/nio/ByteBuffer;
            0    1     1  readerIndex  I
    MethodParameters:
             Name  Flags
      input        
      readerIndex  

  public static long getUnsignedVInt(java.nio.ByteBuffer, int, int);
    descriptor: (Ljava/nio/ByteBuffer;II)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=3
        start local 0 // java.nio.ByteBuffer input
        start local 1 // int readerIndex
        start local 2 // int readerLimit
         0: .line 100
            iload 1 /* readerIndex */
            iload 2 /* readerLimit */
            if_icmplt 2
         1: .line 101
            ldc -1
            lreturn
         2: .line 103
      StackMap locals:
      StackMap stack:
            aload 0 /* input */
            iload 1 /* readerIndex */
            iinc 1 /* readerIndex */ 1
            invokevirtual java.nio.ByteBuffer.get:(I)B
            istore 3 /* firstByte */
        start local 3 // int firstByte
         3: .line 106
            iload 3 /* firstByte */
            iflt 5
         4: .line 107
            iload 3 /* firstByte */
            i2l
            lreturn
         5: .line 109
      StackMap locals: int
      StackMap stack:
            iload 3 /* firstByte */
            invokestatic org.apache.cassandra.utils.vint.VIntCoding.numberOfExtraBytesToRead:(I)I
            istore 4 /* size */
        start local 4 // int size
         6: .line 110
            iload 1 /* readerIndex */
            iload 4 /* size */
            iadd
            iload 2 /* readerLimit */
            if_icmple 8
         7: .line 111
            ldc -1
            lreturn
         8: .line 113
      StackMap locals: int
      StackMap stack:
            iload 3 /* firstByte */
            iload 4 /* size */
            invokestatic org.apache.cassandra.utils.vint.VIntCoding.firstByteValueMask:(I)I
            iand
            i2l
            lstore 5 /* retval */
        start local 5 // long retval
         9: .line 114
            iconst_0
            istore 7 /* ii */
        start local 7 // int ii
        10: goto 15
        11: .line 116
      StackMap locals: long int
      StackMap stack:
            aload 0 /* input */
            iload 1 /* readerIndex */
            iinc 1 /* readerIndex */ 1
            invokevirtual java.nio.ByteBuffer.get:(I)B
            istore 8 /* b */
        start local 8 // byte b
        12: .line 117
            lload 5 /* retval */
            bipush 8
            lshl
            lstore 5 /* retval */
        13: .line 118
            lload 5 /* retval */
            iload 8 /* b */
            sipush 255
            iand
            i2l
            lor
            lstore 5 /* retval */
        end local 8 // byte b
        14: .line 114
            iinc 7 /* ii */ 1
      StackMap locals:
      StackMap stack:
        15: iload 7 /* ii */
            iload 4 /* size */
            if_icmplt 11
        end local 7 // int ii
        16: .line 121
            lload 5 /* retval */
            lreturn
        end local 5 // long retval
        end local 4 // int size
        end local 3 // int firstByte
        end local 2 // int readerLimit
        end local 1 // int readerIndex
        end local 0 // java.nio.ByteBuffer input
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   17     0        input  Ljava/nio/ByteBuffer;
            0   17     1  readerIndex  I
            0   17     2  readerLimit  I
            3   17     3    firstByte  I
            6   17     4         size  I
            9   17     5       retval  J
           10   16     7           ii  I
           12   14     8            b  B
    MethodParameters:
             Name  Flags
      input        
      readerIndex  
      readerLimit  

  public static long readVInt(java.io.DataInput);
    descriptor: (Ljava/io/DataInput;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.io.DataInput input
         0: .line 126
            aload 0 /* input */
            invokestatic org.apache.cassandra.utils.vint.VIntCoding.readUnsignedVInt:(Ljava/io/DataInput;)J
            invokestatic org.apache.cassandra.utils.vint.VIntCoding.decodeZigZag64:(J)J
            lreturn
        end local 0 // java.io.DataInput input
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  input  Ljava/io/DataInput;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      input  

  public static int firstByteValueMask(int);
    descriptor: (I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int extraBytesToRead
         0: .line 133
            sipush 255
            iload 0 /* extraBytesToRead */
            ishr
            ireturn
        end local 0 // int extraBytesToRead
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0  extraBytesToRead  I
    MethodParameters:
                  Name  Flags
      extraBytesToRead  

  public static int encodeExtraBytesToRead(int);
    descriptor: (I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int extraBytesToRead
         0: .line 139
            iload 0 /* extraBytesToRead */
            invokestatic org.apache.cassandra.utils.vint.VIntCoding.firstByteValueMask:(I)I
            iconst_m1
            ixor
            ireturn
        end local 0 // int extraBytesToRead
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0  extraBytesToRead  I
    MethodParameters:
                  Name  Flags
      extraBytesToRead  

  public static int numberOfExtraBytesToRead(int);
    descriptor: (I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int firstByte
         0: .line 147
            iload 0 /* firstByte */
            iconst_m1
            ixor
            invokestatic java.lang.Integer.numberOfLeadingZeros:(I)I
            bipush 24
            isub
            ireturn
        end local 0 // int firstByte
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  firstByte  I
    MethodParameters:
           Name  Flags
      firstByte  

  public static void writeUnsignedVInt(long, java.io.DataOutput);
    descriptor: (JLjava/io/DataOutput;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // long value
        start local 2 // java.io.DataOutput output
         0: .line 161
            lload 0 /* value */
            invokestatic org.apache.cassandra.utils.vint.VIntCoding.computeUnsignedVIntSize:(J)I
            istore 3 /* size */
        start local 3 // int size
         1: .line 162
            iload 3 /* size */
            iconst_1
            if_icmpne 4
         2: .line 164
            aload 2 /* output */
            lload 0 /* value */
            l2i
            invokeinterface java.io.DataOutput.write:(I)V
         3: .line 165
            return
         4: .line 168
      StackMap locals: int
      StackMap stack:
            aload 2 /* output */
            lload 0 /* value */
            iload 3 /* size */
            invokestatic org.apache.cassandra.utils.vint.VIntCoding.encodeVInt:(JI)[B
            iconst_0
            iload 3 /* size */
            invokeinterface java.io.DataOutput.write:([BII)V
         5: .line 169
            return
        end local 3 // int size
        end local 2 // java.io.DataOutput output
        end local 0 // long value
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0   value  J
            0    6     2  output  Ljava/io/DataOutput;
            1    6     3    size  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      value   
      output  

  public static byte[] encodeVInt(long, int);
    descriptor: (JI)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
         0: .line 171
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tInline cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeInvisibleAnnotations: 
      Inline()
    RuntimeInvisibleTypeAnnotations: 
      METHOD_RETURN, location=[ARRAY_ELEMENT]
        Inline()
    MethodParameters:
       Name  Flags
      value  
      size   

  public static void writeVInt(long, java.io.DataOutput);
    descriptor: (JLjava/io/DataOutput;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // long value
        start local 2 // java.io.DataOutput output
         0: .line 188
            lload 0 /* value */
            invokestatic org.apache.cassandra.utils.vint.VIntCoding.encodeZigZag64:(J)J
            aload 2 /* output */
            invokestatic org.apache.cassandra.utils.vint.VIntCoding.writeUnsignedVInt:(JLjava/io/DataOutput;)V
         1: .line 189
            return
        end local 2 // java.io.DataOutput output
        end local 0 // long value
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0   value  J
            0    2     2  output  Ljava/io/DataOutput;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      value   
      output  

  public static long decodeZigZag64(long);
    descriptor: (J)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // long n
         0: .line 203
            lload 0 /* n */
            iconst_1
            lushr
            lload 0 /* n */
            lconst_1
            land
            lneg
            lxor
            lreturn
        end local 0 // long n
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     n  J
    MethodParameters:
      Name  Flags
      n     final

  public static long encodeZigZag64(long);
    descriptor: (J)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // long n
         0: .line 219
            lload 0 /* n */
            iconst_1
            lshl
            lload 0 /* n */
            bipush 63
            lshr
            lxor
            lreturn
        end local 0 // long n
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     n  J
    MethodParameters:
      Name  Flags
      n     final

  public static int computeVIntSize(long);
    descriptor: (J)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // long param
         0: .line 225
            lload 0 /* param */
            invokestatic org.apache.cassandra.utils.vint.VIntCoding.encodeZigZag64:(J)J
            invokestatic org.apache.cassandra.utils.vint.VIntCoding.computeUnsignedVIntSize:(J)I
            ireturn
        end local 0 // long param
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  param  J
    MethodParameters:
       Name  Flags
      param  final

  public static int computeUnsignedVIntSize(long);
    descriptor: (J)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // long value
         0: .line 231
            lload 0 /* value */
            lconst_1
            lor
            invokestatic java.lang.Long.numberOfLeadingZeros:(J)I
            istore 2 /* magnitude */
        start local 2 // int magnitude
         1: .line 232
            bipush 9
            iload 2 /* magnitude */
            iconst_1
            isub
            bipush 7
            idiv
            isub
            ireturn
        end local 2 // int magnitude
        end local 0 // long value
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0      value  J
            1    2     2  magnitude  I
    MethodParameters:
       Name  Flags
      value  final
}
SourceFile: "VIntCoding.java"
NestMembers:
  org.apache.cassandra.utils.vint.VIntCoding$1
InnerClasses:
  org.apache.cassandra.utils.vint.VIntCoding$1