// Token: 0x060012BE RID: 4798 RVA: 0x0006D6F8 File Offset: 0x0006B8F8 private void WriteLzxPatch(Stream stream, DataPatching patchGenerator, byte[] oldBuffer, int oldSize, byte[] newBuffer, int newSize) { if (oldBuffer.Length != oldSize) { oldBuffer = DiffFileGenerator.GetArraySegment(oldBuffer, 0, oldSize); } if (newBuffer.Length != newSize) { newBuffer = DiffFileGenerator.GetArraySegment(newBuffer, 0, newSize); } byte[] array; if (patchGenerator.TryGenerate(oldBuffer, newBuffer, out array)) { uint crc = OABCRC.ComputeCRC(OABCRC.DefaultSeed, newBuffer); this.WritePatchBlock(stream, oldBuffer.Length, newBuffer.Length, array, array.Length, crc); return; } byte[][] array2 = DiffFileGenerator.SplitByteArray(oldBuffer); byte[][] array3 = DiffFileGenerator.SplitByteArray(newBuffer); for (int i = 0; i < 2; i++) { if (patchGenerator.TryGenerate(array2[i], array3[i], out array)) { uint crc2 = OABCRC.ComputeCRC(OABCRC.DefaultSeed, array3[i]); this.WritePatchBlock(stream, array2[i].Length, array3[i].Length, array, array.Length, crc2); } } }
// Token: 0x060012BF RID: 4799 RVA: 0x0006D7B4 File Offset: 0x0006B9B4 private static byte[][] SplitByteArray(byte[] byteArray) { int num = byteArray.Length / 2; int length = byteArray.Length - num; return(new byte[][] { DiffFileGenerator.GetArraySegment(byteArray, 0, num), DiffFileGenerator.GetArraySegment(byteArray, num, length) }); }