decord/source/12476_inflate_table.js
2026-07-21 22:01:30 +00:00

173 lines
4.1 KiB
JavaScript

// Module ID: 12476
// Function ID: 95353
// Name: inflate_table
// Dependencies: []
// Module 12476 (inflate_table)
let closure_2 = [];
let closure_3 = [];
let closure_4 = [];
let closure_5 = [];
export default function inflate_table(arg0, arg1, arg2, arg3, arg4, arg5, arg6, bits) {
bits = bits.bits;
const buf16 = new require(dependencyMap[0]).Buf16(16);
const buf161 = new require(dependencyMap[0]).Buf16(16);
let num = 0;
do {
buf16[num] = 0;
num = num + 1;
} while (num <= 15);
for (let num2 = 0; num2 < arg3; num2 = num2 + 1) {
let tmp3 = arg1[arg2 + num2];
buf16[tmp3] = buf16[tmp3] + 1;
}
let num3 = 15;
let num4 = 15;
if (0 === buf16[15]) {
const diff = num3 - 1;
num4 = diff;
while (diff >= 1) {
num3 = diff;
num4 = diff;
if (0 !== buf16[diff]) {
break;
}
}
}
if (bits > num4) {
bits = num4;
}
if (0 === num4) {
arg4[+arg5] = 20971520;
arg4[++arg5 + 1] = 20971520;
bits.bits = 1;
return 0;
} else {
let num6 = 1;
if (1 < num4) {
let num5 = 1;
num6 = 1;
if (0 === buf16[1]) {
const sum = num5 + 1;
num6 = sum;
while (sum < num4) {
num5 = sum;
num6 = sum;
if (0 !== buf16[sum]) {
break;
}
}
}
}
if (bits < num6) {
bits = num6;
}
let num7 = 1;
let num8 = 1;
const diff1 = (num8 << 1) - buf16[num7];
while (diff1 >= 0) {
num7 = num7 + 1;
num8 = diff1;
if (num7 <= 15) {
continue;
} else {
if (diff1 > 0) {
let num29 = -1;
return -1;
}
buf161[1] = 0;
let num9 = 1;
do {
buf161[num9 + 1] = buf161[num9] + buf16[num9];
num9 = num9 + 1;
} while (num9 < 15);
for (let num10 = 0; num10 < arg3; num10 = num10 + 1) {
if (0 !== arg1[arg2 + num10]) {
let tmp7 = arg1[arg2 + num10];
let tmp8 = +buf161[tmp7];
buf161[tmp7] = tmp8 + 1;
arg6[tmp8] = num10;
}
}
let num11 = 19;
let tmp9 = arg6;
let num12 = 0;
let tmp10 = arg6;
let num13 = 0;
if (0 !== arg0) {
if (1 === arg0) {
tmp9 = closure_2;
tmp10 = closure_3;
num11 = 256;
num12 = -257;
num13 = -257;
} else {
tmp9 = closure_4;
tmp10 = closure_5;
num11 = -1;
num12 = 0;
num13 = 0;
}
}
let tmp11 = 1 << bits;
let diff2 = tmp11 - 1;
if (1 !== arg0) {
let num15 = 2;
let num16 = -1;
let num17 = 24;
let num18 = 592;
let num19 = 852;
let num20 = 96;
let num21 = -1;
let tmp13 = arg5;
let tmp14 = num6;
let num22 = 0;
let tmp15 = bits;
let num23 = 0;
let tmp16 = diff1;
let tmp17 = tmp11;
let num24 = 0;
if (2 === arg0) {
num21 = -1;
tmp13 = arg5;
tmp14 = num6;
num22 = 0;
tmp15 = bits;
num23 = 0;
let tmp18 = diff1;
let num25 = 0;
tmp17 = tmp11;
}
while (true) {
let diff3 = tmp14 - num23;
let tmp20 = num21;
let tmp21 = tmp13;
let tmp22 = tmp14;
let tmp23 = tmp15;
let tmp24 = num23;
let tmp25 = tmp17;
if (arg6[num22] < num11) {
let tmp28 = arg6[num22];
let num28 = 0;
} else {
let num26 = 96;
let num27 = 0;
if (arg6[num22] > num11) {
let tmp26 = tmp10[num13 + arg6[num22]];
let tmp27 = tmp9[num12 + arg6[num22]];
}
}
let tmp29 = 1 << tmp14 - num23;
let tmp30 = 1 << tmp15;
// break
}
} else {
let num14 = 852;
}
return 1;
}
}
return -1;
}
};