package defpackage;

import java.io.Closeable;
import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.channels.FileChannel;
import java.util.NoSuchElementException;
import java.util.logging.Level;
import java.util.logging.Logger;

/* renamed from: ᵖᵵ, reason: contains not printable characters */
/* loaded from: classes3.dex */
public final class C2405 implements Closeable {

    /* renamed from: ˀᵗᵝᵭ, reason: contains not printable characters */
    public static final Logger f9384 = Logger.getLogger(C2405.class.getName());

    /* renamed from: ᵡⁱᵥ, reason: contains not printable characters */
    public final byte[] f9385;

    /* renamed from: ᵢˇᵭ, reason: contains not printable characters */
    public int f9386;

    /* renamed from: ᵤᵙᵷ, reason: contains not printable characters */
    public C4697 f9387;

    /* renamed from: ᵧᵾˀˈ, reason: contains not printable characters */
    public final RandomAccessFile f9388;

    /* renamed from: ᵾᵬ, reason: contains not printable characters */
    public C4697 f9389;

    /* renamed from: ᵿʗᵝʽ, reason: contains not printable characters */
    public int f9390;

    public C2405(File file) throws IOException {
        byte[] bArr = new byte[16];
        this.f9385 = bArr;
        if (!file.exists()) {
            File file2 = new File(file.getPath() + ".tmp");
            RandomAccessFile randomAccessFile = new RandomAccessFile(file2, "rwd");
            try {
                randomAccessFile.setLength(4096L);
                randomAccessFile.seek(0L);
                byte[] bArr2 = new byte[16];
                int[] iArr = {4096, 0, 0, 0};
                int i = 0;
                for (int i2 = 0; i2 < 4; i2++) {
                    m6159(bArr2, i, iArr[i2]);
                    i += 4;
                }
                randomAccessFile.write(bArr2);
                randomAccessFile.close();
                if (!file2.renameTo(file)) {
                    C0910.m3045("Rename failed!");
                    throw null;
                }
            } catch (Throwable th) {
                randomAccessFile.close();
                throw th;
            }
        }
        RandomAccessFile randomAccessFile2 = new RandomAccessFile(file, "rwd");
        this.f9388 = randomAccessFile2;
        randomAccessFile2.seek(0L);
        randomAccessFile2.readFully(bArr);
        int iM6160 = m6160(0, bArr);
        this.f9386 = iM6160;
        if (iM6160 <= randomAccessFile2.length()) {
            this.f9390 = m6160(4, bArr);
            int iM61602 = m6160(8, bArr);
            int iM61603 = m6160(12, bArr);
            this.f9389 = m6169(iM61602);
            this.f9387 = m6169(iM61603);
            return;
        }
        throw new IOException("File is truncated. Expected length: " + this.f9386 + ", Actual length: " + randomAccessFile2.length());
    }

    /* renamed from: ˎᵬˀ, reason: contains not printable characters */
    public static void m6159(byte[] bArr, int i, int i2) {
        bArr[i] = (byte) (i2 >> 24);
        bArr[i + 1] = (byte) (i2 >> 16);
        bArr[i + 2] = (byte) (i2 >> 8);
        bArr[i + 3] = (byte) i2;
    }

    /* renamed from: ᵡˎ, reason: contains not printable characters */
    public static int m6160(int i, byte[] bArr) {
        return ((bArr[i] & 255) << 24) + ((bArr[i + 1] & 255) << 16) + ((bArr[i + 2] & 255) << 8) + (bArr[i + 3] & 255);
    }

    @Override // java.io.Closeable, java.lang.AutoCloseable
    public final synchronized void close() {
        this.f9388.close();
    }

