AnnotationWriter.smali

.class final Lorg/objectweb/asm/AnnotationWriter;
.super Lorg/objectweb/asm/AnnotationVisitor;


# instance fields
.field private final a:Lorg/objectweb/asm/ClassWriter;

.field private b:I

.field private final c:Z

.field private final d:Lorg/objectweb/asm/ByteVector;

.field private final e:Lorg/objectweb/asm/ByteVector;

.field private final f:I

.field g:Lorg/objectweb/asm/AnnotationWriter;

.field h:Lorg/objectweb/asm/AnnotationWriter;


# direct methods
.method constructor <init>(Lorg/objectweb/asm/ClassWriter;ZLorg/objectweb/asm/ByteVector;Lorg/objectweb/asm/ByteVector;I)V
    .registers 7

    const/high16 v0, 0x50000

    invoke-direct {p0, v0}, Lorg/objectweb/asm/AnnotationVisitor;-><init>(I)V

    iput-object p1, p0, Lorg/objectweb/asm/AnnotationWriter;->a:Lorg/objectweb/asm/ClassWriter;

    iput-boolean p2, p0, Lorg/objectweb/asm/AnnotationWriter;->c:Z

    iput-object p3, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    iput-object p4, p0, Lorg/objectweb/asm/AnnotationWriter;->e:Lorg/objectweb/asm/ByteVector;

    iput p5, p0, Lorg/objectweb/asm/AnnotationWriter;->f:I

    return-void
.end method

