RyuFloat.smali
.class public final Lcom/alibaba/fastjson/util/RyuFloat;
.super Ljava/lang/Object;
.source "RyuFloat.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 25
const/16 v0, 0x2f
new-array v0, v0, [[I
const/4 v1, 0x2
new-array v2, v1, [I
.line 21
fill-array-data v2, :array_298
const/4 v3, 0x0
aput-object v2, v0, v3
new-array v2, v1, [I
fill-array-data v2, :array_2a0
const/4 v4, 0x1
aput-object v2, v0, v4
new-array v2, v1, [I
fill-array-data v2, :array_2a8
aput-object v2, v0, v1
new-array v2, v1, [I
fill-array-data v2, :array_2b0
const/4 v5, 0x3
aput-object v2, v0, v5
new-array v2, v1, [I
fill-array-data v2, :array_2b8
const/4 v6, 0x4
aput-object v2, v0, v6
new-array v2, v1, [I
fill-array-data v2, :array_2c0
const/4 v7, 0x5
aput-object v2, v0, v7
new-array v2, v1, [I
fill-array-data v2, :array_2c8
const/4 v8, 0x6
aput-object v2, v0, v8
new-array v2, v1, [I
fill-array-data v2, :array_2d0
const/4 v9, 0x7
aput-object v2, v0, v9
new-array v2, v1, [I
fill-array-data v2, :array_2d8
const/16 v10, 0x8
aput-object v2, v0, v10
new-array v2, v1, [I
fill-array-data v2, :array_2e0
const/16 v11, 0x9
aput-object v2, v0, v11
new-array v2, v1, [I
fill-array-data v2, :array_2e8
const/16 v12, 0xa
aput-object v2, v0, v12
new-array v2, v1, [I
fill-array-data v2, :array_2f0
const/16 v13, 0xb
aput-object v2, v0, v13
new-array v2, v1, [I
fill-array-data v2, :array_2f8
const/16 v14, 0xc
aput-object v2, v0, v14
new-array v2, v1, [I
fill-array-data v2, :array_300
const/16 v15, 0xd
aput-object v2, v0, v15
new-array v2, v1, [I
fill-array-data v2, :array_308
const/16 v16, 0xe
aput-object v2, v0, v16
new-array v2, v1, [I
fill-array-data v2, :array_310
const/16 v17, 0xf
aput-object v2, v0, v17
new-array v2, v1, [I
fill-array-data v2, :array_318
const/16 v18, 0x10
aput-object v2, v0, v18
new-array v2, v1, [I
fill-array-data v2, :array_320
const/16 v19, 0x11
aput-object v2, v0, v19
new-array v2, v1, [I
fill-array-data v2, :array_328
const/16 v20, 0x12
aput-object v2, v0, v20
new-array v2, v1, [I
fill-array-data v2, :array_330
const/16 v21, 0x13
aput-object v2, v0, v21
new-array v2, v1, [I
fill-array-data v2, :array_338
const/16 v22, 0x14
aput-object v2, v0, v22
new-array v2, v1, [I
fill-array-data v2, :array_340
const/16 v23, 0x15
aput-object v2, v0, v23
new-array v2, v1, [I
fill-array-data v2, :array_348
const/16 v24, 0x16
aput-object v2, v0, v24
new-array v2, v1, [I
fill-array-data v2, :array_350
const/16 v24, 0x17
aput-object v2, v0, v24
new-array v2, v1, [I
fill-array-data v2, :array_358
const/16 v24, 0x18
aput-object v2, v0, v24
new-array v2, v1, [I
fill-array-data v2, :array_360
const/16 v24, 0x19
aput-object v2, v0, v24
new-array v2, v1, [I
fill-array-data v2, :array_368
const/16 v24, 0x1a
aput-object v2, v0, v24
new-array v2, v1, [I
fill-array-data v2, :array_370
const/16 v24, 0x1b
aput-object v2, v0, v24
new-array v2, v1, [I
fill-array-data v2, :array_378
const/16 v24, 0x1c
aput-object v2, v0, v24
new-array v2, v1, [I
fill-array-data v2, :array_380
const/16 v24, 0x1d
aput-object v2, v0, v24
new-array v2, v1, [I
fill-array-data v2, :array_388
const/16 v24, 0x1e
aput-object v2, v0, v24
new-array v2, v1, [I
fill-array-data v2, :array_390
const/16 v24, 0x1f
aput-object v2, v0, v24
new-array v2, v1, [I
fill-array-data v2, :array_398
const/16 v24, 0x20
aput-object v2, v0, v24
new-array v2, v1, [I
fill-array-data v2, :array_3a0
const/16 v24, 0x21
aput-object v2, v0, v24
new-array v2, v1, [I
fill-array-data v2, :array_3a8
const/16 v24, 0x22
aput-object v2, v0, v24
new-array v2, v1, [I
fill-array-data v2, :array_3b0
const/16 v24, 0x23
aput-object v2, v0, v24
new-array v2, v1, [I
fill-array-data v2, :array_3b8
const/16 v24, 0x24
aput-object v2, v0, v24
new-array v2, v1, [I
fill-array-data v2, :array_3c0
const/16 v24, 0x25
aput-object v2, v0, v24
new-array v2, v1, [I
fill-array-data v2, :array_3c8
const/16 v24, 0x26
aput-object v2, v0, v24
new-array v2, v1, [I
fill-array-data v2, :array_3d0
const/16 v24, 0x27
aput-object v2, v0, v24
new-array v2, v1, [I
fill-array-data v2, :array_3d8
const/16 v24, 0x28
aput-object v2, v0, v24
new-array v2, v1, [I
fill-array-data v2, :array_3e0
const/16 v24, 0x29
aput-object v2, v0, v24
new-array v2, v1, [I
fill-array-data v2, :array_3e8
const/16 v24, 0x2a
aput-object v2, v0, v24
new-array v2, v1, [I
fill-array-data v2, :array_3f0
const/16 v24, 0x2b
aput-object v2, v0, v24
new-array v2, v1, [I
fill-array-data v2, :array_3f8
const/16 v24, 0x2c
aput-object v2, v0, v24
new-array v2, v1, [I
fill-array-data v2, :array_400
const/16 v24, 0x2d
aput-object v2, v0, v24
new-array v2, v1, [I
fill-array-data v2, :array_408
const/16 v24, 0x2e
aput-object v2, v0, v24
sput-object v0, Lcom/alibaba/fastjson/util/RyuFloat;->POW5_SPLIT:[[I
const/16 v0, 0x1f
new-array v0, v0, [[I
new-array v2, v1, [I
.line 71
fill-array-data v2, :array_410
aput-object v2, v0, v3
new-array v2, v1, [I
fill-array-data v2, :array_418
aput-object v2, v0, v4
new-array v2, v1, [I
fill-array-data v2, :array_420
aput-object v2, v0, v1
new-array v2, v1, [I
fill-array-data v2, :array_428
aput-object v2, v0, v5
new-array v2, v1, [I
fill-array-data v2, :array_430
aput-object v2, v0, v6
new-array v2, v1, [I
fill-array-data v2, :array_438
aput-object v2, v0, v7
new-array v2, v1, [I
fill-array-data v2, :array_440
aput-object v2, v0, v8
new-array v2, v1, [I
fill-array-data v2, :array_448
aput-object v2, v0, v9
new-array v2, v1, [I
fill-array-data v2, :array_450
aput-object v2, v0, v10
new-array v2, v1, [I
fill-array-data v2, :array_458
aput-object v2, v0, v11
new-array v2, v1, [I
fill-array-data v2, :array_460
aput-object v2, v0, v12
new-array v2, v1, [I
fill-array-data v2, :array_468
aput-object v2, v0, v13
new-array v2, v1, [I
fill-array-data v2, :array_470
aput-object v2, v0, v14
new-array v2, v1, [I
fill-array-data v2, :array_478
aput-object v2, v0, v15
new-array v2, v1, [I
fill-array-data v2, :array_480
aput-object v2, v0, v16
new-array v2, v1, [I
fill-array-data v2, :array_488
aput-object v2, v0, v17
new-array v2, v1, [I
fill-array-data v2, :array_490
aput-object v2, v0, v18
new-array v2, v1, [I
fill-array-data v2, :array_498
aput-object v2, v0, v19
new-array v2, v1, [I
fill-array-data v2, :array_4a0
aput-object v2, v0, v20
new-array v2, v1, [I
fill-array-data v2, :array_4a8
aput-object v2, v0, v21
new-array v2, v1, [I
fill-array-data v2, :array_4b0
aput-object v2, v0, v22
new-array v2, v1, [I
fill-array-data v2, :array_4b8
aput-object v2, v0, v23
new-array v2, v1, [I
fill-array-data v2, :array_4c0
const/16 v3, 0x16
aput-object v2, v0, v3
new-array v2, v1, [I
fill-array-data v2, :array_4c8
const/16 v3, 0x17
aput-object v2, v0, v3
new-array v2, v1, [I
fill-array-data v2, :array_4d0
const/16 v3, 0x18
aput-object v2, v0, v3
new-array v2, v1, [I
fill-array-data v2, :array_4d8
const/16 v3, 0x19
aput-object v2, v0, v3
new-array v2, v1, [I
fill-array-data v2, :array_4e0
const/16 v3, 0x1a
aput-object v2, v0, v3
new-array v2, v1, [I
fill-array-data v2, :array_4e8
const/16 v3, 0x1b
aput-object v2, v0, v3
new-array v2, v1, [I
fill-array-data v2, :array_4f0
const/16 v3, 0x1c
aput-object v2, v0, v3
new-array v2, v1, [I
fill-array-data v2, :array_4f8
const/16 v3, 0x1d
aput-object v2, v0, v3
new-array v1, v1, [I
fill-array-data v1, :array_500
const/16 v2, 0x1e
aput-object v1, v0, v2
sput-object v0, Lcom/alibaba/fastjson/util/RyuFloat;->POW5_INV_SPLIT:[[I
return-void
nop
:array_298
.array-data 4
0x20000000
0x0
.end array-data
:array_2a0
.array-data 4
0x28000000
0x0
.end array-data
:array_2a8
.array-data 4
0x32000000
0x0
.end array-data
:array_2b0
.array-data 4
0x3e800000 # 0.25f
0x0
.end array-data
:array_2b8
.array-data 4
0x27100000
0x0
.end array-data
:array_2c0
.array-data 4
0x30d40000
0x0
.end array-data
:array_2c8
.array-data 4
0x3d090000
0x0
.end array-data
:array_2d0
.array-data 4
0x2625a000
0x0
.end array-data
:array_2d8
.array-data 4
0x2faf0800
0x0
.end array-data
:array_2e0
.array-data 4
0x3b9aca00
0x0
.end array-data
:array_2e8
.array-data 4
0x2540be40
0x0
.end array-data
:array_2f0
.array-data 4
0x2e90edd0
0x0
.end array-data
:array_2f8
.array-data 4
0x3a352944
0x0
.end array-data
:array_300
.array-data 4
0x246139ca
0x40000000 # 2.0f
.end array-data
:array_308
.array-data 4
0x2d79883d
0x10000000
.end array-data
:array_310
.array-data 4
0x38d7ea4c
0x34000000
.end array-data
:array_318
.array-data 4
0x2386f26f
0x60800000
.end array-data
:array_320
.array-data 4
0x2c68af0b
0x58a00000
.end array-data
:array_328
.array-data 4
0x3782dace
0x4ec80000 # 1.6777216E9f
.end array-data
:array_330
.array-data 4
0x22b1c8c1
0x113d0000
.end array-data
:array_338
.array-data 4
0x2b5e3af1
0x358c4000
.end array-data
:array_340
.array-data 4
0x3635c9ad
0x62ef5000
.end array-data
:array_348
.array-data 4
0x21e19e0c
0x4dd59200 # 4.47889408E8f
.end array-data
:array_350
.array-data 4
0x2a5a058f
0x614af680 # 2.3400028E20f
.end array-data
:array_358
.array-data 4
0x34f086f3
0x599db420
.end array-data
:array_360
.array-data 4
0x21165458
0x28029094 # 7.2478E-15f
.end array-data
:array_368
.array-data 4
0x295be96e
0x320334b9
.end array-data
:array_370
.array-data 4
0x33b2e3c9
0x7e8401e7
.end array-data
:array_378
.array-data 4
0x204fce5e
0x1f128130
.end array-data
:array_380
.array-data 4
0x2863c1f5
0x66d7217c
.end array-data
:array_388
.array-data 4
0x327cb273
0x208ce9db
.end array-data
:array_390
.array-data 4
0x3f1bdf10
0x8b02452
.end array-data
:array_398
.array-data 4
0x27716b6a
0x56e16b3
.end array-data
:array_3a0
.array-data 4
0x314dc644
0x46c99c60 # 25806.188f
.end array-data
:array_3a8
.array-data 4
0x3da137d5
0x587c0378
.end array-data
:array_3b0
.array-data 4
0x2684c2e5
0x474d822b
.end array-data
:array_3b8
.array-data 4
0x3025f39e
0x7920e2b6
.end array-data
:array_3c0
.array-data 4
0x3c2f7086
0x57691b64
.end array-data
:array_3c8
.array-data 4
0x259da654
0x16a1b11e
.end array-data
:array_3d0
.array-data 4
0x2f050fe9
0x1c4a1d66
.end array-data
:array_3d8
.array-data 4
0x3ac653e3
0x435ca4bf
.end array-data
:array_3e0
.array-data 4
0x24bbf46e
0x1a19e6f7
.end array-data
:array_3e8
.array-data 4
0x2deaf189
0x60a060b5
.end array-data
:array_3f0
.array-data 4
0x3965adec
0x18c878e3
.end array-data
:array_3f8
.array-data 4
0x23df8cb3
0x4f7d4b8d
.end array-data
:array_400
.array-data 4
0x2cd76fe0
0x435c9e71
.end array-data
:array_408
.array-data 4
0x380d4bd8
0x5433c60d
.end array-data
:array_410
.array-data 4
0x10000000
0x1
.end array-data
:array_418
.array-data 4
0xccccccc
0x66666667
.end array-data
:array_420
.array-data 4
0xa3d70a3
0x6b851eb9
.end array-data
:array_428
.array-data 4
0x83126e9
0x3c6a7efa
.end array-data
:array_430
.array-data 4
0xd1b7175
0x4710cb2a
.end array-data
:array_438
.array-data 4
0xa7c5ac4
0x38da3c22
.end array-data
:array_440
.array-data 4
0x8637bd0
0x2d7b634e
.end array-data
:array_448
.array-data 4
0xd6bf94d
0x2f2bd216
.end array-data
:array_450
.array-data 4
0xabcc771
0xc230e78
.end array-data
:array_458
.array-data 4
0x89705f4
0x9b5a52d
.end array-data
:array_460
.array-data 4
0xdbe6fec
0x75ef6eae
.end array-data
:array_468
.array-data 4
0xafebff0
0x5e592558
.end array-data
:array_470
.array-data 4
0x8cbccc0
0x4b7a8447 # 1.6417863E7f
.end array-data
:array_478
.array-data 4
0xe12e134
0x125da071
.end array-data
:array_480
.array-data 4
0xb424dc3
0x284ae6c1
.end array-data
:array_488
.array-data 4
0x901d7cf
0x39d58567
.end array-data
:array_490
.array-data 4
0xe69594b
0x76226f0b
.end array-data
:array_498
.array-data 4
0xb877aa3
0x11b525a3
.end array-data
:array_4a0
.array-data 4
0x9392ee8
0x7490eae9
.end array-data
:array_4a8
.array-data 4
0xec1e4a7
0x6db4ab0e
.end array-data
:array_4b0
.array-data 4
0xbce5086
0x249088d8
.end array-data
:array_4b8
.array-data 4
0x971da05
0x3a6d3e0
.end array-data
:array_4c0
.array-data 4
0xf1c9008
0x5d7b966
.end array-data
:array_4c8
.array-data 4
0xc16d9a0
0x4ac9452
.end array-data
:array_4d0
.array-data 4
0x9abe14c
0x6a23a9db
.end array-data
:array_4d8
.array-data 4
0xf79687a
0x769f762b
.end array-data
:array_4e0
.array-data 4
0xc612062
0x2bb2c4ef
.end array-data
:array_4e8
.array-data 4
0x9e74d1b
0x3c8f03f3
.end array-data
:array_4f0
.array-data 4
0xfd87b5f
0x14180651
.end array-data
:array_4f8
.array-data 4
0xcad2f7f
0x29acd1da
.end array-data
:array_500
.array-data 4
0xa2425ff
0x3af0a7e2
.end array-data
.end method
.method public constructor <init>()V
.registers 1
.line 20
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static toString(F[CI)I
.registers 34
.line 123
invoke-static/range {p0 .. p0}, Ljava/lang/Float;->isNaN(F)Z
move-result v0
if-eqz v0, :cond_19
add-int/lit8 v0, p2, 0x1
const/16 v1, 0x4e
.line 124
aput-char v1, p1, p2
add-int/lit8 v2, v0, 0x1
const/16 v3, 0x61
.line 125
aput-char v3, p1, v0
add-int/lit8 v0, v2, 0x1
.line 126
aput-char v1, p1, v2
:goto_16
sub-int v0, v0, p2
return v0
:cond_19
const/high16 v0, 0x7f800000 # Float.POSITIVE_INFINITY
cmpl-float v0, p0, v0
const/16 v1, 0x79
const/16 v2, 0x74
const/16 v3, 0x66
const/16 v4, 0x49
const/16 v5, 0x69
const/16 v6, 0x6e
if-nez v0, :cond_4e
add-int/lit8 v0, p2, 0x1
.line 131
aput-char v4, p1, p2
add-int/lit8 v4, v0, 0x1
.line 132
aput-char v6, p1, v0
add-int/lit8 v0, v4, 0x1
.line 133
aput-char v3, p1, v4
add-int/lit8 v3, v0, 0x1
.line 134
aput-char v5, p1, v0
add-int/lit8 v0, v3, 0x1
.line 135
aput-char v6, p1, v3
add-int/lit8 v3, v0, 0x1
.line 136
aput-char v5, p1, v0
add-int/lit8 v0, v3, 0x1
.line 137
aput-char v2, p1, v3
add-int/lit8 v2, v0, 0x1
.line 138
aput-char v1, p1, v0
sub-int v2, v2, p2
return v2
:cond_4e
const/high16 v0, -0x800000 # Float.NEGATIVE_INFINITY
cmpl-float v0, p0, v0
const/16 v7, 0x2d
if-nez v0, :cond_7b
add-int/lit8 v0, p2, 0x1
.line 143
aput-char v7, p1, p2
add-int/lit8 v7, v0, 0x1
.line 144
aput-char v4, p1, v0
add-int/lit8 v0, v7, 0x1
.line 145
aput-char v6, p1, v7
add-int/lit8 v4, v0, 0x1
.line 146
aput-char v3, p1, v0
add-int/lit8 v0, v4, 0x1
.line 147
aput-char v5, p1, v4
add-int/lit8 v3, v0, 0x1
.line 148
aput-char v6, p1, v0
add-int/lit8 v0, v3, 0x1
.line 149
aput-char v5, p1, v3
add-int/lit8 v3, v0, 0x1
.line 150
aput-char v2, p1, v0
add-int/lit8 v0, v3, 0x1
.line 151
aput-char v1, p1, v3
goto :goto_16
.line 155
:cond_7b
invoke-static/range {p0 .. p0}, Ljava/lang/Float;->floatToIntBits(F)I
move-result v0
const/16 v1, 0x2e
const/16 v2, 0x30
if-nez v0, :cond_92
add-int/lit8 v0, p2, 0x1
.line 157
aput-char v2, p1, p2
add-int/lit8 v3, v0, 0x1
.line 158
aput-char v1, p1, v0
add-int/lit8 v0, v3, 0x1
.line 159
aput-char v2, p1, v3
goto :goto_16
:cond_92
const/high16 v3, -0x80000000
if-ne v0, v3, :cond_a9
add-int/lit8 v0, p2, 0x1
.line 163
aput-char v7, p1, p2
add-int/lit8 v3, v0, 0x1
.line 164
aput-char v2, p1, v0
add-int/lit8 v0, v3, 0x1
.line 165
aput-char v1, p1, v3
add-int/lit8 v1, v0, 0x1
.line 166
aput-char v2, p1, v0
sub-int v1, v1, p2
return v1
:cond_a9
shr-int/lit8 v3, v0, 0x17
and-int/lit16 v3, v3, 0xff
const v4, 0x7fffff
and-int/2addr v4, v0
const/16 v5, 0x17
if-nez v3, :cond_b8
const/16 v6, -0x95
goto :goto_be
:cond_b8
add-int/lit8 v6, v3, -0x7f
sub-int/2addr v6, v5
const/high16 v8, 0x800000
or-int/2addr v4, v8
:goto_be
const/4 v8, 0x0
const/4 v9, 0x1
if-gez v0, :cond_c4
move v0, v9
goto :goto_c5
:cond_c4
move v0, v8
:goto_c5
and-int/lit8 v10, v4, 0x1
if-nez v10, :cond_cb
move v10, v9
goto :goto_cc
:cond_cb
move v10, v8
:goto_cc
mul-int/lit8 v11, v4, 0x4
add-int/lit8 v12, v11, 0x2
int-to-long v13, v4
const-wide/32 v15, 0x800000
cmp-long v4, v13, v15
if-nez v4, :cond_dd
if-gt v3, v9, :cond_db
goto :goto_dd
:cond_db
move v3, v9
goto :goto_de
:cond_dd
:goto_dd
const/4 v3, 0x2
:goto_de
sub-int v3, v11, v3
add-int/lit8 v6, v6, -0x2
const-wide/16 v14, 0x1
const-wide/32 v16, 0x1624c50
const-wide/32 v18, 0x989680
if-ltz v6, :cond_1bf
int-to-long v1, v6
const-wide/32 v20, 0x2deefb
mul-long v1, v1, v20
.line 201
div-long v1, v1, v18
long-to-int v1, v1
if-nez v1, :cond_f9
move v4, v9
goto :goto_102
:cond_f9
int-to-long v4, v1
mul-long v4, v4, v16
add-long v4, v4, v18
sub-long/2addr v4, v14
.line 202
div-long v4, v4, v18
long-to-int v4, v4
:goto_102
add-int/lit8 v4, v4, 0x3b
sub-int/2addr v4, v9
neg-int v5, v6
add-int/2addr v5, v1
add-int/2addr v4, v5
.line 204
sget-object v6, Lcom/alibaba/fastjson/util/RyuFloat;->POW5_INV_SPLIT:[[I
aget-object v13, v6, v1
aget v13, v13, v8
int-to-long v7, v13
.line 205
aget-object v13, v6, v1
aget v13, v13, v9
move/from16 v22, v10
int-to-long v9, v13
int-to-long v14, v11
mul-long v23, v14, v7
mul-long v25, v14, v9
const/16 v2, 0x1f
shr-long v25, v25, v2
add-long v23, v23, v25
sub-int/2addr v4, v2
move/from16 v25, v3
shr-long v2, v23, v4
long-to-int v3, v2
move-wide/from16 v23, v14
int-to-long v13, v12
mul-long v26, v13, v7
mul-long/2addr v13, v9
const/16 v2, 0x1f
shr-long/2addr v13, v2
add-long v26, v26, v13
shr-long v13, v26, v4
long-to-int v13, v13
move v15, v3
move/from16 v14, v25
int-to-long v2, v14
mul-long/2addr v7, v2
mul-long/2addr v2, v9
const/16 v9, 0x1f
shr-long v25, v2, v9
add-long v7, v7, v25
shr-long v3, v7, v4
long-to-int v3, v3
if-eqz v1, :cond_181
add-int/lit8 v4, v13, -0x1
const/16 v7, 0xa
.line 209
div-int/2addr v4, v7
div-int/lit8 v7, v3, 0xa
if-gt v4, v7, :cond_181
add-int/lit8 v4, v1, -0x1
if-nez v4, :cond_155
const/4 v7, 0x1
goto :goto_160
:cond_155
int-to-long v7, v4
mul-long v7, v7, v16
add-long v7, v7, v18
const-wide/16 v9, 0x1
sub-long/2addr v7, v9
.line 214
div-long v7, v7, v18
long-to-int v7, v7
:goto_160
add-int/lit8 v7, v7, 0x3b
const/4 v8, 0x1
sub-int/2addr v7, v8
sub-int/2addr v5, v8
add-int/2addr v5, v7
.line 216
aget-object v7, v6, v4
const/4 v9, 0x0
aget v7, v7, v9
int-to-long v9, v7
mul-long v9, v9, v23
aget-object v4, v6, v4
aget v4, v4, v8
int-to-long v6, v4
mul-long v6, v6, v23
const/16 v2, 0x1f
shr-long/2addr v6, v2
add-long/2addr v9, v6
sub-int/2addr v5, v2
shr-long v4, v9, v5
const-wide/16 v6, 0xa
.line 217
rem-long/2addr v4, v6
long-to-int v2, v4
goto :goto_182
:cond_181
const/4 v2, 0x0
:goto_182
const/4 v4, 0x0
:goto_183
if-lez v12, :cond_18f
.line 225
rem-int/lit8 v5, v12, 0x5
if-eqz v5, :cond_18a
goto :goto_18f
.line 228
:cond_18a
div-int/lit8 v12, v12, 0x5
add-int/lit8 v4, v4, 0x1
goto :goto_183
:cond_18f
:goto_18f
const/4 v5, 0x0
:goto_190
if-lez v11, :cond_19c
.line 237
rem-int/lit8 v6, v11, 0x5
if-eqz v6, :cond_197
goto :goto_19c
.line 240
:cond_197
div-int/lit8 v11, v11, 0x5
add-int/lit8 v5, v5, 0x1
goto :goto_190
:cond_19c
:goto_19c
const/4 v6, 0x0
:goto_19d
if-lez v14, :cond_1a9
.line 249
rem-int/lit8 v7, v14, 0x5
if-eqz v7, :cond_1a4
goto :goto_1a9
.line 252
:cond_1a4
div-int/lit8 v14, v14, 0x5
add-int/lit8 v6, v6, 0x1
goto :goto_19d
:cond_1a9
:goto_1a9
if-lt v4, v1, :cond_1ad
const/4 v4, 0x1
goto :goto_1ae
:cond_1ad
const/4 v4, 0x0
:goto_1ae
if-lt v5, v1, :cond_1b2
const/4 v5, 0x1
goto :goto_1b3
:cond_1b2
const/4 v5, 0x0
:goto_1b3
if-lt v6, v1, :cond_1b7
const/4 v6, 0x1
goto :goto_1b8
:cond_1b7
const/4 v6, 0x0
:goto_1b8
move v7, v6
const/4 v9, 0x0
move v6, v4
move v4, v3
move v3, v15
goto/16 :goto_28b
:cond_1bf
move v14, v3
move/from16 v22, v10
neg-int v1, v6
int-to-long v3, v1
const-wide/32 v7, 0x6aa784
mul-long/2addr v3, v7
.line 262
div-long v3, v3, v18
long-to-int v3, v3
sub-int/2addr v1, v3
if-nez v1, :cond_1d0
const/4 v4, 0x1
goto :goto_1db
:cond_1d0
int-to-long v7, v1
mul-long v7, v7, v16
add-long v7, v7, v18
const-wide/16 v9, 0x1
sub-long/2addr v7, v9
.line 264
div-long v7, v7, v18
long-to-int v4, v7
:goto_1db
add-int/lit8 v4, v4, -0x3d
sub-int v4, v3, v4
.line 267
sget-object v7, Lcom/alibaba/fastjson/util/RyuFloat;->POW5_SPLIT:[[I
aget-object v8, v7, v1
const/4 v9, 0x0
aget v8, v8, v9
int-to-long v8, v8
.line 268
aget-object v10, v7, v1
const/4 v15, 0x1
aget v10, v10, v15
move/from16 v23, v6
int-to-long v5, v10
const/16 v2, 0x1f
sub-int/2addr v4, v2
move/from16 v25, v14
int-to-long v13, v11
mul-long v26, v13, v8
mul-long v28, v13, v5
shr-long v28, v28, v2
add-long v26, v26, v28
move/from16 v24, v11
shr-long v10, v26, v4
long-to-int v10, v10
int-to-long v11, v12
mul-long v26, v11, v8
mul-long/2addr v11, v5
shr-long/2addr v11, v2
add-long v26, v26, v11
shr-long v11, v26, v4
long-to-int v11, v11
move/from16 v12, v25
move/from16 v25, v3
int-to-long v2, v12
mul-long/2addr v8, v2
mul-long/2addr v2, v5
const/16 v5, 0x1f
shr-long v26, v2, v5
add-long v8, v8, v26
shr-long v3, v8, v4
long-to-int v3, v3
if-eqz v25, :cond_258
add-int/lit8 v4, v11, -0x1
const/16 v5, 0xa
.line 274
div-int/2addr v4, v5
div-int/lit8 v5, v3, 0xa
if-gt v4, v5, :cond_258
const/4 v4, 0x1
add-int/2addr v1, v4
add-int/lit8 v4, v25, -0x1
if-nez v1, :cond_22f
const/4 v5, 0x1
goto :goto_23a
:cond_22f
int-to-long v5, v1
mul-long v5, v5, v16
add-long v5, v5, v18
const-wide/16 v8, 0x1
sub-long/2addr v5, v8
.line 276
div-long v5, v5, v18
long-to-int v5, v5
:goto_23a
add-int/lit8 v5, v5, -0x3d
sub-int/2addr v4, v5
.line 278
aget-object v5, v7, v1
const/4 v9, 0x0
aget v5, v5, v9
int-to-long v5, v5
mul-long/2addr v5, v13
aget-object v1, v7, v1
const/4 v7, 0x1
aget v1, v1, v7
int-to-long v7, v1
mul-long/2addr v13, v7
const/16 v1, 0x1f
shr-long v7, v13, v1
add-long/2addr v5, v7
sub-int/2addr v4, v1
shr-long v1, v5, v4
const-wide/16 v4, 0xa
.line 279
rem-long/2addr v1, v4
long-to-int v1, v1
goto :goto_25a
:cond_258
const/4 v9, 0x0
move v1, v9
:goto_25a
add-int v2, v25, v23
move/from16 v5, v25
const/4 v4, 0x1
if-lt v4, v5, :cond_263
move v6, v4
goto :goto_264
:cond_263
move v6, v9
:goto_264
const/16 v7, 0x17
if-ge v5, v7, :cond_273
add-int/lit8 v7, v5, -0x1
shl-int v7, v4, v7
sub-int/2addr v7, v4
and-int v7, v24, v7
if-nez v7, :cond_273
move v7, v4
goto :goto_274
:cond_273
move v7, v9
:goto_274
const/4 v8, 0x2
.line 285
rem-int/lit8 v8, v12, 0x2
if-ne v8, v4, :cond_27b
move v4, v9
goto :goto_27c
:cond_27b
const/4 v4, 0x1
:goto_27c
if-lt v4, v5, :cond_280
const/4 v4, 0x1
goto :goto_281
:cond_280
move v4, v9
:goto_281
move v5, v7
move v13, v11
move v7, v4
move v4, v3
move v3, v10
move/from16 v30, v2
move v2, v1
move/from16 v1, v30
:goto_28b
const v8, 0x3b9aca00
const/16 v10, 0xa
:goto_290
if-lez v10, :cond_29a
if-lt v13, v8, :cond_295
goto :goto_29a
.line 303
:cond_295
div-int/lit8 v8, v8, 0xa
add-int/lit8 v10, v10, -0x1
goto :goto_290
:cond_29a
:goto_29a
add-int/2addr v1, v10
const/4 v8, 0x1
sub-int/2addr v1, v8
const/4 v8, -0x3
if-lt v1, v8, :cond_2a6
const/4 v8, 0x7
if-lt v1, v8, :cond_2a4
goto :goto_2a6
:cond_2a4
move v8, v9
goto :goto_2a7
:cond_2a6
:goto_2a6
const/4 v8, 0x1
:goto_2a7
if-eqz v6, :cond_2ad
if-nez v22, :cond_2ad
add-int/lit8 v13, v13, -0x1
:cond_2ad
move v6, v9
.line 315
:goto_2ae
div-int/lit8 v11, v13, 0xa
div-int/lit8 v12, v4, 0xa
if-le v11, v12, :cond_2cc
const/16 v14, 0x64
if-ge v13, v14, :cond_2bb
if-eqz v8, :cond_2bb
goto :goto_2cc
.line 320
:cond_2bb
rem-int/lit8 v4, v4, 0xa
if-nez v4, :cond_2c1
const/4 v2, 0x1
goto :goto_2c2
:cond_2c1
move v2, v9
:goto_2c2
and-int/2addr v7, v2
.line 322
rem-int/lit8 v2, v3, 0xa
.line 323
div-int/lit8 v3, v3, 0xa
add-int/lit8 v6, v6, 0x1
move v13, v11
move v4, v12
goto :goto_2ae
:cond_2cc
:goto_2cc
if-eqz v7, :cond_2e6
if-eqz v22, :cond_2e6
.line 328
:goto_2d0
rem-int/lit8 v11, v4, 0xa
if-nez v11, :cond_2e6
const/16 v11, 0x64
if-ge v13, v11, :cond_2db
if-eqz v8, :cond_2db
goto :goto_2e6
.line 333
:cond_2db
div-int/lit8 v13, v13, 0xa
.line 334
rem-int/lit8 v2, v3, 0xa
.line 335
div-int/lit8 v3, v3, 0xa
.line 336
div-int/lit8 v4, v4, 0xa
add-int/lit8 v6, v6, 0x1
goto :goto_2d0
:cond_2e6
:goto_2e6
const/4 v11, 0x5
if-eqz v5, :cond_2f0
if-ne v2, v11, :cond_2f0
.line 341
rem-int/lit8 v5, v3, 0x2
if-nez v5, :cond_2f0
const/4 v2, 0x4
:cond_2f0
if-ne v3, v4, :cond_2f6
if-eqz v7, :cond_2f8
if-eqz v22, :cond_2f8
:cond_2f6
if-lt v2, v11, :cond_2fa
:cond_2f8
const/4 v2, 0x1
goto :goto_2fb
:cond_2fa
move v2, v9
:goto_2fb
add-int/2addr v3, v2
sub-int/2addr v10, v6
if-eqz v0, :cond_306
add-int/lit8 v0, p2, 0x1
const/16 v2, 0x2d
.line 352
aput-char v2, p1, p2
goto :goto_308
:cond_306
move/from16 v0, p2
:goto_308
if-eqz v8, :cond_368
move v8, v9
:goto_30b
add-int/lit8 v2, v10, -0x1
if-ge v8, v2, :cond_31f
.line 358
rem-int/lit8 v2, v3, 0xa
.line 359
div-int/lit8 v3, v3, 0xa
add-int v4, v0, v10
sub-int/2addr v4, v8
const/16 v5, 0x30
add-int/2addr v2, v5
int-to-char v2, v2
.line 360
aput-char v2, p1, v4
add-int/lit8 v8, v8, 0x1
goto :goto_30b
:cond_31f
const/16 v2, 0xa
const/16 v5, 0x30
.line 362
rem-int/2addr v3, v2
add-int/2addr v3, v5
int-to-char v2, v3
aput-char v2, p1, v0
add-int/lit8 v2, v0, 0x1
const/16 v3, 0x2e
.line 363
aput-char v3, p1, v2
add-int/lit8 v2, v10, 0x1
add-int/2addr v0, v2
const/4 v2, 0x1
if-ne v10, v2, :cond_33b
add-int/lit8 v2, v0, 0x1
const/16 v3, 0x30
.line 366
aput-char v3, p1, v0
move v0, v2
:cond_33b
add-int/lit8 v2, v0, 0x1
const/16 v3, 0x45
.line 370
aput-char v3, p1, v0
if-gez v1, :cond_34b
add-int/lit8 v0, v2, 0x1
const/16 v3, 0x2d
.line 372
aput-char v3, p1, v2
neg-int v1, v1
move v2, v0
:cond_34b
const/16 v0, 0xa
if-lt v1, v0, :cond_35b
add-int/lit8 v0, v2, 0x1
.line 376
div-int/lit8 v3, v1, 0xa
const/16 v4, 0x30
add-int/2addr v3, v4
int-to-char v3, v3
aput-char v3, p1, v2
move v2, v0
goto :goto_35d
:cond_35b
const/16 v4, 0x30
:goto_35d
add-int/lit8 v0, v2, 0x1
const/16 v3, 0xa
.line 378
rem-int/2addr v1, v3
add-int/2addr v1, v4
int-to-char v1, v1
aput-char v1, p1, v2
goto/16 :goto_3fd
:cond_368
const/16 v4, 0x30
if-gez v1, :cond_39c
add-int/lit8 v2, v0, 0x1
.line 383
aput-char v4, p1, v0
add-int/lit8 v0, v2, 0x1
const/16 v5, 0x2e
.line 384
aput-char v5, p1, v2
const/4 v2, -0x1
:goto_377
if-le v2, v1, :cond_381
add-int/lit8 v5, v0, 0x1
.line 386
aput-char v4, p1, v0
add-int/lit8 v2, v2, -0x1
move v0, v5
goto :goto_377
:cond_381
move v1, v0
move v8, v9
:goto_383
if-ge v8, v10, :cond_39a
add-int v2, v0, v10
sub-int/2addr v2, v8
const/4 v5, 0x1
sub-int/2addr v2, v5
.line 390
rem-int/lit8 v5, v3, 0xa
add-int/2addr v5, v4
int-to-char v4, v5
aput-char v4, p1, v2
const/16 v2, 0xa
.line 391
div-int/2addr v3, v2
add-int/lit8 v1, v1, 0x1
add-int/lit8 v8, v8, 0x1
const/16 v4, 0x30
goto :goto_383
:cond_39a
move v0, v1
goto :goto_3fd
:cond_39c
add-int/lit8 v2, v1, 0x1
if-lt v2, v10, :cond_3d0
move v8, v9
:goto_3a1
if-ge v8, v10, :cond_3b6
add-int v1, v0, v10
sub-int/2addr v1, v8
const/4 v4, 0x1
sub-int/2addr v1, v4
.line 397
rem-int/lit8 v4, v3, 0xa
const/16 v5, 0x30
add-int/2addr v4, v5
int-to-char v4, v4
aput-char v4, p1, v1
const/16 v1, 0xa
.line 398
div-int/2addr v3, v1
add-int/lit8 v8, v8, 0x1
goto :goto_3a1
:cond_3b6
add-int/2addr v0, v10
:goto_3b7
if-ge v10, v2, :cond_3c3
add-int/lit8 v1, v0, 0x1
const/16 v3, 0x30
.line 402
aput-char v3, p1, v0
add-int/lit8 v10, v10, 0x1
move v0, v1
goto :goto_3b7
:cond_3c3
const/16 v3, 0x30
add-int/lit8 v1, v0, 0x1
const/16 v2, 0x2e
.line 404
aput-char v2, p1, v0
add-int/lit8 v0, v1, 0x1
.line 405
aput-char v3, p1, v1
goto :goto_3fd
:cond_3d0
add-int/lit8 v2, v0, 0x1
move v8, v9
:goto_3d3
if-ge v8, v10, :cond_3fa
sub-int v4, v10, v8
const/4 v5, 0x1
sub-int/2addr v4, v5
if-ne v4, v1, :cond_3e6
add-int v4, v2, v10
sub-int/2addr v4, v8
sub-int/2addr v4, v5
const/16 v6, 0x2e
.line 411
aput-char v6, p1, v4
add-int/lit8 v2, v2, -0x1
goto :goto_3e8
:cond_3e6
const/16 v6, 0x2e
:goto_3e8
add-int v4, v2, v10
sub-int/2addr v4, v8
sub-int/2addr v4, v5
.line 414
rem-int/lit8 v7, v3, 0xa
const/16 v9, 0x30
add-int/2addr v7, v9
int-to-char v7, v7
aput-char v7, p1, v4
const/16 v4, 0xa
.line 415
div-int/2addr v3, v4
add-int/lit8 v8, v8, 0x1
goto :goto_3d3
:cond_3fa
const/4 v5, 0x1
add-int/2addr v10, v5
add-int/2addr v0, v10
:goto_3fd
sub-int v0, v0, p2
return v0
.end method
.method public static toString(F)Ljava/lang/String;
.registers 4
const/16 v0, 0xf
new-array v0, v0, [C
const/4 v1, 0x0
.line 107
invoke-static {p0, v0, v1}, Lcom/alibaba/fastjson/util/RyuFloat;->toString(F[CI)I
move-result p0
.line 108
new-instance v2, Ljava/lang/String;
invoke-direct {v2, v0, v1, p0}, Ljava/lang/String;-><init>([CII)V
return-object v2
.end method