f0.smali

.class public final Lcom/alibaba/fastjson/serializer/f0;
.super Lcom/alibaba/fastjson/serializer/x0;
.source "SourceFile"

# interfaces
.implements Lcom/alibaba/fastjson/serializer/o0;


# instance fields
.field public final i:[Lcom/alibaba/fastjson/serializer/x;

.field public final j:[Lcom/alibaba/fastjson/serializer/x;

.field public k:Lcom/alibaba/fastjson/serializer/u0;


# direct methods
.method public constructor <init>(Lcom/alibaba/fastjson/serializer/u0;)V
    .registers 11

    .line 2
    invoke-direct {p0}, Lcom/alibaba/fastjson/serializer/x0;-><init>()V

    .line 3
    iput-object p1, p0, Lcom/alibaba/fastjson/serializer/f0;->k:Lcom/alibaba/fastjson/serializer/u0;

    .line 4
    iget-object v0, p1, Lcom/alibaba/fastjson/serializer/u0;->e:[Lcom/alibaba/fastjson/util/c;

    array-length v0, v0

    new-array v0, v0, [Lcom/alibaba/fastjson/serializer/x;

    iput-object v0, p0, Lcom/alibaba/fastjson/serializer/f0;->j:[Lcom/alibaba/fastjson/serializer/x;

    const/4 v0, 0x0

    const/4 v1, 0x0

    .line 5
    :goto_e
    iget-object v2, p0, Lcom/alibaba/fastjson/serializer/f0;->j:[Lcom/alibaba/fastjson/serializer/x;

    array-length v3, v2

    if-ge v1, v3, :cond_23

    .line 6
    new-instance v3, Lcom/alibaba/fastjson/serializer/x;

    iget-object v4, p1, Lcom/alibaba/fastjson/serializer/u0;->a:Ljava/lang/Class;

    iget-object v5, p1, Lcom/alibaba/fastjson/serializer/u0;->e:[Lcom/alibaba/fastjson/util/c;

    aget-object v5, v5, v1

    invoke-direct {v3, v4, v5}, Lcom/alibaba/fastjson/serializer/x;-><init>(Ljava/lang/Class;Lcom/alibaba/fastjson/util/c;)V

    aput-object v3, v2, v1

    add-int/lit8 v1, v1, 0x1

    goto :goto_e

    .line 7
    :cond_23
    iget-object v1, p1, Lcom/alibaba/fastjson/serializer/u0;->d:[Lcom/alibaba/fastjson/util/c;

    iget-object v3, p1, Lcom/alibaba/fastjson/serializer/u0;->e:[Lcom/alibaba/fastjson/util/c;

    if-ne v1, v3, :cond_2c

    .line 8
    iput-object v2, p0, Lcom/alibaba/fastjson/serializer/f0;->i:[Lcom/alibaba/fastjson/serializer/x;

    goto :goto_6c

    .line 9
    :cond_2c
    array-length v1, v1

    new-array v1, v1, [Lcom/alibaba/fastjson/serializer/x;

    iput-object v1, p0, Lcom/alibaba/fastjson/serializer/f0;->i:[Lcom/alibaba/fastjson/serializer/x;

    const/4 v1, 0x0

    .line 10
    :goto_32
    iget-object v2, p0, Lcom/alibaba/fastjson/serializer/f0;->i:[Lcom/alibaba/fastjson/serializer/x;

    array-length v3, v2

    if-ge v1, v3, :cond_6c

    .line 11
    iget-object v3, p1, Lcom/alibaba/fastjson/serializer/u0;->d:[Lcom/alibaba/fastjson/util/c;

    aget-object v3, v3, v1

    iget-object v3, v3, Lcom/alibaba/fastjson/util/c;->a:Ljava/lang/String;

    const/4 v4, 0x0

    if-nez v3, :cond_41

    goto :goto_67

    .line 12
    :cond_41
    iget-object v5, p0, Lcom/alibaba/fastjson/serializer/f0;->j:[Lcom/alibaba/fastjson/serializer/x;

    array-length v5, v5

    add-int/lit8 v5, v5, -0x1

    const/4 v6, 0x0

    :goto_47
    if-gt v6, v5, :cond_67

    add-int v7, v6, v5

    ushr-int/lit8 v7, v7, 0x1

    .line 13
    iget-object v8, p0, Lcom/alibaba/fastjson/serializer/f0;->j:[Lcom/alibaba/fastjson/serializer/x;

    aget-object v8, v8, v7

    iget-object v8, v8, Lcom/alibaba/fastjson/serializer/x;->a:Lcom/alibaba/fastjson/util/c;

    iget-object v8, v8, Lcom/alibaba/fastjson/util/c;->a:Ljava/lang/String;

    .line 14
    invoke-virtual {v8, v3}, Ljava/lang/String;->compareTo(Ljava/lang/String;)I

    move-result v8

    if-gez v8, :cond_5e

    add-int/lit8 v6, v7, 0x1

    goto :goto_47

    :cond_5e
    if-lez v8, :cond_63

    add-int/lit8 v5, v7, -0x1

    goto :goto_47

    .line 15
    :cond_63
    iget-object v3, p0, Lcom/alibaba/fastjson/serializer/f0;->j:[Lcom/alibaba/fastjson/serializer/x;

    aget-object v4, v3, v7

    .line 16
    :cond_67
    :goto_67
    aput-object v4, v2, v1

    add-int/lit8 v1, v1, 0x1

    goto :goto_32

    :cond_6c
    :goto_6c
    return-void
.end method

.method public constructor <init>(Ljava/lang/Class;)V
    .registers 2
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/lang/Class<",
            "*>;)V"
        }
    .end annotation

    .line 1
    invoke-static {p1}, Lcom/alibaba/fastjson/util/j;->a(Ljava/lang/Class;)Lcom/alibaba/fastjson/serializer/u0;

    move-result-object p1

    invoke-direct {p0, p1}, Lcom/alibaba/fastjson/serializer/f0;-><init>(Lcom/alibaba/fastjson/serializer/u0;)V

    return-void
.end method


# virtual methods
.method public final d(Lcom/alibaba/fastjson/serializer/e0;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/reflect/Type;I)V
    .registers 31
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;
        }
    .end annotation

    move-object/from16 v7, p0

    move-object/from16 v8, p1

    move-object/from16 v9, p2

    move-object/from16 v10, p3

    move-object/from16 v0, p4

    .line 1
    iget-object v11, v8, Lcom/alibaba/fastjson/serializer/e0;->j:Lcom/alibaba/fastjson/serializer/y0;

    if-nez v9, :cond_12

    .line 2
    invoke-virtual {v11}, Lcom/alibaba/fastjson/serializer/y0;->K()V

    return-void

    .line 3
    :cond_12
    iget-object v1, v8, Lcom/alibaba/fastjson/serializer/e0;->o:Lcom/alibaba/fastjson/serializer/t0;

    .line 4
    sget-object v2, Lcom/alibaba/fastjson/serializer/z0;->DisableCircularReferenceDetect:Lcom/alibaba/fastjson/serializer/z0;

    iget v2, v2, Lcom/alibaba/fastjson/serializer/z0;->mask:I

    if-eqz v1, :cond_33

    .line 5
    iget v1, v1, Lcom/alibaba/fastjson/serializer/t0;->d:I

    and-int/2addr v1, v2

    if-nez v1, :cond_33

    and-int v1, p5, v2

    if-eqz v1, :cond_24

    goto :goto_33

    .line 6
    :cond_24
    iget-object v1, v8, Lcom/alibaba/fastjson/serializer/e0;->n:Ljava/util/IdentityHashMap;

    if-eqz v1, :cond_33

    invoke-virtual {v1, v9}, Ljava/util/IdentityHashMap;->containsKey(Ljava/lang/Object;)Z

    move-result v1

    if-eqz v1, :cond_33

    .line 7
    invoke-virtual/range {p1 .. p2}, Lcom/alibaba/fastjson/serializer/e0;->u(Ljava/lang/Object;)V

    const/4 v1, 0x1

    goto :goto_34

    :cond_33
    :goto_33
    const/4 v1, 0x0

    :goto_34
    if-eqz v1, :cond_37

    return-void

    .line 8
    :cond_37
    iget-boolean v1, v11, Lcom/alibaba/fastjson/serializer/y0;->g:Z

    if-eqz v1, :cond_3e

    .line 9
    iget-object v1, v7, Lcom/alibaba/fastjson/serializer/f0;->j:[Lcom/alibaba/fastjson/serializer/x;

    goto :goto_40

    .line 10
    :cond_3e
    iget-object v1, v7, Lcom/alibaba/fastjson/serializer/f0;->i:[Lcom/alibaba/fastjson/serializer/x;

    :goto_40
    move-object v14, v1

    .line 11
    iget-object v15, v8, Lcom/alibaba/fastjson/serializer/e0;->o:Lcom/alibaba/fastjson/serializer/t0;

    .line 12
    iget-object v1, v7, Lcom/alibaba/fastjson/serializer/f0;->k:Lcom/alibaba/fastjson/serializer/u0;

    iget v5, v1, Lcom/alibaba/fastjson/serializer/u0;->f:I

    move-object/from16 v1, p1

    move-object v2, v15

    move-object/from16 v3, p2

    move-object/from16 v4, p3

    move/from16 v6, p5

    invoke-virtual/range {v1 .. v6}, Lcom/alibaba/fastjson/serializer/e0;->q(Lcom/alibaba/fastjson/serializer/t0;Ljava/lang/Object;Ljava/lang/Object;II)V

    .line 13
    sget-object v1, Lcom/alibaba/fastjson/serializer/z0;->BeanToArray:Lcom/alibaba/fastjson/serializer/z0;

    iget v1, v1, Lcom/alibaba/fastjson/serializer/z0;->mask:I

    .line 14
    iget-object v2, v7, Lcom/alibaba/fastjson/serializer/f0;->k:Lcom/alibaba/fastjson/serializer/u0;

    iget v2, v2, Lcom/alibaba/fastjson/serializer/u0;->f:I

    and-int/2addr v2, v1

    if-nez v2, :cond_6c

    iget-object v2, v8, Lcom/alibaba/fastjson/serializer/e0;->j:Lcom/alibaba/fastjson/serializer/y0;

    iget-boolean v2, v2, Lcom/alibaba/fastjson/serializer/y0;->i:Z

    if-nez v2, :cond_6c

    and-int v1, p5, v1

    if-eqz v1, :cond_69

    goto :goto_6c

    :cond_69
    const/16 v16, 0x0

    goto :goto_6e

    :cond_6c
    :goto_6c
    const/16 v16, 0x1

    :goto_6e
    if-eqz v16, :cond_73

    const/16 v1, 0x5b

    goto :goto_75

    :cond_73
    const/16 v1, 0x7b

    :goto_75
    if-eqz v16, :cond_7c

    const/16 v2, 0x5d

    const/16 v6, 0x5d

    goto :goto_80

    :cond_7c
    const/16 v2, 0x7d

    const/16 v6, 0x7d

    .line 15
    :goto_80
    :try_start_80
    invoke-virtual {v11, v1}, Lcom/alibaba/fastjson/serializer/y0;->write(I)V

    .line 16
    array-length v1, v14

    if-lez v1, :cond_94

    sget-object v1, Lcom/alibaba/fastjson/serializer/z0;->PrettyFormat:Lcom/alibaba/fastjson/serializer/z0;

    invoke-virtual {v11, v1}, Lcom/alibaba/fastjson/serializer/y0;->u(Lcom/alibaba/fastjson/serializer/z0;)Z

    move-result v1

    if-eqz v1, :cond_94

    .line 17
    invoke-virtual/range {p1 .. p1}, Lcom/alibaba/fastjson/serializer/e0;->m()V

    .line 18
    invoke-virtual/range {p1 .. p1}, Lcom/alibaba/fastjson/serializer/e0;->o()V

    .line 19
    :cond_94
    iget-object v1, v7, Lcom/alibaba/fastjson/serializer/f0;->k:Lcom/alibaba/fastjson/serializer/u0;

    iget v1, v1, Lcom/alibaba/fastjson/serializer/u0;->f:I

    sget-object v2, Lcom/alibaba/fastjson/serializer/z0;->WriteClassName:Lcom/alibaba/fastjson/serializer/z0;

    iget v2, v2, Lcom/alibaba/fastjson/serializer/z0;->mask:I

    and-int/2addr v1, v2

    if-nez v1, :cond_a5

    .line 20
    invoke-virtual {v8, v0}, Lcom/alibaba/fastjson/serializer/e0;->n(Ljava/lang/reflect/Type;)Z

    move-result v1

    if-eqz v1, :cond_b0

    .line 21
    :cond_a5
    invoke-virtual/range {p2 .. p2}, Ljava/lang/Object;->getClass()Ljava/lang/Class;

    move-result-object v1

    if-eq v1, v0, :cond_b0

    .line 22
    invoke-virtual/range {p0 .. p2}, Lcom/alibaba/fastjson/serializer/f0;->m(Lcom/alibaba/fastjson/serializer/e0;Ljava/lang/Object;)V

    const/4 v0, 0x1

    goto :goto_b1

    :cond_b0
    const/4 v0, 0x0

    :goto_b1
    const/16 v5, 0x2c

    if-eqz v0, :cond_b8

    const/16 v0, 0x2c

    goto :goto_b9

    :cond_b8
    const/4 v0, 0x0

    .line 23
    :goto_b9
    iget-boolean v1, v11, Lcom/alibaba/fastjson/serializer/y0;->f:Z

    if-eqz v1, :cond_c4

    iget-boolean v1, v11, Lcom/alibaba/fastjson/serializer/y0;->e:Z

    if-nez v1, :cond_c4

    const/16 v17, 0x1

    goto :goto_c6

    :cond_c4
    const/16 v17, 0x0

    .line 24
    :goto_c6
    invoke-virtual {v7, v8, v9, v0}, Lcom/alibaba/fastjson/serializer/f0;->l(Lcom/alibaba/fastjson/serializer/e0;Ljava/lang/Object;C)C

    move-result v0

    if-ne v0, v5, :cond_ce

    const/4 v0, 0x1

    goto :goto_cf

    :cond_ce
    const/4 v0, 0x0

    .line 25
    :goto_cf
    sget-object v1, Lcom/alibaba/fastjson/serializer/z0;->SkipTransientField:Lcom/alibaba/fastjson/serializer/z0;

    invoke-virtual {v11, v1}, Lcom/alibaba/fastjson/serializer/y0;->u(Lcom/alibaba/fastjson/serializer/z0;)Z

    move-result v18

    .line 26
    sget-object v1, Lcom/alibaba/fastjson/serializer/z0;->IgnoreNonFieldGetter:Lcom/alibaba/fastjson/serializer/z0;

    invoke-virtual {v11, v1}, Lcom/alibaba/fastjson/serializer/y0;->u(Lcom/alibaba/fastjson/serializer/z0;)Z

    move-result v19

    move/from16 v20, v0

    const/4 v4, 0x0

    .line 27
    :goto_de
    array-length v0, v14
    :try_end_df
    .catch Ljava/lang/Exception; {:try_start_80 .. :try_end_df} :catch_2d4
    .catchall {:try_start_80 .. :try_end_df} :catchall_2d0

    if-ge v4, v0, :cond_297

    .line 28
    :try_start_e1
    aget-object v3, v14, v4

    .line 29
    iget-object v2, v3, Lcom/alibaba/fastjson/serializer/x;->a:Lcom/alibaba/fastjson/util/c;

    iget-object v0, v2, Lcom/alibaba/fastjson/util/c;->c:Ljava/lang/reflect/Field;

    .line 30
    iget-object v1, v2, Lcom/alibaba/fastjson/util/c;->a:Ljava/lang/String;

    .line 31
    iget-object v12, v2, Lcom/alibaba/fastjson/util/c;->e:Ljava/lang/Class;
    :try_end_eb
    .catch Ljava/lang/Exception; {:try_start_e1 .. :try_end_eb} :catch_293
    .catchall {:try_start_e1 .. :try_end_eb} :catchall_28f

    if-eqz v18, :cond_f4

    if-eqz v0, :cond_f4

    .line 32
    :try_start_ef
    iget-boolean v5, v2, Lcom/alibaba/fastjson/util/c;->n:Z
    :try_end_f1
    .catch Ljava/lang/Exception; {:try_start_ef .. :try_end_f1} :catch_2d4
    .catchall {:try_start_ef .. :try_end_f1} :catchall_2d0

    if-eqz v5, :cond_f4

    goto :goto_f8

    :cond_f4
    if-eqz v19, :cond_104

    if-nez v0, :cond_104

    :cond_f8
    :goto_f8
    move v13, v4

    move/from16 v23, v6

    move-object/from16 v22, v14

    move-object/from16 v21, v15

    const/4 v2, 0x0

    const/16 v7, 0x2c

    goto/16 :goto_27f

    .line 33
    :cond_104
    :try_start_104
    invoke-virtual {v7, v8, v9, v1}, Lcom/alibaba/fastjson/serializer/x0;->f(Lcom/alibaba/fastjson/serializer/e0;Ljava/lang/Object;Ljava/lang/String;)Z

    move-result v0

    if-eqz v0, :cond_f8

    iget-object v0, v2, Lcom/alibaba/fastjson/util/c;->k:Ljava/lang/String;

    .line 34
    invoke-virtual {v7, v8, v0}, Lcom/alibaba/fastjson/serializer/f0;->i(Lcom/alibaba/fastjson/serializer/e0;Ljava/lang/String;)Z

    move-result v0
    :try_end_110
    .catch Ljava/lang/Exception; {:try_start_104 .. :try_end_110} :catch_293
    .catchall {:try_start_104 .. :try_end_110} :catchall_28f

    if-nez v0, :cond_113

    goto :goto_f8

    .line 35
    :cond_113
    :try_start_113
    invoke-virtual {v3, v9}, Lcom/alibaba/fastjson/serializer/x;->b(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v0
    :try_end_117
    .catch Ljava/lang/reflect/InvocationTargetException; {:try_start_113 .. :try_end_117} :catch_118
    .catch Ljava/lang/Exception; {:try_start_113 .. :try_end_117} :catch_2d4
    .catchall {:try_start_113 .. :try_end_117} :catchall_2d0

    goto :goto_123

    :catch_118
    move-exception v0

    move-object v5, v0

    .line 36
    :try_start_11a
    sget-object v0, Lcom/alibaba/fastjson/serializer/z0;->IgnoreErrorGetter:Lcom/alibaba/fastjson/serializer/z0;

    invoke-virtual {v11, v0}, Lcom/alibaba/fastjson/serializer/y0;->u(Lcom/alibaba/fastjson/serializer/z0;)Z

    move-result v0

    if-eqz v0, :cond_274

    const/4 v0, 0x0

    .line 37
    :goto_123
    invoke-virtual {v7, v8, v9, v1, v0}, Lcom/alibaba/fastjson/serializer/x0;->c(Lcom/alibaba/fastjson/serializer/e0;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)Z

    move-result v5

    if-nez v5, :cond_12a

    goto :goto_f8

    .line 38
    :cond_12a
    invoke-virtual {v7, v8, v9, v1, v0}, Lcom/alibaba/fastjson/serializer/x0;->g(Lcom/alibaba/fastjson/serializer/e0;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/String;

    move-result-object v5

    .line 39
    iget-object v13, v3, Lcom/alibaba/fastjson/serializer/x;->g:Lcom/alibaba/fastjson/serializer/h;
    :try_end_130
    .catch Ljava/lang/Exception; {:try_start_11a .. :try_end_130} :catch_293
    .catchall {:try_start_11a .. :try_end_130} :catchall_28f

    move-object/from16 p5, v1

    move-object/from16 v1, p0

    move-object v10, v2

    move-object/from16 v2, p1

    move-object/from16 v21, v15

    move-object v15, v3

    move-object v3, v13

    move v13, v4

    move-object/from16 v4, p2

    move-object/from16 v22, v14

    const/16 v7, 0x2c

    move-object v14, v5

    move-object/from16 v5, p5

    move/from16 v23, v6

    move-object v6, v0

    :try_start_148
    invoke-virtual/range {v1 .. v6}, Lcom/alibaba/fastjson/serializer/x0;->h(Lcom/alibaba/fastjson/serializer/e0;Lcom/alibaba/fastjson/serializer/h;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v1

    if-nez v1, :cond_15e

    if-nez v16, :cond_15e

    .line 40
    iget-boolean v2, v15, Lcom/alibaba/fastjson/serializer/x;->b:Z

    if-nez v2, :cond_15e

    sget v2, Lcom/alibaba/fastjson/serializer/z0;->WRITE_MAP_NULL_FEATURES:I

    invoke-virtual {v11, v2}, Lcom/alibaba/fastjson/serializer/y0;->o(I)Z

    move-result v2

    if-nez v2, :cond_15e

    goto/16 :goto_1ef

    :cond_15e
    if-eqz v1, :cond_1f2

    .line 41
    iget-boolean v2, v11, Lcom/alibaba/fastjson/serializer/y0;->k:Z

    if-eqz v2, :cond_1f2

    .line 42
    iget-object v2, v10, Lcom/alibaba/fastjson/util/c;->e:Ljava/lang/Class;

    .line 43
    sget-object v3, Ljava/lang/Byte;->TYPE:Ljava/lang/Class;

    if-ne v2, v3, :cond_179

    instance-of v3, v1, Ljava/lang/Byte;

    if-eqz v3, :cond_179

    move-object v3, v1

    check-cast v3, Ljava/lang/Byte;

    .line 44
    invoke-virtual {v3}, Ljava/lang/Byte;->byteValue()B

    move-result v3

    if-nez v3, :cond_179

    goto/16 :goto_1ef

    .line 45
    :cond_179
    sget-object v3, Ljava/lang/Short;->TYPE:Ljava/lang/Class;

    if-ne v2, v3, :cond_18b

    instance-of v3, v1, Ljava/lang/Short;

    if-eqz v3, :cond_18b

    move-object v3, v1

    check-cast v3, Ljava/lang/Short;

    .line 46
    invoke-virtual {v3}, Ljava/lang/Short;->shortValue()S

    move-result v3

    if-nez v3, :cond_18b

    goto :goto_1ef

    .line 47
    :cond_18b
    sget-object v3, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;

    if-ne v2, v3, :cond_19d

    instance-of v3, v1, Ljava/lang/Integer;

    if-eqz v3, :cond_19d

    move-object v3, v1

    check-cast v3, Ljava/lang/Integer;

    .line 48
    invoke-virtual {v3}, Ljava/lang/Integer;->intValue()I

    move-result v3

    if-nez v3, :cond_19d

    goto :goto_1ef

    .line 49
    :cond_19d
    sget-object v3, Ljava/lang/Long;->TYPE:Ljava/lang/Class;

    if-ne v2, v3, :cond_1b3

    instance-of v3, v1, Ljava/lang/Long;

    if-eqz v3, :cond_1b3

    move-object v3, v1

    check-cast v3, Ljava/lang/Long;

    .line 50
    invoke-virtual {v3}, Ljava/lang/Long;->longValue()J

    move-result-wide v3

    const-wide/16 v5, 0x0

    cmp-long v24, v3, v5

    if-nez v24, :cond_1b3

    goto :goto_1ef

    .line 51
    :cond_1b3
    sget-object v3, Ljava/lang/Float;->TYPE:Ljava/lang/Class;

    if-ne v2, v3, :cond_1c8

    instance-of v3, v1, Ljava/lang/Float;

    if-eqz v3, :cond_1c8

    move-object v3, v1

    check-cast v3, Ljava/lang/Float;

    .line 52
    invoke-virtual {v3}, Ljava/lang/Float;->floatValue()F

    move-result v3

    const/4 v4, 0x0

    cmpl-float v3, v3, v4

    if-nez v3, :cond_1c8

    goto :goto_1ef

    .line 53
    :cond_1c8
    sget-object v3, Ljava/lang/Double;->TYPE:Ljava/lang/Class;

    if-ne v2, v3, :cond_1de

    instance-of v3, v1, Ljava/lang/Double;

    if-eqz v3, :cond_1de

    move-object v3, v1

    check-cast v3, Ljava/lang/Double;

    .line 54
    invoke-virtual {v3}, Ljava/lang/Double;->doubleValue()D

    move-result-wide v3

    const-wide/16 v5, 0x0

    cmpl-double v24, v3, v5

    if-nez v24, :cond_1de

    goto :goto_1ef

    .line 55
    :cond_1de
    sget-object v3, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class;

    if-ne v2, v3, :cond_1f2

    instance-of v2, v1, Ljava/lang/Boolean;

    if-eqz v2, :cond_1f2

    move-object v2, v1

    check-cast v2, Ljava/lang/Boolean;

    .line 56
    invoke-virtual {v2}, Ljava/lang/Boolean;->booleanValue()Z

    move-result v2

    if-nez v2, :cond_1f2

    :goto_1ef
    const/4 v2, 0x0

    goto/16 :goto_27f

    :cond_1f2
    if-eqz v20, :cond_202

    .line 57
    invoke-virtual {v11, v7}, Lcom/alibaba/fastjson/serializer/y0;->write(I)V

    .line 58
    sget-object v2, Lcom/alibaba/fastjson/serializer/z0;->PrettyFormat:Lcom/alibaba/fastjson/serializer/z0;

    invoke-virtual {v11, v2}, Lcom/alibaba/fastjson/serializer/y0;->u(Lcom/alibaba/fastjson/serializer/z0;)Z

    move-result v2

    if-eqz v2, :cond_202

    .line 59
    invoke-virtual/range {p1 .. p1}, Lcom/alibaba/fastjson/serializer/e0;->o()V

    :cond_202
    move-object/from16 v2, p5

    if-eq v14, v2, :cond_20f

    if-nez v16, :cond_20b

    .line 60
    invoke-virtual {v11, v14}, Lcom/alibaba/fastjson/serializer/y0;->C(Ljava/lang/String;)V

    .line 61
    :cond_20b
    invoke-virtual {v8, v1}, Lcom/alibaba/fastjson/serializer/e0;->r(Ljava/lang/Object;)V

    goto :goto_261

    :cond_20f
    if-eq v0, v1, :cond_21a

    if-nez v16, :cond_216

    .line 62
    invoke-virtual {v15, v8}, Lcom/alibaba/fastjson/serializer/x;->c(Lcom/alibaba/fastjson/serializer/e0;)V

    .line 63
    :cond_216
    invoke-virtual {v8, v1}, Lcom/alibaba/fastjson/serializer/e0;->r(Ljava/lang/Object;)V

    goto :goto_261

    :cond_21a
    if-nez v16, :cond_229

    if-eqz v17, :cond_226

    .line 64
    iget-object v0, v10, Lcom/alibaba/fastjson/util/c;->o:[C

    array-length v2, v0

    const/4 v3, 0x0

    invoke-virtual {v11, v0, v3, v2}, Lcom/alibaba/fastjson/serializer/y0;->write([CII)V

    goto :goto_229

    .line 65
    :cond_226
    invoke-virtual {v15, v8}, Lcom/alibaba/fastjson/serializer/x;->c(Lcom/alibaba/fastjson/serializer/e0;)V

    :cond_229
    :goto_229
    if-nez v16, :cond_26d

    .line 66
    invoke-virtual {v10}, Lcom/alibaba/fastjson/util/c;->d()Lcom/alibaba/fastjson/annotation/b;

    move-result-object v0

    .line 67
    const-class v2, Ljava/lang/String;

    if-ne v12, v2, :cond_268

    if-eqz v0, :cond_23d

    invoke-interface {v0}, Lcom/alibaba/fastjson/annotation/b;->serializeUsing()Ljava/lang/Class;

    move-result-object v0

    const-class v2, Ljava/lang/Void;

    if-ne v0, v2, :cond_268

    :cond_23d
    if-nez v1, :cond_258

    .line 68
    iget v0, v11, Lcom/alibaba/fastjson/serializer/y0;->c:I

    sget-object v1, Lcom/alibaba/fastjson/serializer/z0;->WriteNullStringAsEmpty:Lcom/alibaba/fastjson/serializer/z0;

    iget v1, v1, Lcom/alibaba/fastjson/serializer/z0;->mask:I

    and-int/2addr v0, v1

    if-nez v0, :cond_252

    iget v0, v15, Lcom/alibaba/fastjson/serializer/x;->c:I

    and-int/2addr v0, v1

    if-eqz v0, :cond_24e

    goto :goto_252

    .line 69
    :cond_24e
    invoke-virtual {v11}, Lcom/alibaba/fastjson/serializer/y0;->K()V

    goto :goto_261

    :cond_252
    :goto_252
    const-string v0, ""

    .line 70
    invoke-virtual {v11, v0}, Lcom/alibaba/fastjson/serializer/y0;->U(Ljava/lang/String;)V

    goto :goto_261

    .line 71
    :cond_258
    check-cast v1, Ljava/lang/String;

    .line 72
    iget-boolean v0, v11, Lcom/alibaba/fastjson/serializer/y0;->e:Z

    if-eqz v0, :cond_263

    .line 73
    invoke-virtual {v11, v1}, Lcom/alibaba/fastjson/serializer/y0;->X(Ljava/lang/String;)V

    :goto_261
    const/4 v2, 0x0

    goto :goto_271

    :cond_263
    const/4 v2, 0x0

    .line 74
    invoke-virtual {v11, v1, v2}, Lcom/alibaba/fastjson/serializer/y0;->W(Ljava/lang/String;C)V

    goto :goto_271

    :cond_268
    const/4 v2, 0x0

    .line 75
    invoke-virtual {v15, v8, v1}, Lcom/alibaba/fastjson/serializer/x;->d(Lcom/alibaba/fastjson/serializer/e0;Ljava/lang/Object;)V

    goto :goto_271

    :cond_26d
    const/4 v2, 0x0

    .line 76
    invoke-virtual {v15, v8, v1}, Lcom/alibaba/fastjson/serializer/x;->d(Lcom/alibaba/fastjson/serializer/e0;Ljava/lang/Object;)V

    :goto_271
    const/16 v20, 0x1

    goto :goto_27f

    :cond_274
    move-object/from16 v21, v15

    .line 77
    throw v5
    :try_end_277
    .catch Ljava/lang/Exception; {:try_start_148 .. :try_end_277} :catch_27b
    .catchall {:try_start_148 .. :try_end_277} :catchall_277

    :catchall_277
    move-exception v0

    :goto_278
    move-object/from16 v1, p0

    goto :goto_2c9

    :catch_27b
    move-exception v0

    :goto_27c
    move-object/from16 v1, p0

    goto :goto_2cd

    :goto_27f
    add-int/lit8 v4, v13, 0x1

    move-object/from16 v7, p0

    move-object/from16 v10, p3

    move-object/from16 v15, v21

    move-object/from16 v14, v22

    move/from16 v6, v23

    const/16 v5, 0x2c

    goto/16 :goto_de

    :catchall_28f
    move-exception v0

    move-object/from16 v21, v15

    goto :goto_278

    :catch_293
    move-exception v0

    move-object/from16 v21, v15

    goto :goto_27c

    :cond_297
    move/from16 v23, v6

    move-object/from16 v22, v14

    move-object/from16 v21, v15

    const/4 v2, 0x0

    const/16 v7, 0x2c

    if-eqz v20, :cond_2a5

    const/16 v13, 0x2c

    goto :goto_2a6

    :cond_2a5
    const/4 v13, 0x0

    :goto_2a6
    move-object/from16 v1, p0

    .line 78
    :try_start_2a8
    invoke-virtual {v1, v8, v9, v13}, Lcom/alibaba/fastjson/serializer/f0;->k(Lcom/alibaba/fastjson/serializer/e0;Ljava/lang/Object;C)C

    move-object/from16 v2, v22

    .line 79
    array-length v0, v2

    if-lez v0, :cond_2be

    sget-object v0, Lcom/alibaba/fastjson/serializer/z0;->PrettyFormat:Lcom/alibaba/fastjson/serializer/z0;

    invoke-virtual {v11, v0}, Lcom/alibaba/fastjson/serializer/y0;->u(Lcom/alibaba/fastjson/serializer/z0;)Z

    move-result v0

    if-eqz v0, :cond_2be

    .line 80
    invoke-virtual/range {p1 .. p1}, Lcom/alibaba/fastjson/serializer/e0;->j()V

    .line 81
    invoke-virtual/range {p1 .. p1}, Lcom/alibaba/fastjson/serializer/e0;->o()V

    :cond_2be
    move/from16 v2, v23

    .line 82
    invoke-virtual {v11, v2}, Lcom/alibaba/fastjson/serializer/y0;->write(I)V
    :try_end_2c3
    .catch Ljava/lang/Exception; {:try_start_2a8 .. :try_end_2c3} :catch_2cc
    .catchall {:try_start_2a8 .. :try_end_2c3} :catchall_2c8

    move-object/from16 v2, v21

    .line 83
    iput-object v2, v8, Lcom/alibaba/fastjson/serializer/e0;->o:Lcom/alibaba/fastjson/serializer/t0;

    return-void

    :catchall_2c8
    move-exception v0

    :goto_2c9
    move-object/from16 v2, v21

    goto :goto_333

    :catch_2cc
    move-exception v0

    :goto_2cd
    move-object/from16 v2, v21

    goto :goto_2d7

    :catchall_2d0
    move-exception v0

    move-object v1, v7

    move-object v2, v15

    goto :goto_333

    :catch_2d4
    move-exception v0

    move-object v1, v7

    move-object v2, v15

    :goto_2d7
    :try_start_2d7
    const-string/jumbo v3, "write javaBean error"

    .line 84
    new-instance v4, Ljava/lang/StringBuilder;

    invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    const-string v3, ", class "

    invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual/range {p2 .. p2}, Ljava/lang/Object;->getClass()Ljava/lang/Class;

    move-result-object v3

    invoke-virtual {v3}, Ljava/lang/Class;->getName()Ljava/lang/String;

    move-result-object v3

    invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v3

    move-object/from16 v4, p3

    if-eqz v4, :cond_30e

    .line 85
    new-instance v5, Ljava/lang/StringBuilder;

    invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    const-string v3, ", fieldName : "

    invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v5, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v3

    .line 86
    :cond_30e
    invoke-virtual {v0}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;

    move-result-object v4

    if-eqz v4, :cond_32c

    .line 87
    new-instance v4, Ljava/lang/StringBuilder;

    invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    const-string v3, ", "

    invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;

    move-result-object v3

    invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v3

    .line 88
    :cond_32c
    new-instance v4, Lcom/alibaba/fastjson/d;

    invoke-direct {v4, v3, v0}, Lcom/alibaba/fastjson/d;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V

    throw v4
    :try_end_332
    .catchall {:try_start_2d7 .. :try_end_332} :catchall_332

    :catchall_332
    move-exception v0

    .line 89
    :goto_333
    iput-object v2, v8, Lcom/alibaba/fastjson/serializer/e0;->o:Lcom/alibaba/fastjson/serializer/t0;

    throw v0
.end method

.method public final i(Lcom/alibaba/fastjson/serializer/e0;Ljava/lang/String;)Z
    .registers 4

    .line 1
    iget-object p1, p1, Lcom/alibaba/fastjson/serializer/x0;->g:Ljava/util/ArrayList;

    const/4 p2, 0x0

    if-eqz p1, :cond_1c

    .line 2
    invoke-virtual {p1}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;

    move-result-object p1

    :cond_9
    invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z

    move-result v0

    if-eqz v0, :cond_1c

    invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/alibaba/fastjson/serializer/g0;

    .line 3
    invoke-interface {v0}, Lcom/alibaba/fastjson/serializer/g0;->apply()Z

    move-result v0

    if-nez v0, :cond_9

    return p2

    .line 4
    :cond_1c
    iget-object p1, p0, Lcom/alibaba/fastjson/serializer/x0;->g:Ljava/util/ArrayList;

    if-eqz p1, :cond_37

    .line 5
    invoke-virtual {p1}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;

    move-result-object p1

    :cond_24
    invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z

    move-result v0

    if-eqz v0, :cond_37

    invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/alibaba/fastjson/serializer/g0;

    .line 6
    invoke-interface {v0}, Lcom/alibaba/fastjson/serializer/g0;->apply()Z

    move-result v0

    if-nez v0, :cond_24

    return p2

    :cond_37
    const/4 p1, 0x1

    return p1
.end method

.method public final j(Ljava/lang/Object;)Ljava/util/Map;
    .registers 12
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/lang/Object;",
            ")",
            "Ljava/util/Map<",
            "Ljava/lang/String;",
            "Ljava/lang/Object;",
            ">;"
        }
    .end annotation

    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/lang/Exception;
        }
    .end annotation

    .line 1
    new-instance v0, Ljava/util/LinkedHashMap;

    iget-object v1, p0, Lcom/alibaba/fastjson/serializer/f0;->j:[Lcom/alibaba/fastjson/serializer/x;

    array-length v1, v1

    invoke-direct {v0, v1}, Ljava/util/LinkedHashMap;-><init>(I)V

    .line 2
    iget-object v1, p0, Lcom/alibaba/fastjson/serializer/f0;->j:[Lcom/alibaba/fastjson/serializer/x;

    array-length v2, v1

    const/4 v3, 0x0

    const/4 v4, 0x0

    :goto_d
    if-ge v4, v2, :cond_4a

    aget-object v5, v1, v4

    .line 3
    iget-object v6, v5, Lcom/alibaba/fastjson/serializer/x;->a:Lcom/alibaba/fastjson/util/c;

    iget-object v7, v6, Lcom/alibaba/fastjson/util/c;->a:Ljava/lang/String;

    .line 4
    iget-object v8, v6, Lcom/alibaba/fastjson/util/c;->b:Ljava/lang/reflect/Method;

    if-eqz v8, :cond_20

    new-array v6, v3, [Ljava/lang/Object;

    .line 5
    invoke-virtual {v8, p1, v6}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v6

    goto :goto_26

    .line 6
    :cond_20
    iget-object v6, v6, Lcom/alibaba/fastjson/util/c;->c:Ljava/lang/reflect/Field;

    invoke-virtual {v6, p1}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v6

    .line 7
    :goto_26
    iget-object v8, v5, Lcom/alibaba/fastjson/serializer/x;->h:Ljava/lang/String;

    if-eqz v8, :cond_44

    if-eqz v6, :cond_44

    .line 8
    iget-object v8, v5, Lcom/alibaba/fastjson/serializer/x;->a:Lcom/alibaba/fastjson/util/c;

    iget-object v8, v8, Lcom/alibaba/fastjson/util/c;->e:Ljava/lang/Class;

    const-class v9, Ljava/util/Date;

    if-ne v8, v9, :cond_44

    .line 9
    new-instance v8, Ljava/text/SimpleDateFormat;

    iget-object v5, v5, Lcom/alibaba/fastjson/serializer/x;->h:Ljava/lang/String;

    invoke-direct {v8, v5}, Ljava/text/SimpleDateFormat;-><init>(Ljava/lang/String;)V

    .line 10
    sget-object v5, Lcom/alibaba/fastjson/a;->a:Ljava/util/TimeZone;

    invoke-virtual {v8, v5}, Ljava/text/DateFormat;->setTimeZone(Ljava/util/TimeZone;)V

    .line 11
    invoke-virtual {v8, v6}, Ljava/text/Format;->format(Ljava/lang/Object;)Ljava/lang/String;

    move-result-object v6

    .line 12
    :cond_44
    invoke-interface {v0, v7, v6}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    add-int/lit8 v4, v4, 0x1

    goto :goto_d

    :cond_4a
    return-object v0
.end method

.method public final k(Lcom/alibaba/fastjson/serializer/e0;Ljava/lang/Object;C)C
    .registers 6

    .line 1
    iget-object v0, p1, Lcom/alibaba/fastjson/serializer/x0;->b:Ljava/util/ArrayList;

    if-eqz v0, :cond_19

    .line 2
    invoke-virtual {v0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;

    move-result-object v0

    :goto_8
    invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z

    move-result v1

    if-eqz v1, :cond_19

    invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Lcom/alibaba/fastjson/serializer/b;

    .line 3
    invoke-virtual {v1, p1, p2, p3}, Lcom/alibaba/fastjson/serializer/b;->e(Lcom/alibaba/fastjson/serializer/e0;Ljava/lang/Object;C)C

    move-result p3

    goto :goto_8

    .line 4
    :cond_19
    iget-object v0, p0, Lcom/alibaba/fastjson/serializer/x0;->b:Ljava/util/ArrayList;

    if-eqz v0, :cond_32

    .line 5
    invoke-virtual {v0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;

    move-result-object v0

    :goto_21
    invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z

    move-result v1

    if-eqz v1, :cond_32

    invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Lcom/alibaba/fastjson/serializer/b;

    .line 6
    invoke-virtual {v1, p1, p2, p3}, Lcom/alibaba/fastjson/serializer/b;->e(Lcom/alibaba/fastjson/serializer/e0;Ljava/lang/Object;C)C

    move-result p3

    goto :goto_21

    :cond_32
    return p3
.end method

.method public final l(Lcom/alibaba/fastjson/serializer/e0;Ljava/lang/Object;C)C
    .registers 6

    .line 1
    iget-object v0, p1, Lcom/alibaba/fastjson/serializer/x0;->a:Ljava/util/ArrayList;

    if-eqz v0, :cond_19

    .line 2
    invoke-virtual {v0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;

    move-result-object v0

    :goto_8
    invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z

    move-result v1

    if-eqz v1, :cond_19

    invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Lcom/alibaba/fastjson/serializer/i;

    .line 3
    invoke-virtual {v1, p1, p2, p3}, Lcom/alibaba/fastjson/serializer/i;->e(Lcom/alibaba/fastjson/serializer/e0;Ljava/lang/Object;C)C

    move-result p3

    goto :goto_8

    .line 4
    :cond_19
    iget-object v0, p0, Lcom/alibaba/fastjson/serializer/x0;->a:Ljava/util/ArrayList;

    if-eqz v0, :cond_32

    .line 5
    invoke-virtual {v0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;

    move-result-object v0

    :goto_21
    invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z

    move-result v1

    if-eqz v1, :cond_32

    invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Lcom/alibaba/fastjson/serializer/i;

    .line 6
    invoke-virtual {v1, p1, p2, p3}, Lcom/alibaba/fastjson/serializer/i;->e(Lcom/alibaba/fastjson/serializer/e0;Ljava/lang/Object;C)C

    move-result p3

    goto :goto_21

    :cond_32
    return p3
.end method

.method public final m(Lcom/alibaba/fastjson/serializer/e0;Ljava/lang/Object;)V
    .registers 5

    .line 1
    iget-object v0, p1, Lcom/alibaba/fastjson/serializer/e0;->j:Lcom/alibaba/fastjson/serializer/y0;

    iget-object v1, p1, Lcom/alibaba/fastjson/serializer/e0;->i:Lcom/alibaba/fastjson/serializer/v0;

    iget-object v1, v1, Lcom/alibaba/fastjson/serializer/v0;->c:Ljava/lang/String;

    invoke-virtual {v0, v1}, Lcom/alibaba/fastjson/serializer/y0;->C(Ljava/lang/String;)V

    .line 2
    iget-object v0, p0, Lcom/alibaba/fastjson/serializer/f0;->k:Lcom/alibaba/fastjson/serializer/u0;

    iget-object v0, v0, Lcom/alibaba/fastjson/serializer/u0;->b:Ljava/lang/String;

    if-nez v0, :cond_21

    .line 3
    invoke-virtual {p2}, Ljava/lang/Object;->getClass()Ljava/lang/Class;

    move-result-object p2

    .line 4
    invoke-static {p2}, Lcom/alibaba/fastjson/util/j;->B(Ljava/lang/Class;)Z

    move-result v0

    if-eqz v0, :cond_1d

    .line 5
    invoke-virtual {p2}, Ljava/lang/Class;->getSuperclass()Ljava/lang/Class;

    move-result-object p2

    .line 6
    :cond_1d
    invoke-virtual {p2}, Ljava/lang/Class;->getName()Ljava/lang/String;

    move-result-object v0

    .line 7
    :cond_21
    invoke-virtual {p1, v0}, Lcom/alibaba/fastjson/serializer/e0;->s(Ljava/lang/String;)V

    return-void
.end method