JSONLexer.smali
.class public final Lcom/alibaba/fastjson/parser/JSONLexer;
.super Ljava/lang/Object;
.source "JSONLexer.java"
# static fields
.field public static final CA:[C
.field public static final END:I = 0x4
.field public static final EOI:C = '\u001a'
.field static final IA:[I
.field public static final NOT_MATCH:I = -0x1
.field public static final NOT_MATCH_NAME:I = -0x2
.field public static final UNKNOWN:I = 0x0
.field private static V6:Z = false
.field public static final VALUE:I = 0x3
.field protected static final digits:[I
.field public static final firstIdentifierFlags:[Z
.field public static final identifierFlags:[Z
.field private static final sbufLocal:Ljava/lang/ThreadLocal;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/ThreadLocal<",
"[C>;"
}
.end annotation
.end field
# instance fields
.field protected bp:I
.field public calendar:Ljava/util/Calendar;
.field protected ch:C
.field public disableCircularReferenceDetect:Z
.field protected eofPos:I
.field protected exp:Z
.field public features:I
.field protected fieldHash:J
.field protected hasSpecial:Z
.field protected isDouble:Z
.field protected final len:I
.field public locale:Ljava/util/Locale;
.field public matchStat:I
.field protected np:I
.field protected pos:I
.field protected sbuf:[C
.field protected sp:I
.field protected stringDefaultValue:Ljava/lang/String;
.field protected final text:Ljava/lang/String;
.field public timeZone:Ljava/util/TimeZone;
.field protected token:I
# direct methods
.method static constructor <clinit>()V
.registers 13
const-string v0, "android.os.Build$VERSION"
const/4 v1, -0x1
.line 1
:try_start_3
invoke-static {v0}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v0
const-string v2, "SDK_INT"
.line 2
invoke-virtual {v0, v2}, Ljava/lang/Class;->getField(Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v0
const/4 v2, 0x0
.line 3
invoke-virtual {v0, v2}, Ljava/lang/reflect/Field;->getInt(Ljava/lang/Object;)I
move-result v0
:try_end_12
.catch Ljava/lang/Exception; {:try_start_3 .. :try_end_12} :catch_13
goto :goto_14
:catch_13
const/4 v0, -0x1
:goto_14
const/16 v2, 0x17
const/4 v3, 0x0
const/4 v4, 0x1
if-lt v0, v2, :cond_1c
const/4 v0, 0x1
goto :goto_1d
:cond_1c
const/4 v0, 0x0
.line 4
:goto_1d
sput-boolean v0, Lcom/alibaba/fastjson/parser/JSONLexer;->V6:Z
.line 5
new-instance v0, Ljava/lang/ThreadLocal;
invoke-direct {v0}, Ljava/lang/ThreadLocal;-><init>()V
sput-object v0, Lcom/alibaba/fastjson/parser/JSONLexer;->sbufLocal:Ljava/lang/ThreadLocal;
const/16 v0, 0x67
.line 6
new-array v0, v0, [I
sput-object v0, Lcom/alibaba/fastjson/parser/JSONLexer;->digits:[I
const/16 v0, 0x30
const/16 v2, 0x30
:goto_30
const/16 v5, 0x39
if-gt v2, v5, :cond_3d
.line 7
sget-object v5, Lcom/alibaba/fastjson/parser/JSONLexer;->digits:[I
add-int/lit8 v6, v2, -0x30
aput v6, v5, v2
add-int/lit8 v2, v2, 0x1
goto :goto_30
:cond_3d
const/16 v2, 0x61
const/16 v6, 0x61
:goto_41
const/16 v7, 0x66
if-gt v6, v7, :cond_50
.line 8
sget-object v7, Lcom/alibaba/fastjson/parser/JSONLexer;->digits:[I
add-int/lit8 v8, v6, -0x61
add-int/lit8 v8, v8, 0xa
aput v8, v7, v6
add-int/lit8 v6, v6, 0x1
goto :goto_41
:cond_50
const/16 v6, 0x41
const/16 v7, 0x41
:goto_54
const/16 v8, 0x46
if-gt v7, v8, :cond_63
.line 9
sget-object v8, Lcom/alibaba/fastjson/parser/JSONLexer;->digits:[I
add-int/lit8 v9, v7, -0x41
add-int/lit8 v9, v9, 0xa
aput v9, v8, v7
add-int/lit8 v7, v7, 0x1
goto :goto_54
:cond_63
const-string v7, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
.line 10
invoke-virtual {v7}, Ljava/lang/String;->toCharArray()[C
move-result-object v7
sput-object v7, Lcom/alibaba/fastjson/parser/JSONLexer;->CA:[C
const/16 v7, 0x100
.line 11
new-array v8, v7, [I
sput-object v8, Lcom/alibaba/fastjson/parser/JSONLexer;->IA:[I
.line 12
sget-object v8, Lcom/alibaba/fastjson/parser/JSONLexer;->IA:[I
invoke-static {v8, v1}, Ljava/util/Arrays;->fill([II)V
.line 13
sget-object v1, Lcom/alibaba/fastjson/parser/JSONLexer;->CA:[C
array-length v1, v1
const/4 v8, 0x0
:goto_7a
if-ge v8, v1, :cond_87
.line 14
sget-object v9, Lcom/alibaba/fastjson/parser/JSONLexer;->IA:[I
sget-object v10, Lcom/alibaba/fastjson/parser/JSONLexer;->CA:[C
aget-char v10, v10, v8
aput v8, v9, v10
add-int/lit8 v8, v8, 0x1
goto :goto_7a
.line 15
:cond_87
sget-object v1, Lcom/alibaba/fastjson/parser/JSONLexer;->IA:[I
const/16 v8, 0x3d
aput v3, v1, v8
.line 16
new-array v1, v7, [Z
sput-object v1, Lcom/alibaba/fastjson/parser/JSONLexer;->firstIdentifierFlags:[Z
const/4 v1, 0x0
.line 17
:goto_92
sget-object v8, Lcom/alibaba/fastjson/parser/JSONLexer;->firstIdentifierFlags:[Z
array-length v9, v8
const/16 v10, 0x7a
const/16 v11, 0x5f
const/16 v12, 0x5a
if-ge v1, v9, :cond_b7
if-lt v1, v6, :cond_a4
if-gt v1, v12, :cond_a4
.line 18
aput-boolean v4, v8, v1
goto :goto_b3
:cond_a4
if-lt v1, v2, :cond_ad
if-gt v1, v10, :cond_ad
.line 19
sget-object v8, Lcom/alibaba/fastjson/parser/JSONLexer;->firstIdentifierFlags:[Z
aput-boolean v4, v8, v1
goto :goto_b3
:cond_ad
if-ne v1, v11, :cond_b3
.line 20
sget-object v8, Lcom/alibaba/fastjson/parser/JSONLexer;->firstIdentifierFlags:[Z
aput-boolean v4, v8, v1
:cond_b3
:goto_b3
add-int/lit8 v1, v1, 0x1
int-to-char v1, v1
goto :goto_92
.line 21
:cond_b7
new-array v1, v7, [Z
sput-object v1, Lcom/alibaba/fastjson/parser/JSONLexer;->identifierFlags:[Z
.line 22
:goto_bb
sget-object v1, Lcom/alibaba/fastjson/parser/JSONLexer;->identifierFlags:[Z
array-length v7, v1
if-ge v3, v7, :cond_e3
if-lt v3, v6, :cond_c7
if-gt v3, v12, :cond_c7
.line 23
aput-boolean v4, v1, v3
goto :goto_df
:cond_c7
if-lt v3, v2, :cond_d0
if-gt v3, v10, :cond_d0
.line 24
sget-object v1, Lcom/alibaba/fastjson/parser/JSONLexer;->identifierFlags:[Z
aput-boolean v4, v1, v3
goto :goto_df
:cond_d0
if-ne v3, v11, :cond_d7
.line 25
sget-object v1, Lcom/alibaba/fastjson/parser/JSONLexer;->identifierFlags:[Z
aput-boolean v4, v1, v3
goto :goto_df
:cond_d7
if-lt v3, v0, :cond_df
if-gt v3, v5, :cond_df
.line 26
sget-object v1, Lcom/alibaba/fastjson/parser/JSONLexer;->identifierFlags:[Z
aput-boolean v4, v1, v3
:cond_df
:goto_df
add-int/lit8 v3, v3, 0x1
int-to-char v3, v3
goto :goto_bb
:cond_e3
return-void
.end method
.method public constructor <init>(Ljava/lang/String;)V
.registers 3
.line 1
sget v0, Lcom/alibaba/fastjson/JSON;->DEFAULT_PARSER_FEATURE:I
invoke-direct {p0, p1, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;-><init>(Ljava/lang/String;I)V
return-void
.end method
.method public constructor <init>(Ljava/lang/String;I)V
.registers 7
.line 4
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 5
sget v0, Lcom/alibaba/fastjson/JSON;->DEFAULT_PARSER_FEATURE:I
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I
const/4 v0, 0x0
.line 6
iput-boolean v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->exp:Z
.line 7
iput-boolean v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->isDouble:Z
.line 8
sget-object v1, Lcom/alibaba/fastjson/JSON;->defaultTimeZone:Ljava/util/TimeZone;
iput-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->timeZone:Ljava/util/TimeZone;
.line 9
sget-object v1, Lcom/alibaba/fastjson/JSON;->defaultLocale:Ljava/util/Locale;
iput-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->locale:Ljava/util/Locale;
const/4 v1, 0x0
.line 10
iput-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar;
.line 11
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
.line 12
sget-object v2, Lcom/alibaba/fastjson/parser/JSONLexer;->sbufLocal:Ljava/lang/ThreadLocal;
invoke-virtual {v2}, Ljava/lang/ThreadLocal;->get()Ljava/lang/Object;
move-result-object v2
check-cast v2, [C
iput-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C
.line 13
iget-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C
if-nez v2, :cond_2d
const/16 v2, 0x200
.line 14
new-array v2, v2, [C
iput-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C
.line 15
:cond_2d
iput p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I
.line 16
iput-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 17
iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result p1
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
const/4 p1, -0x1
.line 18
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 19
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/4 v2, 0x1
add-int/2addr p1, v2
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 20
iget v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p1, v3, :cond_49
const/16 p1, 0x1a
goto :goto_4f
:cond_49
iget-object v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 21
invoke-virtual {v3, p1}, Ljava/lang/String;->charAt(I)C
move-result p1
:goto_4f
iput-char p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
.line 22
iget-char p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const v3, 0xfeff
if-ne p1, v3, :cond_5b
.line 23
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
.line 24
:cond_5b
sget-object p1, Lcom/alibaba/fastjson/parser/Feature;->InitStringFieldAsEmpty:Lcom/alibaba/fastjson/parser/Feature;
iget p1, p1, Lcom/alibaba/fastjson/parser/Feature;->mask:I
and-int/2addr p1, p2
if-eqz p1, :cond_64
const-string v1, ""
:cond_64
iput-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->stringDefaultValue:Ljava/lang/String;
.line 25
sget-object p1, Lcom/alibaba/fastjson/parser/Feature;->DisableCircularReferenceDetect:Lcom/alibaba/fastjson/parser/Feature;
iget p1, p1, Lcom/alibaba/fastjson/parser/Feature;->mask:I
and-int/2addr p1, p2
if-eqz p1, :cond_6e
const/4 v0, 0x1
:cond_6e
iput-boolean v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->disableCircularReferenceDetect:Z
return-void
.end method
.method public constructor <init>([CI)V
.registers 4
.line 2
sget v0, Lcom/alibaba/fastjson/JSON;->DEFAULT_PARSER_FEATURE:I
invoke-direct {p0, p1, p2, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;-><init>([CII)V
return-void
.end method
.method public constructor <init>([CII)V
.registers 6
.line 3
new-instance v0, Ljava/lang/String;
const/4 v1, 0x0
invoke-direct {v0, p1, v1, p2}, Ljava/lang/String;-><init>([CII)V
invoke-direct {p0, v0, p3}, Lcom/alibaba/fastjson/parser/JSONLexer;-><init>(Ljava/lang/String;I)V
return-void
.end method
.method static checkDate(CCCCCCII)Z
.registers 12
const/16 v0, 0x31
const/4 v1, 0x0
if-lt p0, v0, :cond_49
const/16 v2, 0x33
if-le p0, v2, :cond_a
goto :goto_49
:cond_a
const/16 p0, 0x30
if-lt p1, p0, :cond_49
const/16 v3, 0x39
if-le p1, v3, :cond_13
goto :goto_49
:cond_13
if-lt p2, p0, :cond_49
if-le p2, v3, :cond_18
goto :goto_49
:cond_18
if-lt p3, p0, :cond_49
if-le p3, v3, :cond_1d
goto :goto_49
:cond_1d
const/16 p1, 0x32
if-ne p4, p0, :cond_26
if-lt p5, v0, :cond_25
if-le p5, v3, :cond_2f
:cond_25
return v1
:cond_26
if-ne p4, v0, :cond_49
if-eq p5, p0, :cond_2f
if-eq p5, v0, :cond_2f
if-eq p5, p1, :cond_2f
return v1
:cond_2f
if-ne p6, p0, :cond_36
if-lt p7, v0, :cond_35
if-le p7, v3, :cond_47
:cond_35
return v1
:cond_36
if-eq p6, v0, :cond_42
if-ne p6, p1, :cond_3b
goto :goto_42
:cond_3b
if-ne p6, v2, :cond_41
if-eq p7, p0, :cond_47
if-eq p7, v0, :cond_47
:cond_41
return v1
:cond_42
:goto_42
if-lt p7, p0, :cond_49
if-le p7, v3, :cond_47
goto :goto_49
:cond_47
const/4 p0, 0x1
return p0
:cond_49
:goto_49
return v1
.end method
.method static checkTime(CCCCCC)Z
.registers 10
const/16 v0, 0x39
const/4 v1, 0x0
const/16 v2, 0x30
if-ne p0, v2, :cond_c
if-lt p1, v2, :cond_b
if-le p1, v0, :cond_20
:cond_b
return v1
:cond_c
const/16 v3, 0x31
if-ne p0, v3, :cond_15
if-lt p1, v2, :cond_14
if-le p1, v0, :cond_20
:cond_14
return v1
:cond_15
const/16 v3, 0x32
if-ne p0, v3, :cond_42
if-lt p1, v2, :cond_42
const/16 p0, 0x34
if-le p1, p0, :cond_20
goto :goto_42
:cond_20
const/16 p0, 0x35
const/16 p1, 0x36
if-lt p2, v2, :cond_2d
if-gt p2, p0, :cond_2d
if-lt p3, v2, :cond_2c
if-le p3, v0, :cond_32
:cond_2c
return v1
:cond_2d
if-ne p2, p1, :cond_42
if-eq p3, v2, :cond_32
return v1
:cond_32
if-lt p4, v2, :cond_3b
if-gt p4, p0, :cond_3b
if-lt p5, v2, :cond_3a
if-le p5, v0, :cond_40
:cond_3a
return v1
:cond_3b
if-ne p4, p1, :cond_42
if-eq p5, v2, :cond_40
return v1
:cond_40
const/4 p0, 0x1
return p0
:cond_42
:goto_42
return v1
.end method
.method public static final decodeFast(Ljava/lang/String;II)[B
.registers 15
const/4 v0, 0x0
if-nez p2, :cond_6
.line 1
new-array p0, v0, [B
return-object p0
:cond_6
add-int v1, p1, p2
const/4 v2, 0x1
sub-int/2addr v1, v2
:goto_a
if-ge p1, v1, :cond_19
.line 2
sget-object v3, Lcom/alibaba/fastjson/parser/JSONLexer;->IA:[I
invoke-virtual {p0, p1}, Ljava/lang/String;->charAt(I)C
move-result v4
aget v3, v3, v4
if-gez v3, :cond_19
add-int/lit8 p1, p1, 0x1
goto :goto_a
:cond_19
:goto_19
if-lez v1, :cond_28
.line 3
sget-object v3, Lcom/alibaba/fastjson/parser/JSONLexer;->IA:[I
invoke-virtual {p0, v1}, Ljava/lang/String;->charAt(I)C
move-result v4
aget v3, v3, v4
if-gez v3, :cond_28
add-int/lit8 v1, v1, -0x1
goto :goto_19
.line 4
:cond_28
invoke-virtual {p0, v1}, Ljava/lang/String;->charAt(I)C
move-result v3
const/16 v4, 0x3d
if-ne v3, v4, :cond_3c
add-int/lit8 v3, v1, -0x1
invoke-virtual {p0, v3}, Ljava/lang/String;->charAt(I)C
move-result v3
if-ne v3, v4, :cond_3a
const/4 v3, 0x2
goto :goto_3d
:cond_3a
const/4 v3, 0x1
goto :goto_3d
:cond_3c
const/4 v3, 0x0
:goto_3d
sub-int v4, v1, p1
add-int/2addr v4, v2
const/16 v5, 0x4c
if-le p2, v5, :cond_52
.line 5
invoke-virtual {p0, v5}, Ljava/lang/String;->charAt(I)C
move-result p2
const/16 v5, 0xd
if-ne p2, v5, :cond_4f
div-int/lit8 p2, v4, 0x4e
goto :goto_50
:cond_4f
const/4 p2, 0x0
:goto_50
shl-int/2addr p2, v2
goto :goto_53
:cond_52
const/4 p2, 0x0
:goto_53
sub-int/2addr v4, p2
mul-int/lit8 v4, v4, 0x6
shr-int/lit8 v4, v4, 0x3
sub-int/2addr v4, v3
.line 6
new-array v5, v4, [B
.line 7
div-int/lit8 v6, v4, 0x3
mul-int/lit8 v6, v6, 0x3
move v7, p1
const/4 p1, 0x0
const/4 v8, 0x0
:goto_62
if-ge p1, v6, :cond_b8
.line 8
sget-object v9, Lcom/alibaba/fastjson/parser/JSONLexer;->IA:[I
add-int/lit8 v10, v7, 0x1
invoke-virtual {p0, v7}, Ljava/lang/String;->charAt(I)C
move-result v7
aget v7, v9, v7
shl-int/lit8 v7, v7, 0x12
sget-object v9, Lcom/alibaba/fastjson/parser/JSONLexer;->IA:[I
add-int/lit8 v11, v10, 0x1
invoke-virtual {p0, v10}, Ljava/lang/String;->charAt(I)C
move-result v10
aget v9, v9, v10
shl-int/lit8 v9, v9, 0xc
or-int/2addr v7, v9
sget-object v9, Lcom/alibaba/fastjson/parser/JSONLexer;->IA:[I
add-int/lit8 v10, v11, 0x1
invoke-virtual {p0, v11}, Ljava/lang/String;->charAt(I)C
move-result v11
aget v9, v9, v11
shl-int/lit8 v9, v9, 0x6
or-int/2addr v7, v9
sget-object v9, Lcom/alibaba/fastjson/parser/JSONLexer;->IA:[I
add-int/lit8 v11, v10, 0x1
.line 9
invoke-virtual {p0, v10}, Ljava/lang/String;->charAt(I)C
move-result v10
aget v9, v9, v10
or-int/2addr v7, v9
add-int/lit8 v9, p1, 0x1
shr-int/lit8 v10, v7, 0x10
int-to-byte v10, v10
.line 10
aput-byte v10, v5, p1
add-int/lit8 p1, v9, 0x1
shr-int/lit8 v10, v7, 0x8
int-to-byte v10, v10
.line 11
aput-byte v10, v5, v9
add-int/lit8 v9, p1, 0x1
int-to-byte v7, v7
.line 12
aput-byte v7, v5, p1
if-lez p2, :cond_b5
add-int/lit8 v8, v8, 0x1
const/16 p1, 0x13
if-ne v8, p1, :cond_b5
add-int/lit8 v11, v11, 0x2
move v7, v11
const/4 v8, 0x0
goto :goto_b6
:cond_b5
move v7, v11
:goto_b6
move p1, v9
goto :goto_62
:cond_b8
if-ge p1, v4, :cond_e1
const/4 p2, 0x0
:goto_bb
sub-int v6, v1, v3
if-gt v7, v6, :cond_d2
.line 13
sget-object v6, Lcom/alibaba/fastjson/parser/JSONLexer;->IA:[I
add-int/lit8 v8, v7, 0x1
invoke-virtual {p0, v7}, Ljava/lang/String;->charAt(I)C
move-result v7
aget v6, v6, v7
mul-int/lit8 v7, p2, 0x6
rsub-int/lit8 v7, v7, 0x12
shl-int/2addr v6, v7
or-int/2addr v0, v6
add-int/2addr p2, v2
move v7, v8
goto :goto_bb
:cond_d2
const/16 p0, 0x10
:goto_d4
if-ge p1, v4, :cond_e1
add-int/lit8 p2, p1, 0x1
shr-int v1, v0, p0
int-to-byte v1, v1
.line 14
aput-byte v1, v5, p1
add-int/lit8 p0, p0, -0x8
move p1, p2
goto :goto_d4
:cond_e1
return-object v5
.end method
.method private matchFieldHash(J)I
.registers 19
move-object/from16 v0, p0
.line 1
iget-char v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
.line 2
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/4 v2, 0x1
const/4 v3, 0x1
:goto_8
const/16 v4, 0x22
const/4 v7, 0x0
const/4 v8, -0x2
const/16 v9, 0x9
const/16 v10, 0xd
const/16 v11, 0xa
const/16 v13, 0x20
if-ne v1, v4, :cond_17
goto :goto_1b
:cond_17
const/16 v4, 0x27
if-ne v1, v4, :cond_8f
:goto_1b
const-wide v14, -0x340d631b7bdddcdbL # -7.302176725335867E57
.line 3
iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v4, v3
:goto_23
iget v12, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-ge v4, v12, :cond_41
.line 4
iget-object v12, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
invoke-virtual {v12, v4}, Ljava/lang/String;->charAt(I)C
move-result v12
if-ne v12, v1, :cond_35
.line 5
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v4, v1
sub-int/2addr v4, v3
add-int/2addr v3, v4
goto :goto_41
:cond_35
int-to-long v5, v12
xor-long/2addr v5, v14
const-wide v14, 0x100000001b3L
mul-long v14, v14, v5
add-int/lit8 v4, v4, 0x1
goto :goto_23
:cond_41
:goto_41
cmp-long v1, v14, p1
if-eqz v1, :cond_4a
.line 6
iput-wide v14, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->fieldHash:J
.line 7
iput v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return v7
.line 8
:cond_4a
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v3, v2
add-int/2addr v1, v3
.line 9
iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v1, v4, :cond_55
const/16 v12, 0x1a
goto :goto_5b
:cond_55
iget-object v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 10
invoke-virtual {v4, v1}, Ljava/lang/String;->charAt(I)C
move-result v12
:goto_5b
const/16 v1, 0x3a
if-ne v12, v1, :cond_61
add-int/2addr v3, v2
return v3
:cond_61
if-gt v12, v13, :cond_87
if-eq v12, v13, :cond_73
if-eq v12, v11, :cond_73
if-eq v12, v10, :cond_73
if-eq v12, v9, :cond_73
const/16 v1, 0xc
if-eq v12, v1, :cond_73
const/16 v1, 0x8
if-ne v12, v1, :cond_87
.line 11
:cond_73
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v4, v3, 0x1
add-int/2addr v1, v3
.line 12
iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v1, v3, :cond_7f
const/16 v12, 0x1a
goto :goto_85
:cond_7f
iget-object v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 13
invoke-virtual {v3, v1}, Ljava/lang/String;->charAt(I)C
move-result v12
:goto_85
move v3, v4
goto :goto_5b
.line 14
:cond_87
new-instance v1, Lcom/alibaba/fastjson/JSONException;
const-string v2, "match feild error expect \':\'"
invoke-direct {v1, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v1
:cond_8f
if-eq v1, v13, :cond_a7
if-eq v1, v11, :cond_a7
if-eq v1, v10, :cond_a7
if-eq v1, v9, :cond_a7
const/16 v4, 0xc
if-eq v1, v4, :cond_a7
const/16 v4, 0x8
if-ne v1, v4, :cond_a0
goto :goto_a7
:cond_a0
const-wide/16 v1, 0x0
.line 15
iput-wide v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->fieldHash:J
.line 16
iput v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return v7
.line 17
:cond_a7
:goto_a7
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v4, v3, 0x1
add-int/2addr v1, v3
.line 18
iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v1, v3, :cond_b3
const/16 v1, 0x1a
goto :goto_b9
:cond_b3
iget-object v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 19
invoke-virtual {v3, v1}, Ljava/lang/String;->charAt(I)C
move-result v1
:goto_b9
move v3, v4
goto/16 :goto_8
.end method
.method private static readString([CI)Ljava/lang/String;
.registers 14
.line 1
new-array v0, p1, [C
const/4 v1, 0x0
const/4 v2, 0x0
const/4 v3, 0x0
:goto_5
if-ge v2, p1, :cond_fd
.line 2
aget-char v4, p0, v2
const/16 v5, 0x5c
const/4 v6, 0x1
if-eq v4, v5, :cond_15
add-int/lit8 v5, v3, 0x1
.line 3
aput-char v4, v0, v3
move v3, v5
goto/16 :goto_fa
:cond_15
add-int/lit8 v2, v2, 0x1
.line 4
aget-char v4, p0, v2
const/16 v7, 0x22
if-eq v4, v7, :cond_f5
const/16 v7, 0x27
if-eq v4, v7, :cond_f0
const/16 v7, 0x46
if-eq v4, v7, :cond_e9
if-eq v4, v5, :cond_e4
const/16 v5, 0x62
if-eq v4, v5, :cond_dd
const/16 v5, 0x66
if-eq v4, v5, :cond_e9
const/16 v5, 0x6e
if-eq v4, v5, :cond_d6
const/16 v5, 0x72
if-eq v4, v5, :cond_cf
const/16 v5, 0x78
const/16 v7, 0x10
if-eq v4, v5, :cond_b9
const/4 v5, 0x4
const/4 v8, 0x3
const/4 v9, 0x2
packed-switch v4, :pswitch_data_104
packed-switch v4, :pswitch_data_11a
.line 5
new-instance p0, Lcom/alibaba/fastjson/JSONException;
const-string p1, "unclosed.str.lit"
invoke-direct {p0, p1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw p0
:pswitch_4e
add-int/lit8 v4, v3, 0x1
const/16 v5, 0xb
.line 6
aput-char v5, v0, v3
goto/16 :goto_f9
:pswitch_56
add-int/lit8 v4, v3, 0x1
.line 7
new-instance v10, Ljava/lang/String;
new-array v5, v5, [C
add-int/lit8 v2, v2, 0x1
aget-char v11, p0, v2
aput-char v11, v5, v1
add-int/2addr v2, v6
aget-char v11, p0, v2
aput-char v11, v5, v6
add-int/2addr v2, v6
aget-char v11, p0, v2
aput-char v11, v5, v9
add-int/2addr v2, v6
aget-char v9, p0, v2
aput-char v9, v5, v8
invoke-direct {v10, v5}, Ljava/lang/String;-><init>([C)V
invoke-static {v10, v7}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;I)I
move-result v5
int-to-char v5, v5
aput-char v5, v0, v3
goto/16 :goto_f9
:pswitch_7d
add-int/lit8 v4, v3, 0x1
const/16 v5, 0x9
.line 8
aput-char v5, v0, v3
goto/16 :goto_f9
:pswitch_85
add-int/lit8 v4, v3, 0x1
const/4 v5, 0x7
.line 9
aput-char v5, v0, v3
goto/16 :goto_f9
:pswitch_8c
add-int/lit8 v4, v3, 0x1
const/4 v5, 0x6
.line 10
aput-char v5, v0, v3
goto/16 :goto_f9
:pswitch_93
add-int/lit8 v4, v3, 0x1
const/4 v5, 0x5
.line 11
aput-char v5, v0, v3
goto :goto_f9
:pswitch_99
add-int/lit8 v4, v3, 0x1
.line 12
aput-char v5, v0, v3
goto :goto_f9
:pswitch_9e
add-int/lit8 v4, v3, 0x1
.line 13
aput-char v8, v0, v3
goto :goto_f9
:pswitch_a3
add-int/lit8 v4, v3, 0x1
.line 14
aput-char v9, v0, v3
goto :goto_f9
:pswitch_a8
add-int/lit8 v4, v3, 0x1
.line 15
aput-char v6, v0, v3
goto :goto_f9
:pswitch_ad
add-int/lit8 v4, v3, 0x1
.line 16
aput-char v1, v0, v3
goto :goto_f9
:pswitch_b2
add-int/lit8 v4, v3, 0x1
const/16 v5, 0x2f
.line 17
aput-char v5, v0, v3
goto :goto_f9
:cond_b9
add-int/lit8 v4, v3, 0x1
.line 18
sget-object v5, Lcom/alibaba/fastjson/parser/JSONLexer;->digits:[I
add-int/lit8 v2, v2, 0x1
aget-char v8, p0, v2
aget v8, v5, v8
mul-int/lit8 v8, v8, 0x10
add-int/2addr v2, v6
aget-char v7, p0, v2
aget v5, v5, v7
add-int/2addr v8, v5
int-to-char v5, v8
aput-char v5, v0, v3
goto :goto_f9
:cond_cf
add-int/lit8 v4, v3, 0x1
const/16 v5, 0xd
.line 19
aput-char v5, v0, v3
goto :goto_f9
:cond_d6
add-int/lit8 v4, v3, 0x1
const/16 v5, 0xa
.line 20
aput-char v5, v0, v3
goto :goto_f9
:cond_dd
add-int/lit8 v4, v3, 0x1
const/16 v5, 0x8
.line 21
aput-char v5, v0, v3
goto :goto_f9
:cond_e4
add-int/lit8 v4, v3, 0x1
.line 22
aput-char v5, v0, v3
goto :goto_f9
:cond_e9
add-int/lit8 v4, v3, 0x1
const/16 v5, 0xc
.line 23
aput-char v5, v0, v3
goto :goto_f9
:cond_f0
add-int/lit8 v4, v3, 0x1
.line 24
aput-char v7, v0, v3
goto :goto_f9
:cond_f5
add-int/lit8 v4, v3, 0x1
.line 25
aput-char v7, v0, v3
:goto_f9
move v3, v4
:goto_fa
add-int/2addr v2, v6
goto/16 :goto_5
.line 26
:cond_fd
new-instance p0, Ljava/lang/String;
invoke-direct {p0, v0, v1, v3}, Ljava/lang/String;-><init>([CII)V
return-object p0
nop
:pswitch_data_104
.packed-switch 0x2f
:pswitch_b2
:pswitch_ad
:pswitch_a8
:pswitch_a3
:pswitch_9e
:pswitch_99
:pswitch_93
:pswitch_8c
:pswitch_85
.end packed-switch
:pswitch_data_11a
.packed-switch 0x74
:pswitch_7d
:pswitch_56
:pswitch_4e
.end packed-switch
.end method
.method private scanIdent()V
.registers 3
.line 1
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v0, v0, -0x1
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
const/4 v0, 0x0
.line 2
iput-boolean v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->hasSpecial:Z
.line 3
:goto_9
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
.line 4
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
.line 5
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
invoke-static {v0}, Ljava/lang/Character;->isLetterOrDigit(C)Z
move-result v0
if-eqz v0, :cond_1b
goto :goto_9
.line 6
:cond_1b
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String;
move-result-object v0
const-string v1, "null"
.line 7
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_2c
const/16 v0, 0x8
.line 8
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
goto :goto_7c
:cond_2c
const-string v1, "true"
.line 9
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_38
const/4 v0, 0x6
.line 10
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
goto :goto_7c
:cond_38
const-string v1, "false"
.line 11
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_44
const/4 v0, 0x7
.line 12
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
goto :goto_7c
:cond_44
const-string v1, "new"
.line 13
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_51
const/16 v0, 0x9
.line 14
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
goto :goto_7c
:cond_51
const-string v1, "undefined"
.line 15
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_5e
const/16 v0, 0x17
.line 16
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
goto :goto_7c
:cond_5e
const-string v1, "Set"
.line 17
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_6b
const/16 v0, 0x15
.line 18
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
goto :goto_7c
:cond_6b
const-string v1, "TreeSet"
.line 19
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_78
const/16 v0, 0x16
.line 20
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
goto :goto_7c
:cond_78
const/16 v0, 0x12
.line 21
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
:goto_7c
return-void
.end method
.method private setCalendar(CCCCCCCC)V
.registers 11
.line 1
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->timeZone:Ljava/util/TimeZone;
iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->locale:Ljava/util/Locale;
invoke-static {v0, v1}, Ljava/util/Calendar;->getInstance(Ljava/util/TimeZone;Ljava/util/Locale;)Ljava/util/Calendar;
move-result-object v0
iput-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar;
add-int/lit8 p1, p1, -0x30
mul-int/lit16 p1, p1, 0x3e8
add-int/lit8 p2, p2, -0x30
mul-int/lit8 p2, p2, 0x64
add-int/2addr p1, p2
add-int/lit8 p3, p3, -0x30
mul-int/lit8 p3, p3, 0xa
add-int/2addr p1, p3
add-int/lit8 p4, p4, -0x30
add-int/2addr p1, p4
add-int/lit8 p5, p5, -0x30
mul-int/lit8 p5, p5, 0xa
add-int/lit8 p6, p6, -0x30
add-int/2addr p5, p6
const/4 p2, 0x1
sub-int/2addr p5, p2
add-int/lit8 p7, p7, -0x30
mul-int/lit8 p7, p7, 0xa
add-int/lit8 p8, p8, -0x30
add-int/2addr p7, p8
.line 2
iget-object p3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar;
invoke-virtual {p3, p2, p1}, Ljava/util/Calendar;->set(II)V
.line 3
iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar;
const/4 p2, 0x2
invoke-virtual {p1, p2, p5}, Ljava/util/Calendar;->set(II)V
.line 4
iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar;
const/4 p2, 0x5
invoke-virtual {p1, p2, p7}, Ljava/util/Calendar;->set(II)V
return-void
.end method
.method private final subString(II)Ljava/lang/String;
.registers 7
.line 1
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C
array-length v1, v0
const/4 v2, 0x0
if-ge p2, v1, :cond_15
.line 2
iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
add-int v3, p1, p2
invoke-virtual {v1, p1, v3, v0, v2}, Ljava/lang/String;->getChars(II[CI)V
.line 3
new-instance p1, Ljava/lang/String;
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C
invoke-direct {p1, v0, v2, p2}, Ljava/lang/String;-><init>([CII)V
return-object p1
.line 4
:cond_15
new-array v0, p2, [C
.line 5
iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
add-int/2addr p2, p1
invoke-virtual {v1, p1, p2, v0, v2}, Ljava/lang/String;->getChars(II[CI)V
.line 6
new-instance p1, Ljava/lang/String;
invoke-direct {p1, v0}, Ljava/lang/String;-><init>([C)V
return-object p1
.end method
# virtual methods
.method public bytesValue()[B
.registers 4
.line 1
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
add-int/lit8 v1, v1, 0x1
iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
invoke-static {v0, v1, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->decodeFast(Ljava/lang/String;II)[B
move-result-object v0
return-object v0
.end method
.method protected charAt(I)C
.registers 3
.line 1
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p1, v0, :cond_7
const/16 p1, 0x1a
goto :goto_d
:cond_7
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 2
invoke-virtual {v0, p1}, Ljava/lang/String;->charAt(I)C
move-result p1
:goto_d
return p1
.end method
.method public close()V
.registers 4
.line 1
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C
array-length v1, v0
const/16 v2, 0x2004
if-gt v1, v2, :cond_c
.line 2
sget-object v1, Lcom/alibaba/fastjson/parser/JSONLexer;->sbufLocal:Ljava/lang/ThreadLocal;
invoke-virtual {v1, v0}, Ljava/lang/ThreadLocal;->set(Ljava/lang/Object;)V
:cond_c
const/4 v0, 0x0
.line 3
iput-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C
return-void
.end method
.method public final config(Lcom/alibaba/fastjson/parser/Feature;Z)V
.registers 5
if-eqz p2, :cond_a
.line 1
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I
iget v1, p1, Lcom/alibaba/fastjson/parser/Feature;->mask:I
or-int/2addr v0, v1
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I
goto :goto_13
.line 2
:cond_a
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I
iget v1, p1, Lcom/alibaba/fastjson/parser/Feature;->mask:I
xor-int/lit8 v1, v1, -0x1
and-int/2addr v0, v1
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I
.line 3
:goto_13
sget-object v0, Lcom/alibaba/fastjson/parser/Feature;->InitStringFieldAsEmpty:Lcom/alibaba/fastjson/parser/Feature;
if-ne p1, v0, :cond_1f
if-eqz p2, :cond_1c
const-string p1, ""
goto :goto_1d
:cond_1c
const/4 p1, 0x0
.line 4
:goto_1d
iput-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->stringDefaultValue:Ljava/lang/String;
.line 5
:cond_1f
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I
sget-object p2, Lcom/alibaba/fastjson/parser/Feature;->DisableCircularReferenceDetect:Lcom/alibaba/fastjson/parser/Feature;
iget p2, p2, Lcom/alibaba/fastjson/parser/Feature;->mask:I
and-int/2addr p1, p2
if-eqz p1, :cond_2a
const/4 p1, 0x1
goto :goto_2b
:cond_2a
const/4 p1, 0x0
:goto_2b
iput-boolean p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->disableCircularReferenceDetect:Z
return-void
.end method
.method public final decimalValue(Z)Ljava/lang/Number;
.registers 10
.line 1
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
add-int/2addr v0, v1
const/4 v1, 0x1
sub-int/2addr v0, v1
.line 2
iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v0, v2, :cond_e
const/16 v0, 0x1a
goto :goto_14
:cond_e
iget-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 3
invoke-virtual {v2, v0}, Ljava/lang/String;->charAt(I)C
move-result v0
:goto_14
const/16 v2, 0x46
if-ne v0, v2, :cond_28
.line 4
:try_start_18
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->numberString()Ljava/lang/String;
move-result-object p1
invoke-static {p1}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F
move-result p1
invoke-static {p1}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;
move-result-object p1
return-object p1
:catch_25
move-exception p1
goto/16 :goto_d2
:cond_28
const/16 v3, 0x44
if-ne v0, v3, :cond_39
.line 5
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->numberString()Ljava/lang/String;
move-result-object p1
invoke-static {p1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
move-result-wide v0
invoke-static {v0, v1}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
move-result-object p1
return-object p1
:cond_39
if-eqz p1, :cond_40
.line 6
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->decimalValue()Ljava/math/BigDecimal;
move-result-object p1
return-object p1
.line 7
:cond_40
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
add-int/2addr p1, v0
sub-int/2addr p1, v1
.line 8
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
invoke-virtual {v0, p1}, Ljava/lang/String;->charAt(I)C
move-result p1
.line 9
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
const/16 v4, 0x4c
if-eq p1, v4, :cond_5e
const/16 v4, 0x53
if-eq p1, v4, :cond_5e
const/16 v4, 0x42
if-eq p1, v4, :cond_5e
if-eq p1, v2, :cond_5e
if-ne p1, v3, :cond_60
:cond_5e
add-int/lit8 v0, v0, -0x1
.line 10
:cond_60
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
.line 11
iget-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C
array-length v2, v2
const/4 v3, 0x0
if-ge v0, v2, :cond_74
.line 12
iget-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
add-int v4, p1, v0
iget-object v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C
invoke-virtual {v2, p1, v4, v5, v3}, Ljava/lang/String;->getChars(II[CI)V
.line 13
iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C
goto :goto_7e
.line 14
:cond_74
new-array v2, v0, [C
.line 15
iget-object v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
add-int v5, p1, v0
invoke-virtual {v4, p1, v5, v2, v3}, Ljava/lang/String;->getChars(II[CI)V
move-object p1, v2
:goto_7e
const/16 v2, 0x9
if-gt v0, v2, :cond_c4
.line 16
iget-boolean v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->exp:Z
if-nez v2, :cond_c4
.line 17
aget-char v2, p1, v3
const/16 v4, 0x2d
const/4 v5, 0x2
if-ne v2, v4, :cond_91
.line 18
aget-char v2, p1, v1
const/4 v4, 0x1
goto :goto_9b
:cond_91
const/16 v4, 0x2b
if-ne v2, v4, :cond_99
.line 19
aget-char v2, p1, v1
const/4 v4, 0x0
goto :goto_9b
:cond_99
const/4 v4, 0x0
const/4 v5, 0x1
:goto_9b
add-int/lit8 v2, v2, -0x30
:goto_9d
if-ge v5, v0, :cond_b3
.line 20
aget-char v6, p1, v5
:try_end_a1
.catch Ljava/lang/NumberFormatException; {:try_start_18 .. :try_end_a1} :catch_25
const/16 v7, 0x2e
if-ne v6, v7, :cond_a7
const/4 v3, 0x1
goto :goto_b0
:cond_a7
add-int/lit8 v6, v6, -0x30
mul-int/lit8 v2, v2, 0xa
add-int/2addr v2, v6
if-eqz v3, :cond_b0
mul-int/lit8 v3, v3, 0xa
:cond_b0
:goto_b0
add-int/lit8 v5, v5, 0x1
goto :goto_9d
:cond_b3
int-to-double v0, v2
int-to-double v2, v3
.line 21
invoke-static {v0, v1}, Ljava/lang/Double;->isNaN(D)Z
invoke-static {v2, v3}, Ljava/lang/Double;->isNaN(D)Z
div-double/2addr v0, v2
if-eqz v4, :cond_bf
neg-double v0, v0
.line 22
:cond_bf
:try_start_bf
invoke-static {v0, v1}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
move-result-object p1
return-object p1
.line 23
:cond_c4
new-instance v1, Ljava/lang/String;
invoke-direct {v1, p1, v3, v0}, Ljava/lang/String;-><init>([CII)V
.line 24
invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
move-result-wide v0
invoke-static {v0, v1}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
move-result-object p1
:try_end_d1
.catch Ljava/lang/NumberFormatException; {:try_start_bf .. :try_end_d1} :catch_25
return-object p1
.line 25
:goto_d2
new-instance v0, Lcom/alibaba/fastjson/JSONException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {p1}, Ljava/lang/NumberFormatException;->getMessage()Ljava/lang/String;
move-result-object p1
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p1, ", "
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object p1
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
goto :goto_f5
:goto_f4
throw v0
:goto_f5
goto :goto_f4
.end method
.method public final decimalValue()Ljava/math/BigDecimal;
.registers 7
.line 26
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
add-int/2addr v0, v1
add-int/lit8 v0, v0, -0x1
.line 27
iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
invoke-virtual {v1, v0}, Ljava/lang/String;->charAt(I)C
move-result v0
.line 28
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
const/16 v2, 0x4c
if-eq v0, v2, :cond_23
const/16 v2, 0x53
if-eq v0, v2, :cond_23
const/16 v2, 0x42
if-eq v0, v2, :cond_23
const/16 v2, 0x46
if-eq v0, v2, :cond_23
const/16 v2, 0x44
if-ne v0, v2, :cond_25
:cond_23
add-int/lit8 v1, v1, -0x1
.line 29
:cond_25
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
.line 30
iget-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C
array-length v3, v2
const/4 v4, 0x0
if-ge v1, v3, :cond_3c
.line 31
iget-object v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
add-int v5, v0, v1
invoke-virtual {v3, v0, v5, v2, v4}, Ljava/lang/String;->getChars(II[CI)V
.line 32
new-instance v0, Ljava/math/BigDecimal;
iget-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C
invoke-direct {v0, v2, v4, v1}, Ljava/math/BigDecimal;-><init>([CII)V
return-object v0
.line 33
:cond_3c
new-array v2, v1, [C
.line 34
iget-object v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
add-int/2addr v1, v0
invoke-virtual {v3, v0, v1, v2, v4}, Ljava/lang/String;->getChars(II[CI)V
.line 35
new-instance v0, Ljava/math/BigDecimal;
invoke-direct {v0, v2}, Ljava/math/BigDecimal;-><init>([C)V
return-object v0
.end method
.method public info()Ljava/lang/String;
.registers 5
.line 1
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "pos "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, ", json : "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
const/high16 v2, 0x10000
if-ge v1, v2, :cond_1d
iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
goto :goto_24
:cond_1d
iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
const/4 v3, 0x0
.line 2
invoke-virtual {v1, v3, v2}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v1
:goto_24
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public final intValue()I
.registers 11
.line 1
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
add-int/2addr v1, v0
.line 2
iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
const/16 v3, 0x1a
if-lt v0, v2, :cond_e
const/16 v2, 0x1a
goto :goto_14
:cond_e
iget-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 3
invoke-virtual {v2, v0}, Ljava/lang/String;->charAt(I)C
move-result v2
:goto_14
const/16 v4, 0x2d
const/4 v5, 0x0
const/4 v6, 0x1
if-ne v2, v4, :cond_20
const/high16 v2, -0x80000000
add-int/lit8 v0, v0, 0x1
const/4 v4, 0x1
goto :goto_24
:cond_20
const v2, -0x7fffffff
const/4 v4, 0x0
:goto_24
if-ge v0, v1, :cond_3b
add-int/lit8 v5, v0, 0x1
.line 4
iget v7, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v0, v7, :cond_2f
const/16 v0, 0x1a
goto :goto_35
:cond_2f
iget-object v7, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 5
invoke-virtual {v7, v0}, Ljava/lang/String;->charAt(I)C
move-result v0
:goto_35
add-int/lit8 v0, v0, -0x30
neg-int v0, v0
move v9, v5
move v5, v0
move v0, v9
:cond_3b
:goto_3b
if-ge v0, v1, :cond_7e
add-int/lit8 v7, v0, 0x1
.line 6
iget v8, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v0, v8, :cond_46
const/16 v0, 0x1a
goto :goto_4c
:cond_46
iget-object v8, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 7
invoke-virtual {v8, v0}, Ljava/lang/String;->charAt(I)C
move-result v0
:goto_4c
const/16 v8, 0x4c
if-eq v0, v8, :cond_7d
const/16 v8, 0x53
if-eq v0, v8, :cond_7d
const/16 v8, 0x42
if-ne v0, v8, :cond_59
goto :goto_7d
:cond_59
add-int/lit8 v0, v0, -0x30
const v8, -0xccccccc
if-lt v5, v8, :cond_73
mul-int/lit8 v5, v5, 0xa
add-int v8, v2, v0
if-lt v5, v8, :cond_69
sub-int/2addr v5, v0
move v0, v7
goto :goto_3b
.line 8
:cond_69
new-instance v0, Ljava/lang/NumberFormatException;
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->numberString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/NumberFormatException;-><init>(Ljava/lang/String;)V
throw v0
.line 9
:cond_73
new-instance v0, Ljava/lang/NumberFormatException;
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->numberString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/NumberFormatException;-><init>(Ljava/lang/String;)V
throw v0
:cond_7d
:goto_7d
move v0, v7
:cond_7e
if-eqz v4, :cond_90
.line 10
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
add-int/2addr v1, v6
if-le v0, v1, :cond_86
return v5
.line 11
:cond_86
new-instance v0, Ljava/lang/NumberFormatException;
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->numberString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/NumberFormatException;-><init>(Ljava/lang/String;)V
throw v0
:cond_90
neg-int v0, v5
return v0
.end method
.method public final integerValue()Ljava/lang/Number;
.registers 20
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/NumberFormatException;
}
.end annotation
move-object/from16 v0, p0
.line 1
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
add-int/2addr v2, v1
add-int/lit8 v3, v2, -0x1
.line 2
iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v3, v4, :cond_10
const/16 v3, 0x1a
goto :goto_16
:cond_10
iget-object v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 3
invoke-virtual {v4, v3}, Ljava/lang/String;->charAt(I)C
move-result v3
:goto_16
const/16 v4, 0x53
const/16 v6, 0x4c
const/16 v7, 0x42
if-eq v3, v7, :cond_2f
if-eq v3, v6, :cond_2a
if-eq v3, v4, :cond_25
const/16 v3, 0x20
goto :goto_33
:cond_25
add-int/lit8 v2, v2, -0x1
const/16 v3, 0x53
goto :goto_33
:cond_2a
add-int/lit8 v2, v2, -0x1
const/16 v3, 0x4c
goto :goto_33
:cond_2f
add-int/lit8 v2, v2, -0x1
const/16 v3, 0x42
.line 4
:goto_33
iget v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
iget v9, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v8, v9, :cond_3c
const/16 v8, 0x1a
goto :goto_42
:cond_3c
iget-object v9, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 5
invoke-virtual {v9, v8}, Ljava/lang/String;->charAt(I)C
move-result v8
:goto_42
const/16 v9, 0x2d
const/4 v10, 0x1
if-ne v8, v9, :cond_4d
const-wide/high16 v8, -0x8000000000000000L
add-int/lit8 v1, v1, 0x1
const/4 v11, 0x1
goto :goto_53
:cond_4d
const-wide v8, -0x7fffffffffffffffL # -4.9E-324
const/4 v11, 0x0
:goto_53
if-ge v1, v2, :cond_6a
add-int/lit8 v12, v1, 0x1
.line 6
iget v13, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v1, v13, :cond_5e
const/16 v1, 0x1a
goto :goto_64
:cond_5e
iget-object v13, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 7
invoke-virtual {v13, v1}, Ljava/lang/String;->charAt(I)C
move-result v1
:goto_64
add-int/lit8 v1, v1, -0x30
neg-int v1, v1
int-to-long v13, v1
move v1, v12
goto :goto_6c
:cond_6a
const-wide/16 v13, 0x0
:goto_6c
if-ge v1, v2, :cond_ac
add-int/lit8 v12, v1, 0x1
.line 8
iget v15, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v1, v15, :cond_77
const/16 v1, 0x1a
goto :goto_7d
:cond_77
iget-object v15, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 9
invoke-virtual {v15, v1}, Ljava/lang/String;->charAt(I)C
move-result v1
:goto_7d
add-int/lit8 v1, v1, -0x30
const-wide v15, -0xcccccccccccccccL
cmp-long v17, v13, v15
if-gez v17, :cond_92
.line 10
new-instance v1, Ljava/math/BigInteger;
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->numberString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Ljava/math/BigInteger;-><init>(Ljava/lang/String;)V
return-object v1
:cond_92
const-wide/16 v15, 0xa
mul-long v13, v13, v15
int-to-long v4, v1
add-long v17, v8, v4
cmp-long v1, v13, v17
if-gez v1, :cond_a7
.line 11
new-instance v1, Ljava/math/BigInteger;
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->numberString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Ljava/math/BigInteger;-><init>(Ljava/lang/String;)V
return-object v1
:cond_a7
sub-long/2addr v13, v4
move v1, v12
const/16 v4, 0x53
goto :goto_6c
:cond_ac
if-eqz v11, :cond_e5
.line 12
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
add-int/2addr v2, v10
if-le v1, v2, :cond_db
const-wide/32 v1, -0x80000000
cmp-long v4, v13, v1
if-ltz v4, :cond_d6
if-eq v3, v6, :cond_d6
const/16 v1, 0x53
if-ne v3, v1, :cond_c7
long-to-int v1, v13
int-to-short v1, v1
.line 13
invoke-static {v1}, Ljava/lang/Short;->valueOf(S)Ljava/lang/Short;
move-result-object v1
return-object v1
:cond_c7
if-ne v3, v7, :cond_d0
long-to-int v1, v13
int-to-byte v1, v1
.line 14
invoke-static {v1}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
move-result-object v1
return-object v1
:cond_d0
long-to-int v1, v13
.line 15
invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
return-object v1
.line 16
:cond_d6
invoke-static {v13, v14}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v1
return-object v1
.line 17
:cond_db
new-instance v1, Ljava/lang/NumberFormatException;
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->numberString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Ljava/lang/NumberFormatException;-><init>(Ljava/lang/String;)V
throw v1
:cond_e5
neg-long v1, v13
const-wide/32 v4, 0x7fffffff
cmp-long v8, v1, v4
if-gtz v8, :cond_109
if-eq v3, v6, :cond_109
const/16 v4, 0x53
if-ne v3, v4, :cond_fa
long-to-int v2, v1
int-to-short v1, v2
.line 18
invoke-static {v1}, Ljava/lang/Short;->valueOf(S)Ljava/lang/Short;
move-result-object v1
return-object v1
:cond_fa
if-ne v3, v7, :cond_103
long-to-int v2, v1
int-to-byte v1, v2
.line 19
invoke-static {v1}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
move-result-object v1
return-object v1
:cond_103
long-to-int v2, v1
.line 20
invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
return-object v1
.line 21
:cond_109
invoke-static {v1, v2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v1
return-object v1
.end method
.method public final isBlankInput()Z
.registers 6
const/4 v0, 0x0
const/4 v1, 0x0
.line 1
:goto_2
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v2
const/16 v3, 0x1a
const/4 v4, 0x1
if-ne v2, v3, :cond_c
return v4
:cond_c
const/16 v3, 0x20
if-gt v2, v3, :cond_27
if-eq v2, v3, :cond_28
const/16 v3, 0xa
if-eq v2, v3, :cond_28
const/16 v3, 0xd
if-eq v2, v3, :cond_28
const/16 v3, 0x9
if-eq v2, v3, :cond_28
const/16 v3, 0xc
if-eq v2, v3, :cond_28
const/16 v3, 0x8
if-ne v2, v3, :cond_27
goto :goto_28
:cond_27
const/4 v4, 0x0
:cond_28
:goto_28
if-nez v4, :cond_2b
return v0
:cond_2b
add-int/lit8 v1, v1, 0x1
goto :goto_2
.end method
.method public final isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
.registers 3
.line 1
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I
iget p1, p1, Lcom/alibaba/fastjson/parser/Feature;->mask:I
and-int/2addr p1, v0
if-eqz p1, :cond_9
const/4 p1, 0x1
goto :goto_a
:cond_9
const/4 p1, 0x0
:goto_a
return p1
.end method
.method public final longValue()J
.registers 14
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/NumberFormatException;
}
.end annotation
.line 1
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
add-int/2addr v1, v0
.line 2
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v2
const/4 v3, 0x1
const/16 v4, 0x2d
if-ne v2, v4, :cond_14
const-wide/high16 v4, -0x8000000000000000L
add-int/lit8 v0, v0, 0x1
const/4 v2, 0x1
goto :goto_1a
:cond_14
const-wide v4, -0x7fffffffffffffffL # -4.9E-324
const/4 v2, 0x0
:goto_1a
if-ge v0, v1, :cond_28
add-int/lit8 v6, v0, 0x1
.line 3
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v0
add-int/lit8 v0, v0, -0x30
neg-int v0, v0
int-to-long v7, v0
:goto_26
move v0, v6
goto :goto_2a
:cond_28
const-wide/16 v7, 0x0
:goto_2a
if-ge v0, v1, :cond_75
add-int/lit8 v6, v0, 0x1
.line 4
iget v9, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v0, v9, :cond_35
const/16 v0, 0x1a
goto :goto_3b
:cond_35
iget-object v9, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 5
invoke-virtual {v9, v0}, Ljava/lang/String;->charAt(I)C
move-result v0
:goto_3b
const/16 v9, 0x4c
if-eq v0, v9, :cond_74
const/16 v9, 0x53
if-eq v0, v9, :cond_74
const/16 v9, 0x42
if-ne v0, v9, :cond_48
goto :goto_74
:cond_48
add-int/lit8 v0, v0, -0x30
const-wide v9, -0xcccccccccccccccL
cmp-long v11, v7, v9
if-ltz v11, :cond_6a
const-wide/16 v9, 0xa
mul-long v7, v7, v9
int-to-long v9, v0
add-long v11, v4, v9
cmp-long v0, v7, v11
if-ltz v0, :cond_60
sub-long/2addr v7, v9
goto :goto_26
.line 6
:cond_60
new-instance v0, Ljava/lang/NumberFormatException;
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->numberString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/NumberFormatException;-><init>(Ljava/lang/String;)V
throw v0
.line 7
:cond_6a
new-instance v0, Ljava/lang/NumberFormatException;
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->numberString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/NumberFormatException;-><init>(Ljava/lang/String;)V
throw v0
:cond_74
:goto_74
move v0, v6
:cond_75
if-eqz v2, :cond_87
.line 8
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
add-int/2addr v1, v3
if-le v0, v1, :cond_7d
return-wide v7
.line 9
:cond_7d
new-instance v0, Ljava/lang/NumberFormatException;
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->numberString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/NumberFormatException;-><init>(Ljava/lang/String;)V
throw v0
:cond_87
neg-long v0, v7
return-wide v0
.end method
.method public matchField(J)Z
.registers 20
move-object/from16 v0, p0
.line 1
iget-char v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
.line 2
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/4 v3, 0x1
add-int/2addr v2, v3
const/4 v4, 0x1
:goto_9
const/16 v5, 0x22
const/16 v9, 0xa
const/4 v10, 0x0
const/4 v11, -0x2
const/16 v12, 0xc
const/16 v13, 0x20
if-ne v1, v5, :cond_16
goto :goto_1a
:cond_16
const/16 v5, 0x27
if-ne v1, v5, :cond_ec
:goto_1a
const-wide v15, -0x340d631b7bdddcdbL # -7.302176725335867E57
move v5, v2
move-wide v14, v15
.line 3
:goto_21
iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-ge v5, v6, :cond_3d
.line 4
iget-object v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
invoke-virtual {v6, v5}, Ljava/lang/String;->charAt(I)C
move-result v6
if-ne v6, v1, :cond_31
sub-int/2addr v5, v2
add-int/2addr v5, v3
add-int/2addr v4, v5
goto :goto_3d
:cond_31
int-to-long v7, v6
xor-long/2addr v7, v14
const-wide v14, 0x100000001b3L
mul-long v14, v14, v7
add-int/lit8 v5, v5, 0x1
goto :goto_21
:cond_3d
:goto_3d
cmp-long v1, v14, p1
if-eqz v1, :cond_46
.line 5
iput v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
.line 6
iput-wide v14, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->fieldHash:J
return v10
.line 7
:cond_46
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v2, v4, 0x1
add-int/2addr v1, v4
.line 8
iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v1, v4, :cond_52
const/16 v14, 0x1a
goto :goto_58
:cond_52
iget-object v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 9
invoke-virtual {v4, v1}, Ljava/lang/String;->charAt(I)C
move-result v14
:goto_58
const/16 v1, 0x3a
if-ne v14, v1, :cond_bb
.line 10
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v1, v2
.line 11
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v1, v2, :cond_66
const/16 v14, 0x1a
goto :goto_6c
:cond_66
iget-object v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 12
invoke-virtual {v2, v1}, Ljava/lang/String;->charAt(I)C
move-result v14
:goto_6c
const/16 v2, 0x7b
if-ne v14, v2, :cond_87
add-int/2addr v1, v3
.line 13
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 14
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v1, v2, :cond_7c
const/16 v14, 0x1a
goto :goto_82
:cond_7c
iget-object v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 15
invoke-virtual {v2, v1}, Ljava/lang/String;->charAt(I)C
move-result v14
:goto_82
iput-char v14, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
.line 16
iput v12, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
goto :goto_ba
:cond_87
const/16 v2, 0x5b
if-ne v14, v2, :cond_a4
add-int/2addr v1, v3
.line 17
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 18
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v1, v2, :cond_97
const/16 v14, 0x1a
goto :goto_9d
:cond_97
iget-object v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 19
invoke-virtual {v2, v1}, Ljava/lang/String;->charAt(I)C
move-result v14
:goto_9d
iput-char v14, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v1, 0xe
.line 20
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
goto :goto_ba
.line 21
:cond_a4
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 22
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v1, v2, :cond_af
const/16 v14, 0x1a
goto :goto_b5
:cond_af
iget-object v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 23
invoke-virtual {v2, v1}, Ljava/lang/String;->charAt(I)C
move-result v14
:goto_b5
iput-char v14, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
.line 24
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
:goto_ba
return v3
:cond_bb
if-gt v14, v13, :cond_e4
if-eq v14, v13, :cond_cf
if-eq v14, v9, :cond_cf
const/16 v1, 0xd
if-eq v14, v1, :cond_cf
const/16 v1, 0x9
if-eq v14, v1, :cond_cf
if-eq v14, v12, :cond_cf
const/16 v1, 0x8
if-ne v14, v1, :cond_e4
.line 25
:cond_cf
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v4, v2, 0x1
add-int/2addr v1, v2
.line 26
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v1, v2, :cond_db
const/16 v14, 0x1a
goto :goto_e1
:cond_db
iget-object v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 27
invoke-virtual {v2, v1}, Ljava/lang/String;->charAt(I)C
move-result v14
:goto_e1
move v2, v4
goto/16 :goto_58
.line 28
:cond_e4
new-instance v1, Lcom/alibaba/fastjson/JSONException;
const-string v2, "match feild error expect \':\'"
invoke-direct {v1, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v1
:cond_ec
if-gt v1, v13, :cond_115
if-eq v1, v13, :cond_100
if-eq v1, v9, :cond_100
const/16 v5, 0xd
if-eq v1, v5, :cond_100
const/16 v5, 0x9
if-eq v1, v5, :cond_100
if-eq v1, v12, :cond_100
const/16 v5, 0x8
if-ne v1, v5, :cond_115
.line 29
:cond_100
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v5, v4, 0x1
add-int/2addr v1, v4
.line 30
iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v1, v4, :cond_10c
const/16 v1, 0x1a
goto :goto_112
:cond_10c
iget-object v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 31
invoke-virtual {v4, v1}, Ljava/lang/String;->charAt(I)C
move-result v1
:goto_112
move v4, v5
goto/16 :goto_9
:cond_115
const-wide/16 v1, 0x0
.line 32
iput-wide v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->fieldHash:J
.line 33
iput v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return v10
.end method
.method public next()C
.registers 3
.line 1
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 2
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v0, v1, :cond_d
const/16 v0, 0x1a
goto :goto_13
:cond_d
iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 3
invoke-virtual {v1, v0}, Ljava/lang/String;->charAt(I)C
move-result v0
:goto_13
iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
return v0
.end method
.method public final nextIdent()V
.registers 3
.line 1
:goto_0
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v1, 0x20
if-gt v0, v1, :cond_1e
if-eq v0, v1, :cond_1c
const/16 v1, 0xa
if-eq v0, v1, :cond_1c
const/16 v1, 0xd
if-eq v0, v1, :cond_1c
const/16 v1, 0x9
if-eq v0, v1, :cond_1c
const/16 v1, 0xc
if-eq v0, v1, :cond_1c
const/16 v1, 0x8
if-ne v0, v1, :cond_1e
:cond_1c
const/4 v0, 0x1
goto :goto_1f
:cond_1e
const/4 v0, 0x0
:goto_1f
if-nez v0, :cond_36
.line 2
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v1, 0x5f
if-eq v0, v1, :cond_32
.line 3
invoke-static {v0}, Ljava/lang/Character;->isLetter(C)Z
move-result v0
if-eqz v0, :cond_2e
goto :goto_32
.line 4
:cond_2e
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
goto :goto_35
.line 5
:cond_32
:goto_32
invoke-direct {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanIdent()V
:goto_35
return-void
.line 6
:cond_36
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto :goto_0
.end method
.method public final nextToken()V
.registers 16
const/4 v0, 0x0
.line 1
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
.line 2
:goto_3
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->pos:I
.line 3
iget-char v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v2, 0x2f
if-ne v1, v2, :cond_11
.line 4
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->skipComment()V
goto :goto_3
:cond_11
const/16 v2, 0x22
if-ne v1, v2, :cond_19
.line 5
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanString()V
return-void
:cond_19
const/16 v2, 0x30
if-lt v1, v2, :cond_21
const/16 v2, 0x39
if-le v1, v2, :cond_27
.line 6
:cond_21
iget-char v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v2, 0x2d
if-ne v1, v2, :cond_2b
.line 7
:cond_27
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanNumber()V
return-void
:cond_2b
const/16 v2, 0x2c
if-ne v1, v2, :cond_37
.line 8
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
const/16 v0, 0x10
.line 9
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
return-void
:cond_37
const/16 v3, 0xc
if-eq v1, v3, :cond_1f4
const/16 v4, 0xd
if-eq v1, v4, :cond_1f4
const/16 v5, 0x20
if-eq v1, v5, :cond_1f4
const/16 v6, 0x3a
if-eq v1, v6, :cond_1ec
const/16 v7, 0x5b
const/4 v8, 0x1
const/16 v9, 0x1a
if-eq v1, v7, :cond_1d5
const/16 v7, 0x5d
if-eq v1, v7, :cond_1cd
const/16 v10, 0x66
const/16 v11, 0x9
const/16 v12, 0x8
const/16 v13, 0xa
const/16 v14, 0x7d
if-eq v1, v10, :cond_18f
const/16 v10, 0x6e
if-eq v1, v10, :cond_13b
const/16 v10, 0x7b
if-eq v1, v10, :cond_126
if-eq v1, v14, :cond_111
const/16 v10, 0x53
if-eq v1, v10, :cond_10d
const/16 v10, 0x54
if-eq v1, v10, :cond_10d
const/16 v10, 0x74
if-eq v1, v10, :cond_cf
const/16 v2, 0x75
if-eq v1, v2, :cond_10d
packed-switch v1, :pswitch_data_1fa
packed-switch v1, :pswitch_data_204
.line 10
iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
iget v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-eq v2, v3, :cond_8d
if-ne v1, v9, :cond_8b
add-int/lit8 v2, v2, 0x1
if-ne v2, v3, :cond_8b
goto :goto_8d
:cond_8b
const/4 v1, 0x0
goto :goto_8e
:cond_8d
:goto_8d
const/4 v1, 0x1
:goto_8e
if-eqz v1, :cond_a7
.line 11
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
const/16 v1, 0x14
if-eq v0, v1, :cond_9f
.line 12
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 13
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->eofPos:I
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->pos:I
goto :goto_b7
.line 14
:cond_9f
new-instance v0, Lcom/alibaba/fastjson/JSONException;
const-string v1, "EOF error"
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 15
:cond_a7
iget-char v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v2, 0x1f
if-le v1, v2, :cond_b8
const/16 v2, 0x7f
if-ne v1, v2, :cond_b2
goto :goto_b8
.line 16
:cond_b2
iput v8, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 17
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
:goto_b7
return-void
.line 18
:cond_b8
:goto_b8
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto/16 :goto_3
.line 19
:pswitch_bd
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
const/16 v0, 0xb
.line 20
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
return-void
.line 21
:pswitch_c5
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
.line 22
iput v13, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
return-void
.line 23
:pswitch_cb
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanString()V
return-void
.line 24
:cond_cf
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const-string v8, "true"
invoke-virtual {v0, v8, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;I)Z
move-result v0
if-eqz v0, :cond_105
.line 25
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v0, v0, 0x4
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 26
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v0
iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
.line 27
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
if-eq v0, v5, :cond_101
if-eq v0, v2, :cond_101
if-eq v0, v14, :cond_101
if-eq v0, v7, :cond_101
if-eq v0, v13, :cond_101
if-eq v0, v4, :cond_101
if-eq v0, v11, :cond_101
if-eq v0, v9, :cond_101
if-eq v0, v3, :cond_101
if-eq v0, v12, :cond_101
if-ne v0, v6, :cond_105
:cond_101
const/4 v0, 0x6
.line 28
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
return-void
.line 29
:cond_105
new-instance v0, Lcom/alibaba/fastjson/JSONException;
const-string v1, "scan true error"
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 30
:cond_10d
invoke-direct {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanIdent()V
return-void
.line 31
:cond_111
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v0, v8
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 32
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v0, v1, :cond_11b
goto :goto_121
:cond_11b
iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 33
invoke-virtual {v1, v0}, Ljava/lang/String;->charAt(I)C
move-result v9
:goto_121
iput-char v9, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
.line 34
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
return-void
.line 35
:cond_126
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v0, v8
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 36
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v0, v1, :cond_130
goto :goto_136
:cond_130
iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 37
invoke-virtual {v1, v0}, Ljava/lang/String;->charAt(I)C
move-result v9
:goto_136
iput-char v9, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
.line 38
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
return-void
.line 39
:cond_13b
iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
iget v6, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const-string v8, "null"
invoke-virtual {v1, v8, v6}, Ljava/lang/String;->startsWith(Ljava/lang/String;I)Z
move-result v1
if-eqz v1, :cond_150
.line 40
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v0, v0, 0x4
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/16 v0, 0x8
goto :goto_164
.line 41
:cond_150
iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
iget v6, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const-string v8, "new"
invoke-virtual {v1, v8, v6}, Ljava/lang/String;->startsWith(Ljava/lang/String;I)Z
move-result v1
if-eqz v1, :cond_164
.line 42
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v0, v0, 0x3
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/16 v0, 0x9
:cond_164
:goto_164
if-eqz v0, :cond_187
.line 43
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v1
iput-char v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
.line 44
iget-char v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
if-eq v1, v5, :cond_184
if-eq v1, v2, :cond_184
if-eq v1, v14, :cond_184
if-eq v1, v7, :cond_184
if-eq v1, v13, :cond_184
if-eq v1, v4, :cond_184
if-eq v1, v11, :cond_184
if-eq v1, v9, :cond_184
if-eq v1, v3, :cond_184
if-ne v1, v12, :cond_187
.line 45
:cond_184
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
return-void
.line 46
:cond_187
new-instance v0, Lcom/alibaba/fastjson/JSONException;
const-string v1, "scan null/new error"
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 47
:cond_18f
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const-string v8, "false"
invoke-virtual {v0, v8, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;I)Z
move-result v0
if-eqz v0, :cond_1c5
.line 48
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v0, v0, 0x5
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 49
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v0
iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
.line 50
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
if-eq v0, v5, :cond_1c1
if-eq v0, v2, :cond_1c1
if-eq v0, v14, :cond_1c1
if-eq v0, v7, :cond_1c1
if-eq v0, v13, :cond_1c1
if-eq v0, v4, :cond_1c1
if-eq v0, v11, :cond_1c1
if-eq v0, v9, :cond_1c1
if-eq v0, v3, :cond_1c1
if-eq v0, v12, :cond_1c1
if-ne v0, v6, :cond_1c5
:cond_1c1
const/4 v0, 0x7
.line 51
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
return-void
.line 52
:cond_1c5
new-instance v0, Lcom/alibaba/fastjson/JSONException;
const-string v1, "scan false error"
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 53
:cond_1cd
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
const/16 v0, 0xf
.line 54
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
return-void
.line 55
:cond_1d5
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v0, v8
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 56
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v0, v1, :cond_1df
goto :goto_1e5
:cond_1df
iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 57
invoke-virtual {v1, v0}, Ljava/lang/String;->charAt(I)C
move-result v9
:goto_1e5
iput-char v9, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v0, 0xe
.line 58
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
return-void
.line 59
:cond_1ec
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
const/16 v0, 0x11
.line 60
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
return-void
.line 61
:cond_1f4
:pswitch_1f4
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto/16 :goto_3
nop
:pswitch_data_1fa
.packed-switch 0x8
:pswitch_1f4
:pswitch_1f4
:pswitch_1f4
.end packed-switch
:pswitch_data_204
.packed-switch 0x27
:pswitch_cb
:pswitch_c5
:pswitch_bd
.end packed-switch
.end method
.method public final nextToken(I)V
.registers 12
const/4 v0, 0x0
.line 62
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
:goto_3
const/4 v0, 0x2
const/16 v1, 0xd
const/16 v2, 0x39
const/16 v3, 0x22
const/16 v4, 0x30
const/16 v5, 0xe
const/16 v6, 0x5b
const/16 v7, 0x7b
const/16 v8, 0xc
if-eq p1, v0, :cond_10e
const/4 v0, 0x4
const/16 v9, 0x1a
if-eq p1, v0, :cond_dc
if-eq p1, v8, :cond_aa
const/16 v0, 0x12
if-eq p1, v0, :cond_a6
const/16 v0, 0x14
if-eq p1, v0, :cond_9f
const/16 v2, 0xf
const/16 v3, 0x5d
packed-switch p1, :pswitch_data_158
goto/16 :goto_138
.line 63
:pswitch_2e
iget-char v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v5, 0x2c
if-ne v4, v5, :cond_4c
const/16 p1, 0x10
.line 64
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 65
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 p1, p1, 0x1
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 66
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p1, v0, :cond_43
goto :goto_49
:cond_43
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 67
invoke-virtual {v0, p1}, Ljava/lang/String;->charAt(I)C
move-result v9
:goto_49
iput-char v9, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
return-void
:cond_4c
const/16 v5, 0x7d
if-ne v4, v5, :cond_66
.line 68
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 69
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 p1, p1, 0x1
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 70
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p1, v0, :cond_5d
goto :goto_63
:cond_5d
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 71
invoke-virtual {v0, p1}, Ljava/lang/String;->charAt(I)C
move-result v9
:goto_63
iput-char v9, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
return-void
:cond_66
if-ne v4, v3, :cond_7e
.line 72
iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 73
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 p1, p1, 0x1
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 74
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p1, v0, :cond_75
goto :goto_7b
:cond_75
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 75
invoke-virtual {v0, p1}, Ljava/lang/String;->charAt(I)C
move-result v9
:goto_7b
iput-char v9, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
return-void
:cond_7e
if-ne v4, v9, :cond_138
.line 76
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
return-void
.line 77
:pswitch_83
iget-char v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
if-ne v4, v3, :cond_9f
.line 78
iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 79
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
return-void
.line 80
:pswitch_8d
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
if-ne v0, v6, :cond_97
.line 81
iput v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 82
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
return-void
:cond_97
if-ne v0, v7, :cond_138
.line 83
iput v8, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 84
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
return-void
.line 85
:cond_9f
iget-char v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
if-ne v2, v9, :cond_138
.line 86
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
return-void
.line 87
:cond_a6
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextIdent()V
return-void
.line 88
:cond_aa
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
if-ne v0, v7, :cond_c4
.line 89
iput v8, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 90
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 p1, p1, 0x1
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 91
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p1, v0, :cond_bb
goto :goto_c1
:cond_bb
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 92
invoke-virtual {v0, p1}, Ljava/lang/String;->charAt(I)C
move-result v9
:goto_c1
iput-char v9, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
return-void
:cond_c4
if-ne v0, v6, :cond_138
.line 93
iput v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 94
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 p1, p1, 0x1
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 95
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p1, v0, :cond_d3
goto :goto_d9
:cond_d3
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 96
invoke-virtual {v0, p1}, Ljava/lang/String;->charAt(I)C
move-result v9
:goto_d9
iput-char v9, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
return-void
.line 97
:cond_dc
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
if-ne v0, v3, :cond_e8
.line 98
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->pos:I
.line 99
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanString()V
return-void
:cond_e8
if-lt v0, v4, :cond_f4
if-gt v0, v2, :cond_f4
.line 100
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->pos:I
.line 101
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanNumber()V
return-void
.line 102
:cond_f4
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
if-ne v0, v7, :cond_138
.line 103
iput v8, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 104
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 p1, p1, 0x1
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 105
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p1, v0, :cond_105
goto :goto_10b
:cond_105
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 106
invoke-virtual {v0, p1}, Ljava/lang/String;->charAt(I)C
move-result v9
:goto_10b
iput-char v9, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
return-void
.line 107
:cond_10e
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
if-lt v0, v4, :cond_11c
if-gt v0, v2, :cond_11c
.line 108
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->pos:I
.line 109
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanNumber()V
return-void
.line 110
:cond_11c
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
if-ne v0, v3, :cond_128
.line 111
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->pos:I
.line 112
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanString()V
return-void
:cond_128
if-ne v0, v6, :cond_130
.line 113
iput v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 114
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
return-void
:cond_130
if-ne v0, v7, :cond_138
.line 115
iput v8, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 116
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
return-void
.line 117
:cond_138
:goto_138
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v2, 0x20
if-eq v0, v2, :cond_153
const/16 v2, 0xa
if-eq v0, v2, :cond_153
if-eq v0, v1, :cond_153
const/16 v1, 0x9
if-eq v0, v1, :cond_153
if-eq v0, v8, :cond_153
const/16 v1, 0x8
if-ne v0, v1, :cond_14f
goto :goto_153
.line 118
:cond_14f
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
return-void
.line 119
:cond_153
:goto_153
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto/16 :goto_3
:pswitch_data_158
.packed-switch 0xe
:pswitch_8d
:pswitch_83
:pswitch_2e
.end packed-switch
.end method
.method public final nextTokenWithChar(C)V
.registers 5
const/4 v0, 0x0
.line 1
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
.line 2
:goto_3
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
if-ne v0, p1, :cond_20
.line 3
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 p1, p1, 0x1
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 4
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p1, v0, :cond_14
const/16 p1, 0x1a
goto :goto_1a
:cond_14
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 5
invoke-virtual {v0, p1}, Ljava/lang/String;->charAt(I)C
move-result p1
:goto_1a
iput-char p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
.line 6
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
return-void
:cond_20
const/16 v1, 0x20
if-eq v0, v1, :cond_5a
const/16 v1, 0xa
if-eq v0, v1, :cond_5a
const/16 v1, 0xd
if-eq v0, v1, :cond_5a
const/16 v1, 0x9
if-eq v0, v1, :cond_5a
const/16 v1, 0xc
if-eq v0, v1, :cond_5a
const/16 v1, 0x8
if-ne v0, v1, :cond_39
goto :goto_5a
.line 7
:cond_39
new-instance v0, Lcom/alibaba/fastjson/JSONException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "not match "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
const-string p1, " - "
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-char p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 8
:cond_5a
:goto_5a
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto :goto_3
.end method
.method public final numberString()Ljava/lang/String;
.registers 4
.line 1
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
add-int/2addr v0, v1
add-int/lit8 v0, v0, -0x1
.line 2
iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
invoke-virtual {v1, v0}, Ljava/lang/String;->charAt(I)C
move-result v0
.line 3
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
const/16 v2, 0x4c
if-eq v0, v2, :cond_23
const/16 v2, 0x53
if-eq v0, v2, :cond_23
const/16 v2, 0x42
if-eq v0, v2, :cond_23
const/16 v2, 0x46
if-eq v0, v2, :cond_23
const/16 v2, 0x44
if-ne v0, v2, :cond_25
:cond_23
add-int/lit8 v1, v1, -0x1
.line 4
:cond_25
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
invoke-direct {p0, v0, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->subString(II)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public scanBoolean()Z
.registers 6
.line 1
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const-string v2, "false"
invoke-virtual {v0, v2, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;I)Z
move-result v0
const/4 v1, 0x0
const/4 v2, 0x1
if-eqz v0, :cond_10
const/4 v2, 0x5
goto :goto_2c
.line 2
:cond_10
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
iget v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const-string v4, "true"
invoke-virtual {v0, v4, v3}, Ljava/lang/String;->startsWith(Ljava/lang/String;I)Z
move-result v0
if-eqz v0, :cond_20
const/4 v0, 0x4
const/4 v1, 0x1
const/4 v2, 0x4
goto :goto_2c
.line 3
:cond_20
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v3, 0x31
if-ne v0, v3, :cond_28
const/4 v1, 0x1
goto :goto_2c
:cond_28
const/16 v3, 0x30
if-ne v0, v3, :cond_3a
.line 4
:goto_2c
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v0, v2
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 5
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v0
iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
return v1
:cond_3a
const/4 v0, -0x1
.line 6
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return v1
.end method
.method public scanFieldBoolean(J)Z
.registers 15
const/4 v0, 0x0
.line 1
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
.line 2
invoke-direct {p0, p1, p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->matchFieldHash(J)I
move-result p1
if-nez p1, :cond_a
return v0
.line 3
:cond_a
iget-object p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v1, p1
const-string v2, "false"
invoke-virtual {p2, v2, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;I)Z
move-result p2
const/4 v1, 0x4
const/4 v2, -0x1
const/4 v3, 0x3
const/4 v4, 0x1
if-eqz p2, :cond_20
add-int/lit8 p1, p1, 0x5
:goto_1d
const/4 p2, 0x0
goto/16 :goto_8c
.line 4
:cond_20
iget-object p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
iget v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v5, p1
const-string v6, "true"
invoke-virtual {p2, v6, v5}, Ljava/lang/String;->startsWith(Ljava/lang/String;I)Z
move-result p2
if-eqz p2, :cond_30
add-int/2addr p1, v1
:goto_2e
const/4 p2, 0x1
goto :goto_8c
.line 5
:cond_30
iget-object p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
iget v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v5, p1
const-string v6, "\"false\""
invoke-virtual {p2, v6, v5}, Ljava/lang/String;->startsWith(Ljava/lang/String;I)Z
move-result p2
if-eqz p2, :cond_40
add-int/lit8 p1, p1, 0x7
goto :goto_1d
.line 6
:cond_40
iget-object p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
iget v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v5, p1
const-string v6, "\"true\""
invoke-virtual {p2, v6, v5}, Ljava/lang/String;->startsWith(Ljava/lang/String;I)Z
move-result p2
if-eqz p2, :cond_50
add-int/lit8 p1, p1, 0x6
goto :goto_2e
.line 7
:cond_50
iget-object p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
iget v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v5, p1
invoke-virtual {p2, v5}, Ljava/lang/String;->charAt(I)C
move-result p2
const/16 v5, 0x31
if-ne p2, v5, :cond_5f
add-int/2addr p1, v4
goto :goto_2e
.line 8
:cond_5f
iget-object p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
iget v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v5, p1
invoke-virtual {p2, v5}, Ljava/lang/String;->charAt(I)C
move-result p2
const/16 v5, 0x30
if-ne p2, v5, :cond_6e
add-int/2addr p1, v4
goto :goto_1d
.line 9
:cond_6e
iget-object p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
iget v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v5, p1
const-string v6, "\"1\""
invoke-virtual {p2, v6, v5}, Ljava/lang/String;->startsWith(Ljava/lang/String;I)Z
move-result p2
if-eqz p2, :cond_7d
add-int/2addr p1, v3
goto :goto_2e
.line 10
:cond_7d
iget-object p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
iget v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v5, p1
const-string v6, "\"0\""
invoke-virtual {p2, v6, v5}, Ljava/lang/String;->startsWith(Ljava/lang/String;I)Z
move-result p2
if-eqz p2, :cond_170
add-int/2addr p1, v3
goto :goto_1d
.line 11
:goto_8c
iget v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v6, p1, 0x1
add-int/2addr v5, p1
.line 12
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
const/16 v7, 0x1a
if-lt v5, p1, :cond_9a
const/16 p1, 0x1a
goto :goto_a0
:cond_9a
iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 13
invoke-virtual {p1, v5}, Ljava/lang/String;->charAt(I)C
move-result p1
:goto_a0
const/16 v5, 0x10
const/16 v8, 0x2c
if-ne p1, v8, :cond_c3
.line 14
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v6, v4
add-int/2addr p1, v6
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 15
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr p1, v4
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 16
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p1, v0, :cond_b6
goto :goto_bc
:cond_b6
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 17
invoke-virtual {v0, p1}, Ljava/lang/String;->charAt(I)C
move-result v7
:goto_bc
iput-char v7, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
.line 18
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
.line 19
iput v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
return p2
:cond_c3
const/16 v9, 0xd
const/16 v10, 0x7d
if-eq p1, v10, :cond_f3
const/16 v11, 0x20
if-eq p1, v11, :cond_df
const/16 v11, 0xa
if-eq p1, v11, :cond_df
if-eq p1, v9, :cond_df
const/16 v11, 0x9
if-eq p1, v11, :cond_df
const/16 v11, 0xc
if-eq p1, v11, :cond_df
const/16 v11, 0x8
if-ne p1, v11, :cond_f3
.line 20
:cond_df
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v5, v6, 0x1
add-int/2addr p1, v6
.line 21
iget v6, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p1, v6, :cond_eb
const/16 p1, 0x1a
goto :goto_f1
:cond_eb
iget-object v6, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 22
invoke-virtual {v6, p1}, Ljava/lang/String;->charAt(I)C
move-result p1
:goto_f1
move v6, v5
goto :goto_a0
:cond_f3
if-ne p1, v10, :cond_16d
.line 23
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v3, v6, 0x1
add-int/2addr p1, v6
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result p1
if-ne p1, v8, :cond_11b
.line 24
iput v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 25
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v3, v4
add-int/2addr p1, v3
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 26
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr p1, v4
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 27
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p1, v0, :cond_112
goto :goto_118
:cond_112
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 28
invoke-virtual {v0, p1}, Ljava/lang/String;->charAt(I)C
move-result v7
:goto_118
iput-char v7, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
goto :goto_167
:cond_11b
const/16 v5, 0x5d
if-ne p1, v5, :cond_13c
const/16 p1, 0xf
.line 29
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 30
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v3, v4
add-int/2addr p1, v3
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 31
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr p1, v4
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 32
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p1, v0, :cond_133
goto :goto_139
:cond_133
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 33
invoke-virtual {v0, p1}, Ljava/lang/String;->charAt(I)C
move-result v7
:goto_139
iput-char v7, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
goto :goto_167
:cond_13c
if-ne p1, v10, :cond_159
.line 34
iput v9, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 35
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v3, v4
add-int/2addr p1, v3
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 36
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr p1, v4
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 37
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p1, v0, :cond_150
goto :goto_156
:cond_150
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 38
invoke-virtual {v0, p1}, Ljava/lang/String;->charAt(I)C
move-result v7
:goto_156
iput-char v7, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
goto :goto_167
:cond_159
if-ne p1, v7, :cond_16a
const/16 p1, 0x14
.line 39
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 40
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v3, v4
add-int/2addr p1, v3
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 41
iput-char v7, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
.line 42
:goto_167
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return p2
.line 43
:cond_16a
iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return v0
.line 44
:cond_16d
iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return v0
.line 45
:cond_170
iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return v0
.end method
.method public scanFieldDate(J)Ljava/util/Date;
.registers 16
const/4 v0, 0x0
.line 1
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
.line 2
invoke-direct {p0, p1, p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->matchFieldHash(J)I
move-result p1
const/4 p2, 0x0
if-nez p1, :cond_b
return-object p2
.line 3
:cond_b
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 4
iget-char v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
add-int/lit8 v3, p1, 0x1
add-int/2addr p1, v1
.line 5
iget v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
const/16 v5, 0x1a
if-lt p1, v4, :cond_1b
const/16 p1, 0x1a
goto :goto_21
:cond_1b
iget-object v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 6
invoke-virtual {v4, p1}, Ljava/lang/String;->charAt(I)C
move-result p1
:goto_21
const/16 v4, 0x22
const/4 v6, -0x1
if-ne p1, v4, :cond_6a
.line 7
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int v7, p1, v3
add-int/lit8 v8, v3, 0x1
add-int/2addr p1, v3
.line 8
iget v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p1, v3, :cond_32
goto :goto_37
:cond_32
iget-object v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 9
invoke-virtual {v3, p1}, Ljava/lang/String;->charAt(I)C
.line 10
:goto_37
iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
iget v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v3, v8
invoke-virtual {p1, v4, v3}, Ljava/lang/String;->indexOf(II)I
move-result p1
if-eq p1, v6, :cond_62
sub-int/2addr p1, v7
.line 11
iput v7, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 12
invoke-virtual {p0, v0, p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanISO8601DateIfMatch(ZI)Z
move-result v0
if-eqz v0, :cond_5d
.line 13
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar;
invoke-virtual {v0}, Ljava/util/Calendar;->getTime()Ljava/util/Date;
move-result-object v0
add-int/2addr v8, p1
add-int/lit8 p1, v8, 0x1
add-int/2addr v8, v1
.line 14
invoke-virtual {p0, v8}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v3
.line 15
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
goto/16 :goto_c2
.line 16
:cond_5d
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 17
iput v6, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-object p2
.line 18
:cond_62
new-instance p1, Lcom/alibaba/fastjson/JSONException;
const-string p2, "unclosed str"
invoke-direct {p1, p2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw p1
:cond_6a
const/16 v0, 0x30
if-lt p1, v0, :cond_179
const/16 v7, 0x39
if-gt p1, v7, :cond_179
sub-int/2addr p1, v0
int-to-long v8, p1
.line 19
:goto_74
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v10, v3, 0x1
add-int/2addr p1, v3
.line 20
iget v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p1, v3, :cond_80
const/16 p1, 0x1a
goto :goto_86
:cond_80
iget-object v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 21
invoke-virtual {v3, p1}, Ljava/lang/String;->charAt(I)C
move-result p1
:goto_86
if-lt p1, v0, :cond_94
if-gt p1, v7, :cond_94
const-wide/16 v11, 0xa
mul-long v8, v8, v11
add-int/lit8 p1, p1, -0x30
int-to-long v11, p1
add-long/2addr v8, v11
move v3, v10
goto :goto_74
:cond_94
const/16 v0, 0x2e
if-ne p1, v0, :cond_9b
.line 22
iput v6, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-object p2
:cond_9b
if-ne p1, v4, :cond_b2
.line 23
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v0, v10, 0x1
add-int/2addr p1, v10
.line 24
iget v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p1, v3, :cond_a9
const/16 p1, 0x1a
goto :goto_af
:cond_a9
iget-object v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 25
invoke-virtual {v3, p1}, Ljava/lang/String;->charAt(I)C
move-result p1
:goto_af
move v3, p1
move p1, v0
goto :goto_b4
:cond_b2
move v3, p1
move p1, v10
:goto_b4
const-wide/16 v10, 0x0
cmp-long v0, v8, v10
if-gez v0, :cond_bd
.line 26
iput v6, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-object p2
.line 27
:cond_bd
new-instance v0, Ljava/util/Date;
invoke-direct {v0, v8, v9}, Ljava/util/Date;-><init>(J)V
:goto_c2
const/16 v4, 0x10
const/16 v7, 0x2c
if-ne v3, v7, :cond_e8
.line 28
iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 p1, p1, -0x1
add-int/2addr p2, p1
iput p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 29
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 p1, p1, 0x1
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 30
iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p1, p2, :cond_da
goto :goto_e0
:cond_da
iget-object p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 31
invoke-virtual {p2, p1}, Ljava/lang/String;->charAt(I)C
move-result v5
:goto_e0
iput-char v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/4 p1, 0x3
.line 32
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
.line 33
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
return-object v0
:cond_e8
const/16 v8, 0x7d
if-ne v3, v8, :cond_172
.line 34
iget v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v9, p1, 0x1
add-int/2addr v3, p1
invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result p1
if-ne p1, v7, :cond_114
.line 35
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 36
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v9, v9, -0x1
add-int/2addr p1, v9
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 37
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 p1, p1, 0x1
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 38
iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p1, p2, :cond_10b
goto :goto_111
:cond_10b
iget-object p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 39
invoke-virtual {p2, p1}, Ljava/lang/String;->charAt(I)C
move-result v5
:goto_111
iput-char v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
goto :goto_167
:cond_114
const/16 v3, 0x5d
if-ne p1, v3, :cond_137
const/16 p1, 0xf
.line 40
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 41
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v9, v9, -0x1
add-int/2addr p1, v9
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 42
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 p1, p1, 0x1
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 43
iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p1, p2, :cond_12e
goto :goto_134
:cond_12e
iget-object p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 44
invoke-virtual {p2, p1}, Ljava/lang/String;->charAt(I)C
move-result v5
:goto_134
iput-char v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
goto :goto_167
:cond_137
if-ne p1, v8, :cond_158
const/16 p1, 0xd
.line 45
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 46
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v9, v9, -0x1
add-int/2addr p1, v9
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 47
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 p1, p1, 0x1
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 48
iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p1, p2, :cond_14f
goto :goto_155
:cond_14f
iget-object p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 49
invoke-virtual {p2, p1}, Ljava/lang/String;->charAt(I)C
move-result v5
:goto_155
iput-char v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
goto :goto_167
:cond_158
if-ne p1, v5, :cond_16b
const/16 p1, 0x14
.line 50
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 51
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v9, v9, -0x1
add-int/2addr p1, v9
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 52
iput-char v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
:goto_167
const/4 p1, 0x4
.line 53
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-object v0
.line 54
:cond_16b
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 55
iput-char v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
.line 56
iput v6, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-object p2
.line 57
:cond_172
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 58
iput-char v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
.line 59
iput v6, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-object p2
.line 60
:cond_179
iput v6, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-object p2
.end method
.method public final scanFieldDouble(J)D
.registers 20
move-object/from16 v0, p0
const/4 v1, 0x0
.line 1
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
.line 2
invoke-direct/range {p0 .. p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->matchFieldHash(J)I
move-result v2
const-wide/16 v3, 0x0
if-nez v2, :cond_e
return-wide v3
.line 3
:cond_e
iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v6, v2, 0x1
add-int/2addr v5, v2
invoke-virtual {v0, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v2
.line 4
iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v5, v6
const/4 v7, 0x1
sub-int/2addr v5, v7
const/16 v8, 0x2d
if-ne v2, v8, :cond_22
const/4 v9, 0x1
goto :goto_23
:cond_22
const/4 v9, 0x0
:goto_23
if-eqz v9, :cond_2f
.line 5
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v10, v6, 0x1
add-int/2addr v2, v6
invoke-virtual {v0, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v2
move v6, v10
:cond_2f
const/4 v10, -0x1
const/16 v11, 0x30
if-lt v2, v11, :cond_150
const/16 v12, 0x39
if-gt v2, v12, :cond_150
sub-int/2addr v2, v11
.line 6
:goto_39
iget v13, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v14, v6, 0x1
add-int/2addr v13, v6
invoke-virtual {v0, v13}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v6
if-lt v6, v11, :cond_4d
if-gt v6, v12, :cond_4d
mul-int/lit8 v2, v2, 0xa
add-int/lit8 v6, v6, -0x30
add-int/2addr v2, v6
move v6, v14
goto :goto_39
:cond_4d
const/16 v13, 0x2e
if-ne v6, v13, :cond_53
const/4 v13, 0x1
goto :goto_54
:cond_53
const/4 v13, 0x0
:goto_54
const/16 v15, 0xa
if-eqz v13, :cond_88
.line 7
iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v13, v14, 0x1
add-int/2addr v6, v14
invoke-virtual {v0, v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v6
if-lt v6, v11, :cond_85
if-gt v6, v12, :cond_85
mul-int/lit8 v2, v2, 0xa
sub-int/2addr v6, v11
add-int/2addr v2, v6
const/16 v6, 0xa
.line 8
:goto_6b
iget v14, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v16, v13, 0x1
add-int/2addr v14, v13
invoke-virtual {v0, v14}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v13
if-lt v13, v11, :cond_82
if-gt v13, v12, :cond_82
mul-int/lit8 v2, v2, 0xa
add-int/lit8 v13, v13, -0x30
add-int/2addr v2, v13
mul-int/lit8 v6, v6, 0xa
move/from16 v13, v16
goto :goto_6b
:cond_82
move/from16 v14, v16
goto :goto_8a
.line 9
:cond_85
iput v10, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-wide v3
:cond_88
move v13, v6
const/4 v6, 0x1
:goto_8a
const/16 v1, 0x65
if-eq v13, v1, :cond_96
const/16 v1, 0x45
if-ne v13, v1, :cond_93
goto :goto_96
:cond_93
const/16 v16, 0x0
goto :goto_98
:cond_96
:goto_96
const/16 v16, 0x1
:goto_98
if-eqz v16, :cond_c6
.line 10
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v13, v14, 0x1
add-int/2addr v1, v14
invoke-virtual {v0, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v1
const/16 v14, 0x2b
if-eq v1, v14, :cond_ad
if-ne v1, v8, :cond_aa
goto :goto_ad
:cond_aa
move v14, v13
move v13, v1
goto :goto_b8
.line 11
:cond_ad
:goto_ad
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v8, v13, 0x1
add-int/2addr v1, v13
invoke-virtual {v0, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v1
move v13, v1
:goto_b7
move v14, v8
:goto_b8
if-lt v13, v11, :cond_c6
if-gt v13, v12, :cond_c6
.line 12
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v8, v14, 0x1
add-int/2addr v1, v14
invoke-virtual {v0, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v13
goto :goto_b7
.line 13
:cond_c6
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v1, v14
sub-int/2addr v1, v5
sub-int/2addr v1, v7
if-nez v16, :cond_dc
if-ge v1, v15, :cond_dc
int-to-double v1, v2
int-to-double v5, v6
.line 14
invoke-static {v1, v2}, Ljava/lang/Double;->isNaN(D)Z
invoke-static {v5, v6}, Ljava/lang/Double;->isNaN(D)Z
div-double/2addr v1, v5
if-eqz v9, :cond_e4
neg-double v1, v1
goto :goto_e4
.line 15
:cond_dc
invoke-direct {v0, v5, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->subString(II)Ljava/lang/String;
move-result-object v1
.line 16
invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
move-result-wide v1
:cond_e4
:goto_e4
const/16 v5, 0x10
const/16 v6, 0x2c
if-ne v13, v6, :cond_f9
.line 17
iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v14, v7
add-int/2addr v3, v14
iput v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 18
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
const/4 v3, 0x3
.line 19
iput v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
.line 20
iput v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
return-wide v1
:cond_f9
const/16 v8, 0x7d
if-ne v13, v8, :cond_14d
.line 21
iget v9, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v11, v14, 0x1
add-int/2addr v9, v14
invoke-virtual {v0, v9}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v9
if-ne v9, v6, :cond_114
.line 22
iput v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 23
iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v11, v7
add-int/2addr v3, v11
iput v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 24
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto :goto_146
:cond_114
const/16 v5, 0x5d
if-ne v9, v5, :cond_126
const/16 v3, 0xf
.line 25
iput v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 26
iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v11, v7
add-int/2addr v3, v11
iput v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 27
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto :goto_146
:cond_126
if-ne v9, v8, :cond_136
const/16 v3, 0xd
.line 28
iput v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 29
iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v11, v7
add-int/2addr v3, v11
iput v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 30
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto :goto_146
:cond_136
const/16 v5, 0x1a
if-ne v9, v5, :cond_14a
.line 31
iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v11, v7
add-int/2addr v3, v11
iput v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/16 v3, 0x14
.line 32
iput v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 33
iput-char v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
:goto_146
const/4 v3, 0x4
.line 34
iput v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-wide v1
.line 35
:cond_14a
iput v10, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-wide v3
.line 36
:cond_14d
iput v10, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-wide v3
.line 37
:cond_150
iput v10, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-wide v3
.end method
.method public final scanFieldDoubleArray(J)[D
.registers 21
move-object/from16 v0, p0
const/4 v1, 0x0
.line 1
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
.line 2
invoke-direct/range {p0 .. p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->matchFieldHash(J)I
move-result v2
const/4 v3, 0x0
if-nez v2, :cond_d
return-object v3
.line 3
:cond_d
iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v5, v2, 0x1
add-int/2addr v4, v2
.line 4
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v4, v2, :cond_19
const/16 v2, 0x1a
goto :goto_1f
:cond_19
iget-object v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 5
invoke-virtual {v2, v4}, Ljava/lang/String;->charAt(I)C
move-result v2
:goto_1f
const/16 v4, 0x5b
const/4 v7, -0x1
if-eq v2, v4, :cond_27
.line 6
iput v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-object v3
.line 7
:cond_27
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v4, v5, 0x1
add-int/2addr v2, v5
.line 8
iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v2, v5, :cond_33
const/16 v2, 0x1a
goto :goto_39
:cond_33
iget-object v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 9
invoke-virtual {v5, v2}, Ljava/lang/String;->charAt(I)C
move-result v2
:goto_39
const/16 v5, 0x10
.line 10
new-array v8, v5, [D
const/4 v9, 0x0
.line 11
:goto_3e
iget v10, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v10, v4
const/4 v11, 0x1
sub-int/2addr v10, v11
const/16 v12, 0x2d
if-ne v2, v12, :cond_49
const/4 v13, 0x1
goto :goto_4a
:cond_49
const/4 v13, 0x0
:goto_4a
if-eqz v13, :cond_5f
.line 12
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v14, v4, 0x1
add-int/2addr v2, v4
.line 13
iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v2, v4, :cond_58
const/16 v2, 0x1a
goto :goto_60
:cond_58
iget-object v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 14
invoke-virtual {v4, v2}, Ljava/lang/String;->charAt(I)C
move-result v2
goto :goto_60
:cond_5f
move v14, v4
:goto_60
const/16 v4, 0x30
if-lt v2, v4, :cond_21f
const/16 v15, 0x39
if-gt v2, v15, :cond_21f
add-int/lit8 v2, v2, -0x30
.line 15
:goto_6a
iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v16, v14, 0x1
add-int/2addr v6, v14
.line 16
iget v14, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v6, v14, :cond_76
const/16 v6, 0x1a
goto :goto_7c
:cond_76
iget-object v14, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 17
invoke-virtual {v14, v6}, Ljava/lang/String;->charAt(I)C
move-result v6
:goto_7c
if-lt v6, v4, :cond_88
if-gt v6, v15, :cond_88
mul-int/lit8 v2, v2, 0xa
add-int/lit8 v6, v6, -0x30
add-int/2addr v2, v6
move/from16 v14, v16
goto :goto_6a
:cond_88
const/16 v14, 0x2e
if-ne v6, v14, :cond_8e
const/4 v14, 0x1
goto :goto_8f
:cond_8e
const/4 v14, 0x0
:goto_8f
const/16 v5, 0xa
if-eqz v14, :cond_d4
.line 18
iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v14, v16, 0x1
add-int v6, v6, v16
.line 19
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v6, v1, :cond_a0
const/16 v6, 0x1a
goto :goto_a6
:cond_a0
iget-object v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 20
invoke-virtual {v1, v6}, Ljava/lang/String;->charAt(I)C
move-result v6
:goto_a6
if-lt v6, v4, :cond_d1
if-gt v6, v15, :cond_d1
mul-int/lit8 v2, v2, 0xa
add-int/lit8 v6, v6, -0x30
add-int/2addr v2, v6
const/16 v1, 0xa
.line 21
:goto_b1
iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v16, v14, 0x1
add-int/2addr v6, v14
.line 22
iget v14, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v6, v14, :cond_bd
const/16 v6, 0x1a
goto :goto_c3
:cond_bd
iget-object v14, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 23
invoke-virtual {v14, v6}, Ljava/lang/String;->charAt(I)C
move-result v6
:goto_c3
if-lt v6, v4, :cond_d5
if-gt v6, v15, :cond_d5
mul-int/lit8 v2, v2, 0xa
add-int/lit8 v6, v6, -0x30
add-int/2addr v2, v6
mul-int/lit8 v1, v1, 0xa
move/from16 v14, v16
goto :goto_b1
.line 24
:cond_d1
iput v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-object v3
:cond_d4
const/4 v1, 0x1
:cond_d5
const/16 v14, 0x65
if-eq v6, v14, :cond_e0
const/16 v14, 0x45
if-ne v6, v14, :cond_de
goto :goto_e0
:cond_de
const/4 v14, 0x0
goto :goto_e1
:cond_e0
:goto_e0
const/4 v14, 0x1
:goto_e1
if-eqz v14, :cond_12c
.line 25
iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v17, v16, 0x1
add-int v6, v6, v16
.line 26
iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v6, v3, :cond_f0
const/16 v6, 0x1a
goto :goto_f6
:cond_f0
iget-object v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 27
invoke-virtual {v3, v6}, Ljava/lang/String;->charAt(I)C
move-result v6
:goto_f6
const/16 v3, 0x2b
if-eq v6, v3, :cond_100
if-ne v6, v12, :cond_fd
goto :goto_100
:cond_fd
move/from16 v16, v17
goto :goto_116
.line 28
:cond_100
:goto_100
iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v6, v17, 0x1
add-int v3, v3, v17
.line 29
iget v12, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v3, v12, :cond_10d
:goto_10a
const/16 v3, 0x1a
goto :goto_113
:cond_10d
iget-object v12, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 30
invoke-virtual {v12, v3}, Ljava/lang/String;->charAt(I)C
move-result v3
:goto_113
move/from16 v16, v6
move v6, v3
:goto_116
if-lt v6, v4, :cond_12c
if-gt v6, v15, :cond_12c
.line 31
iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v6, v16, 0x1
add-int v3, v3, v16
.line 32
iget v12, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v3, v12, :cond_125
goto :goto_10a
:cond_125
iget-object v12, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 33
invoke-virtual {v12, v3}, Ljava/lang/String;->charAt(I)C
move-result v3
goto :goto_113
.line 34
:cond_12c
iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int v3, v3, v16
sub-int/2addr v3, v10
sub-int/2addr v3, v11
if-nez v14, :cond_143
if-ge v3, v5, :cond_143
int-to-double v2, v2
int-to-double v4, v1
.line 35
invoke-static {v2, v3}, Ljava/lang/Double;->isNaN(D)Z
invoke-static {v4, v5}, Ljava/lang/Double;->isNaN(D)Z
div-double/2addr v2, v4
if-eqz v13, :cond_14b
neg-double v2, v2
goto :goto_14b
.line 36
:cond_143
invoke-direct {v0, v10, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->subString(II)Ljava/lang/String;
move-result-object v1
.line 37
invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
move-result-wide v2
.line 38
:cond_14b
:goto_14b
array-length v1, v8
const/4 v4, 0x3
if-lt v9, v1, :cond_15b
.line 39
array-length v1, v8
mul-int/lit8 v1, v1, 0x3
div-int/lit8 v1, v1, 0x2
new-array v1, v1, [D
const/4 v5, 0x0
.line 40
invoke-static {v8, v5, v1, v5, v9}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
move-object v8, v1
:cond_15b
add-int/lit8 v1, v9, 0x1
.line 41
aput-wide v2, v8, v9
const/16 v2, 0x2c
if-ne v6, v2, :cond_17a
.line 42
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v3, v16, 0x1
add-int v2, v2, v16
.line 43
iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v2, v4, :cond_170
const/16 v6, 0x1a
goto :goto_176
:cond_170
iget-object v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 44
invoke-virtual {v4, v2}, Ljava/lang/String;->charAt(I)C
move-result v6
:goto_176
move/from16 v16, v3
goto/16 :goto_20f
:cond_17a
const/16 v3, 0x5d
if-ne v6, v3, :cond_20f
.line 45
iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v6, v16, 0x1
add-int v5, v5, v16
.line 46
iget v9, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v5, v9, :cond_18b
const/16 v5, 0x1a
goto :goto_191
:cond_18b
iget-object v9, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 47
invoke-virtual {v9, v5}, Ljava/lang/String;->charAt(I)C
move-result v5
.line 48
:goto_191
array-length v9, v8
if-eq v1, v9, :cond_19b
.line 49
new-array v9, v1, [D
const/4 v10, 0x0
.line 50
invoke-static {v8, v10, v9, v10, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
move-object v8, v9
:cond_19b
if-ne v5, v2, :cond_1ad
.line 51
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v6, v11
add-int/2addr v1, v6
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 52
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
.line 53
iput v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
const/16 v1, 0x10
.line 54
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
return-object v8
:cond_1ad
const/16 v1, 0x7d
if-ne v5, v1, :cond_20b
.line 55
iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v5, v6, 0x1
add-int/2addr v4, v6
.line 56
iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v4, v6, :cond_1bd
const/16 v6, 0x1a
goto :goto_1c3
:cond_1bd
iget-object v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 57
invoke-virtual {v6, v4}, Ljava/lang/String;->charAt(I)C
move-result v6
:goto_1c3
if-ne v6, v2, :cond_1d3
const/16 v2, 0x10
.line 58
iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 59
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v5, v11
add-int/2addr v1, v5
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 60
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto :goto_203
:cond_1d3
if-ne v6, v3, :cond_1e3
const/16 v1, 0xf
.line 61
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 62
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v5, v11
add-int/2addr v1, v5
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 63
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto :goto_203
:cond_1e3
if-ne v6, v1, :cond_1f3
const/16 v1, 0xd
.line 64
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 65
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v5, v11
add-int/2addr v1, v5
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 66
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto :goto_203
:cond_1f3
const/16 v3, 0x1a
if-ne v6, v3, :cond_207
.line 67
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v5, v11
add-int/2addr v1, v5
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/16 v1, 0x14
.line 68
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 69
iput-char v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
:goto_203
const/4 v1, 0x4
.line 70
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-object v8
.line 71
:cond_207
iput v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
const/4 v4, 0x0
return-object v4
:cond_20b
const/4 v4, 0x0
.line 72
iput v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-object v4
:cond_20f
:goto_20f
const/16 v2, 0x10
const/16 v3, 0x1a
const/4 v4, 0x0
const/4 v10, 0x0
move v9, v1
move-object v3, v4
move v2, v6
move/from16 v4, v16
const/4 v1, 0x0
const/16 v5, 0x10
goto/16 :goto_3e
:cond_21f
move-object v4, v3
.line 73
iput v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-object v4
.end method
.method public final scanFieldDoubleArray2(J)[[D
.registers 23
move-object/from16 v0, p0
const/4 v1, 0x0
.line 1
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
.line 2
invoke-direct/range {p0 .. p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->matchFieldHash(J)I
move-result v2
const/4 v3, 0x0
if-nez v2, :cond_d
return-object v3
.line 3
:cond_d
iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v5, v2, 0x1
add-int/2addr v4, v2
.line 4
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v4, v2, :cond_19
const/16 v2, 0x1a
goto :goto_1f
:cond_19
iget-object v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 5
invoke-virtual {v2, v4}, Ljava/lang/String;->charAt(I)C
move-result v2
:goto_1f
const/16 v4, 0x5b
const/4 v7, -0x1
if-eq v2, v4, :cond_27
.line 6
iput v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-object v3
.line 7
:cond_27
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v8, v5, 0x1
add-int/2addr v2, v5
.line 8
iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v2, v5, :cond_33
const/16 v2, 0x1a
goto :goto_39
:cond_33
iget-object v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 9
invoke-virtual {v5, v2}, Ljava/lang/String;->charAt(I)C
move-result v2
:goto_39
const/16 v5, 0x10
.line 10
new-array v9, v5, [[D
const/4 v10, 0x0
:goto_3e
if-ne v2, v4, :cond_29e
.line 11
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v11, v8, 0x1
add-int/2addr v2, v8
.line 12
iget v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v2, v8, :cond_4c
const/16 v2, 0x1a
goto :goto_52
:cond_4c
iget-object v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 13
invoke-virtual {v8, v2}, Ljava/lang/String;->charAt(I)C
move-result v2
.line 14
:goto_52
new-array v8, v5, [D
const/4 v12, 0x0
.line 15
:goto_55
iget v13, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v13, v11
const/4 v14, 0x1
sub-int/2addr v13, v14
const/16 v15, 0x2d
if-ne v2, v15, :cond_61
const/16 v16, 0x1
goto :goto_63
:cond_61
const/16 v16, 0x0
:goto_63
if-eqz v16, :cond_78
.line 16
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v17, v11, 0x1
add-int/2addr v2, v11
.line 17
iget v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v2, v11, :cond_71
const/16 v2, 0x1a
goto :goto_7a
:cond_71
iget-object v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 18
invoke-virtual {v11, v2}, Ljava/lang/String;->charAt(I)C
move-result v2
goto :goto_7a
:cond_78
move/from16 v17, v11
:goto_7a
const/16 v11, 0x30
if-lt v2, v11, :cond_29a
const/16 v4, 0x39
if-gt v2, v4, :cond_29a
add-int/lit8 v2, v2, -0x30
.line 19
:goto_84
iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v18, v17, 0x1
add-int v6, v6, v17
.line 20
iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v6, v5, :cond_91
const/16 v6, 0x1a
goto :goto_97
:cond_91
iget-object v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 21
invoke-virtual {v5, v6}, Ljava/lang/String;->charAt(I)C
move-result v6
:goto_97
if-lt v6, v11, :cond_a5
if-gt v6, v4, :cond_a5
mul-int/lit8 v2, v2, 0xa
add-int/lit8 v6, v6, -0x30
add-int/2addr v2, v6
move/from16 v17, v18
const/16 v5, 0x10
goto :goto_84
:cond_a5
const/16 v5, 0x2e
if-ne v6, v5, :cond_ea
.line 22
iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v6, v18, 0x1
add-int v5, v5, v18
.line 23
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v5, v1, :cond_b6
const/16 v1, 0x1a
goto :goto_bc
:cond_b6
iget-object v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 24
invoke-virtual {v1, v5}, Ljava/lang/String;->charAt(I)C
move-result v1
:goto_bc
if-lt v1, v11, :cond_e7
if-gt v1, v4, :cond_e7
mul-int/lit8 v2, v2, 0xa
add-int/lit8 v1, v1, -0x30
add-int/2addr v2, v1
const/16 v1, 0xa
.line 25
:goto_c7
iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v18, v6, 0x1
add-int/2addr v5, v6
.line 26
iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v5, v6, :cond_d3
const/16 v6, 0x1a
goto :goto_d9
:cond_d3
iget-object v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 27
invoke-virtual {v6, v5}, Ljava/lang/String;->charAt(I)C
move-result v6
:goto_d9
if-lt v6, v11, :cond_eb
if-gt v6, v4, :cond_eb
mul-int/lit8 v2, v2, 0xa
add-int/lit8 v6, v6, -0x30
add-int/2addr v2, v6
mul-int/lit8 v1, v1, 0xa
move/from16 v6, v18
goto :goto_c7
.line 28
:cond_e7
iput v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-object v3
:cond_ea
const/4 v1, 0x1
:cond_eb
const/16 v5, 0x65
if-eq v6, v5, :cond_f6
const/16 v5, 0x45
if-ne v6, v5, :cond_f4
goto :goto_f6
:cond_f4
const/4 v5, 0x0
goto :goto_f7
:cond_f6
:goto_f6
const/4 v5, 0x1
:goto_f7
if-eqz v5, :cond_142
.line 29
iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v19, v18, 0x1
add-int v6, v6, v18
.line 30
iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v6, v3, :cond_106
const/16 v6, 0x1a
goto :goto_10c
:cond_106
iget-object v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 31
invoke-virtual {v3, v6}, Ljava/lang/String;->charAt(I)C
move-result v6
:goto_10c
const/16 v3, 0x2b
if-eq v6, v3, :cond_116
if-ne v6, v15, :cond_113
goto :goto_116
:cond_113
move/from16 v18, v19
goto :goto_12c
.line 32
:cond_116
:goto_116
iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v6, v19, 0x1
add-int v3, v3, v19
.line 33
iget v15, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v3, v15, :cond_123
:goto_120
const/16 v3, 0x1a
goto :goto_129
:cond_123
iget-object v15, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 34
invoke-virtual {v15, v3}, Ljava/lang/String;->charAt(I)C
move-result v3
:goto_129
move/from16 v18, v6
move v6, v3
:goto_12c
if-lt v6, v11, :cond_142
if-gt v6, v4, :cond_142
.line 35
iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v6, v18, 0x1
add-int v3, v3, v18
.line 36
iget v15, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v3, v15, :cond_13b
goto :goto_120
:cond_13b
iget-object v15, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 37
invoke-virtual {v15, v3}, Ljava/lang/String;->charAt(I)C
move-result v3
goto :goto_129
.line 38
:cond_142
iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int v3, v3, v18
sub-int/2addr v3, v13
sub-int/2addr v3, v14
if-nez v5, :cond_15b
const/16 v4, 0xa
if-ge v3, v4, :cond_15b
int-to-double v2, v2
int-to-double v4, v1
.line 39
invoke-static {v2, v3}, Ljava/lang/Double;->isNaN(D)Z
invoke-static {v4, v5}, Ljava/lang/Double;->isNaN(D)Z
div-double/2addr v2, v4
if-eqz v16, :cond_163
neg-double v2, v2
goto :goto_163
.line 40
:cond_15b
invoke-direct {v0, v13, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->subString(II)Ljava/lang/String;
move-result-object v1
.line 41
invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
move-result-wide v2
.line 42
:cond_163
:goto_163
array-length v1, v8
const/4 v4, 0x3
if-lt v12, v1, :cond_173
.line 43
array-length v1, v8
mul-int/lit8 v1, v1, 0x3
div-int/lit8 v1, v1, 0x2
new-array v1, v1, [D
const/4 v5, 0x0
.line 44
invoke-static {v8, v5, v1, v5, v12}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
move-object v8, v1
:cond_173
add-int/lit8 v1, v12, 0x1
.line 45
aput-wide v2, v8, v12
const/16 v2, 0x2c
if-ne v6, v2, :cond_199
.line 46
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v3, v18, 0x1
add-int v2, v2, v18
.line 47
iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v2, v4, :cond_188
const/16 v6, 0x1a
goto :goto_18e
:cond_188
iget-object v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 48
invoke-virtual {v4, v2}, Ljava/lang/String;->charAt(I)C
move-result v6
:goto_18e
move/from16 v18, v3
move v2, v6
const/16 v3, 0x1a
const/16 v4, 0x10
const/4 v11, 0x0
const/4 v12, 0x0
goto/16 :goto_28f
:cond_199
const/16 v3, 0x5d
if-ne v6, v3, :cond_288
.line 49
iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v6, v18, 0x1
add-int v5, v5, v18
.line 50
iget v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v5, v11, :cond_1aa
const/16 v5, 0x1a
goto :goto_1b0
:cond_1aa
iget-object v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 51
invoke-virtual {v11, v5}, Ljava/lang/String;->charAt(I)C
move-result v5
.line 52
:goto_1b0
array-length v11, v8
if-eq v1, v11, :cond_1bb
.line 53
new-array v11, v1, [D
const/4 v12, 0x0
.line 54
invoke-static {v8, v12, v11, v12, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
move-object v8, v11
goto :goto_1bc
:cond_1bb
const/4 v12, 0x0
.line 55
:goto_1bc
array-length v11, v9
if-lt v10, v11, :cond_1c9
.line 56
array-length v9, v9
mul-int/lit8 v9, v9, 0x3
div-int/lit8 v9, v9, 0x2
new-array v9, v9, [[D
.line 57
invoke-static {v8, v12, v9, v12, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
:cond_1c9
add-int/lit8 v1, v10, 0x1
.line 58
aput-object v8, v9, v10
if-ne v5, v2, :cond_1eb
.line 59
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v3, v6, 0x1
add-int/2addr v2, v6
.line 60
iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v2, v4, :cond_1db
const/16 v6, 0x1a
goto :goto_1e1
:cond_1db
iget-object v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 61
invoke-virtual {v4, v2}, Ljava/lang/String;->charAt(I)C
move-result v6
:goto_1e1
move v8, v3
move v2, v6
const/16 v3, 0x1a
const/16 v4, 0x10
const/4 v11, 0x0
const/4 v12, 0x0
goto/16 :goto_27f
:cond_1eb
if-ne v5, v3, :cond_277
.line 62
iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v8, v6, 0x1
add-int/2addr v5, v6
.line 63
iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v5, v6, :cond_1f9
const/16 v6, 0x1a
goto :goto_1ff
:cond_1f9
iget-object v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 64
invoke-virtual {v6, v5}, Ljava/lang/String;->charAt(I)C
move-result v6
.line 65
:goto_1ff
array-length v5, v9
if-eq v1, v5, :cond_209
.line 66
new-array v5, v1, [[D
const/4 v11, 0x0
.line 67
invoke-static {v9, v11, v5, v11, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
goto :goto_20a
:cond_209
move-object v5, v9
:goto_20a
if-ne v6, v2, :cond_21c
.line 68
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v8, v14
add-int/2addr v1, v8
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 69
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
.line 70
iput v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
const/16 v4, 0x10
.line 71
iput v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
return-object v5
:cond_21c
const/16 v4, 0x10
const/16 v1, 0x7d
if-ne v6, v1, :cond_273
.line 72
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v6, v8, 0x1
add-int/2addr v1, v8
invoke-virtual {v0, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v1
if-ne v1, v2, :cond_239
.line 73
iput v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 74
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v6, v14
add-int/2addr v1, v6
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 75
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto :goto_26b
:cond_239
if-ne v1, v3, :cond_249
const/16 v1, 0xf
.line 76
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 77
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v6, v14
add-int/2addr v1, v6
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 78
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto :goto_26b
:cond_249
const/16 v2, 0x7d
if-ne v1, v2, :cond_25b
const/16 v1, 0xd
.line 79
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 80
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v6, v14
add-int/2addr v1, v6
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 81
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto :goto_26b
:cond_25b
const/16 v3, 0x1a
if-ne v1, v3, :cond_26f
.line 82
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v6, v14
add-int/2addr v1, v6
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/16 v1, 0x14
.line 83
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 84
iput-char v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
:goto_26b
const/4 v1, 0x4
.line 85
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-object v5
.line 86
:cond_26f
iput v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
const/4 v12, 0x0
return-object v12
:cond_273
const/4 v12, 0x0
.line 87
iput v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-object v12
:cond_277
const/16 v3, 0x1a
const/16 v4, 0x10
const/4 v11, 0x0
const/4 v12, 0x0
move v2, v5
move v8, v6
:goto_27f
move v10, v1
move-object v3, v12
const/4 v1, 0x0
const/16 v4, 0x5b
const/16 v5, 0x10
goto/16 :goto_3e
:cond_288
const/16 v3, 0x1a
const/16 v4, 0x10
const/4 v11, 0x0
const/4 v12, 0x0
move v2, v6
:goto_28f
move-object v3, v12
move/from16 v11, v18
const/16 v4, 0x5b
const/16 v5, 0x10
move v12, v1
const/4 v1, 0x0
goto/16 :goto_55
:cond_29a
move-object v12, v3
.line 88
iput v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-object v12
:cond_29e
move-object v12, v3
goto/16 :goto_3e
.end method
.method public final scanFieldFloat(J)F
.registers 20
move-object/from16 v0, p0
const/4 v1, 0x0
.line 1
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
.line 2
invoke-direct/range {p0 .. p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->matchFieldHash(J)I
move-result v2
const/4 v3, 0x0
if-nez v2, :cond_d
return v3
.line 3
:cond_d
iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v5, v2, 0x1
add-int/2addr v4, v2
invoke-virtual {v0, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v2
.line 4
iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v4, v5
const/4 v6, 0x1
sub-int/2addr v4, v6
const/16 v7, 0x2d
if-ne v2, v7, :cond_21
const/4 v8, 0x1
goto :goto_22
:cond_21
const/4 v8, 0x0
:goto_22
if-eqz v8, :cond_2e
.line 5
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v9, v5, 0x1
add-int/2addr v2, v5
invoke-virtual {v0, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v2
move v5, v9
:cond_2e
const/4 v9, -0x1
const/16 v10, 0x30
if-lt v2, v10, :cond_144
const/16 v11, 0x39
if-gt v2, v11, :cond_144
sub-int/2addr v2, v10
.line 6
:goto_38
iget v12, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v13, v5, 0x1
add-int/2addr v12, v5
invoke-virtual {v0, v12}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v5
if-lt v5, v10, :cond_4c
if-gt v5, v11, :cond_4c
mul-int/lit8 v2, v2, 0xa
add-int/lit8 v5, v5, -0x30
add-int/2addr v2, v5
move v5, v13
goto :goto_38
:cond_4c
const/16 v12, 0x2e
if-ne v5, v12, :cond_52
const/4 v12, 0x1
goto :goto_53
:cond_52
const/4 v12, 0x0
:goto_53
const/16 v14, 0xa
if-eqz v12, :cond_8a
.line 7
iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v12, v13, 0x1
add-int/2addr v5, v13
invoke-virtual {v0, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v5
if-lt v5, v10, :cond_87
if-gt v5, v11, :cond_87
mul-int/lit8 v2, v2, 0xa
sub-int/2addr v5, v10
add-int/2addr v2, v5
const/16 v5, 0xa
.line 8
:goto_6a
iget v13, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v15, v12, 0x1
add-int/2addr v13, v12
invoke-virtual {v0, v13}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v12
if-lt v12, v10, :cond_80
if-gt v12, v11, :cond_80
mul-int/lit8 v2, v2, 0xa
add-int/lit8 v12, v12, -0x30
add-int/2addr v2, v12
mul-int/lit8 v5, v5, 0xa
move v12, v15
goto :goto_6a
:cond_80
move v13, v15
move/from16 v16, v12
move v12, v5
move/from16 v5, v16
goto :goto_8b
.line 9
:cond_87
iput v9, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return v3
:cond_8a
const/4 v12, 0x1
:goto_8b
const/16 v15, 0x65
if-eq v5, v15, :cond_93
const/16 v15, 0x45
if-ne v5, v15, :cond_94
:cond_93
const/4 v1, 0x1
:cond_94
if-eqz v1, :cond_c0
.line 10
iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v15, v13, 0x1
add-int/2addr v5, v13
invoke-virtual {v0, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v5
const/16 v13, 0x2b
if-eq v5, v13, :cond_a8
if-ne v5, v7, :cond_a6
goto :goto_a8
:cond_a6
move v13, v15
goto :goto_b2
.line 11
:cond_a8
:goto_a8
iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v7, v15, 0x1
add-int/2addr v5, v15
invoke-virtual {v0, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v5
:goto_b1
move v13, v7
:goto_b2
if-lt v5, v10, :cond_c0
if-gt v5, v11, :cond_c0
.line 12
iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v7, v13, 0x1
add-int/2addr v5, v13
invoke-virtual {v0, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v5
goto :goto_b1
.line 13
:cond_c0
iget v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v7, v13
sub-int/2addr v7, v4
sub-int/2addr v7, v6
if-nez v1, :cond_d0
if-ge v7, v14, :cond_d0
int-to-float v1, v2
int-to-float v2, v12
div-float/2addr v1, v2
if-eqz v8, :cond_d8
neg-float v1, v1
goto :goto_d8
.line 14
:cond_d0
invoke-direct {v0, v4, v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->subString(II)Ljava/lang/String;
move-result-object v1
.line 15
invoke-static {v1}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F
move-result v1
:cond_d8
:goto_d8
const/16 v2, 0x10
const/16 v4, 0x2c
if-ne v5, v4, :cond_ed
.line 16
iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v13, v6
add-int/2addr v3, v13
iput v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 17
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
const/4 v3, 0x3
.line 18
iput v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
.line 19
iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
return v1
:cond_ed
const/16 v7, 0x7d
if-ne v5, v7, :cond_141
.line 20
iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v8, v13, 0x1
add-int/2addr v5, v13
invoke-virtual {v0, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v5
if-ne v5, v4, :cond_108
.line 21
iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 22
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v8, v6
add-int/2addr v2, v8
iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 23
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto :goto_13a
:cond_108
const/16 v2, 0x5d
if-ne v5, v2, :cond_11a
const/16 v2, 0xf
.line 24
iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 25
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v8, v6
add-int/2addr v2, v8
iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 26
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto :goto_13a
:cond_11a
if-ne v5, v7, :cond_12a
const/16 v2, 0xd
.line 27
iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 28
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v8, v6
add-int/2addr v2, v8
iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 29
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto :goto_13a
:cond_12a
const/16 v2, 0x1a
if-ne v5, v2, :cond_13e
.line 30
iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v8, v6
add-int/2addr v3, v8
iput v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/16 v3, 0x14
.line 31
iput v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 32
iput-char v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
:goto_13a
const/4 v2, 0x4
.line 33
iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return v1
.line 34
:cond_13e
iput v9, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return v3
.line 35
:cond_141
iput v9, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return v3
.line 36
:cond_144
iput v9, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return v3
.end method
.method public final scanFieldFloatArray(J)[F
.registers 21
move-object/from16 v0, p0
const/4 v1, 0x0
.line 1
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
.line 2
invoke-direct/range {p0 .. p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->matchFieldHash(J)I
move-result v2
const/4 v3, 0x0
if-nez v2, :cond_d
return-object v3
.line 3
:cond_d
iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v5, v2, 0x1
add-int/2addr v4, v2
.line 4
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v4, v2, :cond_19
const/16 v2, 0x1a
goto :goto_1f
:cond_19
iget-object v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 5
invoke-virtual {v2, v4}, Ljava/lang/String;->charAt(I)C
move-result v2
:goto_1f
const/16 v4, 0x5b
const/4 v7, -0x1
if-eq v2, v4, :cond_27
.line 6
iput v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-object v3
.line 7
:cond_27
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v4, v5, 0x1
add-int/2addr v2, v5
.line 8
iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v2, v5, :cond_33
const/16 v2, 0x1a
goto :goto_39
:cond_33
iget-object v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 9
invoke-virtual {v5, v2}, Ljava/lang/String;->charAt(I)C
move-result v2
:goto_39
const/16 v5, 0x10
.line 10
new-array v8, v5, [F
const/4 v9, 0x0
.line 11
:goto_3e
iget v10, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v10, v4
const/4 v11, 0x1
sub-int/2addr v10, v11
const/16 v12, 0x2d
if-ne v2, v12, :cond_49
const/4 v13, 0x1
goto :goto_4a
:cond_49
const/4 v13, 0x0
:goto_4a
if-eqz v13, :cond_5f
.line 12
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v14, v4, 0x1
add-int/2addr v2, v4
.line 13
iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v2, v4, :cond_58
const/16 v2, 0x1a
goto :goto_60
:cond_58
iget-object v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 14
invoke-virtual {v4, v2}, Ljava/lang/String;->charAt(I)C
move-result v2
goto :goto_60
:cond_5f
move v14, v4
:goto_60
const/16 v4, 0x30
if-lt v2, v4, :cond_219
const/16 v15, 0x39
if-gt v2, v15, :cond_219
add-int/lit8 v2, v2, -0x30
.line 15
:goto_6a
iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v16, v14, 0x1
add-int/2addr v6, v14
.line 16
iget v14, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v6, v14, :cond_76
const/16 v6, 0x1a
goto :goto_7c
:cond_76
iget-object v14, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 17
invoke-virtual {v14, v6}, Ljava/lang/String;->charAt(I)C
move-result v6
:goto_7c
if-lt v6, v4, :cond_88
if-gt v6, v15, :cond_88
mul-int/lit8 v2, v2, 0xa
add-int/lit8 v6, v6, -0x30
add-int/2addr v2, v6
move/from16 v14, v16
goto :goto_6a
:cond_88
const/16 v14, 0x2e
if-ne v6, v14, :cond_8e
const/4 v14, 0x1
goto :goto_8f
:cond_8e
const/4 v14, 0x0
:goto_8f
const/16 v5, 0xa
if-eqz v14, :cond_d4
.line 18
iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v14, v16, 0x1
add-int v6, v6, v16
.line 19
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v6, v1, :cond_a0
const/16 v6, 0x1a
goto :goto_a6
:cond_a0
iget-object v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 20
invoke-virtual {v1, v6}, Ljava/lang/String;->charAt(I)C
move-result v6
:goto_a6
if-lt v6, v4, :cond_d1
if-gt v6, v15, :cond_d1
mul-int/lit8 v2, v2, 0xa
add-int/lit8 v6, v6, -0x30
add-int/2addr v2, v6
const/16 v1, 0xa
.line 21
:goto_b1
iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v16, v14, 0x1
add-int/2addr v6, v14
.line 22
iget v14, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v6, v14, :cond_bd
const/16 v6, 0x1a
goto :goto_c3
:cond_bd
iget-object v14, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 23
invoke-virtual {v14, v6}, Ljava/lang/String;->charAt(I)C
move-result v6
:goto_c3
if-lt v6, v4, :cond_d5
if-gt v6, v15, :cond_d5
mul-int/lit8 v2, v2, 0xa
add-int/lit8 v6, v6, -0x30
add-int/2addr v2, v6
mul-int/lit8 v1, v1, 0xa
move/from16 v14, v16
goto :goto_b1
.line 24
:cond_d1
iput v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-object v3
:cond_d4
const/4 v1, 0x1
:cond_d5
const/16 v14, 0x65
if-eq v6, v14, :cond_e0
const/16 v14, 0x45
if-ne v6, v14, :cond_de
goto :goto_e0
:cond_de
const/4 v14, 0x0
goto :goto_e1
:cond_e0
:goto_e0
const/4 v14, 0x1
:goto_e1
if-eqz v14, :cond_12c
.line 25
iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v17, v16, 0x1
add-int v6, v6, v16
.line 26
iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v6, v3, :cond_f0
const/16 v6, 0x1a
goto :goto_f6
:cond_f0
iget-object v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 27
invoke-virtual {v3, v6}, Ljava/lang/String;->charAt(I)C
move-result v6
:goto_f6
const/16 v3, 0x2b
if-eq v6, v3, :cond_100
if-ne v6, v12, :cond_fd
goto :goto_100
:cond_fd
move/from16 v16, v17
goto :goto_116
.line 28
:cond_100
:goto_100
iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v6, v17, 0x1
add-int v3, v3, v17
.line 29
iget v12, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v3, v12, :cond_10d
:goto_10a
const/16 v3, 0x1a
goto :goto_113
:cond_10d
iget-object v12, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 30
invoke-virtual {v12, v3}, Ljava/lang/String;->charAt(I)C
move-result v3
:goto_113
move/from16 v16, v6
move v6, v3
:goto_116
if-lt v6, v4, :cond_12c
if-gt v6, v15, :cond_12c
.line 31
iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v6, v16, 0x1
add-int v3, v3, v16
.line 32
iget v12, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v3, v12, :cond_125
goto :goto_10a
:cond_125
iget-object v12, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 33
invoke-virtual {v12, v3}, Ljava/lang/String;->charAt(I)C
move-result v3
goto :goto_113
.line 34
:cond_12c
iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int v3, v3, v16
sub-int/2addr v3, v10
sub-int/2addr v3, v11
if-nez v14, :cond_13d
if-ge v3, v5, :cond_13d
int-to-float v2, v2
int-to-float v1, v1
div-float/2addr v2, v1
if-eqz v13, :cond_145
neg-float v2, v2
goto :goto_145
.line 35
:cond_13d
invoke-direct {v0, v10, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->subString(II)Ljava/lang/String;
move-result-object v1
.line 36
invoke-static {v1}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F
move-result v2
.line 37
:cond_145
:goto_145
array-length v1, v8
const/4 v3, 0x3
if-lt v9, v1, :cond_155
.line 38
array-length v1, v8
mul-int/lit8 v1, v1, 0x3
div-int/lit8 v1, v1, 0x2
new-array v1, v1, [F
const/4 v4, 0x0
.line 39
invoke-static {v8, v4, v1, v4, v9}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
move-object v8, v1
:cond_155
add-int/lit8 v1, v9, 0x1
.line 40
aput v2, v8, v9
const/16 v2, 0x2c
if-ne v6, v2, :cond_174
.line 41
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v3, v16, 0x1
add-int v2, v2, v16
.line 42
iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v2, v4, :cond_16a
const/16 v6, 0x1a
goto :goto_170
:cond_16a
iget-object v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 43
invoke-virtual {v4, v2}, Ljava/lang/String;->charAt(I)C
move-result v6
:goto_170
move/from16 v16, v3
goto/16 :goto_209
:cond_174
const/16 v4, 0x5d
if-ne v6, v4, :cond_209
.line 44
iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v6, v16, 0x1
add-int v5, v5, v16
.line 45
iget v9, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v5, v9, :cond_185
const/16 v5, 0x1a
goto :goto_18b
:cond_185
iget-object v9, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 46
invoke-virtual {v9, v5}, Ljava/lang/String;->charAt(I)C
move-result v5
.line 47
:goto_18b
array-length v9, v8
if-eq v1, v9, :cond_195
.line 48
new-array v9, v1, [F
const/4 v10, 0x0
.line 49
invoke-static {v8, v10, v9, v10, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
move-object v8, v9
:cond_195
if-ne v5, v2, :cond_1a7
.line 50
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v6, v11
add-int/2addr v1, v6
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 51
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
.line 52
iput v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
const/16 v1, 0x10
.line 53
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
return-object v8
:cond_1a7
const/16 v1, 0x7d
if-ne v5, v1, :cond_205
.line 54
iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v5, v6, 0x1
add-int/2addr v3, v6
.line 55
iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v3, v6, :cond_1b7
const/16 v6, 0x1a
goto :goto_1bd
:cond_1b7
iget-object v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 56
invoke-virtual {v6, v3}, Ljava/lang/String;->charAt(I)C
move-result v6
:goto_1bd
if-ne v6, v2, :cond_1cd
const/16 v2, 0x10
.line 57
iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 58
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v5, v11
add-int/2addr v1, v5
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 59
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto :goto_1fd
:cond_1cd
if-ne v6, v4, :cond_1dd
const/16 v1, 0xf
.line 60
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 61
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v5, v11
add-int/2addr v1, v5
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 62
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto :goto_1fd
:cond_1dd
if-ne v6, v1, :cond_1ed
const/16 v1, 0xd
.line 63
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 64
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v5, v11
add-int/2addr v1, v5
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 65
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto :goto_1fd
:cond_1ed
const/16 v3, 0x1a
if-ne v6, v3, :cond_201
.line 66
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v5, v11
add-int/2addr v1, v5
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/16 v1, 0x14
.line 67
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 68
iput-char v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
:goto_1fd
const/4 v1, 0x4
.line 69
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-object v8
.line 70
:cond_201
iput v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
const/4 v4, 0x0
return-object v4
:cond_205
const/4 v4, 0x0
.line 71
iput v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-object v4
:cond_209
:goto_209
const/16 v2, 0x10
const/16 v3, 0x1a
const/4 v4, 0x0
const/4 v10, 0x0
move v9, v1
move-object v3, v4
move v2, v6
move/from16 v4, v16
const/4 v1, 0x0
const/16 v5, 0x10
goto/16 :goto_3e
:cond_219
move-object v4, v3
.line 72
iput v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-object v4
.end method
.method public final scanFieldFloatArray2(J)[[F
.registers 23
move-object/from16 v0, p0
const/4 v1, 0x0
.line 1
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
.line 2
invoke-direct/range {p0 .. p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->matchFieldHash(J)I
move-result v2
const/4 v3, 0x0
if-nez v2, :cond_d
return-object v3
.line 3
:cond_d
iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v5, v2, 0x1
add-int/2addr v4, v2
.line 4
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v4, v2, :cond_19
const/16 v2, 0x1a
goto :goto_1f
:cond_19
iget-object v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 5
invoke-virtual {v2, v4}, Ljava/lang/String;->charAt(I)C
move-result v2
:goto_1f
const/16 v4, 0x5b
const/4 v7, -0x1
if-eq v2, v4, :cond_27
.line 6
iput v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-object v3
.line 7
:cond_27
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v8, v5, 0x1
add-int/2addr v2, v5
.line 8
iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v2, v5, :cond_33
const/16 v2, 0x1a
goto :goto_39
:cond_33
iget-object v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 9
invoke-virtual {v5, v2}, Ljava/lang/String;->charAt(I)C
move-result v2
:goto_39
const/16 v5, 0x10
.line 10
new-array v9, v5, [[F
const/4 v10, 0x0
:cond_3e
:goto_3e
nop
if-ne v2, v4, :cond_3e
.line 11
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v11, v8, 0x1
add-int/2addr v2, v8
.line 12
iget v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v2, v8, :cond_4d
const/16 v2, 0x1a
goto :goto_53
:cond_4d
iget-object v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 13
invoke-virtual {v8, v2}, Ljava/lang/String;->charAt(I)C
move-result v2
.line 14
:goto_53
new-array v8, v5, [F
const/4 v12, 0x0
.line 15
:goto_56
iget v13, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v13, v11
const/4 v14, 0x1
sub-int/2addr v13, v14
const/16 v15, 0x2d
if-ne v2, v15, :cond_62
const/16 v16, 0x1
goto :goto_64
:cond_62
const/16 v16, 0x0
:goto_64
if-eqz v16, :cond_79
.line 16
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v17, v11, 0x1
add-int/2addr v2, v11
.line 17
iget v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v2, v11, :cond_72
const/16 v2, 0x1a
goto :goto_7b
:cond_72
iget-object v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 18
invoke-virtual {v11, v2}, Ljava/lang/String;->charAt(I)C
move-result v2
goto :goto_7b
:cond_79
move/from16 v17, v11
:goto_7b
const/16 v11, 0x30
if-lt v2, v11, :cond_295
const/16 v4, 0x39
if-gt v2, v4, :cond_295
add-int/lit8 v2, v2, -0x30
.line 19
:goto_85
iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v18, v17, 0x1
add-int v6, v6, v17
.line 20
iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v6, v5, :cond_92
const/16 v6, 0x1a
goto :goto_98
:cond_92
iget-object v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 21
invoke-virtual {v5, v6}, Ljava/lang/String;->charAt(I)C
move-result v6
:goto_98
if-lt v6, v11, :cond_a6
if-gt v6, v4, :cond_a6
mul-int/lit8 v2, v2, 0xa
add-int/lit8 v6, v6, -0x30
add-int/2addr v2, v6
move/from16 v17, v18
const/16 v5, 0x10
goto :goto_85
:cond_a6
const/16 v5, 0x2e
if-ne v6, v5, :cond_eb
.line 22
iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v6, v18, 0x1
add-int v5, v5, v18
.line 23
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v5, v1, :cond_b7
const/16 v1, 0x1a
goto :goto_bd
:cond_b7
iget-object v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 24
invoke-virtual {v1, v5}, Ljava/lang/String;->charAt(I)C
move-result v1
:goto_bd
if-lt v1, v11, :cond_e8
if-gt v1, v4, :cond_e8
mul-int/lit8 v2, v2, 0xa
add-int/lit8 v1, v1, -0x30
add-int/2addr v2, v1
const/16 v1, 0xa
.line 25
:goto_c8
iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v18, v6, 0x1
add-int/2addr v5, v6
.line 26
iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v5, v6, :cond_d4
const/16 v6, 0x1a
goto :goto_da
:cond_d4
iget-object v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 27
invoke-virtual {v6, v5}, Ljava/lang/String;->charAt(I)C
move-result v6
:goto_da
if-lt v6, v11, :cond_ec
if-gt v6, v4, :cond_ec
mul-int/lit8 v2, v2, 0xa
add-int/lit8 v6, v6, -0x30
add-int/2addr v2, v6
mul-int/lit8 v1, v1, 0xa
move/from16 v6, v18
goto :goto_c8
.line 28
:cond_e8
iput v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-object v3
:cond_eb
const/4 v1, 0x1
:cond_ec
const/16 v5, 0x65
if-eq v6, v5, :cond_f7
const/16 v5, 0x45
if-ne v6, v5, :cond_f5
goto :goto_f7
:cond_f5
const/4 v5, 0x0
goto :goto_f8
:cond_f7
:goto_f7
const/4 v5, 0x1
:goto_f8
if-eqz v5, :cond_143
.line 29
iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v19, v18, 0x1
add-int v6, v6, v18
.line 30
iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v6, v3, :cond_107
const/16 v6, 0x1a
goto :goto_10d
:cond_107
iget-object v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 31
invoke-virtual {v3, v6}, Ljava/lang/String;->charAt(I)C
move-result v6
:goto_10d
const/16 v3, 0x2b
if-eq v6, v3, :cond_117
if-ne v6, v15, :cond_114
goto :goto_117
:cond_114
move/from16 v18, v19
goto :goto_12d
.line 32
:cond_117
:goto_117
iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v6, v19, 0x1
add-int v3, v3, v19
.line 33
iget v15, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v3, v15, :cond_124
:goto_121
const/16 v3, 0x1a
goto :goto_12a
:cond_124
iget-object v15, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 34
invoke-virtual {v15, v3}, Ljava/lang/String;->charAt(I)C
move-result v3
:goto_12a
move/from16 v18, v6
move v6, v3
:goto_12d
if-lt v6, v11, :cond_143
if-gt v6, v4, :cond_143
.line 35
iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v6, v18, 0x1
add-int v3, v3, v18
.line 36
iget v15, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v3, v15, :cond_13c
goto :goto_121
:cond_13c
iget-object v15, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 37
invoke-virtual {v15, v3}, Ljava/lang/String;->charAt(I)C
move-result v3
goto :goto_12a
.line 38
:cond_143
iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int v3, v3, v18
sub-int/2addr v3, v13
sub-int/2addr v3, v14
if-nez v5, :cond_156
const/16 v4, 0xa
if-ge v3, v4, :cond_156
int-to-float v2, v2
int-to-float v1, v1
div-float/2addr v2, v1
if-eqz v16, :cond_15e
neg-float v2, v2
goto :goto_15e
.line 39
:cond_156
invoke-direct {v0, v13, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->subString(II)Ljava/lang/String;
move-result-object v1
.line 40
invoke-static {v1}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F
move-result v2
.line 41
:cond_15e
:goto_15e
array-length v1, v8
const/4 v3, 0x3
if-lt v12, v1, :cond_16e
.line 42
array-length v1, v8
mul-int/lit8 v1, v1, 0x3
div-int/lit8 v1, v1, 0x2
new-array v1, v1, [F
const/4 v4, 0x0
.line 43
invoke-static {v8, v4, v1, v4, v12}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
move-object v8, v1
:cond_16e
add-int/lit8 v1, v12, 0x1
.line 44
aput v2, v8, v12
const/16 v2, 0x2c
if-ne v6, v2, :cond_194
.line 45
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v3, v18, 0x1
add-int v2, v2, v18
.line 46
iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v2, v4, :cond_183
const/16 v6, 0x1a
goto :goto_189
:cond_183
iget-object v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 47
invoke-virtual {v4, v2}, Ljava/lang/String;->charAt(I)C
move-result v6
:goto_189
move/from16 v18, v3
move v2, v6
const/16 v3, 0x10
const/16 v4, 0x1a
const/4 v11, 0x0
const/4 v12, 0x0
goto/16 :goto_28a
:cond_194
const/16 v4, 0x5d
if-ne v6, v4, :cond_283
.line 48
iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v6, v18, 0x1
add-int v5, v5, v18
.line 49
iget v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v5, v11, :cond_1a5
const/16 v5, 0x1a
goto :goto_1ab
:cond_1a5
iget-object v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 50
invoke-virtual {v11, v5}, Ljava/lang/String;->charAt(I)C
move-result v5
.line 51
:goto_1ab
array-length v11, v8
if-eq v1, v11, :cond_1b6
.line 52
new-array v11, v1, [F
const/4 v12, 0x0
.line 53
invoke-static {v8, v12, v11, v12, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
move-object v8, v11
goto :goto_1b7
:cond_1b6
const/4 v12, 0x0
.line 54
:goto_1b7
array-length v11, v9
if-lt v10, v11, :cond_1c4
.line 55
array-length v9, v9
mul-int/lit8 v9, v9, 0x3
div-int/lit8 v9, v9, 0x2
new-array v9, v9, [[F
.line 56
invoke-static {v8, v12, v9, v12, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
:cond_1c4
add-int/lit8 v1, v10, 0x1
.line 57
aput-object v8, v9, v10
if-ne v5, v2, :cond_1e6
.line 58
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v3, v6, 0x1
add-int/2addr v2, v6
.line 59
iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v2, v4, :cond_1d6
const/16 v6, 0x1a
goto :goto_1dc
:cond_1d6
iget-object v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 60
invoke-virtual {v4, v2}, Ljava/lang/String;->charAt(I)C
move-result v6
:goto_1dc
move v8, v3
move v2, v6
const/16 v3, 0x10
const/16 v4, 0x1a
const/4 v11, 0x0
const/4 v12, 0x0
goto/16 :goto_27a
:cond_1e6
if-ne v5, v4, :cond_272
.line 61
iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v8, v6, 0x1
add-int/2addr v5, v6
.line 62
iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v5, v6, :cond_1f4
const/16 v6, 0x1a
goto :goto_1fa
:cond_1f4
iget-object v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 63
invoke-virtual {v6, v5}, Ljava/lang/String;->charAt(I)C
move-result v6
.line 64
:goto_1fa
array-length v5, v9
if-eq v1, v5, :cond_204
.line 65
new-array v5, v1, [[F
const/4 v11, 0x0
.line 66
invoke-static {v9, v11, v5, v11, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
goto :goto_205
:cond_204
move-object v5, v9
:goto_205
if-ne v6, v2, :cond_217
.line 67
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v8, v14
add-int/2addr v1, v8
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 68
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
.line 69
iput v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
const/16 v3, 0x10
.line 70
iput v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
return-object v5
:cond_217
const/16 v3, 0x10
const/16 v1, 0x7d
if-ne v6, v1, :cond_26e
.line 71
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v6, v8, 0x1
add-int/2addr v1, v8
invoke-virtual {v0, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v1
if-ne v1, v2, :cond_234
.line 72
iput v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 73
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v6, v14
add-int/2addr v1, v6
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 74
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto :goto_266
:cond_234
if-ne v1, v4, :cond_244
const/16 v1, 0xf
.line 75
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 76
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v6, v14
add-int/2addr v1, v6
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 77
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto :goto_266
:cond_244
const/16 v2, 0x7d
if-ne v1, v2, :cond_256
const/16 v1, 0xd
.line 78
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 79
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v6, v14
add-int/2addr v1, v6
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 80
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto :goto_266
:cond_256
const/16 v4, 0x1a
if-ne v1, v4, :cond_26a
.line 81
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v6, v14
add-int/2addr v1, v6
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/16 v1, 0x14
.line 82
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 83
iput-char v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
:goto_266
const/4 v1, 0x4
.line 84
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-object v5
.line 85
:cond_26a
iput v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
const/4 v12, 0x0
return-object v12
:cond_26e
const/4 v12, 0x0
.line 86
iput v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-object v12
:cond_272
const/16 v3, 0x10
const/16 v4, 0x1a
const/4 v11, 0x0
const/4 v12, 0x0
move v2, v5
move v8, v6
:goto_27a
move v10, v1
move-object v3, v12
const/4 v1, 0x0
const/16 v4, 0x5b
const/16 v5, 0x10
goto/16 :goto_3e
:cond_283
const/16 v3, 0x10
const/16 v4, 0x1a
const/4 v11, 0x0
const/4 v12, 0x0
move v2, v6
:goto_28a
move-object v3, v12
move/from16 v11, v18
const/16 v4, 0x5b
const/16 v5, 0x10
move v12, v1
const/4 v1, 0x0
goto/16 :goto_56
:cond_295
move-object v12, v3
.line 87
iput v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-object v12
.end method
.method public scanFieldInt(J)I
.registers 14
const/4 v0, 0x0
.line 1
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
.line 2
invoke-direct {p0, p1, p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->matchFieldHash(J)I
move-result p1
if-nez p1, :cond_a
return v0
.line 3
:cond_a
iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v1, p1, 0x1
add-int/2addr p2, p1
.line 4
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
const/16 v2, 0x1a
if-lt p2, p1, :cond_18
const/16 p1, 0x1a
goto :goto_1e
:cond_18
iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 5
invoke-virtual {p1, p2}, Ljava/lang/String;->charAt(I)C
move-result p1
:goto_1e
const/16 p2, 0x22
const/4 v3, 0x1
if-ne p1, p2, :cond_25
const/4 v4, 0x1
goto :goto_26
:cond_25
const/4 v4, 0x0
:goto_26
if-eqz v4, :cond_3c
.line 6
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v4, v1, 0x1
add-int/2addr p1, v1
.line 7
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p1, v1, :cond_34
const/16 p1, 0x1a
goto :goto_3a
:cond_34
iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 8
invoke-virtual {v1, p1}, Ljava/lang/String;->charAt(I)C
move-result p1
:goto_3a
move v1, v4
const/4 v4, 0x1
:cond_3c
const/16 v5, 0x2d
if-ne p1, v5, :cond_42
const/4 v5, 0x1
goto :goto_43
:cond_42
const/4 v5, 0x0
:goto_43
if-eqz v5, :cond_58
.line 9
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v6, v1, 0x1
add-int/2addr p1, v1
.line 10
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p1, v1, :cond_51
const/16 p1, 0x1a
goto :goto_57
:cond_51
iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 11
invoke-virtual {v1, p1}, Ljava/lang/String;->charAt(I)C
move-result p1
:goto_57
move v1, v6
:cond_58
const/16 v6, 0x30
const/4 v7, -0x1
if-lt p1, v6, :cond_17f
const/16 v8, 0x39
if-gt p1, v8, :cond_17f
sub-int/2addr p1, v6
.line 12
:goto_62
iget v9, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v10, v1, 0x1
add-int/2addr v9, v1
.line 13
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v9, v1, :cond_6e
const/16 v1, 0x1a
goto :goto_74
:cond_6e
iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 14
invoke-virtual {v1, v9}, Ljava/lang/String;->charAt(I)C
move-result v1
:goto_74
if-lt v1, v6, :cond_7f
if-gt v1, v8, :cond_7f
mul-int/lit8 p1, p1, 0xa
add-int/lit8 v1, v1, -0x30
add-int/2addr p1, v1
move v1, v10
goto :goto_62
:cond_7f
const/16 v6, 0x2e
if-ne v1, v6, :cond_86
.line 15
iput v7, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return v0
:cond_86
if-ne v1, p2, :cond_a0
if-nez v4, :cond_8d
.line 16
iput v7, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return v0
.line 17
:cond_8d
iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v1, v10, 0x1
add-int/2addr p2, v10
.line 18
iget v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p2, v4, :cond_99
const/16 p2, 0x1a
goto :goto_a2
:cond_99
iget-object v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 19
invoke-virtual {v4, p2}, Ljava/lang/String;->charAt(I)C
move-result p2
goto :goto_a2
:cond_a0
move p2, v1
move v1, v10
:goto_a2
if-gez p1, :cond_a7
.line 20
iput v7, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return v0
:cond_a7
:goto_a7
const/16 v4, 0x10
const/16 v6, 0x2c
if-ne p2, v6, :cond_ce
.line 21
iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v1, v3
add-int/2addr p2, v1
iput p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 22
iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr p2, v3
iput p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 23
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p2, v0, :cond_bd
goto :goto_c3
:cond_bd
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 24
invoke-virtual {v0, p2}, Ljava/lang/String;->charAt(I)C
move-result v2
:goto_c3
iput-char v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/4 p2, 0x3
.line 25
iput p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
.line 26
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
if-eqz v5, :cond_cd
neg-int p1, p1
:cond_cd
return p1
:cond_ce
const/16 v8, 0xd
const/16 v9, 0x20
if-gt p2, v9, :cond_fc
if-eq p2, v9, :cond_e8
const/16 v9, 0xa
if-eq p2, v9, :cond_e8
if-eq p2, v8, :cond_e8
const/16 v9, 0x9
if-eq p2, v9, :cond_e8
const/16 v9, 0xc
if-eq p2, v9, :cond_e8
const/16 v9, 0x8
if-ne p2, v9, :cond_fc
.line 27
:cond_e8
iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v4, v1, 0x1
add-int/2addr p2, v1
.line 28
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p2, v1, :cond_f4
const/16 p2, 0x1a
goto :goto_fa
:cond_f4
iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 29
invoke-virtual {v1, p2}, Ljava/lang/String;->charAt(I)C
move-result p2
:goto_fa
move v1, v4
goto :goto_a7
:cond_fc
const/16 v9, 0x7d
if-ne p2, v9, :cond_17c
.line 30
iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v10, v1, 0x1
add-int/2addr p2, v1
invoke-virtual {p0, p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result p2
if-ne p2, v6, :cond_126
.line 31
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 32
iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v10, v3
add-int/2addr p2, v10
iput p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 33
iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr p2, v3
iput p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 34
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p2, v0, :cond_11d
goto :goto_123
:cond_11d
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 35
invoke-virtual {v0, p2}, Ljava/lang/String;->charAt(I)C
move-result v2
:goto_123
iput-char v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
goto :goto_172
:cond_126
const/16 v1, 0x5d
if-ne p2, v1, :cond_147
const/16 p2, 0xf
.line 36
iput p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 37
iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v10, v3
add-int/2addr p2, v10
iput p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 38
iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr p2, v3
iput p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 39
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p2, v0, :cond_13e
goto :goto_144
:cond_13e
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 40
invoke-virtual {v0, p2}, Ljava/lang/String;->charAt(I)C
move-result v2
:goto_144
iput-char v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
goto :goto_172
:cond_147
if-ne p2, v9, :cond_164
.line 41
iput v8, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 42
iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v10, v3
add-int/2addr p2, v10
iput p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 43
iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr p2, v3
iput p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 44
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p2, v0, :cond_15b
goto :goto_161
:cond_15b
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 45
invoke-virtual {v0, p2}, Ljava/lang/String;->charAt(I)C
move-result v2
:goto_161
iput-char v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
goto :goto_172
:cond_164
if-ne p2, v2, :cond_179
const/16 p2, 0x14
.line 46
iput p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 47
iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v10, v3
add-int/2addr p2, v10
iput p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 48
iput-char v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
:goto_172
const/4 p2, 0x4
.line 49
iput p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
if-eqz v5, :cond_178
neg-int p1, p1
:cond_178
return p1
.line 50
:cond_179
iput v7, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return v0
.line 51
:cond_17c
iput v7, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return v0
.line 52
:cond_17f
iput v7, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return v0
.end method
.method public final scanFieldIntArray(J)[I
.registers 20
move-object/from16 v0, p0
const/4 v1, 0x0
.line 1
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
.line 2
invoke-direct/range {p0 .. p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->matchFieldHash(J)I
move-result v2
const/4 v3, 0x0
if-nez v2, :cond_d
return-object v3
.line 3
:cond_d
iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v5, v2, 0x1
add-int/2addr v4, v2
.line 4
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
const/16 v6, 0x1a
if-lt v4, v2, :cond_1b
const/16 v2, 0x1a
goto :goto_21
:cond_1b
iget-object v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 5
invoke-virtual {v2, v4}, Ljava/lang/String;->charAt(I)C
move-result v2
:goto_21
const/16 v4, 0x5b
const/4 v7, -0x1
if-eq v2, v4, :cond_29
.line 6
iput v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-object v3
.line 7
:cond_29
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v4, v5, 0x1
add-int/2addr v2, v5
.line 8
iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v2, v5, :cond_35
const/16 v2, 0x1a
goto :goto_3b
:cond_35
iget-object v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 9
invoke-virtual {v5, v2}, Ljava/lang/String;->charAt(I)C
move-result v2
:goto_3b
const/16 v5, 0x10
.line 10
new-array v8, v5, [I
const/4 v9, 0x3
const/16 v10, 0x2c
const/16 v11, 0x5d
const/4 v12, 0x1
if-ne v2, v11, :cond_5e
.line 11
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v13, v4, 0x1
add-int/2addr v2, v4
.line 12
iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v2, v4, :cond_53
const/16 v2, 0x1a
goto :goto_59
:cond_53
iget-object v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 13
invoke-virtual {v4, v2}, Ljava/lang/String;->charAt(I)C
move-result v2
:goto_59
move v4, v13
const/4 v3, 0x0
move-object v13, v8
goto/16 :goto_e6
:cond_5e
move-object v13, v8
const/4 v8, 0x0
:goto_60
const/16 v14, 0x2d
if-ne v2, v14, :cond_78
.line 14
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v14, v4, 0x1
add-int/2addr v2, v4
.line 15
iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v2, v4, :cond_70
const/16 v2, 0x1a
goto :goto_76
:cond_70
iget-object v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 16
invoke-virtual {v4, v2}, Ljava/lang/String;->charAt(I)C
move-result v2
:goto_76
const/4 v4, 0x1
goto :goto_7a
:cond_78
move v14, v4
const/4 v4, 0x0
:goto_7a
const/16 v15, 0x30
if-lt v2, v15, :cond_163
const/16 v3, 0x39
if-gt v2, v3, :cond_160
add-int/lit8 v2, v2, -0x30
.line 17
:goto_84
iget v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v16, v14, 0x1
add-int/2addr v7, v14
.line 18
iget v14, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v7, v14, :cond_90
const/16 v7, 0x1a
goto :goto_96
:cond_90
iget-object v14, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 19
invoke-virtual {v14, v7}, Ljava/lang/String;->charAt(I)C
move-result v7
:goto_96
if-lt v7, v15, :cond_a2
if-gt v7, v3, :cond_a2
mul-int/lit8 v2, v2, 0xa
add-int/lit8 v7, v7, -0x30
add-int/2addr v2, v7
move/from16 v14, v16
goto :goto_84
.line 20
:cond_a2
array-length v3, v13
if-lt v8, v3, :cond_b0
.line 21
array-length v3, v13
mul-int/lit8 v3, v3, 0x3
div-int/lit8 v3, v3, 0x2
new-array v3, v3, [I
.line 22
invoke-static {v13, v1, v3, v1, v8}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
move-object v13, v3
:cond_b0
add-int/lit8 v3, v8, 0x1
if-eqz v4, :cond_b5
neg-int v2, v2
.line 23
:cond_b5
aput v2, v13, v8
if-ne v7, v10, :cond_d1
.line 24
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v4, v16, 0x1
add-int v2, v2, v16
.line 25
iget v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v2, v7, :cond_c6
const/16 v2, 0x1a
goto :goto_cc
:cond_c6
iget-object v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 26
invoke-virtual {v7, v2}, Ljava/lang/String;->charAt(I)C
move-result v2
:goto_cc
move v7, v2
move/from16 v16, v4
goto/16 :goto_156
:cond_d1
if-ne v7, v11, :cond_156
.line 27
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v4, v16, 0x1
add-int v2, v2, v16
.line 28
iget v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v2, v7, :cond_e0
const/16 v2, 0x1a
goto :goto_e6
:cond_e0
iget-object v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 29
invoke-virtual {v7, v2}, Ljava/lang/String;->charAt(I)C
move-result v2
.line 30
:goto_e6
array-length v7, v13
if-eq v3, v7, :cond_ef
.line 31
new-array v7, v3, [I
.line 32
invoke-static {v13, v1, v7, v1, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
move-object v13, v7
:cond_ef
if-ne v2, v10, :cond_ff
.line 33
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v4, v12
add-int/2addr v1, v4
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 34
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
.line 35
iput v9, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
.line 36
iput v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
return-object v13
:cond_ff
const/16 v1, 0x7d
if-ne v2, v1, :cond_151
.line 37
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v3, v4, 0x1
add-int/2addr v2, v4
invoke-virtual {v0, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v2
if-ne v2, v10, :cond_11a
.line 38
iput v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 39
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v3, v12
add-int/2addr v1, v3
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 40
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto :goto_148
:cond_11a
if-ne v2, v11, :cond_12a
const/16 v1, 0xf
.line 41
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 42
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v3, v12
add-int/2addr v1, v3
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 43
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto :goto_148
:cond_12a
if-ne v2, v1, :cond_13a
const/16 v1, 0xd
.line 44
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 45
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v3, v12
add-int/2addr v1, v3
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 46
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto :goto_148
:cond_13a
if-ne v2, v6, :cond_14c
.line 47
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v3, v12
add-int/2addr v1, v3
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/16 v1, 0x14
.line 48
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 49
iput-char v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
:goto_148
const/4 v1, 0x4
.line 50
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-object v13
:cond_14c
const/4 v2, -0x1
.line 51
iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
const/4 v4, 0x0
return-object v4
:cond_151
const/4 v2, -0x1
const/4 v4, 0x0
.line 52
iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-object v4
:cond_156
:goto_156
const/4 v2, -0x1
const/4 v4, 0x0
move v8, v3
move-object v3, v4
move v2, v7
move/from16 v4, v16
const/4 v7, -0x1
goto/16 :goto_60
:cond_160
const/4 v2, -0x1
const/4 v4, 0x0
goto :goto_165
:cond_163
move-object v4, v3
const/4 v2, -0x1
.line 53
:goto_165
iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-object v4
.end method
.method public scanFieldLong(J)J
.registers 21
move-object/from16 v0, p0
const/4 v1, 0x0
.line 1
iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
.line 2
invoke-direct/range {p0 .. p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->matchFieldHash(J)I
move-result v2
const-wide/16 v3, 0x0
if-nez v2, :cond_e
return-wide v3
.line 3
:cond_e
iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v6, v2, 0x1
add-int/2addr v5, v2
.line 4
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v5, v2, :cond_1a
const/16 v2, 0x1a
goto :goto_20
:cond_1a
iget-object v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 5
invoke-virtual {v2, v5}, Ljava/lang/String;->charAt(I)C
move-result v2
:goto_20
const/16 v5, 0x22
if-ne v2, v5, :cond_26
const/4 v9, 0x1
goto :goto_27
:cond_26
const/4 v9, 0x0
:goto_27
if-eqz v9, :cond_3c
.line 6
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v10, v6, 0x1
add-int/2addr v2, v6
.line 7
iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v2, v6, :cond_35
const/16 v2, 0x1a
goto :goto_3b
:cond_35
iget-object v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 8
invoke-virtual {v6, v2}, Ljava/lang/String;->charAt(I)C
move-result v2
:goto_3b
move v6, v10
:cond_3c
const/16 v10, 0x2d
if-ne v2, v10, :cond_41
const/4 v1, 0x1
:cond_41
if-eqz v1, :cond_56
.line 9
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v10, v6, 0x1
add-int/2addr v2, v6
.line 10
iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v2, v6, :cond_4f
const/16 v2, 0x1a
goto :goto_55
:cond_4f
iget-object v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 11
invoke-virtual {v6, v2}, Ljava/lang/String;->charAt(I)C
move-result v2
:goto_55
move v6, v10
:cond_56
const/16 v10, 0x30
const/4 v11, -0x1
if-lt v2, v10, :cond_165
const/16 v12, 0x39
if-gt v2, v12, :cond_165
sub-int/2addr v2, v10
int-to-long v13, v2
.line 12
:goto_61
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v15, v6, 0x1
add-int/2addr v2, v6
.line 13
iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v2, v6, :cond_6d
const/16 v2, 0x1a
goto :goto_73
:cond_6d
iget-object v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 14
invoke-virtual {v6, v2}, Ljava/lang/String;->charAt(I)C
move-result v2
:goto_73
if-lt v2, v10, :cond_81
if-gt v2, v12, :cond_81
const-wide/16 v16, 0xa
mul-long v13, v13, v16
add-int/lit8 v2, v2, -0x30
int-to-long v7, v2
add-long/2addr v13, v7
move v6, v15
goto :goto_61
:cond_81
const/16 v6, 0x2e
if-ne v2, v6, :cond_88
.line 15
iput v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-wide v3
:cond_88
if-ne v2, v5, :cond_a3
if-nez v9, :cond_8f
.line 16
iput v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-wide v3
.line 17
:cond_8f
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v5, v15, 0x1
add-int/2addr v2, v15
.line 18
iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v2, v6, :cond_9b
const/16 v2, 0x1a
goto :goto_a2
:cond_9b
iget-object v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 19
invoke-virtual {v6, v2}, Ljava/lang/String;->charAt(I)C
move-result v7
move v2, v7
:goto_a2
move v15, v5
:cond_a3
cmp-long v5, v13, v3
if-gez v5, :cond_aa
.line 20
iput v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-wide v3
:cond_aa
const/16 v5, 0x10
const/16 v6, 0x2c
if-ne v2, v6, :cond_d4
.line 21
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/4 v3, 0x1
sub-int/2addr v15, v3
add-int/2addr v2, v15
iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 22
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v2, v3
iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 23
iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v2, v3, :cond_c3
const/16 v7, 0x1a
goto :goto_c9
:cond_c3
iget-object v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 24
invoke-virtual {v3, v2}, Ljava/lang/String;->charAt(I)C
move-result v7
:goto_c9
iput-char v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/4 v2, 0x3
.line 25
iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
.line 26
iput v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
if-eqz v1, :cond_d3
neg-long v13, v13
:cond_d3
return-wide v13
:cond_d4
const/16 v7, 0x7d
if-ne v2, v7, :cond_162
.line 27
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v8, v15, 0x1
add-int/2addr v2, v15
invoke-virtual {v0, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v2
if-ne v2, v6, :cond_101
.line 28
iput v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 29
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/4 v3, 0x1
sub-int/2addr v8, v3
add-int/2addr v2, v8
iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 30
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v2, v3
iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 31
iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v2, v3, :cond_f8
const/16 v7, 0x1a
goto :goto_fe
:cond_f8
iget-object v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 32
invoke-virtual {v3, v2}, Ljava/lang/String;->charAt(I)C
move-result v7
:goto_fe
iput-char v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
goto :goto_158
:cond_101
const/16 v5, 0x5d
if-ne v2, v5, :cond_125
const/16 v2, 0xf
.line 33
iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 34
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/4 v3, 0x1
sub-int/2addr v8, v3
add-int/2addr v2, v8
iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 35
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v2, v3
iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 36
iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v2, v3, :cond_11c
const/16 v7, 0x1a
goto :goto_122
:cond_11c
iget-object v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 37
invoke-virtual {v3, v2}, Ljava/lang/String;->charAt(I)C
move-result v7
:goto_122
iput-char v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
goto :goto_158
:cond_125
if-ne v2, v7, :cond_147
const/16 v2, 0xd
.line 38
iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 39
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/4 v3, 0x1
sub-int/2addr v8, v3
add-int/2addr v2, v8
iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 40
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v2, v3
iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 41
iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v2, v3, :cond_13e
const/16 v7, 0x1a
goto :goto_144
:cond_13e
iget-object v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 42
invoke-virtual {v3, v2}, Ljava/lang/String;->charAt(I)C
move-result v7
:goto_144
iput-char v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
goto :goto_158
:cond_147
const/16 v5, 0x1a
if-ne v2, v5, :cond_15f
const/16 v2, 0x14
.line 43
iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 44
iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/4 v3, 0x1
sub-int/2addr v8, v3
add-int/2addr v2, v8
iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 45
iput-char v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
:goto_158
const/4 v2, 0x4
.line 46
iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
if-eqz v1, :cond_15e
neg-long v13, v13
:cond_15e
return-wide v13
.line 47
:cond_15f
iput v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-wide v3
.line 48
:cond_162
iput v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-wide v3
.line 49
:cond_165
iput v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-wide v3
.end method
.method public scanFieldString(J)Ljava/lang/String;
.registers 13
const/4 v0, 0x0
.line 1
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
.line 2
invoke-direct {p0, p1, p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->matchFieldHash(J)I
move-result p1
if-nez p1, :cond_b
const/4 p1, 0x0
return-object p1
.line 3
:cond_b
iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v1, p1, 0x1
add-int/2addr p2, p1
.line 4
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
const-string v2, "unclosed str, "
if-ge p2, p1, :cond_12e
.line 5
iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
invoke-virtual {p1, p2}, Ljava/lang/String;->charAt(I)C
move-result p1
const/16 p2, 0x22
const/4 v3, -0x1
if-eq p1, p2, :cond_26
.line 6
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
.line 7
iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->stringDefaultValue:Ljava/lang/String;
return-object p1
.line 8
:cond_26
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr p1, v1
.line 9
iget-object v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
invoke-virtual {v4, p2, p1}, Ljava/lang/String;->indexOf(II)I
move-result v4
if-eq v4, v3, :cond_115
.line 10
sget-boolean v2, Lcom/alibaba/fastjson/parser/JSONLexer;->V6:Z
if-eqz v2, :cond_3c
.line 11
iget-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
invoke-virtual {v2, p1, v4}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v2
goto :goto_4b
:cond_3c
sub-int v2, v4, p1
.line 12
iget v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v5, v1
invoke-virtual {p0, v5, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->sub_chars(II)[C
move-result-object v5
.line 13
new-instance v6, Ljava/lang/String;
invoke-direct {v6, v5, v0, v2}, Ljava/lang/String;-><init>([CII)V
move-object v2, v6
:goto_4b
const/16 v5, 0x5c
.line 14
invoke-virtual {v2, v5}, Ljava/lang/String;->indexOf(I)I
move-result v6
const/4 v7, 0x1
if-eq v6, v3, :cond_97
const/4 v2, 0x0
:goto_55
add-int/lit8 v6, v4, -0x1
move v8, v2
const/4 v2, 0x0
:goto_59
if-ltz v6, :cond_69
.line 15
iget-object v9, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
invoke-virtual {v9, v6}, Ljava/lang/String;->charAt(I)C
move-result v9
if-ne v9, v5, :cond_69
add-int/lit8 v2, v2, 0x1
add-int/lit8 v6, v6, -0x1
const/4 v8, 0x1
goto :goto_59
.line 16
:cond_69
rem-int/lit8 v2, v2, 0x2
if-nez v2, :cond_8d
sub-int p1, v4, p1
.line 17
iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr p2, v1
invoke-virtual {p0, p2, p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->sub_chars(II)[C
move-result-object p2
if-eqz v8, :cond_7d
.line 18
invoke-static {p2, p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->readString([CI)Ljava/lang/String;
move-result-object v2
goto :goto_97
.line 19
:cond_7d
new-instance v2, Ljava/lang/String;
invoke-direct {v2, p2, v0, p1}, Ljava/lang/String;-><init>([CII)V
.line 20
invoke-virtual {v2, v5}, Ljava/lang/String;->indexOf(I)I
move-result v0
if-eq v0, v3, :cond_97
.line 21
invoke-static {p2, p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->readString([CI)Ljava/lang/String;
move-result-object v2
goto :goto_97
.line 22
:cond_8d
iget-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
add-int/lit8 v4, v4, 0x1
invoke-virtual {v2, p2, v4}, Ljava/lang/String;->indexOf(II)I
move-result v4
move v2, v8
goto :goto_55
:cond_97
:goto_97
add-int/2addr v4, v7
.line 23
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
const/16 p2, 0x1a
if-lt v4, p1, :cond_a1
const/16 p1, 0x1a
goto :goto_a7
:cond_a1
iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 24
invoke-virtual {p1, v4}, Ljava/lang/String;->charAt(I)C
move-result p1
:goto_a7
const/16 v0, 0x10
const/16 v1, 0x2c
if-ne p1, v1, :cond_c7
.line 25
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 26
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr p1, v7
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 27
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p1, v1, :cond_b9
goto :goto_bf
:cond_b9
iget-object p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 28
invoke-virtual {p2, p1}, Ljava/lang/String;->charAt(I)C
move-result p2
:goto_bf
iput-char p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/4 p1, 0x3
.line 29
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
.line 30
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
return-object v2
:cond_c7
const/16 v5, 0x7d
if-ne p1, v5, :cond_110
add-int/2addr v4, v7
.line 31
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v4, p1, :cond_d3
const/16 p1, 0x1a
goto :goto_d9
:cond_d3
iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 32
invoke-virtual {p1, v4}, Ljava/lang/String;->charAt(I)C
move-result p1
:goto_d9
if-ne p1, v1, :cond_e3
.line 33
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 34
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 35
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto :goto_107
:cond_e3
const/16 v0, 0x5d
if-ne p1, v0, :cond_f1
const/16 p1, 0xf
.line 36
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 37
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 38
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto :goto_107
:cond_f1
if-ne p1, v5, :cond_fd
const/16 p1, 0xd
.line 39
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 40
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 41
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto :goto_107
:cond_fd
if-ne p1, p2, :cond_10b
const/16 p1, 0x14
.line 42
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 43
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 44
iput-char p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
:goto_107
const/4 p1, 0x4
.line 45
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-object v2
.line 46
:cond_10b
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
.line 47
iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->stringDefaultValue:Ljava/lang/String;
return-object p1
.line 48
:cond_110
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
.line 49
iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->stringDefaultValue:Ljava/lang/String;
return-object p1
.line 50
:cond_115
new-instance p1, Lcom/alibaba/fastjson/JSONException;
new-instance p2, Ljava/lang/StringBuilder;
invoke-direct {p2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {p2, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object v0
invoke-virtual {p2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-direct {p1, p2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw p1
.line 51
:cond_12e
new-instance p1, Lcom/alibaba/fastjson/JSONException;
new-instance p2, Ljava/lang/StringBuilder;
invoke-direct {p2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {p2, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object v0
invoke-virtual {p2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-direct {p1, p2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
goto :goto_148
:goto_147
throw p1
:goto_148
goto :goto_147
.end method
.method public scanFieldSymbol(J)J
.registers 13
const/4 v0, 0x0
.line 1
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
.line 2
invoke-direct {p0, p1, p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->matchFieldHash(J)I
move-result p1
const-wide/16 v0, 0x0
if-nez p1, :cond_c
return-wide v0
.line 3
:cond_c
iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v2, p1, 0x1
add-int/2addr p2, p1
.line 4
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
const/16 v3, 0x1a
if-lt p2, p1, :cond_1a
const/16 p1, 0x1a
goto :goto_20
:cond_1a
iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 5
invoke-virtual {p1, p2}, Ljava/lang/String;->charAt(I)C
move-result p1
:goto_20
const/16 p2, 0x22
const/4 v4, -0x1
if-eq p1, p2, :cond_28
.line 6
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-wide v0
:cond_28
const-wide v5, -0x340d631b7bdddcdbL # -7.302176725335867E57
.line 7
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 8
:goto_2f
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v7, v2, 0x1
add-int/2addr p1, v2
.line 9
iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p1, v2, :cond_3b
const/16 p1, 0x1a
goto :goto_41
:cond_3b
iget-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 10
invoke-virtual {v2, p1}, Ljava/lang/String;->charAt(I)C
move-result p1
:goto_41
if-ne p1, p2, :cond_db
.line 11
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 p2, v7, 0x1
add-int/2addr p1, v7
.line 12
iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p1, v2, :cond_4f
const/16 p1, 0x1a
goto :goto_55
:cond_4f
iget-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 13
invoke-virtual {v2, p1}, Ljava/lang/String;->charAt(I)C
move-result p1
:goto_55
const/16 v2, 0x2c
if-ne p1, v2, :cond_77
.line 14
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 p2, p2, -0x1
add-int/2addr p1, p2
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 15
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 p1, p1, 0x1
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 16
iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p1, p2, :cond_6b
goto :goto_71
:cond_6b
iget-object p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 17
invoke-virtual {p2, p1}, Ljava/lang/String;->charAt(I)C
move-result v3
:goto_71
iput-char v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/4 p1, 0x3
.line 18
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-wide v5
:cond_77
const/16 v7, 0x7d
if-ne p1, v7, :cond_d8
.line 19
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v8, p2, 0x1
add-int/2addr p1, p2
.line 20
iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p1, p2, :cond_87
const/16 p1, 0x1a
goto :goto_8d
:cond_87
iget-object p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 21
invoke-virtual {p2, p1}, Ljava/lang/String;->charAt(I)C
move-result p1
:goto_8d
if-ne p1, v2, :cond_9e
const/16 p1, 0x10
.line 22
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 23
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v8, v8, -0x1
add-int/2addr p1, v8
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 24
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto :goto_d1
:cond_9e
const/16 p2, 0x5d
if-ne p1, p2, :cond_b1
const/16 p1, 0xf
.line 25
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 26
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v8, v8, -0x1
add-int/2addr p1, v8
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 27
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto :goto_d1
:cond_b1
if-ne p1, v7, :cond_c2
const/16 p1, 0xd
.line 28
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 29
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v8, v8, -0x1
add-int/2addr p1, v8
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 30
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto :goto_d1
:cond_c2
if-ne p1, v3, :cond_d5
const/16 p1, 0x14
.line 31
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 32
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v8, v8, -0x1
add-int/2addr p1, v8
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 33
iput-char v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
:goto_d1
const/4 p1, 0x4
.line 34
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-wide v5
.line 35
:cond_d5
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-wide v0
.line 36
:cond_d8
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-wide v0
:cond_db
int-to-long v8, p1
xor-long/2addr v5, v8
const-wide v8, 0x100000001b3L
mul-long v5, v5, v8
const/16 v2, 0x5c
if-ne p1, v2, :cond_eb
.line 37
iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I
return-wide v0
:cond_eb
move v2, v7
goto/16 :goto_2f
.end method
.method public scanISO8601DateIfMatch(Z)Z
.registers 4
.line 1
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v0, v1
invoke-virtual {p0, p1, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanISO8601DateIfMatch(ZI)Z
move-result p1
return p1
.end method
.method public scanISO8601DateIfMatch(ZI)Z
.registers 38
move-object/from16 v9, p0
move/from16 v10, p2
const/16 v11, 0x39
const/4 v12, 0x6
const/4 v13, 0x3
const/4 v14, 0x2
const/4 v15, 0x5
const/16 v16, 0x1
const/16 v8, 0x30
const/4 v7, 0x0
if-nez p1, :cond_ad
const/16 v0, 0xd
if-le v10, v0, :cond_ad
.line 2
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v0
.line 3
iget v1, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v1, v1, 0x1
invoke-virtual {v9, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v1
.line 4
iget v2, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v2, v14
invoke-virtual {v9, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v2
.line 5
iget v3, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v3, v13
invoke-virtual {v9, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v3
.line 6
iget v4, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v4, v4, 0x4
invoke-virtual {v9, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v4
.line 7
iget v5, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v5, v15
invoke-virtual {v9, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v5
.line 8
iget v6, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v6, v10
add-int/lit8 v6, v6, -0x1
invoke-virtual {v9, v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v6
.line 9
iget v13, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v13, v10
sub-int/2addr v13, v14
invoke-virtual {v9, v13}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v13
const/16 v14, 0x2f
if-ne v0, v14, :cond_ad
const/16 v0, 0x44
if-ne v1, v0, :cond_ad
const/16 v0, 0x61
if-ne v2, v0, :cond_ad
const/16 v0, 0x74
if-ne v3, v0, :cond_ad
const/16 v0, 0x65
if-ne v4, v0, :cond_ad
const/16 v0, 0x28
if-ne v5, v0, :cond_ad
const/16 v0, 0x2f
if-ne v6, v0, :cond_ad
const/16 v0, 0x29
if-ne v13, v0, :cond_ad
const/4 v0, -0x1
const/4 v0, 0x6
const/4 v1, -0x1
:goto_74
if-ge v0, v10, :cond_8b
.line 10
iget v2, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v2, v0
invoke-virtual {v9, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v2
const/16 v3, 0x2b
if-ne v2, v3, :cond_83
move v1, v0
goto :goto_88
:cond_83
if-lt v2, v8, :cond_8b
if-le v2, v11, :cond_88
goto :goto_8b
:cond_88
:goto_88
add-int/lit8 v0, v0, 0x1
goto :goto_74
:cond_8b
:goto_8b
const/4 v0, -0x1
if-ne v1, v0, :cond_8f
return v7
.line 11
:cond_8f
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v0, v12
sub-int/2addr v1, v0
.line 12
invoke-direct {v9, v0, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->subString(II)Ljava/lang/String;
move-result-object v0
.line 13
invoke-static {v0}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
move-result-wide v0
.line 14
iget-object v2, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->timeZone:Ljava/util/TimeZone;
iget-object v3, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->locale:Ljava/util/Locale;
invoke-static {v2, v3}, Ljava/util/Calendar;->getInstance(Ljava/util/TimeZone;Ljava/util/Locale;)Ljava/util/Calendar;
move-result-object v2
iput-object v2, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar;
.line 15
iget-object v2, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar;
invoke-virtual {v2, v0, v1}, Ljava/util/Calendar;->setTimeInMillis(J)V
.line 16
iput v15, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
return v16
:cond_ad
const/16 v13, 0x3a
const/16 v14, 0x8
const/16 v6, 0x9
const/16 v5, 0xe
const/16 v4, 0x2d
const/16 v19, 0xa
if-eq v10, v14, :cond_4d8
if-eq v10, v5, :cond_4d8
const/16 v0, 0x10
if-ne v10, v0, :cond_d1
.line 17
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v0, v0, 0xa
.line 18
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v0
const/16 v1, 0x54
if-eq v0, v1, :cond_4d8
const/16 v1, 0x20
if-eq v0, v1, :cond_4d8
:cond_d1
const/16 v0, 0x11
if-ne v10, v0, :cond_e0
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v0, v12
.line 19
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v0
if-eq v0, v4, :cond_e0
goto/16 :goto_4d8
:cond_e0
if-ge v10, v6, :cond_e3
return v7
.line 20
:cond_e3
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v0
.line 21
iget v1, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v1, v1, 0x1
invoke-virtual {v9, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v1
.line 22
iget v2, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/4 v3, 0x2
add-int/2addr v2, v3
invoke-virtual {v9, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v2
.line 23
iget v3, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/16 v17, 0x3
add-int/lit8 v3, v3, 0x3
invoke-virtual {v9, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v3
.line 24
iget v5, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v5, v5, 0x4
invoke-virtual {v9, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v5
.line 25
iget v8, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v8, v15
invoke-virtual {v9, v8}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v8
.line 26
iget v11, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v11, v12
invoke-virtual {v9, v11}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v11
.line 27
iget v12, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v12, v12, 0x7
invoke-virtual {v9, v12}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v12
.line 28
iget v15, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v15, v14
invoke-virtual {v9, v15}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v15
.line 29
iget v14, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v14, v6
invoke-virtual {v9, v14}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v14
if-ne v5, v4, :cond_133
if-eq v12, v4, :cond_13b
:cond_133
const/16 v6, 0x2f
if-ne v5, v6, :cond_148
const/16 v6, 0x2f
if-ne v12, v6, :cond_148
:cond_13b
move v12, v1
move v6, v11
move/from16 v33, v14
move/from16 v32, v15
const/16 v34, 0xa
:goto_143
move v11, v0
move v15, v2
move v14, v3
goto/16 :goto_20f
:cond_148
if-ne v5, v4, :cond_16e
if-ne v11, v4, :cond_16e
const/16 v5, 0x20
if-ne v15, v5, :cond_15f
move v11, v0
move v15, v2
move v14, v3
move v6, v8
move/from16 v33, v12
const/16 v8, 0x30
const/16 v32, 0x30
const/16 v34, 0x8
:goto_15c
move v12, v1
goto/16 :goto_20f
:cond_15f
move v11, v0
move v14, v3
move v6, v8
move/from16 v32, v12
move/from16 v33, v15
const/16 v8, 0x30
const/16 v34, 0x9
:goto_16a
move v12, v1
:goto_16b
move v15, v2
goto/16 :goto_20f
:cond_16e
const/16 v6, 0x2e
if-ne v2, v6, :cond_176
const/16 v6, 0x2e
if-eq v8, v6, :cond_17a
:cond_176
if-ne v2, v4, :cond_184
if-ne v8, v4, :cond_184
:cond_17a
move/from16 v32, v0
move/from16 v33, v1
move v8, v3
move v6, v5
const/16 v34, 0xa
goto/16 :goto_20f
:cond_184
const/16 v6, 0x5e74
if-eq v5, v6, :cond_18f
const v6, 0xb144
if-ne v5, v6, :cond_18e
goto :goto_18f
:cond_18e
return v7
:cond_18f
:goto_18f
const/16 v5, 0x6708
if-eq v12, v5, :cond_1d2
const v5, 0xc6d4
if-ne v12, v5, :cond_199
goto :goto_1d2
:cond_199
const/16 v5, 0x6708
if-eq v11, v5, :cond_1a4
const v5, 0xc6d4
if-ne v11, v5, :cond_1a3
goto :goto_1a4
:cond_1a3
return v7
:cond_1a4
:goto_1a4
const/16 v5, 0x65e5
if-eq v15, v5, :cond_1c5
const v5, 0xc77c
if-ne v15, v5, :cond_1ae
goto :goto_1c5
:cond_1ae
const/16 v5, 0x65e5
if-eq v14, v5, :cond_1b9
const v5, 0xc77c
if-ne v14, v5, :cond_1b8
goto :goto_1b9
:cond_1b8
return v7
:cond_1b9
:goto_1b9
move v11, v0
move v14, v3
move v6, v8
move/from16 v32, v12
move/from16 v33, v15
const/16 v8, 0x30
const/16 v34, 0xa
goto :goto_16a
:cond_1c5
:goto_1c5
move v11, v0
move v15, v2
move v14, v3
move v6, v8
move/from16 v33, v12
const/16 v8, 0x30
const/16 v32, 0x30
const/16 v34, 0xa
goto :goto_15c
:cond_1d2
:goto_1d2
const/16 v5, 0x65e5
if-eq v14, v5, :cond_203
const v5, 0xc77c
if-ne v14, v5, :cond_1dc
goto :goto_203
.line 30
:cond_1dc
iget v5, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v5, v5, 0xa
invoke-virtual {v9, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v5
const/16 v6, 0x65e5
if-eq v5, v6, :cond_1f7
iget v5, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v5, v5, 0xa
invoke-virtual {v9, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v5
const v6, 0xc77c
if-ne v5, v6, :cond_1f6
goto :goto_1f7
:cond_1f6
return v7
:cond_1f7
:goto_1f7
const/16 v5, 0xb
move v12, v1
move v6, v11
move/from16 v33, v14
move/from16 v32, v15
const/16 v34, 0xb
goto/16 :goto_143
:cond_203
:goto_203
move v12, v1
move v14, v3
move v6, v11
move/from16 v33, v15
const/16 v32, 0x30
const/16 v34, 0xa
move v11, v0
goto/16 :goto_16b
:goto_20f
move/from16 v24, v11
move/from16 v25, v12
move/from16 v26, v15
move/from16 v27, v14
move/from16 v28, v8
move/from16 v29, v6
move/from16 v30, v32
move/from16 v31, v33
.line 31
invoke-static/range {v24 .. v31}, Lcom/alibaba/fastjson/parser/JSONLexer;->checkDate(CCCCCCII)Z
move-result v0
if-nez v0, :cond_226
return v7
:cond_226
move-object/from16 v0, p0
move v1, v11
move v2, v12
move v3, v15
const/16 v11, 0x2d
move v4, v14
const/16 v12, 0xe
move v5, v8
const/16 v14, 0x9
const/4 v15, 0x0
move/from16 v7, v32
const/16 v14, 0x30
move/from16 v8, v33
.line 32
invoke-direct/range {v0 .. v8}, Lcom/alibaba/fastjson/parser/JSONLexer;->setCalendar(CCCCCCCC)V
.line 33
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int v0, v0, v34
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v7
const/16 v0, 0x54
if-eq v7, v0, :cond_2ef
const/16 v0, 0x20
if-ne v7, v0, :cond_251
if-nez p1, :cond_251
goto/16 :goto_2ef
:cond_251
const/16 v0, 0x22
if-eq v7, v0, :cond_2c5
const/16 v0, 0x1a
if-eq v7, v0, :cond_2c5
const/16 v0, 0x65e5
if-eq v7, v0, :cond_2c5
const v0, 0xc77c
if-ne v7, v0, :cond_263
goto :goto_2c5
:cond_263
const/16 v0, 0x2b
if-eq v7, v0, :cond_26b
if-ne v7, v11, :cond_26a
goto :goto_26b
:cond_26a
return v15
.line 34
:cond_26b
:goto_26b
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
add-int/lit8 v1, v34, 0x6
if-ne v0, v1, :cond_2c4
.line 35
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int v0, v0, v34
const/4 v1, 0x3
add-int/2addr v0, v1
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v0
if-ne v0, v13, :cond_2c4
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int v0, v0, v34
add-int/lit8 v0, v0, 0x4
.line 36
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v0
if-ne v0, v14, :cond_2c4
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int v0, v0, v34
const/4 v1, 0x5
add-int/2addr v0, v1
.line 37
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v0
if-eq v0, v14, :cond_296
goto :goto_2c4
:cond_296
const/16 v1, 0x30
const/16 v2, 0x30
const/16 v3, 0x30
const/16 v4, 0x30
const/16 v5, 0x30
const/16 v6, 0x30
move-object/from16 v0, p0
.line 38
invoke-virtual/range {v0 .. v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->setTime(CCCCCC)V
.line 39
iget-object v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar;
invoke-virtual {v0, v12, v15}, Ljava/util/Calendar;->set(II)V
.line 40
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int v0, v0, v34
add-int/lit8 v0, v0, 0x1
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v0
iget v1, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int v1, v1, v34
const/4 v2, 0x2
add-int/2addr v1, v2
invoke-virtual {v9, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v1
invoke-virtual {v9, v7, v0, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->setTimeZone(CCC)V
return v16
:cond_2c4
:goto_2c4
return v15
.line 41
:cond_2c5
:goto_2c5
iget-object v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar;
const/16 v1, 0xb
invoke-virtual {v0, v1, v15}, Ljava/util/Calendar;->set(II)V
.line 42
iget-object v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar;
const/16 v1, 0xc
invoke-virtual {v0, v1, v15}, Ljava/util/Calendar;->set(II)V
.line 43
iget-object v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar;
const/16 v1, 0xd
invoke-virtual {v0, v1, v15}, Ljava/util/Calendar;->set(II)V
.line 44
iget-object v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar;
invoke-virtual {v0, v12, v15}, Ljava/util/Calendar;->set(II)V
.line 45
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int v0, v0, v34
iput v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v0
iput-char v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/4 v0, 0x5
.line 46
iput v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
return v16
:cond_2ef
:goto_2ef
add-int/lit8 v7, v34, 0x9
if-ge v10, v7, :cond_2f4
return v15
.line 47
:cond_2f4
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int v0, v0, v34
const/4 v1, 0x3
add-int/2addr v0, v1
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v0
if-eq v0, v13, :cond_301
return v15
.line 48
:cond_301
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int v0, v0, v34
const/4 v1, 0x6
add-int/2addr v0, v1
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v0
if-eq v0, v13, :cond_30e
return v15
.line 49
:cond_30e
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int v0, v0, v34
add-int/lit8 v0, v0, 0x1
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v8
.line 50
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int v0, v0, v34
const/4 v1, 0x2
add-int/2addr v0, v1
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v20
.line 51
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int v0, v0, v34
add-int/lit8 v0, v0, 0x4
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v21
.line 52
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int v0, v0, v34
const/4 v1, 0x5
add-int/2addr v0, v1
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v24
.line 53
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int v0, v0, v34
add-int/lit8 v0, v0, 0x7
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v25
.line 54
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int v0, v0, v34
const/16 v1, 0x8
add-int/2addr v0, v1
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v23
move v1, v8
move/from16 v2, v20
move/from16 v3, v21
move/from16 v4, v24
move/from16 v5, v25
move/from16 v6, v23
.line 55
invoke-static/range {v1 .. v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->checkTime(CCCCCC)Z
move-result v0
if-nez v0, :cond_35d
return v15
:cond_35d
move-object/from16 v0, p0
move v1, v8
move/from16 v2, v20
move/from16 v3, v21
move/from16 v4, v24
move/from16 v5, v25
move/from16 v6, v23
.line 56
invoke-virtual/range {v0 .. v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->setTime(CCCCCC)V
.line 57
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int v0, v0, v34
const/16 v1, 0x9
add-int/2addr v0, v1
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v0
const/16 v1, 0x2e
if-ne v0, v1, :cond_4a2
add-int/lit8 v0, v34, 0xb
if-ge v10, v0, :cond_381
return v15
.line 58
:cond_381
iget v1, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int v1, v1, v34
add-int/lit8 v1, v1, 0xa
invoke-virtual {v9, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v1
if-lt v1, v14, :cond_4a1
const/16 v2, 0x39
if-le v1, v2, :cond_393
goto/16 :goto_4a1
:cond_393
sub-int/2addr v1, v14
if-le v10, v0, :cond_3aa
.line 59
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int v0, v0, v34
add-int/lit8 v0, v0, 0xb
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v0
if-lt v0, v14, :cond_3aa
if-gt v0, v2, :cond_3aa
mul-int/lit8 v1, v1, 0xa
sub-int/2addr v0, v14
add-int/2addr v1, v0
const/4 v0, 0x2
goto :goto_3ab
:cond_3aa
const/4 v0, 0x1
:goto_3ab
const/4 v2, 0x2
if-ne v0, v2, :cond_3c3
.line 60
iget v2, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int v2, v2, v34
add-int/lit8 v2, v2, 0xc
invoke-virtual {v9, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v2
if-lt v2, v14, :cond_3c3
const/16 v3, 0x39
if-gt v2, v3, :cond_3c3
mul-int/lit8 v1, v1, 0xa
sub-int/2addr v2, v14
add-int/2addr v1, v2
const/4 v0, 0x3
.line 61
:cond_3c3
iget-object v2, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar;
invoke-virtual {v2, v12, v1}, Ljava/util/Calendar;->set(II)V
.line 62
iget v1, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int v1, v1, v34
add-int/lit8 v1, v1, 0xa
add-int/2addr v1, v0
invoke-virtual {v9, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v1
const/16 v2, 0x2b
if-eq v1, v2, :cond_404
if-ne v1, v11, :cond_3da
goto :goto_404
:cond_3da
const/16 v2, 0x5a
if-ne v1, v2, :cond_400
.line 63
iget-object v1, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar;
invoke-virtual {v1}, Ljava/util/Calendar;->getTimeZone()Ljava/util/TimeZone;
move-result-object v1
invoke-virtual {v1}, Ljava/util/TimeZone;->getRawOffset()I
move-result v1
if-eqz v1, :cond_3fc
.line 64
invoke-static {v15}, Ljava/util/TimeZone;->getAvailableIDs(I)[Ljava/lang/String;
move-result-object v1
.line 65
array-length v2, v1
if-lez v2, :cond_3fc
.line 66
aget-object v1, v1, v15
invoke-static {v1}, Ljava/util/TimeZone;->getTimeZone(Ljava/lang/String;)Ljava/util/TimeZone;
move-result-object v1
.line 67
iget-object v2, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar;
invoke-virtual {v2, v1}, Ljava/util/Calendar;->setTimeZone(Ljava/util/TimeZone;)V
:cond_3fc
const/16 v17, 0x1
goto/16 :goto_47a
:cond_400
const/16 v17, 0x0
goto/16 :goto_47a
.line 68
:cond_404
:goto_404
iget v2, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int v2, v2, v34
add-int/lit8 v2, v2, 0xa
add-int/2addr v2, v0
add-int/lit8 v2, v2, 0x1
invoke-virtual {v9, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v2
if-lt v2, v14, :cond_4a1
const/16 v3, 0x31
if-le v2, v3, :cond_419
goto/16 :goto_4a1
.line 69
:cond_419
iget v3, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int v3, v3, v34
add-int/lit8 v3, v3, 0xa
add-int/2addr v3, v0
const/4 v4, 0x2
add-int/2addr v3, v4
invoke-virtual {v9, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v3
if-lt v3, v14, :cond_4a1
const/16 v4, 0x39
if-le v3, v4, :cond_42e
goto/16 :goto_4a1
.line 70
:cond_42e
iget v4, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int v4, v4, v34
add-int/lit8 v4, v4, 0xa
add-int/2addr v4, v0
const/4 v5, 0x3
add-int/2addr v4, v5
invoke-virtual {v9, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v4
if-ne v4, v13, :cond_460
.line 71
iget v4, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int v4, v4, v34
add-int/lit8 v4, v4, 0xa
add-int/2addr v4, v0
add-int/lit8 v4, v4, 0x4
invoke-virtual {v9, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v4
if-eq v4, v14, :cond_44d
return v15
.line 72
:cond_44d
iget v4, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int v4, v4, v34
add-int/lit8 v4, v4, 0xa
add-int/2addr v4, v0
const/4 v5, 0x5
add-int/2addr v4, v5
invoke-virtual {v9, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v4
if-eq v4, v14, :cond_45d
return v15
:cond_45d
const/16 v17, 0x6
goto :goto_477
:cond_460
if-ne v4, v14, :cond_475
.line 73
iget v4, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int v4, v4, v34
add-int/lit8 v4, v4, 0xa
add-int/2addr v4, v0
add-int/lit8 v4, v4, 0x4
invoke-virtual {v9, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v4
if-eq v4, v14, :cond_472
return v15
:cond_472
const/16 v17, 0x5
goto :goto_477
:cond_475
const/16 v17, 0x3
.line 74
:goto_477
invoke-virtual {v9, v1, v2, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->setTimeZone(CCC)V
.line 75
:goto_47a
iget v1, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v34, v34, 0xa
add-int v34, v34, v0
add-int v34, v34, v17
add-int v1, v1, v34
invoke-virtual {v9, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v0
const/16 v1, 0x1a
if-eq v0, v1, :cond_491
const/16 v1, 0x22
if-eq v0, v1, :cond_491
return v15
.line 76
:cond_491
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int v0, v0, v34
iput v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v0
iput-char v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/4 v0, 0x5
.line 77
iput v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
return v16
:cond_4a1
:goto_4a1
return v15
.line 78
:cond_4a2
iget-object v1, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar;
invoke-virtual {v1, v12, v15}, Ljava/util/Calendar;->set(II)V
.line 79
iget v1, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v1, v7
iput v1, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
invoke-virtual {v9, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v1
iput-char v1, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/4 v1, 0x5
.line 80
iput v1, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
const/16 v1, 0x5a
if-ne v0, v1, :cond_4d7
.line 81
iget-object v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar;
invoke-virtual {v0}, Ljava/util/Calendar;->getTimeZone()Ljava/util/TimeZone;
move-result-object v0
invoke-virtual {v0}, Ljava/util/TimeZone;->getRawOffset()I
move-result v0
if-eqz v0, :cond_4d7
.line 82
invoke-static {v15}, Ljava/util/TimeZone;->getAvailableIDs(I)[Ljava/lang/String;
move-result-object v0
.line 83
array-length v1, v0
if-lez v1, :cond_4d7
.line 84
aget-object v0, v0, v15
invoke-static {v0}, Ljava/util/TimeZone;->getTimeZone(Ljava/lang/String;)Ljava/util/TimeZone;
move-result-object v0
.line 85
iget-object v1, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar;
invoke-virtual {v1, v0}, Ljava/util/Calendar;->setTimeZone(Ljava/util/TimeZone;)V
:cond_4d7
return v16
:cond_4d8
:goto_4d8
const/16 v11, 0x2d
const/16 v12, 0xe
const/16 v14, 0x30
const/4 v15, 0x0
if-eqz p1, :cond_4e2
return v15
.line 86
:cond_4e2
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v20
.line 87
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v0, v0, 0x1
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v21
.line 88
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/4 v1, 0x2
add-int/2addr v0, v1
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v18
.line 89
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/4 v1, 0x3
add-int/2addr v0, v1
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v17
.line 90
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v0, v0, 0x4
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v0
.line 91
iget v1, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/4 v2, 0x5
add-int/2addr v1, v2
invoke-virtual {v9, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v1
.line 92
iget v2, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/4 v3, 0x6
add-int/2addr v2, v3
invoke-virtual {v9, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v2
.line 93
iget v3, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v3, v3, 0x7
invoke-virtual {v9, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v3
.line 94
iget v4, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/16 v5, 0x8
add-int/2addr v4, v5
invoke-virtual {v9, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v22
if-ne v0, v11, :cond_52f
if-ne v3, v11, :cond_52f
const/4 v4, 0x1
goto :goto_530
:cond_52f
const/4 v4, 0x0
:goto_530
if-eqz v4, :cond_538
const/16 v5, 0x10
if-ne v10, v5, :cond_538
const/4 v11, 0x1
goto :goto_539
:cond_538
const/4 v11, 0x0
:goto_539
if-eqz v4, :cond_542
const/16 v4, 0x11
if-ne v10, v4, :cond_542
const/16 v24, 0x1
goto :goto_544
:cond_542
const/16 v24, 0x0
:goto_544
if-nez v24, :cond_552
if-eqz v11, :cond_549
goto :goto_552
:cond_549
move/from16 v25, v0
move/from16 v26, v1
move/from16 v27, v2
move/from16 v28, v3
goto :goto_563
.line 95
:cond_552
:goto_552
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/16 v3, 0x9
add-int/2addr v0, v3
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v0
move/from16 v28, v0
move/from16 v25, v1
move/from16 v26, v2
move/from16 v27, v22
:goto_563
move/from16 v1, v20
move/from16 v2, v21
move/from16 v3, v18
move/from16 v4, v17
move/from16 v5, v25
move/from16 v6, v26
move/from16 v7, v27
move/from16 v8, v28
.line 96
invoke-static/range {v1 .. v8}, Lcom/alibaba/fastjson/parser/JSONLexer;->checkDate(CCCCCCII)Z
move-result v0
if-nez v0, :cond_57a
return v15
:cond_57a
move-object/from16 v0, p0
move/from16 v1, v20
move/from16 v2, v21
move/from16 v3, v18
move/from16 v4, v17
move/from16 v5, v25
move/from16 v6, v26
move/from16 v7, v27
move/from16 v8, v28
.line 97
invoke-direct/range {v0 .. v8}, Lcom/alibaba/fastjson/parser/JSONLexer;->setCalendar(CCCCCCCC)V
const/16 v0, 0x8
if-eq v10, v0, :cond_656
.line 98
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/16 v1, 0x9
add-int/2addr v0, v1
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v0
.line 99
iget v1, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v1, v1, 0xa
invoke-virtual {v9, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v1
.line 100
iget v2, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v2, v2, 0xb
invoke-virtual {v9, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v2
.line 101
iget v3, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v3, v3, 0xc
invoke-virtual {v9, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v8
.line 102
iget v3, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v3, v3, 0xd
invoke-virtual {v9, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v3
if-eqz v24, :cond_5d0
const/16 v4, 0x54
if-ne v1, v4, :cond_5d0
if-ne v3, v13, :cond_5d0
.line 103
iget v4, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v4, v4, 0x10
invoke-virtual {v9, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v4
const/16 v5, 0x5a
if-eq v4, v5, :cond_5dc
:cond_5d0
if-eqz v11, :cond_5f2
const/16 v4, 0x20
if-eq v1, v4, :cond_5da
const/16 v4, 0x54
if-ne v1, v4, :cond_5f2
:cond_5da
if-ne v3, v13, :cond_5f2
.line 104
:cond_5dc
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v0, v12
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v1
.line 105
iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v0, v0, 0xf
invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v0
move v3, v0
move v0, v8
const/16 v4, 0x30
const/16 v8, 0x30
goto :goto_5f6
:cond_5f2
move v4, v3
move v3, v2
move/from16 v2, v22
:goto_5f6
move/from16 v25, v2
move/from16 v26, v0
move/from16 v27, v1
move/from16 v28, v3
move/from16 v29, v8
move/from16 v30, v4
.line 106
invoke-static/range {v25 .. v30}, Lcom/alibaba/fastjson/parser/JSONLexer;->checkTime(CCCCCC)Z
move-result v5
if-nez v5, :cond_609
return v15
:cond_609
const/16 v5, 0x11
if-ne v10, v5, :cond_643
if-nez v24, :cond_643
.line 107
iget v5, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v5, v12
invoke-virtual {v9, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v5
.line 108
iget v6, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v6, v6, 0xf
invoke-virtual {v9, v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v6
.line 109
iget v7, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v7, v7, 0x10
invoke-virtual {v9, v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v7
if-lt v5, v14, :cond_642
const/16 v10, 0x39
if-le v5, v10, :cond_62d
goto :goto_642
:cond_62d
if-lt v6, v14, :cond_642
if-le v6, v10, :cond_632
goto :goto_642
:cond_632
if-lt v7, v14, :cond_642
if-le v7, v10, :cond_637
goto :goto_642
:cond_637
sub-int/2addr v5, v14
mul-int/lit8 v5, v5, 0x64
sub-int/2addr v6, v14
mul-int/lit8 v6, v6, 0xa
add-int/2addr v5, v6
sub-int/2addr v7, v14
add-int/2addr v5, v7
move v7, v5
goto :goto_644
:cond_642
:goto_642
return v15
:cond_643
const/4 v7, 0x0
:goto_644
sub-int/2addr v2, v14
mul-int/lit8 v2, v2, 0xa
sub-int/2addr v0, v14
add-int/2addr v0, v2
sub-int/2addr v1, v14
mul-int/lit8 v1, v1, 0xa
sub-int/2addr v3, v14
add-int/2addr v1, v3
sub-int/2addr v8, v14
mul-int/lit8 v8, v8, 0xa
sub-int/2addr v4, v14
add-int v2, v8, v4
move v15, v0
goto :goto_659
:cond_656
const/4 v1, 0x0
const/4 v2, 0x0
const/4 v7, 0x0
.line 110
:goto_659
iget-object v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar;
const/16 v3, 0xb
invoke-virtual {v0, v3, v15}, Ljava/util/Calendar;->set(II)V
.line 111
iget-object v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar;
const/16 v3, 0xc
invoke-virtual {v0, v3, v1}, Ljava/util/Calendar;->set(II)V
.line 112
iget-object v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar;
const/16 v1, 0xd
invoke-virtual {v0, v1, v2}, Ljava/util/Calendar;->set(II)V
.line 113
iget-object v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar;
invoke-virtual {v0, v12, v7}, Ljava/util/Calendar;->set(II)V
const/4 v0, 0x5
.line 114
iput v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
return v16
.end method
.method public final scanLongValue()J
.registers 14
const/4 v0, 0x0
.line 1
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
.line 2
iget-char v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/4 v2, 0x1
const/16 v3, 0x2d
if-ne v1, v3, :cond_3f
const-wide/high16 v0, -0x8000000000000000L
.line 3
iget v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
add-int/2addr v3, v2
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
.line 4
iget v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v3, v2
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 5
iget v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-ge v3, v4, :cond_24
.line 6
iget-object v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
invoke-virtual {v4, v3}, Ljava/lang/String;->charAt(I)C
move-result v3
iput-char v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/4 v3, 0x1
goto :goto_46
.line 7
:cond_24
new-instance v0, Lcom/alibaba/fastjson/JSONException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "syntax error, "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
:cond_3f
const-wide v3, -0x7fffffffffffffffL # -4.9E-324
move-wide v0, v3
const/4 v3, 0x0
:goto_46
const-wide/16 v4, 0x0
.line 8
:goto_48
iget-char v6, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v7, 0x30
if-lt v6, v7, :cond_c5
const/16 v7, 0x39
if-gt v6, v7, :cond_c5
add-int/lit8 v6, v6, -0x30
const-wide v7, -0xcccccccccccccccL
const-string v9, ", "
const-string v10, "error long value, "
cmp-long v11, v4, v7
if-ltz v11, :cond_a6
const-wide/16 v7, 0xa
mul-long v4, v4, v7
int-to-long v6, v6
add-long v11, v0, v6
cmp-long v8, v4, v11
if-ltz v8, :cond_87
sub-long/2addr v4, v6
.line 9
iget v6, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
add-int/2addr v6, v2
iput v6, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
.line 10
iget v6, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v6, v2
iput v6, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 11
iget v7, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v6, v7, :cond_7e
const/16 v6, 0x1a
goto :goto_84
:cond_7e
iget-object v7, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 12
invoke-virtual {v7, v6}, Ljava/lang/String;->charAt(I)C
move-result v6
:goto_84
iput-char v6, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
goto :goto_48
.line 13
:cond_87
new-instance v0, Lcom/alibaba/fastjson/JSONException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v4, v5}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v1, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 14
:cond_a6
new-instance v0, Lcom/alibaba/fastjson/JSONException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v4, v5}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v1, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
:cond_c5
if-nez v3, :cond_c8
neg-long v4, v4
:cond_c8
return-wide v4
.end method
.method public final scanNumber()V
.registers 10
.line 1
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
const/4 v1, 0x0
.line 2
iput-boolean v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->exp:Z
.line 3
iget-char v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v3, 0x2d
const/16 v4, 0x1a
const/4 v5, 0x1
if-ne v2, v3, :cond_27
.line 4
iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
add-int/2addr v2, v5
iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
add-int/2addr v0, v5
.line 5
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 6
iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v0, v2, :cond_1f
const/16 v0, 0x1a
goto :goto_25
:cond_1f
iget-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 7
invoke-virtual {v2, v0}, Ljava/lang/String;->charAt(I)C
move-result v0
:goto_25
iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
.line 8
:cond_27
:goto_27
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v2, 0x39
const/16 v6, 0x30
if-lt v0, v6, :cond_4b
if-gt v0, v2, :cond_4b
.line 9
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
add-int/2addr v0, v5
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
.line 10
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v0, v5
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 11
iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v0, v2, :cond_42
const/16 v0, 0x1a
goto :goto_48
:cond_42
iget-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 12
invoke-virtual {v2, v0}, Ljava/lang/String;->charAt(I)C
move-result v0
:goto_48
iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
goto :goto_27
.line 13
:cond_4b
iput-boolean v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->isDouble:Z
.line 14
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v1, 0x2e
if-ne v0, v1, :cond_8e
.line 15
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
add-int/2addr v0, v5
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
.line 16
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v0, v5
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 17
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v0, v1, :cond_64
const/16 v0, 0x1a
goto :goto_6a
:cond_64
iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 18
invoke-virtual {v1, v0}, Ljava/lang/String;->charAt(I)C
move-result v0
:goto_6a
iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
.line 19
iput-boolean v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->isDouble:Z
.line 20
:goto_6e
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
if-lt v0, v6, :cond_8e
if-gt v0, v2, :cond_8e
.line 21
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
add-int/2addr v0, v5
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
.line 22
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v0, v5
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 23
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v0, v1, :cond_85
const/16 v0, 0x1a
goto :goto_8b
:cond_85
iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 24
invoke-virtual {v1, v0}, Ljava/lang/String;->charAt(I)C
move-result v0
:goto_8b
iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
goto :goto_6e
.line 25
:cond_8e
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v1, 0x4c
if-ne v0, v1, :cond_9e
.line 26
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
add-int/2addr v0, v5
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
.line 27
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto/16 :goto_14e
:cond_9e
const/16 v1, 0x53
if-ne v0, v1, :cond_ac
.line 28
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
add-int/2addr v0, v5
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
.line 29
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto/16 :goto_14e
:cond_ac
const/16 v1, 0x42
if-ne v0, v1, :cond_ba
.line 30
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
add-int/2addr v0, v5
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
.line 31
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto/16 :goto_14e
:cond_ba
const/16 v1, 0x46
if-ne v0, v1, :cond_ca
.line 32
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
add-int/2addr v0, v5
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
.line 33
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
.line 34
iput-boolean v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->isDouble:Z
goto/16 :goto_14e
:cond_ca
const/16 v7, 0x44
if-ne v0, v7, :cond_da
.line 35
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
add-int/2addr v0, v5
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
.line 36
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
.line 37
iput-boolean v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->isDouble:Z
goto/16 :goto_14e
:cond_da
const/16 v8, 0x65
if-eq v0, v8, :cond_e2
const/16 v8, 0x45
if-ne v0, v8, :cond_14e
.line 38
:cond_e2
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
add-int/2addr v0, v5
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
.line 39
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v0, v5
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 40
iget v8, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v0, v8, :cond_f3
const/16 v0, 0x1a
goto :goto_f9
:cond_f3
iget-object v8, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 41
invoke-virtual {v8, v0}, Ljava/lang/String;->charAt(I)C
move-result v0
:goto_f9
iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
.line 42
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v8, 0x2b
if-eq v0, v8, :cond_103
if-ne v0, v3, :cond_11c
.line 43
:cond_103
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
add-int/2addr v0, v5
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
.line 44
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v0, v5
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 45
iget v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v0, v3, :cond_114
const/16 v0, 0x1a
goto :goto_11a
:cond_114
iget-object v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 46
invoke-virtual {v3, v0}, Ljava/lang/String;->charAt(I)C
move-result v0
:goto_11a
iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
.line 47
:cond_11c
:goto_11c
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
if-lt v0, v6, :cond_13c
if-gt v0, v2, :cond_13c
.line 48
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
add-int/2addr v0, v5
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
.line 49
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v0, v5
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 50
iget v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v0, v3, :cond_133
const/16 v0, 0x1a
goto :goto_139
:cond_133
iget-object v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 51
invoke-virtual {v3, v0}, Ljava/lang/String;->charAt(I)C
move-result v0
:goto_139
iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
goto :goto_11c
.line 52
:cond_13c
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
if-eq v0, v7, :cond_142
if-ne v0, v1, :cond_14a
.line 53
:cond_142
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
add-int/2addr v0, v5
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
.line 54
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
.line 55
:cond_14a
iput-boolean v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->exp:Z
.line 56
iput-boolean v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->isDouble:Z
.line 57
:cond_14e
:goto_14e
iget-boolean v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->isDouble:Z
if-eqz v0, :cond_156
const/4 v0, 0x3
.line 58
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
goto :goto_159
:cond_156
const/4 v0, 0x2
.line 59
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
:goto_159
return-void
.end method
.method public final scanNumberValue()Ljava/lang/Number;
.registers 23
move-object/from16 v1, p0
.line 1
iget v0, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/4 v2, 0x0
.line 2
iput v2, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
.line 3
iget-char v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v4, 0x2d
const/4 v6, 0x1
if-ne v3, v4, :cond_2a
const-wide/high16 v7, -0x8000000000000000L
.line 4
iget v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
add-int/2addr v3, v6
iput v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
add-int/lit8 v3, v0, 0x1
.line 5
iput v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 6
iget v9, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v3, v9, :cond_20
const/16 v3, 0x1a
goto :goto_26
:cond_20
iget-object v9, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 7
invoke-virtual {v9, v3}, Ljava/lang/String;->charAt(I)C
move-result v3
:goto_26
iput-char v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/4 v3, 0x1
goto :goto_30
:cond_2a
const-wide v7, -0x7fffffffffffffffL # -4.9E-324
const/4 v3, 0x0
:goto_30
const-wide/16 v9, 0x0
move-wide v10, v9
const/4 v9, 0x1
const/4 v12, 0x0
.line 8
:goto_35
iget-char v13, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const-wide v14, -0xcccccccccccccccL
const/16 v5, 0x12
const/16 v2, 0x39
const-wide/16 v16, 0xa
const/16 v4, 0x30
if-lt v13, v4, :cond_80
if-gt v13, v2, :cond_80
add-int/lit8 v13, v13, -0x30
if-ge v9, v5, :cond_51
mul-long v10, v10, v16
int-to-long v4, v13
:cond_4f
:goto_4f
sub-long/2addr v10, v4
goto :goto_61
:cond_51
cmp-long v2, v10, v14
if-gez v2, :cond_56
const/4 v12, 0x1
:cond_56
mul-long v10, v10, v16
int-to-long v4, v13
add-long v13, v7, v4
cmp-long v2, v10, v13
if-gez v2, :cond_4f
const/4 v12, 0x1
goto :goto_4f
.line 9
:goto_61
iget v2, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
add-int/2addr v2, v6
iput v2, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
.line 10
iget v2, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v2, v6
iput v2, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 11
iget v4, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v2, v4, :cond_72
const/16 v5, 0x1a
goto :goto_78
:cond_72
iget-object v4, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 12
invoke-virtual {v4, v2}, Ljava/lang/String;->charAt(I)C
move-result v5
:goto_78
iput-char v5, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
add-int/lit8 v9, v9, 0x1
const/4 v2, 0x0
const/16 v4, 0x2d
goto :goto_35
.line 13
:cond_80
iget-char v13, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v14, 0x2e
const/16 v15, 0x46
const/16 v19, 0x0
if-ne v13, v14, :cond_102
.line 14
iget v13, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
add-int/2addr v13, v6
iput v13, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
.line 15
iget v13, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v13, v6
iput v13, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 16
iget v14, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v13, v14, :cond_9b
const/16 v13, 0x1a
goto :goto_a1
:cond_9b
iget-object v14, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 17
invoke-virtual {v14, v13}, Ljava/lang/String;->charAt(I)C
move-result v13
:goto_a1
iput-char v13, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
move v13, v12
move v12, v9
const/4 v9, 0x0
.line 18
:goto_a6
iget-char v14, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
if-lt v14, v4, :cond_ec
if-gt v14, v2, :cond_ec
add-int/lit8 v9, v9, 0x1
add-int/lit8 v14, v14, -0x30
if-ge v12, v5, :cond_b7
mul-long v10, v10, v16
int-to-long v4, v14
:cond_b5
:goto_b5
sub-long/2addr v10, v4
goto :goto_cc
:cond_b7
const-wide v4, -0xcccccccccccccccL
cmp-long v18, v10, v4
if-gez v18, :cond_c1
const/4 v13, 0x1
:cond_c1
mul-long v10, v10, v16
int-to-long v4, v14
add-long v20, v7, v4
cmp-long v14, v10, v20
if-gez v14, :cond_b5
const/4 v13, 0x1
goto :goto_b5
.line 19
:goto_cc
iget v4, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
add-int/2addr v4, v6
iput v4, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
.line 20
iget v4, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v4, v6
iput v4, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 21
iget v5, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v4, v5, :cond_dd
const/16 v5, 0x1a
goto :goto_e3
:cond_dd
iget-object v5, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 22
invoke-virtual {v5, v4}, Ljava/lang/String;->charAt(I)C
move-result v5
:goto_e3
iput-char v5, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
add-int/lit8 v12, v12, 0x1
const/16 v4, 0x30
const/16 v5, 0x12
goto :goto_a6
:cond_ec
if-nez v3, :cond_ef
neg-long v10, v10
.line 23
:cond_ef
iget-char v4, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
if-eq v4, v15, :cond_f7
const/16 v5, 0x44
if-ne v4, v5, :cond_ff
.line 24
:cond_f7
iget v4, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
add-int/2addr v4, v6
iput v4, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
.line 25
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
:cond_ff
move v12, v13
const/4 v4, 0x1
goto :goto_162
:cond_102
if-nez v3, :cond_105
neg-long v10, v10
.line 26
:cond_105
iget-char v4, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v5, 0x4c
if-ne v4, v5, :cond_11a
.line 27
iget v4, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
add-int/2addr v4, v6
iput v4, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
.line 28
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
.line 29
invoke-static {v10, v11}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v19
:cond_117
:goto_117
const/4 v4, 0x0
const/4 v9, 0x0
goto :goto_162
:cond_11a
const/16 v5, 0x53
if-ne v4, v5, :cond_12d
.line 30
iget v4, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
add-int/2addr v4, v6
iput v4, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
.line 31
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
long-to-int v4, v10
int-to-short v4, v4
.line 32
invoke-static {v4}, Ljava/lang/Short;->valueOf(S)Ljava/lang/Short;
move-result-object v19
goto :goto_117
:cond_12d
const/16 v5, 0x42
if-ne v4, v5, :cond_140
.line 33
iget v4, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
add-int/2addr v4, v6
iput v4, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
.line 34
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
long-to-int v4, v10
int-to-byte v4, v4
.line 35
invoke-static {v4}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
move-result-object v19
goto :goto_117
:cond_140
if-ne v4, v15, :cond_150
.line 36
iget v4, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
add-int/2addr v4, v6
iput v4, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
.line 37
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
long-to-float v4, v10
.line 38
invoke-static {v4}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;
move-result-object v19
goto :goto_117
:cond_150
const/16 v5, 0x44
if-ne v4, v5, :cond_117
.line 39
iget v4, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
add-int/2addr v4, v6
iput v4, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
.line 40
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
long-to-double v4, v10
.line 41
invoke-static {v4, v5}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
move-result-object v19
goto :goto_117
.line 42
:goto_162
iget-char v5, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v7, 0x65
const/16 v8, 0x2b
if-eq v5, v7, :cond_173
const/16 v7, 0x45
if-ne v5, v7, :cond_16f
goto :goto_173
:cond_16f
const/4 v2, 0x0
const/4 v5, 0x0
goto/16 :goto_1e6
.line 43
:cond_173
:goto_173
iget v5, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
add-int/2addr v5, v6
iput v5, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
.line 44
iget v5, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v5, v6
iput v5, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 45
iget v7, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v5, v7, :cond_184
const/16 v5, 0x1a
goto :goto_18a
:cond_184
iget-object v7, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 46
invoke-virtual {v7, v5}, Ljava/lang/String;->charAt(I)C
move-result v5
:goto_18a
iput-char v5, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
.line 47
iget-char v5, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
if-eq v5, v8, :cond_194
const/16 v7, 0x2d
if-ne v5, v7, :cond_1ad
.line 48
:cond_194
iget v5, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
add-int/2addr v5, v6
iput v5, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
.line 49
iget v5, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v5, v6
iput v5, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 50
iget v7, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v5, v7, :cond_1a5
const/16 v5, 0x1a
goto :goto_1ab
:cond_1a5
iget-object v7, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 51
invoke-virtual {v7, v5}, Ljava/lang/String;->charAt(I)C
move-result v5
:goto_1ab
iput-char v5, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
.line 52
:cond_1ad
:goto_1ad
iget-char v5, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v7, 0x30
if-lt v5, v7, :cond_1cf
if-gt v5, v2, :cond_1cf
.line 53
iget v5, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
add-int/2addr v5, v6
iput v5, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
.line 54
iget v5, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v5, v6
iput v5, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 55
iget v7, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v5, v7, :cond_1c6
const/16 v5, 0x1a
goto :goto_1cc
:cond_1c6
iget-object v7, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 56
invoke-virtual {v7, v5}, Ljava/lang/String;->charAt(I)C
move-result v5
:goto_1cc
iput-char v5, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
goto :goto_1ad
.line 57
:cond_1cf
iget-char v2, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v5, 0x44
if-eq v2, v5, :cond_1da
if-ne v2, v15, :cond_1d8
goto :goto_1da
:cond_1d8
const/4 v2, 0x0
goto :goto_1e4
.line 58
:cond_1da
:goto_1da
iget v2, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
add-int/2addr v2, v6
iput v2, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
.line 59
iget-char v2, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
.line 60
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
:goto_1e4
move v5, v2
const/4 v2, 0x1
:goto_1e6
if-nez v4, :cond_220
if-nez v2, :cond_220
if-eqz v12, :cond_203
.line 61
iget v2, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int v3, v2, v0
.line 62
new-array v3, v3, [C
.line 63
iget-object v4, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
const/4 v5, 0x0
invoke-virtual {v4, v0, v2, v3, v5}, Ljava/lang/String;->getChars(II[CI)V
.line 64
new-instance v0, Ljava/lang/String;
invoke-direct {v0, v3}, Ljava/lang/String;-><init>([C)V
.line 65
new-instance v2, Ljava/math/BigInteger;
invoke-direct {v2, v0}, Ljava/math/BigInteger;-><init>(Ljava/lang/String;)V
goto :goto_205
:cond_203
move-object/from16 v2, v19
:goto_205
if-nez v2, :cond_21f
const-wide/32 v2, -0x80000000
cmp-long v0, v10, v2
if-lez v0, :cond_21b
const-wide/32 v2, 0x7fffffff
cmp-long v0, v10, v2
if-gez v0, :cond_21b
long-to-int v0, v10
.line 66
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v2
goto :goto_21f
.line 67
:cond_21b
invoke-static {v10, v11}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v2
:cond_21f
:goto_21f
return-object v2
.line 68
:cond_220
iget v4, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
sub-int/2addr v4, v0
if-eqz v5, :cond_227
add-int/lit8 v4, v4, -0x1
:cond_227
if-nez v2, :cond_25d
.line 69
iget v7, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I
sget-object v13, Lcom/alibaba/fastjson/parser/Feature;->UseBigDecimal:Lcom/alibaba/fastjson/parser/Feature;
iget v13, v13, Lcom/alibaba/fastjson/parser/Feature;->mask:I
and-int/2addr v7, v13
if-eqz v7, :cond_25d
if-nez v12, :cond_23a
.line 70
invoke-static {v10, v11, v9}, Ljava/math/BigDecimal;->valueOf(JI)Ljava/math/BigDecimal;
move-result-object v0
goto/16 :goto_2db
.line 71
:cond_23a
iget-object v2, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C
array-length v3, v2
if-ge v4, v3, :cond_24a
.line 72
iget-object v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
add-int v5, v0, v4
const/4 v7, 0x0
invoke-virtual {v3, v0, v5, v2, v7}, Ljava/lang/String;->getChars(II[CI)V
.line 73
iget-object v0, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C
goto :goto_255
:cond_24a
const/4 v7, 0x0
.line 74
new-array v2, v4, [C
.line 75
iget-object v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
add-int v5, v0, v4
invoke-virtual {v3, v0, v5, v2, v7}, Ljava/lang/String;->getChars(II[CI)V
move-object v0, v2
.line 76
:goto_255
new-instance v2, Ljava/math/BigDecimal;
invoke-direct {v2, v0, v7, v4}, Ljava/math/BigDecimal;-><init>([CII)V
move-object v0, v2
goto/16 :goto_2db
:cond_25d
const/4 v7, 0x0
.line 77
iget-object v9, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C
array-length v10, v9
if-ge v4, v10, :cond_26d
.line 78
iget-object v10, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
add-int v11, v0, v4
invoke-virtual {v10, v0, v11, v9, v7}, Ljava/lang/String;->getChars(II[CI)V
.line 79
iget-object v0, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C
goto :goto_277
.line 80
:cond_26d
new-array v9, v4, [C
.line 81
iget-object v10, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
add-int v11, v0, v4
invoke-virtual {v10, v0, v11, v9, v7}, Ljava/lang/String;->getChars(II[CI)V
move-object v0, v9
:goto_277
const/16 v9, 0x9
if-gt v4, v9, :cond_2c6
if-nez v2, :cond_2c6
.line 82
:try_start_27d
aget-char v2, v0, v7
const/16 v7, 0x2d
if-eq v2, v7, :cond_28a
if-ne v2, v8, :cond_286
goto :goto_28a
:cond_286
const/4 v7, 0x1
:goto_287
const/16 v8, 0x30
goto :goto_290
:cond_28a
:goto_28a
const/4 v2, 0x2
.line 83
aget-char v7, v0, v6
move v2, v7
const/4 v7, 0x2
goto :goto_287
:goto_290
sub-int/2addr v2, v8
const/4 v8, 0x0
:goto_292
if-ge v7, v4, :cond_2a8
.line 84
aget-char v9, v0, v7
const/16 v10, 0x2e
if-ne v9, v10, :cond_29c
const/4 v8, 0x1
goto :goto_2a5
:cond_29c
add-int/lit8 v9, v9, -0x30
mul-int/lit8 v2, v2, 0xa
add-int/2addr v2, v9
if-eqz v8, :cond_2a5
mul-int/lit8 v8, v8, 0xa
:cond_2a5
:goto_2a5
add-int/lit8 v7, v7, 0x1
goto :goto_292
:cond_2a8
if-ne v5, v15, :cond_2b5
int-to-float v0, v2
int-to-float v2, v8
div-float/2addr v0, v2
if-eqz v3, :cond_2b0
neg-float v0, v0
.line 85
:cond_2b0
invoke-static {v0}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;
move-result-object v0
:try_end_2b4
.catch Ljava/lang/NumberFormatException; {:try_start_27d .. :try_end_2b4} :catch_2dc
return-object v0
:cond_2b5
int-to-double v4, v2
int-to-double v6, v8
.line 86
invoke-static {v4, v5}, Ljava/lang/Double;->isNaN(D)Z
invoke-static {v6, v7}, Ljava/lang/Double;->isNaN(D)Z
div-double/2addr v4, v6
if-eqz v3, :cond_2c1
neg-double v4, v4
.line 87
:cond_2c1
:try_start_2c1
invoke-static {v4, v5}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
move-result-object v0
return-object v0
.line 88
:cond_2c6
new-instance v2, Ljava/lang/String;
const/4 v3, 0x0
invoke-direct {v2, v0, v3, v4}, Ljava/lang/String;-><init>([CII)V
if-ne v5, v15, :cond_2d3
.line 89
invoke-static {v2}, Ljava/lang/Float;->valueOf(Ljava/lang/String;)Ljava/lang/Float;
move-result-object v0
goto :goto_2db
.line 90
:cond_2d3
invoke-static {v2}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
move-result-wide v2
invoke-static {v2, v3}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
move-result-object v0
:try_end_2db
.catch Ljava/lang/NumberFormatException; {:try_start_2c1 .. :try_end_2db} :catch_2dc
:goto_2db
return-object v0
:catch_2dc
move-exception v0
.line 91
new-instance v2, Lcom/alibaba/fastjson/JSONException;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v0}, Ljava/lang/NumberFormatException;->getMessage()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v4, ", "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-direct {v2, v3, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
goto :goto_300
:goto_2ff
throw v2
:goto_300
goto :goto_2ff
.end method
.method public final scanString()V
.registers 12
.line 1
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
.line 2
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/4 v2, 0x1
add-int/2addr v1, v2
.line 3
iget-object v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
invoke-virtual {v3, v0, v1}, Ljava/lang/String;->indexOf(II)I
move-result v3
const/4 v4, -0x1
if-eq v3, v4, :cond_8b
sub-int v1, v3, v1
.line 4
iget v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v4, v2
invoke-virtual {p0, v4, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->sub_chars(II)[C
move-result-object v4
const/4 v5, 0x0
const/4 v6, 0x0
:goto_1a
const/16 v7, 0x5c
if-lez v1, :cond_5d
add-int/lit8 v8, v1, -0x1
.line 5
aget-char v8, v4, v8
if-ne v8, v7, :cond_5d
add-int/lit8 v8, v1, -0x2
const/4 v9, 0x1
:goto_27
if-ltz v8, :cond_32
.line 6
aget-char v10, v4, v8
if-ne v10, v7, :cond_32
add-int/lit8 v9, v9, 0x1
add-int/lit8 v8, v8, -0x1
goto :goto_27
.line 7
:cond_32
rem-int/lit8 v9, v9, 0x2
if-nez v9, :cond_37
goto :goto_5d
.line 8
:cond_37
iget-object v6, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
add-int/lit8 v7, v3, 0x1
invoke-virtual {v6, v0, v7}, Ljava/lang/String;->indexOf(II)I
move-result v6
sub-int v7, v6, v3
add-int/2addr v7, v1
.line 9
array-length v8, v4
if-lt v7, v8, :cond_54
.line 10
array-length v8, v4
mul-int/lit8 v8, v8, 0x3
div-int/lit8 v8, v8, 0x2
if-ge v8, v7, :cond_4d
move v8, v7
.line 11
:cond_4d
new-array v8, v8, [C
.line 12
array-length v9, v4
invoke-static {v4, v5, v8, v5, v9}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
move-object v4, v8
.line 13
:cond_54
iget-object v8, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
invoke-virtual {v8, v3, v6, v4, v1}, Ljava/lang/String;->getChars(II[CI)V
move v3, v6
move v1, v7
const/4 v6, 0x1
goto :goto_1a
:cond_5d
:goto_5d
if-nez v6, :cond_69
:goto_5f
if-ge v5, v1, :cond_69
.line 14
aget-char v0, v4, v5
if-ne v0, v7, :cond_66
const/4 v6, 0x1
:cond_66
add-int/lit8 v5, v5, 0x1
goto :goto_5f
.line 15
:cond_69
iput-object v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C
.line 16
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
.line 17
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
.line 18
iput-boolean v6, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->hasSpecial:Z
add-int/2addr v3, v2
.line 19
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 20
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 21
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v0, v1, :cond_7f
const/16 v0, 0x1a
goto :goto_85
:cond_7f
iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 22
invoke-virtual {v1, v0}, Ljava/lang/String;->charAt(I)C
move-result v0
:goto_85
iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/4 v0, 0x4
.line 23
iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
return-void
.line 24
:cond_8b
new-instance v0, Lcom/alibaba/fastjson/JSONException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "unclosed str, "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
goto :goto_a7
:goto_a6
throw v0
:goto_a7
goto :goto_a6
.end method
.method public scanStringValue(C)Ljava/lang/String;
.registers 9
.line 1
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v0, v0, 0x1
.line 2
iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
invoke-virtual {v1, p1, v0}, Ljava/lang/String;->indexOf(II)I
move-result v1
const/4 v2, -0x1
if-eq v1, v2, :cond_75
.line 3
sget-boolean v3, Lcom/alibaba/fastjson/parser/JSONLexer;->V6:Z
const/4 v4, 0x0
if-eqz v3, :cond_19
.line 4
iget-object v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
invoke-virtual {v3, v0, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v3
goto :goto_29
:cond_19
sub-int v3, v1, v0
.line 5
iget v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v5, v5, 0x1
invoke-virtual {p0, v5, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->sub_chars(II)[C
move-result-object v5
.line 6
new-instance v6, Ljava/lang/String;
invoke-direct {v6, v5, v4, v3}, Ljava/lang/String;-><init>([CII)V
move-object v3, v6
:goto_29
const/16 v5, 0x5c
.line 7
invoke-virtual {v3, v5}, Ljava/lang/String;->indexOf(I)I
move-result v6
if-eq v6, v2, :cond_5f
:goto_31
add-int/lit8 v2, v1, -0x1
const/4 v3, 0x0
:goto_34
if-ltz v2, :cond_43
.line 8
iget-object v6, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
invoke-virtual {v6, v2}, Ljava/lang/String;->charAt(I)C
move-result v6
if-ne v6, v5, :cond_43
add-int/lit8 v3, v3, 0x1
add-int/lit8 v2, v2, -0x1
goto :goto_34
.line 9
:cond_43
rem-int/lit8 v3, v3, 0x2
if-nez v3, :cond_56
sub-int p1, v1, v0
.line 10
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v0, v0, 0x1
invoke-virtual {p0, v0, p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->sub_chars(II)[C
move-result-object v0
.line 11
invoke-static {v0, p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->readString([CI)Ljava/lang/String;
move-result-object v3
goto :goto_5f
.line 12
:cond_56
iget-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
add-int/lit8 v1, v1, 0x1
invoke-virtual {v2, p1, v1}, Ljava/lang/String;->indexOf(II)I
move-result v1
goto :goto_31
:cond_5f
:goto_5f
add-int/lit8 v1, v1, 0x1
.line 13
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 14
iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 15
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p1, v0, :cond_6c
const/16 p1, 0x1a
goto :goto_72
:cond_6c
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 16
invoke-virtual {v0, p1}, Ljava/lang/String;->charAt(I)C
move-result p1
:goto_72
iput-char p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
return-object v3
.line 17
:cond_75
new-instance p1, Lcom/alibaba/fastjson/JSONException;
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "unclosed str, "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
goto :goto_91
:goto_90
throw p1
:goto_91
goto :goto_90
.end method
.method public final scanSymbol(Lcom/alibaba/fastjson/parser/SymbolTable;)Ljava/lang/String;
.registers 6
.line 1
:goto_0
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v1, 0x20
if-eq v0, v1, :cond_52
const/16 v1, 0xa
if-eq v0, v1, :cond_52
const/16 v1, 0xd
if-eq v0, v1, :cond_52
const/16 v2, 0x9
if-eq v0, v2, :cond_52
const/16 v2, 0xc
if-eq v0, v2, :cond_52
const/16 v2, 0x8
if-ne v0, v2, :cond_1b
goto :goto_52
:cond_1b
const/16 v2, 0x22
if-ne v0, v2, :cond_24
.line 2
invoke-virtual {p0, p1, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanSymbol(Lcom/alibaba/fastjson/parser/SymbolTable;C)Ljava/lang/String;
move-result-object p1
return-object p1
:cond_24
const/16 v2, 0x27
if-ne v0, v2, :cond_2d
.line 3
invoke-virtual {p0, p1, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanSymbol(Lcom/alibaba/fastjson/parser/SymbolTable;C)Ljava/lang/String;
move-result-object p1
return-object p1
:cond_2d
const/16 v2, 0x7d
const/4 v3, 0x0
if-ne v0, v2, :cond_38
.line 4
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
.line 5
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
return-object v3
:cond_38
const/16 v1, 0x2c
if-ne v0, v1, :cond_44
.line 6
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
const/16 p1, 0x10
.line 7
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
return-object v3
:cond_44
const/16 v1, 0x1a
if-ne v0, v1, :cond_4d
const/16 p1, 0x14
.line 8
iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
return-object v3
.line 9
:cond_4d
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanSymbolUnQuoted(Lcom/alibaba/fastjson/parser/SymbolTable;)Ljava/lang/String;
move-result-object p1
return-object p1
.line 10
:cond_52
:goto_52
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto :goto_0
.end method
.method public scanSymbol(Lcom/alibaba/fastjson/parser/SymbolTable;C)Ljava/lang/String;
.registers 13
.line 11
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/4 v1, 0x1
add-int/2addr v0, v1
.line 12
iget-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
invoke-virtual {v2, p2, v0}, Ljava/lang/String;->indexOf(II)I
move-result v2
const/4 v3, -0x1
if-eq v2, v3, :cond_9c
sub-int v0, v2, v0
.line 13
iget v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v3, v1
invoke-virtual {p0, v3, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->sub_chars(II)[C
move-result-object v3
const/4 v4, 0x0
move v5, v2
const/4 v2, 0x0
:goto_19
const/16 v6, 0x5c
if-lez v0, :cond_5c
add-int/lit8 v7, v0, -0x1
.line 14
aget-char v7, v3, v7
if-ne v7, v6, :cond_5c
add-int/lit8 v7, v0, -0x2
const/4 v8, 0x1
:goto_26
if-ltz v7, :cond_31
.line 15
aget-char v9, v3, v7
if-ne v9, v6, :cond_31
add-int/lit8 v8, v8, 0x1
add-int/lit8 v7, v7, -0x1
goto :goto_26
.line 16
:cond_31
rem-int/lit8 v8, v8, 0x2
if-nez v8, :cond_36
goto :goto_5c
.line 17
:cond_36
iget-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
add-int/lit8 v6, v5, 0x1
invoke-virtual {v2, p2, v6}, Ljava/lang/String;->indexOf(II)I
move-result v2
sub-int v6, v2, v5
add-int/2addr v6, v0
.line 18
array-length v7, v3
if-lt v6, v7, :cond_53
.line 19
array-length v7, v3
mul-int/lit8 v7, v7, 0x3
div-int/lit8 v7, v7, 0x2
if-ge v7, v6, :cond_4c
move v7, v6
.line 20
:cond_4c
new-array v7, v7, [C
.line 21
array-length v8, v3
invoke-static {v3, v4, v7, v4, v8}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
move-object v3, v7
.line 22
:cond_53
iget-object v7, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
invoke-virtual {v7, v5, v2, v3, v0}, Ljava/lang/String;->getChars(II[CI)V
move v5, v2
move v0, v6
const/4 v2, 0x1
goto :goto_19
:cond_5c
:goto_5c
if-nez v2, :cond_83
const/4 p2, 0x0
const/4 v7, 0x0
:goto_60
if-ge p2, v0, :cond_6d
.line 23
aget-char v8, v3, p2
mul-int/lit8 v7, v7, 0x1f
add-int/2addr v7, v8
if-ne v8, v6, :cond_6a
const/4 v2, 0x1
:cond_6a
add-int/lit8 p2, p2, 0x1
goto :goto_60
:cond_6d
if-eqz v2, :cond_74
.line 24
invoke-static {v3, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->readString([CI)Ljava/lang/String;
move-result-object p1
goto :goto_87
:cond_74
const/16 p2, 0x14
if-ge v0, p2, :cond_7d
.line 25
invoke-virtual {p1, v3, v4, v0, v7}, Lcom/alibaba/fastjson/parser/SymbolTable;->addSymbol([CIII)Ljava/lang/String;
move-result-object p1
goto :goto_87
:cond_7d
new-instance p1, Ljava/lang/String;
invoke-direct {p1, v3, v4, v0}, Ljava/lang/String;-><init>([CII)V
goto :goto_87
.line 26
:cond_83
invoke-static {v3, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->readString([CI)Ljava/lang/String;
move-result-object p1
:goto_87
add-int/2addr v5, v1
.line 27
iput v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 28
iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 29
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p2, v0, :cond_93
const/16 p2, 0x1a
goto :goto_99
:cond_93
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 30
invoke-virtual {v0, p2}, Ljava/lang/String;->charAt(I)C
move-result p2
:goto_99
iput-char p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
return-object p1
.line 31
:cond_9c
new-instance p1, Lcom/alibaba/fastjson/JSONException;
new-instance p2, Ljava/lang/StringBuilder;
invoke-direct {p2}, Ljava/lang/StringBuilder;-><init>()V
const-string v0, "unclosed str, "
invoke-virtual {p2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object v0
invoke-virtual {p2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-direct {p1, p2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
goto :goto_b8
:goto_b7
throw p1
:goto_b8
goto :goto_b7
.end method
.method public final scanSymbolUnQuoted(Lcom/alibaba/fastjson/parser/SymbolTable;)Ljava/lang/String;
.registers 7
.line 1
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
.line 2
sget-object v1, Lcom/alibaba/fastjson/parser/JSONLexer;->firstIdentifierFlags:[Z
array-length v2, v1
const/4 v3, 0x1
if-ge v0, v2, :cond_f
aget-boolean v1, v1, v0
if-eqz v1, :cond_d
goto :goto_f
:cond_d
const/4 v1, 0x0
goto :goto_10
:cond_f
:goto_f
const/4 v1, 0x1
:goto_10
if-eqz v1, :cond_58
.line 3
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
.line 4
iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
.line 5
:goto_18
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
move-result v1
.line 6
sget-object v2, Lcom/alibaba/fastjson/parser/JSONLexer;->identifierFlags:[Z
array-length v4, v2
if-ge v1, v4, :cond_4f
.line 7
aget-boolean v2, v2, v1
if-nez v2, :cond_4f
.line 8
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C
move-result v1
iput-char v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v1, 0x12
.line 9
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 10
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
const/4 v2, 0x4
if-ne v1, v2, :cond_44
iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
const-string v3, "null"
.line 11
invoke-virtual {v1, v3, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;I)Z
move-result v1
if-eqz v1, :cond_44
const/4 p1, 0x0
return-object p1
.line 12
:cond_44
iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
iget v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
invoke-virtual {p1, v1, v2, v3, v0}, Lcom/alibaba/fastjson/parser/SymbolTable;->addSymbol(Ljava/lang/String;III)Ljava/lang/String;
move-result-object p1
return-object p1
:cond_4f
mul-int/lit8 v0, v0, 0x1f
add-int/2addr v0, v1
.line 13
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
add-int/2addr v1, v3
iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
goto :goto_18
.line 14
:cond_58
new-instance p1, Lcom/alibaba/fastjson/JSONException;
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "illegal identifier : "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-char v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
const-string v1, ", "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 15
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
goto :goto_7e
:goto_7d
throw p1
:goto_7e
goto :goto_7d
.end method
.method protected setTime(CCCCCC)V
.registers 7
add-int/lit8 p1, p1, -0x30
mul-int/lit8 p1, p1, 0xa
add-int/lit8 p2, p2, -0x30
add-int/2addr p1, p2
add-int/lit8 p3, p3, -0x30
mul-int/lit8 p3, p3, 0xa
add-int/lit8 p4, p4, -0x30
add-int/2addr p3, p4
add-int/lit8 p5, p5, -0x30
mul-int/lit8 p5, p5, 0xa
add-int/lit8 p6, p6, -0x30
add-int/2addr p5, p6
.line 1
iget-object p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar;
const/16 p4, 0xb
invoke-virtual {p2, p4, p1}, Ljava/util/Calendar;->set(II)V
.line 2
iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar;
const/16 p2, 0xc
invoke-virtual {p1, p2, p3}, Ljava/util/Calendar;->set(II)V
.line 3
iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar;
const/16 p2, 0xd
invoke-virtual {p1, p2, p5}, Ljava/util/Calendar;->set(II)V
return-void
.end method
.method protected setTimeZone(CCC)V
.registers 4
add-int/lit8 p2, p2, -0x30
mul-int/lit8 p2, p2, 0xa
add-int/lit8 p3, p3, -0x30
add-int/2addr p2, p3
mul-int/lit16 p2, p2, 0xe10
mul-int/lit16 p2, p2, 0x3e8
const/16 p3, 0x2d
if-ne p1, p3, :cond_10
neg-int p2, p2
.line 1
:cond_10
iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar;
invoke-virtual {p1}, Ljava/util/Calendar;->getTimeZone()Ljava/util/TimeZone;
move-result-object p1
invoke-virtual {p1}, Ljava/util/TimeZone;->getRawOffset()I
move-result p1
if-eq p1, p2, :cond_2f
.line 2
invoke-static {p2}, Ljava/util/TimeZone;->getAvailableIDs(I)[Ljava/lang/String;
move-result-object p1
.line 3
array-length p2, p1
if-lez p2, :cond_2f
const/4 p2, 0x0
.line 4
aget-object p1, p1, p2
invoke-static {p1}, Ljava/util/TimeZone;->getTimeZone(Ljava/lang/String;)Ljava/util/TimeZone;
move-result-object p1
.line 5
iget-object p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar;
invoke-virtual {p2, p1}, Ljava/util/Calendar;->setTimeZone(Ljava/util/TimeZone;)V
:cond_2f
return-void
.end method
.method protected skipComment()V
.registers 5
.line 1
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
.line 2
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v1, 0x2f
if-ne v0, v1, :cond_16
.line 3
:cond_9
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
.line 4
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v1, 0xa
if-ne v0, v1, :cond_9
.line 5
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
return-void
:cond_16
const/16 v2, 0x2a
if-ne v0, v2, :cond_35
.line 6
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
.line 7
:cond_1d
:goto_1d
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v3, 0x1a
if-eq v0, v3, :cond_34
if-ne v0, v2, :cond_30
.line 8
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
.line 9
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
if-ne v0, v1, :cond_1d
.line 10
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto :goto_34
.line 11
:cond_30
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto :goto_1d
:cond_34
:goto_34
return-void
.line 12
:cond_35
new-instance v0, Lcom/alibaba/fastjson/JSONException;
const-string v1, "invalid comment"
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
goto :goto_3e
:goto_3d
throw v0
:goto_3e
goto :goto_3d
.end method
.method final skipWhitespace()V
.registers 4
.line 1
:goto_0
iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v1, 0x2f
if-gt v0, v1, :cond_29
const/16 v2, 0x20
if-eq v0, v2, :cond_25
const/16 v2, 0xd
if-eq v0, v2, :cond_25
const/16 v2, 0xa
if-eq v0, v2, :cond_25
const/16 v2, 0x9
if-eq v0, v2, :cond_25
const/16 v2, 0xc
if-eq v0, v2, :cond_25
const/16 v2, 0x8
if-ne v0, v2, :cond_1f
goto :goto_25
:cond_1f
if-ne v0, v1, :cond_29
.line 2
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->skipComment()V
goto :goto_0
.line 3
:cond_25
:goto_25
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
goto :goto_0
:cond_29
return-void
.end method
.method public final stringVal()Ljava/lang/String;
.registers 3
.line 1
iget-boolean v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->hasSpecial:Z
if-eqz v0, :cond_d
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
.line 2
invoke-static {v0, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->readString([CI)Ljava/lang/String;
move-result-object v0
goto :goto_17
:cond_d
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I
add-int/lit8 v0, v0, 0x1
iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
.line 3
invoke-direct {p0, v0, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->subString(II)Ljava/lang/String;
move-result-object v0
:goto_17
return-object v0
.end method
.method final sub_chars(II)[C
.registers 6
.line 1
iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C
array-length v1, v0
const/4 v2, 0x0
if-ge p2, v1, :cond_f
.line 2
iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
add-int/2addr p2, p1
invoke-virtual {v1, p1, p2, v0, v2}, Ljava/lang/String;->getChars(II[CI)V
.line 3
iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C
return-object p1
.line 4
:cond_f
new-array v0, p2, [C
iput-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C
.line 5
iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
add-int/2addr p2, p1
invoke-virtual {v1, p1, p2, v0, v2}, Ljava/lang/String;->getChars(II[CI)V
return-object v0
.end method
.method public final token()I
.registers 2
.line 1
iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
return v0
.end method