HttpRequest$Base64.smali
.class public Lio/fabric/sdk/android/services/network/HttpRequest$Base64;
.super Ljava/lang/Object;
.source "HttpRequest.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lio/fabric/sdk/android/services/network/HttpRequest;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "Base64"
.end annotation
# static fields
.field private static final EQUALS_SIGN:B = 0x3dt
.field private static final PREFERRED_ENCODING:Ljava/lang/String; = "US-ASCII"
.field private static final _STANDARD_ALPHABET:[B
# direct methods
.method static constructor <clinit>()V
.registers 1
const/16 v0, 0x40
new-array v0, v0, [B
.line 360
fill-array-data v0, :array_a
sput-object v0, Lio/fabric/sdk/android/services/network/HttpRequest$Base64;->_STANDARD_ALPHABET:[B
return-void
:array_a
.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
.end method
.method private constructor <init>()V
.registers 1
.line 375
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static encode(Ljava/lang/String;)Ljava/lang/String;
.registers 2
:try_start_0
const-string v0, "US-ASCII"
.line 444
invoke-virtual {p0, v0}, Ljava/lang/String;->getBytes(Ljava/lang/String;)[B
move-result-object p0
:try_end_6
.catch Ljava/io/UnsupportedEncodingException; {:try_start_0 .. :try_end_6} :catch_7
goto :goto_b
.line 446
:catch_7
invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B
move-result-object p0
.line 448
:goto_b
invoke-static {p0}, Lio/fabric/sdk/android/services/network/HttpRequest$Base64;->encodeBytes([B)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method private static encode3to4([BII[BI)[B
.registers 10
.line 402
sget-object v0, Lio/fabric/sdk/android/services/network/HttpRequest$Base64;->_STANDARD_ALPHABET:[B
const/4 v1, 0x0
if-lez p2, :cond_c
.line 404
aget-byte v2, p0, p1
shl-int/lit8 v2, v2, 0x18
ushr-int/lit8 v2, v2, 0x8
goto :goto_d
:cond_c
const/4 v2, 0x0
:goto_d
const/4 v3, 0x1
if-le p2, v3, :cond_19
add-int/lit8 v4, p1, 0x1
aget-byte v4, p0, v4
shl-int/lit8 v4, v4, 0x18
ushr-int/lit8 v4, v4, 0x10
goto :goto_1a
:cond_19
const/4 v4, 0x0
:goto_1a
or-int/2addr v2, v4
const/4 v4, 0x2
if-le p2, v4, :cond_25
add-int/2addr p1, v4
aget-byte p0, p0, p1
shl-int/lit8 p0, p0, 0x18
ushr-int/lit8 v1, p0, 0x18
:cond_25
or-int p0, v2, v1
const/16 p1, 0x3d
const/4 v1, 0x3
if-eq p2, v3, :cond_71
if-eq p2, v4, :cond_53
if-eq p2, v1, :cond_31
return-object p3
:cond_31
ushr-int/lit8 p1, p0, 0x12
.line 410
aget-byte p1, v0, p1
aput-byte p1, p3, p4
add-int/lit8 p1, p4, 0x1
ushr-int/lit8 p2, p0, 0xc
and-int/lit8 p2, p2, 0x3f
.line 411
aget-byte p2, v0, p2
aput-byte p2, p3, p1
add-int/lit8 p1, p4, 0x2
ushr-int/lit8 p2, p0, 0x6
and-int/lit8 p2, p2, 0x3f
.line 412
aget-byte p2, v0, p2
aput-byte p2, p3, p1
add-int/2addr p4, v1
and-int/lit8 p0, p0, 0x3f
.line 413
aget-byte p0, v0, p0
aput-byte p0, p3, p4
return-object p3
:cond_53
ushr-int/lit8 p2, p0, 0x12
.line 417
aget-byte p2, v0, p2
aput-byte p2, p3, p4
add-int/lit8 p2, p4, 0x1
ushr-int/lit8 v2, p0, 0xc
and-int/lit8 v2, v2, 0x3f
.line 418
aget-byte v2, v0, v2
aput-byte v2, p3, p2
add-int/lit8 p2, p4, 0x2
ushr-int/lit8 p0, p0, 0x6
and-int/lit8 p0, p0, 0x3f
.line 419
aget-byte p0, v0, p0
aput-byte p0, p3, p2
add-int/2addr p4, v1
.line 420
aput-byte p1, p3, p4
return-object p3
:cond_71
ushr-int/lit8 p2, p0, 0x12
.line 424
aget-byte p2, v0, p2
aput-byte p2, p3, p4
add-int/lit8 p2, p4, 0x1
ushr-int/lit8 p0, p0, 0xc
and-int/lit8 p0, p0, 0x3f
.line 425
aget-byte p0, v0, p0
aput-byte p0, p3, p2
add-int/lit8 p0, p4, 0x2
.line 426
aput-byte p1, p3, p0
add-int/2addr p4, v1
.line 427
aput-byte p1, p3, p4
return-object p3
.end method
.method public static encodeBytes([B)Ljava/lang/String;
.registers 3
.line 461
array-length v0, p0
const/4 v1, 0x0
invoke-static {p0, v1, v0}, Lio/fabric/sdk/android/services/network/HttpRequest$Base64;->encodeBytes([BII)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static encodeBytes([BII)Ljava/lang/String;
.registers 3
.line 476
invoke-static {p0, p1, p2}, Lio/fabric/sdk/android/services/network/HttpRequest$Base64;->encodeBytesToBytes([BII)[B
move-result-object p0
.line 478
:try_start_4
new-instance p1, Ljava/lang/String;
const-string p2, "US-ASCII"
invoke-direct {p1, p0, p2}, Ljava/lang/String;-><init>([BLjava/lang/String;)V
:try_end_b
.catch Ljava/io/UnsupportedEncodingException; {:try_start_4 .. :try_end_b} :catch_c
return-object p1
.line 480
:catch_c
new-instance p1, Ljava/lang/String;
invoke-direct {p1, p0}, Ljava/lang/String;-><init>([B)V
return-object p1
.end method
.method public static encodeBytesToBytes([BII)[B
.registers 12
if-eqz p0, :cond_91
if-ltz p1, :cond_7a
if-ltz p2, :cond_63
add-int v0, p1, p2
.line 509
array-length v1, p0
const/4 v2, 0x1
const/4 v3, 0x3
const/4 v4, 0x0
if-gt v0, v1, :cond_3f
.line 515
div-int/lit8 v0, p2, 0x3
const/4 v1, 0x4
mul-int/lit8 v0, v0, 0x4
rem-int/lit8 v5, p2, 0x3
if-lez v5, :cond_18
goto :goto_19
:cond_18
const/4 v1, 0x0
:goto_19
add-int/2addr v0, v1
.line 517
new-array v1, v0, [B
add-int/lit8 v5, p2, -0x2
const/4 v6, 0x0
const/4 v7, 0x0
:goto_20
if-ge v6, v5, :cond_2c
add-int v8, v6, p1
.line 523
invoke-static {p0, v8, v3, v1, v7}, Lio/fabric/sdk/android/services/network/HttpRequest$Base64;->encode3to4([BII[BI)[B
add-int/lit8 v6, v6, 0x3
add-int/lit8 v7, v7, 0x4
goto :goto_20
:cond_2c
if-ge v6, p2, :cond_35
add-int/2addr p1, v6
sub-int/2addr p2, v6
.line 526
invoke-static {p0, p1, p2, v1, v7}, Lio/fabric/sdk/android/services/network/HttpRequest$Base64;->encode3to4([BII[BI)[B
add-int/lit8 v7, v7, 0x4
:cond_35
sub-int/2addr v0, v2
if-gt v7, v0, :cond_3e
.line 531
new-array p0, v7, [B
.line 532
invoke-static {v1, v4, p0, v4, v7}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
return-object p0
:cond_3e
return-object v1
.line 510
:cond_3f
new-instance v0, Ljava/lang/IllegalArgumentException;
sget-object v1, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale;
new-array v3, v3, [Ljava/lang/Object;
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p1
aput-object p1, v3, v4
invoke-static {p2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p1
aput-object p1, v3, v2
array-length p0, p0
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p0
const/4 p1, 0x2
aput-object p0, v3, p1
const-string p0, "Cannot have offset of %d and length of %d with array of length %d"
invoke-static {v1, p0, v3}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object p0
invoke-direct {v0, p0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.line 507
:cond_63
new-instance p0, Ljava/lang/IllegalArgumentException;
new-instance p1, Ljava/lang/StringBuilder;
invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V
const-string v0, "Cannot have length offset: "
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1, p2}, 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
.line 504
:cond_7a
new-instance p0, Ljava/lang/IllegalArgumentException;
new-instance p2, Ljava/lang/StringBuilder;
invoke-direct {p2}, Ljava/lang/StringBuilder;-><init>()V
const-string v0, "Cannot have negative offset: "
invoke-virtual {p2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p2, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {p2}, 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
.line 501
:cond_91
new-instance p0, Ljava/lang/NullPointerException;
const-string p1, "Cannot serialize a null array."
invoke-direct {p0, p1}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
throw p0
.end method