zzmx.smali

.class final Lcom/google/android/gms/internal/firebase_ml/zzmx;
.super Lcom/google/android/gms/internal/firebase_ml/zzmw;


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

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

    return-void
.end method


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

    const/4 v1, 0x0

    const/16 v8, -0x20

    const/16 v7, -0x60

    const/4 v2, -0x1

    const/16 v6, -0x41

    move v0, p3

    :goto_9
    if-ge v0, p4, :cond_12

    aget-byte v3, p2, v0

    if-ltz v3, :cond_12

    add-int/lit8 v0, v0, 0x1

    goto :goto_9

    :cond_12
    if-lt v0, p4, :cond_17

    move v0, v1

    :cond_15
    :goto_15
    return v0

    :cond_16
    move v0, v3

    :cond_17
    if-lt v0, p4, :cond_1b

    move v0, v1

    goto :goto_15

    :cond_1b
    add-int/lit8 v3, v0, 0x1

    aget-byte v0, p2, v0

    if-gez v0, :cond_16

    if-ge v0, v8, :cond_31

    if-ge v3, p4, :cond_15

    const/16 v4, -0x3e

    if-lt v0, v4, :cond_2f

    add-int/lit8 v0, v3, 0x1

    aget-byte v3, p2, v3

    if-le v3, v6, :cond_17

    :cond_2f
    move v0, v2

    goto :goto_15

    :cond_31
    const/16 v4, -0x10

    if-ge v0, v4, :cond_56

    add-int/lit8 v4, p4, -0x1

    if-lt v3, v4, :cond_3e

    invoke-static {p2, v3, p4}, Lcom/google/android/gms/internal/firebase_ml/zzmv;->zzf([BII)I

    move-result v0

    goto :goto_15

    :cond_3e
    add-int/lit8 v4, v3, 0x1

    aget-byte v3, p2, v3

    if-gt v3, v6, :cond_54

    if-ne v0, v8, :cond_48

    if-lt v3, v7, :cond_54

    :cond_48
    const/16 v5, -0x13

    if-ne v0, v5, :cond_4e

    if-ge v3, v7, :cond_54

    :cond_4e
    add-int/lit8 v0, v4, 0x1

    aget-byte v3, p2, v4

    if-le v3, v6, :cond_17

    :cond_54
    move v0, v2

    goto :goto_15

    :cond_56
    add-int/lit8 v4, p4, -0x2

    if-lt v3, v4, :cond_5f

    invoke-static {p2, v3, p4}, Lcom/google/android/gms/internal/firebase_ml/zzmv;->zzf([BII)I

    move-result v0

    goto :goto_15

    :cond_5f
    add-int/lit8 v4, v3, 0x1

    aget-byte v3, p2, v3

    if-gt v3, v6, :cond_7a

    shl-int/lit8 v0, v0, 0x1c

    add-int/lit8 v3, v3, 0x70

    add-int/2addr v0, v3

    shr-int/lit8 v0, v0, 0x1e

    if-nez v0, :cond_7a

    add-int/lit8 v3, v4, 0x1

    aget-byte v0, p2, v4

    if-gt v0, v6, :cond_7a

    add-int/lit8 v0, v3, 0x1

    aget-byte v3, p2, v3

    if-le v3, v6, :cond_17

    :cond_7a
    move v0, v2

    goto :goto_15
.end method

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

    const v9, 0xdfff

    const v8, 0xd800

    const/16 v7, 0x80

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

    move-result v3

    const/4 v0, 0x0

    add-int v4, p3, p4

    :goto_f
    if-ge v0, v3, :cond_23

    add-int v1, v0, p3

    if-ge v1, v4, :cond_23

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

    move-result v1

    if-ge v1, v7, :cond_23

    add-int v2, p3, v0

    int-to-byte v1, v1

    aput-byte v1, p2, v2

    add-int/lit8 v0, v0, 0x1

    goto :goto_f

    :cond_23
    if-ne v0, v3, :cond_28

    add-int v0, p3, v3

    :goto_27
    return v0

    :cond_28
    add-int v2, p3, v0

    :goto_2a
    if-ge v0, v3, :cond_10f

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

    move-result v5

    if-ge v5, v7, :cond_3d

    if-ge v2, v4, :cond_3d

    add-int/lit8 v1, v2, 0x1

    int-to-byte v5, v5

    aput-byte v5, p2, v2

    :goto_39
    add-int/lit8 v0, v0, 0x1

    move v2, v1

    goto :goto_2a

    :cond_3d
    const/16 v1, 0x800

    if-ge v5, v1, :cond_58

    add-int/lit8 v1, v4, -0x2

    if-gt v2, v1, :cond_58

    add-int/lit8 v6, v2, 0x1

    ushr-int/lit8 v1, v5, 0x6

    or-int/lit16 v1, v1, 0x3c0

    int-to-byte v1, v1

    aput-byte v1, p2, v2

    add-int/lit8 v1, v6, 0x1

    and-int/lit8 v2, v5, 0x3f

    or-int/lit16 v2, v2, 0x80

    int-to-byte v2, v2

    aput-byte v2, p2, v6

    goto :goto_39

    :cond_58
    if-lt v5, v8, :cond_5c

    if-ge v9, v5, :cond_7e

    :cond_5c
    add-int/lit8 v1, v4, -0x3

    if-gt v2, v1, :cond_7e

    add-int/lit8 v1, v2, 0x1

    ushr-int/lit8 v6, v5, 0xc

    or-int/lit16 v6, v6, 0x1e0

    int-to-byte v6, v6

    aput-byte v6, p2, v2

    add-int/lit8 v2, v1, 0x1

    ushr-int/lit8 v6, v5, 0x6

    and-int/lit8 v6, v6, 0x3f

    or-int/lit16 v6, v6, 0x80

    int-to-byte v6, v6

    aput-byte v6, p2, v1

    add-int/lit8 v1, v2, 0x1

    and-int/lit8 v5, v5, 0x3f

    or-int/lit16 v5, v5, 0x80

    int-to-byte v5, v5

    aput-byte v5, p2, v2

    goto :goto_39

    :cond_7e
    add-int/lit8 v1, v4, -0x4

    if-gt v2, v1, :cond_cc

    add-int/lit8 v1, v0, 0x1

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

    move-result v6

    if-eq v1, v6, :cond_96

    add-int/lit8 v0, v0, 0x1

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

    move-result v1

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

    move-result v6

    if-nez v6, :cond_9e

    :cond_96
    new-instance v1, Lcom/google/android/gms/internal/firebase_ml/zzmy;

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

    invoke-direct {v1, v0, v3}, Lcom/google/android/gms/internal/firebase_ml/zzmy;-><init>(II)V

    throw v1

    :cond_9e
    invoke-static {v5, v1}, Ljava/lang/Character;->toCodePoint(CC)I

    move-result v5

    add-int/lit8 v1, v2, 0x1

    ushr-int/lit8 v6, v5, 0x12

    or-int/lit16 v6, v6, 0xf0

    int-to-byte v6, v6

    aput-byte v6, p2, v2

    add-int/lit8 v2, v1, 0x1

    ushr-int/lit8 v6, v5, 0xc

    and-int/lit8 v6, v6, 0x3f

    or-int/lit16 v6, v6, 0x80

    int-to-byte v6, v6

    aput-byte v6, p2, v1

    add-int/lit8 v6, v2, 0x1

    ushr-int/lit8 v1, v5, 0x6

    and-int/lit8 v1, v1, 0x3f

    or-int/lit16 v1, v1, 0x80

    int-to-byte v1, v1

    aput-byte v1, p2, v2

    add-int/lit8 v1, v6, 0x1

    and-int/lit8 v2, v5, 0x3f

    or-int/lit16 v2, v2, 0x80

    int-to-byte v2, v2

    aput-byte v2, p2, v6

    goto/16 :goto_39

    :cond_cc
    if-gt v8, v5, :cond_ea

    if-gt v5, v9, :cond_ea

    add-int/lit8 v1, v0, 0x1

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

    move-result v4

    if-eq v1, v4, :cond_e4

    add-int/lit8 v1, v0, 0x1

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

    move-result v1

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

    move-result v1

    if-nez v1, :cond_ea

    :cond_e4
    new-instance v1, Lcom/google/android/gms/internal/firebase_ml/zzmy;

    invoke-direct {v1, v0, v3}, Lcom/google/android/gms/internal/firebase_ml/zzmy;-><init>(II)V

    throw v1

    :cond_ea
    new-instance v0, Ljava/lang/ArrayIndexOutOfBoundsException;

    const/16 v1, 0x25

    new-instance v3, Ljava/lang/StringBuilder;

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

    const-string v1, "Failed writing "

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

    move-result-object v1

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

    move-result-object v1

    const-string v3, " at index "

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

    move-result-object v1

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

    move-result-object v1

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

    move-result-object v1

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

    throw v0

    :cond_10f
    move v0, v2

    goto/16 :goto_27
.end method