227 lines
9.6 KiB
JavaScript
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] */;
|