Base64.smali
.class public Lorg/apache/commons/codec/binary/Base64;
.super Lorg/apache/commons/codec/binary/BaseNCodec;
# static fields
.field static final j:[B
.field private static final k:[B
.field private static final l:[B
.field private static final m:[B
# instance fields
.field private final e:[B
.field private final f:[B
.field private final g:[B
.field private final h:I
.field private final i:I
# direct methods
.method static constructor <clinit>()V
.registers 2
const/4 v0, 0x2
new-array v0, v0, [B
fill-array-data v0, :array_22
sput-object v0, Lorg/apache/commons/codec/binary/Base64;->j:[B
const/16 v0, 0x40
new-array v1, v0, [B
fill-array-data v1, :array_28
sput-object v1, Lorg/apache/commons/codec/binary/Base64;->k:[B
new-array v0, v0, [B
fill-array-data v0, :array_4c
sput-object v0, Lorg/apache/commons/codec/binary/Base64;->l:[B
const/16 v0, 0x7b
new-array v0, v0, [B
fill-array-data v0, :array_70
sput-object v0, Lorg/apache/commons/codec/binary/Base64;->m:[B
return-void
:array_22
.array-data 1
0xdt
0xat
.end array-data
nop
:array_28
.array-data 1
0x41t
0x42t
0x43t
0x44t
0x45t
0x46t
0x47t
0x48t
0x49t
0x4at
0x4bt
0x4ct
0x4dt
0x4et
0x4ft
0x50t
0x51t
0x52t
0x53t
0x54t
0x55t
0x56t
0x57t
0x58t
0x59t
0x5at
0x61t
0x62t
0x63t
0x64t
0x65t
0x66t
0x67t
0x68t
0x69t
0x6at
0x6bt
0x6ct
0x6dt
0x6et
0x6ft
0x70t
0x71t
0x72t
0x73t
0x74t
0x75t
0x76t
0x77t
0x78t
0x79t
0x7at
0x30t
0x31t
0x32t
0x33t
0x34t
0x35t
0x36t
0x37t
0x38t
0x39t
0x2bt
0x2ft
.end array-data
:array_4c
.array-data 1
0x41t
0x42t
0x43t
0x44t
0x45t
0x46t
0x47t
0x48t
0x49t
0x4at
0x4bt
0x4ct
0x4dt
0x4et
0x4ft
0x50t
0x51t
0x52t
0x53t
0x54t
0x55t
0x56t
0x57t
0x58t
0x59t
0x5at
0x61t
0x62t
0x63t
0x64t
0x65t
0x66t
0x67t
0x68t
0x69t
0x6at
0x6bt
0x6ct
0x6dt
0x6et
0x6ft
0x70t
0x71t
0x72t
0x73t
0x74t
0x75t
0x76t
0x77t
0x78t
0x79t
0x7at
0x30t
0x31t
0x32t
0x33t
0x34t
0x35t
0x36t
0x37t
0x38t
0x39t
0x2dt
0x5ft
.end array-data
:array_70
.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
0x3et
-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
0x3ft
-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
.end array-data
.end method
.method public constructor <init>()V
.registers 2
const/4 v0, 0x0
invoke-direct {p0, v0}, Lorg/apache/commons/codec/binary/Base64;-><init>(I)V
return-void
.end method
.method public constructor <init>(I)V
.registers 3
sget-object v0, Lorg/apache/commons/codec/binary/Base64;->j:[B
invoke-direct {p0, p1, v0}, Lorg/apache/commons/codec/binary/Base64;-><init>(I[B)V
return-void
.end method
.method public constructor <init>(I[B)V
.registers 4
const/4 v0, 0x0
invoke-direct {p0, p1, p2, v0}, Lorg/apache/commons/codec/binary/Base64;-><init>(I[BZ)V
return-void
.end method
.method public constructor <init>(I[BZ)V
.registers 8
const/4 v0, 0x0
if-nez p2, :cond_5
const/4 v1, 0x0
goto :goto_6
:cond_5
array-length v1, p2
:goto_6
const/4 v2, 0x3
const/4 v3, 0x4
invoke-direct {p0, v2, v3, p1, v1}, Lorg/apache/commons/codec/binary/BaseNCodec;-><init>(IIII)V
sget-object v1, Lorg/apache/commons/codec/binary/Base64;->m:[B
iput-object v1, p0, Lorg/apache/commons/codec/binary/Base64;->f:[B
const/4 v1, 0x0
if-eqz p2, :cond_4d
invoke-virtual {p0, p2}, Lorg/apache/commons/codec/binary/BaseNCodec;->b([B)Z
move-result v2
if-nez v2, :cond_2d
if-lez p1, :cond_28
array-length p1, p2
add-int/2addr p1, v3
iput p1, p0, Lorg/apache/commons/codec/binary/Base64;->i:I
array-length p1, p2
new-array p1, p1, [B
iput-object p1, p0, Lorg/apache/commons/codec/binary/Base64;->g:[B
array-length v1, p2
invoke-static {p2, v0, p1, v0, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
goto :goto_51
:cond_28
iput v3, p0, Lorg/apache/commons/codec/binary/Base64;->i:I
iput-object v1, p0, Lorg/apache/commons/codec/binary/Base64;->g:[B
goto :goto_51
:cond_2d
invoke-static {p2}, Lorg/apache/commons/codec/binary/StringUtils;->newStringUtf8([B)Ljava/lang/String;
move-result-object p1
new-instance p2, Ljava/lang/IllegalArgumentException;
new-instance p3, Ljava/lang/StringBuilder;
invoke-direct {p3}, Ljava/lang/StringBuilder;-><init>()V
const-string v0, "lineSeparator must not contain base64 characters: ["
invoke-virtual {p3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p1, "]"
invoke-virtual {p3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {p2, p1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p2
:cond_4d
iput v3, p0, Lorg/apache/commons/codec/binary/Base64;->i:I
iput-object v1, p0, Lorg/apache/commons/codec/binary/Base64;->g:[B
:goto_51
iget p1, p0, Lorg/apache/commons/codec/binary/Base64;->i:I
add-int/lit8 p1, p1, -0x1
iput p1, p0, Lorg/apache/commons/codec/binary/Base64;->h:I
if-eqz p3, :cond_5c
sget-object p1, Lorg/apache/commons/codec/binary/Base64;->l:[B
goto :goto_5e
:cond_5c
sget-object p1, Lorg/apache/commons/codec/binary/Base64;->k:[B
:goto_5e
iput-object p1, p0, Lorg/apache/commons/codec/binary/Base64;->e:[B
return-void
.end method
.method public constructor <init>(Z)V
.registers 4
sget-object v0, Lorg/apache/commons/codec/binary/Base64;->j:[B
const/16 v1, 0x4c
invoke-direct {p0, v1, v0, p1}, Lorg/apache/commons/codec/binary/Base64;-><init>(I[BZ)V
return-void
.end method
.method public static decodeBase64(Ljava/lang/String;)[B
.registers 2
new-instance v0, Lorg/apache/commons/codec/binary/Base64;
invoke-direct {v0}, Lorg/apache/commons/codec/binary/Base64;-><init>()V
invoke-virtual {v0, p0}, Lorg/apache/commons/codec/binary/BaseNCodec;->decode(Ljava/lang/String;)[B
move-result-object p0
return-object p0
.end method
.method public static decodeBase64([B)[B
.registers 2
new-instance v0, Lorg/apache/commons/codec/binary/Base64;
invoke-direct {v0}, Lorg/apache/commons/codec/binary/Base64;-><init>()V
invoke-virtual {v0, p0}, Lorg/apache/commons/codec/binary/BaseNCodec;->decode([B)[B
move-result-object p0
return-object p0
.end method
.method public static decodeInteger([B)Ljava/math/BigInteger;
.registers 3
new-instance v0, Ljava/math/BigInteger;
invoke-static {p0}, Lorg/apache/commons/codec/binary/Base64;->decodeBase64([B)[B
move-result-object p0
const/4 v1, 0x1
invoke-direct {v0, v1, p0}, Ljava/math/BigInteger;-><init>(I[B)V
return-object v0
.end method
.method public static encodeBase64([B)[B
.registers 2
const/4 v0, 0x0
invoke-static {p0, v0}, Lorg/apache/commons/codec/binary/Base64;->encodeBase64([BZ)[B
move-result-object p0
return-object p0
.end method
.method public static encodeBase64([BZ)[B
.registers 3
const/4 v0, 0x0
invoke-static {p0, p1, v0}, Lorg/apache/commons/codec/binary/Base64;->encodeBase64([BZZ)[B
move-result-object p0
return-object p0
.end method
.method public static encodeBase64([BZZ)[B
.registers 4
const v0, 0x7fffffff
invoke-static {p0, p1, p2, v0}, Lorg/apache/commons/codec/binary/Base64;->encodeBase64([BZZI)[B
move-result-object p0
return-object p0
.end method
.method public static encodeBase64([BZZI)[B
.registers 8
if-eqz p0, :cond_43
array-length v0, p0
if-nez v0, :cond_6
goto :goto_43
:cond_6
if-eqz p1, :cond_e
new-instance p1, Lorg/apache/commons/codec/binary/Base64;
invoke-direct {p1, p2}, Lorg/apache/commons/codec/binary/Base64;-><init>(Z)V
goto :goto_16
:cond_e
new-instance p1, Lorg/apache/commons/codec/binary/Base64;
const/4 v0, 0x0
sget-object v1, Lorg/apache/commons/codec/binary/Base64;->j:[B
invoke-direct {p1, v0, v1, p2}, Lorg/apache/commons/codec/binary/Base64;-><init>(I[BZ)V
:goto_16
invoke-virtual {p1, p0}, Lorg/apache/commons/codec/binary/BaseNCodec;->getEncodedLength([B)J
move-result-wide v0
int-to-long v2, p3
cmp-long p2, v0, v2
if-gtz p2, :cond_24
invoke-virtual {p1, p0}, Lorg/apache/commons/codec/binary/BaseNCodec;->encode([B)[B
move-result-object p0
return-object p0
:cond_24
new-instance p0, Ljava/lang/IllegalArgumentException;
new-instance p1, Ljava/lang/StringBuilder;
invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V
const-string p2, "Input array too big, the output array would be bigger ("
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1, v0, v1}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
const-string p2, ") than the specified maximum size of "
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1, p3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {p0, p1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p0
:cond_43
:goto_43
return-object p0
.end method
.method public static encodeBase64Chunked([B)[B
.registers 2
const/4 v0, 0x1
invoke-static {p0, v0}, Lorg/apache/commons/codec/binary/Base64;->encodeBase64([BZ)[B
move-result-object p0
return-object p0
.end method
.method public static encodeBase64String([B)Ljava/lang/String;
.registers 2
const/4 v0, 0x0
invoke-static {p0, v0}, Lorg/apache/commons/codec/binary/Base64;->encodeBase64([BZ)[B
move-result-object p0
invoke-static {p0}, Lorg/apache/commons/codec/binary/StringUtils;->newStringUtf8([B)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static encodeBase64URLSafe([B)[B
.registers 3
const/4 v0, 0x0
const/4 v1, 0x1
invoke-static {p0, v0, v1}, Lorg/apache/commons/codec/binary/Base64;->encodeBase64([BZZ)[B
move-result-object p0
return-object p0
.end method
.method public static encodeBase64URLSafeString([B)Ljava/lang/String;
.registers 3
const/4 v0, 0x0
const/4 v1, 0x1
invoke-static {p0, v0, v1}, Lorg/apache/commons/codec/binary/Base64;->encodeBase64([BZZ)[B
move-result-object p0
invoke-static {p0}, Lorg/apache/commons/codec/binary/StringUtils;->newStringUtf8([B)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static encodeInteger(Ljava/math/BigInteger;)[B
.registers 2
if-eqz p0, :cond_c
invoke-static {p0}, Lorg/apache/commons/codec/binary/Base64;->k(Ljava/math/BigInteger;)[B
move-result-object p0
const/4 v0, 0x0
invoke-static {p0, v0}, Lorg/apache/commons/codec/binary/Base64;->encodeBase64([BZ)[B
move-result-object p0
return-object p0
:cond_c
new-instance p0, Ljava/lang/NullPointerException;
const-string v0, "encodeInteger called with null parameter"
invoke-direct {p0, v0}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
throw p0
.end method
.method public static isArrayByteBase64([B)Z
.registers 1
.annotation runtime Ljava/lang/Deprecated;
.end annotation
invoke-static {p0}, Lorg/apache/commons/codec/binary/Base64;->isBase64([B)Z
move-result p0
return p0
.end method
.method public static isBase64(B)Z
.registers 3
const/16 v0, 0x3d
if-eq p0, v0, :cond_13
if-ltz p0, :cond_11
sget-object v0, Lorg/apache/commons/codec/binary/Base64;->m:[B
array-length v1, v0
if-ge p0, v1, :cond_11
aget-byte p0, v0, p0
const/4 v0, -0x1
if-eq p0, v0, :cond_11
goto :goto_13
:cond_11
const/4 p0, 0x0
goto :goto_14
:cond_13
:goto_13
const/4 p0, 0x1
:goto_14
return p0
.end method
.method public static isBase64(Ljava/lang/String;)Z
.registers 1
invoke-static {p0}, Lorg/apache/commons/codec/binary/StringUtils;->getBytesUtf8(Ljava/lang/String;)[B
move-result-object p0
invoke-static {p0}, Lorg/apache/commons/codec/binary/Base64;->isBase64([B)Z
move-result p0
return p0
.end method
.method public static isBase64([B)Z
.registers 4
const/4 v0, 0x0
const/4 v1, 0x0
:goto_2
array-length v2, p0
if-ge v1, v2, :cond_19
aget-byte v2, p0, v1
invoke-static {v2}, Lorg/apache/commons/codec/binary/Base64;->isBase64(B)Z
move-result v2
if-nez v2, :cond_16
aget-byte v2, p0, v1
invoke-static {v2}, Lorg/apache/commons/codec/binary/BaseNCodec;->h(B)Z
move-result v2
if-nez v2, :cond_16
return v0
:cond_16
add-int/lit8 v1, v1, 0x1
goto :goto_2
:cond_19
const/4 p0, 0x1
return p0
.end method
.method static k(Ljava/math/BigInteger;)[B
.registers 6
invoke-virtual {p0}, Ljava/math/BigInteger;->bitLength()I
move-result v0
add-int/lit8 v0, v0, 0x7
shr-int/lit8 v0, v0, 0x3
shl-int/lit8 v0, v0, 0x3
invoke-virtual {p0}, Ljava/math/BigInteger;->toByteArray()[B
move-result-object v1
invoke-virtual {p0}, Ljava/math/BigInteger;->bitLength()I
move-result v2
rem-int/lit8 v2, v2, 0x8
const/4 v3, 0x1
if-eqz v2, :cond_23
invoke-virtual {p0}, Ljava/math/BigInteger;->bitLength()I
move-result v2
div-int/lit8 v2, v2, 0x8
add-int/2addr v2, v3
div-int/lit8 v4, v0, 0x8
if-ne v2, v4, :cond_23
return-object v1
:cond_23
const/4 v2, 0x0
array-length v4, v1
invoke-virtual {p0}, Ljava/math/BigInteger;->bitLength()I
move-result p0
rem-int/lit8 p0, p0, 0x8
if-nez p0, :cond_30
add-int/lit8 v4, v4, -0x1
goto :goto_31
:cond_30
const/4 v3, 0x0
:goto_31
div-int/lit8 v0, v0, 0x8
sub-int p0, v0, v4
new-array v0, v0, [B
invoke-static {v1, v3, v0, p0, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
return-object v0
.end method
# virtual methods
.method c([BIILorg/apache/commons/codec/binary/BaseNCodec$Context;)V
.registers 12
iget-boolean v0, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->f:Z
if-eqz v0, :cond_5
return-void
:cond_5
const/4 v0, 0x1
if-gez p3, :cond_a
iput-boolean v0, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->f:Z
:cond_a
const/4 v1, 0x0
:goto_b
if-ge v1, p3, :cond_5e
iget v2, p0, Lorg/apache/commons/codec/binary/Base64;->h:I
invoke-virtual {p0, v2, p4}, Lorg/apache/commons/codec/binary/BaseNCodec;->e(ILorg/apache/commons/codec/binary/BaseNCodec$Context;)[B
move-result-object v2
add-int/lit8 v3, p2, 0x1
aget-byte p2, p1, p2
const/16 v4, 0x3d
if-ne p2, v4, :cond_1e
iput-boolean v0, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->f:Z
goto :goto_5e
:cond_1e
if-ltz p2, :cond_5a
sget-object v4, Lorg/apache/commons/codec/binary/Base64;->m:[B
array-length v5, v4
if-ge p2, v5, :cond_5a
aget-byte p2, v4, p2
if-ltz p2, :cond_5a
iget v4, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->h:I
add-int/2addr v4, v0
rem-int/lit8 v4, v4, 0x4
iput v4, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->h:I
iget v5, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->a:I
shl-int/lit8 v5, v5, 0x6
add-int/2addr v5, p2
iput v5, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->a:I
if-nez v4, :cond_5a
iget p2, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->d:I
add-int/lit8 v4, p2, 0x1
iput v4, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->d:I
shr-int/lit8 v6, v5, 0x10
and-int/lit16 v6, v6, 0xff
int-to-byte v6, v6
aput-byte v6, v2, p2
add-int/lit8 p2, v4, 0x1
iput p2, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->d:I
shr-int/lit8 v6, v5, 0x8
and-int/lit16 v6, v6, 0xff
int-to-byte v6, v6
aput-byte v6, v2, v4
add-int/lit8 v4, p2, 0x1
iput v4, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->d:I
and-int/lit16 v4, v5, 0xff
int-to-byte v4, v4
aput-byte v4, v2, p2
:cond_5a
add-int/lit8 v1, v1, 0x1
move p2, v3
goto :goto_b
:cond_5e
:goto_5e
iget-boolean p1, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->f:Z
if-eqz p1, :cond_bc
iget p1, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->h:I
if-eqz p1, :cond_bc
iget p1, p0, Lorg/apache/commons/codec/binary/Base64;->h:I
invoke-virtual {p0, p1, p4}, Lorg/apache/commons/codec/binary/BaseNCodec;->e(ILorg/apache/commons/codec/binary/BaseNCodec$Context;)[B
move-result-object p1
iget p2, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->h:I
if-eq p2, v0, :cond_bc
const/4 p3, 0x2
if-eq p2, p3, :cond_ab
const/4 v0, 0x3
if-ne p2, v0, :cond_92
iget p2, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->a:I
shr-int/2addr p2, p3
iput p2, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->a:I
iget p3, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->d:I
add-int/lit8 v0, p3, 0x1
iput v0, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->d:I
shr-int/lit8 v1, p2, 0x8
and-int/lit16 v1, v1, 0xff
int-to-byte v1, v1
aput-byte v1, p1, p3
add-int/lit8 p3, v0, 0x1
iput p3, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->d:I
and-int/lit16 p2, p2, 0xff
int-to-byte p2, p2
aput-byte p2, p1, v0
goto :goto_bc
:cond_92
new-instance p1, Ljava/lang/IllegalStateException;
new-instance p2, Ljava/lang/StringBuilder;
invoke-direct {p2}, Ljava/lang/StringBuilder;-><init>()V
const-string p3, "Impossible modulus "
invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget p3, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->h:I
invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-direct {p1, p2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw p1
:cond_ab
iget p2, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->a:I
shr-int/lit8 p2, p2, 0x4
iput p2, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->a:I
iget p3, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->d:I
add-int/lit8 v0, p3, 0x1
iput v0, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->d:I
and-int/lit16 p2, p2, 0xff
int-to-byte p2, p2
aput-byte p2, p1, p3
:cond_bc
:goto_bc
return-void
.end method
.method d([BIILorg/apache/commons/codec/binary/BaseNCodec$Context;)V
.registers 14
iget-boolean v0, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->f:Z
if-eqz v0, :cond_5
return-void
:cond_5
const/4 v0, 0x0
const/4 v1, 0x1
if-gez p3, :cond_be
iput-boolean v1, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->f:Z
iget p1, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->h:I
if-nez p1, :cond_14
iget p1, p0, Lorg/apache/commons/codec/binary/BaseNCodec;->c:I
if-nez p1, :cond_14
return-void
:cond_14
iget p1, p0, Lorg/apache/commons/codec/binary/Base64;->i:I
invoke-virtual {p0, p1, p4}, Lorg/apache/commons/codec/binary/BaseNCodec;->e(ILorg/apache/commons/codec/binary/BaseNCodec$Context;)[B
move-result-object p1
iget p2, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->d:I
iget p3, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->h:I
if-eqz p3, :cond_9f
const/16 v2, 0x3d
if-eq p3, v1, :cond_73
const/4 v1, 0x2
if-ne p3, v1, :cond_5a
add-int/lit8 p3, p2, 0x1
iput p3, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->d:I
iget-object v3, p0, Lorg/apache/commons/codec/binary/Base64;->e:[B
iget v4, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->a:I
shr-int/lit8 v5, v4, 0xa
and-int/lit8 v5, v5, 0x3f
aget-byte v5, v3, v5
aput-byte v5, p1, p2
add-int/lit8 v5, p3, 0x1
iput v5, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->d:I
shr-int/lit8 v6, v4, 0x4
and-int/lit8 v6, v6, 0x3f
aget-byte v6, v3, v6
aput-byte v6, p1, p3
add-int/lit8 p3, v5, 0x1
iput p3, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->d:I
shl-int/lit8 v1, v4, 0x2
and-int/lit8 v1, v1, 0x3f
aget-byte v1, v3, v1
aput-byte v1, p1, v5
sget-object v1, Lorg/apache/commons/codec/binary/Base64;->k:[B
if-ne v3, v1, :cond_9f
add-int/lit8 v1, p3, 0x1
iput v1, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->d:I
aput-byte v2, p1, p3
goto :goto_9f
:cond_5a
new-instance p1, Ljava/lang/IllegalStateException;
new-instance p2, Ljava/lang/StringBuilder;
invoke-direct {p2}, Ljava/lang/StringBuilder;-><init>()V
const-string p3, "Impossible modulus "
invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget p3, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->h:I
invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-direct {p1, p2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw p1
:cond_73
add-int/lit8 p3, p2, 0x1
iput p3, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->d:I
iget-object v1, p0, Lorg/apache/commons/codec/binary/Base64;->e:[B
iget v3, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->a:I
shr-int/lit8 v4, v3, 0x2
and-int/lit8 v4, v4, 0x3f
aget-byte v4, v1, v4
aput-byte v4, p1, p2
add-int/lit8 v4, p3, 0x1
iput v4, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->d:I
shl-int/lit8 v3, v3, 0x4
and-int/lit8 v3, v3, 0x3f
aget-byte v3, v1, v3
aput-byte v3, p1, p3
sget-object p3, Lorg/apache/commons/codec/binary/Base64;->k:[B
if-ne v1, p3, :cond_9f
add-int/lit8 p3, v4, 0x1
iput p3, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->d:I
aput-byte v2, p1, v4
add-int/lit8 v1, p3, 0x1
iput v1, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->d:I
aput-byte v2, p1, p3
:cond_9f
:goto_9f
iget p3, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->g:I
iget v1, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->d:I
sub-int p2, v1, p2
add-int/2addr p3, p2
iput p3, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->g:I
iget p2, p0, Lorg/apache/commons/codec/binary/BaseNCodec;->c:I
if-lez p2, :cond_133
if-lez p3, :cond_133
iget-object p2, p0, Lorg/apache/commons/codec/binary/Base64;->g:[B
array-length p3, p2
invoke-static {p2, v0, p1, v1, p3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
iget p1, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->d:I
iget-object p2, p0, Lorg/apache/commons/codec/binary/Base64;->g:[B
array-length p2, p2
add-int/2addr p1, p2
iput p1, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->d:I
goto/16 :goto_133
:cond_be
const/4 v2, 0x0
:goto_bf
if-ge v2, p3, :cond_133
iget v3, p0, Lorg/apache/commons/codec/binary/Base64;->i:I
invoke-virtual {p0, v3, p4}, Lorg/apache/commons/codec/binary/BaseNCodec;->e(ILorg/apache/commons/codec/binary/BaseNCodec$Context;)[B
move-result-object v3
iget v4, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->h:I
add-int/2addr v4, v1
rem-int/lit8 v4, v4, 0x3
iput v4, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->h:I
add-int/lit8 v4, p2, 0x1
aget-byte p2, p1, p2
if-gez p2, :cond_d6
add-int/lit16 p2, p2, 0x100
:cond_d6
iget v5, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->a:I
shl-int/lit8 v5, v5, 0x8
add-int/2addr v5, p2
iput v5, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->a:I
iget p2, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->h:I
if-nez p2, :cond_12f
iget p2, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->d:I
add-int/lit8 v6, p2, 0x1
iput v6, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->d:I
iget-object v7, p0, Lorg/apache/commons/codec/binary/Base64;->e:[B
shr-int/lit8 v8, v5, 0x12
and-int/lit8 v8, v8, 0x3f
aget-byte v8, v7, v8
aput-byte v8, v3, p2
add-int/lit8 p2, v6, 0x1
iput p2, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->d:I
shr-int/lit8 v8, v5, 0xc
and-int/lit8 v8, v8, 0x3f
aget-byte v8, v7, v8
aput-byte v8, v3, v6
add-int/lit8 v6, p2, 0x1
iput v6, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->d:I
shr-int/lit8 v8, v5, 0x6
and-int/lit8 v8, v8, 0x3f
aget-byte v8, v7, v8
aput-byte v8, v3, p2
add-int/lit8 p2, v6, 0x1
iput p2, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->d:I
and-int/lit8 v5, v5, 0x3f
aget-byte v5, v7, v5
aput-byte v5, v3, v6
iget v5, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->g:I
add-int/lit8 v5, v5, 0x4
iput v5, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->g:I
iget v6, p0, Lorg/apache/commons/codec/binary/BaseNCodec;->c:I
if-lez v6, :cond_12f
if-gt v6, v5, :cond_12f
iget-object v5, p0, Lorg/apache/commons/codec/binary/Base64;->g:[B
array-length v6, v5
invoke-static {v5, v0, v3, p2, v6}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
iget p2, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->d:I
iget-object v3, p0, Lorg/apache/commons/codec/binary/Base64;->g:[B
array-length v3, v3
add-int/2addr p2, v3
iput p2, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->d:I
iput v0, p4, Lorg/apache/commons/codec/binary/BaseNCodec$Context;->g:I
:cond_12f
add-int/lit8 v2, v2, 0x1
move p2, v4
goto :goto_bf
:cond_133
:goto_133
return-void
.end method
.method protected g(B)Z
.registers 4
if-ltz p1, :cond_e
iget-object v0, p0, Lorg/apache/commons/codec/binary/Base64;->f:[B
array-length v1, v0
if-ge p1, v1, :cond_e
aget-byte p1, v0, p1
const/4 v0, -0x1
if-eq p1, v0, :cond_e
const/4 p1, 0x1
goto :goto_f
:cond_e
const/4 p1, 0x0
:goto_f
return p1
.end method
.method public isUrlSafe()Z
.registers 3
iget-object v0, p0, Lorg/apache/commons/codec/binary/Base64;->e:[B
sget-object v1, Lorg/apache/commons/codec/binary/Base64;->l:[B
if-ne v0, v1, :cond_8
const/4 v0, 0x1
goto :goto_9
:cond_8
const/4 v0, 0x0
:goto_9
return v0
.end method