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