InstructionCodec.smali

.class public final Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;
.super Ljava/lang/Object;


# static fields
.field public static final INDEX_TYPE_FIELD_REF:I = 0x5

.field public static final INDEX_TYPE_METHOD_REF:I = 0x4

.field public static final INDEX_TYPE_NONE:I = 0x1

.field public static final INDEX_TYPE_STRING_REF:I = 0x3

.field public static final INDEX_TYPE_TYPE_REF:I = 0x2

.field public static final INDEX_TYPE_UNKNOWN:I = 0x0

.field public static final INSN_FORMAT_00X:I = 0x1

.field public static final INSN_FORMAT_10T:I = 0x2

.field public static final INSN_FORMAT_10X:I = 0x3

.field public static final INSN_FORMAT_11N:I = 0x4

.field public static final INSN_FORMAT_11X:I = 0x5

.field public static final INSN_FORMAT_12X:I = 0x6

.field public static final INSN_FORMAT_20T:I = 0x7

.field public static final INSN_FORMAT_21C:I = 0x8

.field public static final INSN_FORMAT_21H:I = 0x9

.field public static final INSN_FORMAT_21S:I = 0xa

.field public static final INSN_FORMAT_21T:I = 0xb

.field public static final INSN_FORMAT_22B:I = 0xc

.field public static final INSN_FORMAT_22C:I = 0xd

.field public static final INSN_FORMAT_22S:I = 0xe

.field public static final INSN_FORMAT_22T:I = 0xf

.field public static final INSN_FORMAT_22X:I = 0x10

.field public static final INSN_FORMAT_23X:I = 0x11

.field public static final INSN_FORMAT_30T:I = 0x12

.field public static final INSN_FORMAT_31C:I = 0x13

.field public static final INSN_FORMAT_31I:I = 0x14

.field public static final INSN_FORMAT_31T:I = 0x15

.field public static final INSN_FORMAT_32X:I = 0x16

.field public static final INSN_FORMAT_35C:I = 0x17

.field public static final INSN_FORMAT_3RC:I = 0x18

.field public static final INSN_FORMAT_51L:I = 0x19

.field public static final INSN_FORMAT_FILL_ARRAY_DATA_PAYLOAD:I = 0x1a

.field public static final INSN_FORMAT_PACKED_SWITCH_PAYLOAD:I = 0x1b

.field public static final INSN_FORMAT_SPARSE_SWITCH_PAYLOAD:I = 0x1c

.field public static final INSN_FORMAT_UNKNOWN:I


# direct methods
.method private constructor <init>()V
    .registers 2

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

    new-instance v0, Ljava/lang/UnsupportedOperationException;

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

    throw v0
.end method

.method public static asUnsignedUnit(I)S
    .registers 3

    const/high16 v0, -0x10000

    and-int/2addr v0, p0

    if-eqz v0, :cond_e

    new-instance v0, Ljava/lang/IllegalArgumentException;

    const-string/jumbo v1, "bogus unsigned code unit"

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

    throw v0

    :cond_e
    int-to-short v0, p0

    return v0
.end method

.method public static byte0(I)I
    .registers 2

    and-int/lit16 v0, p0, 0xff

    return v0
.end method

.method public static byte1(I)I
    .registers 2

    shr-int/lit8 v0, p0, 0x8

    and-int/lit16 v0, v0, 0xff

    return v0
.end method

.method public static codeUnit(II)S
    .registers 4

    and-int/lit16 v0, p0, -0x100

    if-eqz v0, :cond_d

    new-instance v0, Ljava/lang/IllegalArgumentException;

    const-string/jumbo v1, "bogus lowByte"

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

    throw v0

    :cond_d
    and-int/lit16 v0, p1, -0x100

    if-eqz v0, :cond_1a

    new-instance v0, Ljava/lang/IllegalArgumentException;

    const-string/jumbo v1, "bogus highByte"

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

    throw v0

    :cond_1a
    shl-int/lit8 v0, p1, 0x8

    or-int/2addr v0, p0

    int-to-short v0, v0

    return v0
.end method

