d.smali
.class public final Lcom/google/common/primitives/d;
.super Ljava/lang/Object;
.source "UnsignedLongs.java"
# static fields
.field private static final aXY:[J
.field private static final aXZ:[I
.field private static final aYa:[I
# direct methods
.method static constructor <clinit>()V
.registers 12
.prologue
.line 384
const/16 v0, 0x25
new-array v0, v0, [J
sput-object v0, Lcom/google/common/primitives/d;->aXY:[J
.line 385
const/16 v0, 0x25
new-array v0, v0, [I
sput-object v0, Lcom/google/common/primitives/d;->aXZ:[I
.line 386
const/16 v0, 0x25
new-array v0, v0, [I
sput-object v0, Lcom/google/common/primitives/d;->aYa:[I
.line 388
new-instance v5, Ljava/math/BigInteger;
const-string v0, "10000000000000000"
const/16 v1, 0x10
invoke-direct {v5, v0, v1}, Ljava/math/BigInteger;-><init>(Ljava/lang/String;I)V
.line 389
const/4 v0, 0x2
move v4, v0
:goto_1d
const/16 v0, 0x24
if-gt v4, v0, :cond_af
.line 390
sget-object v2, Lcom/google/common/primitives/d;->aXY:[J
int-to-long v0, v4
.line 2183
const-wide/16 v6, 0x0
cmp-long v3, v0, v6
if-gez v3, :cond_61
.line 2184
const-wide/16 v6, -0x1
invoke-static {v6, v7, v0, v1}, Lcom/google/common/primitives/d;->compare(JJ)I
move-result v0
if-gez v0, :cond_5e
.line 2185
const-wide/16 v0, 0x0
.line 390
:goto_34
aput-wide v0, v2, v4
.line 391
sget-object v6, Lcom/google/common/primitives/d;->aXZ:[I
int-to-long v0, v4
.line 2217
const-wide/16 v2, 0x0
cmp-long v2, v0, v2
if-gez v2, :cond_8c
.line 2218
const-wide/16 v2, -0x1
invoke-static {v2, v3, v0, v1}, Lcom/google/common/primitives/d;->compare(JJ)I
move-result v2
if-gez v2, :cond_87
.line 2219
const-wide/16 v0, -0x1
.line 391
:goto_49
long-to-int v0, v0
aput v0, v6, v4
.line 392
sget-object v0, Lcom/google/common/primitives/d;->aYa:[I
invoke-virtual {v5, v4}, Ljava/math/BigInteger;->toString(I)Ljava/lang/String;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/String;->length()I
move-result v1
add-int/lit8 v1, v1, -0x1
aput v1, v0, v4
.line 389
add-int/lit8 v0, v4, 0x1
move v4, v0
goto :goto_1d
.line 2187
:cond_5e
const-wide/16 v0, 0x1
goto :goto_34
.line 2192
:cond_61
const-wide/16 v6, -0x1
const-wide/16 v8, 0x0
cmp-long v3, v6, v8
if-ltz v3, :cond_6e
.line 2193
const-wide/16 v6, -0x1
div-long v0, v6, v0
goto :goto_34
.line 2202
:cond_6e
const-wide v6, 0x7fffffffffffffffL
div-long/2addr v6, v0
const/4 v3, 0x1
shl-long/2addr v6, v3
.line 2203
const-wide/16 v8, -0x1
mul-long v10, v6, v0
sub-long/2addr v8, v10
.line 2204
invoke-static {v8, v9, v0, v1}, Lcom/google/common/primitives/d;->compare(JJ)I
move-result v0
if-ltz v0, :cond_85
const/4 v0, 0x1
:goto_82
int-to-long v0, v0
add-long/2addr v0, v6
goto :goto_34
:cond_85
const/4 v0, 0x0
goto :goto_82
.line 2221
:cond_87
const-wide/16 v2, -0x1
.line 2238
:cond_89
:goto_89
sub-long v0, v2, v0
goto :goto_49
.line 2226
:cond_8c
const-wide/16 v2, -0x1
const-wide/16 v8, 0x0
cmp-long v2, v2, v8
if-ltz v2, :cond_99
.line 2227
const-wide/16 v2, -0x1
rem-long v0, v2, v0
goto :goto_49
.line 2236
:cond_99
const-wide v2, 0x7fffffffffffffffL
div-long/2addr v2, v0
const/4 v7, 0x1
shl-long/2addr v2, v7
.line 2237
const-wide/16 v8, -0x1
mul-long/2addr v2, v0
sub-long v2, v8, v2
.line 2238
invoke-static {v2, v3, v0, v1}, Lcom/google/common/primitives/d;->compare(JJ)I
move-result v7
if-gez v7, :cond_89
const-wide/16 v0, 0x0
goto :goto_89
.line 394
:cond_af
return-void
.end method
.method public static compare(JJ)I
.registers 8
.prologue
const-wide/high16 v2, -0x8000000000000000L
.line 76
.line 1063
xor-long v0, p0, v2
.line 2063
xor-long/2addr v2, p2
.line 76
invoke-static {v0, v1, v2, v3}, Lcom/google/common/primitives/c;->compare(JJ)I
move-result v0
return v0
.end method