Base64.smali
.class public Lcom/cleanmaster/commons/Base64;
.super Ljava/lang/Object;
.source "Base64.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/cleanmaster/commons/Base64$Coder;
}
.end annotation
# static fields
.field public static final CRLF:I = 0x4
.field public static final DEFAULT:I = 0x0
.field public static final NO_PADDING:I = 0x1
.field public static final NO_WRAP:I = 0x2
.field public static final URL_SAFE:I = 0x8
.field private static base64DecodeChars:[B
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 762
const/16 v0, 0x80
new-array v0, v0, [B
fill-array-data v0, :array_a
sput-object v0, Lcom/cleanmaster/commons/Base64;->base64DecodeChars:[B
return-void
:array_a
.array-data 1
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
0x3et
-0x1t
-0x1t
-0x1t
0x3ft
0x34t
0x35t
0x36t
0x37t
0x38t
0x39t
0x3at
0x3bt
0x3ct
0x3dt
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
0x0t
0x1t
0x2t
0x3t
0x4t
0x5t
0x6t
0x7t
0x8t
0x9t
0xat
0xbt
0xct
0xdt
0xet
0xft
0x10t
0x11t
0x12t
0x13t
0x14t
0x15t
0x16t
0x17t
0x18t
0x19t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
0x1at
0x1bt
0x1ct
0x1dt
0x1et
0x1ft
0x20t
0x21t
0x22t
0x23t
0x24t
0x25t
0x26t
0x27t
0x28t
0x29t
0x2at
0x2bt
0x2ct
0x2dt
0x2et
0x2ft
0x30t
0x31t
0x32t
0x33t
-0x1t
-0x1t
-0x1t
-0x1t
-0x1t
.end array-data
.end method
.method private constructor <init>()V
.registers 1
.prologue
.line 739
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 740
return-void
.end method
.method public static decode(Ljava/lang/String;)[B
.registers 10
.prologue
const/16 v8, 0x3d
const/4 v7, -0x1
.line 821
invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B
move-result-object v2
.line 822
array-length v3, v2
.line 823
new-instance v4, Ljava/io/ByteArrayOutputStream;
invoke-direct {v4, v3}, Ljava/io/ByteArrayOutputStream;-><init>(I)V
.line 824
const/4 v0, 0x0
.line 826
:goto_e
if-ge v0, v3, :cond_1e
.line 830
:goto_10
sget-object v5, Lcom/cleanmaster/commons/Base64;->base64DecodeChars:[B
add-int/lit8 v1, v0, 0x1
aget-byte v0, v2, v0
aget-byte v5, v5, v0
.line 832
if-ge v1, v3, :cond_1c
if-eq v5, v7, :cond_7f
.line 833
:cond_1c
if-ne v5, v7, :cond_24
.line 872
:cond_1e
invoke-virtual {v4}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object v0
:goto_22
return-object v0
:cond_23
move v1, v0
.line 839
:cond_24
sget-object v6, Lcom/cleanmaster/commons/Base64;->base64DecodeChars:[B
add-int/lit8 v0, v1, 0x1
aget-byte v1, v2, v1
aget-byte v6, v6, v1
.line 840
if-ge v0, v3, :cond_30
if-eq v6, v7, :cond_23
.line 841
:cond_30
if-eq v6, v7, :cond_1e
.line 844
shl-int/lit8 v1, v5, 0x2
and-int/lit8 v5, v6, 0x30
ushr-int/lit8 v5, v5, 0x4
or-int/2addr v1, v5
invoke-virtual {v4, v1}, Ljava/io/ByteArrayOutputStream;->write(I)V
.line 848
:goto_3c
add-int/lit8 v1, v0, 0x1
aget-byte v0, v2, v0
.line 849
if-ne v0, v8, :cond_47
.line 850
invoke-virtual {v4}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object v0
goto :goto_22
.line 852
:cond_47
sget-object v5, Lcom/cleanmaster/commons/Base64;->base64DecodeChars:[B
aget-byte v5, v5, v0
.line 853
if-ge v1, v3, :cond_4f
if-eq v5, v7, :cond_7d
.line 854
:cond_4f
if-eq v5, v7, :cond_1e
.line 857
and-int/lit8 v0, v6, 0xf
shl-int/lit8 v0, v0, 0x4
and-int/lit8 v6, v5, 0x3c
ushr-int/lit8 v6, v6, 0x2
or-int/2addr v0, v6
invoke-virtual {v4, v0}, Ljava/io/ByteArrayOutputStream;->write(I)V
.line 861
:goto_5d
add-int/lit8 v0, v1, 0x1
aget-byte v1, v2, v1
.line 862
if-ne v1, v8, :cond_68
.line 863
invoke-virtual {v4}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object v0
goto :goto_22
.line 865
:cond_68
sget-object v6, Lcom/cleanmaster/commons/Base64;->base64DecodeChars:[B
aget-byte v1, v6, v1
.line 866
if-ge v0, v3, :cond_70
if-eq v1, v7, :cond_7b
.line 867
:cond_70
if-eq v1, v7, :cond_1e
.line 870
and-int/lit8 v5, v5, 0x3
shl-int/lit8 v5, v5, 0x6
or-int/2addr v1, v5
invoke-virtual {v4, v1}, Ljava/io/ByteArrayOutputStream;->write(I)V
goto :goto_e
:cond_7b
move v1, v0
goto :goto_5d
:cond_7d
move v0, v1
goto :goto_3c
:cond_7f
move v0, v1
goto :goto_10
.end method