.method public static codeUnit(IIII)S
    .registers 6

    and-int/lit8 v0, p0, -0x10

    if-eqz v0, :cond_d

    new-instance v0, Ljava/lang/IllegalArgumentException;

    const-string/jumbo v1, "bogus nibble0"

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

    throw v0

    :cond_d
    and-int/lit8 v0, p1, -0x10

    if-eqz v0, :cond_1a

    new-instance v0, Ljava/lang/IllegalArgumentException;

    const-string/jumbo v1, "bogus nibble1"

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

    throw v0

    :cond_1a
    and-int/lit8 v0, p2, -0x10

    if-eqz v0, :cond_27

    new-instance v0, Ljava/lang/IllegalArgumentException;

    const-string/jumbo v1, "bogus nibble2"

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

    throw v0

    :cond_27
    and-int/lit8 v0, p3, -0x10

    if-eqz v0, :cond_34

    new-instance v0, Ljava/lang/IllegalArgumentException;

    const-string/jumbo v1, "bogus nibble3"

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

    throw v0

    :cond_34
    shl-int/lit8 v0, p1, 0x4

    or-int/2addr v0, p0

    shl-int/lit8 v1, p2, 0x8

    or-int/2addr v0, v1

    shl-int/lit8 v1, p3, 0xc

    or-int/2addr v0, v1

    int-to-short v0, v0

    return v0
.end method

.method public static getAUnit(I)S
    .registers 5

    const/high16 v0, -0x10000

    and-int/2addr v0, p0

    if-eqz v0, :cond_24

    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, "Register A out of range: "

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

    move-result-object v1

    int-to-long v2, p0

    invoke-static {v2, v3}, Lcom/tencent/tinker/android/dx/util/Hex;->u8(J)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

    :cond_24
    int-to-short v0, p0

    return v0
.end method

.method public static getBUnit(I)S
    .registers 5

    const/high16 v0, -0x10000

    and-int/2addr v0, p0

    if-eqz v0, :cond_24

    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, "Register B out of range: "

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

    move-result-object v1

    int-to-long v2, p0

    invoke-static {v2, v3}, Lcom/tencent/tinker/android/dx/util/Hex;->u8(J)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

    :cond_24
    int-to-short v0, p0

    return v0
.end method

