b.smali
.class public final Lcom/subgraph/orchid/d/b;
.super Ljava/lang/Object;
.source "Base32.java"
# direct methods
.method public static aq([B)Ljava/lang/String;
.registers 8
.prologue
const/4 v0, 0x0
.line 9
array-length v1, p0
.line 1013
shl-int/lit8 v3, v1, 0x3
.line 1014
rem-int/lit8 v1, v3, 0x5
if-eqz v1, :cond_10
.line 1015
new-instance v0, Lcom/subgraph/orchid/TorException;
const-string v1, "Base32 input length must be a multiple of 5 bits"
invoke-direct {v0, v1}, Lcom/subgraph/orchid/TorException;-><init>(Ljava/lang/String;)V
throw v0
.line 1017
:cond_10
div-int/lit8 v4, v3, 0x5
.line 1018
new-instance v5, Ljava/lang/StringBuffer;
invoke-direct {v5}, Ljava/lang/StringBuffer;-><init>()V
move v1, v0
move v2, v0
.line 1020
:goto_19
if-ge v1, v4, :cond_46
.line 1021
div-int/lit8 v0, v2, 0x8
aget-byte v0, p0, v0
and-int/lit16 v0, v0, 0xff
shl-int/lit8 v0, v0, 0x8
.line 1022
add-int/lit8 v6, v2, 0x5
if-ge v6, v3, :cond_30
div-int/lit8 v6, v2, 0x8
add-int/lit8 v6, v6, 0x1
aget-byte v6, p0, v6
and-int/lit16 v6, v6, 0xff
add-int/2addr v0, v6
.line 1023
:cond_30
rem-int/lit8 v6, v2, 0x8
rsub-int/lit8 v6, v6, 0xb
shr-int/2addr v0, v6
and-int/lit8 v0, v0, 0x1f
.line 1024
const-string v6, "abcdefghijklmnopqrstuvwxyz234567"
invoke-virtual {v6, v0}, Ljava/lang/String;->charAt(I)C
move-result v0
invoke-virtual {v5, v0}, Ljava/lang/StringBuffer;->append(C)Ljava/lang/StringBuffer;
.line 1025
add-int/lit8 v2, v2, 0x5
.line 1020
add-int/lit8 v0, v1, 0x1
move v1, v0
goto :goto_19
.line 1027
:cond_46
invoke-virtual {v5}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v0
.line 9
return-object v0
.end method
.method public static gL(Ljava/lang/String;)[B
.registers 10
.prologue
const/4 v1, 0x0
.line 31
.line 1074
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
add-int/lit8 v0, v0, 0x1
new-array v3, v0, [I
move v0, v1
.line 1075
:goto_a
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v2
if-ge v0, v2, :cond_58
.line 1076
invoke-virtual {p0, v0}, Ljava/lang/String;->charAt(I)C
move-result v2
and-int/lit16 v2, v2, 0xff
.line 1077
const/16 v4, 0x60
if-le v2, v4, :cond_25
const/16 v4, 0x7b
if-ge v2, v4, :cond_25
.line 1078
add-int/lit8 v2, v2, -0x61
aput v2, v3, v0
.line 1075
:goto_22
add-int/lit8 v0, v0, 0x1
goto :goto_a
.line 1079
:cond_25
const/16 v4, 0x31
if-le v2, v4, :cond_32
const/16 v4, 0x38
if-ge v2, v4, :cond_32
.line 1080
add-int/lit8 v2, v2, -0x18
aput v2, v3, v0
goto :goto_22
.line 1081
:cond_32
const/16 v4, 0x40
if-le v2, v4, :cond_3f
const/16 v4, 0x5b
if-ge v2, v4, :cond_3f
.line 1082
add-int/lit8 v2, v2, -0x41
aput v2, v3, v0
goto :goto_22
.line 1084
:cond_3f
new-instance v1, Lcom/subgraph/orchid/TorException;
new-instance v2, Ljava/lang/StringBuilder;
const-string v3, "Illegal character in base32 encoded string: "
invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {p0, v0}, Ljava/lang/String;->charAt(I)C
move-result v0
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(C)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/subgraph/orchid/TorException;-><init>(Ljava/lang/String;)V
throw v1
.line 33
:cond_58
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
mul-int/lit8 v0, v0, 0x5
.line 34
rem-int/lit8 v2, v0, 0x8
if-eqz v2, :cond_6a
.line 35
new-instance v0, Lcom/subgraph/orchid/TorException;
const-string v1, "Base32 decoded array must be a muliple of 8 bits"
invoke-direct {v0, v1}, Lcom/subgraph/orchid/TorException;-><init>(Ljava/lang/String;)V
throw v0
.line 37
:cond_6a
div-int/lit8 v4, v0, 0x8
.line 38
new-array v5, v4, [B
move v2, v1
.line 41
:goto_6f
if-ge v1, v4, :cond_cc
.line 42
div-int/lit8 v0, v2, 0x5
.line 43
aget v6, v3, v0
add-int/lit8 v7, v0, 0x1
aget v7, v3, v7
add-int/lit8 v0, v0, 0x2
aget v0, v3, v0
.line 2050
rem-int/lit8 v8, v2, 0x28
sparse-switch v8, :sswitch_data_ce
.line 2062
new-instance v0, Lcom/subgraph/orchid/TorException;
const-string v1, "Illegal bit offset"
invoke-direct {v0, v1}, Lcom/subgraph/orchid/TorException;-><init>(Ljava/lang/String;)V
throw v0
.line 2066
:sswitch_8a
shl-int/lit8 v0, v6, 0x3
and-int/lit16 v0, v0, 0xff
.line 2070
shr-int/lit8 v6, v7, 0x2
and-int/lit16 v6, v6, 0xff
.line 2052
add-int/2addr v0, v6
.line 43
:goto_93
int-to-byte v0, v0
aput-byte v0, v5, v1
.line 44
add-int/lit8 v0, v2, 0x8
.line 41
add-int/lit8 v1, v1, 0x1
move v2, v0
goto :goto_6f
.line 3066
:sswitch_9c
shl-int/lit8 v6, v6, 0x6
and-int/lit16 v6, v6, 0xff
.line 4066
shl-int/lit8 v7, v7, 0x1
and-int/lit16 v7, v7, 0xff
.line 2054
add-int/2addr v6, v7
.line 4070
shr-int/lit8 v0, v0, 0x4
and-int/lit16 v0, v0, 0xff
.line 2054
add-int/2addr v0, v6
goto :goto_93
.line 5066
:sswitch_ab
shl-int/lit8 v0, v6, 0x4
and-int/lit16 v0, v0, 0xff
.line 5070
shr-int/lit8 v6, v7, 0x1
and-int/lit16 v6, v6, 0xff
.line 2056
add-int/2addr v0, v6
goto :goto_93
.line 6066
:sswitch_b5
shl-int/lit8 v6, v6, 0x7
and-int/lit16 v6, v6, 0xff
.line 7066
shl-int/lit8 v7, v7, 0x2
and-int/lit16 v7, v7, 0xff
.line 2058
add-int/2addr v6, v7
.line 7070
shr-int/lit8 v0, v0, 0x3
and-int/lit16 v0, v0, 0xff
.line 2058
add-int/2addr v0, v6
goto :goto_93
.line 8066
:sswitch_c4
shl-int/lit8 v0, v6, 0x5
and-int/lit16 v0, v0, 0xff
.line 2060
and-int/lit16 v6, v7, 0xff
add-int/2addr v0, v6
goto :goto_93
.line 46
:cond_cc
return-object v5
.line 2050
nop
:sswitch_data_ce
.sparse-switch
0x0 -> :sswitch_8a
0x8 -> :sswitch_9c
0x10 -> :sswitch_ab
0x18 -> :sswitch_b5
0x20 -> :sswitch_c4
.end sparse-switch
.end method