48 lines
1.0 KiB
JavaScript
48 lines
1.0 KiB
JavaScript
// Metro module 12718 (f12719).
|
|
module.exports = function adler32(a0, a1, a2, a3) {
|
|
let r22, r23;
|
|
L6: {
|
|
let r14 = a2;
|
|
let r13 = a3;
|
|
const r9 = 65535 & a0;
|
|
let r5 = a0 >>> 16 & 65535;
|
|
let r21 = r9;
|
|
r22 = r5;
|
|
r23 = r21;
|
|
if (a2 !== 0) {
|
|
loop1: while (true) {
|
|
const r12 = r14 > 2000;
|
|
let r0 = r5;
|
|
let r1 = r21;
|
|
let r19 = r13;
|
|
const r24 = r14;
|
|
let r18 = r12 ? 2000 : r24;
|
|
const r25 = r24 - r18;
|
|
while (true) {
|
|
const r20 = +r19;
|
|
const r17 = r20 + 1;
|
|
const r3 = r1 + a1[r20] | 0;
|
|
const r28 = r0 + r3 | 0;
|
|
r18 = r18 - 1;
|
|
r0 = r28;
|
|
r1 = r3;
|
|
r19 = r17;
|
|
if (!r18) {
|
|
r21 = r3 % 65521;
|
|
r5 = r28 % 65521;
|
|
r13 = r17;
|
|
r22 = r5;
|
|
r23 = r21;
|
|
r14 = r25;
|
|
if (r14 !== 0) {
|
|
continue loop1;
|
|
}
|
|
break L6;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return r23 | r22 << 16;
|
|
};
|