.method public static getInstructionFormat(I)I
    .registers 2

    sparse-switch p0, :sswitch_data_52

    const/4 v0, 0x0

    :goto_4
    return v0

    :sswitch_5
    const/4 v0, 0x1

    goto :goto_4

    :sswitch_7
    const/4 v0, 0x2

    goto :goto_4

    :sswitch_9
    const/4 v0, 0x3

    goto :goto_4

    :sswitch_b
    const/4 v0, 0x4

    goto :goto_4

    :sswitch_d
    const/4 v0, 0x5

    goto :goto_4

    :sswitch_f
    const/4 v0, 0x6

    goto :goto_4

    :sswitch_11
    const/4 v0, 0x7

    goto :goto_4

    :sswitch_13
    const/16 v0, 0x8

    goto :goto_4

    :sswitch_16
    const/16 v0, 0x9

    goto :goto_4

    :sswitch_19
    const/16 v0, 0xa

    goto :goto_4

    :sswitch_1c
    const/16 v0, 0xb

    goto :goto_4

    :sswitch_1f
    const/16 v0, 0xc

    goto :goto_4

    :sswitch_22
    const/16 v0, 0xd

    goto :goto_4

    :sswitch_25
    const/16 v0, 0xe

    goto :goto_4

    :sswitch_28
    const/16 v0, 0xf

    goto :goto_4

    :sswitch_2b
    const/16 v0, 0x10

    goto :goto_4

    :sswitch_2e
    const/16 v0, 0x11

    goto :goto_4

    :sswitch_31
    const/16 v0, 0x12

    goto :goto_4

    :sswitch_34
    const/16 v0, 0x13

    goto :goto_4

    :sswitch_37
    const/16 v0, 0x14

    goto :goto_4

    :sswitch_3a
    const/16 v0, 0x15

    goto :goto_4

    :sswitch_3d
    const/16 v0, 0x16

    goto :goto_4

    :sswitch_40
    const/16 v0, 0x17

    goto :goto_4

    :sswitch_43
    const/16 v0, 0x18

    goto :goto_4

    :sswitch_46
    const/16 v0, 0x19

    goto :goto_4

    :sswitch_49
    const/16 v0, 0x1b

    goto :goto_4

    :sswitch_4c
    const/16 v0, 0x1c

    goto :goto_4

    :sswitch_4f
    const/16 v0, 0x1a

    goto :goto_4

    :sswitch_data_52
    .sparse-switch
        -0x1 -> :sswitch_5
        0x0 -> :sswitch_9
        0x1 -> :sswitch_f
        0x2 -> :sswitch_2b
        0x3 -> :sswitch_3d
        0x4 -> :sswitch_f
        0x5 -> :sswitch_2b
        0x6 -> :sswitch_3d
        0x7 -> :sswitch_f
        0x8 -> :sswitch_2b
        0x9 -> :sswitch_3d
        0xa -> :sswitch_d
        0xb -> :sswitch_d
        0xc -> :sswitch_d
        0xd -> :sswitch_d
        0xe -> :sswitch_9
        0xf -> :sswitch_d
        0x10 -> :sswitch_d
        0x11 -> :sswitch_d
        0x12 -> :sswitch_b
        0x13 -> :sswitch_19
        0x14 -> :sswitch_37
        0x15 -> :sswitch_16
        0x16 -> :sswitch_19
        0x17 -> :sswitch_37
        0x18 -> :sswitch_46
        0x19 -> :sswitch_16
        0x1a -> :sswitch_13
        0x1b -> :sswitch_34
        0x1c -> :sswitch_13
        0x1d -> :sswitch_d
        0x1e -> :sswitch_d
        0x1f -> :sswitch_13
        0x20 -> :sswitch_22
        0x21 -> :sswitch_f
        0x22 -> :sswitch_13
        0x23 -> :sswitch_22
        0x24 -> :sswitch_40
        0x25 -> :sswitch_43
        0x26 -> :sswitch_3a
        0x27 -> :sswitch_d
        0x28 -> :sswitch_7
        0x29 -> :sswitch_11
        0x2a -> :sswitch_31
        0x2b -> :sswitch_3a
        0x2c -> :sswitch_3a
        0x2d -> :sswitch_2e
        0x2e -> :sswitch_2e
        0x2f -> :sswitch_2e
        0x30 -> :sswitch_2e
        0x31 -> :sswitch_2e
        0x32 -> :sswitch_28
        0x33 -> :sswitch_28
        0x34 -> :sswitch_28
        0x35 -> :sswitch_28
        0x36 -> :sswitch_28
        0x37 -> :sswitch_28
        0x38 -> :sswitch_1c
        0x39 -> :sswitch_1c
        0x3a -> :sswitch_1c
        0x3b -> :sswitch_1c
        0x3c -> :sswitch_1c
        0x3d -> :sswitch_1c
        0x44 -> :sswitch_2e
        0x45 -> :sswitch_2e
        0x46 -> :sswitch_2e
        0x47 -> :sswitch_2e
        0x48 -> :sswitch_2e
        0x49 -> :sswitch_2e
        0x4a -> :sswitch_2e
        0x4b -> :sswitch_2e
        0x4c -> :sswitch_2e
        0x4d -> :sswitch_2e
        0x4e -> :sswitch_2e
        0x4f -> :sswitch_2e
        0x50 -> :sswitch_2e
        0x51 -> :sswitch_2e
        0x52 -> :sswitch_22
        0x53 -> :sswitch_22
        0x54 -> :sswitch_22
        0x55 -> :sswitch_22
        0x56 -> :sswitch_22
        0x57 -> :sswitch_22
        0x58 -> :sswitch_22
        0x59 -> :sswitch_22
        0x5a -> :sswitch_22
        0x5b -> :sswitch_22
        0x5c -> :sswitch_22
        0x5d -> :sswitch_22
        0x5e -> :sswitch_22
        0x5f -> :sswitch_22
        0x60 -> :sswitch_13
        0x61 -> :sswitch_13
        0x62 -> :sswitch_13
        0x63 -> :sswitch_13
        0x64 -> :sswitch_13
        0x65 -> :sswitch_13
        0x66 -> :sswitch_13
        0x67 -> :sswitch_13
        0x68 -> :sswitch_13
        0x69 -> :sswitch_13
        0x6a -> :sswitch_13
        0x6b -> :sswitch_13
        0x6c -> :sswitch_13
        0x6d -> :sswitch_13
        0x6e -> :sswitch_40
        0x6f -> :sswitch_40
        0x70 -> :sswitch_40
        0x71 -> :sswitch_40
        0x72 -> :sswitch_40
        0x74 -> :sswitch_43
        0x75 -> :sswitch_43
        0x76 -> :sswitch_43
        0x77 -> :sswitch_43
        0x78 -> :sswitch_43
        0x7b -> :sswitch_f
        0x7c -> :sswitch_f
        0x7d -> :sswitch_f
        0x7e -> :sswitch_f
        0x7f -> :sswitch_f
        0x80 -> :sswitch_f
        0x81 -> :sswitch_f
        0x82 -> :sswitch_f
        0x83 -> :sswitch_f
        0x84 -> :sswitch_f
        0x85 -> :sswitch_f
        0x86 -> :sswitch_f
        0x87 -> :sswitch_f
        0x88 -> :sswitch_f
        0x89 -> :sswitch_f
        0x8a -> :sswitch_f
        0x8b -> :sswitch_f
        0x8c -> :sswitch_f
        0x8d -> :sswitch_f
        0x8e -> :sswitch_f
        0x8f -> :sswitch_f
        0x90 -> :sswitch_2e
        0x91 -> :sswitch_2e
        0x92 -> :sswitch_2e
        0x93 -> :sswitch_2e
        0x94 -> :sswitch_2e
        0x95 -> :sswitch_2e
        0x96 -> :sswitch_2e
        0x97 -> :sswitch_2e
        0x98 -> :sswitch_2e
        0x99 -> :sswitch_2e
        0x9a -> :sswitch_2e
        0x9b -> :sswitch_2e
        0x9c -> :sswitch_2e
        0x9d -> :sswitch_2e
        0x9e -> :sswitch_2e
        0x9f -> :sswitch_2e
        0xa0 -> :sswitch_2e
        0xa1 -> :sswitch_2e
        0xa2 -> :sswitch_2e
        0xa3 -> :sswitch_2e
        0xa4 -> :sswitch_2e
        0xa5 -> :sswitch_2e
        0xa6 -> :sswitch_2e
        0xa7 -> :sswitch_2e
        0xa8 -> :sswitch_2e
        0xa9 -> :sswitch_2e
        0xaa -> :sswitch_2e
        0xab -> :sswitch_2e
        0xac -> :sswitch_2e
        0xad -> :sswitch_2e
        0xae -> :sswitch_2e
        0xaf -> :sswitch_2e
        0xb0 -> :sswitch_f
        0xb1 -> :sswitch_f
        0xb2 -> :sswitch_f
        0xb3 -> :sswitch_f
        0xb4 -> :sswitch_f
        0xb5 -> :sswitch_f
        0xb6 -> :sswitch_f
        0xb7 -> :sswitch_f
        0xb8 -> :sswitch_f
        0xb9 -> :sswitch_f
        0xba -> :sswitch_f
        0xbb -> :sswitch_f
        0xbc -> :sswitch_f
        0xbd -> :sswitch_f
        0xbe -> :sswitch_f
        0xbf -> :sswitch_f
        0xc0 -> :sswitch_f
        0xc1 -> :sswitch_f
        0xc2 -> :sswitch_f
        0xc3 -> :sswitch_f
        0xc4 -> :sswitch_f
        0xc5 -> :sswitch_f
        0xc6 -> :sswitch_f
        0xc7 -> :sswitch_f
        0xc8 -> :sswitch_f
        0xc9 -> :sswitch_f
        0xca -> :sswitch_f
        0xcb -> :sswitch_f
        0xcc -> :sswitch_f
        0xcd -> :sswitch_f
        0xce -> :sswitch_f
        0xcf -> :sswitch_f
        0xd0 -> :sswitch_25
        0xd1 -> :sswitch_25
        0xd2 -> :sswitch_25
        0xd3 -> :sswitch_25
        0xd4 -> :sswitch_25
        0xd5 -> :sswitch_25
        0xd6 -> :sswitch_25
        0xd7 -> :sswitch_25
        0xd8 -> :sswitch_1f
        0xd9 -> :sswitch_1f
        0xda -> :sswitch_1f
        0xdb -> :sswitch_1f
        0xdc -> :sswitch_1f
        0xdd -> :sswitch_1f
        0xde -> :sswitch_1f
        0xdf -> :sswitch_1f
        0xe0 -> :sswitch_1f
        0xe1 -> :sswitch_1f
        0xe2 -> :sswitch_1f
        0x100 -> :sswitch_49
        0x200 -> :sswitch_4c
        0x300 -> :sswitch_4f
    .end sparse-switch
