Files
discord-decomp/sources/by-id/module-04741-parseItemLocationBox.js
T
2026-07-28 01:06:53 +03:00

227 lines
9.6 KiB
JavaScript

/* Metro module 4741; source: unknown; dependencies: [4742] */
function _fun40930(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#40930, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4919:6, offset: 0x01110844, size: 102 bytes, params: 8, frame: 16
const env0_0 = require;
const getItemId = function(a0, a1, a2) {
return a2 < 2 ? a0.getUint16(a1) : a2 !== 2 ? undefined : a0.getUint32(a1);
};
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
exports.parseItemLocationBox = parseItemLocationBox;
function getItems(a0, a1, {items}, a3, a4, a5, a6, a7) { // fn#40931, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4919:44, offset: 0x011108aa, size: 472 bytes, params: 9, frame: 34
var r1;
var r7;
var r16;
var r18;
var r19;
var object;
var item;
var itemId;
var value4;
var getUint16;
var value5;
var constructionMethod;
var value6;
var dataReferenceIndex;
var value7;
var getVariableSizedValueBinding;
var baseOffset;
var value8;
var extentCount;
var value9;
var object2;
var extent;
var extentIndex;
var value10;
var extentOffset;
var value11;
var extentLength;
var value12;
var extents;
var push;
var value13;
var value14;
if (a7 === undefined) {
return [];
}
const items2 = [];
if (0 < a7) {
r1 = 0;
r7 = items2;
reducibleLoop2: while (true) {
object = {extents: []};
object.itemId = getItemId(a0, r7, a1);
item = a3.item;
itemId = item.itemId;
value4 = r7 + itemId;
reducibleJoin5: while (true) {
reducibleJoin4: while (true) {
if (a1 === 1) {
break reducibleJoin4;
}
if (a1 !== 2) {
r16 = undefined;
break reducibleJoin5;
}
break reducibleJoin4;
}
getUint16 = a0.getUint16;
value5 = 15 & Reflect.apply(getUint16, a0, [value4]);
r16 = value5;
break reducibleJoin5;
}
object.constructionMethod = r16;
item = a3.item;
constructionMethod = item.constructionMethod;
value6 = value4 + constructionMethod;
getUint16 = a0.getUint16;
object.dataReferenceIndex = Reflect.apply(getUint16, a0, [value6]);
item = a3.item;
dataReferenceIndex = item.dataReferenceIndex;
value7 = value6 + dataReferenceIndex;
getVariableSizedValueBinding = getVariableSizedValue;
item = a3.item;
baseOffset = item.baseOffset;
object.baseOffset = getVariableSizedValueBinding(a0, value7, baseOffset);
item = a3.item;
baseOffset = item.baseOffset;
value8 = value7 + baseOffset;
getUint16 = a0.getUint16;
object.extentCount = Reflect.apply(getUint16, a0, [value8]);
item = a3.item;
extentCount = item.extentCount;
value9 = value8 + extentCount;
extentCount = object.extentCount;
if (0 < extentCount) {
r18 = 0;
r19 = value9;
reducibleLoop6: while (true) {
object2 = {};
object2.extentIndex = getExtentIndex(a0, a1, r19, a6);
item = a3.item;
extent = item.extent;
extentIndex = extent.extentIndex;
value10 = r19 + extentIndex;
getVariableSizedValueBinding = getVariableSizedValue;
object2.extentOffset = getVariableSizedValueBinding(a0, value10, a4);
item = a3.item;
extent = item.extent;
extentOffset = extent.extentOffset;
value11 = value10 + extentOffset;
object2.extentLength = getVariableSizedValueBinding(a0, value11, a5);
item = a3.item;
extent = item.extent;
extentLength = extent.extentLength;
value12 = value11 + extentLength;
extents = object.extents;
push = extents.push;
Reflect.apply(push, extents, [object2]);
value13 = typeof r18 === 'bigint' ? r18 + 1n : +r18 + 1;
extentCount = object.extentCount;
if (value13 < extentCount) {
r18 = value13;
r19 = value12;
continue reducibleLoop6;
}
r7 = value12;
break reducibleLoop6;
}
} else {
r7 = value9;
}
push = items2.push;
Reflect.apply(push, items2, [object]);
value14 = typeof r1 === 'bigint' ? r1 + 1n : +r1 + 1;
if (value14 < a7) {
r1 = value14;
continue reducibleLoop2;
}
break reducibleLoop2;
}
}
return items2;
}
function getExtentIndex(a0, a1, a2, a3) { // fn#40933, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4919:857, offset: 0x01110ab2, size: 54 bytes, params: 5, frame: 15
if (a1 !== 1) {
if (a1 !== 2) {
return undefined;
}
}
if (a3 > 0) {
return getVariableSizedValue(a0, a2, a3);
}
}
function getVariableSizedValue(a0, a1, a2) { // fn#40934, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4919:949, offset: 0x01110ae8, size: 100 bytes, params: 4, frame: 16
var r0;
var value;
if (a2 === 4) {
r0 = a0.getUint32(a1);
} else {
value = 0;
if (a2 !== 8) {
r0 = value;
} else {
global.console.warn('This file uses an 8-bit offset which is currently not supported by ExifReader. Contact the maintainer to get it fixed.');
value = require(dependencyMap[value]);
value = value.get64BitValue(a0, a1);
r0 = value;
}
}
return r0;
}
function parseItemLocationBox(a0, a1, a2, a3) { // fn#40935, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4919:1259, offset: 0x01110b4c, size: 569 bytes, params: 5, frame: 28
let value = a2 + 3;
let object = {};
const value2 = 2;
object.item = {'dataReferenceIndex': 2, 'extentCount': 2, extent: {}};
if (a1 < value2) {
object.itemCount = value2;
object.item.itemId = value2;
} else if (value2 === a1) {
object.itemCount = 4;
object.item.itemId = 4;
}
const item = object.item;
const value3 = a1 === 1;
item.constructionMethod = value3 ? value2 : value2 !== a1 ? 0 : value2;
const object3 = {offsetSize: value, lengthSize: value};
const value5 = value + 1;
object3.baseOffsetSize = value5;
object3.indexSize = value5;
object3.itemCount = value + value2;
let itemCount = object3.itemCount;
object3.items = itemCount + object.itemCount;
value = 0;
object3.item = {itemId: value};
object3.item.constructionMethod = object3.item.itemId + object.item.itemId;
object3.item.dataReferenceIndex = object3.item.constructionMethod + object.item.constructionMethod;
const {offsets, sizes} = {offsets: object3, sizes: object};
let getUint8 = a0.getUint8;
const value7 = Reflect.apply(getUint8, a0, [offsets.offsetSize]) >> 4;
let extent = sizes.item.extent;
extent.extentOffset = value7;
getUint8 = a0.getUint8;
const value9 = 15 & Reflect.apply(getUint8, a0, [offsets.lengthSize]);
sizes.item.extent.extentLength = value9;
getUint8 = a0.getUint8;
sizes.item.baseOffset = Reflect.apply(getUint8, a0, [offsets.baseOffsetSize]) >> 4;
const indexSize = offsets.indexSize;
const r4 = value3 ? 15 & a0.getUint8(indexSize) : value2 !== a1 ? undefined : 15 & a0.getUint8(indexSize);
extent = sizes.item.extent;
const value13 = undefined;
let r2 = value13 === r4 ? value : r4;
extent.extentIndex = r2;
itemCount = offsets.itemCount;
r2 = a1 < value2 ? a0.getUint16(itemCount) : value2 !== a1 ? value13 : a0.getUint32(itemCount);
object = {type: 'iloc'};
object.items = getItems(a0, a1, offsets, sizes, value7, value9, r4, r2);
object.length = a3;
return object;
}
}
global.__d(_fun40930, 4741, [4742]) /* metro module 4741, dependencies: [4742] */;