final class com.google.common.hash.SipHashFunction$SipHasher extends com.google.common.hash.AbstractStreamingHasher
{
private static final int CHUNK_SIZE;
private final int c;
private final int d;
private long v;
private long v;
private long v;
private long v;
private long b;
private long finalM;
void <init>(int, int, long, long)
{
com.google.common.hash.SipHashFunction$SipHasher v;
long v, v, v, v, v, v, v, v, v, v;
int v, v;
v := @this: com.google.common.hash.SipHashFunction$SipHasher;
v := @parameter: int;
v := @parameter: int;
v := @parameter: long;
v := @parameter: long;
specialinvoke v.<com.google.common.hash.AbstractStreamingHasher: void <init>(int)>(8);
v.<com.google.common.hash.SipHashFunction$SipHasher: long v0> = 8317987319222330741L;
v.<com.google.common.hash.SipHashFunction$SipHasher: long v1> = 7237128888997146477L;
v.<com.google.common.hash.SipHashFunction$SipHasher: long v2> = 7816392313619706465L;
v.<com.google.common.hash.SipHashFunction$SipHasher: long v3> = 8387220255154660723L;
v.<com.google.common.hash.SipHashFunction$SipHasher: long b> = 0L;
v.<com.google.common.hash.SipHashFunction$SipHasher: long finalM> = 0L;
v.<com.google.common.hash.SipHashFunction$SipHasher: int c> = v;
v.<com.google.common.hash.SipHashFunction$SipHasher: int d> = v;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long v0>;
v = v ^ v;
v.<com.google.common.hash.SipHashFunction$SipHasher: long v0> = v;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long v1>;
v = v ^ v;
v.<com.google.common.hash.SipHashFunction$SipHasher: long v1> = v;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long v2>;
v = v ^ v;
v.<com.google.common.hash.SipHashFunction$SipHasher: long v2> = v;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long v3>;
v = v ^ v;
v.<com.google.common.hash.SipHashFunction$SipHasher: long v3> = v;
return;
}
protected void process(java.nio.ByteBuffer)
{
com.google.common.hash.SipHashFunction$SipHasher v;
long v, v, v;
java.nio.ByteBuffer v;
v := @this: com.google.common.hash.SipHashFunction$SipHasher;
v := @parameter: java.nio.ByteBuffer;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long b>;
v = v + 8L;
v.<com.google.common.hash.SipHashFunction$SipHasher: long b> = v;
v = virtualinvoke v.<java.nio.ByteBuffer: long getLong()>();
specialinvoke v.<com.google.common.hash.SipHashFunction$SipHasher: void processM(long)>(v);
return;
}
protected void processRemaining(java.nio.ByteBuffer)
{
com.google.common.hash.SipHashFunction$SipHasher v;
long v, v, v, v, v, v;
java.nio.ByteBuffer v;
byte v;
int v, v;
boolean v;
v := @this: com.google.common.hash.SipHashFunction$SipHasher;
v := @parameter: java.nio.ByteBuffer;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long b>;
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
v = v + v;
v.<com.google.common.hash.SipHashFunction$SipHasher: long b> = v;
v = 0;
label:
v = virtualinvoke v.<java.nio.ByteBuffer: boolean hasRemaining()>();
if v == 0 goto label;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long finalM>;
v = virtualinvoke v.<java.nio.ByteBuffer: byte get()>();
v = v & 255L;
v = v << v;
v = v ^ v;
v.<com.google.common.hash.SipHashFunction$SipHasher: long finalM> = v;
v = v + 8;
goto label;
label:
return;
}
protected com.google.common.hash.HashCode makeHash()
{
com.google.common.hash.SipHashFunction$SipHasher v;
long v, v, v, v, v, v, v, v, v, v, v, v, v, v;
int v;
com.google.common.hash.HashCode v;
v := @this: com.google.common.hash.SipHashFunction$SipHasher;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long finalM>;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long b>;
v = v << 56;
v = v ^ v;
v.<com.google.common.hash.SipHashFunction$SipHasher: long finalM> = v;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long finalM>;
specialinvoke v.<com.google.common.hash.SipHashFunction$SipHasher: void processM(long)>(v);
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long v2>;
v = v ^ 255L;
v.<com.google.common.hash.SipHashFunction$SipHasher: long v2> = v;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: int d>;
specialinvoke v.<com.google.common.hash.SipHashFunction$SipHasher: void sipRound(int)>(v);
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long v0>;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long v1>;
v = v ^ v;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long v2>;
v = v ^ v;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long v3>;
v = v ^ v;
v = staticinvoke <com.google.common.hash.HashCode: com.google.common.hash.HashCode fromLong(long)>(v);
return v;
}
private void processM(long)
{
int v;
com.google.common.hash.SipHashFunction$SipHasher v;
long v, v, v, v, v;
v := @this: com.google.common.hash.SipHashFunction$SipHasher;
v := @parameter: long;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long v3>;
v = v ^ v;
v.<com.google.common.hash.SipHashFunction$SipHasher: long v3> = v;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: int c>;
specialinvoke v.<com.google.common.hash.SipHashFunction$SipHasher: void sipRound(int)>(v);
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long v0>;
v = v ^ v;
v.<com.google.common.hash.SipHashFunction$SipHasher: long v0> = v;
return;
}
private void sipRound(int)
{
com.google.common.hash.SipHashFunction$SipHasher v;
long v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
int v, v;
v := @this: com.google.common.hash.SipHashFunction$SipHasher;
v := @parameter: int;
v = 0;
label:
if v >= v goto label;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long v0>;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long v1>;
v = v + v;
v.<com.google.common.hash.SipHashFunction$SipHasher: long v0> = v;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long v2>;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long v3>;
v = v + v;
v.<com.google.common.hash.SipHashFunction$SipHasher: long v2> = v;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long v1>;
v = staticinvoke <java.lang.Long: long rotateLeft(long,int)>(v, 13);
v.<com.google.common.hash.SipHashFunction$SipHasher: long v1> = v;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long v3>;
v = staticinvoke <java.lang.Long: long rotateLeft(long,int)>(v, 16);
v.<com.google.common.hash.SipHashFunction$SipHasher: long v3> = v;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long v1>;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long v0>;
v = v ^ v;
v.<com.google.common.hash.SipHashFunction$SipHasher: long v1> = v;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long v3>;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long v2>;
v = v ^ v;
v.<com.google.common.hash.SipHashFunction$SipHasher: long v3> = v;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long v0>;
v = staticinvoke <java.lang.Long: long rotateLeft(long,int)>(v, 32);
v.<com.google.common.hash.SipHashFunction$SipHasher: long v0> = v;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long v2>;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long v1>;
v = v + v;
v.<com.google.common.hash.SipHashFunction$SipHasher: long v2> = v;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long v0>;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long v3>;
v = v + v;
v.<com.google.common.hash.SipHashFunction$SipHasher: long v0> = v;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long v1>;
v = staticinvoke <java.lang.Long: long rotateLeft(long,int)>(v, 17);
v.<com.google.common.hash.SipHashFunction$SipHasher: long v1> = v;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long v3>;
v = staticinvoke <java.lang.Long: long rotateLeft(long,int)>(v, 21);
v.<com.google.common.hash.SipHashFunction$SipHasher: long v3> = v;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long v1>;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long v2>;
v = v ^ v;
v.<com.google.common.hash.SipHashFunction$SipHasher: long v1> = v;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long v3>;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long v0>;
v = v ^ v;
v.<com.google.common.hash.SipHashFunction$SipHasher: long v3> = v;
v = v.<com.google.common.hash.SipHashFunction$SipHasher: long v2>;
v = staticinvoke <java.lang.Long: long rotateLeft(long,int)>(v, 32);
v.<com.google.common.hash.SipHashFunction$SipHasher: long v2> = v;
v = v + 1;
goto label;
label:
return;
}
}