.end method

.method public static getInstructionIndexType(I)I
    .registers 2

    sparse-switch p0, :sswitch_data_10

    const/4 v0, 0x0

    :goto_4
    return v0

    :sswitch_5
    const/4 v0, 0x3

    goto :goto_4

    :sswitch_7
    const/4 v0, 0x2

    goto :goto_4

    :sswitch_9
    const/4 v0, 0x5

    goto :goto_4

    :sswitch_b
    const/4 v0, 0x4

    goto :goto_4

    :sswitch_d
    const/4 v0, 0x1

    goto :goto_4

    nop

    :sswitch_data_10
    .sparse-switch
        -0x1 -> :sswitch_d
        0x0 -> :sswitch_d
        0x1 -> :sswitch_d
        0x2 -> :sswitch_d
        0x3 -> :sswitch_d
        0x4 -> :sswitch_d
        0x5 -> :sswitch_d
        0x6 -> :sswitch_d
        0x7 -> :sswitch_d
        0x8 -> :sswitch_d
        0x9 -> :sswitch_d
        0xa -> :sswitch_d
        0xb -> :sswitch_d
        0xc -> :sswitch_d
        0xd -> :sswitch_d
        0xe -> :sswitch_d
        0xf -> :sswitch_d
        0x10 -> :sswitch_d
        0x11 -> :sswitch_d
        0x12 -> :sswitch_d
        0x13 -> :sswitch_d
        0x14 -> :sswitch_d
        0x15 -> :sswitch_d
        0x16 -> :sswitch_d
        0x17 -> :sswitch_d
        0x18 -> :sswitch_d
        0x19 -> :sswitch_d
        0x1a -> :sswitch_5
        0x1b -> :sswitch_5
        0x1c -> :sswitch_7
        0x1d -> :sswitch_d
        0x1e -> :sswitch_d
        0x1f -> :sswitch_7
        0x20 -> :sswitch_7
        0x21 -> :sswitch_d
        0x22 -> :sswitch_7
        0x23 -> :sswitch_7
        0x24 -> :sswitch_7
        0x25 -> :sswitch_7
        0x26 -> :sswitch_d
        0x27 -> :sswitch_d
        0x28 -> :sswitch_d
        0x29 -> :sswitch_d
        0x2a -> :sswitch_d
        0x2b -> :sswitch_d
        0x2c -> :sswitch_d
        0x2d -> :sswitch_d
        0x2e -> :sswitch_d
        0x2f -> :sswitch_d
        0x30 -> :sswitch_d
        0x31 -> :sswitch_d
        0x32 -> :sswitch_d
        0x33 -> :sswitch_d
        0x34 -> :sswitch_d
        0x35 -> :sswitch_d
        0x36 -> :sswitch_d
        0x37 -> :sswitch_d
        0x38 -> :sswitch_d
        0x39 -> :sswitch_d
        0x3a -> :sswitch_d
        0x3b -> :sswitch_d
        0x3c -> :sswitch_d
        0x3d -> :sswitch_d
        0x44 -> :sswitch_d
        0x45 -> :sswitch_d
        0x46 -> :sswitch_d
        0x47 -> :sswitch_d
        0x48 -> :sswitch_d
        0x49 -> :sswitch_d
        0x4a -> :sswitch_d
        0x4b -> :sswitch_d
        0x4c -> :sswitch_d
        0x4d -> :sswitch_d
        0x4e -> :sswitch_d
        0x4f -> :sswitch_d
        0x50 -> :sswitch_d
        0x51 -> :sswitch_d
        0x52 -> :sswitch_9
        0x53 -> :sswitch_9
        0x54 -> :sswitch_9
        0x55 -> :sswitch_9
        0x56 -> :sswitch_9
        0x57 -> :sswitch_9
        0x58 -> :sswitch_9
        0x59 -> :sswitch_9
        0x5a -> :sswitch_9
        0x5b -> :sswitch_9
        0x5c -> :sswitch_9
        0x5d -> :sswitch_9
        0x5e -> :sswitch_9
        0x5f -> :sswitch_9
        0x60 -> :sswitch_9
        0x61 -> :sswitch_9
        0x62 -> :sswitch_9
        0x63 -> :sswitch_9
        0x64 -> :sswitch_9
        0x65 -> :sswitch_9
        0x66 -> :sswitch_9
        0x67 -> :sswitch_9
        0x68 -> :sswitch_9
        0x69 -> :sswitch_9
        0x6a -> :sswitch_9
        0x6b -> :sswitch_9
        0x6c -> :sswitch_9
        0x6d -> :sswitch_9
        0x6e -> :sswitch_b
        0x6f -> :sswitch_b
        0x70 -> :sswitch_b
        0x71 -> :sswitch_b
        0x72 -> :sswitch_b
        0x74 -> :sswitch_b
        0x75 -> :sswitch_b
        0x76 -> :sswitch_b
        0x77 -> :sswitch_b
        0x78 -> :sswitch_b
        0x7b -> :sswitch_d
        0x7c -> :sswitch_d
        0x7d -> :sswitch_d
        0x7e -> :sswitch_d
        0x7f -> :sswitch_d
        0x80 -> :sswitch_d
        0x81 -> :sswitch_d
        0x82 -> :sswitch_d
        0x83 -> :sswitch_d
        0x84 -> :sswitch_d
        0x85 -> :sswitch_d
        0x86 -> :sswitch_d
        0x87 -> :sswitch_d
        0x88 -> :sswitch_d
        0x89 -> :sswitch_d
        0x8a -> :sswitch_d
        0x8b -> :sswitch_d
        0x8c -> :sswitch_d
        0x8d -> :sswitch_d
        0x8e -> :sswitch_d
        0x8f -> :sswitch_d
        0x90 -> :sswitch_d
        0x91 -> :sswitch_d
        0x92 -> :sswitch_d
        0x93 -> :sswitch_d
        0x94 -> :sswitch_d
        0x95 -> :sswitch_d
        0x96 -> :sswitch_d
        0x97 -> :sswitch_d
        0x98 -> :sswitch_d
        0x99 -> :sswitch_d
        0x9a -> :sswitch_d
        0x9b -> :sswitch_d
        0x9c -> :sswitch_d
        0x9d -> :sswitch_d
        0x9e -> :sswitch_d
        0x9f -> :sswitch_d
        0xa0 -> :sswitch_d
        0xa1 -> :sswitch_d
        0xa2 -> :sswitch_d
        0xa3 -> :sswitch_d
        0xa4 -> :sswitch_d
        0xa5 -> :sswitch_d
        0xa6 -> :sswitch_d
        0xa7 -> :sswitch_d
        0xa8 -> :sswitch_d
        0xa9 -> :sswitch_d
        0xaa -> :sswitch_d
        0xab -> :sswitch_d
        0xac -> :sswitch_d
        0xad -> :sswitch_d
        0xae -> :sswitch_d
        0xaf -> :sswitch_d
        0xb0 -> :sswitch_d
        0xb1 -> :sswitch_d
        0xb2 -> :sswitch_d
        0xb3 -> :sswitch_d
        0xb4 -> :sswitch_d
        0xb5 -> :sswitch_d
        0xb6 -> :sswitch_d
        0xb7 -> :sswitch_d
        0xb8 -> :sswitch_d
        0xb9 -> :sswitch_d
        0xba -> :sswitch_d
        0xbb -> :sswitch_d
        0xbc -> :sswitch_d
        0xbd -> :sswitch_d
        0xbe -> :sswitch_d
        0xbf -> :sswitch_d
        0xc0 -> :sswitch_d
        0xc1 -> :sswitch_d
        0xc2 -> :sswitch_d
        0xc3 -> :sswitch_d
        0xc4 -> :sswitch_d
        0xc5 -> :sswitch_d
        0xc6 -> :sswitch_d
        0xc7 -> :sswitch_d
        0xc8 -> :sswitch_d
        0xc9 -> :sswitch_d
        0xca -> :sswitch_d
        0xcb -> :sswitch_d
        0xcc -> :sswitch_d
        0xcd -> :sswitch_d
        0xce -> :sswitch_d
        0xcf -> :sswitch_d
        0xd0 -> :sswitch_d
        0xd1 -> :sswitch_d
        0xd2 -> :sswitch_d
        0xd3 -> :sswitch_d
        0xd4 -> :sswitch_d
        0xd5 -> :sswitch_d
        0xd6 -> :sswitch_d
        0xd7 -> :sswitch_d
        0xd8 -> :sswitch_d
        0xd9 -> :sswitch_d
        0xda -> :sswitch_d
        0xdb -> :sswitch_d
        0xdc -> :sswitch_d
        0xdd -> :sswitch_d
        0xde -> :sswitch_d
        0xdf -> :sswitch_d
        0xe0 -> :sswitch_d
        0xe1 -> :sswitch_d
        0xe2 -> :sswitch_d
        0x100 -> :sswitch_d
        0x200 -> :sswitch_d
        0x300 -> :sswitch_d
    .end sparse-switch
