zzenu.smali
.class final Lcom/google/android/gms/internal/ads/zzenu;
.super Lcom/google/android/gms/internal/ads/zzenp;
.source "com.google.android.gms:play-services-gass@@19.5.0"
# direct methods
.method constructor <init>()V
.registers 1
.line 1
invoke-direct {p0}, Lcom/google/android/gms/internal/ads/zzenp;-><init>()V
return-void
.end method
.method private static zza([BIJI)I
.registers 7
if-eqz p4, :cond_27
const/4 v0, 0x1
if-eq p4, v0, :cond_1e
const/4 v0, 0x2
if-ne p4, v0, :cond_18
.line 1
invoke-static {p0, p2, p3}, Lcom/google/android/gms/internal/ads/zzenl;->zza([BJ)B
move-result p4
const-wide/16 v0, 0x1
add-long/2addr p2, v0
invoke-static {p0, p2, p3}, Lcom/google/android/gms/internal/ads/zzenl;->zza([BJ)B
move-result p0
.line 2
invoke-static {p1, p4, p0}, Lcom/google/android/gms/internal/ads/zzeno;->zzk(III)I
move-result p0
return p0
.line 3
:cond_18
new-instance p0, Ljava/lang/AssertionError;
invoke-direct {p0}, Ljava/lang/AssertionError;-><init>()V
throw p0
.line 4
:cond_1e
invoke-static {p0, p2, p3}, Lcom/google/android/gms/internal/ads/zzenl;->zza([BJ)B
move-result p0
invoke-static {p1, p0}, Lcom/google/android/gms/internal/ads/zzeno;->zzar(II)I
move-result p0
return p0
.line 5
:cond_27
invoke-static {p1}, Lcom/google/android/gms/internal/ads/zzeno;->zzhw(I)I
move-result p0
return p0
.end method
# virtual methods
.method final zzb(I[BII)I
.registers 28
move/from16 v0, p1
move-object/from16 v1, p2
move/from16 v2, p3
move/from16 v3, p4
or-int v4, v2, v3
.line 1
array-length v5, v1
sub-int/2addr v5, v3
or-int/2addr v4, v5
const/4 v7, 0x0
if-ltz v4, :cond_15e
int-to-long v8, v2
int-to-long v2, v3
const/16 v4, -0x13
const/16 v10, -0x3e
const/16 v11, -0x10
const/16 v12, 0x10
const/16 v13, -0x60
const/16 v14, -0x20
const/4 v15, -0x1
const/16 v6, -0x41
const-wide/16 v16, 0x1
if-eqz v0, :cond_ad
cmp-long v18, v8, v2
if-ltz v18, :cond_2a
return v0
:cond_2a
int-to-byte v5, v0
if-ge v5, v14, :cond_38
if-lt v5, v10, :cond_37
add-long v19, v8, v16
.line 2
invoke-static {v1, v8, v9}, Lcom/google/android/gms/internal/ads/zzenl;->zza([BJ)B
move-result v0
if-le v0, v6, :cond_af
:cond_37
return v15
:cond_38
if-ge v5, v11, :cond_64
shr-int/lit8 v0, v0, 0x8
xor-int/2addr v0, v15
int-to-byte v0, v0
if-nez v0, :cond_51
add-long v19, v8, v16
.line 3
invoke-static {v1, v8, v9}, Lcom/google/android/gms/internal/ads/zzenl;->zza([BJ)B
move-result v0
cmp-long v8, v19, v2
if-ltz v8, :cond_4f
.line 4
invoke-static {v5, v0}, Lcom/google/android/gms/internal/ads/zzeno;->zzar(II)I
move-result v0
return v0
:cond_4f
move-wide/from16 v8, v19
:cond_51
if-gt v0, v6, :cond_63
if-ne v5, v14, :cond_57
if-lt v0, v13, :cond_63
:cond_57
if-ne v5, v4, :cond_5b
if-ge v0, v13, :cond_63
:cond_5b
add-long v19, v8, v16
.line 5
invoke-static {v1, v8, v9}, Lcom/google/android/gms/internal/ads/zzenl;->zza([BJ)B
move-result v0
if-le v0, v6, :cond_af
:cond_63
return v15
:cond_64
shr-int/lit8 v19, v0, 0x8
xor-int/lit8 v4, v19, -0x1
int-to-byte v4, v4
if-nez v4, :cond_7e
add-long v19, v8, v16
.line 6
invoke-static {v1, v8, v9}, Lcom/google/android/gms/internal/ads/zzenl;->zza([BJ)B
move-result v4
cmp-long v0, v19, v2
if-ltz v0, :cond_7a
.line 7
invoke-static {v5, v4}, Lcom/google/android/gms/internal/ads/zzeno;->zzar(II)I
move-result v0
return v0
:cond_7a
move-wide/from16 v8, v19
const/4 v0, 0x0
goto :goto_80
:cond_7e
shr-int/2addr v0, v12
int-to-byte v0, v0
:goto_80
if-nez v0, :cond_93
add-long v19, v8, v16
.line 8
invoke-static {v1, v8, v9}, Lcom/google/android/gms/internal/ads/zzenl;->zza([BJ)B
move-result v0
cmp-long v8, v19, v2
if-ltz v8, :cond_91
.line 9
invoke-static {v5, v4, v0}, Lcom/google/android/gms/internal/ads/zzeno;->zzk(III)I
move-result v0
return v0
:cond_91
move-wide/from16 v8, v19
:cond_93
if-gt v4, v6, :cond_ac
shl-int/lit8 v5, v5, 0x1c
add-int/lit8 v4, v4, 0x70
add-int/2addr v5, v4
shr-int/lit8 v4, v5, 0x1e
if-nez v4, :cond_ac
if-gt v0, v6, :cond_ac
add-long v4, v8, v16
.line 10
invoke-static {v1, v8, v9}, Lcom/google/android/gms/internal/ads/zzenl;->zza([BJ)B
move-result v0
if-le v0, v6, :cond_a9
goto :goto_ac
:cond_a9
move-wide/from16 v19, v4
goto :goto_af
:cond_ac
:goto_ac
return v15
:cond_ad
move-wide/from16 v19, v8
:cond_af
:goto_af
sub-long v2, v2, v19
long-to-int v0, v2
if-ge v0, v12, :cond_b6
const/4 v2, 0x0
goto :goto_c9
:cond_b6
move-wide/from16 v3, v19
const/4 v2, 0x0
:goto_b9
if-ge v2, v0, :cond_c8
add-long v8, v3, v16
.line 11
invoke-static {v1, v3, v4}, Lcom/google/android/gms/internal/ads/zzenl;->zza([BJ)B
move-result v3
if-gez v3, :cond_c4
goto :goto_c9
:cond_c4
add-int/lit8 v2, v2, 0x1
move-wide v3, v8
goto :goto_b9
:cond_c8
move v2, v0
:goto_c9
sub-int/2addr v0, v2
int-to-long v2, v2
add-long v19, v19, v2
:cond_cd
:goto_cd
move-wide/from16 v2, v19
const/4 v4, 0x0
:goto_d0
if-lez v0, :cond_e2
add-long v4, v2, v16
.line 12
invoke-static {v1, v2, v3}, Lcom/google/android/gms/internal/ads/zzenl;->zza([BJ)B
move-result v2
if-ltz v2, :cond_e7
add-int/lit8 v0, v0, -0x1
move-wide/from16 v21, v4
move v4, v2
move-wide/from16 v2, v21
goto :goto_d0
:cond_e2
move-wide/from16 v21, v2
move v2, v4
move-wide/from16 v4, v21
:cond_e7
if-nez v0, :cond_ea
return v7
:cond_ea
add-int/lit8 v0, v0, -0x1
if-ge v2, v14, :cond_104
if-nez v0, :cond_f1
return v2
:cond_f1
add-int/lit8 v0, v0, -0x1
if-lt v2, v10, :cond_103
add-long v2, v4, v16
.line 13
invoke-static {v1, v4, v5}, Lcom/google/android/gms/internal/ads/zzenl;->zza([BJ)B
move-result v4
if-le v4, v6, :cond_fe
goto :goto_103
:cond_fe
move-wide/from16 v19, v2
const/16 v12, -0x13
goto :goto_cd
:cond_103
:goto_103
return v15
:cond_104
if-ge v2, v11, :cond_12b
const/4 v3, 0x2
if-ge v0, v3, :cond_10e
.line 14
invoke-static {v1, v2, v4, v5, v0}, Lcom/google/android/gms/internal/ads/zzenu;->zza([BIJI)I
move-result v0
return v0
:cond_10e
add-int/lit8 v0, v0, -0x2
add-long v8, v4, v16
.line 15
invoke-static {v1, v4, v5}, Lcom/google/android/gms/internal/ads/zzenl;->zza([BJ)B
move-result v3
if-gt v3, v6, :cond_12a
if-ne v2, v14, :cond_11c
if-lt v3, v13, :cond_12a
:cond_11c
const/16 v12, -0x13
if-ne v2, v12, :cond_122
if-ge v3, v13, :cond_12a
:cond_122
add-long v19, v8, v16
.line 16
invoke-static {v1, v8, v9}, Lcom/google/android/gms/internal/ads/zzenl;->zza([BJ)B
move-result v2
if-le v2, v6, :cond_cd
:cond_12a
return v15
:cond_12b
const/4 v3, 0x3
const/16 v12, -0x13
if-ge v0, v3, :cond_135
.line 17
invoke-static {v1, v2, v4, v5, v0}, Lcom/google/android/gms/internal/ads/zzenu;->zza([BIJI)I
move-result v0
return v0
:cond_135
add-int/lit8 v0, v0, -0x3
add-long v8, v4, v16
.line 18
invoke-static {v1, v4, v5}, Lcom/google/android/gms/internal/ads/zzenl;->zza([BJ)B
move-result v3
if-gt v3, v6, :cond_15d
shl-int/lit8 v2, v2, 0x1c
add-int/lit8 v3, v3, 0x70
add-int/2addr v2, v3
shr-int/lit8 v2, v2, 0x1e
if-nez v2, :cond_15d
add-long v2, v8, v16
.line 19
invoke-static {v1, v8, v9}, Lcom/google/android/gms/internal/ads/zzenl;->zza([BJ)B
move-result v4
if-gt v4, v6, :cond_15d
add-long v4, v2, v16
.line 20
invoke-static {v1, v2, v3}, Lcom/google/android/gms/internal/ads/zzenl;->zza([BJ)B
move-result v2
if-le v2, v6, :cond_159
goto :goto_15d
:cond_159
move-wide/from16 v19, v4
goto/16 :goto_cd
:cond_15d
:goto_15d
return v15
.line 21
:cond_15e
new-instance v0, Ljava/lang/ArrayIndexOutOfBoundsException;
const/4 v4, 0x3
new-array v4, v4, [Ljava/lang/Object;
array-length v1, v1
.line 22
invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
aput-object v1, v4, v7
invoke-static/range {p3 .. p3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
const/4 v2, 0x1
aput-object v1, v4, v2
invoke-static/range {p4 .. p4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
const/4 v2, 0x2
aput-object v1, v4, v2
const-string v1, "Array length=%d, index=%d, limit=%d"
invoke-static {v1, v4}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/ArrayIndexOutOfBoundsException;-><init>(Ljava/lang/String;)V
goto :goto_183
:goto_182
throw v0
:goto_183
goto :goto_182
.end method
.method final zzb(Ljava/lang/CharSequence;[BII)I
.registers 27
move-object/from16 v0, p1
move-object/from16 v1, p2
move/from16 v2, p3
move/from16 v3, p4
int-to-long v4, v2
int-to-long v6, v3
add-long/2addr v6, v4
.line 23
invoke-interface/range {p1 .. p1}, Ljava/lang/CharSequence;->length()I
move-result v8
const-string v9, " at index "
const-string v10, "Failed writing "
if-gt v8, v3, :cond_146
.line 24
array-length v11, v1
sub-int/2addr v11, v3
if-lt v11, v2, :cond_146
const/4 v2, 0x0
:goto_1a
const/16 v3, 0x80
const-wide/16 v11, 0x1
if-ge v2, v8, :cond_2f
.line 25
invoke-interface {v0, v2}, Ljava/lang/CharSequence;->charAt(I)C
move-result v13
if-ge v13, v3, :cond_2f
add-long/2addr v11, v4
int-to-byte v3, v13
.line 26
invoke-static {v1, v4, v5, v3}, Lcom/google/android/gms/internal/ads/zzenl;->zza([BJB)V
add-int/lit8 v2, v2, 0x1
move-wide v4, v11
goto :goto_1a
:cond_2f
if-ne v2, v8, :cond_33
long-to-int v0, v4
return v0
:cond_33
:goto_33
if-ge v2, v8, :cond_144
.line 27
invoke-interface {v0, v2}, Ljava/lang/CharSequence;->charAt(I)C
move-result v13
if-ge v13, v3, :cond_4b
cmp-long v14, v4, v6
if-gez v14, :cond_4b
add-long v14, v4, v11
int-to-byte v13, v13
.line 28
invoke-static {v1, v4, v5, v13}, Lcom/google/android/gms/internal/ads/zzenl;->zza([BJB)V
move-wide v4, v11
move-wide v12, v14
:goto_47
const/16 v11, 0x80
goto/16 :goto_fb
:cond_4b
const/16 v14, 0x800
if-ge v13, v14, :cond_75
const-wide/16 v14, 0x2
sub-long v14, v6, v14
cmp-long v16, v4, v14
if-gtz v16, :cond_75
add-long v14, v4, v11
ushr-int/lit8 v3, v13, 0x6
or-int/lit16 v3, v3, 0x3c0
int-to-byte v3, v3
.line 29
invoke-static {v1, v4, v5, v3}, Lcom/google/android/gms/internal/ads/zzenl;->zza([BJB)V
add-long v3, v14, v11
and-int/lit8 v5, v13, 0x3f
const/16 v13, 0x80
or-int/2addr v5, v13
int-to-byte v5, v5
.line 30
invoke-static {v1, v14, v15, v5}, Lcom/google/android/gms/internal/ads/zzenl;->zza([BJB)V
move-wide/from16 v20, v11
const/16 v11, 0x80
move-wide v12, v3
move-wide/from16 v4, v20
goto/16 :goto_fb
:cond_75
const v3, 0xdfff
const v14, 0xd800
if-lt v13, v14, :cond_7f
if-ge v3, v13, :cond_ae
:cond_7f
const-wide/16 v15, 0x3
sub-long v15, v6, v15
cmp-long v17, v4, v15
if-gtz v17, :cond_ae
add-long v14, v4, v11
ushr-int/lit8 v3, v13, 0xc
or-int/lit16 v3, v3, 0x1e0
int-to-byte v3, v3
.line 31
invoke-static {v1, v4, v5, v3}, Lcom/google/android/gms/internal/ads/zzenl;->zza([BJB)V
add-long v3, v14, v11
ushr-int/lit8 v5, v13, 0x6
and-int/lit8 v5, v5, 0x3f
const/16 v11, 0x80
or-int/2addr v5, v11
int-to-byte v5, v5
.line 32
invoke-static {v1, v14, v15, v5}, Lcom/google/android/gms/internal/ads/zzenl;->zza([BJB)V
const-wide/16 v14, 0x1
add-long v18, v3, v14
and-int/lit8 v5, v13, 0x3f
or-int/2addr v5, v11
int-to-byte v5, v5
.line 33
invoke-static {v1, v3, v4, v5}, Lcom/google/android/gms/internal/ads/zzenl;->zza([BJB)V
move-wide/from16 v12, v18
const-wide/16 v4, 0x1
goto :goto_47
:cond_ae
const-wide/16 v11, 0x4
sub-long v11, v6, v11
cmp-long v15, v4, v11
if-gtz v15, :cond_10f
add-int/lit8 v3, v2, 0x1
if-eq v3, v8, :cond_107
.line 34
invoke-interface {v0, v3}, Ljava/lang/CharSequence;->charAt(I)C
move-result v2
invoke-static {v13, v2}, Ljava/lang/Character;->isSurrogatePair(CC)Z
move-result v11
if-eqz v11, :cond_106
.line 35
invoke-static {v13, v2}, Ljava/lang/Character;->toCodePoint(CC)I
move-result v2
const-wide/16 v11, 0x1
add-long v13, v4, v11
ushr-int/lit8 v15, v2, 0x12
or-int/lit16 v15, v15, 0xf0
int-to-byte v15, v15
.line 36
invoke-static {v1, v4, v5, v15}, Lcom/google/android/gms/internal/ads/zzenl;->zza([BJB)V
add-long v4, v13, v11
ushr-int/lit8 v15, v2, 0xc
and-int/lit8 v15, v15, 0x3f
const/16 v11, 0x80
or-int/lit16 v12, v15, 0x80
int-to-byte v12, v12
.line 37
invoke-static {v1, v13, v14, v12}, Lcom/google/android/gms/internal/ads/zzenl;->zza([BJB)V
const-wide/16 v12, 0x1
add-long v14, v4, v12
ushr-int/lit8 v16, v2, 0x6
and-int/lit8 v12, v16, 0x3f
or-int/2addr v12, v11
int-to-byte v12, v12
.line 38
invoke-static {v1, v4, v5, v12}, Lcom/google/android/gms/internal/ads/zzenl;->zza([BJB)V
const-wide/16 v4, 0x1
add-long v12, v14, v4
and-int/lit8 v2, v2, 0x3f
or-int/2addr v2, v11
int-to-byte v2, v2
.line 39
invoke-static {v1, v14, v15, v2}, Lcom/google/android/gms/internal/ads/zzenl;->zza([BJB)V
move v2, v3
:goto_fb
add-int/lit8 v2, v2, 0x1
const/16 v3, 0x80
move-wide/from16 v20, v4
move-wide v4, v12
move-wide/from16 v11, v20
goto/16 :goto_33
:cond_106
move v2, v3
.line 40
:cond_107
new-instance v0, Lcom/google/android/gms/internal/ads/zzenr;
add-int/lit8 v2, v2, -0x1
invoke-direct {v0, v2, v8}, Lcom/google/android/gms/internal/ads/zzenr;-><init>(II)V
throw v0
:cond_10f
if-gt v14, v13, :cond_127
if-gt v13, v3, :cond_127
add-int/lit8 v1, v2, 0x1
if-eq v1, v8, :cond_121
.line 41
invoke-interface {v0, v1}, Ljava/lang/CharSequence;->charAt(I)C
move-result v0
invoke-static {v13, v0}, Ljava/lang/Character;->isSurrogatePair(CC)Z
move-result v0
if-nez v0, :cond_127
.line 42
:cond_121
new-instance v0, Lcom/google/android/gms/internal/ads/zzenr;
invoke-direct {v0, v2, v8}, Lcom/google/android/gms/internal/ads/zzenr;-><init>(II)V
throw v0
.line 43
:cond_127
new-instance v0, Ljava/lang/ArrayIndexOutOfBoundsException;
const/16 v1, 0x2e
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2, v1}, Ljava/lang/StringBuilder;-><init>(I)V
invoke-virtual {v2, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, v13}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v2, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, v4, v5}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;