package androidx.datastore.preferences.protobuf;

import java.nio.charset.Charset;
import java.util.Arrays;
import n4.u0;
import v0.AbstractC1664c;

/* JADX INFO: loaded from: classes.dex */
public final class i0 extends U2.a {

    /* JADX INFO: renamed from: h, reason: collision with root package name */
    public final /* synthetic */ int f8094h;

    public /* synthetic */ i0(int i) {
        this.f8094h = i;
    }

    /* JADX WARN: Removed duplicated region for block: B:20:0x0054  */
    @Override // U2.a
    /*
        Code decompiled incorrectly, please refer to instructions dump.
    */
    public final String u(byte[] bArr, int i, int i5) throws C0446y {
        int i8 = i;
        switch (this.f8094h) {
            case u0.f15495q /* 0 */:
                if ((i8 | i5 | ((bArr.length - i8) - i5)) < 0) {
                    throw new ArrayIndexOutOfBoundsException(String.format("buffer length=%d, index=%d, size=%d", Integer.valueOf(bArr.length), Integer.valueOf(i8), Integer.valueOf(i5)));
                }
                int i9 = i8 + i5;
                char[] cArr = new char[i5];
                int i10 = 0;
                while (i8 < i9) {
                    byte b8 = bArr[i8];
                    if (b8 < 0) {
                        while (i8 < i9) {
                            int i11 = i8 + 1;
                            byte b9 = bArr[i8];
                            if (b9 >= 0) {
                                int i12 = i10 + 1;
                                cArr[i10] = (char) b9;
                                while (i11 < i9) {
                                    byte b10 = bArr[i11];
                                    if (b10 >= 0) {
                                        i11++;
                                        cArr[i12] = (char) b10;
                                        i12++;
                                    } else {
                                        i10 = i12;
                                        i8 = i11;
                                    }
                                }
                                i10 = i12;
                                i8 = i11;
                            } else if (b9 < -32) {
                                if (i11 >= i9) {
                                    throw C0446y.a();
                                }
                                i8 += 2;
                                byte b11 = bArr[i11];
                                int i13 = i10 + 1;
                                if (b9 < -62 || AbstractC1664c.v(b11)) {
                                    throw C0446y.a();
                                }
                                cArr[i10] = (char) ((b11 & 63) | ((b9 & 31) << 6));
                                i10 = i13;
                            } else if (b9 < -16) {
                                if (i11 >= i9 - 1) {
                                    throw C0446y.a();
                                }
                                int i14 = i8 + 2;
                                byte b12 = bArr[i11];
                                i8 += 3;
                                byte b13 = bArr[i14];
                                int i15 = i10 + 1;
                                if (AbstractC1664c.v(b12) || ((b9 == -32 && b12 < -96) || ((b9 == -19 && b12 >= -96) || AbstractC1664c.v(b13)))) {
                                    throw C0446y.a();
                                }
                                cArr[i10] = (char) (((b12 & 63) << 6) | ((b9 & 15) << 12) | (b13 & 63));
                                i10 = i15;
                            } else {
                                if (i11 >= i9 - 2) {
                                    throw C0446y.a();
                                }
                                byte b14 = bArr[i11];
                                int i16 = i8 + 3;
                                byte b15 = bArr[i8 + 2];
                                i8 += 4;
                                byte b16 = bArr[i16];
                                int i17 = i10 + 1;
                                if (AbstractC1664c.v(b14) || (((b14 + 112) + (b9 << 28)) >> 30) != 0 || AbstractC1664c.v(b15) || AbstractC1664c.v(b16)) {
                                    throw C0446y.a();
                                }
                                int i18 = ((b14 & 63) << 12) | ((b9 & 7) << 18) | ((b15 & 63) << 6) | (b16 & 63);
                                cArr[i10] = (char) ((i18 >>> 10) + 55232);
                                cArr[i17] = (char) ((i18 & 1023) + 56320);
                                i10 += 2;
                            }
                        }
                        return new String(cArr, 0, i10);
                    }
                    i8++;
                    cArr[i10] = (char) b8;
                    i10++;
                }
                while (i8 < i9) {
                }
                return new String(cArr, 0, i10);
            default:
                Charset charset = AbstractC0444w.f8140a;
                String str = new String(bArr, i8, i5, charset);
                if (str.indexOf(65533) >= 0 && !Arrays.equals(str.getBytes(charset), Arrays.copyOfRange(bArr, i8, i5 + i8))) {
                    throw C0446y.a();
                }
                return str;
        }
    }

