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