var addkey = (const) [ 0x2E, 0x30, 0x88, 0xC9, 0xEC, 0x29, 0x90, 0xDE, 0x05, 0x06, 0x31, 0x99, 0x3D, 0x05, 0xD2, 0xBB, 0xC0, 0x20, 0x26, 0xB3, 0xA7, 0x40, 0x7A, 0x17, 0x18, 0xC4, 0x64, 0xF6, 0x14, 0x48, 0xEF, 0x02, 0x83, 0x98, 0xCC, 0x9E, 0x02, 0xE9, 0x5D, 0x60, 0x10, 0x93, 0xD9, 0x53, 0x20, 0xBD, 0x0B, 0x0C, 0x62, 0x32, 0x7B, 0x0A, 0xA4, 0x77, 0x81, 0x41, 0x4C, 0x66, 0x4F, 0x81, 0xF4 ]; Storages.setXP3ArchiveExtractionFilter(function(h,o,b,l){ var k = h & 0x7FFFFFFF; var t = []; t[31] = 0; for(var i = 0; i < 31; ++i) { t[i] = k; k = (k << 23) | (k >> 8); k &= 0xFFFFFFFF; } for(var i = 0; i < l; ++i) { var off = o + i; b[i] ^= t[off % 31]; b[i] += addkey[off % 0x3D]; } });