RyuDouble.smali

.class public final Lcom/tradplus/ads/common/serialization/util/RyuDouble;
.super Ljava/lang/Object;


# static fields
.field private static final a:[[I

.field private static final b:[[I


# direct methods
.method static constructor <clinit>()V
    .registers 15

    const/16 v0, 0x146

    const/4 v1, 0x4

    filled-new-array {v0, v1}, [I

    move-result-object v2

    const-class v3, I

    invoke-static {v3, v2}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;[I)Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [[I

    sput-object v2, Lcom/tradplus/ads/common/serialization/util/RyuDouble;->a:[[I

    const/16 v2, 0x123

    filled-new-array {v2, v1}, [I

    move-result-object v2

    const-class v3, I

    invoke-static {v3, v2}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;[I)Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [[I

    sput-object v2, Lcom/tradplus/ads/common/serialization/util/RyuDouble;->b:[[I

    sget-object v2, Ljava/math/BigInteger;->ONE:Ljava/math/BigInteger;

    const/16 v3, 0x1f

    invoke-virtual {v2, v3}, Ljava/math/BigInteger;->shiftLeft(I)Ljava/math/BigInteger;

    move-result-object v2

    sget-object v4, Ljava/math/BigInteger;->ONE:Ljava/math/BigInteger;

    invoke-virtual {v2, v4}, Ljava/math/BigInteger;->subtract(Ljava/math/BigInteger;)Ljava/math/BigInteger;

    move-result-object v2

    sget-object v4, Ljava/math/BigInteger;->ONE:Ljava/math/BigInteger;

    invoke-virtual {v4, v3}, Ljava/math/BigInteger;->shiftLeft(I)Ljava/math/BigInteger;

    move-result-object v4

    sget-object v5, Ljava/math/BigInteger;->ONE:Ljava/math/BigInteger;

    invoke-virtual {v4, v5}, Ljava/math/BigInteger;->subtract(Ljava/math/BigInteger;)Ljava/math/BigInteger;

    move-result-object v4

    const/4 v5, 0x0

    const/4 v6, 0x0

    :goto_3d
    if-ge v6, v0, :cond_ec

    const-wide/16 v7, 0x5

    invoke-static {v7, v8}, Ljava/math/BigInteger;->valueOf(J)Ljava/math/BigInteger;

    move-result-object v7

    invoke-virtual {v7, v6}, Ljava/math/BigInteger;->pow(I)Ljava/math/BigInteger;

    move-result-object v7

    invoke-virtual {v7}, Ljava/math/BigInteger;->bitLength()I

    move-result v8

    if-nez v6, :cond_51

    const/4 v9, 0x1

    goto :goto_60

    :cond_51
    int-to-long v9, v6

    const-wide/32 v11, 0x1624c50

    mul-long v9, v9, v11

    const-wide/32 v11, 0x989680

    add-long/2addr v9, v11

    const-wide/16 v13, 0x1

    sub-long/2addr v9, v13

    div-long/2addr v9, v11

    long-to-int v9, v9

    :goto_60
    if-ne v9, v8, :cond_d2

    sget-object v9, Lcom/tradplus/ads/common/serialization/util/RyuDouble;->a:[[I

    array-length v9, v9

    if-ge v6, v9, :cond_86

    const/4 v9, 0x0

    :goto_68
    if-ge v9, v1, :cond_86

    sget-object v10, Lcom/tradplus/ads/common/serialization/util/RyuDouble;->a:[[I

    aget-object v10, v10, v6

    add-int/lit8 v11, v8, -0x79

    rsub-int/lit8 v12, v9, 0x3

    mul-int/lit8 v12, v12, 0x1f

    add-int/2addr v11, v12

    invoke-virtual {v7, v11}, Ljava/math/BigInteger;->shiftRight(I)Ljava/math/BigInteger;

    move-result-object v11

    invoke-virtual {v11, v2}, Ljava/math/BigInteger;->and(Ljava/math/BigInteger;)Ljava/math/BigInteger;

    move-result-object v11

    invoke-virtual {v11}, Ljava/math/BigInteger;->intValue()I

    move-result v11

    aput v11, v10, v9

    add-int/lit8 v9, v9, 0x1

    goto :goto_68

    :cond_86
    sget-object v9, Lcom/tradplus/ads/common/serialization/util/RyuDouble;->b:[[I

    array-length v9, v9

    if-ge v6, v9, :cond_ce

    add-int/lit8 v8, v8, 0x79

    sget-object v9, Ljava/math/BigInteger;->ONE:Ljava/math/BigInteger;

    invoke-virtual {v9, v8}, Ljava/math/BigInteger;->shiftLeft(I)Ljava/math/BigInteger;

    move-result-object v8

    invoke-virtual {v8, v7}, Ljava/math/BigInteger;->divide(Ljava/math/BigInteger;)Ljava/math/BigInteger;

    move-result-object v7

    sget-object v8, Ljava/math/BigInteger;->ONE:Ljava/math/BigInteger;

    invoke-virtual {v7, v8}, Ljava/math/BigInteger;->add(Ljava/math/BigInteger;)Ljava/math/BigInteger;

    move-result-object v7

    const/4 v8, 0x0

    :goto_9e
    if-ge v8, v1, :cond_ce

    if-nez v8, :cond_b5

    sget-object v9, Lcom/tradplus/ads/common/serialization/util/RyuDouble;->b:[[I

    aget-object v9, v9, v6

    rsub-int/lit8 v10, v8, 0x3

    mul-int/lit8 v10, v10, 0x1f

    invoke-virtual {v7, v10}, Ljava/math/BigInteger;->shiftRight(I)Ljava/math/BigInteger;

    move-result-object v10

    invoke-virtual {v10}, Ljava/math/BigInteger;->intValue()I

    move-result v10

    aput v10, v9, v8

    goto :goto_cb

    :cond_b5
    sget-object v9, Lcom/tradplus/ads/common/serialization/util/RyuDouble;->b:[[I

    aget-object v9, v9, v6

    rsub-int/lit8 v10, v8, 0x3

    mul-int/lit8 v10, v10, 0x1f

    invoke-virtual {v7, v10}, Ljava/math/BigInteger;->shiftRight(I)Ljava/math/BigInteger;

    move-result-object v10

    invoke-virtual {v10, v4}, Ljava/math/BigInteger;->and(Ljava/math/BigInteger;)Ljava/math/BigInteger;

    move-result-object v10

    invoke-virtual {v10}, Ljava/math/BigInteger;->intValue()I

    move-result v10

    aput v10, v9, v8

    :goto_cb
    add-int/lit8 v8, v8, 0x1

    goto :goto_9e

    :cond_ce
    add-int/lit8 v6, v6, 0x1

    goto/16 :goto_3d

    :cond_d2
    new-instance v0, Ljava/lang/IllegalStateException;

    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v1, v8}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    const-string v2, " != "

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v1, v9}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V

    throw v0

    :cond_ec
    return-void
.end method

.method public constructor <init>()V
    .registers 1

    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    return-void
.end method

.method public static toString(D[CI)I
    .registers 47

    invoke-static/range {p0 .. p1}, Ljava/lang/Double;->isNaN(D)Z

    move-result v0

    if-eqz v0, :cond_1b

    add-int/lit8 v0, p3, 0x1

    const/16 v1, 0x4e

    aput-char v1, p2, p3

    add-int/lit8 v1, v0, 0x1

    const/16 v2, 0x61

    aput-char v2, p2, v0

    add-int/lit8 v0, v1, 0x1

    const/16 v2, 0x4e

    aput-char v2, p2, v1

    :goto_18
    sub-int v0, v0, p3

    return v0

    :cond_1b
    const-wide/high16 v0, 0x7ff0000000000000L    # Double.POSITIVE_INFINITY

    cmpl-double v2, p0, v0

    if-nez v2, :cond_54

    add-int/lit8 v0, p3, 0x1

    const/16 v1, 0x49

    aput-char v1, p2, p3

    add-int/lit8 v1, v0, 0x1

    const/16 v2, 0x6e

    aput-char v2, p2, v0

    add-int/lit8 v0, v1, 0x1

    const/16 v2, 0x66

    aput-char v2, p2, v1

    add-int/lit8 v1, v0, 0x1

    const/16 v2, 0x69

    aput-char v2, p2, v0

    add-int/lit8 v0, v1, 0x1

    const/16 v2, 0x6e

    aput-char v2, p2, v1

    add-int/lit8 v1, v0, 0x1

    const/16 v2, 0x69

    aput-char v2, p2, v0

    add-int/lit8 v0, v1, 0x1

    const/16 v2, 0x74

    aput-char v2, p2, v1

    add-int/lit8 v1, v0, 0x1

    const/16 v2, 0x79

    aput-char v2, p2, v0

    :goto_51
    sub-int v1, v1, p3

    return v1

    :cond_54
    const-wide/high16 v0, -0x10000000000000L    # Double.NEGATIVE_INFINITY

    cmpl-double v2, p0, v0

    if-nez v2, :cond_91

    add-int/lit8 v0, p3, 0x1

    const/16 v1, 0x2d

    aput-char v1, p2, p3

    add-int/lit8 v1, v0, 0x1

    const/16 v2, 0x49

    aput-char v2, p2, v0

    add-int/lit8 v0, v1, 0x1

    const/16 v2, 0x6e

    aput-char v2, p2, v1

    add-int/lit8 v1, v0, 0x1

    const/16 v2, 0x66

    aput-char v2, p2, v0

    add-int/lit8 v0, v1, 0x1

    const/16 v2, 0x69

    aput-char v2, p2, v1

    add-int/lit8 v1, v0, 0x1

    const/16 v2, 0x6e

    aput-char v2, p2, v0

    add-int/lit8 v0, v1, 0x1

    const/16 v2, 0x69

    aput-char v2, p2, v1

    add-int/lit8 v1, v0, 0x1

    const/16 v2, 0x74

    aput-char v2, p2, v0

    add-int/lit8 v0, v1, 0x1

    const/16 v2, 0x79

    aput-char v2, p2, v1

    goto :goto_18

    :cond_91
    invoke-static/range {p0 .. p1}, Ljava/lang/Double;->doubleToLongBits(D)J

    move-result-wide v0

    const/16 v2, 0x2e

    const/16 v3, 0x30

    const-wide/16 v4, 0x0

    cmp-long v6, v0, v4

    if-nez v6, :cond_ad

    add-int/lit8 v0, p3, 0x1

    aput-char v3, p2, p3

    add-int/lit8 v1, v0, 0x1

    aput-char v2, p2, v0

    add-int/lit8 v0, v1, 0x1

    aput-char v3, p2, v1

    goto/16 :goto_18

    :cond_ad
    const-wide/high16 v6, -0x8000000000000000L

    cmp-long v8, v0, v6

    if-nez v8, :cond_c6

    add-int/lit8 v0, p3, 0x1

    const/16 v1, 0x2d

    aput-char v1, p2, p3

    add-int/lit8 v1, v0, 0x1

    aput-char v3, p2, v0

    add-int/lit8 v0, v1, 0x1

    aput-char v2, p2, v1

    add-int/lit8 v1, v0, 0x1

    aput-char v3, p2, v0

    goto :goto_51

    :cond_c6
    const/16 v6, 0x34

    ushr-long v6, v0, v6

    const-wide/16 v8, 0x7ff

    and-long/2addr v6, v8

    long-to-int v7, v6

    const-wide v8, 0xfffffffffffffL

    and-long/2addr v8, v0

    if-nez v7, :cond_d9

    const/16 v6, -0x432

    goto :goto_e0

    :cond_d9
    add-int/lit16 v6, v7, -0x3ff

    add-int/lit8 v6, v6, -0x34

    const-wide/high16 v10, 0x10000000000000L

    or-long/2addr v8, v10

    :goto_e0
    const/4 v10, 0x0

    const/4 v11, 0x1

    cmp-long v12, v0, v4

    if-gez v12, :cond_e8

    const/4 v0, 0x1

    goto :goto_e9

    :cond_e8
    const/4 v0, 0x0

    :goto_e9
    const-wide/16 v12, 0x1

    and-long v14, v8, v12

    cmp-long v1, v14, v4

    if-nez v1, :cond_f3

    const/4 v1, 0x1

    goto :goto_f4

    :cond_f3
    const/4 v1, 0x0

    :goto_f4
    const-wide/16 v14, 0x4

    mul-long v14, v14, v8

    const-wide/16 v16, 0x2

    add-long v16, v14, v16

    const-wide/high16 v18, 0x10000000000000L

    cmp-long v20, v8, v18

    if-nez v20, :cond_107

    if-gt v7, v11, :cond_105

    goto :goto_107

    :cond_105
    const/4 v7, 0x0

    goto :goto_108

    :cond_107
    :goto_107
    const/4 v7, 0x1

    :goto_108
    sub-long v8, v14, v12

    int-to-long v2, v7

    sub-long/2addr v8, v2

    add-int/lit8 v6, v6, -0x2

    const-wide/32 v18, 0x989680

    const/16 v21, 0x3

    const/16 v22, 0x2

    const/16 v23, 0x1f

    if-ltz v6, :cond_33a

    int-to-long v2, v6

    const-wide/32 v26, 0x2deefb

    mul-long v2, v2, v26

    div-long v2, v2, v18

    long-to-int v3, v2

    sub-int/2addr v3, v11

    invoke-static {v10, v3}, Ljava/lang/Math;->max(II)I

    move-result v2

    if-nez v2, :cond_12b

    const/4 v5, 0x1

    goto :goto_137

    :cond_12b
    int-to-long v4, v2

    const-wide/32 v27, 0x1624c50

    mul-long v4, v4, v27

    add-long v4, v4, v18

    sub-long/2addr v4, v12

    div-long v4, v4, v18

    long-to-int v5, v4

    :goto_137
    add-int/lit8 v5, v5, 0x7a

    sub-int/2addr v5, v11

    neg-int v4, v6

    add-int/2addr v4, v2

    add-int/2addr v4, v5

    add-int/lit8 v4, v4, -0x5d

    const/16 v3, 0x15

    sub-int/2addr v4, v3

    if-ltz v4, :cond_321

    sget-object v5, Lcom/tradplus/ads/common/serialization/util/RyuDouble;->b:[[I

    aget-object v5, v5, v2

    ushr-long v6, v14, v23

    const-wide/32 v24, 0x7fffffff

    and-long v27, v14, v24

    aget v3, v5, v10

    int-to-long v12, v3

    mul-long v12, v12, v6

    aget v3, v5, v10

    move/from16 v29, v0

    move/from16 v30, v1

    int-to-long v0, v3

    mul-long v0, v0, v27

    aget v3, v5, v11

    move-wide/from16 v31, v14

    int-to-long v14, v3

    mul-long v14, v14, v6

    aget v3, v5, v11

    int-to-long v10, v3

    mul-long v10, v10, v27

    aget v3, v5, v22

    move/from16 v33, v2

    int-to-long v2, v3

    mul-long v2, v2, v6

    move-wide/from16 v34, v8

    aget v8, v5, v22

    int-to-long v8, v8

    mul-long v8, v8, v27

    move/from16 v36, v4

    aget v4, v5, v21

    move-wide/from16 v37, v12

    int-to-long v12, v4

    mul-long v6, v6, v12

    aget v4, v5, v21

    int-to-long v12, v4

    mul-long v27, v27, v12

    ushr-long v12, v27, v23

    add-long/2addr v12, v8

    add-long/2addr v12, v6

    ushr-long v6, v12, v23

    add-long/2addr v6, v10

    add-long/2addr v6, v2

    ushr-long v2, v6, v23

    add-long/2addr v2, v0

    add-long/2addr v2, v14

    const/16 v0, 0x15

    ushr-long v1, v2, v0

    const/16 v0, 0xa

    shl-long v6, v37, v0

    add-long/2addr v1, v6

    ushr-long v0, v1, v36

    ushr-long v6, v16, v23

    const-wide/32 v8, 0x7fffffff

    and-long v10, v16, v8

    const/4 v2, 0x0

    aget v4, v5, v2

    int-to-long v8, v4

    mul-long v8, v8, v6

    aget v4, v5, v2

    int-to-long v12, v4

    mul-long v12, v12, v10

    const/4 v2, 0x1

    aget v4, v5, v2

    int-to-long v14, v4

    mul-long v14, v14, v6

    aget v4, v5, v2

    int-to-long v3, v4

    mul-long v3, v3, v10

    aget v2, v5, v22

    move-wide/from16 v27, v0

    int-to-long v0, v2

    mul-long v0, v0, v6

    aget v2, v5, v22

    move-wide/from16 v37, v8

    int-to-long v8, v2

    mul-long v8, v8, v10

    aget v2, v5, v21

    move-wide/from16 v39, v14

    int-to-long v14, v2

    mul-long v6, v6, v14

    aget v2, v5, v21

    int-to-long v14, v2

    mul-long v10, v10, v14

    ushr-long v10, v10, v23

    add-long/2addr v10, v8

    add-long/2addr v10, v6

    ushr-long v6, v10, v23

    add-long/2addr v6, v3

    add-long/2addr v6, v0

    ushr-long v0, v6, v23

    add-long/2addr v0, v12

    add-long v0, v0, v39

    const/16 v2, 0x15

    ushr-long/2addr v0, v2

    const/16 v2, 0xa

    shl-long v6, v37, v2

    add-long/2addr v0, v6

    ushr-long v0, v0, v36

    ushr-long v6, v34, v23

    const-wide/32 v8, 0x7fffffff

    and-long v8, v34, v8

    const/4 v2, 0x0

    aget v4, v5, v2

    int-to-long v10, v4

    mul-long v10, v10, v6

    aget v4, v5, v2

    int-to-long v12, v4

    mul-long v12, v12, v8

    const/4 v2, 0x1

    aget v4, v5, v2

    int-to-long v14, v4

    mul-long v14, v14, v6

    aget v4, v5, v2

    int-to-long v3, v4

    mul-long v3, v3, v8

    aget v2, v5, v22

    move-wide/from16 v24, v0

    int-to-long v0, v2

    mul-long v0, v0, v6

    aget v2, v5, v22

    move-wide/from16 v37, v10

    int-to-long v10, v2

    mul-long v10, v10, v8

    aget v2, v5, v21

    move-wide/from16 v39, v14

    int-to-long v14, v2

    mul-long v6, v6, v14

    aget v2, v5, v21

    int-to-long v14, v2

    mul-long v8, v8, v14

    ushr-long v8, v8, v23

    add-long/2addr v8, v10

    add-long/2addr v8, v6

    ushr-long v5, v8, v23

    add-long/2addr v5, v3

    add-long/2addr v5, v0

    ushr-long v0, v5, v23

    add-long/2addr v0, v12

    add-long v0, v0, v39

    const/16 v2, 0x15

    ushr-long/2addr v0, v2

    const/16 v3, 0xa

    shl-long v4, v37, v3

    add-long/2addr v0, v4

    ushr-long v0, v0, v36

    move/from16 v3, v33

    if-gt v3, v2, :cond_319

    const-wide/16 v4, 0x5

    rem-long v14, v31, v4

    const-wide/16 v6, 0x0

    cmp-long v2, v14, v6

    if-nez v2, :cond_289

    cmp-long v2, v14, v6

    if-eqz v2, :cond_24c

    const/4 v10, 0x0

    goto :goto_281

    :cond_24c
    const-wide/16 v8, 0x19

    rem-long v14, v31, v8

    cmp-long v2, v14, v6

    if-eqz v2, :cond_256

    const/4 v10, 0x1

    goto :goto_281

    :cond_256
    const-wide/16 v8, 0x7d

    rem-long v14, v31, v8

    cmp-long v2, v14, v6

    if-eqz v2, :cond_260

    const/4 v10, 0x2

    goto :goto_281

    :cond_260
    const-wide/16 v8, 0x271

    rem-long v14, v31, v8

    cmp-long v2, v14, v6

    if-eqz v2, :cond_26a

    const/4 v10, 0x3

    goto :goto_281

    :cond_26a
    const/4 v2, 0x4

    const-wide/16 v8, 0x271

    div-long v14, v31, v8

    const/4 v10, 0x4

    :goto_270
    cmp-long v2, v14, v6

    if-lez v2, :cond_281

    rem-long v8, v14, v4

    cmp-long v2, v8, v6

    if-eqz v2, :cond_27b

    goto :goto_281

    :cond_27b
    div-long/2addr v14, v4

    add-int/lit8 v10, v10, 0x1

    const-wide/16 v6, 0x0

    goto :goto_270

    :cond_281
    :goto_281
    if-lt v10, v3, :cond_285

    const/4 v10, 0x1

    goto :goto_286

    :cond_285
    const/4 v10, 0x0

    :goto_286
    move v2, v10

    goto/16 :goto_31a

    :cond_289
    if-eqz v30, :cond_2d1

    rem-long v8, v34, v4

    const-wide/16 v6, 0x0

    cmp-long v2, v8, v6

    if-eqz v2, :cond_295

    const/4 v10, 0x0

    goto :goto_2ca

    :cond_295
    const-wide/16 v8, 0x19

    rem-long v8, v34, v8

    cmp-long v2, v8, v6

    if-eqz v2, :cond_29f

    const/4 v10, 0x1

    goto :goto_2ca

    :cond_29f
    const-wide/16 v8, 0x7d

    rem-long v8, v34, v8

    cmp-long v2, v8, v6

    if-eqz v2, :cond_2a9

    const/4 v10, 0x2

    goto :goto_2ca

    :cond_2a9
    const-wide/16 v8, 0x271

    rem-long v8, v34, v8

    cmp-long v2, v8, v6

    if-eqz v2, :cond_2b3

    const/4 v10, 0x3

    goto :goto_2ca

    :cond_2b3
    const/4 v2, 0x4

    const-wide/16 v8, 0x271

    div-long v8, v34, v8

    const/4 v10, 0x4

    :goto_2b9
    cmp-long v2, v8, v6

    if-lez v2, :cond_2ca

    rem-long v11, v8, v4

    cmp-long v2, v11, v6

    if-eqz v2, :cond_2c4

    goto :goto_2ca

    :cond_2c4
    div-long/2addr v8, v4

    add-int/lit8 v10, v10, 0x1

    const-wide/16 v6, 0x0

    goto :goto_2b9

    :cond_2ca
    :goto_2ca
    if-lt v10, v3, :cond_2ce

    const/4 v10, 0x1

    goto :goto_2cf

    :cond_2ce
    const/4 v10, 0x0

    :goto_2cf
    const/4 v2, 0x0

    goto :goto_31b

    :cond_2d1
    rem-long v6, v16, v4

    const-wide/16 v8, 0x0

    cmp-long v2, v6, v8

    if-eqz v2, :cond_2db

    const/4 v10, 0x0

    goto :goto_311

    :cond_2db
    const-wide/16 v6, 0x19

    rem-long v6, v16, v6

    cmp-long v2, v6, v8

    if-eqz v2, :cond_2e5

    const/4 v10, 0x1

    goto :goto_311

    :cond_2e5
    const-wide/16 v6, 0x7d

    rem-long v6, v16, v6

    cmp-long v2, v6, v8

    if-eqz v2, :cond_2ef

    const/4 v10, 0x2

    goto :goto_311

    :cond_2ef
    const-wide/16 v6, 0x271

    rem-long v6, v16, v6

    cmp-long v2, v6, v8

    if-eqz v2, :cond_2f9

    const/4 v10, 0x3

    goto :goto_311

    :cond_2f9
    const/4 v2, 0x4

    const-wide/16 v6, 0x271

    div-long v16, v16, v6

    const/4 v10, 0x4

    :goto_2ff
    cmp-long v2, v16, v8

    if-lez v2, :cond_311

    rem-long v6, v16, v4

    cmp-long v2, v6, v8

    if-eqz v2, :cond_30a

    goto :goto_311

    :cond_30a
    div-long v16, v16, v4

    add-int/lit8 v10, v10, 0x1

    const-wide/16 v8, 0x0

    goto :goto_2ff

    :cond_311
    :goto_311
    if-lt v10, v3, :cond_319

    const-wide/16 v4, 0x1

    sub-long v4, v24, v4

    move-wide/from16 v24, v4

    :cond_319
    const/4 v2, 0x0

    :goto_31a
    const/4 v10, 0x0

    :goto_31b
    move v4, v2

    move v2, v3

    move-wide/from16 v37, v27

    goto/16 :goto_497

    :cond_321
    move/from16 v36, v4

    new-instance v0, Ljava/lang/IllegalArgumentException;

    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    const-string v2, ""

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V

    throw v0

    :cond_33a
    move/from16 v29, v0

    move/from16 v30, v1

    move-wide/from16 v34, v8

    move-wide/from16 v31, v14

    neg-int v0, v6

    int-to-long v1, v0

    const-wide/32 v4, 0x6aa784

    mul-long v1, v1, v4

    div-long v1, v1, v18

    long-to-int v2, v1

    const/4 v1, 0x1

    sub-int/2addr v2, v1

    const/4 v1, 0x0

    invoke-static {v1, v2}, Ljava/lang/Math;->max(II)I

    move-result v2

    sub-int/2addr v0, v2

    if-nez v0, :cond_358

    const/4 v11, 0x1

    goto :goto_366

    :cond_358
    int-to-long v4, v0

    const-wide/32 v8, 0x1624c50

    mul-long v4, v4, v8

    add-long v4, v4, v18

    const-wide/16 v8, 0x1

    sub-long/2addr v4, v8

    div-long v4, v4, v18

    long-to-int v11, v4

    :goto_366
    add-int/lit8 v11, v11, -0x79

    sub-int v1, v2, v11

    add-int/lit8 v1, v1, -0x5d

    const/16 v3, 0x15

    sub-int/2addr v1, v3

    if-ltz v1, :cond_72e

    sget-object v4, Lcom/tradplus/ads/common/serialization/util/RyuDouble;->a:[[I

    aget-object v0, v4, v0

    ushr-long v4, v31, v23

    const-wide/32 v8, 0x7fffffff

    and-long v10, v31, v8

    const/4 v8, 0x0

    aget v9, v0, v8

    int-to-long v12, v9

    mul-long v12, v12, v4

    aget v9, v0, v8

    int-to-long v8, v9

    mul-long v8, v8, v10

    const/4 v14, 0x1

    aget v15, v0, v14

    move/from16 v27, v2

    int-to-long v2, v15

    mul-long v2, v2, v4

    aget v15, v0, v14

    int-to-long v14, v15

    mul-long v14, v14, v10

    move/from16 v28, v7

    aget v7, v0, v22

    move/from16 v33, v6

    int-to-long v6, v7

    mul-long v6, v6, v4

    move/from16 v36, v1

    aget v1, v0, v22

    move-wide/from16 v37, v12

    int-to-long v12, v1

    mul-long v12, v12, v10

    aget v1, v0, v21

    move-wide/from16 v39, v2

    int-to-long v1, v1

    mul-long v4, v4, v1

    aget v1, v0, v21

    int-to-long v1, v1

    mul-long v10, v10, v1

    ushr-long v1, v10, v23

    add-long/2addr v1, v12

    add-long/2addr v1, v4

    ushr-long v1, v1, v23

    add-long/2addr v1, v14

    add-long/2addr v1, v6

    ushr-long v1, v1, v23

    add-long/2addr v1, v8

    add-long v1, v1, v39

    const/16 v3, 0x15

    ushr-long/2addr v1, v3

    const/16 v4, 0xa

    shl-long v5, v37, v4

    add-long/2addr v1, v5

    ushr-long v1, v1, v36

    ushr-long v4, v16, v23

    const-wide/32 v6, 0x7fffffff

    and-long v8, v16, v6

    const/4 v6, 0x0

    aget v7, v0, v6

    int-to-long v10, v7

    mul-long v10, v10, v4

    aget v7, v0, v6

    int-to-long v6, v7

    mul-long v6, v6, v8

    const/4 v12, 0x1

    aget v13, v0, v12

    int-to-long v13, v13

    mul-long v13, v13, v4

    aget v15, v0, v12

    move-wide/from16 v16, v4

    int-to-long v3, v15

    mul-long v3, v3, v8

    aget v5, v0, v22

    move-wide/from16 v37, v1

    int-to-long v1, v5

    mul-long v1, v1, v16

    aget v5, v0, v22

    move-wide/from16 v39, v10

    int-to-long v10, v5

    mul-long v10, v10, v8

    aget v5, v0, v21

    move-wide/from16 v41, v13

    int-to-long v12, v5

    mul-long v12, v12, v16

    aget v5, v0, v21

    int-to-long v14, v5

    mul-long v8, v8, v14

    ushr-long v8, v8, v23

    add-long/2addr v8, v10

    add-long/2addr v8, v12

    ushr-long v8, v8, v23

    add-long/2addr v8, v3

    add-long/2addr v8, v1

    ushr-long v1, v8, v23

    add-long/2addr v1, v6

    add-long v1, v1, v41

    const/16 v3, 0x15

    ushr-long/2addr v1, v3

    const/16 v4, 0xa

    shl-long v5, v39, v4

    add-long/2addr v1, v5

    ushr-long v1, v1, v36

    ushr-long v4, v34, v23

    const-wide/32 v6, 0x7fffffff

    and-long v6, v34, v6

    const/4 v8, 0x0

    aget v9, v0, v8

    int-to-long v9, v9

    mul-long v9, v9, v4

    aget v11, v0, v8

    int-to-long v11, v11

    mul-long v11, v11, v6

    const/4 v13, 0x1

    aget v14, v0, v13

    int-to-long v14, v14

    mul-long v14, v14, v4

    aget v3, v0, v13

    move-wide/from16 v16, v9

    int-to-long v8, v3

    mul-long v8, v8, v6

    aget v3, v0, v22

    move-wide/from16 v24, v1

    int-to-long v1, v3

    mul-long v1, v1, v4

    aget v3, v0, v22

    move-wide/from16 v34, v14

    int-to-long v13, v3

    mul-long v13, v13, v6

    aget v3, v0, v21

    move-wide/from16 v39, v11

    int-to-long v10, v3

    mul-long v4, v4, v10

    aget v0, v0, v21

    int-to-long v10, v0

    mul-long v6, v6, v10

    ushr-long v6, v6, v23

    add-long/2addr v6, v13

    add-long/2addr v6, v4

    ushr-long v3, v6, v23

    add-long/2addr v3, v8

    add-long/2addr v3, v1

    ushr-long v0, v3, v23

    add-long v0, v0, v39

    add-long v0, v0, v34

    const/16 v2, 0x15

    ushr-long/2addr v0, v2

    const/16 v2, 0xa

    shl-long v3, v16, v2

    add-long/2addr v0, v3

    ushr-long v0, v0, v36

    add-int v2, v27, v33

    move/from16 v3, v27

    const/4 v4, 0x1

    if-gt v3, v4, :cond_47e

    if-eqz v30, :cond_479

    move/from16 v10, v28

    if-ne v10, v4, :cond_496

    const/4 v10, 0x1

    goto :goto_497

    :cond_479
    const-wide/16 v5, 0x1

    sub-long v24, v24, v5

    goto :goto_496

    :cond_47e
    const-wide/16 v5, 0x1

    const/16 v7, 0x3f

    if-ge v3, v7, :cond_495

    sub-int/2addr v3, v4

    shl-long v3, v5, v3

    sub-long/2addr v3, v5

    and-long v3, v31, v3

    const-wide/16 v5, 0x0

    cmp-long v7, v3, v5

    if-nez v7, :cond_492

    const/4 v10, 0x1

    goto :goto_493

    :cond_492
    const/4 v10, 0x0

    :goto_493
    move v4, v10

    goto :goto_496

    :cond_495
    const/4 v4, 0x0

    :cond_496
    :goto_496
    const/4 v10, 0x0

    :goto_497
    const-wide v5, 0xde0b6b3a7640000L

    const-wide/16 v7, 0xa

    cmp-long v3, v24, v5

    if-ltz v3, :cond_4a6

    const/16 v11, 0x13

    goto/16 :goto_558

    :cond_4a6
    const-wide v5, 0x16345785d8a0000L

    cmp-long v3, v24, v5

    if-ltz v3, :cond_4b3

    const/16 v11, 0x12

    goto/16 :goto_558

    :cond_4b3
    const-wide v5, 0x2386f26fc10000L

    cmp-long v3, v24, v5

    if-ltz v3, :cond_4c0

    const/16 v11, 0x11

    goto/16 :goto_558

    :cond_4c0
    const-wide v5, 0x38d7ea4c68000L

    cmp-long v3, v24, v5

    if-ltz v3, :cond_4cd

    const/16 v11, 0x10

    goto/16 :goto_558

    :cond_4cd
    const-wide v5, 0x5af3107a4000L

    cmp-long v3, v24, v5

    if-ltz v3, :cond_4da

    const/16 v11, 0xf

    goto/16 :goto_558

    :cond_4da
    const-wide v5, 0x9184e72a000L

    cmp-long v3, v24, v5

    if-ltz v3, :cond_4e7

    const/16 v11, 0xe

    goto/16 :goto_558

    :cond_4e7
    const-wide v5, 0xe8d4a51000L

    cmp-long v3, v24, v5

    if-ltz v3, :cond_4f4

    const/16 v11, 0xd

    goto/16 :goto_558

    :cond_4f4
    const-wide v5, 0x174876e800L

    cmp-long v3, v24, v5

    if-ltz v3, :cond_500

    const/16 v11, 0xc

    goto :goto_558

    :cond_500
    const-wide v5, 0x2540be400L

    cmp-long v3, v24, v5

    if-ltz v3, :cond_50c

    const/16 v11, 0xb

    goto :goto_558

    :cond_50c
    const-wide/32 v5, 0x3b9aca00

    cmp-long v3, v24, v5

    if-ltz v3, :cond_516

    const/16 v11, 0xa

    goto :goto_558

    :cond_516
    const-wide/32 v5, 0x5f5e100

    cmp-long v3, v24, v5

    if-ltz v3, :cond_520

    const/16 v11, 0x9

    goto :goto_558

    :cond_520
    cmp-long v3, v24, v18

    if-ltz v3, :cond_527

    const/16 v11, 0x8

    goto :goto_558

    :cond_527
    const-wide/32 v5, 0xf4240

    cmp-long v3, v24, v5

    if-ltz v3, :cond_530

    const/4 v11, 0x7

    goto :goto_558

    :cond_530
    const-wide/32 v5, 0x186a0

    cmp-long v3, v24, v5

    if-ltz v3, :cond_539

    const/4 v11, 0x6

    goto :goto_558

    :cond_539
    const-wide/16 v5, 0x2710

    cmp-long v3, v24, v5

    if-ltz v3, :cond_541

    const/4 v11, 0x5

    goto :goto_558

    :cond_541
    const-wide/16 v5, 0x3e8

    cmp-long v3, v24, v5

    if-ltz v3, :cond_549

    const/4 v11, 0x4

    goto :goto_558

    :cond_549
    const-wide/16 v5, 0x64

    cmp-long v3, v24, v5

    if-ltz v3, :cond_551

    const/4 v11, 0x3

    goto :goto_558

    :cond_551
    cmp-long v3, v24, v7

    if-ltz v3, :cond_557

    const/4 v11, 0x2

    goto :goto_558

    :cond_557
    const/4 v11, 0x1

    :goto_558
    add-int/2addr v2, v11

    const/4 v3, 0x1

    sub-int/2addr v2, v3

    const/4 v3, -0x3

    if-lt v2, v3, :cond_564

    const/4 v3, 0x7

    if-lt v2, v3, :cond_562

    goto :goto_564

    :cond_562
    const/4 v3, 0x0

    goto :goto_565

    :cond_564
    :goto_564
    const/4 v3, 0x1

    :goto_565
    if-nez v10, :cond_598

    if-eqz v4, :cond_56a

    goto :goto_598

    :cond_56a
    const/4 v4, 0x0

    const/4 v5, 0x0

    :goto_56c
    div-long v9, v24, v7

    div-long v12, v0, v7

    cmp-long v6, v9, v12

    if-lez v6, :cond_588

    const-wide/16 v14, 0x64

    cmp-long v6, v24, v14

    if-gez v6, :cond_57d

    if-eqz v3, :cond_57d

    goto :goto_588

    :cond_57d
    rem-long v0, v37, v7

    long-to-int v5, v0

    div-long v37, v37, v7

    add-int/lit8 v4, v4, 0x1

    move-wide/from16 v24, v9

    move-wide v0, v12

    goto :goto_56c

    :cond_588
    :goto_588
    cmp-long v6, v37, v0

    if-eqz v6, :cond_592

    const/4 v0, 0x5

    if-lt v5, v0, :cond_590

    goto :goto_592

    :cond_590
    const/4 v0, 0x0

    goto :goto_593

    :cond_592
    :goto_592
    const/4 v0, 0x1

    :goto_593
    int-to-long v0, v0

    add-long v37, v37, v0

    goto/16 :goto_60f

    :cond_598
    :goto_598
    const/4 v5, 0x0

    const/4 v6, 0x0

    :goto_59a
    div-long v12, v24, v7

    div-long v14, v0, v7

    cmp-long v9, v12, v14

    if-lez v9, :cond_5c7

    const-wide/16 v16, 0x64

    cmp-long v9, v24, v16

    if-gez v9, :cond_5ab

    if-eqz v3, :cond_5ab

    goto :goto_5c7

    :cond_5ab
    rem-long/2addr v0, v7

    const-wide/16 v16, 0x0

    cmp-long v9, v0, v16

    if-nez v9, :cond_5b4

    const/4 v0, 0x1

    goto :goto_5b5

    :cond_5b4
    const/4 v0, 0x0

    :goto_5b5
    and-int/2addr v10, v0

    if-nez v5, :cond_5ba

    const/4 v0, 0x1

    goto :goto_5bb

    :cond_5ba
    const/4 v0, 0x0

    :goto_5bb
    and-int/2addr v4, v0

    rem-long v0, v37, v7

    long-to-int v5, v0

    div-long v37, v37, v7

    add-int/lit8 v6, v6, 0x1

    move-wide/from16 v24, v12

    move-wide v0, v14

    goto :goto_59a

    :cond_5c7
    :goto_5c7
    if-eqz v10, :cond_5ed

    if-eqz v30, :cond_5ed

    :goto_5cb
    rem-long v12, v0, v7

    const-wide/16 v14, 0x0

    cmp-long v9, v12, v14

    if-nez v9, :cond_5ed

    const-wide/16 v12, 0x64

    cmp-long v9, v24, v12

    if-gez v9, :cond_5dc

    if-eqz v3, :cond_5dc

    goto :goto_5ed

    :cond_5dc
    if-nez v5, :cond_5e0

    const/4 v5, 0x1

    goto :goto_5e1

    :cond_5e0
    const/4 v5, 0x0

    :goto_5e1
    and-int/2addr v4, v5

    rem-long v12, v37, v7

    long-to-int v5, v12

    div-long v24, v24, v7

    div-long v37, v37, v7

    div-long/2addr v0, v7

    add-int/lit8 v6, v6, 0x1

    goto :goto_5cb

    :cond_5ed
    :goto_5ed
    if-eqz v4, :cond_5fd

    const/4 v4, 0x5

    if-ne v5, v4, :cond_5fd

    const-wide/16 v12, 0x2

    rem-long v12, v37, v12

    const-wide/16 v14, 0x0

    cmp-long v4, v12, v14

    if-nez v4, :cond_5fd

    const/4 v5, 0x4

    :cond_5fd
    cmp-long v4, v37, v0

    if-nez v4, :cond_605

    if-eqz v10, :cond_608

    if-eqz v30, :cond_608

    :cond_605
    const/4 v0, 0x5

    if-lt v5, v0, :cond_60a

    :cond_608
    const/4 v0, 0x1

    goto :goto_60b

    :cond_60a
    const/4 v0, 0x0

    :goto_60b
    int-to-long v0, v0

    add-long v37, v37, v0

    move v4, v6

    :goto_60f
    sub-int/2addr v11, v4

    if-eqz v29, :cond_619

    add-int/lit8 v0, p3, 0x1

    const/16 v1, 0x2d

    aput-char v1, p2, p3

    goto :goto_61b

    :cond_619
    move/from16 v0, p3

    :goto_61b
    if-eqz v3, :cond_694

    const/4 v1, 0x0

    :goto_61e
    add-int/lit8 v3, v11, -0x1

    if-ge v1, v3, :cond_633

    rem-long v3, v37, v7

    long-to-int v4, v3

    div-long v37, v37, v7

    add-int v3, v0, v11

    sub-int/2addr v3, v1

    const/16 v5, 0x30

    add-int/2addr v4, v5

    int-to-char v4, v4

    aput-char v4, p2, v3

    add-int/lit8 v1, v1, 0x1

    goto :goto_61e

    :cond_633
    const-wide/16 v3, 0x30

    rem-long v37, v37, v7

    add-long v3, v37, v3

    long-to-int v1, v3

    int-to-char v1, v1

    aput-char v1, p2, v0

    add-int/lit8 v1, v0, 0x1

    const/16 v3, 0x2e

    aput-char v3, p2, v1

    add-int/lit8 v1, v11, 0x1

    add-int/2addr v0, v1

    const/4 v1, 0x1

    if-ne v11, v1, :cond_650

    add-int/lit8 v1, v0, 0x1

    const/16 v3, 0x30

    aput-char v3, p2, v0

    move v0, v1

    :cond_650
    add-int/lit8 v1, v0, 0x1

    const/16 v3, 0x45

    aput-char v3, p2, v0

    if-gez v2, :cond_660

    add-int/lit8 v0, v1, 0x1

    const/16 v3, 0x2d

    aput-char v3, p2, v1

    neg-int v2, v2

    goto :goto_661

    :cond_660
    move v0, v1

    :goto_661
    const/16 v1, 0x64

    if-lt v2, v1, :cond_67a

    add-int/lit8 v1, v0, 0x1

    div-int/lit8 v3, v2, 0x64

    const/16 v4, 0x30

    add-int/2addr v3, v4

    int-to-char v3, v3

    aput-char v3, p2, v0

    rem-int/lit8 v2, v2, 0x64

    add-int/lit8 v0, v1, 0x1

    div-int/lit8 v3, v2, 0xa

    add-int/2addr v3, v4

    int-to-char v3, v3

    aput-char v3, p2, v1

    goto :goto_689

    :cond_67a
    const/16 v1, 0xa

    const/16 v4, 0x30

    if-lt v2, v1, :cond_689

    add-int/lit8 v1, v0, 0x1

    div-int/lit8 v3, v2, 0xa

    add-int/2addr v3, v4

    int-to-char v3, v3

    aput-char v3, p2, v0

    move v0, v1

    :cond_689
    :goto_689
    add-int/lit8 v1, v0, 0x1

    const/16 v3, 0xa

    rem-int/2addr v2, v3

    add-int/2addr v2, v4

    int-to-char v2, v2

    aput-char v2, p2, v0

    goto/16 :goto_51

    :cond_694
    const/16 v4, 0x30

    if-gez v2, :cond_6c8

    add-int/lit8 v1, v0, 0x1

    aput-char v4, p2, v0

    add-int/lit8 v0, v1, 0x1

    const/16 v3, 0x2e

    aput-char v3, p2, v1

    const/4 v1, -0x1

    :goto_6a3
    if-le v1, v2, :cond_6af

    add-int/lit8 v3, v0, 0x1

    aput-char v4, p2, v0

    add-int/lit8 v1, v1, -0x1

    move v0, v3

    const/16 v4, 0x30

    goto :goto_6a3

    :cond_6af
    move v2, v0

    const/4 v1, 0x0

    :goto_6b1
    if-ge v1, v11, :cond_72b

    add-int v3, v0, v11

    sub-int/2addr v3, v1

    const/4 v4, 0x1

    sub-int/2addr v3, v4

    const-wide/16 v4, 0x30

    rem-long v9, v37, v7

    add-long/2addr v9, v4

    long-to-int v4, v9

    int-to-char v4, v4

    aput-char v4, p2, v3

    div-long v37, v37, v7

    add-int/lit8 v2, v2, 0x1

    add-int/lit8 v1, v1, 0x1

    goto :goto_6b1

    :cond_6c8
    add-int/lit8 v1, v2, 0x1

    if-lt v1, v11, :cond_6fc

    const/4 v2, 0x0

    :goto_6cd
    if-ge v2, v11, :cond_6e2

    add-int v3, v0, v11

    sub-int/2addr v3, v2

    const/4 v4, 0x1

    sub-int/2addr v3, v4

    const-wide/16 v4, 0x30

    rem-long v9, v37, v7

    add-long/2addr v9, v4

    long-to-int v4, v9

    int-to-char v4, v4

    aput-char v4, p2, v3

    div-long v37, v37, v7

    add-int/lit8 v2, v2, 0x1

    goto :goto_6cd

    :cond_6e2
    add-int/2addr v0, v11

    :goto_6e3
    if-ge v11, v1, :cond_6ef

    add-int/lit8 v2, v0, 0x1

    const/16 v3, 0x30

    aput-char v3, p2, v0

    add-int/lit8 v11, v11, 0x1

    move v0, v2

    goto :goto_6e3

    :cond_6ef
    const/16 v3, 0x30

    add-int/lit8 v1, v0, 0x1

    const/16 v2, 0x2e

    aput-char v2, p2, v0

    add-int/lit8 v2, v1, 0x1

    aput-char v3, p2, v1

    goto :goto_72b

    :cond_6fc
    add-int/lit8 v1, v0, 0x1

    move v3, v1

    const/4 v1, 0x0

    :goto_700
    if-ge v1, v11, :cond_727

    sub-int v4, v11, v1

    const/4 v5, 0x1

    sub-int/2addr v4, v5

    if-ne v4, v2, :cond_713

    add-int v4, v3, v11

    sub-int/2addr v4, v1

    sub-int/2addr v4, v5

    const/16 v6, 0x2e

    aput-char v6, p2, v4

    add-int/lit8 v3, v3, -0x1

    goto :goto_715

    :cond_713
    const/16 v6, 0x2e

    :goto_715
    add-int v4, v3, v11

    sub-int/2addr v4, v1

    sub-int/2addr v4, v5

    const-wide/16 v9, 0x30

    rem-long v12, v37, v7

    add-long/2addr v12, v9

    long-to-int v9, v12

    int-to-char v9, v9

    aput-char v9, p2, v4

    div-long v37, v37, v7

    add-int/lit8 v1, v1, 0x1

    goto :goto_700

    :cond_727
    const/4 v5, 0x1

    add-int/2addr v11, v5

    add-int v2, v0, v11

    :cond_72b
    :goto_72b
    sub-int v2, v2, p3

    return v2

    :cond_72e
    move/from16 v36, v1

    new-instance v0, Ljava/lang/IllegalArgumentException;

    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    const-string v2, ""

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move/from16 v2, v36

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V

    goto :goto_74a

    :goto_749
    throw v0

    :goto_74a
    goto :goto_749
.end method

.method public static toString(D)Ljava/lang/String;
    .registers 4

    const/16 v0, 0x18

    new-array v0, v0, [C

    const/4 v1, 0x0

    invoke-static {p0, p1, v0, v1}, Lcom/tradplus/ads/common/serialization/util/RyuDouble;->toString(D[CI)I

    move-result p0

    new-instance p1, Ljava/lang/String;

    invoke-direct {p1, v0, v1, p0}, Ljava/lang/String;-><init>([CII)V

    return-object p1
.end method