.method static a(ILorg/objectweb/asm/TypePath;Lorg/objectweb/asm/ByteVector;)V
    .registers 6

    ushr-int/lit8 v0, p0, 0x18

    sparse-switch v0, :sswitch_data_3a

    ushr-int/lit8 v0, p0, 0x18

    const v1, 0xffff00

    and-int/2addr v1, p0

    shr-int/lit8 v1, v1, 0x8

    invoke-virtual {p2, v0, v1}, Lorg/objectweb/asm/ByteVector;->b(II)Lorg/objectweb/asm/ByteVector;

    :goto_10
    if-nez p1, :cond_27

    const/4 v0, 0x0

    invoke-virtual {p2, v0}, Lorg/objectweb/asm/ByteVector;->putByte(I)Lorg/objectweb/asm/ByteVector;

    :goto_16
    return-void

    :sswitch_17
    ushr-int/lit8 v0, p0, 0x10

    invoke-virtual {p2, v0}, Lorg/objectweb/asm/ByteVector;->putShort(I)Lorg/objectweb/asm/ByteVector;

    goto :goto_10

    :sswitch_1d
    ushr-int/lit8 v0, p0, 0x18

    invoke-virtual {p2, v0}, Lorg/objectweb/asm/ByteVector;->putByte(I)Lorg/objectweb/asm/ByteVector;

    goto :goto_10

    :sswitch_23
    invoke-virtual {p2, p0}, Lorg/objectweb/asm/ByteVector;->putInt(I)Lorg/objectweb/asm/ByteVector;

    goto :goto_10

    :cond_27
    iget-object v0, p1, Lorg/objectweb/asm/TypePath;->a:[B

    iget v1, p1, Lorg/objectweb/asm/TypePath;->b:I

    aget-byte v0, v0, v1

    shl-int/lit8 v0, v0, 0x1

    add-int/lit8 v0, v0, 0x1

    iget-object v1, p1, Lorg/objectweb/asm/TypePath;->a:[B

    iget v2, p1, Lorg/objectweb/asm/TypePath;->b:I

    invoke-virtual {p2, v1, v2, v0}, Lorg/objectweb/asm/ByteVector;->putByteArray([BII)Lorg/objectweb/asm/ByteVector;

    goto :goto_16

    nop

    :sswitch_data_3a
    .sparse-switch
        0x0 -> :sswitch_17
        0x1 -> :sswitch_17
        0x13 -> :sswitch_1d
        0x14 -> :sswitch_1d
        0x15 -> :sswitch_1d
        0x16 -> :sswitch_17
        0x47 -> :sswitch_23
        0x48 -> :sswitch_23
        0x49 -> :sswitch_23
        0x4a -> :sswitch_23
        0x4b -> :sswitch_23
    .end sparse-switch
.end method

.method static a([Lorg/objectweb/asm/AnnotationWriter;ILorg/objectweb/asm/ByteVector;)V
    .registers 8

    const/4 v3, 0x0

    array-length v0, p0

    sub-int/2addr v0, p1

    mul-int/lit8 v0, v0, 0x2

    add-int/lit8 v0, v0, 0x1

    move v1, v0

    move v0, p1

    :goto_9
    array-length v2, p0

    if-ge v0, v2, :cond_1c

    aget-object v2, p0, v0

    if-nez v2, :cond_15

    move v2, v3

    :goto_11
    add-int/2addr v1, v2

    add-int/lit8 v0, v0, 0x1

    goto :goto_9

    :cond_15
    aget-object v2, p0, v0

    invoke-virtual {v2}, Lorg/objectweb/asm/AnnotationWriter;->a()I

    move-result v2

    goto :goto_11

    :cond_1c
    invoke-virtual {p2, v1}, Lorg/objectweb/asm/ByteVector;->putInt(I)Lorg/objectweb/asm/ByteVector;

    move-result-object v0

    array-length v1, p0

    sub-int/2addr v1, p1

    invoke-virtual {v0, v1}, Lorg/objectweb/asm/ByteVector;->putByte(I)Lorg/objectweb/asm/ByteVector;

    :goto_25
    array-length v0, p0

    if-ge p1, v0, :cond_51

    aget-object v2, p0, p1

    const/4 v0, 0x0

    move v1, v3

    :goto_2c
    if-eqz v2, :cond_3b

    add-int/lit8 v1, v1, 0x1

    invoke-virtual {v2}, Lorg/objectweb/asm/AnnotationWriter;->visitEnd()V

    iput-object v0, v2, Lorg/objectweb/asm/AnnotationWriter;->h:Lorg/objectweb/asm/AnnotationWriter;

    iget-object v0, v2, Lorg/objectweb/asm/AnnotationWriter;->g:Lorg/objectweb/asm/AnnotationWriter;

    move-object v4, v2

    move-object v2, v0

    move-object v0, v4

    goto :goto_2c

    :cond_3b
    invoke-virtual {p2, v1}, Lorg/objectweb/asm/ByteVector;->putShort(I)Lorg/objectweb/asm/ByteVector;

    :goto_3e
    if-eqz v0, :cond_4e

    iget-object v1, v0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    iget-object v1, v1, Lorg/objectweb/asm/ByteVector;->a:[B

    iget-object v2, v0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    iget v2, v2, Lorg/objectweb/asm/ByteVector;->b:I

    invoke-virtual {p2, v1, v3, v2}, Lorg/objectweb/asm/ByteVector;->putByteArray([BII)Lorg/objectweb/asm/ByteVector;

    iget-object v0, v0, Lorg/objectweb/asm/AnnotationWriter;->h:Lorg/objectweb/asm/AnnotationWriter;

    goto :goto_3e

    :cond_4e
    add-int/lit8 p1, p1, 0x1

    goto :goto_25

    :cond_51
    return-void
.end method


# virtual methods
.method final a()I
    .registers 3

    const/4 v0, 0x0

    :goto_1
    if-eqz p0, :cond_b

    iget-object v1, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    iget v1, v1, Lorg/objectweb/asm/ByteVector;->b:I

    add-int/2addr v0, v1

    iget-object p0, p0, Lorg/objectweb/asm/AnnotationWriter;->g:Lorg/objectweb/asm/AnnotationWriter;

    goto :goto_1

    :cond_b
    return v0
.end method

.method final a(Lorg/objectweb/asm/ByteVector;)V
    .registers 8

    const/4 v4, 0x0

    const/4 v1, 0x2

    const/4 v0, 0x0

    move v2, v1

    move v3, v4

    move-object v1, p0

    :goto_6
    if-eqz v1, :cond_19

    add-int/lit8 v3, v3, 0x1

    iget-object v5, v1, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    iget v5, v5, Lorg/objectweb/asm/ByteVector;->b:I

    add-int/2addr v2, v5

    invoke-virtual {v1}, Lorg/objectweb/asm/AnnotationWriter;->visitEnd()V

    iput-object v0, v1, Lorg/objectweb/asm/AnnotationWriter;->h:Lorg/objectweb/asm/AnnotationWriter;

    iget-object p0, v1, Lorg/objectweb/asm/AnnotationWriter;->g:Lorg/objectweb/asm/AnnotationWriter;

    move-object v0, v1

    move-object v1, p0

    goto :goto_6

    :cond_19
    invoke-virtual {p1, v2}, Lorg/objectweb/asm/ByteVector;->putInt(I)Lorg/objectweb/asm/ByteVector;

    invoke-virtual {p1, v3}, Lorg/objectweb/asm/ByteVector;->putShort(I)Lorg/objectweb/asm/ByteVector;

    :goto_1f
    if-eqz v0, :cond_2f

    iget-object v1, v0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    iget-object v1, v1, Lorg/objectweb/asm/ByteVector;->a:[B

    iget-object v2, v0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    iget v2, v2, Lorg/objectweb/asm/ByteVector;->b:I

    invoke-virtual {p1, v1, v4, v2}, Lorg/objectweb/asm/ByteVector;->putByteArray([BII)Lorg/objectweb/asm/ByteVector;

    iget-object v0, v0, Lorg/objectweb/asm/AnnotationWriter;->h:Lorg/objectweb/asm/AnnotationWriter;

    goto :goto_1f

    :cond_2f
    return-void
.end method

.method public final visit(Ljava/lang/String;Ljava/lang/Object;)V
    .registers 10

    const/16 v6, 0x43

    const/16 v5, 0x42

    const/4 v0, 0x1

    const/16 v4, 0x5b

    const/4 v1, 0x0

    iget v2, p0, Lorg/objectweb/asm/AnnotationWriter;->b:I

    add-int/lit8 v2, v2, 0x1

    iput v2, p0, Lorg/objectweb/asm/AnnotationWriter;->b:I

    iget-boolean v2, p0, Lorg/objectweb/asm/AnnotationWriter;->c:Z

    if-eqz v2, :cond_1d

    iget-object v2, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    iget-object v3, p0, Lorg/objectweb/asm/AnnotationWriter;->a:Lorg/objectweb/asm/ClassWriter;

    invoke-virtual {v3, p1}, Lorg/objectweb/asm/ClassWriter;->newUTF8(Ljava/lang/String;)I

    move-result v3

    invoke-virtual {v2, v3}, Lorg/objectweb/asm/ByteVector;->putShort(I)Lorg/objectweb/asm/ByteVector;

    :cond_1d
    instance-of v2, p2, Ljava/lang/String;

    if-eqz v2, :cond_31

    iget-object v0, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    const/16 v1, 0x73

    iget-object v2, p0, Lorg/objectweb/asm/AnnotationWriter;->a:Lorg/objectweb/asm/ClassWriter;

    check-cast p2, Ljava/lang/String;

    invoke-virtual {v2, p2}, Lorg/objectweb/asm/ClassWriter;->newUTF8(Ljava/lang/String;)I

    move-result v2

    invoke-virtual {v0, v1, v2}, Lorg/objectweb/asm/ByteVector;->b(II)Lorg/objectweb/asm/ByteVector;

    :cond_30
    :goto_30
    return-void

    :cond_31
    instance-of v2, p2, Ljava/lang/Byte;

    if-eqz v2, :cond_49

    iget-object v0, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    iget-object v1, p0, Lorg/objectweb/asm/AnnotationWriter;->a:Lorg/objectweb/asm/ClassWriter;

    check-cast p2, Ljava/lang/Byte;

    invoke-virtual {p2}, Ljava/lang/Byte;->byteValue()B

    move-result v2

    invoke-virtual {v1, v2}, Lorg/objectweb/asm/ClassWriter;->a(I)Lorg/objectweb/asm/Item;

    move-result-object v1

    iget v1, v1, Lorg/objectweb/asm/Item;->a:I

    invoke-virtual {v0, v5, v1}, Lorg/objectweb/asm/ByteVector;->b(II)Lorg/objectweb/asm/ByteVector;

    goto :goto_30

    :cond_49
    instance-of v2, p2, Ljava/lang/Boolean;

    if-eqz v2, :cond_67

    check-cast p2, Ljava/lang/Boolean;

    invoke-virtual {p2}, Ljava/lang/Boolean;->booleanValue()Z

    move-result v2

    if-eqz v2, :cond_65

    :goto_55
    iget-object v1, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    const/16 v2, 0x5a

    iget-object v3, p0, Lorg/objectweb/asm/AnnotationWriter;->a:Lorg/objectweb/asm/ClassWriter;

    invoke-virtual {v3, v0}, Lorg/objectweb/asm/ClassWriter;->a(I)Lorg/objectweb/asm/Item;

    move-result-object v0

    iget v0, v0, Lorg/objectweb/asm/Item;->a:I

    invoke-virtual {v1, v2, v0}, Lorg/objectweb/asm/ByteVector;->b(II)Lorg/objectweb/asm/ByteVector;

    goto :goto_30

    :cond_65
    move v0, v1

    goto :goto_55

    :cond_67
    instance-of v2, p2, Ljava/lang/Character;

    if-eqz v2, :cond_7f

    iget-object v0, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    iget-object v1, p0, Lorg/objectweb/asm/AnnotationWriter;->a:Lorg/objectweb/asm/ClassWriter;

    check-cast p2, Ljava/lang/Character;

    invoke-virtual {p2}, Ljava/lang/Character;->charValue()C

    move-result v2

    invoke-virtual {v1, v2}, Lorg/objectweb/asm/ClassWriter;->a(I)Lorg/objectweb/asm/Item;

    move-result-object v1

    iget v1, v1, Lorg/objectweb/asm/Item;->a:I

    invoke-virtual {v0, v6, v1}, Lorg/objectweb/asm/ByteVector;->b(II)Lorg/objectweb/asm/ByteVector;

    goto :goto_30

    :cond_7f
    instance-of v2, p2, Ljava/lang/Short;

    if-eqz v2, :cond_99

    iget-object v0, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    const/16 v1, 0x53

    iget-object v2, p0, Lorg/objectweb/asm/AnnotationWriter;->a:Lorg/objectweb/asm/ClassWriter;

    check-cast p2, Ljava/lang/Short;

    invoke-virtual {p2}, Ljava/lang/Short;->shortValue()S

    move-result v3

    invoke-virtual {v2, v3}, Lorg/objectweb/asm/ClassWriter;->a(I)Lorg/objectweb/asm/Item;

    move-result-object v2

    iget v2, v2, Lorg/objectweb/asm/Item;->a:I

    invoke-virtual {v0, v1, v2}, Lorg/objectweb/asm/ByteVector;->b(II)Lorg/objectweb/asm/ByteVector;

    goto :goto_30

    :cond_99
    instance-of v2, p2, Lorg/objectweb/asm/Type;

    if-eqz v2, :cond_b1

    iget-object v0, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    const/16 v1, 0x63

    iget-object v2, p0, Lorg/objectweb/asm/AnnotationWriter;->a:Lorg/objectweb/asm/ClassWriter;

    check-cast p2, Lorg/objectweb/asm/Type;

    invoke-virtual {p2}, Lorg/objectweb/asm/Type;->getDescriptor()Ljava/lang/String;

    move-result-object v3

    invoke-virtual {v2, v3}, Lorg/objectweb/asm/ClassWriter;->newUTF8(Ljava/lang/String;)I

    move-result v2

    invoke-virtual {v0, v1, v2}, Lorg/objectweb/asm/ByteVector;->b(II)Lorg/objectweb/asm/ByteVector;

    goto :goto_30

    :cond_b1
    instance-of v2, p2, [B

    if-eqz v2, :cond_d2

    check-cast p2, [B

    iget-object v0, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    array-length v2, p2

    invoke-virtual {v0, v4, v2}, Lorg/objectweb/asm/ByteVector;->b(II)Lorg/objectweb/asm/ByteVector;

    :goto_bd
    array-length v0, p2

    if-ge v1, v0, :cond_30

    iget-object v0, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    iget-object v2, p0, Lorg/objectweb/asm/AnnotationWriter;->a:Lorg/objectweb/asm/ClassWriter;

    aget-byte v3, p2, v1

    invoke-virtual {v2, v3}, Lorg/objectweb/asm/ClassWriter;->a(I)Lorg/objectweb/asm/Item;

    move-result-object v2

    iget v2, v2, Lorg/objectweb/asm/Item;->a:I

    invoke-virtual {v0, v5, v2}, Lorg/objectweb/asm/ByteVector;->b(II)Lorg/objectweb/asm/ByteVector;

    add-int/lit8 v1, v1, 0x1

    goto :goto_bd

    :cond_d2
    instance-of v2, p2, [Z

    if-eqz v2, :cond_fb

    check-cast p2, [Z

    iget-object v2, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    array-length v3, p2

    invoke-virtual {v2, v4, v3}, Lorg/objectweb/asm/ByteVector;->b(II)Lorg/objectweb/asm/ByteVector;

    move v2, v1

    :goto_df
    array-length v3, p2

    if-ge v2, v3, :cond_30

    iget-object v4, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    const/16 v5, 0x5a

    iget-object v6, p0, Lorg/objectweb/asm/AnnotationWriter;->a:Lorg/objectweb/asm/ClassWriter;

    aget-boolean v3, p2, v2

    if-eqz v3, :cond_f9

    move v3, v0

    :goto_ed
    invoke-virtual {v6, v3}, Lorg/objectweb/asm/ClassWriter;->a(I)Lorg/objectweb/asm/Item;

    move-result-object v3

    iget v3, v3, Lorg/objectweb/asm/Item;->a:I

    invoke-virtual {v4, v5, v3}, Lorg/objectweb/asm/ByteVector;->b(II)Lorg/objectweb/asm/ByteVector;

    add-int/lit8 v2, v2, 0x1

    goto :goto_df

    :cond_f9
    move v3, v1

    goto :goto_ed

    :cond_fb
    instance-of v0, p2, [S

    if-eqz v0, :cond_11e

    check-cast p2, [S

    iget-object v0, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    array-length v2, p2

    invoke-virtual {v0, v4, v2}, Lorg/objectweb/asm/ByteVector;->b(II)Lorg/objectweb/asm/ByteVector;

    :goto_107
    array-length v0, p2

    if-ge v1, v0, :cond_30

    iget-object v0, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    const/16 v2, 0x53

    iget-object v3, p0, Lorg/objectweb/asm/AnnotationWriter;->a:Lorg/objectweb/asm/ClassWriter;

    aget-short v4, p2, v1

    invoke-virtual {v3, v4}, Lorg/objectweb/asm/ClassWriter;->a(I)Lorg/objectweb/asm/Item;

    move-result-object v3

    iget v3, v3, Lorg/objectweb/asm/Item;->a:I

    invoke-virtual {v0, v2, v3}, Lorg/objectweb/asm/ByteVector;->b(II)Lorg/objectweb/asm/ByteVector;

    add-int/lit8 v1, v1, 0x1

    goto :goto_107

    :cond_11e
    instance-of v0, p2, [C

    if-eqz v0, :cond_13f

    check-cast p2, [C

    iget-object v0, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    array-length v2, p2

    invoke-virtual {v0, v4, v2}, Lorg/objectweb/asm/ByteVector;->b(II)Lorg/objectweb/asm/ByteVector;

    :goto_12a
    array-length v0, p2

    if-ge v1, v0, :cond_30

    iget-object v0, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    iget-object v2, p0, Lorg/objectweb/asm/AnnotationWriter;->a:Lorg/objectweb/asm/ClassWriter;

    aget-char v3, p2, v1

    invoke-virtual {v2, v3}, Lorg/objectweb/asm/ClassWriter;->a(I)Lorg/objectweb/asm/Item;

    move-result-object v2

    iget v2, v2, Lorg/objectweb/asm/Item;->a:I

    invoke-virtual {v0, v6, v2}, Lorg/objectweb/asm/ByteVector;->b(II)Lorg/objectweb/asm/ByteVector;

    add-int/lit8 v1, v1, 0x1

    goto :goto_12a

    :cond_13f
    instance-of v0, p2, [I

    if-eqz v0, :cond_162

    check-cast p2, [I

    iget-object v0, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    array-length v2, p2

    invoke-virtual {v0, v4, v2}, Lorg/objectweb/asm/ByteVector;->b(II)Lorg/objectweb/asm/ByteVector;

    :goto_14b
    array-length v0, p2

    if-ge v1, v0, :cond_30

    iget-object v0, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    const/16 v2, 0x49

    iget-object v3, p0, Lorg/objectweb/asm/AnnotationWriter;->a:Lorg/objectweb/asm/ClassWriter;

    aget v4, p2, v1

    invoke-virtual {v3, v4}, Lorg/objectweb/asm/ClassWriter;->a(I)Lorg/objectweb/asm/Item;

    move-result-object v3

    iget v3, v3, Lorg/objectweb/asm/Item;->a:I

    invoke-virtual {v0, v2, v3}, Lorg/objectweb/asm/ByteVector;->b(II)Lorg/objectweb/asm/ByteVector;

    add-int/lit8 v1, v1, 0x1

    goto :goto_14b

    :cond_162
    instance-of v0, p2, [J

    if-eqz v0, :cond_185

    check-cast p2, [J

    iget-object v0, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    array-length v2, p2

    invoke-virtual {v0, v4, v2}, Lorg/objectweb/asm/ByteVector;->b(II)Lorg/objectweb/asm/ByteVector;

    :goto_16e
    array-length v0, p2

    if-ge v1, v0, :cond_30

    iget-object v0, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    const/16 v2, 0x4a

    iget-object v3, p0, Lorg/objectweb/asm/AnnotationWriter;->a:Lorg/objectweb/asm/ClassWriter;

    aget-wide v4, p2, v1

    invoke-virtual {v3, v4, v5}, Lorg/objectweb/asm/ClassWriter;->a(J)Lorg/objectweb/asm/Item;

    move-result-object v3

    iget v3, v3, Lorg/objectweb/asm/Item;->a:I

    invoke-virtual {v0, v2, v3}, Lorg/objectweb/asm/ByteVector;->b(II)Lorg/objectweb/asm/ByteVector;

    add-int/lit8 v1, v1, 0x1

    goto :goto_16e

    :cond_185
    instance-of v0, p2, [F

    if-eqz v0, :cond_1a8

    check-cast p2, [F

    iget-object v0, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    array-length v2, p2

    invoke-virtual {v0, v4, v2}, Lorg/objectweb/asm/ByteVector;->b(II)Lorg/objectweb/asm/ByteVector;

    :goto_191
    array-length v0, p2

    if-ge v1, v0, :cond_30

    iget-object v0, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    const/16 v2, 0x46

    iget-object v3, p0, Lorg/objectweb/asm/AnnotationWriter;->a:Lorg/objectweb/asm/ClassWriter;

    aget v4, p2, v1

    invoke-virtual {v3, v4}, Lorg/objectweb/asm/ClassWriter;->a(F)Lorg/objectweb/asm/Item;

    move-result-object v3

    iget v3, v3, Lorg/objectweb/asm/Item;->a:I

    invoke-virtual {v0, v2, v3}, Lorg/objectweb/asm/ByteVector;->b(II)Lorg/objectweb/asm/ByteVector;

    add-int/lit8 v1, v1, 0x1

    goto :goto_191

    :cond_1a8
    instance-of v0, p2, [D

    if-eqz v0, :cond_1cb

    check-cast p2, [D

    iget-object v0, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    array-length v2, p2

    invoke-virtual {v0, v4, v2}, Lorg/objectweb/asm/ByteVector;->b(II)Lorg/objectweb/asm/ByteVector;

    :goto_1b4
    array-length v0, p2

    if-ge v1, v0, :cond_30

    iget-object v0, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    const/16 v2, 0x44

    iget-object v3, p0, Lorg/objectweb/asm/AnnotationWriter;->a:Lorg/objectweb/asm/ClassWriter;

    aget-wide v4, p2, v1

    invoke-virtual {v3, v4, v5}, Lorg/objectweb/asm/ClassWriter;->a(D)Lorg/objectweb/asm/Item;

    move-result-object v3

    iget v3, v3, Lorg/objectweb/asm/Item;->a:I

    invoke-virtual {v0, v2, v3}, Lorg/objectweb/asm/ByteVector;->b(II)Lorg/objectweb/asm/ByteVector;

    add-int/lit8 v1, v1, 0x1

    goto :goto_1b4

    :cond_1cb
    iget-object v0, p0, Lorg/objectweb/asm/AnnotationWriter;->a:Lorg/objectweb/asm/ClassWriter;

    invoke-virtual {v0, p2}, Lorg/objectweb/asm/ClassWriter;->a(Ljava/lang/Object;)Lorg/objectweb/asm/Item;

    move-result-object v0

    iget-object v1, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    const-string v2, ".s.IFJDCS"

    iget v3, v0, Lorg/objectweb/asm/Item;->b:I

    invoke-virtual {v2, v3}, Ljava/lang/String;->charAt(I)C

    move-result v2

    iget v0, v0, Lorg/objectweb/asm/Item;->a:I

    invoke-virtual {v1, v2, v0}, Lorg/objectweb/asm/ByteVector;->b(II)Lorg/objectweb/asm/ByteVector;

    goto/16 :goto_30
.end method

.method public final visitAnnotation(Ljava/lang/String;Ljava/lang/String;)Lorg/objectweb/asm/AnnotationVisitor;
    .registers 9

    iget v0, p0, Lorg/objectweb/asm/AnnotationWriter;->b:I

    add-int/lit8 v0, v0, 0x1

    iput v0, p0, Lorg/objectweb/asm/AnnotationWriter;->b:I

    iget-boolean v0, p0, Lorg/objectweb/asm/AnnotationWriter;->c:Z

    if-eqz v0, :cond_15

    iget-object v0, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    iget-object v1, p0, Lorg/objectweb/asm/AnnotationWriter;->a:Lorg/objectweb/asm/ClassWriter;

    invoke-virtual {v1, p1}, Lorg/objectweb/asm/ClassWriter;->newUTF8(Ljava/lang/String;)I

    move-result v1

    invoke-virtual {v0, v1}, Lorg/objectweb/asm/ByteVector;->putShort(I)Lorg/objectweb/asm/ByteVector;

    :cond_15
    iget-object v0, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    const/16 v1, 0x40

    iget-object v2, p0, Lorg/objectweb/asm/AnnotationWriter;->a:Lorg/objectweb/asm/ClassWriter;

    invoke-virtual {v2, p2}, Lorg/objectweb/asm/ClassWriter;->newUTF8(Ljava/lang/String;)I

    move-result v2

    invoke-virtual {v0, v1, v2}, Lorg/objectweb/asm/ByteVector;->b(II)Lorg/objectweb/asm/ByteVector;

    move-result-object v0

    const/4 v1, 0x0

    invoke-virtual {v0, v1}, Lorg/objectweb/asm/ByteVector;->putShort(I)Lorg/objectweb/asm/ByteVector;

    new-instance v0, Lorg/objectweb/asm/AnnotationWriter;

    iget-object v1, p0, Lorg/objectweb/asm/AnnotationWriter;->a:Lorg/objectweb/asm/ClassWriter;

    const/4 v2, 0x1

    iget-object v3, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    iget-object v4, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    iget-object v5, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    iget v5, v5, Lorg/objectweb/asm/ByteVector;->b:I

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

    invoke-direct/range {v0 .. v5}, Lorg/objectweb/asm/AnnotationWriter;-><init>(Lorg/objectweb/asm/ClassWriter;ZLorg/objectweb/asm/ByteVector;Lorg/objectweb/asm/ByteVector;I)V

    return-object v0
.end method

.method public final visitArray(Ljava/lang/String;)Lorg/objectweb/asm/AnnotationVisitor;
    .registers 8

    const/4 v2, 0x0

    iget v0, p0, Lorg/objectweb/asm/AnnotationWriter;->b:I

    add-int/lit8 v0, v0, 0x1

    iput v0, p0, Lorg/objectweb/asm/AnnotationWriter;->b:I

    iget-boolean v0, p0, Lorg/objectweb/asm/AnnotationWriter;->c:Z

    if-eqz v0, :cond_16

    iget-object v0, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    iget-object v1, p0, Lorg/objectweb/asm/AnnotationWriter;->a:Lorg/objectweb/asm/ClassWriter;

    invoke-virtual {v1, p1}, Lorg/objectweb/asm/ClassWriter;->newUTF8(Ljava/lang/String;)I

    move-result v1

    invoke-virtual {v0, v1}, Lorg/objectweb/asm/ByteVector;->putShort(I)Lorg/objectweb/asm/ByteVector;

    :cond_16
    iget-object v0, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    const/16 v1, 0x5b

    invoke-virtual {v0, v1, v2}, Lorg/objectweb/asm/ByteVector;->b(II)Lorg/objectweb/asm/ByteVector;

    new-instance v0, Lorg/objectweb/asm/AnnotationWriter;

    iget-object v1, p0, Lorg/objectweb/asm/AnnotationWriter;->a:Lorg/objectweb/asm/ClassWriter;

    iget-object v3, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    iget-object v4, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    iget-object v5, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    iget v5, v5, Lorg/objectweb/asm/ByteVector;->b:I

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

    invoke-direct/range {v0 .. v5}, Lorg/objectweb/asm/AnnotationWriter;-><init>(Lorg/objectweb/asm/ClassWriter;ZLorg/objectweb/asm/ByteVector;Lorg/objectweb/asm/ByteVector;I)V

    return-object v0
.end method

.method public final visitEnd()V
    .registers 4

    iget-object v0, p0, Lorg/objectweb/asm/AnnotationWriter;->e:Lorg/objectweb/asm/ByteVector;

    if-eqz v0, :cond_1a

    iget-object v0, p0, Lorg/objectweb/asm/AnnotationWriter;->e:Lorg/objectweb/asm/ByteVector;

    iget-object v0, v0, Lorg/objectweb/asm/ByteVector;->a:[B

    iget v1, p0, Lorg/objectweb/asm/AnnotationWriter;->f:I

    iget v2, p0, Lorg/objectweb/asm/AnnotationWriter;->b:I

    ushr-int/lit8 v2, v2, 0x8

    int-to-byte v2, v2

    aput-byte v2, v0, v1

    iget v1, p0, Lorg/objectweb/asm/AnnotationWriter;->f:I

    add-int/lit8 v1, v1, 0x1

    iget v2, p0, Lorg/objectweb/asm/AnnotationWriter;->b:I

    int-to-byte v2, v2

    aput-byte v2, v0, v1

    :cond_1a
    return-void
.end method

.method public final visitEnum(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    .registers 7

    iget v0, p0, Lorg/objectweb/asm/AnnotationWriter;->b:I

    add-int/lit8 v0, v0, 0x1

    iput v0, p0, Lorg/objectweb/asm/AnnotationWriter;->b:I

    iget-boolean v0, p0, Lorg/objectweb/asm/AnnotationWriter;->c:Z

    if-eqz v0, :cond_15

    iget-object v0, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    iget-object v1, p0, Lorg/objectweb/asm/AnnotationWriter;->a:Lorg/objectweb/asm/ClassWriter;

    invoke-virtual {v1, p1}, Lorg/objectweb/asm/ClassWriter;->newUTF8(Ljava/lang/String;)I

    move-result v1

    invoke-virtual {v0, v1}, Lorg/objectweb/asm/ByteVector;->putShort(I)Lorg/objectweb/asm/ByteVector;

    :cond_15
    iget-object v0, p0, Lorg/objectweb/asm/AnnotationWriter;->d:Lorg/objectweb/asm/ByteVector;

    const/16 v1, 0x65

    iget-object v2, p0, Lorg/objectweb/asm/AnnotationWriter;->a:Lorg/objectweb/asm/ClassWriter;

    invoke-virtual {v2, p2}, Lorg/objectweb/asm/ClassWriter;->newUTF8(Ljava/lang/String;)I

    move-result v2

    invoke-virtual {v0, v1, v2}, Lorg/objectweb/asm/ByteVector;->b(II)Lorg/objectweb/asm/ByteVector;

    move-result-object v0

    iget-object v1, p0, Lorg/objectweb/asm/AnnotationWriter;->a:Lorg/objectweb/asm/ClassWriter;

    invoke-virtual {v1, p3}, Lorg/objectweb/asm/ClassWriter;->newUTF8(Ljava/lang/String;)I

    move-result v1

    invoke-virtual {v0, v1}, Lorg/objectweb/asm/ByteVector;->putShort(I)Lorg/objectweb/asm/ByteVector;

    return-void
.end method