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