decord/source/512_read.js
2026-07-29 08:29:29 +00:00

181 lines
4.2 KiB
JavaScript

// Module ID: 512
// Function ID: 513
// Name: read
// Dependencies: []
// Module 512 (read)
arg5.read = (arg0, arg1, arg2, exponent) => {
let num = 0;
const diff = 8 * arg4 - exponent;
if (arg2) {
num = arg4 - 1;
}
let num3 = 1;
let num4 = 1;
if (arg2) {
num4 = -1;
}
const diff1 = diff - num3;
let sum = num + num4;
let sum1 = -7 + diff1;
let sum2 = tmp5;
let sum5 = sum;
let tmp10 = tmp5;
let tmp11 = sum1;
if (0 < sum1) {
do {
sum2 = 256 * sum2 + arg0[arg1 + sum];
sum = sum + num4;
sum1 = sum1 - 8;
sum5 = sum;
tmp10 = sum2;
tmp11 = sum1;
} while (0 < sum1);
}
let sum4 = tmp10 & (num3 << tmp12) - num3;
let sum3 = tmp11 + exponent;
let tmp15 = sum4;
if (sum3 > 0) {
do {
sum4 = 256 * sum4 + arg0[arg1 + sum5];
sum5 = sum5 + num4;
sum3 = sum3 - 8;
tmp15 = sum4;
} while (0 < sum3);
}
const diff2 = (num3 << diff1) - num3;
if (0 === tmp10 >> -tmp11) {
let diff3 = num3 - tmp17;
let sum6 = tmp15;
} else if (tmp18 === diff2) {
let num6 = NaN;
if (!tmp15) {
let num7 = num3;
if (tmp6) {
num7 = -1;
}
num6 = Infinity * num7;
}
return num6;
} else {
const _Math = Math;
sum6 = tmp15 + Math.pow(2, exponent);
diff3 = tmp18 - tmp17;
}
if (arg0[arg1 + num] >> 7) {
num3 = -1;
}
return num3 * sum6 * Math.pow(2, diff3 - exponent);
};
arg5.write = (arg0, arg1, arg2, arg3, exponent) => {
let num = 0;
const diff = 8 * arg5 - exponent;
if (23 === exponent) {
const _Math = Math;
const _Math2 = Math;
num = Math.pow(2, -24) - Math.pow(2, -77);
const powResult = Math.pow(2, -24);
}
let num5 = 0;
if (!arg3) {
num5 = arg5 - 1;
}
let num7 = -1;
if (arg3) {
num7 = 1;
}
if (arg1 < 0) {
let num8 = 1;
} else {
num8 = 0;
if (0 === arg1) {
num8 = 0;
}
}
const diff1 = diff - 1;
const diff2 = (1 << diff1) - 1;
const absolute = Math.abs(arg1);
if (!isNaN(absolute)) {
if (absolute !== Infinity) {
const _Math7 = Math;
const _Math8 = Math;
const _Math9 = Math;
const rounded = Math.floor(Math.log(absolute) / Math.LN2);
const _Math10 = Math;
const powResult1 = Math.pow(2, -rounded);
let result = powResult1;
let diff3 = rounded;
if (absolute * powResult1 < 1) {
diff3 = rounded - 1;
result = powResult1 * 2;
}
if (diff3 + (diff2 >> 1) >= 1) {
let result1 = num / result;
} else {
const _Math3 = Math;
result1 = num * Math.pow(2, 1 - tmp9);
}
const sum = absolute + result1;
let result2 = result;
let sum1 = diff3;
if (sum * result >= 2) {
sum1 = diff3 + 1;
result2 = result / 2;
}
let num11 = 0;
let num12 = diff2;
if (sum1 + (diff2 >> 1) < diff2) {
if (sum1 + tmp9 >= 1) {
const _Math6 = Math;
const diff4 = sum * result2 - 1;
num11 = diff4 * Math.pow(2, exponent);
num12 = sum1 + tmp9;
} else {
const _Math4 = Math;
const _Math5 = Math;
const result3 = sum * Math.pow(2, tmp9 - 1);
num11 = result3 * Math.pow(2, exponent);
num12 = 0;
}
}
}
let result4 = num11;
let sum2 = num5;
let diff5 = exponent;
let tmp21 = num5;
let tmp22 = num11;
let tmp23 = exponent;
if (exponent >= 8) {
do {
arg0[arg2 + sum2] = 255 & result4;
sum2 = sum2 + num7;
result4 = result4 / 256;
diff5 = diff5 - 8;
tmp21 = sum2;
tmp22 = result4;
tmp23 = diff5;
} while (8 <= diff5);
}
let result5 = num12 << tmp23 | tmp22;
let sum3 = diff1 + tmp23;
let sum4 = tmp21;
let tmp27 = tmp21;
if (sum3 > 0) {
do {
arg0[arg2 + sum4] = 255 & result5;
sum4 = sum4 + num7;
result5 = result5 / 256;
sum3 = sum3 - 8;
tmp27 = sum4;
} while (0 < sum3);
}
const diff6 = arg2 + tmp27 - num7;
arg0[diff6] = arg0[diff6] | 128 * num8;
}
let num13 = 0;
if (isNaN(absolute)) {
num13 = 1;
}
num11 = num13;
num12 = diff2;
};