.end method

.method public static getLiteralByte(J)I
    .registers 6

    long-to-int v0, p0

    int-to-byte v0, v0

    int-to-long v0, v0

    cmp-long v0, p0, v0

    if-eqz v0, :cond_25

    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, "Literal out of range: "

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

    move-result-object v1

    invoke-static {p0, p1}, Lcom/tencent/tinker/android/dx/util/Hex;->u8(J)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

    :cond_25
    long-to-int v0, p0

    and-int/lit16 v0, v0, 0xff

    return v0
.end method

.method public static getLiteralInt(J)I
    .registers 6

    long-to-int v0, p0

    int-to-long v0, v0

    cmp-long v0, p0, v0

    if-eqz v0, :cond_24

    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, "Literal out of range: "

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

    move-result-object v1

    invoke-static {p0, p1}, Lcom/tencent/tinker/android/dx/util/Hex;->u8(J)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

    :cond_24
    long-to-int v0, p0

    return v0
.end method

.method public static getLiteralNibble(J)I
    .registers 6

    const-wide/16 v0, -0x8

    cmp-long v0, p0, v0

    if-ltz v0, :cond_c

    const-wide/16 v0, 0x7

    cmp-long v0, p0, v0

    if-lez v0, :cond_2a

    :cond_c
    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, "Literal out of range: "

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

    move-result-object v1

    invoke-static {p0, p1}, Lcom/tencent/tinker/android/dx/util/Hex;->u8(J)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

    :cond_2a
    long-to-int v0, p0

    and-int/lit8 v0, v0, 0xf

    return v0