    @Override // U2.a
    public final int z(String str, byte[] bArr, int i, int i5) {
        int i8;
        int i9;
        char cCharAt;
        long j8;
        long j9;
        long j10;
        int i10;
        char cCharAt2;
        switch (this.f8094h) {
            case u0.f15495q /* 0 */:
                int length = str.length();
                int i11 = i5 + i;
                int i12 = 0;
                while (i12 < length && (i9 = i12 + i) < i11 && (cCharAt = str.charAt(i12)) < 128) {
                    bArr[i9] = (byte) cCharAt;
                    i12++;
                }
                if (i12 == length) {
                    return i + length;
                }
                int i13 = i + i12;
                while (i12 < length) {
                    char cCharAt3 = str.charAt(i12);
                    if (cCharAt3 < 128 && i13 < i11) {
                        bArr[i13] = (byte) cCharAt3;
                        i13++;
                    } else if (cCharAt3 < 2048 && i13 <= i11 - 2) {
                        int i14 = i13 + 1;
                        bArr[i13] = (byte) ((cCharAt3 >>> 6) | 960);
                        i13 += 2;
                        bArr[i14] = (byte) ((cCharAt3 & '?') | 128);
                    } else {
                        if ((cCharAt3 >= 55296 && 57343 >= cCharAt3) || i13 > i11 - 3) {
                            if (i13 > i11 - 4) {
                                if (55296 <= cCharAt3 && cCharAt3 <= 57343 && ((i8 = i12 + 1) == str.length() || !Character.isSurrogatePair(cCharAt3, str.charAt(i8)))) {
                                    throw new j0(i12, length);
                                }
                                throw new ArrayIndexOutOfBoundsException("Failed writing " + cCharAt3 + " at index " + i13);
                            }
                            int i15 = i12 + 1;
                            if (i15 != str.length()) {
                                char cCharAt4 = str.charAt(i15);
                                if (Character.isSurrogatePair(cCharAt3, cCharAt4)) {
                                    int codePoint = Character.toCodePoint(cCharAt3, cCharAt4);
                                    bArr[i13] = (byte) ((codePoint >>> 18) | 240);
                                    bArr[i13 + 1] = (byte) (((codePoint >>> 12) & 63) | 128);
                                    int i16 = i13 + 3;
                                    bArr[i13 + 2] = (byte) (((codePoint >>> 6) & 63) | 128);
                                    i13 += 4;
                                    bArr[i16] = (byte) ((codePoint & 63) | 128);
                                    i12 = i15;
                                } else {
                                    i12 = i15;
                                }
                            }
                            throw new j0(i12 - 1, length);
                        }
                        bArr[i13] = (byte) ((cCharAt3 >>> '\f') | 480);
                        int i17 = i13 + 2;
                        bArr[i13 + 1] = (byte) (((cCharAt3 >>> 6) & 63) | 128);
                        i13 += 3;
                        bArr[i17] = (byte) ((cCharAt3 & '?') | 128);
                    }
                    i12++;
                }
                return i13;
            default:
                long j11 = i;
                long j12 = ((long) i5) + j11;
                int length2 = str.length();
                if (length2 > i5 || bArr.length - i5 < i) {
                    throw new ArrayIndexOutOfBoundsException("Failed writing " + str.charAt(length2 - 1) + " at index " + (i + i5));
                }
                int i18 = 0;
                while (true) {
                    j8 = 1;
                    if (i18 < length2 && (cCharAt2 = str.charAt(i18)) < 128) {
                        h0.j(bArr, j11, (byte) cCharAt2);
                        i18++;
                        j11 = 1 + j11;
                    }
                }
                if (i18 != length2) {
                    while (i18 < length2) {
                        char cCharAt5 = str.charAt(i18);
                        if (cCharAt5 < 128 && j11 < j12) {
                            h0.j(bArr, j11, (byte) cCharAt5);
                            j10 = j12;
                            j9 = j8;
                            j11 += j8;
                        } else if (cCharAt5 >= 2048 || j11 > j12 - 2) {
                            j9 = j8;
                            if ((cCharAt5 >= 55296 && 57343 >= cCharAt5) || j11 > j12 - 3) {
                                j10 = j12;
                                if (j11 > j10 - 4) {
                                    if (55296 <= cCharAt5 && cCharAt5 <= 57343 && ((i10 = i18 + 1) == length2 || !Character.isSurrogatePair(cCharAt5, str.charAt(i10)))) {
                                        throw new j0(i18, length2);
                                    }
                                    throw new ArrayIndexOutOfBoundsException("Failed writing " + cCharAt5 + " at index " + j11);
                                }
                                int i19 = i18 + 1;
                                if (i19 != length2) {
                                    char cCharAt6 = str.charAt(i19);
                                    if (Character.isSurrogatePair(cCharAt5, cCharAt6)) {
                                        int codePoint2 = Character.toCodePoint(cCharAt5, cCharAt6);
                                        h0.j(bArr, j11, (byte) ((codePoint2 >>> 18) | 240));
                                        h0.j(bArr, j11 + j9, (byte) (((codePoint2 >>> 12) & 63) | 128));
                                        long j13 = j11 + 3;
                                        h0.j(bArr, j11 + 2, (byte) (((codePoint2 >>> 6) & 63) | 128));
                                        j11 += 4;
                                        h0.j(bArr, j13, (byte) ((codePoint2 & 63) | 128));
                                        i18 = i19;
                                    } else {
                                        i18 = i19;
                                    }
                                }
                                throw new j0(i18 - 1, length2);
                            }
                            h0.j(bArr, j11, (byte) ((cCharAt5 >>> '\f') | 480));
                            j10 = j12;
                            long j14 = j11 + 2;
                            h0.j(bArr, j11 + j9, (byte) (((cCharAt5 >>> 6) & 63) | 128));
                            j11 += 3;
                            h0.j(bArr, j14, (byte) ((cCharAt5 & '?') | 128));
                        } else {
                            j9 = j8;
                            long j15 = j11 + j9;
                            h0.j(bArr, j11, (byte) ((cCharAt5 >>> 6) | 960));
                            j11 += 2;
                            h0.j(bArr, j15, (byte) ((cCharAt5 & '?') | 128));
                            j10 = j12;
                        }
                        i18++;
                        j8 = j9;
                        j12 = j10;
                    }
                }
                return (int) j11;
        }
    }
}
