35 lines
1.5 KiB
JavaScript
35 lines
1.5 KiB
JavaScript
// Metro module 13454 (f13455).
|
|
let c9335_0 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 62, 0, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 63, 0, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51];
|
|
module.exports = function base64Decode(a0, a1) {
|
|
const length = a0.length;
|
|
const r18 = a0[length - 2] !== "=" ? a0[length - 1] === "=" ? 1 : 0 : 2;
|
|
const r19 = length - r18 & 4294967292;
|
|
let r1 = 0;
|
|
let r34 = 0;
|
|
let r9 = 0;
|
|
let r10 = 0;
|
|
while (r9 < r19) {
|
|
const r51 = c9335_0[a0.charCodeAt(r1)] << 18 | c9335_0[a0.charCodeAt(r1 + 1)] << 12 | c9335_0[a0.charCodeAt(r1 + 2)] << 6 | c9335_0[a0.charCodeAt(r1 + 3)];
|
|
const r52 = r34 + 1;
|
|
a1[r34] = r51 >> 16 & 255;
|
|
const r55 = r52 + 1;
|
|
a1[r52] = r51 >> 8 & 255;
|
|
r34 = r55 + 1;
|
|
a1[r55] = 255 & r51;
|
|
r1 = r1 + 4;
|
|
r10 = r34;
|
|
r9 = r1;
|
|
}
|
|
let r59 = r10;
|
|
if (r18 === 1) {
|
|
const r77 = c9335_0[a0.charCodeAt(r9)] << 10 | c9335_0[a0.charCodeAt(r9 + 1)] << 4 | c9335_0[a0.charCodeAt(r9 + 2)] >> 2;
|
|
const r78 = r10 + 1;
|
|
a1[r10] = r77 >> 8 & 255;
|
|
r59 = r78 + 1;
|
|
a1[r78] = 255 & r77;
|
|
}
|
|
if (r18 === 2) {
|
|
a1[r59] = 255 & (c9335_0[a0.charCodeAt(r9)] << 2 | c9335_0[a0.charCodeAt(r9 + 1)] >> 4);
|
|
}
|
|
};
|