    public final String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(C2405.class.getSimpleName());
        sb.append("[fileLength=");
        sb.append(this.f9386);
        sb.append(", size=");
        sb.append(this.f9390);
        sb.append(", first=");
        sb.append(this.f9389);
        sb.append(", last=");
        sb.append(this.f9387);
        sb.append(", element lengths=[");
        try {
            m6168(new C4164(sb));
        } catch (IOException e) {
            f9384.log(Level.WARNING, "read error", (Throwable) e);
        }
        sb.append("]]");
        return sb.toString();
    }

    /* renamed from: ˀᵗᵩ, reason: contains not printable characters */
    public final void m6161(byte[] bArr, int i, int i2) throws IOException {
        int iM6172 = m6172(i);
        int i3 = iM6172 + i2;
        int i4 = this.f9386;
        RandomAccessFile randomAccessFile = this.f9388;
        if (i3 <= i4) {
            randomAccessFile.seek(iM6172);
            randomAccessFile.write(bArr, 0, i2);
            return;
        }
        int i5 = i4 - iM6172;
        randomAccessFile.seek(iM6172);
        randomAccessFile.write(bArr, 0, i5);
        randomAccessFile.seek(16L);
        randomAccessFile.write(bArr, i5, i2 - i5);
    }

    /* renamed from: ˊʽˎ, reason: contains not printable characters */
    public final void m6162(int i, int i2, int i3, int i4) throws IOException {
        int[] iArr = {i, i2, i3, i4};
        int i5 = 0;
        int i6 = 0;
        while (true) {
            byte[] bArr = this.f9385;
            if (i5 >= 4) {
                RandomAccessFile randomAccessFile = this.f9388;
                randomAccessFile.seek(0L);
                randomAccessFile.write(bArr);
                return;
            } else {
                m6159(bArr, i6, iArr[i5]);
                i6 += 4;
                i5++;
            }
        }
    }

    /* renamed from: ˊᵸˊ, reason: contains not printable characters */
    public final void m6163(int i, int i2, int i3, byte[] bArr) throws IOException {
        int iM6172 = m6172(i);
        int i4 = iM6172 + i3;
        int i5 = this.f9386;
        RandomAccessFile randomAccessFile = this.f9388;
        if (i4 <= i5) {
            randomAccessFile.seek(iM6172);
            randomAccessFile.readFully(bArr, i2, i3);
            return;
        }
        int i6 = i5 - iM6172;
        randomAccessFile.seek(iM6172);
        randomAccessFile.readFully(bArr, i2, i6);
        randomAccessFile.seek(16L);
        randomAccessFile.readFully(bArr, i2 + i6, i3 - i6);
    }

    /* renamed from: ˌʾˀ, reason: contains not printable characters */
    public final void m6164(int i) throws IOException {
        int i2 = i + 4;
        int iM6167 = this.f9386 - m6167();
        if (iM6167 >= i2) {
            return;
        }
        int i3 = this.f9386;
        do {
            iM6167 += i3;
            i3 <<= 1;
        } while (iM6167 < i2);
        RandomAccessFile randomAccessFile = this.f9388;
        randomAccessFile.setLength(i3);
        randomAccessFile.getChannel().force(true);
        C4697 c4697 = this.f9387;
        int iM6172 = m6172(c4697.f17367 + 4 + c4697.f17369);
        if (iM6172 < this.f9389.f17367) {
            FileChannel channel = randomAccessFile.getChannel();
            channel.position(this.f9386);
            long j = iM6172 - 4;
            if (channel.transferTo(16L, j, channel) != j) {
                throw new AssertionError("Copied insufficient number of bytes!");
            }
        }
        int i4 = this.f9387.f17367;
        int i5 = this.f9389.f17367;
        if (i4 < i5) {
            int i6 = (this.f9386 + i4) - 16;
            m6162(i3, this.f9390, i5, i6);
            this.f9387 = new C4697(i6, this.f9387.f17369, 0);
        } else {
            m6162(i3, this.f9390, i5, i4);
        }
        this.f9386 = i3;
    }

    /* renamed from: ˏᵙ, reason: contains not printable characters */
    public final synchronized void m6165() {
        m6162(4096, 0, 0, 0);
        this.f9390 = 0;
        C4697 c4697 = C4697.f17366;
        this.f9389 = c4697;
        this.f9387 = c4697;
        if (this.f9386 > 4096) {
            RandomAccessFile randomAccessFile = this.f9388;
            randomAccessFile.setLength(4096L);
            randomAccessFile.getChannel().force(true);
        }
        this.f9386 = 4096;
    }

    /* renamed from: ˑᵥˁ, reason: contains not printable characters */
    public final synchronized void m6166() {
        try {
            if (m6170()) {
                throw new NoSuchElementException();
            }
            if (this.f9390 == 1) {
                m6165();
            } else {
                C4697 c4697 = this.f9389;
                int iM6172 = m6172(c4697.f17367 + 4 + c4697.f17369);
                m6163(iM6172, 0, 4, this.f9385);
                int iM6160 = m6160(0, this.f9385);
                m6162(this.f9386, this.f9390 - 1, iM6172, this.f9387.f17367);
                this.f9390--;
                this.f9389 = new C4697(iM6172, iM6160, 0);
            }
        } catch (Throwable th) {
            throw th;
        }
    }

    /* renamed from: ᵛˈᵤ, reason: contains not printable characters */
    public final int m6167() {
        if (this.f9390 == 0) {
            return 16;
        }
        C4697 c4697 = this.f9387;
        int i = c4697.f17367;
        int i2 = this.f9389.f17367;
        return i >= i2 ? (i - i2) + 4 + c4697.f17369 + 16 : (((i + 4) + c4697.f17369) + this.f9386) - i2;
    }

    /* renamed from: ᵞʡ, reason: contains not printable characters */
    public final synchronized void m6168(InterfaceC1251 interfaceC1251) {
        int iM6172 = this.f9389.f17367;
        for (int i = 0; i < this.f9390; i++) {
            C4697 c4697M6169 = m6169(iM6172);
            interfaceC1251.mo3795(new C1136(this, c4697M6169), c4697M6169.f17369);
            iM6172 = m6172(c4697M6169.f17367 + 4 + c4697M6169.f17369);
        }
    }

    /* renamed from: ᵡⁱᵥ, reason: contains not printable characters */
    public final C4697 m6169(int i) throws IOException {
        if (i == 0) {
            return C4697.f17366;
        }
        RandomAccessFile randomAccessFile = this.f9388;
        randomAccessFile.seek(i);
        return new C4697(i, randomAccessFile.readInt(), 0);
    }

    /* renamed from: ᵢˇᵭ, reason: contains not printable characters */
    public final synchronized boolean m6170() {
        return this.f9390 == 0;
    }

    /* renamed from: ᵥᵯˎ, reason: contains not printable characters */
    public final void m6171(byte[] bArr) {
        int iM6172;
        int length = bArr.length;
        synchronized (this) {
            if (length >= 0) {
                if (length <= bArr.length) {
                    m6164(length);
                    boolean zM6170 = m6170();
                    if (zM6170) {
                        iM6172 = 16;
                    } else {
                        C4697 c4697 = this.f9387;
                        iM6172 = m6172(c4697.f17367 + 4 + c4697.f17369);
                    }
                    C4697 c46972 = new C4697(iM6172, length, 0);
                    m6159(this.f9385, 0, length);
                    m6161(this.f9385, iM6172, 4);
                    m6161(bArr, iM6172 + 4, length);
                    m6162(this.f9386, this.f9390 + 1, zM6170 ? iM6172 : this.f9389.f17367, iM6172);
                    this.f9387 = c46972;
                    this.f9390++;
                    if (zM6170) {
                        this.f9389 = c46972;
                    }
                }
            }
            throw new IndexOutOfBoundsException();
        }
    }

    /* renamed from: ᵳᵹᵺˋ, reason: contains not printable characters */
    public final int m6172(int i) {
        int i2 = this.f9386;
        return i < i2 ? i : (i + 16) - i2;
    }
}
