EncodedValueReader.smali

.class public final Lcom/tencent/tinker/android/dex/EncodedValueReader;
.super Ljava/lang/Object;


# static fields
.field public static final ENCODED_ANNOTATION:I = 0x1d

.field public static final ENCODED_ARRAY:I = 0x1c

.field public static final ENCODED_BOOLEAN:I = 0x1f

.field public static final ENCODED_BYTE:I = 0x0

.field public static final ENCODED_CHAR:I = 0x3

.field public static final ENCODED_DOUBLE:I = 0x11

.field public static final ENCODED_ENUM:I = 0x1b

.field public static final ENCODED_FIELD:I = 0x19

.field public static final ENCODED_FLOAT:I = 0x10

.field public static final ENCODED_INT:I = 0x4

.field public static final ENCODED_LONG:I = 0x6

.field public static final ENCODED_METHOD:I = 0x1a

.field public static final ENCODED_NULL:I = 0x1e

.field public static final ENCODED_SHORT:I = 0x2

.field public static final ENCODED_STRING:I = 0x17

.field public static final ENCODED_TYPE:I = 0x18

.field private static final MUST_READ:I = -0x1


# instance fields
.field private annotationType:I

.field private arg:I

.field protected final in:Lcom/tencent/tinker/android/dex/util/ByteInput;

.field private type:I


