RyuDouble.smali 
.class public final Lcom/alibaba/fastjson/util/RyuDouble;
.super Ljava/lang/Object;
.source "RyuDouble.java"
# static fields
.field private static final POW5_INV_SPLIT:[[I
.field private static final POW5_SPLIT:[[I
# direct methods
.method static constructor <clinit>()V
    .registers 13
    .line 23
    const-class v0, I
    const/4 v1, 0x2
    new-array v2, v1, [I
    fill-array-data v2, :array_e8
    invoke-static {v0, 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/alibaba/fastjson/util/RyuDouble;->POW5_SPLIT:[[I
    new-array v1, v1, [I
    .line 24
    fill-array-data v1, :array_f0
    invoke-static {v0, v1}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;[I)Ljava/lang/Object;
    move-result-object v0
    check-cast v0, [[I
    sput-object v0, Lcom/alibaba/fastjson/util/RyuDouble;->POW5_INV_SPLIT:[[I
    .line 27
    sget-object v0, Ljava/math/BigInteger;->ONE:Ljava/math/BigInteger;
    const/16 v1, 0x1f
    invoke-virtual {v0, v1}, Ljava/math/BigInteger;->shiftLeft(I)Ljava/math/BigInteger;
    move-result-object v0
    sget-object v2, Ljava/math/BigInteger;->ONE:Ljava/math/BigInteger;
    invoke-virtual {v0, v2}, Ljava/math/BigInteger;->subtract(Ljava/math/BigInteger;)Ljava/math/BigInteger;
    move-result-object v0
    .line 28
    sget-object v2, Ljava/math/BigInteger;->ONE:Ljava/math/BigInteger;
    invoke-virtual {v2, v1}, Ljava/math/BigInteger;->shiftLeft(I)Ljava/math/BigInteger;
    move-result-object v2
    sget-object v3, Ljava/math/BigInteger;->ONE:Ljava/math/BigInteger;
    invoke-virtual {v2, v3}, Ljava/math/BigInteger;->subtract(Ljava/math/BigInteger;)Ljava/math/BigInteger;
    move-result-object v2
    const/4 v3, 0x0
    move v4, v3
    :goto_39
    const/16 v5, 0x146
    if-ge v4, v5, :cond_e7
    const-wide/16 v5, 0x5
    .line 30
    invoke-static {v5, v6}, Ljava/math/BigInteger;->valueOf(J)Ljava/math/BigInteger;
    move-result-object v5
    invoke-virtual {v5, v4}, Ljava/math/BigInteger;->pow(I)Ljava/math/BigInteger;
    move-result-object v5
    .line 31
    invoke-virtual {v5}, Ljava/math/BigInteger;->bitLength()I
    move-result v6
    if-nez v4, :cond_4f
    const/4 v7, 0x1
    goto :goto_5d
    :cond_4f
    int-to-long v7, v4
    const-wide/32 v9, 0x1624c50
    mul-long/2addr v7, v9
    const-wide/32 v9, 0x989680
    add-long/2addr v7, v9
    const-wide/16 v11, 0x1
    sub-long/2addr v7, v11
    .line 32
    div-long/2addr v7, v9
    long-to-int v7, v7
    :goto_5d
    if-ne v7, v6, :cond_cd
    .line 36
    sget-object v7, Lcom/alibaba/fastjson/util/RyuDouble;->POW5_SPLIT:[[I
    array-length v7, v7
    const/4 v8, 0x4
    if-ge v4, v7, :cond_83
    move v7, v3
    :goto_66
    if-ge v7, v8, :cond_83
    .line 38
    sget-object v9, Lcom/alibaba/fastjson/util/RyuDouble;->POW5_SPLIT:[[I
    aget-object v9, v9, v4
    add-int/lit8 v10, v6, -0x79
    rsub-int/lit8 v11, v7, 0x3
    mul-int/2addr v11, v1
    add-int/2addr v10, v11
    .line 39
    invoke-virtual {v5, v10}, Ljava/math/BigInteger;->shiftRight(I)Ljava/math/BigInteger;
    move-result-object v10
    .line 40
    invoke-virtual {v10, v0}, Ljava/math/BigInteger;->and(Ljava/math/BigInteger;)Ljava/math/BigInteger;
    move-result-object v10
    .line 41
    invoke-virtual {v10}, Ljava/math/BigInteger;->intValue()I
    move-result v10
    aput v10, v9, v7
    add-int/lit8 v7, v7, 0x1
    goto :goto_66
    .line 45
    :cond_83
    sget-object v7, Lcom/alibaba/fastjson/util/RyuDouble;->POW5_INV_SPLIT:[[I
    array-length v7, v7
    if-ge v4, v7, :cond_c9
    add-int/lit8 v6, v6, 0x79
    .line 48
    sget-object v7, Ljava/math/BigInteger;->ONE:Ljava/math/BigInteger;
    .line 49
    invoke-virtual {v7, v6}, Ljava/math/BigInteger;->shiftLeft(I)Ljava/math/BigInteger;
    move-result-object v6
    .line 50
    invoke-virtual {v6, v5}, Ljava/math/BigInteger;->divide(Ljava/math/BigInteger;)Ljava/math/BigInteger;
    move-result-object v5
    sget-object v6, Ljava/math/BigInteger;->ONE:Ljava/math/BigInteger;
    .line 51
    invoke-virtual {v5, v6}, Ljava/math/BigInteger;->add(Ljava/math/BigInteger;)Ljava/math/BigInteger;
    move-result-object v5
    move v6, v3
    :goto_9b
    if-ge v6, v8, :cond_c9
    if-nez v6, :cond_b1
    .line 54
    sget-object v7, Lcom/alibaba/fastjson/util/RyuDouble;->POW5_INV_SPLIT:[[I
    aget-object v7, v7, v4
    rsub-int/lit8 v9, v6, 0x3
    mul-int/2addr v9, v1
    .line 55
    invoke-virtual {v5, v9}, Ljava/math/BigInteger;->shiftRight(I)Ljava/math/BigInteger;
    move-result-object v9
    .line 56
    invoke-virtual {v9}, Ljava/math/BigInteger;->intValue()I
    move-result v9
    aput v9, v7, v6
    goto :goto_c6
    .line 58
    :cond_b1
    sget-object v7, Lcom/alibaba/fastjson/util/RyuDouble;->POW5_INV_SPLIT:[[I
    aget-object v7, v7, v4
    rsub-int/lit8 v9, v6, 0x3
    mul-int/2addr v9, v1
    .line 59
    invoke-virtual {v5, v9}, Ljava/math/BigInteger;->shiftRight(I)Ljava/math/BigInteger;
    move-result-object v9
    .line 60
    invoke-virtual {v9, v2}, Ljava/math/BigInteger;->and(Ljava/math/BigInteger;)Ljava/math/BigInteger;
    move-result-object v9
    .line 61
    invoke-virtual {v9}, Ljava/math/BigInteger;->intValue()I
    move-result v9
    aput v9, v7, v6
    :goto_c6
    add-int/lit8 v6, v6, 0x1
    goto :goto_9b
    :cond_c9
    add-int/lit8 v4, v4, 0x1
    goto/16 :goto_39
    .line 34
    :cond_cd
    new-instance v0, Ljava/lang/IllegalStateException;
    new-instance v1, Ljava/lang/StringBuilder;
    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
    invoke-virtual {v1, v6}, 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, v7}, 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_e7
    return-void
    :array_e8
    .array-data 4
        0x146
        0x4
    .end array-data
    :array_f0
    .array-data 4
        0x123
        0x4
    .end array-data
.end method
.method public constructor <init>()V
    .registers 1
    .line 22
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V
    return-void
.end method
.method public static toString(D[CI)I
    .registers 45
    .line 84
    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
    .line 85
    aput-char v1, p2, p3
    add-int/lit8 v1, v0, 0x1
    const/16 v2, 0x61
    .line 86
    aput-char v2, p2, v0
    add-int/lit8 v0, v1, 0x1
    const/16 v2, 0x4e
    .line 87
    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 v0, p0, v0
    const/16 v1, 0x69
    const/16 v2, 0x6e
    if-nez v0, :cond_50
    add-int/lit8 v0, p3, 0x1
    const/16 v3, 0x49
    .line 92
    aput-char v3, p2, p3
    add-int/lit8 v3, v0, 0x1
    .line 93
    aput-char v2, p2, v0
    add-int/lit8 v0, v3, 0x1
    const/16 v4, 0x66
    .line 94
    aput-char v4, p2, v3
    add-int/lit8 v3, v0, 0x1
    .line 95
    aput-char v1, p2, v0
    add-int/lit8 v0, v3, 0x1
    .line 96
    aput-char v2, p2, v3
    add-int/lit8 v2, v0, 0x1
    .line 97
    aput-char v1, p2, v0
    add-int/lit8 v0, v2, 0x1
    const/16 v1, 0x74
    .line 98
    aput-char v1, p2, v2
    add-int/lit8 v1, v0, 0x1
    const/16 v2, 0x79
    .line 99
    aput-char v2, p2, v0
    :goto_4d
    sub-int v1, v1, p3
    return v1
    :cond_50
    const-wide/high16 v3, -0x10000000000000L    # Double.NEGATIVE_INFINITY
    cmpl-double v0, p0, v3
    const/16 v3, 0x2d
    if-nez v0, :cond_85
    add-int/lit8 v0, p3, 0x1
    .line 104
    aput-char v3, p2, p3
    add-int/lit8 v3, v0, 0x1
    const/16 v4, 0x49
    .line 105
    aput-char v4, p2, v0
    add-int/lit8 v0, v3, 0x1
    .line 106
    aput-char v2, p2, v3
    add-int/lit8 v3, v0, 0x1
    const/16 v4, 0x66
    .line 107
    aput-char v4, p2, v0
    add-int/lit8 v0, v3, 0x1
    .line 108
    aput-char v1, p2, v3
    add-int/lit8 v3, v0, 0x1
    .line 109
    aput-char v2, p2, v0
    add-int/lit8 v0, v3, 0x1
    .line 110
    aput-char v1, p2, v3
    add-int/lit8 v1, v0, 0x1
    const/16 v2, 0x74
    .line 111
    aput-char v2, p2, v0
    add-int/lit8 v0, v1, 0x1
    const/16 v2, 0x79
    .line 112
    aput-char v2, p2, v1
    goto :goto_18
    .line 116
    :cond_85
    invoke-static/range {p0 .. p1}, Ljava/lang/Double;->doubleToLongBits(D)J
    move-result-wide v0
    const-wide/16 v4, 0x0
    cmp-long v2, v0, v4
    const/16 v6, 0x2e
    const/16 v7, 0x30
    if-nez v2, :cond_a1
    add-int/lit8 v0, p3, 0x1
    .line 118
    aput-char v7, p2, p3
    add-int/lit8 v1, v0, 0x1
    .line 119
    aput-char v6, p2, v0
    add-int/lit8 v0, v1, 0x1
    .line 120
    aput-char v7, p2, v1
    goto/16 :goto_18
    :cond_a1
    const-wide/high16 v8, -0x8000000000000000L
    cmp-long v8, v0, v8
    if-nez v8, :cond_b8
    add-int/lit8 v0, p3, 0x1
    .line 124
    aput-char v3, p2, p3
    add-int/lit8 v1, v0, 0x1
    .line 125
    aput-char v7, p2, v0
    add-int/lit8 v0, v1, 0x1
    .line 126
    aput-char v6, p2, v1
    add-int/lit8 v1, v0, 0x1
    .line 127
    aput-char v7, p2, v0
    goto :goto_4d
    :cond_b8
    const/16 v8, 0x34
    ushr-long v8, v0, v8
    const-wide/16 v10, 0x7ff
    and-long/2addr v8, v10
    long-to-int v8, v8
    const-wide v9, 0xfffffffffffffL
    and-long/2addr v0, v9
    if-nez v8, :cond_cb
    const/16 v9, -0x432
    goto :goto_d2
    :cond_cb
    add-int/lit16 v9, v8, -0x3ff
    add-int/lit8 v9, v9, -0x34
    const-wide/high16 v10, 0x10000000000000L
    or-long/2addr v0, v10
    :goto_d2
    const/4 v10, 0x0
    const/4 v11, 0x1
    if-gez v2, :cond_d8
    move v2, v11
    goto :goto_d9
    :cond_d8
    move v2, v10
    :goto_d9
    const-wide/16 v12, 0x1
    and-long v14, v0, v12
    cmp-long v14, v14, v4
    if-nez v14, :cond_e3
    move v14, v11
    goto :goto_e4
    :cond_e3
    move v14, v10
    :goto_e4
    const-wide/16 v15, 0x4
    mul-long/2addr v15, v0
    const-wide/16 v17, 0x2
    add-long v17, v15, v17
    const-wide/high16 v19, 0x10000000000000L
    cmp-long v0, v0, v19
    if-nez v0, :cond_f6
    if-gt v8, v11, :cond_f4
    goto :goto_f6
    :cond_f4
    move v0, v10
    goto :goto_f7
    :cond_f6
    :goto_f6
    move v0, v11
    :goto_f7
    sub-long v19, v15, v12
    int-to-long v6, v0
    sub-long v19, v19, v6
    add-int/lit8 v9, v9, -0x2
    const-wide/32 v6, 0x7fffffff
    const-wide/32 v21, 0x989680
    const/16 v8, 0x15
    const/16 v23, 0x3
    const/16 v24, 0x2
    const/16 v25, 0x1f
    if-ltz v9, :cond_30c
    int-to-long v3, v9
    const-wide/32 v26, 0x2deefb
    mul-long v3, v3, v26
    .line 163
    div-long v3, v3, v21
    long-to-int v0, v3
    sub-int/2addr v0, v11
    invoke-static {v10, v0}, Ljava/lang/Math;->max(II)I
    move-result v0
    if-nez v0, :cond_120
    move v3, v11
    goto :goto_12c
    :cond_120
    int-to-long v3, v0
    const-wide/32 v26, 0x1624c50
    mul-long v3, v3, v26
    add-long v3, v3, v21
    sub-long/2addr v3, v12
    .line 166
    div-long v3, v3, v21
    long-to-int v3, v3
    :goto_12c
    add-int/lit8 v3, v3, 0x7a
    sub-int/2addr v3, v11
    neg-int v4, v9
    add-int/2addr v4, v0
    add-int/2addr v4, v3
    add-int/lit8 v4, v4, -0x5d
    sub-int/2addr v4, v8
    if-ltz v4, :cond_2f5
    .line 174
    sget-object v3, Lcom/alibaba/fastjson/util/RyuDouble;->POW5_INV_SPLIT:[[I
    aget-object v3, v3, v0
    ushr-long v26, v15, v25
    and-long v28, v15, v6
    .line 178
    aget v9, v3, v10
    int-to-long v12, v9
    mul-long v12, v12, v26
    .line 179
    aget v9, v3, v10
    int-to-long v5, v9
    mul-long v5, v5, v28
    .line 180
    aget v9, v3, v11
    move/from16 v32, v2
    int-to-long v1, v9
    mul-long v1, v1, v26
    .line 181
    aget v9, v3, v11
    int-to-long v10, v9
    mul-long v10, v10, v28
    .line 182
    aget v9, v3, v24
    int-to-long v7, v9
    mul-long v7, v7, v26
    .line 183
    aget v9, v3, v24
    move/from16 v34, v14
    move-wide/from16 v35, v15
    int-to-long v14, v9
    mul-long v14, v14, v28
    .line 184
    aget v9, v3, v23
    move-wide/from16 v37, v12
    int-to-long v12, v9
    mul-long v26, v26, v12
    .line 185
    aget v9, v3, v23
    int-to-long v12, v9
    mul-long v28, v28, v12
    ushr-long v12, v28, v25
    add-long/2addr v12, v14
    add-long v12, v12, v26
    ushr-long v12, v12, v25
    add-long/2addr v12, v10
    add-long/2addr v12, v7
    ushr-long v7, v12, v25
    add-long/2addr v7, v5
    add-long/2addr v7, v1
    const/16 v1, 0x15
    ushr-long v5, v7, v1
    const/16 v1, 0xa
    shl-long v7, v37, v1
    add-long/2addr v5, v7
    ushr-long v1, v5, v4
    ushr-long v5, v17, v25
    const-wide/32 v7, 0x7fffffff
    and-long v9, v17, v7
    const/4 v7, 0x0
    .line 197
    aget v8, v3, v7
    int-to-long v11, v8
    mul-long/2addr v11, v5
    .line 198
    aget v8, v3, v7
    int-to-long v7, v8
    mul-long/2addr v7, v9
    const/4 v13, 0x1
    .line 199
    aget v14, v3, v13
    int-to-long v14, v14
    mul-long/2addr v14, v5
    move-wide/from16 v26, v1
    .line 200
    aget v1, v3, v13
    int-to-long v1, v1
    mul-long/2addr v1, v9
    .line 201
    aget v13, v3, v24
    move-wide/from16 v28, v11
    int-to-long v11, v13
    mul-long/2addr v11, v5
    .line 202
    aget v13, v3, v24
    move-wide/from16 v37, v14
    int-to-long v13, v13
    mul-long/2addr v13, v9
    .line 203
    aget v15, v3, v23
    move-wide/from16 v39, v7
    int-to-long v7, v15
    mul-long/2addr v5, v7
    .line 204
    aget v7, v3, v23
    int-to-long v7, v7
    mul-long/2addr v9, v7
    ushr-long v7, v9, v25
    add-long/2addr v7, v13
    add-long/2addr v7, v5
    ushr-long v5, v7, v25
    add-long/2addr v5, v1
    add-long/2addr v5, v11
    ushr-long v1, v5, v25
    add-long v1, v1, v39
    add-long v1, v1, v37
    const/16 v5, 0x15
    ushr-long/2addr v1, v5
    const/16 v5, 0xa
    shl-long v6, v28, v5
    add-long/2addr v1, v6
    ushr-long/2addr v1, v4
    ushr-long v5, v19, v25
    const-wide/32 v7, 0x7fffffff
    and-long v7, v19, v7
    const/4 v9, 0x0
    .line 215
    aget v10, v3, v9
    int-to-long v10, v10
    mul-long/2addr v10, v5
    .line 216
    aget v12, v3, v9
    int-to-long v12, v12
    mul-long/2addr v12, v7
    const/4 v9, 0x1
    .line 217
    aget v14, v3, v9
    int-to-long v14, v14
    mul-long/2addr v14, v5
    move-wide/from16 v28, v1
    .line 218
    aget v1, v3, v9
    int-to-long v1, v1
    mul-long/2addr v1, v7
    .line 219
    aget v9, v3, v24
    move-wide/from16 v30, v10
    int-to-long v9, v9
    mul-long/2addr v9, v5
    .line 220
    aget v11, v3, v24
    move-wide/from16 v37, v14
    int-to-long v14, v11
    mul-long/2addr v14, v7
    .line 221
    aget v11, v3, v23
    move-wide/from16 v39, v12
    int-to-long v11, v11
    mul-long/2addr v5, v11
    .line 222
    aget v3, v3, v23
    int-to-long v11, v3
    mul-long/2addr v7, v11
    ushr-long v7, v7, v25
    add-long/2addr v7, v14
    add-long/2addr v7, v5
    ushr-long v5, v7, v25
    add-long/2addr v5, v1
    add-long/2addr v5, v9
    ushr-long v1, v5, v25
    add-long v1, v1, v39
    add-long v1, v1, v37
    const/16 v3, 0x15
    ushr-long/2addr v1, v3
    const/16 v5, 0xa
    shl-long v6, v30, v5
    add-long/2addr v1, v6
    ushr-long/2addr v1, v4
    if-gt v0, v3, :cond_2ec
    const-wide/16 v3, 0x5
    .line 234
    rem-long v15, v35, v3
    const-wide/16 v5, 0x0
    cmp-long v7, v15, v5
    const-wide/16 v8, 0x271
    if-nez v7, :cond_264
    if-eqz v7, :cond_229
    const/4 v7, 0x0
    goto :goto_25b
    :cond_229
    const-wide/16 v10, 0x19
    .line 240
    rem-long v15, v35, v10
    cmp-long v7, v15, v5
    if-eqz v7, :cond_233
    const/4 v7, 0x1
    goto :goto_25b
    :cond_233
    const-wide/16 v10, 0x7d
    .line 242
    rem-long v15, v35, v10
    cmp-long v7, v15, v5
    if-eqz v7, :cond_23e
    move/from16 v7, v24
    goto :goto_25b
    .line 244
    :cond_23e
    rem-long v15, v35, v8
    cmp-long v7, v15, v5
    if-eqz v7, :cond_247
    move/from16 v7, v23
    goto :goto_25b
    .line 248
    :cond_247
    div-long v15, v35, v8
    const/4 v7, 0x4
    :goto_24a
    cmp-long v8, v15, v5
    if-lez v8, :cond_25b
    .line 250
    rem-long v8, v15, v3
    cmp-long v8, v8, v5
    if-eqz v8, :cond_255
    goto :goto_25b
    .line 253
    :cond_255
    div-long/2addr v15, v3
    add-int/lit8 v7, v7, 0x1
    const-wide/16 v5, 0x0
    goto :goto_24a
    :cond_25b
    :goto_25b
    if-lt v7, v0, :cond_25f
    const/4 v3, 0x1
    goto :goto_260
    :cond_25f
    const/4 v3, 0x0
    :goto_260
    move v4, v3
    const/4 v3, 0x0
    goto/16 :goto_2ee
    :cond_264
    if-eqz v34, :cond_2a7
    .line 263
    rem-long v5, v19, v3
    const-wide/16 v10, 0x0
    cmp-long v5, v5, v10
    if-eqz v5, :cond_270
    const/4 v5, 0x0
    goto :goto_2a3
    :cond_270
    const-wide/16 v5, 0x19
    .line 265
    rem-long v5, v19, v5
    cmp-long v5, v5, v10
    if-eqz v5, :cond_27a
    const/4 v5, 0x1
    goto :goto_2a3
    :cond_27a
    const-wide/16 v5, 0x7d
    .line 267
    rem-long v5, v19, v5
    cmp-long v5, v5, v10
    if-eqz v5, :cond_285
    move/from16 v5, v24
    goto :goto_2a3
    .line 269
    :cond_285
    rem-long v5, v19, v8
    cmp-long v5, v5, v10
    if-eqz v5, :cond_28e
    move/from16 v5, v23
    goto :goto_2a3
    .line 273
    :cond_28e
    div-long v19, v19, v8
    const/4 v5, 0x4
    :goto_291
    cmp-long v6, v19, v10
    if-lez v6, :cond_2a3
    .line 275
    rem-long v6, v19, v3
    cmp-long v6, v6, v10
    if-eqz v6, :cond_29c
    goto :goto_2a3
    .line 278
    :cond_29c
    div-long v19, v19, v3
    add-int/lit8 v5, v5, 0x1
    const-wide/16 v10, 0x0
    goto :goto_291
    :cond_2a3
    :goto_2a3
    if-lt v5, v0, :cond_2ec
    const/4 v3, 0x1
    goto :goto_2ed
    .line 289
    :cond_2a7
    rem-long v5, v17, v3
    const-wide/16 v10, 0x0
    cmp-long v5, v5, v10
    if-eqz v5, :cond_2b1
    const/4 v5, 0x0
    goto :goto_2e4
    :cond_2b1
    const-wide/16 v5, 0x19
    .line 291
    rem-long v5, v17, v5
    cmp-long v5, v5, v10
    if-eqz v5, :cond_2bb
    const/4 v5, 0x1
    goto :goto_2e4
    :cond_2bb
    const-wide/16 v5, 0x7d
    .line 293
    rem-long v5, v17, v5
    cmp-long v5, v5, v10
    if-eqz v5, :cond_2c6
    move/from16 v5, v24
    goto :goto_2e4
    .line 295
    :cond_2c6
    rem-long v5, v17, v8
    cmp-long v5, v5, v10
    if-eqz v5, :cond_2cf
    move/from16 v5, v23
    goto :goto_2e4
    .line 299
    :cond_2cf
    div-long v17, v17, v8
    const/4 v5, 0x4
    :goto_2d2
    cmp-long v6, v17, v10
    if-lez v6, :cond_2e4
    .line 301
    rem-long v6, v17, v3
    cmp-long v6, v6, v10
    if-eqz v6, :cond_2dd
    goto :goto_2e4
    .line 304
    :cond_2dd
    div-long v17, v17, v3
    add-int/lit8 v5, v5, 0x1
    const-wide/16 v10, 0x0
    goto :goto_2d2
    :cond_2e4
    :goto_2e4
    if-lt v5, v0, :cond_2ec
    const-wide/16 v3, 0x1
    sub-long v3, v28, v3
    move-wide/from16 v28, v3
    :cond_2ec
    const/4 v3, 0x0
    :goto_2ed
    const/4 v4, 0x0
    :goto_2ee
    move v7, v3
    move-wide/from16 v17, v26
    move v3, v0
    const/4 v0, 0x0
    goto/16 :goto_455
    .line 171
    :cond_2f5
    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_30c
    move/from16 v32, v2
    move/from16 v34, v14
    move-wide/from16 v35, v15
    neg-int v1, v9
    int-to-long v2, v1
    const-wide/32 v4, 0x6aa784
    mul-long/2addr v2, v4
    .line 316
    div-long v2, v2, v21
    long-to-int v2, v2
    const/4 v3, 0x1
    sub-int/2addr v2, v3
    const/4 v3, 0x0
    invoke-static {v3, v2}, Ljava/lang/Math;->max(II)I
    move-result v2
    sub-int/2addr v1, v2
    if-nez v1, :cond_327
    const/4 v3, 0x1
    goto :goto_334
    :cond_327
    int-to-long v3, v1
    const-wide/32 v5, 0x1624c50
    mul-long/2addr v3, v5
    add-long v3, v3, v21
    const-wide/16 v5, 0x1
    sub-long/2addr v3, v5
    .line 318
    div-long v3, v3, v21
    long-to-int v3, v3
    :goto_334
    add-int/lit8 v3, v3, -0x79
    sub-int v3, v2, v3
    add-int/lit8 v3, v3, -0x5d
    const/16 v4, 0x15
    sub-int/2addr v3, v4
    if-ltz v3, :cond_6e7
    .line 325
    sget-object v4, Lcom/alibaba/fastjson/util/RyuDouble;->POW5_SPLIT:[[I
    aget-object v1, v4, v1
    ushr-long v4, v35, v25
    const-wide/32 v6, 0x7fffffff
    and-long v10, v35, v6
    const/4 v6, 0x0
    .line 329
    aget v7, v1, v6
    int-to-long v7, v7
    mul-long/2addr v7, v4
    .line 330
    aget v12, v1, v6
    int-to-long v12, v12
    mul-long/2addr v12, v10
    const/4 v6, 0x1
    .line 331
    aget v14, v1, v6
    int-to-long v14, v14
    mul-long/2addr v14, v4
    move/from16 v16, v0
    .line 332
    aget v0, v1, v6
    move v6, v2
    move/from16 v26, v3
    int-to-long v2, v0
    mul-long/2addr v2, v10
    .line 333
    aget v0, v1, v24
    move-wide/from16 v27, v7
    move v8, v6
    int-to-long v6, v0
    mul-long/2addr v6, v4
    .line 334
    aget v0, v1, v24
    move/from16 v37, v8
    move/from16 v29, v9
    int-to-long v8, v0
    mul-long/2addr v8, v10
    .line 335
    aget v0, v1, v23
    move-wide/from16 v38, v14
    int-to-long v14, v0
    mul-long/2addr v4, v14
    .line 336
    aget v0, v1, v23
    int-to-long v14, v0
    mul-long/2addr v10, v14
    ushr-long v10, v10, v25
    add-long/2addr v10, v8
    add-long/2addr v10, v4
    ushr-long v4, v10, v25
    add-long/2addr v4, v2
    add-long/2addr v4, v6
    ushr-long v2, v4, v25
    add-long/2addr v2, v12
    add-long v2, v2, v38
    const/16 v0, 0x15
    ushr-long/2addr v2, v0
    const/16 v0, 0xa
    shl-long v4, v27, v0
    add-long/2addr v2, v4
    ushr-long v2, v2, v26
    ushr-long v4, v17, v25
    const-wide/32 v6, 0x7fffffff
    and-long v8, v17, v6
    const/4 v0, 0x0
    .line 347
    aget v6, v1, v0
    int-to-long v6, v6
    mul-long/2addr v6, v4
    .line 348
    aget v10, v1, v0
    int-to-long v10, v10
    mul-long/2addr v10, v8
    const/4 v0, 0x1
    .line 349
    aget v12, v1, v0
    int-to-long v12, v12
    mul-long/2addr v12, v4
    .line 350
    aget v14, v1, v0
    int-to-long v14, v14
    mul-long/2addr v14, v8
    .line 351
    aget v0, v1, v24
    move-wide/from16 v17, v2
    int-to-long v2, v0
    mul-long/2addr v2, v4
    .line 352
    aget v0, v1, v24
    move-wide/from16 v27, v6
    int-to-long v6, v0
    mul-long/2addr v6, v8
    .line 353
    aget v0, v1, v23
    move-wide/from16 v38, v12
    int-to-long v12, v0
    mul-long/2addr v4, v12
    .line 354
    aget v0, v1, v23
    int-to-long v12, v0
    mul-long/2addr v8, v12
    ushr-long v8, v8, v25
    add-long/2addr v8, v6
    add-long/2addr v8, v4
    ushr-long v4, v8, v25
    add-long/2addr v4, v14
    add-long/2addr v4, v2
    ushr-long v2, v4, v25
    add-long/2addr v2, v10
    add-long v2, v2, v38
    const/16 v0, 0x15
    ushr-long/2addr v2, v0
    const/16 v0, 0xa
    shl-long v4, v27, v0
    add-long/2addr v2, v4
    ushr-long v2, v2, v26
    ushr-long v4, v19, v25
    const-wide/32 v6, 0x7fffffff
    and-long v6, v19, v6
    const/4 v0, 0x0
    .line 364
    aget v8, v1, v0
    int-to-long v8, v8
    mul-long/2addr v8, v4
    .line 365
    aget v10, v1, v0
    int-to-long v10, v10
    mul-long/2addr v10, v6
    const/4 v12, 0x1
    .line 366
    aget v13, v1, v12
    int-to-long v13, v13
    mul-long/2addr v13, v4
    .line 367
    aget v15, v1, v12
    move-wide/from16 v19, v2
    int-to-long v2, v15
    mul-long/2addr v2, v6
    .line 368
    aget v12, v1, v24
    move-wide/from16 v27, v8
    int-to-long v8, v12
    mul-long/2addr v8, v4
    .line 369
    aget v12, v1, v24
    move-wide/from16 v30, v13
    int-to-long v12, v12
    mul-long/2addr v12, v6
    .line 370
    aget v14, v1, v23
    int-to-long v14, v14
    mul-long/2addr v4, v14
    .line 371
    aget v1, v1, v23
    int-to-long v14, v1
    mul-long/2addr v6, v14
    ushr-long v6, v6, v25
    add-long/2addr v6, v12
    add-long/2addr v6, v4
    ushr-long v4, v6, v25
    add-long/2addr v4, v2
    add-long/2addr v4, v8
    ushr-long v1, v4, v25
    add-long/2addr v1, v10
    add-long v1, v1, v30
    const/16 v3, 0x15
    ushr-long/2addr v1, v3
    const/16 v3, 0xa
    shl-long v4, v27, v3
    add-long/2addr v1, v4
    ushr-long v1, v1, v26
    add-int v3, v37, v29
    move/from16 v5, v37
    const/4 v4, 0x1
    if-gt v5, v4, :cond_43a
    if-eqz v34, :cond_434
    move/from16 v10, v16
    if-ne v10, v4, :cond_42d
    move/from16 v33, v4
    goto :goto_42f
    :cond_42d
    move/from16 v33, v0
    :goto_42f
    move-wide/from16 v28, v19
    move/from16 v7, v33
    goto :goto_455
    :cond_434
    const-wide/16 v6, 0x1
    sub-long v28, v19, v6
    move v7, v0
    goto :goto_455
    :cond_43a
    const-wide/16 v6, 0x1
    const/16 v8, 0x3f
    if-ge v5, v8, :cond_451
    sub-int/2addr v5, v4
    shl-long v4, v6, v5
    sub-long/2addr v4, v6
    and-long v4, v35, v4
    const-wide/16 v6, 0x0
    cmp-long v4, v4, v6
    if-nez v4, :cond_44e
    const/4 v4, 0x1
    goto :goto_44f
    :cond_44e
    move v4, v0
    :goto_44f
    move v7, v0
    goto :goto_453
    :cond_451
    move v4, v0
    move v7, v4
    :goto_453
    move-wide/from16 v28, v19
    :goto_455
    const-wide v5, 0xde0b6b3a7640000L
    cmp-long v5, v28, v5
    const/4 v6, 0x5
    const-wide/16 v8, 0x64
    const-wide/16 v10, 0xa
    if-ltz v5, :cond_467
    const/16 v23, 0x13
    goto/16 :goto_51c
    :cond_467
    const-wide v12, 0x16345785d8a0000L
    cmp-long v5, v28, v12
    if-ltz v5, :cond_474
    const/16 v23, 0x12
    goto/16 :goto_51c
    :cond_474
    const-wide v12, 0x2386f26fc10000L
    cmp-long v5, v28, v12
    if-ltz v5, :cond_481
    const/16 v23, 0x11
    goto/16 :goto_51c
    :cond_481
    const-wide v12, 0x38d7ea4c68000L
    cmp-long v5, v28, v12
    if-ltz v5, :cond_48e
    const/16 v23, 0x10
    goto/16 :goto_51c
    :cond_48e
    const-wide v12, 0x5af3107a4000L
    cmp-long v5, v28, v12
    if-ltz v5, :cond_49b
    const/16 v23, 0xf
    goto/16 :goto_51c
    :cond_49b
    const-wide v12, 0x9184e72a000L
    cmp-long v5, v28, v12
    if-ltz v5, :cond_4a8
    const/16 v23, 0xe
    goto/16 :goto_51c
    :cond_4a8
    const-wide v12, 0xe8d4a51000L
    cmp-long v5, v28, v12
    if-ltz v5, :cond_4b5
    const/16 v23, 0xd
    goto/16 :goto_51c
    :cond_4b5
    const-wide v12, 0x174876e800L
    cmp-long v5, v28, v12
    if-ltz v5, :cond_4c1
    const/16 v23, 0xc
    goto :goto_51c
    :cond_4c1
    const-wide v12, 0x2540be400L
    cmp-long v5, v28, v12
    if-ltz v5, :cond_4cd
    const/16 v23, 0xb
    goto :goto_51c
    :cond_4cd
    const-wide/32 v12, 0x3b9aca00
    cmp-long v5, v28, v12
    if-ltz v5, :cond_4d7
    const/16 v23, 0xa
    goto :goto_51c
    :cond_4d7
    const-wide/32 v12, 0x5f5e100
    cmp-long v5, v28, v12
    if-ltz v5, :cond_4e1
    const/16 v23, 0x9
    goto :goto_51c
    :cond_4e1
    cmp-long v5, v28, v21
    if-ltz v5, :cond_4e8
    const/16 v23, 0x8
    goto :goto_51c
    :cond_4e8
    const-wide/32 v12, 0xf4240
    cmp-long v5, v28, v12
    if-ltz v5, :cond_4f2
    const/16 v23, 0x7
    goto :goto_51c
    :cond_4f2
    const-wide/32 v12, 0x186a0
    cmp-long v5, v28, v12
    if-ltz v5, :cond_4fc
    const/16 v23, 0x6
    goto :goto_51c
    :cond_4fc
    const-wide/16 v12, 0x2710
    cmp-long v5, v28, v12
    if-ltz v5, :cond_505
    move/from16 v23, v6
    goto :goto_51c
    :cond_505
    const-wide/16 v12, 0x3e8
    cmp-long v5, v28, v12
    if-ltz v5, :cond_50e
    const/16 v23, 0x4
    goto :goto_51c
    :cond_50e
    cmp-long v5, v28, v8
    if-ltz v5, :cond_513
    goto :goto_51c
    :cond_513
    cmp-long v5, v28, v10
    if-ltz v5, :cond_51a
    move/from16 v23, v24
    goto :goto_51c
    :cond_51a
    const/16 v23, 0x1
    :goto_51c
    add-int v3, v3, v23
    const/4 v5, 0x1
    sub-int/2addr v3, v5
    const/4 v5, -0x3
    if-lt v3, v5, :cond_529
    const/4 v5, 0x7
    if-lt v3, v5, :cond_527
    goto :goto_529
    :cond_527
    move v12, v0
    goto :goto_52a
    :cond_529
    :goto_529
    const/4 v12, 0x1
    :goto_52a
    if-nez v7, :cond_55a
    if-eqz v4, :cond_52f
    goto :goto_55a
    :cond_52f
    move v4, v0
    move v7, v4
    .line 485
    :goto_531
    div-long v13, v28, v10
    div-long v15, v1, v10
    cmp-long v5, v13, v15
    if-lez v5, :cond_54b
    cmp-long v5, v28, v8
    if-gez v5, :cond_540
    if-eqz v12, :cond_540
    goto :goto_54b
    .line 490
    :cond_540
    rem-long v1, v17, v10
    long-to-int v4, v1
    .line 492
    div-long v17, v17, v10
    add-int/lit8 v7, v7, 0x1
    move-wide/from16 v28, v13
    move-wide v1, v15
    goto :goto_531
    :cond_54b
    :goto_54b
    cmp-long v1, v17, v1
    if-eqz v1, :cond_554
    if-lt v4, v6, :cond_552
    goto :goto_554
    :cond_552
    move v1, v0
    goto :goto_555
    :cond_554
    :goto_554
    const/4 v1, 0x1
    :goto_555
    int-to-long v1, v1
    add-long v17, v17, v1
    goto/16 :goto_5cc
    :cond_55a
    :goto_55a
    move v5, v0
    move v13, v5
    .line 451
    :goto_55c
    div-long v14, v28, v10
    div-long v19, v1, v10
    cmp-long v16, v14, v19
    if-lez v16, :cond_588
    cmp-long v16, v28, v8
    if-gez v16, :cond_56b
    if-eqz v12, :cond_56b
    goto :goto_588
    .line 456
    :cond_56b
    rem-long/2addr v1, v10
    const-wide/16 v21, 0x0
    cmp-long v1, v1, v21
    if-nez v1, :cond_574
    const/4 v1, 0x1
    goto :goto_575
    :cond_574
    move v1, v0
    :goto_575
    and-int/2addr v7, v1
    if-nez v5, :cond_57a
    const/4 v1, 0x1
    goto :goto_57b
    :cond_57a
    move v1, v0
    :goto_57b
    and-int/2addr v4, v1
    .line 458
    rem-long v1, v17, v10
    long-to-int v5, v1
    .line 460
    div-long v17, v17, v10
    add-int/lit8 v13, v13, 0x1
    move-wide/from16 v28, v14
    move-wide/from16 v1, v19
    goto :goto_55c
    :cond_588
    :goto_588
    if-eqz v7, :cond_5ac
    if-eqz v34, :cond_5ac
    .line 465
    :goto_58c
    rem-long v14, v1, v10
    const-wide/16 v19, 0x0
    cmp-long v14, v14, v19
    if-nez v14, :cond_5ac
    cmp-long v14, v28, v8
    if-gez v14, :cond_59b
    if-eqz v12, :cond_59b
    goto :goto_5ac
    :cond_59b
    if-nez v5, :cond_59f
    const/4 v5, 0x1
    goto :goto_5a0
    :cond_59f
    move v5, v0
    :goto_5a0
    and-int/2addr v4, v5
    .line 471
    rem-long v14, v17, v10
    long-to-int v5, v14
    .line 472
    div-long v28, v28, v10
    .line 473
    div-long v17, v17, v10
    .line 474
    div-long/2addr v1, v10
    add-int/lit8 v13, v13, 0x1
    goto :goto_58c
    :cond_5ac
    :goto_5ac
    if-eqz v4, :cond_5bb
    if-ne v5, v6, :cond_5bb
    const-wide/16 v8, 0x2
    .line 478
    rem-long v8, v17, v8
    const-wide/16 v14, 0x0
    cmp-long v4, v8, v14
    if-nez v4, :cond_5bb
    const/4 v5, 0x4
    :cond_5bb
    cmp-long v1, v17, v1
    if-nez v1, :cond_5c3
    if-eqz v7, :cond_5c5
    if-eqz v34, :cond_5c5
    :cond_5c3
    if-lt v5, v6, :cond_5c7
    :cond_5c5
    const/4 v1, 0x1
    goto :goto_5c8
    :cond_5c7
    move v1, v0
    :goto_5c8
    int-to-long v1, v1
    add-long v17, v17, v1
    move v7, v13
    :goto_5cc
    sub-int v1, v23, v7
    if-eqz v32, :cond_5d7
    add-int/lit8 v2, p3, 0x1
    const/16 v4, 0x2d
    .line 503
    aput-char v4, p2, p3
    goto :goto_5d9
    :cond_5d7
    move/from16 v2, p3
    :goto_5d9
    if-eqz v12, :cond_650
    :goto_5db
    add-int/lit8 v4, v1, -0x1
    if-ge v0, v4, :cond_5f0
    .line 510
    rem-long v6, v17, v10
    long-to-int v4, v6
    .line 511
    div-long v17, v17, v10
    add-int v6, v2, v1
    sub-int/2addr v6, v0
    const/16 v7, 0x30
    add-int/2addr v4, v7
    int-to-char v4, v4
    .line 512
    aput-char v4, p2, v6
    add-int/lit8 v0, v0, 0x1
    goto :goto_5db
    :cond_5f0
    const-wide/16 v6, 0x30
    .line 514
    rem-long v17, v17, v10
    add-long v6, v17, v6
    long-to-int v0, v6
    int-to-char v0, v0
    aput-char v0, p2, v2
    add-int/lit8 v0, v2, 0x1
    const/16 v4, 0x2e
    .line 515
    aput-char v4, p2, v0
    add-int/lit8 v0, v1, 0x1
    add-int/2addr v2, v0
    const/4 v0, 0x1
    if-ne v1, v0, :cond_60d
    add-int/lit8 v0, v2, 0x1
    const/16 v1, 0x30
    .line 518
    aput-char v1, p2, v2
    move v2, v0
    :cond_60d
    add-int/lit8 v0, v2, 0x1
    const/16 v1, 0x45
    .line 522
    aput-char v1, p2, v2
    if-gez v3, :cond_61d
    add-int/lit8 v1, v0, 0x1
    const/16 v2, 0x2d
    .line 524
    aput-char v2, p2, v0
    neg-int v3, v3
    move v0, v1
    :cond_61d
    const/16 v1, 0x64
    if-lt v3, v1, :cond_636
    add-int/lit8 v1, v0, 0x1
    .line 528
    div-int/lit8 v2, v3, 0x64
    const/16 v4, 0x30
    add-int/2addr v2, v4
    int-to-char v2, v2
    aput-char v2, p2, v0
    .line 529
    rem-int/lit8 v3, v3, 0x64
    add-int/lit8 v0, v1, 0x1
    .line 530
    div-int/lit8 v2, v3, 0xa
    add-int/2addr v2, v4
    int-to-char v2, v2
    aput-char v2, p2, v1
    goto :goto_645
    :cond_636
    const/16 v1, 0xa
    const/16 v4, 0x30
    if-lt v3, v1, :cond_645
    add-int/lit8 v1, v0, 0x1
    .line 532
    div-int/lit8 v2, v3, 0xa
    add-int/2addr v2, v4
    int-to-char v2, v2
    aput-char v2, p2, v0
    move v0, v1
    :cond_645
    :goto_645
    add-int/lit8 v1, v0, 0x1
    const/16 v2, 0xa
    .line 534
    rem-int/2addr v3, v2
    add-int/2addr v3, v4
    int-to-char v2, v3
    aput-char v2, p2, v0
    goto/16 :goto_4d
    :cond_650
    const/16 v4, 0x30
    if-gez v3, :cond_683
    add-int/lit8 v5, v2, 0x1
    .line 540
    aput-char v4, p2, v2
    add-int/lit8 v2, v5, 0x1
    const/16 v6, 0x2e
    .line 541
    aput-char v6, p2, v5
    const/4 v5, -0x1
    :goto_65f
    if-le v5, v3, :cond_66b
    add-int/lit8 v6, v2, 0x1
    .line 543
    aput-char v4, p2, v2
    add-int/lit8 v5, v5, -0x1
    move v2, v6
    const/16 v4, 0x30
    goto :goto_65f
    :cond_66b
    move v3, v2
    :goto_66c
    if-ge v0, v1, :cond_6e4
    add-int v4, v2, v1
    sub-int/2addr v4, v0
    const/4 v5, 0x1
    sub-int/2addr v4, v5
    const-wide/16 v5, 0x30
    .line 547
    rem-long v7, v17, v10
    add-long/2addr v7, v5
    long-to-int v5, v7
    int-to-char v5, v5
    aput-char v5, p2, v4
    .line 548
    div-long v17, v17, v10
    add-int/lit8 v3, v3, 0x1
    add-int/lit8 v0, v0, 0x1
    goto :goto_66c
    :cond_683
    add-int/lit8 v4, v3, 0x1
    if-lt v4, v1, :cond_6b7
    :goto_687
    if-ge v0, v1, :cond_69c
    add-int v3, v2, v1
    sub-int/2addr v3, v0
    const/4 v5, 0x1
    sub-int/2addr v3, v5
    const-wide/16 v5, 0x30
    .line 554
    rem-long v7, v17, v10
    add-long/2addr v7, v5
    long-to-int v5, v7
    int-to-char v5, v5
    aput-char v5, p2, v3
    .line 555
    div-long v17, v17, v10
    add-int/lit8 v0, v0, 0x1
    goto :goto_687
    :cond_69c
    add-int/2addr v2, v1
    :goto_69d
    if-ge v1, v4, :cond_6a9
    add-int/lit8 v0, v2, 0x1
    const/16 v3, 0x30
    .line 559
    aput-char v3, p2, v2
    add-int/lit8 v1, v1, 0x1
    move v2, v0
    goto :goto_69d
    :cond_6a9
    const/16 v3, 0x30
    add-int/lit8 v0, v2, 0x1
    const/16 v1, 0x2e
    .line 561
    aput-char v1, p2, v2
    add-int/lit8 v1, v0, 0x1
    .line 562
    aput-char v3, p2, v0
    move v3, v1
    goto :goto_6e4
    :cond_6b7
    add-int/lit8 v4, v2, 0x1
    :goto_6b9
    if-ge v0, v1, :cond_6e0
    sub-int v5, v1, v0
    const/4 v6, 0x1
    sub-int/2addr v5, v6
    if-ne v5, v3, :cond_6cc
    add-int v5, v4, v1
    sub-int/2addr v5, v0
    sub-int/2addr v5, v6
    const/16 v7, 0x2e
    .line 568
    aput-char v7, p2, v5
    add-int/lit8 v4, v4, -0x1
    goto :goto_6ce
    :cond_6cc
    const/16 v7, 0x2e
    :goto_6ce
    add-int v5, v4, v1
    sub-int/2addr v5, v0
    sub-int/2addr v5, v6
    const-wide/16 v8, 0x30
    .line 571
    rem-long v12, v17, v10
    add-long/2addr v12, v8
    long-to-int v8, v12
    int-to-char v8, v8
    aput-char v8, p2, v5
    .line 572
    div-long v17, v17, v10
    add-int/lit8 v0, v0, 0x1
    goto :goto_6b9
    :cond_6e0
    const/4 v6, 0x1
    add-int/2addr v1, v6
    add-int v3, v2, v1
    :cond_6e4
    :goto_6e4
    sub-int v3, v3, p3
    return v3
    :cond_6e7
    move/from16 v26, v3
    .line 323
    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, v3}, 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
.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
    .line 70
    invoke-static {p0, p1, v0, v1}, Lcom/alibaba/fastjson/util/RyuDouble;->toString(D[CI)I
    move-result p0
    .line 71
    new-instance p1, Ljava/lang/String;
    invoke-direct {p1, v0, v1, p0}, Ljava/lang/String;-><init>([CII)V
    return-object p1
.end method