Files
discord-decomp/sources/by-id/module-04776.jsx
T
2026-07-27 16:20:00 +03:00

264 lines
11 KiB
React

/* Metro module 4776; source: unknown; dependencies: [4736, 4751, 4752, 4748, 4731] */
function _fun41278(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#41278, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4954:6, offset: 0x0111a274, size: 132 bytes, params: 8, frame: 16
const env0_0 = require;
const getImageFormat = function(a0) {
var value = a0 >> 24 & 7;
return {value: value, description: value !== 0 ? 'Unknown' : 'JPEG'};
};
const getImageType = function(a0) {
var value = 16777215 & a0;
return {value: value, description: ({196608: 'Baseline MP Primary Image',
65537: 'Large Thumbnail (VGA equivalent)',
65538: 'Large Thumbnail (Full HD equivalent)', 131073: 'Multi-Frame Image (Panorama)',
131074: 'Multi-Frame Image (Disparity)', 131075: 'Multi-Frame Image (Multi-Angle)',
0: 'Undefined'})[value] || 'Unknown'};
};
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
exports.default = {read: read_41284};
}
function getImageNumberValue(a0, a1, a2, a3) { // fn#41279, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4954:1195, offset: 0x0111a2f8, size: 153 bytes, params: 5, frame: 19
var r2;
var r3;
var r1;
var r0;
var property;
var value2;
var value3;
var value;
const LITTLE_ENDIAN = (importDefault(4736) /* metro dependency 4736 */).LITTLE_ENDIAN;
if (a3 === LITTLE_ENDIAN) {
if (value < a2) {
r1 = value;
r2 = value;
reducibleLoop5: while (true) {
property = a0[a1 + r1];
value = r2 + (property << 8 * r1);
value3 = typeof r1 === 'bigint' ? r1 + 1n : +r1 + 1;
if (value3 < a2) {
r1 = value3;
r2 = value;
continue reducibleLoop5;
}
r0 = value;
break reducibleLoop5;
}
} else {
r0 = value;
}
return r0;
}
if (value < a2) {
r2 = value;
r3 = value;
reducibleLoop2: while (true) {
property = a0[a1 + r2];
value = r3 + (property << 8 * (a2 - 1 - r2));
value2 = typeof r2 === 'bigint' ? r2 + 1n : +r2 + 1;
if (value2 < a2) {
r2 = value2;
r3 = value;
continue reducibleLoop2;
}
r1 = value;
break reducibleLoop2;
}
} else {
r1 = value;
}
return r1;
}
function getImageFlags(a0) { // fn#41280, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4954:1367, offset: 0x0111a391, size: 168 bytes, params: 2, frame: 13
const items3 = [a0 >> 31 & 1, a0 >> 30 & 1, a0 >> 29 & 1];
const items2 = [];
if (items3[0]) {
items2.push('Dependent Parent Image');
}
if (items3[1]) {
items2.push('Dependent Child Image');
}
if (items3[2]) {
items2.push('Representative Image');
}
const object2 = {value: items3};
object2.description = items2.join(', ') || 'None';
return object2;
}
function getImageOffset(a0, a1, a2, a3) { // fn#41283, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4954:2025, offset: 0x0111a496, size: 97 bytes, params: 5, frame: 19
var r0;
var getImageNumberValueBinding;
var value2;
var value3;
let value = 0;
if (value === a0) {
r0 = value;
} else {
getImageNumberValueBinding = getImageNumberValue;
value2 = a1.value;
value3 = a0 * env0_3;
value = importDefault(4748) /* metro dependency 4748 */;
value = value.getTypeSize('LONG');
value = getImageNumberValueBinding(value2, value3 + 8, value, a2);
value += a3;
r0 = value;
}
return r0;
}
function read_41284(a0, a1, a2) { // fn#41284, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4954:106, offset: 0x0111a4f7, size: 153 bytes, params: 4, frame: 23
var value;
const byteOrder = (importDefault(4736) /* metro dependency 4736 */).getByteOrder(a0, a1);
const readIfd = (require(4751) /* metro dependency 4751 */).readIfd;
const IFD_TYPE_MPF = (require(4752) /* metro dependency 4752 */).IFD_TYPE_MPF;
value = Reflect.apply(readIfd, value, [a0, IFD_TYPE_MPF, a1,
(require(4751) /* metro dependency 4751 */).get0thIfdOffset(a0, a1, byteOrder), byteOrder, a2]);
addMpfImages(a0, a1, value, byteOrder);
return value;
}
function addMpfImages(a0, a1, a2, a3) { // fn#41285, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4954:247, owner: read_41284.addMpfImages, offset: 0x0111a590, size: 660 bytes, params: 5, frame: 37
var environment;
var r11;
var items2;
var Math;
var ceil;
var value;
var length;
var value2;
var value3;
var getImageNumberValueBinding;
var value4;
var value5;
var defaultImport;
var getTypeSize;
var imageNumberValueBinding;
var property;
var value7;
var value8;
var defaultImport2;
var value9;
var imageNumberValueBinding2;
var object5;
var getImageOffsetBinding;
var imageOffsetBinding;
var object6;
var value12;
var value13;
var defaultImport3;
var value14;
var imageNumberValueBinding3;
var object7;
var value16;
var value17;
var defaultImport4;
var value18;
var imageNumberValueBinding4;
var object8;
var buffer;
var slice;
var moduleValue;
var deferInit;
var value20;
var value21;
let MPEntry = a2.MPEntry;
if (MPEntry) {
items2 = [];
Math = global.Math;
ceil = Math.ceil;
MPEntry = a2.MPEntry;
value = MPEntry.value;
length = value.length;
value = environment.__proto__;
value2 = Reflect.apply(ceil, Math, [length / env1_3]);
value3 = 0;
if (value3 < value2) {
r11 = value3;
reducibleLoop3: while (true) {
items2[r11] = {};
getImageNumberValueBinding = getImageNumberValue;
MPEntry = a2.MPEntry;
value4 = MPEntry.value;
value5 = r11 * env1_3;
defaultImport = importDefault(4748) /* metro dependency 4748 */;
getTypeSize = defaultImport.getTypeSize;
imageNumberValueBinding = getImageNumberValueBinding(value4, value5, Reflect.apply(getTypeSize,
defaultImport,
['LONG']), a3);
property = items2[r11];
property.ImageFlags = getImageFlags(imageNumberValueBinding);
property = items2[r11];
property.ImageFormat = getImageFormat(imageNumberValueBinding);
property = items2[r11];
property.ImageType = getImageType(imageNumberValueBinding);
MPEntry = a2.MPEntry;
value7 = MPEntry.value;
value8 = r11 * env1_3;
defaultImport2 = importDefault(4748) /* metro dependency 4748 */;
getTypeSize = defaultImport2.getTypeSize;
value9 = Reflect.apply(getTypeSize, defaultImport2, ['LONG']);
imageNumberValueBinding2 = getImageNumberValueBinding(value7, value8 + 4, value9, a3);
property = items2[r11];
object5 = {value: imageNumberValueBinding2, description: String(imageNumberValueBinding2)};
property.ImageSize = object5;
getImageOffsetBinding = getImageOffset;
MPEntry = a2.MPEntry;
imageOffsetBinding = getImageOffsetBinding(r11, MPEntry, a3, a1);
property = items2[r11];
object6 = {value: imageOffsetBinding, description: String(imageOffsetBinding)};
property.ImageOffset = object6;
MPEntry = a2.MPEntry;
value12 = MPEntry.value;
value13 = r11 * env1_3;
defaultImport3 = importDefault(4748) /* metro dependency 4748 */;
getTypeSize = defaultImport3.getTypeSize;
value14 = Reflect.apply(getTypeSize, defaultImport3, ['SHORT']);
imageNumberValueBinding3 = getImageNumberValueBinding(value12, value13 + 12, value14, a3);
property = items2[r11];
object7 = {value: imageNumberValueBinding3, description: String(imageNumberValueBinding3)};
property.DependentImage1EntryNumber = object7;
MPEntry = a2.MPEntry;
value16 = MPEntry.value;
value17 = r11 * env1_3;
defaultImport4 = importDefault(4748) /* metro dependency 4748 */;
getTypeSize = defaultImport4.getTypeSize;
value18 = Reflect.apply(getTypeSize, defaultImport4, ['SHORT']);
imageNumberValueBinding4 = getImageNumberValueBinding(value16, value17 + 14, value18, a3);
property = items2[r11];
object8 = {value: imageNumberValueBinding4, description: String(imageNumberValueBinding4)};
property.DependentImage2EntryNumber = object8;
property = items2[r11];
buffer = a0.buffer;
slice = buffer.slice;
property.image = Reflect.apply(slice, buffer, [imageOffsetBinding,
imageOffsetBinding + imageNumberValueBinding2]);
moduleValue = require(4731) /* metro dependency 4731 */;
deferInit = moduleValue.deferInit;
property = items2[r11];
Reflect.apply(deferInit, moduleValue, [property, 'base64', _fun41286]);
value20 = typeof r11 === 'bigint' ? r11 + 1n : +r11 + 1;
Math = global.Math;
ceil = Math.ceil;
MPEntry = a2.MPEntry;
value21 = MPEntry.value;
length = value21.length;
if (value20 < Reflect.apply(ceil, Math, [length / env1_3])) {
r11 = value20;
continue reducibleLoop3;
}
break reducibleLoop3;
}
}
a2.Images = items2;
}
return a2;
}
function _fun41286() { // fn#41286, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4954:1102, offset: 0x0111a824, size: 47 bytes, params: 1, frame: 11
const value = environment.__proto__.__proto__;
return (require(4731) /* metro dependency 4731 */).getBase64Image(this.image);
}