zzfj.smali

.class final Lcom/google/android/gms/internal/clearcut/zzfj;
.super Lcom/google/android/gms/internal/clearcut/zzfg;


# direct methods
.method constructor <init>()V
    .registers 1

    invoke-direct {p0}, Lcom/google/android/gms/internal/clearcut/zzfg;-><init>()V

    return-void
.end method

.method private static zza([BIJI)I
    .registers 9

    packed-switch p4, :pswitch_data_28

    new-instance v0, Ljava/lang/AssertionError;

    invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V

    throw v0

    :pswitch_9
    invoke-static {p1}, Lcom/google/android/gms/internal/clearcut/zzff;->zzan(I)I

    move-result v0

    :goto_d
    return v0

    :pswitch_e
    invoke-static {p0, p2, p3}, Lcom/google/android/gms/internal/clearcut/zzfd;->zza([BJ)B

    move-result v0

    invoke-static {p1, v0}, Lcom/google/android/gms/internal/clearcut/zzff;->zzq(II)I

    move-result v0

    goto :goto_d

    :pswitch_17
    invoke-static {p0, p2, p3}, Lcom/google/android/gms/internal/clearcut/zzfd;->zza([BJ)B

    move-result v0

    const-wide/16 v2, 0x1

    add-long/2addr v2, p2

    invoke-static {p0, v2, v3}, Lcom/google/android/gms/internal/clearcut/zzfd;->zza([BJ)B

    move-result v1

    invoke-static {p1, v0, v1}, Lcom/google/android/gms/internal/clearcut/zzff;->zze(III)I

    move-result v0

    goto :goto_d

    nop

    :pswitch_data_28
    .packed-switch 0x0
        :pswitch_9
        :pswitch_e
        :pswitch_17
    .end packed-switch
.end method


# virtual methods
.method final zzb(I[BII)I
    .registers 14

    or-int v0, p3, p4

    array-length v1, p2

    sub-int/2addr v1, p4

    or-int/2addr v0, v1

    if-gez v0, :cond_2c

    new-instance v0, Ljava/lang/ArrayIndexOutOfBoundsException;

    const-string v1, "Array length=%d, index=%d, limit=%d"

    const/4 v2, 0x3

    new-array v2, v2, [Ljava/lang/Object;

    const/4 v3, 0x0

    array-length v4, p2

    invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v4

    aput-object v4, v2, v3

    const/4 v3, 0x1

    invoke-static {p3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v4

    aput-object v4, v2, v3

    const/4 v3, 0x2

    invoke-static {p4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v4

    aput-object v4, v2, v3

    invoke-static {v1, v2}, 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

    throw v0

    :cond_2c
    int-to-long v4, p3

    int-to-long v0, p4

    sub-long/2addr v0, v4

    long-to-int v1, v0

    const/16 v0, 0x10

    if-ge v1, v0, :cond_50

    const/4 v0, 0x0

    :cond_35
    :goto_35
    sub-int v2, v1, v0

    int-to-long v0, v0

    add-long/2addr v0, v4

    :cond_39
    const/4 v3, 0x0

    move v6, v2

    move v8, v3

    move-wide v2, v0

    move v0, v8

    :goto_3e
    if-lez v6, :cond_f2

    const-wide/16 v0, 0x1

    add-long/2addr v0, v2

    invoke-static {p2, v2, v3}, Lcom/google/android/gms/internal/clearcut/zzfd;->zza([BJ)B

    move-result v2

    if-ltz v2, :cond_63

    add-int/lit8 v3, v6, -0x1

    move v6, v3

    move v8, v2

    move-wide v2, v0

    move v0, v8

    goto :goto_3e

    :cond_50
    const/4 v0, 0x0

    move-wide v2, v4

    :goto_52
    if-ge v0, v1, :cond_61

    const-wide/16 v6, 0x1

    add-long/2addr v6, v2

    invoke-static {p2, v2, v3}, Lcom/google/android/gms/internal/clearcut/zzfd;->zza([BJ)B

    move-result v2

    if-ltz v2, :cond_35

    add-int/lit8 v0, v0, 0x1

    move-wide v2, v6

    goto :goto_52

    :cond_61
    move v0, v1

    goto :goto_35

    :cond_63
    move-wide v4, v0

    move v0, v2

    :goto_65
    if-nez v6, :cond_69

    const/4 v0, 0x0

    :cond_68
    :goto_68
    return v0

    :cond_69
    add-int/lit8 v1, v6, -0x1

    const/16 v2, -0x20

    if-ge v0, v2, :cond_84

    if-eqz v1, :cond_68

    add-int/lit8 v2, v1, -0x1

    const/16 v1, -0x3e

    if-lt v0, v1, :cond_82

    const-wide/16 v0, 0x1

    add-long/2addr v0, v4

    invoke-static {p2, v4, v5}, Lcom/google/android/gms/internal/clearcut/zzfd;->zza([BJ)B

    move-result v3

    const/16 v4, -0x41

    if-le v3, v4, :cond_39

    :cond_82
    const/4 v0, -0x1

    goto :goto_68

    :cond_84
    const/16 v2, -0x10

    if-ge v0, v2, :cond_ba

    const/4 v2, 0x2

    if-ge v1, v2, :cond_90

    invoke-static {p2, v0, v4, v5, v1}, Lcom/google/android/gms/internal/clearcut/zzfj;->zza([BIJI)I

    move-result v0

    goto :goto_68

    :cond_90
    add-int/lit8 v2, v1, -0x2

    const-wide/16 v6, 0x1

    add-long/2addr v6, v4

    invoke-static {p2, v4, v5}, Lcom/google/android/gms/internal/clearcut/zzfd;->zza([BJ)B

    move-result v1

    const/16 v3, -0x41

    if-gt v1, v3, :cond_b8

    const/16 v3, -0x20

    if-ne v0, v3, :cond_a5

    const/16 v3, -0x60

    if-lt v1, v3, :cond_b8

    :cond_a5
    const/16 v3, -0x13

    if-ne v0, v3, :cond_ad

    const/16 v0, -0x60

    if-ge v1, v0, :cond_b8

    :cond_ad
    const-wide/16 v0, 0x1

    add-long/2addr v0, v6

    invoke-static {p2, v6, v7}, Lcom/google/android/gms/internal/clearcut/zzfd;->zza([BJ)B

    move-result v3

    const/16 v4, -0x41

    if-le v3, v4, :cond_39

    :cond_b8
    const/4 v0, -0x1

    goto :goto_68

    :cond_ba
    const/4 v2, 0x3

    if-ge v1, v2, :cond_c2

    invoke-static {p2, v0, v4, v5, v1}, Lcom/google/android/gms/internal/clearcut/zzfj;->zza([BIJI)I

    move-result v0

    goto :goto_68

    :cond_c2
    add-int/lit8 v2, v1, -0x3

    const-wide/16 v6, 0x1

    add-long/2addr v6, v4

    invoke-static {p2, v4, v5}, Lcom/google/android/gms/internal/clearcut/zzfd;->zza([BJ)B

    move-result v1

    const/16 v3, -0x41

    if-gt v1, v3, :cond_ef

    shl-int/lit8 v0, v0, 0x1c

    add-int/lit8 v1, v1, 0x70

    add-int/2addr v0, v1

    shr-int/lit8 v0, v0, 0x1e

    if-nez v0, :cond_ef

    const-wide/16 v0, 0x1

    add-long v4, v6, v0

    invoke-static {p2, v6, v7}, Lcom/google/android/gms/internal/clearcut/zzfd;->zza([BJ)B

    move-result v0

    const/16 v1, -0x41

    if-gt v0, v1, :cond_ef

    const-wide/16 v0, 0x1

    add-long/2addr v0, v4

    invoke-static {p2, v4, v5}, Lcom/google/android/gms/internal/clearcut/zzfd;->zza([BJ)B

    move-result v3

    const/16 v4, -0x41

    if-le v3, v4, :cond_39

    :cond_ef
    const/4 v0, -0x1

    goto/16 :goto_68

    :cond_f2
    move-wide v4, v2

    goto/16 :goto_65
.end method

.method final zzb(Ljava/lang/CharSequence;[BII)I
    .registers 19

    move/from16 v0, p3

    int-to-long v4, v0

    move/from16 v0, p4

    int-to-long v2, v0

    add-long v8, v4, v2

    invoke-interface {p1}, Ljava/lang/CharSequence;->length()I

    move-result v3

    move/from16 v0, p4

    if-gt v3, v0, :cond_19

    move-object/from16 v0, p2

    array-length v2, v0

    sub-int v2, v2, p4

    move/from16 v0, p3

    if-ge v2, v0, :cond_46

    :cond_19
    new-instance v2, Ljava/lang/ArrayIndexOutOfBoundsException;

    add-int/lit8 v3, v3, -0x1

    invoke-interface {p1, v3}, Ljava/lang/CharSequence;->charAt(I)C

    move-result v3

    add-int v4, p3, p4

    const/16 v5, 0x25

    new-instance v6, Ljava/lang/StringBuilder;

    invoke-direct {v6, v5}, Ljava/lang/StringBuilder;-><init>(I)V

    const-string v5, "Failed writing "

    invoke-virtual {v6, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v5

    invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;

    move-result-object v3

    const-string v5, " at index "

    invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v3

    invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v3

    invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v3

    invoke-direct {v2, v3}, Ljava/lang/ArrayIndexOutOfBoundsException;-><init>(Ljava/lang/String;)V

    throw v2

    :cond_46
    const/4 v2, 0x0

    :goto_47
    if-ge v2, v3, :cond_5e

    invoke-interface {p1, v2}, Ljava/lang/CharSequence;->charAt(I)C

    move-result v10

    const/16 v6, 0x80

    if-ge v10, v6, :cond_5e

    const-wide/16 v6, 0x1

    add-long/2addr v6, v4

    int-to-byte v10, v10

    move-object/from16 v0, p2

    invoke-static {v0, v4, v5, v10}, Lcom/google/android/gms/internal/clearcut/zzfd;->zza([BJB)V

    add-int/lit8 v2, v2, 0x1

    move-wide v4, v6

    goto :goto_47

    :cond_5e
    if-ne v2, v3, :cond_188

    long-to-int v2, v4

    :goto_61
    return v2

    :goto_62
    if-ge v2, v3, :cond_185

    invoke-interface {p1, v2}, Ljava/lang/CharSequence;->charAt(I)C

    move-result v10

    const/16 v4, 0x80

    if-ge v10, v4, :cond_7d

    cmp-long v4, v6, v8

    if-gez v4, :cond_7d

    const-wide/16 v4, 0x1

    add-long/2addr v4, v6

    int-to-byte v10, v10

    move-object/from16 v0, p2

    invoke-static {v0, v6, v7, v10}, Lcom/google/android/gms/internal/clearcut/zzfd;->zza([BJB)V

    :goto_79
    add-int/lit8 v2, v2, 0x1

    move-wide v6, v4

    goto :goto_62

    :cond_7d
    const/16 v4, 0x800

    if-ge v10, v4, :cond_a5

    const-wide/16 v4, 0x2

    sub-long v4, v8, v4

    cmp-long v4, v6, v4

    if-gtz v4, :cond_a5

    const-wide/16 v4, 0x1

    add-long v12, v6, v4

    ushr-int/lit8 v4, v10, 0x6

    or-int/lit16 v4, v4, 0x3c0

    int-to-byte v4, v4

    move-object/from16 v0, p2

    invoke-static {v0, v6, v7, v4}, Lcom/google/android/gms/internal/clearcut/zzfd;->zza([BJB)V

    const-wide/16 v4, 0x1

    add-long/2addr v4, v12

    and-int/lit8 v6, v10, 0x3f

    or-int/lit16 v6, v6, 0x80

    int-to-byte v6, v6

    move-object/from16 v0, p2

    invoke-static {v0, v12, v13, v6}, Lcom/google/android/gms/internal/clearcut/zzfd;->zza([BJB)V

    goto :goto_79

    :cond_a5
    const v4, 0xd800

    if-lt v10, v4, :cond_af

    const v4, 0xdfff

    if-ge v4, v10, :cond_e1

    :cond_af
    const-wide/16 v4, 0x3

    sub-long v4, v8, v4

    cmp-long v4, v6, v4

    if-gtz v4, :cond_e1

    const-wide/16 v4, 0x1

    add-long/2addr v4, v6

    ushr-int/lit8 v11, v10, 0xc

    or-int/lit16 v11, v11, 0x1e0

    int-to-byte v11, v11

    move-object/from16 v0, p2

    invoke-static {v0, v6, v7, v11}, Lcom/google/android/gms/internal/clearcut/zzfd;->zza([BJB)V

    const-wide/16 v6, 0x1

    add-long/2addr v6, v4

    ushr-int/lit8 v11, v10, 0x6

    and-int/lit8 v11, v11, 0x3f

    or-int/lit16 v11, v11, 0x80

    int-to-byte v11, v11

    move-object/from16 v0, p2

    invoke-static {v0, v4, v5, v11}, Lcom/google/android/gms/internal/clearcut/zzfd;->zza([BJB)V

    const-wide/16 v4, 0x1

    add-long/2addr v4, v6

    and-int/lit8 v10, v10, 0x3f

    or-int/lit16 v10, v10, 0x80

    int-to-byte v10, v10

    move-object/from16 v0, p2

    invoke-static {v0, v6, v7, v10}, Lcom/google/android/gms/internal/clearcut/zzfd;->zza([BJB)V

    goto :goto_79

    :cond_e1
    const-wide/16 v4, 0x4

    sub-long v4, v8, v4

    cmp-long v4, v6, v4

    if-gtz v4, :cond_140

    add-int/lit8 v4, v2, 0x1

    if-eq v4, v3, :cond_f9

    add-int/lit8 v2, v2, 0x1

    invoke-interface {p1, v2}, Ljava/lang/CharSequence;->charAt(I)C

    move-result v4

    invoke-static {v10, v4}, Ljava/lang/Character;->isSurrogatePair(CC)Z

    move-result v5

    if-nez v5, :cond_101

    :cond_f9
    new-instance v4, Lcom/google/android/gms/internal/clearcut/zzfi;

    add-int/lit8 v2, v2, -0x1

    invoke-direct {v4, v2, v3}, Lcom/google/android/gms/internal/clearcut/zzfi;-><init>(II)V

    throw v4

    :cond_101
    invoke-static {v10, v4}, Ljava/lang/Character;->toCodePoint(CC)I

    move-result v10

    const-wide/16 v4, 0x1

    add-long/2addr v4, v6

    ushr-int/lit8 v11, v10, 0x12

    or-int/lit16 v11, v11, 0xf0

    int-to-byte v11, v11

    move-object/from16 v0, p2

    invoke-static {v0, v6, v7, v11}, Lcom/google/android/gms/internal/clearcut/zzfd;->zza([BJB)V

    const-wide/16 v6, 0x1

    add-long/2addr v6, v4

    ushr-int/lit8 v11, v10, 0xc

    and-int/lit8 v11, v11, 0x3f

    or-int/lit16 v11, v11, 0x80

    int-to-byte v11, v11

    move-object/from16 v0, p2

    invoke-static {v0, v4, v5, v11}, Lcom/google/android/gms/internal/clearcut/zzfd;->zza([BJB)V

    const-wide/16 v4, 0x1

    add-long v12, v6, v4

    ushr-int/lit8 v4, v10, 0x6

    and-int/lit8 v4, v4, 0x3f

    or-int/lit16 v4, v4, 0x80

    int-to-byte v4, v4

    move-object/from16 v0, p2

    invoke-static {v0, v6, v7, v4}, Lcom/google/android/gms/internal/clearcut/zzfd;->zza([BJB)V

    const-wide/16 v4, 0x1

    add-long/2addr v4, v12

    and-int/lit8 v6, v10, 0x3f

    or-int/lit16 v6, v6, 0x80

    int-to-byte v6, v6

    move-object/from16 v0, p2

    invoke-static {v0, v12, v13, v6}, Lcom/google/android/gms/internal/clearcut/zzfd;->zza([BJB)V

    goto/16 :goto_79

    :cond_140
    const v4, 0xd800

    if-gt v4, v10, :cond_160

    const v4, 0xdfff

    if-gt v10, v4, :cond_160

    add-int/lit8 v4, v2, 0x1

    if-eq v4, v3, :cond_15a

    add-int/lit8 v4, v2, 0x1

    invoke-interface {p1, v4}, Ljava/lang/CharSequence;->charAt(I)C

    move-result v4

    invoke-static {v10, v4}, Ljava/lang/Character;->isSurrogatePair(CC)Z

    move-result v4

    if-nez v4, :cond_160

    :cond_15a
    new-instance v4, Lcom/google/android/gms/internal/clearcut/zzfi;

    invoke-direct {v4, v2, v3}, Lcom/google/android/gms/internal/clearcut/zzfi;-><init>(II)V

    throw v4

    :cond_160
    new-instance v2, Ljava/lang/ArrayIndexOutOfBoundsException;

    const/16 v3, 0x2e

    new-instance v4, Ljava/lang/StringBuilder;

    invoke-direct {v4, v3}, Ljava/lang/StringBuilder;-><init>(I)V

    const-string v3, "Failed writing "

    invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v3

    invoke-virtual {v3, v10}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;

    move-result-object v3

    const-string v4, " at index "

    invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v3

    invoke-virtual {v3, v6, v7}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;

    move-result-object v3

    invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v3

    invoke-direct {v2, v3}, Ljava/lang/ArrayIndexOutOfBoundsException;-><init>(Ljava/lang/String;)V

    throw v2

    :cond_185
    long-to-int v2, v6

    goto/16 :goto_61

    :cond_188
    move-wide v6, v4

    goto/16 :goto_62
.end method

.method final zzb(Ljava/lang/CharSequence;Ljava/nio/ByteBuffer;)V
    .registers 19

    invoke-static/range {p2 .. p2}, Lcom/google/android/gms/internal/clearcut/zzfd;->zzb(Ljava/nio/ByteBuffer;)J

    move-result-wide v8

    invoke-virtual/range {p2 .. p2}, Ljava/nio/ByteBuffer;->position()I

    move-result v2

    int-to-long v2, v2

    add-long v4, v8, v2

    invoke-virtual/range {p2 .. p2}, Ljava/nio/ByteBuffer;->limit()I

    move-result v2

    int-to-long v2, v2

    add-long v10, v8, v2

    invoke-interface/range {p1 .. p1}, Ljava/lang/CharSequence;->length()I

    move-result v3

    int-to-long v6, v3

    sub-long v12, v10, v4

    cmp-long v2, v6, v12

    if-lez v2, :cond_4e

    new-instance v2, Ljava/lang/ArrayIndexOutOfBoundsException;

    add-int/lit8 v3, v3, -0x1

    move-object/from16 v0, p1

    invoke-interface {v0, v3}, Ljava/lang/CharSequence;->charAt(I)C

    move-result v3

    invoke-virtual/range {p2 .. p2}, Ljava/nio/ByteBuffer;->limit()I

    move-result v4

    const/16 v5, 0x25

    new-instance v6, Ljava/lang/StringBuilder;

    invoke-direct {v6, v5}, Ljava/lang/StringBuilder;-><init>(I)V

    const-string v5, "Failed writing "

    invoke-virtual {v6, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v5

    invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;

    move-result-object v3

    const-string v5, " at index "

    invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v3

    invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v3

    invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v3

    invoke-direct {v2, v3}, Ljava/lang/ArrayIndexOutOfBoundsException;-><init>(Ljava/lang/String;)V

    throw v2

    :cond_4e
    const/4 v2, 0x0

    :goto_4f
    if-ge v2, v3, :cond_66

    move-object/from16 v0, p1

    invoke-interface {v0, v2}, Ljava/lang/CharSequence;->charAt(I)C

    move-result v12

    const/16 v6, 0x80

    if-ge v12, v6, :cond_66

    const-wide/16 v6, 0x1

    add-long/2addr v6, v4

    int-to-byte v12, v12

    invoke-static {v4, v5, v12}, Lcom/google/android/gms/internal/clearcut/zzfd;->zza(JB)V

    add-int/lit8 v2, v2, 0x1

    move-wide v4, v6

    goto :goto_4f

    :cond_66
    if-ne v2, v3, :cond_190

    sub-long v2, v4, v8

    long-to-int v2, v2

    move-object/from16 v0, p2

    invoke-virtual {v0, v2}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;

    :goto_70
    return-void

    :goto_71
    if-ge v2, v3, :cond_186

    move-object/from16 v0, p1

    invoke-interface {v0, v2}, Ljava/lang/CharSequence;->charAt(I)C

    move-result v12

    const/16 v4, 0x80

    if-ge v12, v4, :cond_8c

    cmp-long v4, v6, v10

    if-gez v4, :cond_8c

    const-wide/16 v4, 0x1

    add-long/2addr v4, v6

    int-to-byte v12, v12

    invoke-static {v6, v7, v12}, Lcom/google/android/gms/internal/clearcut/zzfd;->zza(JB)V

    :goto_88
    add-int/lit8 v2, v2, 0x1

    move-wide v6, v4

    goto :goto_71

    :cond_8c
    const/16 v4, 0x800

    if-ge v12, v4, :cond_b0

    const-wide/16 v4, 0x2

    sub-long v4, v10, v4

    cmp-long v4, v6, v4

    if-gtz v4, :cond_b0

    const-wide/16 v4, 0x1

    add-long v14, v6, v4

    ushr-int/lit8 v4, v12, 0x6

    or-int/lit16 v4, v4, 0x3c0

    int-to-byte v4, v4

    invoke-static {v6, v7, v4}, Lcom/google/android/gms/internal/clearcut/zzfd;->zza(JB)V

    const-wide/16 v4, 0x1

    add-long/2addr v4, v14

    and-int/lit8 v6, v12, 0x3f

    or-int/lit16 v6, v6, 0x80

    int-to-byte v6, v6

    invoke-static {v14, v15, v6}, Lcom/google/android/gms/internal/clearcut/zzfd;->zza(JB)V

    goto :goto_88

    :cond_b0
    const v4, 0xd800

    if-lt v12, v4, :cond_ba

    const v4, 0xdfff

    if-ge v4, v12, :cond_e6

    :cond_ba
    const-wide/16 v4, 0x3

    sub-long v4, v10, v4

    cmp-long v4, v6, v4

    if-gtz v4, :cond_e6

    const-wide/16 v4, 0x1

    add-long/2addr v4, v6

    ushr-int/lit8 v13, v12, 0xc

    or-int/lit16 v13, v13, 0x1e0

    int-to-byte v13, v13

    invoke-static {v6, v7, v13}, Lcom/google/android/gms/internal/clearcut/zzfd;->zza(JB)V

    const-wide/16 v6, 0x1

    add-long/2addr v6, v4

    ushr-int/lit8 v13, v12, 0x6

    and-int/lit8 v13, v13, 0x3f

    or-int/lit16 v13, v13, 0x80

    int-to-byte v13, v13

    invoke-static {v4, v5, v13}, Lcom/google/android/gms/internal/clearcut/zzfd;->zza(JB)V

    const-wide/16 v4, 0x1

    add-long/2addr v4, v6

    and-int/lit8 v12, v12, 0x3f

    or-int/lit16 v12, v12, 0x80

    int-to-byte v12, v12

    invoke-static {v6, v7, v12}, Lcom/google/android/gms/internal/clearcut/zzfd;->zza(JB)V

    goto :goto_88

    :cond_e6
    const-wide/16 v4, 0x4

    sub-long v4, v10, v4

    cmp-long v4, v6, v4

    if-gtz v4, :cond_13f

    add-int/lit8 v4, v2, 0x1

    if-eq v4, v3, :cond_100

    add-int/lit8 v2, v2, 0x1

    move-object/from16 v0, p1

    invoke-interface {v0, v2}, Ljava/lang/CharSequence;->charAt(I)C

    move-result v4

    invoke-static {v12, v4}, Ljava/lang/Character;->isSurrogatePair(CC)Z

    move-result v5

    if-nez v5, :cond_108

    :cond_100
    new-instance v4, Lcom/google/android/gms/internal/clearcut/zzfi;

    add-int/lit8 v2, v2, -0x1

    invoke-direct {v4, v2, v3}, Lcom/google/android/gms/internal/clearcut/zzfi;-><init>(II)V

    throw v4

    :cond_108
    invoke-static {v12, v4}, Ljava/lang/Character;->toCodePoint(CC)I

    move-result v12

    const-wide/16 v4, 0x1

    add-long/2addr v4, v6

    ushr-int/lit8 v13, v12, 0x12

    or-int/lit16 v13, v13, 0xf0

    int-to-byte v13, v13

    invoke-static {v6, v7, v13}, Lcom/google/android/gms/internal/clearcut/zzfd;->zza(JB)V

    const-wide/16 v6, 0x1

    add-long/2addr v6, v4

    ushr-int/lit8 v13, v12, 0xc

    and-int/lit8 v13, v13, 0x3f

    or-int/lit16 v13, v13, 0x80

    int-to-byte v13, v13

    invoke-static {v4, v5, v13}, Lcom/google/android/gms/internal/clearcut/zzfd;->zza(JB)V

    const-wide/16 v4, 0x1

    add-long v14, v6, v4

    ushr-int/lit8 v4, v12, 0x6

    and-int/lit8 v4, v4, 0x3f

    or-int/lit16 v4, v4, 0x80

    int-to-byte v4, v4

    invoke-static {v6, v7, v4}, Lcom/google/android/gms/internal/clearcut/zzfd;->zza(JB)V

    const-wide/16 v4, 0x1

    add-long/2addr v4, v14

    and-int/lit8 v6, v12, 0x3f

    or-int/lit16 v6, v6, 0x80

    int-to-byte v6, v6

    invoke-static {v14, v15, v6}, Lcom/google/android/gms/internal/clearcut/zzfd;->zza(JB)V

    goto/16 :goto_88

    :cond_13f
    const v4, 0xd800

    if-gt v4, v12, :cond_161

    const v4, 0xdfff

    if-gt v12, v4, :cond_161

    add-int/lit8 v4, v2, 0x1

    if-eq v4, v3, :cond_15b

    add-int/lit8 v4, v2, 0x1

    move-object/from16 v0, p1

    invoke-interface {v0, v4}, Ljava/lang/CharSequence;->charAt(I)C

    move-result v4

    invoke-static {v12, v4}, Ljava/lang/Character;->isSurrogatePair(CC)Z

    move-result v4

    if-nez v4, :cond_161

    :cond_15b
    new-instance v4, Lcom/google/android/gms/internal/clearcut/zzfi;

    invoke-direct {v4, v2, v3}, Lcom/google/android/gms/internal/clearcut/zzfi;-><init>(II)V

    throw v4

    :cond_161
    new-instance v2, Ljava/lang/ArrayIndexOutOfBoundsException;

    const/16 v3, 0x2e

    new-instance v4, Ljava/lang/StringBuilder;

    invoke-direct {v4, v3}, Ljava/lang/StringBuilder;-><init>(I)V

    const-string v3, "Failed writing "

    invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v3

    invoke-virtual {v3, v12}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;

    move-result-object v3

    const-string v4, " at index "

    invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v3

    invoke-virtual {v3, v6, v7}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;

    move-result-object v3

    invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v3

    invoke-direct {v2, v3}, Ljava/lang/ArrayIndexOutOfBoundsException;-><init>(Ljava/lang/String;)V

    throw v2

    :cond_186
    sub-long v2, v6, v8

    long-to-int v2, v2

    move-object/from16 v0, p2

    invoke-virtual {v0, v2}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;

    goto/16 :goto_70

    :cond_190
    move-wide v6, v4

    goto/16 :goto_71
.end method