Hex.smali
.class public final Lcom/tencent/tinker/android/dx/util/Hex;
.super Ljava/lang/Object;
# direct methods
.method private constructor <init>()V
.registers 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static dump([BIIIII)Ljava/lang/String;
.registers 11
const/16 v4, 0xa
const/4 v1, 0x0
add-int v0, p1, p2
or-int v2, p1, p2
or-int/2addr v2, v0
if-ltz v2, :cond_d
array-length v2, p0
if-le v0, v2, :cond_3e
:cond_d
new-instance v1, Ljava/lang/IndexOutOfBoundsException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v3, "arr.length "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
array-length v3, p0
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v2
const-string/jumbo v3, "; "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v2
const-string/jumbo v3, "..!"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)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}, Ljava/lang/IndexOutOfBoundsException;-><init>(Ljava/lang/String;)V
throw v1
:cond_3e
if-gez p3, :cond_49
new-instance v0, Ljava/lang/IllegalArgumentException;
const-string/jumbo v1, "outOffset < 0"
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
:cond_49
if-nez p2, :cond_4f
const-string/jumbo v0, ""
:goto_4e
return-object v0
:cond_4f
new-instance v3, Ljava/lang/StringBuffer;
mul-int/lit8 v0, p2, 0x4
add-int/lit8 v0, v0, 0x6
invoke-direct {v3, v0}, Ljava/lang/StringBuffer;-><init>(I)V
move v2, v1
:goto_59
if-lez p2, :cond_9f
if-nez v2, :cond_95
packed-switch p5, :pswitch_data_aa
:pswitch_60
invoke-static {p3}, Lcom/tencent/tinker/android/dx/util/Hex;->u4(I)Ljava/lang/String;
move-result-object v0
:goto_64
invoke-virtual {v3, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
const-string/jumbo v0, ": "
invoke-virtual {v3, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
:cond_6d
:goto_6d
aget-byte v0, p0, p1
invoke-static {v0}, Lcom/tencent/tinker/android/dx/util/Hex;->u1(I)Ljava/lang/String;
move-result-object v0
invoke-virtual {v3, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
add-int/lit8 p3, p3, 0x1
add-int/lit8 p1, p1, 0x1
add-int/lit8 v0, v2, 0x1
if-ne v0, p4, :cond_82
invoke-virtual {v3, v4}, Ljava/lang/StringBuffer;->append(C)Ljava/lang/StringBuffer;
move v0, v1
:cond_82
add-int/lit8 p2, p2, -0x1
move v2, v0
goto :goto_59
:pswitch_86
invoke-static {p3}, Lcom/tencent/tinker/android/dx/util/Hex;->u1(I)Ljava/lang/String;
move-result-object v0
goto :goto_64
:pswitch_8b
invoke-static {p3}, Lcom/tencent/tinker/android/dx/util/Hex;->u2(I)Ljava/lang/String;
move-result-object v0
goto :goto_64
:pswitch_90
invoke-static {p3}, Lcom/tencent/tinker/android/dx/util/Hex;->u3(I)Ljava/lang/String;
move-result-object v0
goto :goto_64
:cond_95
and-int/lit8 v0, v2, 0x1
if-nez v0, :cond_6d
const/16 v0, 0x20
invoke-virtual {v3, v0}, Ljava/lang/StringBuffer;->append(C)Ljava/lang/StringBuffer;
goto :goto_6d
:cond_9f
if-eqz v2, :cond_a4
invoke-virtual {v3, v4}, Ljava/lang/StringBuffer;->append(C)Ljava/lang/StringBuffer;
:cond_a4
invoke-virtual {v3}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v0
goto :goto_4e
nop
:pswitch_data_aa
.packed-switch 0x2
:pswitch_86
:pswitch_60
:pswitch_8b
:pswitch_60
:pswitch_90
.end packed-switch
.end method
.method public static s1(I)Ljava/lang/String;
.registers 6
const/4 v0, 0x0
const/4 v1, 0x3
new-array v1, v1, [C
if-gez p0, :cond_1f
const/16 v2, 0x2d
aput-char v2, v1, v0
neg-int p0, p0
:goto_b
const/4 v2, 0x2
if-ge v0, v2, :cond_24
rsub-int/lit8 v2, v0, 0x2
and-int/lit8 v3, p0, 0xf
const/16 v4, 0x10
invoke-static {v3, v4}, Ljava/lang/Character;->forDigit(II)C
move-result v3
aput-char v3, v1, v2
shr-int/lit8 p0, p0, 0x4
add-int/lit8 v0, v0, 0x1
goto :goto_b
:cond_1f
const/16 v2, 0x2b
aput-char v2, v1, v0
goto :goto_b
:cond_24
new-instance v0, Ljava/lang/String;
invoke-direct {v0, v1}, Ljava/lang/String;-><init>([C)V
return-object v0
.end method
.method public static s2(I)Ljava/lang/String;
.registers 6
const/4 v0, 0x0
const/4 v1, 0x5
new-array v1, v1, [C
if-gez p0, :cond_1f
const/16 v2, 0x2d
aput-char v2, v1, v0
neg-int p0, p0
:goto_b
const/4 v2, 0x4
if-ge v0, v2, :cond_24
rsub-int/lit8 v2, v0, 0x4
and-int/lit8 v3, p0, 0xf
const/16 v4, 0x10
invoke-static {v3, v4}, Ljava/lang/Character;->forDigit(II)C
move-result v3
aput-char v3, v1, v2
shr-int/lit8 p0, p0, 0x4
add-int/lit8 v0, v0, 0x1
goto :goto_b
:cond_1f
const/16 v2, 0x2b
aput-char v2, v1, v0
goto :goto_b
:cond_24
new-instance v0, Ljava/lang/String;
invoke-direct {v0, v1}, Ljava/lang/String;-><init>([C)V
return-object v0
.end method
.method public static s4(I)Ljava/lang/String;
.registers 6
const/4 v0, 0x0
const/16 v1, 0x9
new-array v1, v1, [C
if-gez p0, :cond_21
const/16 v2, 0x2d
aput-char v2, v1, v0
neg-int p0, p0
:goto_c
const/16 v2, 0x8
if-ge v0, v2, :cond_26
rsub-int/lit8 v2, v0, 0x8
and-int/lit8 v3, p0, 0xf
const/16 v4, 0x10
invoke-static {v3, v4}, Ljava/lang/Character;->forDigit(II)C
move-result v3
aput-char v3, v1, v2
shr-int/lit8 p0, p0, 0x4
add-int/lit8 v0, v0, 0x1
goto :goto_c
:cond_21
const/16 v2, 0x2b
aput-char v2, v1, v0
goto :goto_c
:cond_26
new-instance v0, Ljava/lang/String;
invoke-direct {v0, v1}, Ljava/lang/String;-><init>([C)V
return-object v0
.end method
.method public static s8(J)Ljava/lang/String;
.registers 8
const/16 v4, 0x10
const/4 v0, 0x0
const/16 v1, 0x11
new-array v1, v1, [C
const-wide/16 v2, 0x0
cmp-long v2, p0, v2
if-gez v2, :cond_24
const/16 v2, 0x2d
aput-char v2, v1, v0
neg-long p0, p0
:goto_12
if-ge v0, v4, :cond_29
rsub-int/lit8 v2, v0, 0x10
long-to-int v3, p0
and-int/lit8 v3, v3, 0xf
invoke-static {v3, v4}, Ljava/lang/Character;->forDigit(II)C
move-result v3
aput-char v3, v1, v2
const/4 v2, 0x4
shr-long/2addr p0, v2
add-int/lit8 v0, v0, 0x1
goto :goto_12
:cond_24
const/16 v2, 0x2b
aput-char v2, v1, v0
goto :goto_12
:cond_29
new-instance v0, Ljava/lang/String;
invoke-direct {v0, v1}, Ljava/lang/String;-><init>([C)V
return-object v0
.end method
.method public static toHexString([B)Ljava/lang/String;
.registers 5
new-instance v1, Ljava/lang/StringBuilder;
array-length v0, p0
shl-int/lit8 v0, v0, 0x1
invoke-direct {v1, v0}, Ljava/lang/StringBuilder;-><init>(I)V
array-length v2, p0
const/4 v0, 0x0
:goto_a
if-ge v0, v2, :cond_18
aget-byte v3, p0, v0
invoke-static {v3}, Lcom/tencent/tinker/android/dx/util/Hex;->u1(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
add-int/lit8 v0, v0, 0x1
goto :goto_a
:cond_18
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static u1(I)Ljava/lang/String;
.registers 7
const/4 v5, 0x2
new-array v1, v5, [C
const/4 v0, 0x0
:goto_4
if-ge v0, v5, :cond_17
rsub-int/lit8 v2, v0, 0x1
and-int/lit8 v3, p0, 0xf
const/16 v4, 0x10
invoke-static {v3, v4}, Ljava/lang/Character;->forDigit(II)C
move-result v3
aput-char v3, v1, v2
shr-int/lit8 p0, p0, 0x4
add-int/lit8 v0, v0, 0x1
goto :goto_4
:cond_17
new-instance v0, Ljava/lang/String;
invoke-direct {v0, v1}, Ljava/lang/String;-><init>([C)V
return-object v0
.end method
.method public static u2(I)Ljava/lang/String;
.registers 7
const/4 v5, 0x4
new-array v1, v5, [C
const/4 v0, 0x0
:goto_4
if-ge v0, v5, :cond_17
rsub-int/lit8 v2, v0, 0x3
and-int/lit8 v3, p0, 0xf
const/16 v4, 0x10
invoke-static {v3, v4}, Ljava/lang/Character;->forDigit(II)C
move-result v3
aput-char v3, v1, v2
shr-int/lit8 p0, p0, 0x4
add-int/lit8 v0, v0, 0x1
goto :goto_4
:cond_17
new-instance v0, Ljava/lang/String;
invoke-direct {v0, v1}, Ljava/lang/String;-><init>([C)V
return-object v0
.end method
.method public static u2or4(I)Ljava/lang/String;
.registers 2
int-to-char v0, p0
if-ne p0, v0, :cond_8
invoke-static {p0}, Lcom/tencent/tinker/android/dx/util/Hex;->u2(I)Ljava/lang/String;
move-result-object v0
:goto_7
return-object v0
:cond_8
invoke-static {p0}, Lcom/tencent/tinker/android/dx/util/Hex;->u4(I)Ljava/lang/String;
move-result-object v0
goto :goto_7
.end method
.method public static u3(I)Ljava/lang/String;
.registers 7
const/4 v5, 0x6
new-array v1, v5, [C
const/4 v0, 0x0
:goto_4
if-ge v0, v5, :cond_17
rsub-int/lit8 v2, v0, 0x5
and-int/lit8 v3, p0, 0xf
const/16 v4, 0x10
invoke-static {v3, v4}, Ljava/lang/Character;->forDigit(II)C
move-result v3
aput-char v3, v1, v2
shr-int/lit8 p0, p0, 0x4
add-int/lit8 v0, v0, 0x1
goto :goto_4
:cond_17
new-instance v0, Ljava/lang/String;
invoke-direct {v0, v1}, Ljava/lang/String;-><init>([C)V
return-object v0
.end method
.method public static u4(I)Ljava/lang/String;
.registers 7
const/16 v5, 0x8
new-array v1, v5, [C
const/4 v0, 0x0
:goto_5
if-ge v0, v5, :cond_18
rsub-int/lit8 v2, v0, 0x7
and-int/lit8 v3, p0, 0xf
const/16 v4, 0x10
invoke-static {v3, v4}, Ljava/lang/Character;->forDigit(II)C
move-result v3
aput-char v3, v1, v2
shr-int/lit8 p0, p0, 0x4
add-int/lit8 v0, v0, 0x1
goto :goto_5
:cond_18
new-instance v0, Ljava/lang/String;
invoke-direct {v0, v1}, Ljava/lang/String;-><init>([C)V
return-object v0
.end method
.method public static u8(J)Ljava/lang/String;
.registers 8
const/16 v4, 0x10
new-array v1, v4, [C
const/4 v0, 0x0
:goto_5
if-ge v0, v4, :cond_17
rsub-int/lit8 v2, v0, 0xf
long-to-int v3, p0
and-int/lit8 v3, v3, 0xf
invoke-static {v3, v4}, Ljava/lang/Character;->forDigit(II)C
move-result v3
aput-char v3, v1, v2
const/4 v2, 0x4
shr-long/2addr p0, v2
add-int/lit8 v0, v0, 0x1
goto :goto_5
:cond_17
new-instance v0, Ljava/lang/String;
invoke-direct {v0, v1}, Ljava/lang/String;-><init>([C)V
return-object v0
.end method
.method public static uNibble(I)Ljava/lang/String;
.registers 5
const/4 v0, 0x1
new-array v0, v0, [C
const/4 v1, 0x0
and-int/lit8 v2, p0, 0xf
const/16 v3, 0x10
invoke-static {v2, v3}, Ljava/lang/Character;->forDigit(II)C
move-result v2
aput-char v2, v0, v1
new-instance v1, Ljava/lang/String;
invoke-direct {v1, v0}, Ljava/lang/String;-><init>([C)V
return-object v1
.end method