final class com.google.common.primitives.UnsignedLongs$ParseOverflowDetection extends java.lang.Object
{
static final long[] maxValueDivs;
static final int[] maxValueMods;
static final int[] maxSafeDigits;
private void <init>()
{
com.google.common.primitives.UnsignedLongs$ParseOverflowDetection v;
v := @this: com.google.common.primitives.UnsignedLongs$ParseOverflowDetection;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
static boolean overflowInParse(long, int, int)
{
long v, v, v;
long[] v, v;
byte v, v, v;
int[] v;
int v, v, v;
boolean v;
v := @parameter: long;
v := @parameter: int;
v := @parameter: int;
v = v cmp 0L;
if v < 0 goto label;
v = <com.google.common.primitives.UnsignedLongs$ParseOverflowDetection: long[] maxValueDivs>;
v = v[v];
v = v cmp v;
if v >= 0 goto label;
return 0;
label:
v = <com.google.common.primitives.UnsignedLongs$ParseOverflowDetection: long[] maxValueDivs>;
v = v[v];
v = v cmp v;
if v <= 0 goto label;
return 1;
label:
v = <com.google.common.primitives.UnsignedLongs$ParseOverflowDetection: int[] maxValueMods>;
v = v[v];
if v <= v goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
label:
return 1;
}
static void <clinit>()
{
long v, v;
long[] v, v;
int[] v, v, v, v;
int v, v, v;
java.math.BigInteger v;
java.lang.String v;
v = newarray (long)[37];
<com.google.common.primitives.UnsignedLongs$ParseOverflowDetection: long[] maxValueDivs> = v;
v = newarray (int)[37];
<com.google.common.primitives.UnsignedLongs$ParseOverflowDetection: int[] maxValueMods> = v;
v = newarray (int)[37];
<com.google.common.primitives.UnsignedLongs$ParseOverflowDetection: int[] maxSafeDigits> = v;
v = new java.math.BigInteger;
specialinvoke v.<java.math.BigInteger: void <init>(java.lang.String,int)>("10000000000000000", 16);
v = 2;
label:
if v > 36 goto label;
v = <com.google.common.primitives.UnsignedLongs$ParseOverflowDetection: long[] maxValueDivs>;
v = staticinvoke <com.google.common.primitives.UnsignedLongs: long divide(long,long)>(-1L, v);
v[v] = v;
v = <com.google.common.primitives.UnsignedLongs$ParseOverflowDetection: int[] maxValueMods>;
v = staticinvoke <com.google.common.primitives.UnsignedLongs: long remainder(long,long)>(-1L, v);
v[v] = v;
v = <com.google.common.primitives.UnsignedLongs$ParseOverflowDetection: int[] maxSafeDigits>;
v = virtualinvoke v.<java.math.BigInteger: java.lang.String toString(int)>(v);
v = virtualinvoke v.<java.lang.String: int length()>();
v = v - 1;
v[v] = v;
v = v + 1;
goto label;
label:
return;
}
}