# direct methods
.method public constructor <init>(Lcom/tencent/tinker/android/dex/EncodedValue;)V
    .registers 3

    invoke-virtual {p1}, Lcom/tencent/tinker/android/dex/EncodedValue;->asByteInput()Lcom/tencent/tinker/android/dex/util/ByteInput;

    move-result-object v0

    invoke-direct {p0, v0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;-><init>(Lcom/tencent/tinker/android/dex/util/ByteInput;)V

    return-void
.end method

.method public constructor <init>(Lcom/tencent/tinker/android/dex/EncodedValue;I)V
    .registers 4

    invoke-virtual {p1}, Lcom/tencent/tinker/android/dex/EncodedValue;->asByteInput()Lcom/tencent/tinker/android/dex/util/ByteInput;

    move-result-object v0

    invoke-direct {p0, v0, p2}, Lcom/tencent/tinker/android/dex/EncodedValueReader;-><init>(Lcom/tencent/tinker/android/dex/util/ByteInput;I)V

    return-void
.end method

.method public constructor <init>(Lcom/tencent/tinker/android/dex/util/ByteInput;)V
    .registers 3

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

    const/4 v0, -0x1

    iput v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->type:I

    iput-object p1, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->in:Lcom/tencent/tinker/android/dex/util/ByteInput;

    return-void
.end method

.method public constructor <init>(Lcom/tencent/tinker/android/dex/util/ByteInput;I)V
    .registers 4

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

    const/4 v0, -0x1

    iput v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->type:I

    iput-object p1, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->in:Lcom/tencent/tinker/android/dex/util/ByteInput;

    iput p2, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->type:I

    return-void
.end method

.method private checkType(I)V
    .registers 7

    invoke-virtual {p0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->peek()I

    move-result v0

    if-eq v0, p1, :cond_28

    new-instance v0, Ljava/lang/IllegalStateException;

    const-string/jumbo v1, "Expected %x but was %x"

    const/4 v2, 0x2

    new-array v2, v2, [Ljava/lang/Object;

    const/4 v3, 0x0

    invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v4

    aput-object v4, v2, v3

    const/4 v3, 0x1

    invoke-virtual {p0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->peek()I

    move-result v4

    invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v4

    aput-object v4, v2, v3

    invoke-static {v1, v2}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;

    move-result-object v1

    invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V

    throw v0

    :cond_28
    return-void
.end method


# virtual methods
.method public getAnnotationType()I
    .registers 2

    iget v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->annotationType:I

    return v0
.end method

.method public peek()I
    .registers 3

    iget v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->type:I

    const/4 v1, -0x1

    if-ne v0, v1, :cond_17

    iget-object v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->in:Lcom/tencent/tinker/android/dex/util/ByteInput;

    invoke-interface {v0}, Lcom/tencent/tinker/android/dex/util/ByteInput;->readByte()B

    move-result v0

    and-int/lit16 v0, v0, 0xff

    and-int/lit8 v1, v0, 0x1f

    iput v1, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->type:I

    and-int/lit16 v0, v0, 0xe0

    shr-int/lit8 v0, v0, 0x5

    iput v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->arg:I

    :cond_17
    iget v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->type:I

    return v0
.end method

.method public readAnnotation()I
    .registers 2

    const/16 v0, 0x1d

    invoke-direct {p0, v0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->checkType(I)V

    const/4 v0, -0x1

    iput v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->type:I

    iget-object v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->in:Lcom/tencent/tinker/android/dex/util/ByteInput;

    invoke-static {v0}, Lcom/tencent/tinker/android/dex/Leb128;->readUnsignedLeb128(Lcom/tencent/tinker/android/dex/util/ByteInput;)I

    move-result v0

    iput v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->annotationType:I

    iget-object v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->in:Lcom/tencent/tinker/android/dex/util/ByteInput;

    invoke-static {v0}, Lcom/tencent/tinker/android/dex/Leb128;->readUnsignedLeb128(Lcom/tencent/tinker/android/dex/util/ByteInput;)I

    move-result v0

    return v0
.end method

.method public readAnnotationName()I
    .registers 2

    iget-object v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->in:Lcom/tencent/tinker/android/dex/util/ByteInput;

    invoke-static {v0}, Lcom/tencent/tinker/android/dex/Leb128;->readUnsignedLeb128(Lcom/tencent/tinker/android/dex/util/ByteInput;)I

    move-result v0

    return v0
.end method

.method public readArray()I
    .registers 2

    const/16 v0, 0x1c

    invoke-direct {p0, v0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->checkType(I)V

    const/4 v0, -0x1

    iput v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->type:I

    iget-object v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->in:Lcom/tencent/tinker/android/dex/util/ByteInput;

    invoke-static {v0}, Lcom/tencent/tinker/android/dex/Leb128;->readUnsignedLeb128(Lcom/tencent/tinker/android/dex/util/ByteInput;)I

    move-result v0

    return v0
.end method

.method public readBoolean()Z
    .registers 2

    const/16 v0, 0x1f

    invoke-direct {p0, v0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->checkType(I)V

    const/4 v0, -0x1

    iput v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->type:I

    iget v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->arg:I

    if-eqz v0, :cond_e

    const/4 v0, 0x1

    :goto_d
    return v0

    :cond_e
    const/4 v0, 0x0

    goto :goto_d
.end method

.method public readByte()B
    .registers 3

    const/4 v0, 0x0

    invoke-direct {p0, v0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->checkType(I)V

    const/4 v0, -0x1

    iput v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->type:I

    iget-object v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->in:Lcom/tencent/tinker/android/dex/util/ByteInput;

    iget v1, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->arg:I

    invoke-static {v0, v1}, Lcom/tencent/tinker/android/dex/EncodedValueCodec;->readSignedInt(Lcom/tencent/tinker/android/dex/util/ByteInput;I)I

    move-result v0

    int-to-byte v0, v0

    return v0
.end method

.method public readChar()C
    .registers 4

    const/4 v0, 0x3

    invoke-direct {p0, v0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->checkType(I)V

    const/4 v0, -0x1

    iput v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->type:I

    iget-object v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->in:Lcom/tencent/tinker/android/dex/util/ByteInput;

    iget v1, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->arg:I

    const/4 v2, 0x0

    invoke-static {v0, v1, v2}, Lcom/tencent/tinker/android/dex/EncodedValueCodec;->readUnsignedInt(Lcom/tencent/tinker/android/dex/util/ByteInput;IZ)I

    move-result v0

    int-to-char v0, v0

    return v0
.end method

.method public readDouble()D
    .registers 4

    const/16 v0, 0x11

    invoke-direct {p0, v0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->checkType(I)V

    const/4 v0, -0x1

    iput v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->type:I

    iget-object v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->in:Lcom/tencent/tinker/android/dex/util/ByteInput;

    iget v1, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->arg:I

    const/4 v2, 0x1

    invoke-static {v0, v1, v2}, Lcom/tencent/tinker/android/dex/EncodedValueCodec;->readUnsignedLong(Lcom/tencent/tinker/android/dex/util/ByteInput;IZ)J

    move-result-wide v0

    invoke-static {v0, v1}, Ljava/lang/Double;->longBitsToDouble(J)D

    move-result-wide v0

    return-wide v0
.end method

.method public readEnum()I
    .registers 4

    const/16 v0, 0x1b

    invoke-direct {p0, v0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->checkType(I)V

    const/4 v0, -0x1

    iput v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->type:I

    iget-object v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->in:Lcom/tencent/tinker/android/dex/util/ByteInput;

    iget v1, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->arg:I

    const/4 v2, 0x0

    invoke-static {v0, v1, v2}, Lcom/tencent/tinker/android/dex/EncodedValueCodec;->readUnsignedInt(Lcom/tencent/tinker/android/dex/util/ByteInput;IZ)I

    move-result v0

    return v0
.end method

.method public readField()I
    .registers 4

    const/16 v0, 0x19

    invoke-direct {p0, v0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->checkType(I)V

    const/4 v0, -0x1

    iput v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->type:I

    iget-object v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->in:Lcom/tencent/tinker/android/dex/util/ByteInput;

    iget v1, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->arg:I

    const/4 v2, 0x0

    invoke-static {v0, v1, v2}, Lcom/tencent/tinker/android/dex/EncodedValueCodec;->readUnsignedInt(Lcom/tencent/tinker/android/dex/util/ByteInput;IZ)I

    move-result v0

    return v0
.end method

.method public readFloat()F
    .registers 4

    const/16 v0, 0x10

    invoke-direct {p0, v0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->checkType(I)V

    const/4 v0, -0x1

    iput v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->type:I

    iget-object v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->in:Lcom/tencent/tinker/android/dex/util/ByteInput;

    iget v1, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->arg:I

    const/4 v2, 0x1

    invoke-static {v0, v1, v2}, Lcom/tencent/tinker/android/dex/EncodedValueCodec;->readUnsignedInt(Lcom/tencent/tinker/android/dex/util/ByteInput;IZ)I

    move-result v0

    invoke-static {v0}, Ljava/lang/Float;->intBitsToFloat(I)F

    move-result v0

    return v0
.end method

.method public readInt()I
    .registers 3

    const/4 v0, 0x4

    invoke-direct {p0, v0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->checkType(I)V

    const/4 v0, -0x1

    iput v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->type:I

    iget-object v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->in:Lcom/tencent/tinker/android/dex/util/ByteInput;

    iget v1, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->arg:I

    invoke-static {v0, v1}, Lcom/tencent/tinker/android/dex/EncodedValueCodec;->readSignedInt(Lcom/tencent/tinker/android/dex/util/ByteInput;I)I

    move-result v0

    return v0
.end method

.method public readLong()J
    .registers 3

    const/4 v0, 0x6

    invoke-direct {p0, v0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->checkType(I)V

    const/4 v0, -0x1

    iput v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->type:I

    iget-object v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->in:Lcom/tencent/tinker/android/dex/util/ByteInput;

    iget v1, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->arg:I

    invoke-static {v0, v1}, Lcom/tencent/tinker/android/dex/EncodedValueCodec;->readSignedLong(Lcom/tencent/tinker/android/dex/util/ByteInput;I)J

    move-result-wide v0

    return-wide v0
.end method

.method public readMethod()I
    .registers 4

    const/16 v0, 0x1a

    invoke-direct {p0, v0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->checkType(I)V

    const/4 v0, -0x1

    iput v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->type:I

    iget-object v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->in:Lcom/tencent/tinker/android/dex/util/ByteInput;

    iget v1, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->arg:I

    const/4 v2, 0x0

    invoke-static {v0, v1, v2}, Lcom/tencent/tinker/android/dex/EncodedValueCodec;->readUnsignedInt(Lcom/tencent/tinker/android/dex/util/ByteInput;IZ)I

    move-result v0

    return v0
.end method

.method public readNull()V
    .registers 2

    const/16 v0, 0x1e

    invoke-direct {p0, v0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->checkType(I)V

    const/4 v0, -0x1

    iput v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->type:I

    return-void
.end method

.method public readShort()S
    .registers 3

    const/4 v0, 0x2

    invoke-direct {p0, v0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->checkType(I)V

    const/4 v0, -0x1

    iput v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->type:I

    iget-object v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->in:Lcom/tencent/tinker/android/dex/util/ByteInput;

    iget v1, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->arg:I

    invoke-static {v0, v1}, Lcom/tencent/tinker/android/dex/EncodedValueCodec;->readSignedInt(Lcom/tencent/tinker/android/dex/util/ByteInput;I)I

    move-result v0

    int-to-short v0, v0

    return v0
.end method

.method public readString()I
    .registers 4

    const/16 v0, 0x17

    invoke-direct {p0, v0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->checkType(I)V

    const/4 v0, -0x1

    iput v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->type:I

    iget-object v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->in:Lcom/tencent/tinker/android/dex/util/ByteInput;

    iget v1, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->arg:I

    const/4 v2, 0x0

    invoke-static {v0, v1, v2}, Lcom/tencent/tinker/android/dex/EncodedValueCodec;->readUnsignedInt(Lcom/tencent/tinker/android/dex/util/ByteInput;IZ)I

    move-result v0

    return v0
.end method

.method public readType()I
    .registers 4

    const/16 v0, 0x18

    invoke-direct {p0, v0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->checkType(I)V

    const/4 v0, -0x1

    iput v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->type:I

    iget-object v0, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->in:Lcom/tencent/tinker/android/dex/util/ByteInput;

    iget v1, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->arg:I

    const/4 v2, 0x0

    invoke-static {v0, v1, v2}, Lcom/tencent/tinker/android/dex/EncodedValueCodec;->readUnsignedInt(Lcom/tencent/tinker/android/dex/util/ByteInput;IZ)I

    move-result v0

    return v0
.end method

.method public skipValue()V
    .registers 4

    const/4 v0, 0x0

    invoke-virtual {p0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->peek()I

    move-result v1

    packed-switch v1, :pswitch_data_7c

    :pswitch_8
    new-instance v0, Lcom/tencent/tinker/android/dex/DexException;

    new-instance v1, Ljava/lang/StringBuilder;

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

    const-string/jumbo v2, "Unexpected type: "

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

    move-result-object v1

    iget v2, p0, Lcom/tencent/tinker/android/dex/EncodedValueReader;->type:I

    invoke-static {v2}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String;

    move-result-object v2

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

    move-result-object v1

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

    move-result-object v1

    invoke-direct {v0, v1}, Lcom/tencent/tinker/android/dex/DexException;-><init>(Ljava/lang/String;)V

    throw v0

    :pswitch_28
    invoke-virtual {p0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->readByte()B

    :cond_2b
    :goto_2b
    return-void

    :pswitch_2c
    invoke-virtual {p0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->readShort()S

    goto :goto_2b

    :pswitch_30
    invoke-virtual {p0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->readChar()C

    goto :goto_2b

    :pswitch_34
    invoke-virtual {p0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->readInt()I

    goto :goto_2b

    :pswitch_38
    invoke-virtual {p0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->readLong()J

    goto :goto_2b

    :pswitch_3c
    invoke-virtual {p0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->readFloat()F

    goto :goto_2b

    :pswitch_40
    invoke-virtual {p0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->readDouble()D

    goto :goto_2b

    :pswitch_44
    invoke-virtual {p0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->readString()I

    goto :goto_2b

    :pswitch_48
    invoke-virtual {p0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->readType()I

    goto :goto_2b

    :pswitch_4c
    invoke-virtual {p0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->readField()I

    goto :goto_2b

    :pswitch_50
    invoke-virtual {p0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->readEnum()I

    goto :goto_2b

    :pswitch_54
    invoke-virtual {p0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->readMethod()I

    goto :goto_2b

    :pswitch_58
    invoke-virtual {p0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->readArray()I

    move-result v1

    :goto_5c
    if-ge v0, v1, :cond_2b

    invoke-virtual {p0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->skipValue()V

    add-int/lit8 v0, v0, 0x1

    goto :goto_5c

    :pswitch_64
    invoke-virtual {p0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->readAnnotation()I

    move-result v1

    :goto_68
    if-ge v0, v1, :cond_2b

    invoke-virtual {p0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->readAnnotationName()I

    invoke-virtual {p0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->skipValue()V

    add-int/lit8 v0, v0, 0x1

    goto :goto_68

    :pswitch_73
    invoke-virtual {p0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->readNull()V

    goto :goto_2b

    :pswitch_77
    invoke-virtual {p0}, Lcom/tencent/tinker/android/dex/EncodedValueReader;->readBoolean()Z

    goto :goto_2b

    nop

    :pswitch_data_7c
    .packed-switch 0x0
        :pswitch_28
        :pswitch_8
        :pswitch_2c
        :pswitch_30
        :pswitch_34
        :pswitch_8
        :pswitch_38
        :pswitch_8
        :pswitch_8
        :pswitch_8
        :pswitch_8
        :pswitch_8
        :pswitch_8
        :pswitch_8
        :pswitch_8
        :pswitch_8
        :pswitch_3c
        :pswitch_40
        :pswitch_8
        :pswitch_8
        :pswitch_8
        :pswitch_8
        :pswitch_8
        :pswitch_44
        :pswitch_48
        :pswitch_4c
        :pswitch_54
        :pswitch_50
        :pswitch_58
        :pswitch_64
        :pswitch_73
        :pswitch_77
    .end packed-switch
.end method