Rabbit-R1/android (non root)/smali/smali_classes3/io/sentry/vendor/Base64$Decoder.smali
2024-05-21 17:08:36 -04:00

1020 lines
14 KiB
Smali

.class Lio/sentry/vendor/Base64$Decoder;
.super Lio/sentry/vendor/Base64$Coder;
.source "Base64.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lio/sentry/vendor/Base64;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x8
name = "Decoder"
.end annotation
# static fields
.field private static final DECODE:[I
.field private static final DECODE_WEBSAFE:[I
.field private static final EQUALS:I = -0x2
.field private static final SKIP:I = -0x1
# instance fields
.field private final alphabet:[I
.field private state:I
.field private value:I
# direct methods
.method static constructor <clinit>()V
.locals 2
const/16 v0, 0x100
new-array v1, v0, [I
fill-array-data v1, :array_0
sput-object v1, Lio/sentry/vendor/Base64$Decoder;->DECODE:[I
new-array v0, v0, [I
fill-array-data v0, :array_1
sput-object v0, Lio/sentry/vendor/Base64$Decoder;->DECODE_WEBSAFE:[I
return-void
nop
:array_0
.array-data 4
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
0x3e
-0x1
-0x1
-0x1
0x3f
0x34
0x35
0x36
0x37
0x38
0x39
0x3a
0x3b
0x3c
0x3d
-0x1
-0x1
-0x1
-0x2
-0x1
-0x1
-0x1
0x0
0x1
0x2
0x3
0x4
0x5
0x6
0x7
0x8
0x9
0xa
0xb
0xc
0xd
0xe
0xf
0x10
0x11
0x12
0x13
0x14
0x15
0x16
0x17
0x18
0x19
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
0x1a
0x1b
0x1c
0x1d
0x1e
0x1f
0x20
0x21
0x22
0x23
0x24
0x25
0x26
0x27
0x28
0x29
0x2a
0x2b
0x2c
0x2d
0x2e
0x2f
0x30
0x31
0x32
0x33
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
.end array-data
:array_1
.array-data 4
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
0x3e
-0x1
-0x1
0x34
0x35
0x36
0x37
0x38
0x39
0x3a
0x3b
0x3c
0x3d
-0x1
-0x1
-0x1
-0x2
-0x1
-0x1
-0x1
0x0
0x1
0x2
0x3
0x4
0x5
0x6
0x7
0x8
0x9
0xa
0xb
0xc
0xd
0xe
0xf
0x10
0x11
0x12
0x13
0x14
0x15
0x16
0x17
0x18
0x19
-0x1
-0x1
-0x1
-0x1
0x3f
-0x1
0x1a
0x1b
0x1c
0x1d
0x1e
0x1f
0x20
0x21
0x22
0x23
0x24
0x25
0x26
0x27
0x28
0x29
0x2a
0x2b
0x2c
0x2d
0x2e
0x2f
0x30
0x31
0x32
0x33
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
-0x1
.end array-data
.end method
.method public constructor <init>(I[B)V
.locals 0
.line 212
invoke-direct {p0}, Lio/sentry/vendor/Base64$Coder;-><init>()V
.line 213
iput-object p2, p0, Lio/sentry/vendor/Base64$Decoder;->output:[B
and-int/lit8 p1, p1, 0x8
if-nez p1, :cond_0
sget-object p1, Lio/sentry/vendor/Base64$Decoder;->DECODE:[I
goto :goto_0
:cond_0
sget-object p1, Lio/sentry/vendor/Base64$Decoder;->DECODE_WEBSAFE:[I
:goto_0
iput-object p1, p0, Lio/sentry/vendor/Base64$Decoder;->alphabet:[I
const/4 p1, 0x0
iput p1, p0, Lio/sentry/vendor/Base64$Decoder;->state:I
iput p1, p0, Lio/sentry/vendor/Base64$Decoder;->value:I
return-void
.end method
# virtual methods
.method public maxOutputSize(I)I
.locals 0
mul-int/lit8 p1, p1, 0x3
.line 222
div-int/lit8 p1, p1, 0x4
add-int/lit8 p1, p1, 0xa
return p1
.end method
.method public process([BIIZ)Z
.locals 16
move-object/from16 v0, p0
iget v1, v0, Lio/sentry/vendor/Base64$Decoder;->state:I
const/4 v2, 0x0
const/4 v3, 0x6
if-ne v1, v3, :cond_0
return v2
:cond_0
add-int v4, p3, p2
iget v5, v0, Lio/sentry/vendor/Base64$Decoder;->value:I
.line 245
iget-object v6, v0, Lio/sentry/vendor/Base64$Decoder;->output:[B
iget-object v7, v0, Lio/sentry/vendor/Base64$Decoder;->alphabet:[I
move v9, v2
move v8, v5
move v5, v1
move/from16 v1, p2
:goto_0
const/4 v10, 0x3
const/4 v11, 0x4
const/4 v12, 0x2
const/4 v13, 0x1
if-ge v1, v4, :cond_11
if-nez v5, :cond_2
:goto_1
add-int/lit8 v14, v1, 0x4
if-gt v14, v4, :cond_1
.line 264
aget-byte v8, p1, v1
and-int/lit16 v8, v8, 0xff
aget v8, v7, v8
shl-int/lit8 v8, v8, 0x12
add-int/lit8 v15, v1, 0x1
aget-byte v15, p1, v15
and-int/lit16 v15, v15, 0xff
aget v15, v7, v15
shl-int/lit8 v15, v15, 0xc
or-int/2addr v8, v15
add-int/lit8 v15, v1, 0x2
aget-byte v15, p1, v15
and-int/lit16 v15, v15, 0xff
aget v15, v7, v15
shl-int/2addr v15, v3
or-int/2addr v8, v15
add-int/lit8 v15, v1, 0x3
aget-byte v15, p1, v15
and-int/lit16 v15, v15, 0xff
aget v15, v7, v15
or-int/2addr v8, v15
if-ltz v8, :cond_1
add-int/lit8 v1, v9, 0x2
int-to-byte v15, v8
.line 271
aput-byte v15, v6, v1
add-int/lit8 v1, v9, 0x1
shr-int/lit8 v15, v8, 0x8
int-to-byte v15, v15
.line 272
aput-byte v15, v6, v1
shr-int/lit8 v1, v8, 0x10
int-to-byte v1, v1
.line 273
aput-byte v1, v6, v9
add-int/lit8 v9, v9, 0x3
move v1, v14
goto :goto_1
:cond_1
if-lt v1, v4, :cond_2
goto/16 :goto_5
:cond_2
add-int/lit8 v14, v1, 0x1
.line 285
aget-byte v1, p1, v1
and-int/lit16 v1, v1, 0xff
aget v1, v7, v1
const/4 v15, -0x1
if-eqz v5, :cond_e
if-eq v5, v13, :cond_c
const/4 v13, -0x2
if-eq v5, v12, :cond_9
const/4 v12, 0x5
if-eq v5, v10, :cond_6
if-eq v5, v11, :cond_4
if-eq v5, v12, :cond_3
goto/16 :goto_4
:cond_3
if-eq v1, v15, :cond_10
iput v3, v0, Lio/sentry/vendor/Base64$Decoder;->state:I
return v2
:cond_4
if-ne v1, v13, :cond_5
add-int/lit8 v5, v5, 0x1
goto/16 :goto_4
:cond_5
if-eq v1, v15, :cond_10
iput v3, v0, Lio/sentry/vendor/Base64$Decoder;->state:I
return v2
:cond_6
if-ltz v1, :cond_7
shl-int/lit8 v5, v8, 0x6
or-int/2addr v1, v5
add-int/lit8 v5, v9, 0x2
int-to-byte v8, v1
.line 327
aput-byte v8, v6, v5
add-int/lit8 v5, v9, 0x1
shr-int/lit8 v8, v1, 0x8
int-to-byte v8, v8
.line 328
aput-byte v8, v6, v5
shr-int/lit8 v5, v1, 0x10
int-to-byte v5, v5
.line 329
aput-byte v5, v6, v9
add-int/lit8 v9, v9, 0x3
move v8, v1
move v5, v2
goto :goto_4
:cond_7
if-ne v1, v13, :cond_8
add-int/lit8 v1, v9, 0x1
shr-int/lit8 v5, v8, 0x2
int-to-byte v5, v5
.line 335
aput-byte v5, v6, v1
shr-int/lit8 v1, v8, 0xa
int-to-byte v1, v1
.line 336
aput-byte v1, v6, v9
add-int/lit8 v9, v9, 0x2
move v5, v12
goto :goto_4
:cond_8
if-eq v1, v15, :cond_10
iput v3, v0, Lio/sentry/vendor/Base64$Decoder;->state:I
return v2
:cond_9
if-ltz v1, :cond_a
goto :goto_2
:cond_a
if-ne v1, v13, :cond_b
add-int/lit8 v1, v9, 0x1
shr-int/lit8 v5, v8, 0x4
int-to-byte v5, v5
.line 315
aput-byte v5, v6, v9
move v9, v1
move v5, v11
goto :goto_4
:cond_b
if-eq v1, v15, :cond_10
iput v3, v0, Lio/sentry/vendor/Base64$Decoder;->state:I
return v2
:cond_c
if-ltz v1, :cond_d
:goto_2
shl-int/lit8 v8, v8, 0x6
or-int/2addr v1, v8
goto :goto_3
:cond_d
if-eq v1, v15, :cond_10
iput v3, v0, Lio/sentry/vendor/Base64$Decoder;->state:I
return v2
:cond_e
if-ltz v1, :cond_f
:goto_3
add-int/lit8 v5, v5, 0x1
move v8, v1
goto :goto_4
:cond_f
if-eq v1, v15, :cond_10
iput v3, v0, Lio/sentry/vendor/Base64$Decoder;->state:I
return v2
:cond_10
:goto_4
move v1, v14
goto/16 :goto_0
:cond_11
:goto_5
if-nez p4, :cond_12
iput v5, v0, Lio/sentry/vendor/Base64$Decoder;->state:I
iput v8, v0, Lio/sentry/vendor/Base64$Decoder;->value:I
.line 368
iput v9, v0, Lio/sentry/vendor/Base64$Decoder;->op:I
return v13
:cond_12
if-eq v5, v13, :cond_16
if-eq v5, v12, :cond_15
if-eq v5, v10, :cond_14
if-eq v5, v11, :cond_13
goto :goto_6
:cond_13
iput v3, v0, Lio/sentry/vendor/Base64$Decoder;->state:I
return v2
:cond_14
add-int/lit8 v1, v9, 0x1
shr-int/lit8 v2, v8, 0xa
int-to-byte v2, v2
.line 392
aput-byte v2, v6, v9
add-int/lit8 v9, v9, 0x2
shr-int/lit8 v2, v8, 0x2
int-to-byte v2, v2
.line 393
aput-byte v2, v6, v1
goto :goto_6
:cond_15
add-int/lit8 v1, v9, 0x1
shr-int/lit8 v2, v8, 0x4
int-to-byte v2, v2
.line 387
aput-byte v2, v6, v9
move v9, v1
:goto_6
iput v5, v0, Lio/sentry/vendor/Base64$Decoder;->state:I
.line 406
iput v9, v0, Lio/sentry/vendor/Base64$Decoder;->op:I
return v13
:cond_16
iput v3, v0, Lio/sentry/vendor/Base64$Decoder;->state:I
return v2
.end method