翰林优商.apk(点击下载) / b.java


package com.baidu.liantian.f;

import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.security.DigestException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/* compiled from: MP4Transform */
public final class b {
    public static final byte[] a = "ftyp".getBytes();
    public static final byte[] b = "mdat".getBytes();
    public static final byte[] c = "moov".getBytes();
    public static final byte[] d = "free".getBytes();

    private static int a(byte[] bArr, int i, int i2, byte[] bArr2, int i3) {
        if (bArr == null || bArr.length <= 0) {
            return -1;
        }
        try {
            MessageDigest instance = MessageDigest.getInstance("MD5");
            instance.update(bArr, i, i2);
            return instance.digest(bArr2, i3, 16);
        } catch (DigestException | NoSuchAlgorithmException e) {
            throw new RuntimeException("NoSuchAlgorithmException", e);
        }
    }

    private static byte[] a(byte[] bArr, int i, int i2, int i3) {
        for (int i4 = i; i4 < i + i2; i4++) {
            bArr[i4] = (byte) (bArr[i4] ^ i3);
        }
        return bArr;
    }

    private static byte[] a(byte[] bArr, int i, int i2) {
        byte[] bArr2 = new byte[i2];
        System.arraycopy(bArr, i, bArr2, 0, i2);
        return bArr2;
    }

    public static byte[][] a(byte[] bArr) throws Exception {
        int i;
        int i2;
        if (bArr == null || bArr.length < 4) {
            return null;
        }
        int length = bArr.length;
        byte[][] bArr2 = new byte[2][];
        int i3 = 0;
        int a2 = a(bArr, 0);
        int i4 = a2 - 8;
        int i5 = i4 + 16 + 4 + 4;
        int i6 = a2 + 0;
        int i7 = 0;
        int i8 = 0;
        int i9 = 0;
        int i10 = 0;
        int i11 = 0;
        int i12 = 0;
        while (i6 < length) {
            int a3 = a(bArr, i6);
            if (a3 == 1) {
                int i13 = i6 + 8;
                long j = -1;
                if (bArr != null && bArr.length - i13 >= 8) {
                    byte[] a4 = a(bArr, i13, 8);
                    if (a4.length == 8) {
                        ByteBuffer wrap = ByteBuffer.wrap(a4, i3, 8);
                        wrap.order(ByteOrder.BIG_ENDIAN);
                        j = wrap.getLong();
                    }
                }
                i = length;
                a3 = (int) j;
                i2 = 8;
            } else {
                i = length;
                i2 = 0;
            }
            int i14 = i6 + 4;
            String str = (bArr == null || bArr.length - i14 < 4) ? null : new String(a(bArr, i14, 4));
            str.hashCode();
            if (str.equals("mdat")) {
                i12 = (a3 - 8) - i2;
                i10 = a3;
                i9 = i6;
            } else if (str.equals("moov")) {
                i11 = (a3 - 8) - i2;
                i8 = a3;
                i7 = i6;
            }
            i6 += a3;
            length = i;
            i3 = 0;
        }
        if (i7 + i8 > length || i9 + i10 > length) {
            return null;
        }
        long currentTimeMillis = System.currentTimeMillis();
        int i15 = i11 + i5;
        int i16 = i15 + 40;
        byte[] array = ByteBuffer.allocate(i16).order(ByteOrder.LITTLE_ENDIAN).putLong(currentTimeMillis).order(ByteOrder.BIG_ENDIAN).putInt(i5).putInt(length).putInt(i7).putInt(i8).putInt(i9).putInt(i10).put(bArr, 8, i4).put(bArr, i7 + (i8 - i11), i11).putLong(0).putLong(0).array();
        int i17 = i12 + 40;
        byte[] array2 = ByteBuffer.allocate(i17).order(ByteOrder.LITTLE_ENDIAN).putLong(currentTimeMillis).put(bArr, i9 + (i10 - i12), i12).putLong(0).putLong(0).array();
        int i18 = i17 - 32;
        a(array, 8, i15, array2, i18);
        a(array, 8, i15, array[0]);
        a(array2, i18, 16, bArr[8]);
        int i19 = i16 - 32;
        a(array2, 8, i12, array, i19);
        a(array2, 8, i12, array[1]);
        a(array, i19, 16, bArr[10]);
        int i20 = i16 - 16;
        int i21 = i17 - 16;
        a(array, 0, i20, array2, i21);
        a(array2, i21, 16, bArr[4]);
        a(array2, 0, i21, array, i20);
        a(array, i20, 16, bArr[6]);
        bArr2[0] = array;
        bArr2[1] = array2;
        return bArr2;
    }

    private static int a(byte[] bArr, int i) throws Exception {
        if (bArr == null || bArr.length - i < 4) {
            return -1;
        }
        byte[] a2 = a(bArr, i, 4);
        if (a2.length != 4) {
            return -1;
        }
        ByteBuffer wrap = ByteBuffer.wrap(a2, 0, 4);
        wrap.order(ByteOrder.BIG_ENDIAN);
        return wrap.getInt();
    }
}