.end method

.method public static getLiteralUnit(J)S
    .registers 6

    long-to-int v0, p0

    int-to-short v0, v0

    int-to-long v0, v0

    cmp-long v0, p0, v0

    if-eqz v0, :cond_25

    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, "Literal out of range: "

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

    move-result-object v1

    invoke-static {p0, p1}, Lcom/tencent/tinker/android/dx/util/Hex;->u8(J)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

    :cond_25
    long-to-int v0, p0

    int-to-short v0, v0

    return v0
.end method

.method public static getTarget(II)I
    .registers 3

    sub-int v0, p0, p1

    return v0
.end method

.method public static getTargetByte(II)I
    .registers 6

    invoke-static {p0, p1}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->getTarget(II)I

    move-result v0

    int-to-byte v1, v0

    if-eq v0, v1, :cond_2c

    new-instance v1, Lcom/tencent/tinker/android/dex/DexException;

    new-instance v2, Ljava/lang/StringBuilder;

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

    const-string/jumbo v3, "Target out of range: "

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

    move-result-object v2

    invoke-static {v0}, Lcom/tencent/tinker/android/dx/util/Hex;->s4(I)Ljava/lang/String;

    move-result-object v0

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

    move-result-object v0

    const-string/jumbo v2, ", perhaps you need to enable force jumbo mode."

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

    move-result-object v0

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

    move-result-object v0

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

    throw v1

    :cond_2c
    and-int/lit16 v0, v0, 0xff

    return v0
