Files
discord-decomp/_bundle/inflate_table.js
T
2026-11-01 12:12:55 +02:00

295 lines
9.7 KiB
JavaScript

// Metro module 12723 (f12724).
import { Buf16 } from "./Module12712";
let c8767_2 = [3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0];
let c8767_3 = [16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78];
let c8767_4 = [1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, 0, 0];
let c8767_5 = [16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 64, 64];
module.exports = function inflate_table(a0, a1, a2, a3, a4, a5, a6, a7) {
let r48, r72, r78, r115, r132;
let bits = a7.bits;
const buf16 = new Buf16(16);
const buf162 = new Buf16(16);
let r5 = 0;
while (true) {
buf16[r5] = 0;
r5 = r5 + 1;
if (!(r5 <= 15)) {
const r64 = 0 < a3;
let r65 = 0;
if (r64) {
do {
const r67 = a1[a2 + r65];
buf16[r67] = buf16[r67] + 1;
r65 = r65 + 1;
} while (r65 < a3);
}
const r70 = buf16[15];
let r71 = 15;
let r18 = 15;
if (r70 === 0) {
do {
const r8 = r71 - 1;
r18 = r8;
if (!(1 <= r8)) {
break;
}
r72 = buf16[r8];
r71 = r8;
r18 = r71;
} while (r72 === 0);
}
if (bits > r18) {
bits = r18;
}
if (r18 === 0) {
const r172 = +a5;
a4[r172] = 20971520;
a4[+(r172 + 1)] = 20971520;
a7.bits = 1;
return 0;
}
let r0 = 1;
if (1 < r18) {
const r75 = buf16[1];
let r76 = 1;
r0 = 1;
if (r75 === 0) {
do {
const r77 = r76 + 1;
r0 = r77;
if (!(r77 < r18)) {
break;
}
r78 = buf16[r77];
r76 = r77;
r0 = r76;
} while (r78 === 0);
}
}
if (bits < r0) {
bits = r0;
}
let r11 = 1;
let r79 = 1;
while (true) {
const r82 = (r11 << 1) - buf16[r79];
const r12 = r79;
if (r82 < 0) {
return -1;
}
r79 = r12 + 1;
r11 = r82;
if (!(r79 <= 15)) {
L22: {
if (0 < r82) {
if (a0 !== 0 && r18 === 1) {
break L22;
}
return -1;
}
}
buf162[1] = 0;
let r85 = 1;
while (true) {
const r86 = r85 + 1;
buf162[r86] = buf162[r85] + buf16[r85];
r85 = r86;
if (!(r85 < 15)) {
const r89 = 0 < a3;
let r90 = 0;
if (r89) {
do {
const r92 = a1[a2 + r90];
const r93 = r90;
if (r92 !== 0) {
const r39 = a1[a2 + r93];
const r96 = +buf162[r39];
buf162[r39] = r96 + 1;
a6[r96] = r93;
}
r90 = r93 + 1;
} while (r90 < a3);
}
let r20 = 19;
let r19 = 0;
let r41 = a6;
let r21 = 0;
let r40 = a6;
if (a0 !== 0) {
if (a0 === 1) {
r40 = c8767_2;
r41 = c8767_3;
r19 = -257;
r20 = 256;
r21 = -257;
} else {
r40 = c8767_4;
r41 = c8767_5;
r20 = -1;
r19 = 0;
r21 = 0;
}
}
L66: {
const r98 = 1 << bits;
const r22 = r98 - 1;
const r28 = a0 === 1;
if (!(r28 && 852 < r98)) {
const r101 = a0 === 2;
let r14 = 0;
let r103 = r98;
let r104 = 0;
let r105 = bits;
let r106 = 0;
let r107 = r0;
let r108 = a5;
let r109 = -1;
if (r101) {
r14 = 0;
r104 = 0;
r105 = bits;
r106 = 0;
r107 = r0;
r108 = a5;
r109 = -1;
r103 = r98;
if (592 < r103) {
break L66;
}
}
loop36: while (true) {
const r49 = r107 - r104;
const r47 = a6[r106];
const r9 = r14;
const r15 = r103;
const r110 = r104;
const r46 = r105;
const r111 = r106;
const r112 = r107;
const r113 = r108;
const r6 = r109;
if (r47 < r20) {
r48 = a6[r111];
r115 = 0;
} else {
const r26 = a6[r111] > r20;
r48 = 0;
r115 = 96;
if (r26) {
r115 = r41[r19 + a6[r111]];
r48 = r40[r21 + a6[r111]];
}
}
const r119 = 1 << r112 - r110;
const r4 = 1 << r46;
let r120 = r4;
while (true) {
const r121 = r113 + (r9 >> r110);
const r122 = r120 - r119;
a4[r121 + r122] = r49 << 24 | r115 << 16 | r48;
r120 = r122;
if (r120 === 0) {
const r127 = 1 << r112 - 1;
const r128 = r9 & r127;
let r129 = r127;
let r130 = r129;
if (r128) {
do {
const r131 = r129 >> 1;
r132 = r9 & r131;
r129 = r131;
r130 = r129;
} while (r132);
}
const r133 = r130 !== 0 ? (r9 & r130 - 1) + r130 : 0;
const r136 = r111 + 1;
const r138 = buf16[r112] - 1;
buf16[r112] = r138;
let r139 = r112;
if (r138 == 0) {
if (r112 === r18) {
if (r133 !== 0) {
a4[r113 + r133] = 4194304 | r112 - r110 << 24;
}
a7.bits = bits;
return 0;
}
r139 = a1[a2 + a6[r136]];
}
r14 = r133;
r103 = r15;
r104 = r110;
r105 = r46;
r106 = r136;
r107 = r139;
r108 = r113;
r109 = r6;
if (!(r139 > bits)) {
continue loop36;
}
const r142 = r133 & r22;
r14 = r133;
r103 = r15;
r104 = r110;
r105 = r46;
r106 = r136;
r107 = r139;
r108 = r113;
r109 = r6;
if (r142 === r109) {
continue loop36;
}
let r143 = r110;
if (r143 === 0) {
r143 = bits;
}
const r144 = r113 + r4;
const r145 = r139 - r143;
const r146 = 1 << r145;
const r147 = r145 + r143;
let r148 = r145;
if (r147 < r18) {
let r151 = r146 - buf16[r145 + r143];
let r152 = r145;
r148 = r152;
while (!(r151 <= 0)) {
const r153 = r152 + 1;
const r52 = r153 + r143;
const r154 = r151;
r148 = r153;
if (!(r52 < r18)) {
break;
}
r151 = (r154 << 1) - buf16[r153 + r143];
r152 = r153;
r148 = r152;
}
}
const r159 = r15 + (1 << r148);
if (!(r28 && 852 < r159) && !(r101 && 592 < r159)) {
a4[r142] = bits << 24 | r148 << 16 | r144 - a5;
r14 = r133;
r103 = r159;
r104 = r143;
r105 = r148;
r106 = r136;
r107 = r139;
r108 = r144;
r109 = r142;
continue loop36;
}
return 1;
}
}
}
}
}
return 1;
}
}
}
}
}
}
};