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