.end method

.method public static getTargetUnit(II)S
    .registers 6

    invoke-static {p0, p1}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->getTarget(II)I

    move-result v0

    int-to-short v1, v0

    if-eq v0, v1, :cond_2c

    new-instance v1, Lcom/tencent/tinker/android/dex/DexException;

    new-instance v2, Ljava/lang/StringBuilder;

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

    const-string/jumbo v3, "Target out of range: "

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

    move-result-object v2

    invoke-static {v0}, Lcom/tencent/tinker/android/dx/util/Hex;->s4(I)Ljava/lang/String;

    move-result-object v0

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

    move-result-object v0

    const-string/jumbo v2, ", perhaps you need to enable force jumbo mode."

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

    move-result-object v0

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

    move-result-object v0

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

    throw v1

    :cond_2c
    int-to-short v0, v0

    return v0
.end method

.method public static makeByte(II)I
    .registers 4

    and-int/lit8 v0, p0, -0x10

    if-eqz v0, :cond_d

    new-instance v0, Ljava/lang/IllegalArgumentException;

    const-string/jumbo v1, "bogus lowNibble"

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

    throw v0

    :cond_d
    and-int/lit8 v0, p1, -0x10

    if-eqz v0, :cond_1a

    new-instance v0, Ljava/lang/IllegalArgumentException;

    const-string/jumbo v1, "bogus highNibble"

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

    throw v0

    :cond_1a
    shl-int/lit8 v0, p1, 0x4

    or-int/2addr v0, p0

    return v0
