Skip to content

Commit

Permalink
crc()
Browse files Browse the repository at this point in the history
  • Loading branch information
jazz-soft committed Nov 1, 2024
1 parent 4f0b59e commit 9cb441f
Showing 1 changed file with 44 additions and 0 deletions.
44 changes: 44 additions & 0 deletions jazz-mxml.js
Original file line number Diff line number Diff line change
Expand Up @@ -171,5 +171,49 @@ function find(n, f) {
else if (typeof x == 'object') f(x);
};
}
var T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, Ta, Tb, Tc, Td, Te, Tf;
(function() {
var c, v, n;
var A = [], TT = [];
T0 = [];
for (n = 0; n < 256; n++) {
c = n;
c = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));
c = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));
c = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));
c = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));
c = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));
c = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));
c = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));
c = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));
T0[n] = c;
}
for (n = 0; n != 256; n++) A[n] = T0[n];
for (n = 0; n != 256; n++) {
v = T0[n];
for (c = 256 + n; c < 4096; c += 256) v = A[c] = (v >>> 8) ^ T0[v & 0xFF];
}
for (n = 1; n != 16; n++) TT[n - 1] = A.slice(n * 256, n * 256 + 256);
T1 = TT[0]; T2 = TT[1]; T3 = TT[2]; T4 = TT[3]; T5 = TT[4];
T6 = TT[5]; T7 = TT[6]; T8 = TT[7]; T9 = TT[8]; Ta = TT[9];
Tb = TT[10]; Tc = TT[11]; Td = TT[12]; Te = TT[13]; Tf = TT[14];
})();
function crc(B) {
var C = -1;
var L = B.length - 15;
var i;
for(i = 0; i < L;) {
C = Tf[B[i++] ^ (C & 255)] ^
Te[B[i++] ^ ((C >> 8) & 255)] ^
Td[B[i++] ^ ((C >> 16) & 255)] ^
Tc[B[i++] ^ (C >>> 24)] ^
Tb[B[i++]] ^ Ta[B[i++]] ^ T9[B[i++]] ^ T8[B[i++]] ^
T7[B[i++]] ^ T6[B[i++]] ^ T5[B[i++]] ^ T4[B[i++]] ^
T3[B[i++]] ^ T2[B[i++]] ^ T1[B[i++]] ^ T0[B[i++]];
}
L += 15;
while (i < L) C = (C >>> 8) ^ T0[(C ^ B[i++]) & 0xFF];
return ~C;
}

module.exports = MXML;

0 comments on commit 9cb441f

Please sign in to comment.