This commit is contained in:
janisslsm committed 2026-11-01 12:12:55 +02:00
1 parent 1781d25a15
commit 732c0ad767
33051 files changed
+2591613 -3019689

No files matched your search

+146
View File
@@ -0,0 +1,146 @@
// Metro module 512 (f513).
export const read = function(a0, a1, a2, a3, a4) {
let r50, r51;
const r10 = 8 * a4 - a3;
const r1 = a2 ? a4 - 1 : 0;
let r22 = 1;
const r3 = a2 ? -1 : 1;
const r9 = r10 - 1;
const r24 = a0[a1 + r1];
let r0 = r1 + r3;
const r6 = r24 & 127;
const r27 = r24 >> 7;
let r29 = -7 + r9;
let r30 = r6;
let r2 = r0;
let r31 = r30;
let r8 = r29;
while (0 < r8) {
r30 = 256 * r30 + a0[a1 + r0];
r0 = r0 + r3;
r29 = r29 - 8;
r2 = r0;
r31 = r30;
r8 = r29;
}
const r34 = -r8;
let r37 = r31 & (1 << r34) - 1;
let r17 = r8 + a3;
let r38 = r37;
if (r17 > 0) {
do {
r37 = 256 * r37 + a0[a1 + r2];
r2 = r2 + r3;
r17 = r17 - 8;
r38 = r37;
} while (0 < r17);
}
const r42 = (1 << r9) - 1;
const r43 = r42 >> 1;
const r44 = r31 >> r34;
if (r44 === 0) {
r51 = 1 - r43;
r50 = r38;
} else {
if (r44 === r42) {
return r38 ? NaN : Infinity * (r27 ? -1 : 1);
}
r50 = r38 + Math.pow(2, a3);
r51 = r44 - r43;
}
if (r27) {
r22 = -1;
}
return r22 * r50 * Math.pow(2, r51 - a3);
};
export const write = function(a0, a1, a2, a3, a4, a5) {
let r8, r37, r70, r71;
const r1 = 8 * a5 - a4;
const r19 = a4 === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;
const r32 = a3 ? 0 : a5 - 1;
const r34 = a3 ? 1 : -1;
L10: {
if (!(a1 < 0)) {
r8 = 0;
if (a1 !== 0) {
break L10;
}
r8 = 1 / a1 < 0 ? 1 : 0;
} else {
r8 = 1;
}
}
L26: {
r37 = r1 - 1;
const r39 = (1 << r37) - 1;
const r43 = Math.abs(a1);
if (!isNaN(r43) && r43 !== Infinity) {
const r52 = Math.floor(Math.log(r43) / Math.LN2);
const r56 = Math.pow(2, -r52);
const r21 = r43 * r56;
let r57 = r56;
let r58 = r52;
if (r21 < 1) {
r58 = r52 - 1;
r57 = r56 * 2;
}
const r6 = r39 >> 1;
const r65 = r43 + (r58 + r6 >= 1 ? r19 / r57 : r19 * Math.pow(2, 1 - r6));
const r66 = r65 * r57;
let r67 = r57;
let r68 = r58;
if (r66 >= 2) {
r68 = r58 + 1;
r67 = r57 / 2;
}
const r69 = r68 + r6;
r70 = 0;
r71 = r39;
if (r69 >= r71) {
break L26;
}
if (r68 + r6 >= 1) {
r70 = (r65 * r67 - 1) * Math.pow(2, a4);
r71 = r68 + r6;
break L26;
}
r70 = r65 * Math.pow(2, r6 - 1) * Math.pow(2, a4);
r71 = 0;
} else {
r70 = isNaN(r43) ? 1 : 0;
r71 = r39;
}
}
let r91 = r70;
let r92 = r32;
let r93 = a4;
let r94 = r92;
let r95 = r91;
let r96 = a4;
if (a4 >= 8) {
do {
a0[a2 + r92] = 255 & r91;
r92 = r92 + r34;
r91 = r91 / 256;
r93 = r93 - 8;
r94 = r92;
r95 = r91;
r96 = r93;
} while (8 <= r96);
}
let r100 = r71 << r96 | r95;
let r101 = r37 + r96;
let r102 = r94;
let r103 = r102;
if (r101 > 0) {
do {
a0[a2 + r102] = 255 & r100;
r102 = r102 + r34;
r100 = r100 / 256;
r101 = r101 - 8;
r103 = r102;
} while (0 < r101);
}
const r107 = a2 + r103 - r34;
a0[r107] = a0[r107] | 128 * r8;
};