final class com.google.common.hash.SipHashFunction$SipHasher extends com.google.common.hash.AbstractStreamingHasher
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.google.common.hash.SipHashFunction$SipHasher
  super_class: com.google.common.hash.AbstractStreamingHasher
{
  private static final int CHUNK_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  private final int c;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int d;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

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

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

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

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

  void <init>(int, int, long, long);
    descriptor: (IIJJ)V
    flags: (0x0000) 
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // com.google.common.hash.SipHashFunction$SipHasher this
        start local 1 // int c
        start local 2 // int d
        start local 3 // long k0
        start local 5 // long k1
         0: .line 122
            aload 0 /* this */
            bipush 8
            invokespecial com.google.common.hash.AbstractStreamingHasher.<init>:(I)V
         1: .line 109
            aload 0 /* this */
            ldc 8317987319222330741
            putfield com.google.common.hash.SipHashFunction$SipHasher.v0:J
         2: .line 110
            aload 0 /* this */
            ldc 7237128888997146477
            putfield com.google.common.hash.SipHashFunction$SipHasher.v1:J
         3: .line 111
            aload 0 /* this */
            ldc 7816392313619706465
            putfield com.google.common.hash.SipHashFunction$SipHasher.v2:J
         4: .line 112
            aload 0 /* this */
            ldc 8387220255154660723
            putfield com.google.common.hash.SipHashFunction$SipHasher.v3:J
         5: .line 115
            aload 0 /* this */
            lconst_0
            putfield com.google.common.hash.SipHashFunction$SipHasher.b:J
         6: .line 119
            aload 0 /* this */
            lconst_0
            putfield com.google.common.hash.SipHashFunction$SipHasher.finalM:J
         7: .line 123
            aload 0 /* this */
            iload 1 /* c */
            putfield com.google.common.hash.SipHashFunction$SipHasher.c:I
         8: .line 124
            aload 0 /* this */
            iload 2 /* d */
            putfield com.google.common.hash.SipHashFunction$SipHasher.d:I
         9: .line 125
            aload 0 /* this */
            dup
            getfield com.google.common.hash.SipHashFunction$SipHasher.v0:J
            lload 3 /* k0 */
            lxor
            putfield com.google.common.hash.SipHashFunction$SipHasher.v0:J
        10: .line 126
            aload 0 /* this */
            dup
            getfield com.google.common.hash.SipHashFunction$SipHasher.v1:J
            lload 5 /* k1 */
            lxor
            putfield com.google.common.hash.SipHashFunction$SipHasher.v1:J
        11: .line 127
            aload 0 /* this */
            dup
            getfield com.google.common.hash.SipHashFunction$SipHasher.v2:J
            lload 3 /* k0 */
            lxor
            putfield com.google.common.hash.SipHashFunction$SipHasher.v2:J
        12: .line 128
            aload 0 /* this */
            dup
            getfield com.google.common.hash.SipHashFunction$SipHasher.v3:J
            lload 5 /* k1 */
            lxor
            putfield com.google.common.hash.SipHashFunction$SipHasher.v3:J
        13: .line 129
            return
        end local 5 // long k1
        end local 3 // long k0
        end local 2 // int d
        end local 1 // int c
        end local 0 // com.google.common.hash.SipHashFunction$SipHasher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lcom/google/common/hash/SipHashFunction$SipHasher;
            0   14     1     c  I
            0   14     2     d  I
            0   14     3    k0  J
            0   14     5    k1  J
    MethodParameters:
      Name  Flags
      c     
      d     
      k0    
      k1    

  protected void process(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.google.common.hash.SipHashFunction$SipHasher this
        start local 1 // java.nio.ByteBuffer buffer
         0: .line 133
            aload 0 /* this */
            dup
            getfield com.google.common.hash.SipHashFunction$SipHasher.b:J
            ldc 8
            ladd
            putfield com.google.common.hash.SipHashFunction$SipHasher.b:J
         1: .line 134
            aload 0 /* this */
            aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.getLong:()J
            invokevirtual com.google.common.hash.SipHashFunction$SipHasher.processM:(J)V
         2: .line 135
            return
        end local 1 // java.nio.ByteBuffer buffer
        end local 0 // com.google.common.hash.SipHashFunction$SipHasher this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lcom/google/common/hash/SipHashFunction$SipHasher;
            0    3     1  buffer  Ljava/nio/ByteBuffer;
    MethodParameters:
        Name  Flags
      buffer  

  protected void processRemaining(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // com.google.common.hash.SipHashFunction$SipHasher this
        start local 1 // java.nio.ByteBuffer buffer
         0: .line 139
            aload 0 /* this */
            dup
            getfield com.google.common.hash.SipHashFunction$SipHasher.b:J
            aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            i2l
            ladd
            putfield com.google.common.hash.SipHashFunction$SipHasher.b:J
         1: .line 140
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 5
         3: .line 141
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.google.common.hash.SipHashFunction$SipHasher.finalM:J
            aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.get:()B
            i2l
            ldc 255
            land
            iload 2 /* i */
            lshl
            lxor
            putfield com.google.common.hash.SipHashFunction$SipHasher.finalM:J
         4: .line 140
            iinc 2 /* i */ 8
      StackMap locals:
      StackMap stack:
         5: aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 3
        end local 2 // int i
         6: .line 143
            return
        end local 1 // java.nio.ByteBuffer buffer
        end local 0 // com.google.common.hash.SipHashFunction$SipHasher this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lcom/google/common/hash/SipHashFunction$SipHasher;
            0    7     1  buffer  Ljava/nio/ByteBuffer;
            2    6     2       i  I
    MethodParameters:
        Name  Flags
      buffer  

  public com.google.common.hash.HashCode makeHash();
    descriptor: ()Lcom/google/common/hash/HashCode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // com.google.common.hash.SipHashFunction$SipHasher this
         0: .line 148
            aload 0 /* this */
            dup
            getfield com.google.common.hash.SipHashFunction$SipHasher.finalM:J
            aload 0 /* this */
            getfield com.google.common.hash.SipHashFunction$SipHasher.b:J
            bipush 56
            lshl
            lxor
            putfield com.google.common.hash.SipHashFunction$SipHasher.finalM:J
         1: .line 149
            aload 0 /* this */
            aload 0 /* this */
            getfield com.google.common.hash.SipHashFunction$SipHasher.finalM:J
            invokevirtual com.google.common.hash.SipHashFunction$SipHasher.processM:(J)V
         2: .line 152
            aload 0 /* this */
            dup
            getfield com.google.common.hash.SipHashFunction$SipHasher.v2:J
            ldc 255
            lxor
            putfield com.google.common.hash.SipHashFunction$SipHasher.v2:J
         3: .line 153
            aload 0 /* this */
            aload 0 /* this */
            getfield com.google.common.hash.SipHashFunction$SipHasher.d:I
            invokevirtual com.google.common.hash.SipHashFunction$SipHasher.sipRound:(I)V
         4: .line 154
            aload 0 /* this */
            getfield com.google.common.hash.SipHashFunction$SipHasher.v0:J
            aload 0 /* this */
            getfield com.google.common.hash.SipHashFunction$SipHasher.v1:J
            lxor
            aload 0 /* this */
            getfield com.google.common.hash.SipHashFunction$SipHasher.v2:J
            lxor
            aload 0 /* this */
            getfield com.google.common.hash.SipHashFunction$SipHasher.v3:J
            lxor
            invokestatic com.google.common.hash.HashCode.fromLong:(J)Lcom/google/common/hash/HashCode;
            areturn
        end local 0 // com.google.common.hash.SipHashFunction$SipHasher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/google/common/hash/SipHashFunction$SipHasher;

  private void processM(long);
    descriptor: (J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.google.common.hash.SipHashFunction$SipHasher this
        start local 1 // long m
         0: .line 158
            aload 0 /* this */
            dup
            getfield com.google.common.hash.SipHashFunction$SipHasher.v3:J
            lload 1 /* m */
            lxor
            putfield com.google.common.hash.SipHashFunction$SipHasher.v3:J
         1: .line 159
            aload 0 /* this */
            aload 0 /* this */
            getfield com.google.common.hash.SipHashFunction$SipHasher.c:I
            invokevirtual com.google.common.hash.SipHashFunction$SipHasher.sipRound:(I)V
         2: .line 160
            aload 0 /* this */
            dup
            getfield com.google.common.hash.SipHashFunction$SipHasher.v0:J
            lload 1 /* m */
            lxor
            putfield com.google.common.hash.SipHashFunction$SipHasher.v0:J
         3: .line 161
            return
        end local 1 // long m
        end local 0 // com.google.common.hash.SipHashFunction$SipHasher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/google/common/hash/SipHashFunction$SipHasher;
            0    4     1     m  J
    MethodParameters:
      Name  Flags
      m     

  private void sipRound(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.google.common.hash.SipHashFunction$SipHasher this
        start local 1 // int iterations
         0: .line 164
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 17
         2: .line 165
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.google.common.hash.SipHashFunction$SipHasher.v0:J
            aload 0 /* this */
            getfield com.google.common.hash.SipHashFunction$SipHasher.v1:J
            ladd
            putfield com.google.common.hash.SipHashFunction$SipHasher.v0:J
         3: .line 166
            aload 0 /* this */
            dup
            getfield com.google.common.hash.SipHashFunction$SipHasher.v2:J
            aload 0 /* this */
            getfield com.google.common.hash.SipHashFunction$SipHasher.v3:J
            ladd
            putfield com.google.common.hash.SipHashFunction$SipHasher.v2:J
         4: .line 167
            aload 0 /* this */
            aload 0 /* this */
            getfield com.google.common.hash.SipHashFunction$SipHasher.v1:J
            bipush 13
            invokestatic java.lang.Long.rotateLeft:(JI)J
            putfield com.google.common.hash.SipHashFunction$SipHasher.v1:J
         5: .line 168
            aload 0 /* this */
            aload 0 /* this */
            getfield com.google.common.hash.SipHashFunction$SipHasher.v3:J
            bipush 16
            invokestatic java.lang.Long.rotateLeft:(JI)J
            putfield com.google.common.hash.SipHashFunction$SipHasher.v3:J
         6: .line 169
            aload 0 /* this */
            dup
            getfield com.google.common.hash.SipHashFunction$SipHasher.v1:J
            aload 0 /* this */
            getfield com.google.common.hash.SipHashFunction$SipHasher.v0:J
            lxor
            putfield com.google.common.hash.SipHashFunction$SipHasher.v1:J
         7: .line 170
            aload 0 /* this */
            dup
            getfield com.google.common.hash.SipHashFunction$SipHasher.v3:J
            aload 0 /* this */
            getfield com.google.common.hash.SipHashFunction$SipHasher.v2:J
            lxor
            putfield com.google.common.hash.SipHashFunction$SipHasher.v3:J
         8: .line 171
            aload 0 /* this */
            aload 0 /* this */
            getfield com.google.common.hash.SipHashFunction$SipHasher.v0:J
            bipush 32
            invokestatic java.lang.Long.rotateLeft:(JI)J
            putfield com.google.common.hash.SipHashFunction$SipHasher.v0:J
         9: .line 172
            aload 0 /* this */
            dup
            getfield com.google.common.hash.SipHashFunction$SipHasher.v2:J
            aload 0 /* this */
            getfield com.google.common.hash.SipHashFunction$SipHasher.v1:J
            ladd
            putfield com.google.common.hash.SipHashFunction$SipHasher.v2:J
        10: .line 173
            aload 0 /* this */
            dup
            getfield com.google.common.hash.SipHashFunction$SipHasher.v0:J
            aload 0 /* this */
            getfield com.google.common.hash.SipHashFunction$SipHasher.v3:J
            ladd
            putfield com.google.common.hash.SipHashFunction$SipHasher.v0:J
        11: .line 174
            aload 0 /* this */
            aload 0 /* this */
            getfield com.google.common.hash.SipHashFunction$SipHasher.v1:J
            bipush 17
            invokestatic java.lang.Long.rotateLeft:(JI)J
            putfield com.google.common.hash.SipHashFunction$SipHasher.v1:J
        12: .line 175
            aload 0 /* this */
            aload 0 /* this */
            getfield com.google.common.hash.SipHashFunction$SipHasher.v3:J
            bipush 21
            invokestatic java.lang.Long.rotateLeft:(JI)J
            putfield com.google.common.hash.SipHashFunction$SipHasher.v3:J
        13: .line 176
            aload 0 /* this */
            dup
            getfield com.google.common.hash.SipHashFunction$SipHasher.v1:J
            aload 0 /* this */
            getfield com.google.common.hash.SipHashFunction$SipHasher.v2:J
            lxor
            putfield com.google.common.hash.SipHashFunction$SipHasher.v1:J
        14: .line 177
            aload 0 /* this */
            dup
            getfield com.google.common.hash.SipHashFunction$SipHasher.v3:J
            aload 0 /* this */
            getfield com.google.common.hash.SipHashFunction$SipHasher.v0:J
            lxor
            putfield com.google.common.hash.SipHashFunction$SipHasher.v3:J
        15: .line 178
            aload 0 /* this */
            aload 0 /* this */
            getfield com.google.common.hash.SipHashFunction$SipHasher.v2:J
            bipush 32
            invokestatic java.lang.Long.rotateLeft:(JI)J
            putfield com.google.common.hash.SipHashFunction$SipHasher.v2:J
        16: .line 164
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 2 /* i */
            iload 1 /* iterations */
            if_icmplt 2
        end local 2 // int i
        18: .line 180
            return
        end local 1 // int iterations
        end local 0 // com.google.common.hash.SipHashFunction$SipHasher this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   19     0        this  Lcom/google/common/hash/SipHashFunction$SipHasher;
            0   19     1  iterations  I
            1   18     2           i  I
    MethodParameters:
            Name  Flags
      iterations  
}
SourceFile: "SipHashFunction.java"
NestHost: com.google.common.hash.SipHashFunction
InnerClasses:
  private final SipHasher = com.google.common.hash.SipHashFunction$SipHasher of com.google.common.hash.SipHashFunction