final class oadd.com.google.common.hash.HashCode$BytesHashCode extends oadd.com.google.common.hash.HashCode implements java.io.Serializable
{
final byte[] bytes;
private static final long serialVersionUID;
void <init>(byte[])
{
byte[] v;
java.lang.Object v;
oadd.com.google.common.hash.HashCode$BytesHashCode v;
v := @this: oadd.com.google.common.hash.HashCode$BytesHashCode;
v := @parameter: byte[];
specialinvoke v.<oadd.com.google.common.hash.HashCode: void <init>()>();
v = staticinvoke <oadd.com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
v.<oadd.com.google.common.hash.HashCode$BytesHashCode: byte[] bytes> = v;
return;
}
public int bits()
{
byte[] v;
int v, v;
oadd.com.google.common.hash.HashCode$BytesHashCode v;
v := @this: oadd.com.google.common.hash.HashCode$BytesHashCode;
v = v.<oadd.com.google.common.hash.HashCode$BytesHashCode: byte[] bytes>;
v = lengthof v;
v = v * 8;
return v;
}
public byte[] asBytes()
{
byte[] v;
java.lang.Object v;
oadd.com.google.common.hash.HashCode$BytesHashCode v;
v := @this: oadd.com.google.common.hash.HashCode$BytesHashCode;
v = v.<oadd.com.google.common.hash.HashCode$BytesHashCode: byte[] bytes>;
v = virtualinvoke v.<java.lang.Object: java.lang.Object clone()>();
return v;
}
public int asInt()
{
byte[] v, v, v, v, v, v;
short v, v, v, v;
byte v, v, v, v;
int v, v, v, v, v, v, v, v;
oadd.com.google.common.hash.HashCode$BytesHashCode v;
boolean v;
v := @this: oadd.com.google.common.hash.HashCode$BytesHashCode;
v = v.<oadd.com.google.common.hash.HashCode$BytesHashCode: byte[] bytes>;
v = lengthof v;
if v < 4 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v.<oadd.com.google.common.hash.HashCode$BytesHashCode: byte[] bytes>;
v = lengthof v;
staticinvoke <oadd.com.google.common.base.Preconditions: void checkState(boolean,java.lang.String,int)>(v, "HashCode#asInt() requires >= 4 bytes (it only has %s bytes).", v);
v = v.<oadd.com.google.common.hash.HashCode$BytesHashCode: byte[] bytes>;
v = v[0];
v = v & 255;
v = v.<oadd.com.google.common.hash.HashCode$BytesHashCode: byte[] bytes>;
v = v[1];
v = v & 255;
v = v << 8;
v = v | v;
v = v.<oadd.com.google.common.hash.HashCode$BytesHashCode: byte[] bytes>;
v = v[2];
v = v & 255;
v = v << 16;
v = v | v;
v = v.<oadd.com.google.common.hash.HashCode$BytesHashCode: byte[] bytes>;
v = v[3];
v = v & 255;
v = v << 24;
v = v | v;
return v;
}
public long asLong()
{
byte[] v, v;
int v, v;
long v;
oadd.com.google.common.hash.HashCode$BytesHashCode v;
boolean v;
v := @this: oadd.com.google.common.hash.HashCode$BytesHashCode;
v = v.<oadd.com.google.common.hash.HashCode$BytesHashCode: byte[] bytes>;
v = lengthof v;
if v < 8 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v.<oadd.com.google.common.hash.HashCode$BytesHashCode: byte[] bytes>;
v = lengthof v;
staticinvoke <oadd.com.google.common.base.Preconditions: void checkState(boolean,java.lang.String,int)>(v, "HashCode#asLong() requires >= 8 bytes (it only has %s bytes).", v);
v = virtualinvoke v.<oadd.com.google.common.hash.HashCode$BytesHashCode: long padToLong()>();
return v;
}
public long padToLong()
{
byte[] v, v, v;
long v, v;
short v;
byte v, v;
int v, v, v, v;
oadd.com.google.common.hash.HashCode$BytesHashCode v;
v := @this: oadd.com.google.common.hash.HashCode$BytesHashCode;
v = v.<oadd.com.google.common.hash.HashCode$BytesHashCode: byte[] bytes>;
v = v[0];
v = v & 255;
v = 1;
label:
v = v.<oadd.com.google.common.hash.HashCode$BytesHashCode: byte[] bytes>;
v = lengthof v;
v = staticinvoke <java.lang.Math: int min(int,int)>(v, 8);
if v >= v goto label;
v = v.<oadd.com.google.common.hash.HashCode$BytesHashCode: byte[] bytes>;
v = v[v];
v = v & 255L;
v = v * 8;
v = v << v;
v = v | v;
v = v + 1;
goto label;
label:
return v;
}
void writeBytesToImpl(byte[], int, int)
{
byte[] v, v;
int v, v;
oadd.com.google.common.hash.HashCode$BytesHashCode v;
v := @this: oadd.com.google.common.hash.HashCode$BytesHashCode;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
v = v.<oadd.com.google.common.hash.HashCode$BytesHashCode: byte[] bytes>;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, 0, v, v, v);
return;
}
byte[] getBytesInternal()
{
byte[] v;
oadd.com.google.common.hash.HashCode$BytesHashCode v;
v := @this: oadd.com.google.common.hash.HashCode$BytesHashCode;
v = v.<oadd.com.google.common.hash.HashCode$BytesHashCode: byte[] bytes>;
return v;
}
boolean equalsSameBits(oadd.com.google.common.hash.HashCode)
{
byte[] v, v, v, v, v;
byte v, v;
int v, v, v, v;
oadd.com.google.common.hash.HashCode$BytesHashCode v;
boolean v, v, v;
oadd.com.google.common.hash.HashCode v;
v := @this: oadd.com.google.common.hash.HashCode$BytesHashCode;
v := @parameter: oadd.com.google.common.hash.HashCode;
v = v.<oadd.com.google.common.hash.HashCode$BytesHashCode: byte[] bytes>;
v = lengthof v;
v = virtualinvoke v.<oadd.com.google.common.hash.HashCode: byte[] getBytesInternal()>();
v = lengthof v;
if v == v goto label;
return 0;
label:
v = 1;
v = 0;
label:
v = v.<oadd.com.google.common.hash.HashCode$BytesHashCode: byte[] bytes>;
v = lengthof v;
if v >= v goto label;
v = v;
v = v.<oadd.com.google.common.hash.HashCode$BytesHashCode: byte[] bytes>;
v = v[v];
v = virtualinvoke v.<oadd.com.google.common.hash.HashCode: byte[] getBytesInternal()>();
v = v[v];
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v & v;
v = v + 1;
goto label;
label:
return v;
}
}