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