public class oadd.org.apache.commons.codec.digest.XXHash extends java.lang.Object implements java.util.zip.Checksum
{
private static final int BUF_SIZE;
private static final int ROTATE_BITS;
private static final int PRIME1;
private static final int PRIME2;
private static final int PRIME3;
private static final int PRIME4;
private static final int PRIME5;
private final byte[] oneByte;
private final int[] state;
private final byte[] buffer;
private final int seed;
private int totalLen;
private int pos;
private boolean stateUpdated;
public void <init>()
{
oadd.org.apache.commons.codec.digest.XXHash v;
v := @this: oadd.org.apache.commons.codec.digest.XXHash;
specialinvoke v.<oadd.org.apache.commons.codec.digest.XXHash32: void <init>(int)>(0);
return;
}
public void <init>(int)
{
byte[] v, v;
int[] v;
int v;
oadd.org.apache.commons.codec.digest.XXHash v;
v := @this: oadd.org.apache.commons.codec.digest.XXHash;
v := @parameter: int;
specialinvoke v.<java.lang.Object: void <init>()>();
v = newarray (byte)[1];
v.<oadd.org.apache.commons.codec.digest.XXHash32: byte[] oneByte> = v;
v = newarray (int)[4];
v.<oadd.org.apache.commons.codec.digest.XXHash32: int[] state> = v;
v = newarray (byte)[16];
v.<oadd.org.apache.commons.codec.digest.XXHash32: byte[] buffer> = v;
v.<oadd.org.apache.commons.codec.digest.XXHash32: int seed> = v;
specialinvoke v.<oadd.org.apache.commons.codec.digest.XXHash32: void initializeState()>();
return;
}
public void reset()
{
oadd.org.apache.commons.codec.digest.XXHash v;
v := @this: oadd.org.apache.commons.codec.digest.XXHash;
specialinvoke v.<oadd.org.apache.commons.codec.digest.XXHash32: void initializeState()>();
v.<oadd.org.apache.commons.codec.digest.XXHash32: int totalLen> = 0;
v.<oadd.org.apache.commons.codec.digest.XXHash32: int pos> = 0;
v.<oadd.org.apache.commons.codec.digest.XXHash32: boolean stateUpdated> = 0;
return;
}
public void update(int)
{
byte[] v, v;
int v, v;
oadd.org.apache.commons.codec.digest.XXHash v;
v := @this: oadd.org.apache.commons.codec.digest.XXHash;
v := @parameter: int;
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: byte[] oneByte>;
v = v & 255;
v[0] = v;
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: byte[] oneByte>;
virtualinvoke v.<oadd.org.apache.commons.codec.digest.XXHash32: void update(byte[],int,int)>(v, 0, 1);
return;
}
public void update(byte[], int, int)
{
byte[] v, v, v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
oadd.org.apache.commons.codec.digest.XXHash v;
v := @this: oadd.org.apache.commons.codec.digest.XXHash;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
if v > 0 goto label;
return;
label:
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: int totalLen>;
v = v + v;
v.<oadd.org.apache.commons.codec.digest.XXHash32: int totalLen> = v;
v = v + v;
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: int pos>;
v = v + v;
v = v - 16;
if v >= 0 goto label;
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: byte[] buffer>;
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: int pos>;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, v, v, v, v);
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: int pos>;
v = v + v;
v.<oadd.org.apache.commons.codec.digest.XXHash32: int pos> = v;
return;
label:
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: int pos>;
if v <= 0 goto label;
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: int pos>;
v = 16 - v;
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: byte[] buffer>;
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: int pos>;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, v, v, v, v);
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: byte[] buffer>;
specialinvoke v.<oadd.org.apache.commons.codec.digest.XXHash32: void process(byte[],int)>(v, 0);
v = v + v;
label:
v = v - 16;
label:
if v > v goto label;
specialinvoke v.<oadd.org.apache.commons.codec.digest.XXHash32: void process(byte[],int)>(v, v);
v = v + 16;
goto label;
label:
if v >= v goto label;
v = v - v;
v.<oadd.org.apache.commons.codec.digest.XXHash32: int pos> = v;
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: byte[] buffer>;
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: int pos>;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, v, v, 0, v);
goto label;
label:
v.<oadd.org.apache.commons.codec.digest.XXHash32: int pos> = 0;
label:
return;
}
public long getValue()
{
byte[] v, v;
byte v;
int[] v, v, v, v, v;
oadd.org.apache.commons.codec.digest.XXHash v;
boolean v;
long v;
short v;
int 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 := @this: oadd.org.apache.commons.codec.digest.XXHash;
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: boolean stateUpdated>;
if v == 0 goto label;
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: int[] state>;
v = v[0];
v = staticinvoke <java.lang.Integer: int rotateLeft(int,int)>(v, 1);
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: int[] state>;
v = v[1];
v = staticinvoke <java.lang.Integer: int rotateLeft(int,int)>(v, 7);
v = v + v;
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: int[] state>;
v = v[2];
v = staticinvoke <java.lang.Integer: int rotateLeft(int,int)>(v, 12);
v = v + v;
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: int[] state>;
v = v[3];
v = staticinvoke <java.lang.Integer: int rotateLeft(int,int)>(v, 18);
v = v + v;
goto label;
label:
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: int[] state>;
v = v[2];
v = v + 374761393;
label:
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: int totalLen>;
v = v + v;
v = 0;
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: int pos>;
v = v - 4;
label:
if v > v goto label;
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: byte[] buffer>;
v = staticinvoke <oadd.org.apache.commons.codec.digest.XXHash32: int getInt(byte[],int)>(v, v);
v = v * -1028477379;
v = v + v;
v = staticinvoke <java.lang.Integer: int rotateLeft(int,int)>(v, 17);
v = v * 668265263;
v = v + 4;
goto label;
label:
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: int pos>;
if v >= v goto label;
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: byte[] buffer>;
v = v;
v = v + 1;
v = v[v];
v = v & 255;
v = v * 374761393;
v = v + v;
v = staticinvoke <java.lang.Integer: int rotateLeft(int,int)>(v, 11);
v = v * -1640531535;
goto label;
label:
v = v >>> 15;
v = v ^ v;
v = v * -2048144777;
v = v >>> 13;
v = v ^ v;
v = v * -1028477379;
v = v >>> 16;
v = v ^ v;
v = v & 4294967295L;
return v;
}
private static int getInt(byte[], int)
{
byte[] v;
short v, v, v, v;
byte v, v, v, v;
int v, v, v, v, v, v, v, v, v, v;
v := @parameter: byte[];
v := @parameter: int;
v = v[v];
v = v & 255;
v = v + 1;
v = v[v];
v = v & 255;
v = v << 8;
v = v | v;
v = v + 2;
v = v[v];
v = v & 255;
v = v << 16;
v = v | v;
v = v + 3;
v = v[v];
v = v & 255;
v = v << 24;
v = v | v;
return v;
}
private void initializeState()
{
int[] v, v, v, v;
int v, v, v, v, v, v, v, v;
oadd.org.apache.commons.codec.digest.XXHash v;
v := @this: oadd.org.apache.commons.codec.digest.XXHash;
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: int[] state>;
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: int seed>;
v = v + -1640531535;
v = v + -2048144777;
v[0] = v;
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: int[] state>;
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: int seed>;
v = v + -2048144777;
v[1] = v;
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: int[] state>;
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: int seed>;
v[2] = v;
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: int[] state>;
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: int seed>;
v = v - -1640531535;
v[3] = v;
return;
}
private void process(byte[], int)
{
byte[] v;
int[] v, v, v, v, v, v, v, v;
oadd.org.apache.commons.codec.digest.XXHash v;
int 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 := @this: oadd.org.apache.commons.codec.digest.XXHash;
v := @parameter: byte[];
v := @parameter: int;
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: int[] state>;
v = v[0];
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: int[] state>;
v = v[1];
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: int[] state>;
v = v[2];
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: int[] state>;
v = v[3];
v = staticinvoke <oadd.org.apache.commons.codec.digest.XXHash32: int getInt(byte[],int)>(v, v);
v = v * -2048144777;
v = v + v;
v = staticinvoke <java.lang.Integer: int rotateLeft(int,int)>(v, 13);
v = v * -1640531535;
v = v + 4;
v = staticinvoke <oadd.org.apache.commons.codec.digest.XXHash32: int getInt(byte[],int)>(v, v);
v = v * -2048144777;
v = v + v;
v = staticinvoke <java.lang.Integer: int rotateLeft(int,int)>(v, 13);
v = v * -1640531535;
v = v + 8;
v = staticinvoke <oadd.org.apache.commons.codec.digest.XXHash32: int getInt(byte[],int)>(v, v);
v = v * -2048144777;
v = v + v;
v = staticinvoke <java.lang.Integer: int rotateLeft(int,int)>(v, 13);
v = v * -1640531535;
v = v + 12;
v = staticinvoke <oadd.org.apache.commons.codec.digest.XXHash32: int getInt(byte[],int)>(v, v);
v = v * -2048144777;
v = v + v;
v = staticinvoke <java.lang.Integer: int rotateLeft(int,int)>(v, 13);
v = v * -1640531535;
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: int[] state>;
v[0] = v;
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: int[] state>;
v[1] = v;
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: int[] state>;
v[2] = v;
v = v.<oadd.org.apache.commons.codec.digest.XXHash32: int[] state>;
v[3] = v;
v.<oadd.org.apache.commons.codec.digest.XXHash32: boolean stateUpdated> = 1;
return;
}
}