public class sun.misc.Hashing
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.misc.Hashing
  super_class: java.lang.Object
{
  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.misc.Hashing this
         0: .line 39
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 40
            new java.lang.Error
            dup
            ldc "No instances"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // sun.misc.Hashing this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/misc/Hashing;

  public static int murmur3_32(byte[]);
    descriptor: ([B)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // byte[] data
         0: .line 44
            iconst_0
            aload 0 /* data */
            iconst_0
            aload 0 /* data */
            arraylength
            invokestatic sun.misc.Hashing.murmur3_32:(I[BII)I
            ireturn
        end local 0 // byte[] data
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  data  [B
    MethodParameters:
      Name  Flags
      data  

  public static int murmur3_32(int, byte[]);
    descriptor: (I[B)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // int seed
        start local 1 // byte[] data
         0: .line 48
            iload 0 /* seed */
            aload 1 /* data */
            iconst_0
            aload 1 /* data */
            arraylength
            invokestatic sun.misc.Hashing.murmur3_32:(I[BII)I
            ireturn
        end local 1 // byte[] data
        end local 0 // int seed
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  seed  I
            0    1     1  data  [B
    MethodParameters:
      Name  Flags
      seed  
      data  

  public static int murmur3_32(int, byte[], int, int);
    descriptor: (I[BII)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // int seed
        start local 1 // byte[] data
        start local 2 // int offset
        start local 3 // int len
         0: .line 53
            iload 0 /* seed */
            istore 4 /* h1 */
        start local 4 // int h1
         1: .line 54
            iload 3 /* len */
            istore 5 /* count */
        start local 5 // int count
         2: .line 57
            goto 18
         3: .line 58
      StackMap locals: int int
      StackMap stack:
            aload 1 /* data */
            iload 2 /* offset */
            baload
            sipush 255
            iand
         4: .line 59
            aload 1 /* data */
            iload 2 /* offset */
            iconst_1
            iadd
            baload
            sipush 255
            iand
            bipush 8
            ishl
         5: .line 58
            ior
         6: .line 60
            aload 1 /* data */
            iload 2 /* offset */
            iconst_2
            iadd
            baload
            sipush 255
            iand
            bipush 16
            ishl
         7: .line 58
            ior
         8: .line 61
            aload 1 /* data */
            iload 2 /* offset */
            iconst_3
            iadd
            baload
            bipush 24
            ishl
         9: .line 58
            ior
            istore 6 /* k1 */
        start local 6 // int k1
        10: .line 63
            iinc 5 /* count */ -4
        11: .line 64
            iinc 2 /* offset */ 4
        12: .line 66
            iload 6 /* k1 */
            ldc -862048943
            imul
            istore 6 /* k1 */
        13: .line 67
            iload 6 /* k1 */
            bipush 15
            invokestatic java.lang.Integer.rotateLeft:(II)I
            istore 6 /* k1 */
        14: .line 68
            iload 6 /* k1 */
            ldc 461845907
            imul
            istore 6 /* k1 */
        15: .line 70
            iload 4 /* h1 */
            iload 6 /* k1 */
            ixor
            istore 4 /* h1 */
        16: .line 71
            iload 4 /* h1 */
            bipush 13
            invokestatic java.lang.Integer.rotateLeft:(II)I
            istore 4 /* h1 */
        17: .line 72
            iload 4 /* h1 */
            iconst_5
            imul
            ldc -430675100
            iadd
            istore 4 /* h1 */
        end local 6 // int k1
        18: .line 57
      StackMap locals:
      StackMap stack:
            iload 5 /* count */
            iconst_4
            if_icmpge 3
        19: .line 77
            iload 5 /* count */
            ifle 29
        20: .line 78
            iconst_0
            istore 6 /* k1 */
        start local 6 // int k1
        21: .line 80
            iload 5 /* count */
            tableswitch { // 1 - 3
                    1: 24
                    2: 23
                    3: 22
              default: 25
          }
        22: .line 82
      StackMap locals: int
      StackMap stack:
            iload 6 /* k1 */
            aload 1 /* data */
            iload 2 /* offset */
            iconst_2
            iadd
            baload
            sipush 255
            iand
            bipush 16
            ishl
            ixor
            istore 6 /* k1 */
        23: .line 85
      StackMap locals:
      StackMap stack:
            iload 6 /* k1 */
            aload 1 /* data */
            iload 2 /* offset */
            iconst_1
            iadd
            baload
            sipush 255
            iand
            bipush 8
            ishl
            ixor
            istore 6 /* k1 */
        24: .line 88
      StackMap locals:
      StackMap stack:
            iload 6 /* k1 */
            aload 1 /* data */
            iload 2 /* offset */
            baload
            sipush 255
            iand
            ixor
            istore 6 /* k1 */
        25: .line 91
      StackMap locals:
      StackMap stack:
            iload 6 /* k1 */
            ldc -862048943
            imul
            istore 6 /* k1 */
        26: .line 92
            iload 6 /* k1 */
            bipush 15
            invokestatic java.lang.Integer.rotateLeft:(II)I
            istore 6 /* k1 */
        27: .line 93
            iload 6 /* k1 */
            ldc 461845907
            imul
            istore 6 /* k1 */
        28: .line 94
            iload 4 /* h1 */
            iload 6 /* k1 */
            ixor
            istore 4 /* h1 */
        end local 6 // int k1
        29: .line 100
      StackMap locals:
      StackMap stack:
            iload 4 /* h1 */
            iload 3 /* len */
            ixor
            istore 4 /* h1 */
        30: .line 103
            iload 4 /* h1 */
            iload 4 /* h1 */
            bipush 16
            iushr
            ixor
            istore 4 /* h1 */
        31: .line 104
            iload 4 /* h1 */
            ldc -2048144789
            imul
            istore 4 /* h1 */
        32: .line 105
            iload 4 /* h1 */
            iload 4 /* h1 */
            bipush 13
            iushr
            ixor
            istore 4 /* h1 */
        33: .line 106
            iload 4 /* h1 */
            ldc -1028477387
            imul
            istore 4 /* h1 */
        34: .line 107
            iload 4 /* h1 */
            iload 4 /* h1 */
            bipush 16
            iushr
            ixor
            istore 4 /* h1 */
        35: .line 109
            iload 4 /* h1 */
            ireturn
        end local 5 // int count
        end local 4 // int h1
        end local 3 // int len
        end local 2 // int offset
        end local 1 // byte[] data
        end local 0 // int seed
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   36     0    seed  I
            0   36     1    data  [B
            0   36     2  offset  I
            0   36     3     len  I
            1   36     4      h1  I
            2   36     5   count  I
           10   18     6      k1  I
           21   29     6      k1  I
    MethodParameters:
        Name  Flags
      seed    
      data    
      offset  
      len     

  public static int murmur3_32(char[]);
    descriptor: ([C)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // char[] data
         0: .line 113
            iconst_0
            aload 0 /* data */
            iconst_0
            aload 0 /* data */
            arraylength
            invokestatic sun.misc.Hashing.murmur3_32:(I[CII)I
            ireturn
        end local 0 // char[] data
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  data  [C
    MethodParameters:
      Name  Flags
      data  

  public static int murmur3_32(int, char[]);
    descriptor: (I[C)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // int seed
        start local 1 // char[] data
         0: .line 117
            iload 0 /* seed */
            aload 1 /* data */
            iconst_0
            aload 1 /* data */
            arraylength
            invokestatic sun.misc.Hashing.murmur3_32:(I[CII)I
            ireturn
        end local 1 // char[] data
        end local 0 // int seed
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  seed  I
            0    1     1  data  [C
    MethodParameters:
      Name  Flags
      seed  
      data  

  public static int murmur3_32(int, char[], int, int);
    descriptor: (I[CII)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=4
        start local 0 // int seed
        start local 1 // char[] data
        start local 2 // int offset
        start local 3 // int len
         0: .line 121
            iload 0 /* seed */
            istore 4 /* h1 */
        start local 4 // int h1
         1: .line 123
            iload 2 /* offset */
            istore 5 /* off */
        start local 5 // int off
         2: .line 124
            iload 3 /* len */
            istore 6 /* count */
        start local 6 // int count
         3: .line 127
            goto 12
         4: .line 128
      StackMap locals: int int int
      StackMap stack:
            aload 1 /* data */
            iload 5 /* off */
            iinc 5 /* off */ 1
            caload
            ldc 65535
            iand
            aload 1 /* data */
            iload 5 /* off */
            iinc 5 /* off */ 1
            caload
            bipush 16
            ishl
            ior
            istore 7 /* k1 */
        start local 7 // int k1
         5: .line 130
            iinc 6 /* count */ -2
         6: .line 132
            iload 7 /* k1 */
            ldc -862048943
            imul
            istore 7 /* k1 */
         7: .line 133
            iload 7 /* k1 */
            bipush 15
            invokestatic java.lang.Integer.rotateLeft:(II)I
            istore 7 /* k1 */
         8: .line 134
            iload 7 /* k1 */
            ldc 461845907
            imul
            istore 7 /* k1 */
         9: .line 136
            iload 4 /* h1 */
            iload 7 /* k1 */
            ixor
            istore 4 /* h1 */
        10: .line 137
            iload 4 /* h1 */
            bipush 13
            invokestatic java.lang.Integer.rotateLeft:(II)I
            istore 4 /* h1 */
        11: .line 138
            iload 4 /* h1 */
            iconst_5
            imul
            ldc -430675100
            iadd
            istore 4 /* h1 */
        end local 7 // int k1
        12: .line 127
      StackMap locals:
      StackMap stack:
            iload 6 /* count */
            iconst_2
            if_icmpge 4
        13: .line 143
            iload 6 /* count */
            ifle 19
        14: .line 144
            aload 1 /* data */
            iload 5 /* off */
            caload
            istore 7 /* k1 */
        start local 7 // int k1
        15: .line 146
            iload 7 /* k1 */
            ldc -862048943
            imul
            istore 7 /* k1 */
        16: .line 147
            iload 7 /* k1 */
            bipush 15
            invokestatic java.lang.Integer.rotateLeft:(II)I
            istore 7 /* k1 */
        17: .line 148
            iload 7 /* k1 */
            ldc 461845907
            imul
            istore 7 /* k1 */
        18: .line 149
            iload 4 /* h1 */
            iload 7 /* k1 */
            ixor
            istore 4 /* h1 */
        end local 7 // int k1
        19: .line 154
      StackMap locals:
      StackMap stack:
            iload 4 /* h1 */
            iload 3 /* len */
            iconst_2
            imul
            ixor
            istore 4 /* h1 */
        20: .line 157
            iload 4 /* h1 */
            iload 4 /* h1 */
            bipush 16
            iushr
            ixor
            istore 4 /* h1 */
        21: .line 158
            iload 4 /* h1 */
            ldc -2048144789
            imul
            istore 4 /* h1 */
        22: .line 159
            iload 4 /* h1 */
            iload 4 /* h1 */
            bipush 13
            iushr
            ixor
            istore 4 /* h1 */
        23: .line 160
            iload 4 /* h1 */
            ldc -1028477387
            imul
            istore 4 /* h1 */
        24: .line 161
            iload 4 /* h1 */
            iload 4 /* h1 */
            bipush 16
            iushr
            ixor
            istore 4 /* h1 */
        25: .line 163
            iload 4 /* h1 */
            ireturn
        end local 6 // int count
        end local 5 // int off
        end local 4 // int h1
        end local 3 // int len
        end local 2 // int offset
        end local 1 // char[] data
        end local 0 // int seed
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   26     0    seed  I
            0   26     1    data  [C
            0   26     2  offset  I
            0   26     3     len  I
            1   26     4      h1  I
            2   26     5     off  I
            3   26     6   count  I
            5   12     7      k1  I
           15   19     7      k1  I
    MethodParameters:
        Name  Flags
      seed    
      data    
      offset  
      len     

  public static int murmur3_32(int[]);
    descriptor: ([I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // int[] data
         0: .line 167
            iconst_0
            aload 0 /* data */
            iconst_0
            aload 0 /* data */
            arraylength
            invokestatic sun.misc.Hashing.murmur3_32:(I[III)I
            ireturn
        end local 0 // int[] data
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  data  [I
    MethodParameters:
      Name  Flags
      data  

  public static int murmur3_32(int, int[]);
    descriptor: (I[I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // int seed
        start local 1 // int[] data
         0: .line 171
            iload 0 /* seed */
            aload 1 /* data */
            iconst_0
            aload 1 /* data */
            arraylength
            invokestatic sun.misc.Hashing.murmur3_32:(I[III)I
            ireturn
        end local 1 // int[] data
        end local 0 // int seed
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  seed  I
            0    1     1  data  [I
    MethodParameters:
      Name  Flags
      seed  
      data  

  public static int murmur3_32(int, int[], int, int);
    descriptor: (I[III)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=4
        start local 0 // int seed
        start local 1 // int[] data
        start local 2 // int offset
        start local 3 // int len
         0: .line 175
            iload 0 /* seed */
            istore 4 /* h1 */
        start local 4 // int h1
         1: .line 177
            iload 2 /* offset */
            istore 5 /* off */
        start local 5 // int off
         2: .line 178
            iload 2 /* offset */
            iload 3 /* len */
            iadd
            istore 6 /* end */
        start local 6 // int end
         3: .line 181
            goto 11
         4: .line 182
      StackMap locals: int int int
      StackMap stack:
            aload 1 /* data */
            iload 5 /* off */
            iinc 5 /* off */ 1
            iaload
            istore 7 /* k1 */
        start local 7 // int k1
         5: .line 184
            iload 7 /* k1 */
            ldc -862048943
            imul
            istore 7 /* k1 */
         6: .line 185
            iload 7 /* k1 */
            bipush 15
            invokestatic java.lang.Integer.rotateLeft:(II)I
            istore 7 /* k1 */
         7: .line 186
            iload 7 /* k1 */
            ldc 461845907
            imul
            istore 7 /* k1 */
         8: .line 188
            iload 4 /* h1 */
            iload 7 /* k1 */
            ixor
            istore 4 /* h1 */
         9: .line 189
            iload 4 /* h1 */
            bipush 13
            invokestatic java.lang.Integer.rotateLeft:(II)I
            istore 4 /* h1 */
        10: .line 190
            iload 4 /* h1 */
            iconst_5
            imul
            ldc -430675100
            iadd
            istore 4 /* h1 */
        end local 7 // int k1
        11: .line 181
      StackMap locals:
      StackMap stack:
            iload 5 /* off */
            iload 6 /* end */
            if_icmplt 4
        12: .line 197
            iload 4 /* h1 */
            iload 3 /* len */
            iconst_4
            imul
            ixor
            istore 4 /* h1 */
        13: .line 200
            iload 4 /* h1 */
            iload 4 /* h1 */
            bipush 16
            iushr
            ixor
            istore 4 /* h1 */
        14: .line 201
            iload 4 /* h1 */
            ldc -2048144789
            imul
            istore 4 /* h1 */
        15: .line 202
            iload 4 /* h1 */
            iload 4 /* h1 */
            bipush 13
            iushr
            ixor
            istore 4 /* h1 */
        16: .line 203
            iload 4 /* h1 */
            ldc -1028477387
            imul
            istore 4 /* h1 */
        17: .line 204
            iload 4 /* h1 */
            iload 4 /* h1 */
            bipush 16
            iushr
            ixor
            istore 4 /* h1 */
        18: .line 206
            iload 4 /* h1 */
            ireturn
        end local 6 // int end
        end local 5 // int off
        end local 4 // int h1
        end local 3 // int len
        end local 2 // int offset
        end local 1 // int[] data
        end local 0 // int seed
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   19     0    seed  I
            0   19     1    data  [I
            0   19     2  offset  I
            0   19     3     len  I
            1   19     4      h1  I
            2   19     5     off  I
            3   19     6     end  I
            5   11     7      k1  I
    MethodParameters:
        Name  Flags
      seed    
      data    
      offset  
      len     

  public static int stringHash32(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String string
         0: .line 236
            getstatic sun.misc.Hashing$Holder.LANG_ACCESS:Lsun/misc/JavaLangAccess;
            aload 0 /* string */
            invokeinterface sun.misc.JavaLangAccess.getStringHash32:(Ljava/lang/String;)I
            ireturn
        end local 0 // java.lang.String string
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  string  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      string  

  public static int randomHashSeed(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=3, args_size=1
        start local 0 // java.lang.Object instance
         0: .line 248
            invokestatic sun.misc.VM.isBooted:()Z
            ifeq 3
         1: .line 249
            invokestatic java.util.concurrent.ThreadLocalRandom.current:()Ljava/util/concurrent/ThreadLocalRandom;
            invokevirtual java.util.concurrent.ThreadLocalRandom.nextInt:()I
            istore 1 /* seed */
        start local 1 // int seed
         2: .line 250
            goto 13
        end local 1 // int seed
         3: .line 253
      StackMap locals:
      StackMap stack:
            bipush 7
            newarray 10
            dup
            iconst_0
         4: .line 254
            ldc Lsun/misc/Hashing;
            invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
            iastore
            dup
            iconst_1
         5: .line 255
            aload 0 /* instance */
            invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
            iastore
            dup
            iconst_2
         6: .line 256
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
            iastore
            dup
            iconst_3
         7: .line 257
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getId:()J
            l2i
            iastore
            dup
            iconst_4
         8: .line 258
            invokestatic java.lang.System.currentTimeMillis:()J
            iconst_2
            lushr
            l2i
            iastore
            dup
            iconst_5
         9: .line 259
            invokestatic java.lang.System.nanoTime:()J
            iconst_5
            lushr
            l2i
            iastore
            dup
            bipush 6
        10: .line 260
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            invokevirtual java.lang.Runtime.freeMemory:()J
            iconst_4
            lushr
            l2i
            iastore
        11: .line 253
            astore 2 /* hashing_seed */
        start local 2 // int[] hashing_seed
        12: .line 263
            aload 2 /* hashing_seed */
            invokestatic sun.misc.Hashing.murmur3_32:([I)I
            istore 1 /* seed */
        end local 2 // int[] hashing_seed
        start local 1 // int seed
        13: .line 267
      StackMap locals: int
      StackMap stack:
            iload 1 /* seed */
            ifeq 14
            iload 1 /* seed */
            goto 15
      StackMap locals:
      StackMap stack:
        14: iconst_1
      StackMap locals:
      StackMap stack: int
        15: ireturn
        end local 1 // int seed
        end local 0 // java.lang.Object instance
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   16     0      instance  Ljava/lang/Object;
            2    3     1          seed  I
           13   16     1          seed  I
           12   13     2  hashing_seed  [I
    MethodParameters:
          Name  Flags
      instance  
}
SourceFile: "Hashing.java"
NestMembers:
  sun.misc.Hashing$Holder
InnerClasses:
  private Holder = sun.misc.Hashing$Holder of sun.misc.Hashing