.end method

.method public static nibble0(I)I
    .registers 2

    and-int/lit8 v0, p0, 0xf

    return v0
.end method

.method public static nibble1(I)I
    .registers 2

    shr-int/lit8 v0, p0, 0x4

    and-int/lit8 v0, v0, 0xf

    return v0
.end method

.method public static nibble2(I)I
    .registers 2

    shr-int/lit8 v0, p0, 0x8

    and-int/lit8 v0, v0, 0xf

    return v0
.end method

.method public static nibble3(I)I
    .registers 2

    shr-int/lit8 v0, p0, 0xc

    and-int/lit8 v0, v0, 0xf

    return v0
.end method

.method public static unit0(I)S
    .registers 2

    int-to-short v0, p0

    return v0
.end method

.method public static unit0(J)S
    .registers 4

    long-to-int v0, p0

    int-to-short v0, v0

    return v0
.end method

.method public static unit1(I)S
    .registers 2

    shr-int/lit8 v0, p0, 0x10

    int-to-short v0, v0

    return v0
.end method

.method public static unit1(J)S
    .registers 4

    const/16 v0, 0x10

    shr-long v0, p0, v0

    long-to-int v0, v0

    int-to-short v0, v0

    return v0
.end method

.method public static unit2(J)S
    .registers 4

    const/16 v0, 0x20

    shr-long v0, p0, v0

    long-to-int v0, v0

    int-to-short v0, v0

    return v0
.end method

.method public static unit3(J)S
    .registers 4

    const/16 v0, 0x30

    shr-long v0, p0, v0

    long-to-int v0, v0

    int-to-short v0, v0

    return v0
.end method