Es este casi seguro:
https://github.com/javascript-obfuscator/javascript-obfuscatorEn sus ejemplos veo que ponen:
(function (_0x431d87, _0x156c7f) {
var _0x10cf6e = _0x33e4;
while (!![]) {
try {
var _0x330ad1 = -parseInt(_0x10cf6e(0x6c)) * -parseInt(_0x10cf6e(0x6d)) + -parseInt(_0x10cf6e(0x74)) * -parseInt(_0x10cf6e(0x78)) + parseInt(_0x10cf6e(0x6a)) + -parseInt(_0x10cf6e(0x70)) + parseInt(_0x10cf6e(0x6e)) * -parseInt(_0x10cf6e(0x75)) + parseInt(_0x10cf6e(0x72)) + -parseInt(_0x10cf6e(0x67)) * parseInt(_0x10cf6e(0x73));
if (_0x330ad1 === _0x156c7f)
break;
else
_0x431d87['push'](_0x431d87['shift']());
} catch (_0x9f878) {
_0x431d87['push'](_0x431d87['shift']());
}
}
}(_0x9947, -0xb6270 + 0x4dfd2 * 0x2 + 0x75460 * 0x2)
Y en el código que pusiste tienen:
while (!![]) {
try {
var l = -parseInt(UN(0x110c, 0xc61, 0x1538, 0x11d5, 0x1027)) / (-0x1653 + -0xa98 * 0x3 + 0x361c * 0x1) + parseInt(UN(0x6b5, 0x192, -0x16b, 0x96f, 0x4b5)) / (-0xf91 * -0x2 + -0x20cc + 0x1ac) + -parseInt(UN(0x1376, 0xfd4, 0x103d, 0x11e8, 0xcb1)) / (0x1475 + -0x1 * 0x10fd + 0xf * -0x3b) + -parseInt(Ui(0x82e, 0xa18, 0x637, 0x48d, 0x859)) / (-0x82f + 0x1 * 0x1cbd + -0x148a) + parseInt(UN(0xd68, 0x8be, 0x103b, 0x12ba, 0xe41)) / (-0x19 * -0x61 + -0x2612 + 0x1c9e) * (-parseInt(Uo(-0x51f, -0x493, 0x2b, 0x430, 0x24)) / (-0x2283 * -0x1 + 0x4 * -0x2ff + -0x1681)) + -parseInt(Ur(0x15c, 0xcc, -0x1c1, 0x1f7, 0x1f8)) / (0x4ae * -0x1 + -0x3 * -0xa01 + -0x194e) * (parseInt(Ur(0x808, 0x4ec, 0x47f, 0x395, 0x88c)) / (0x1 * 0x1a2 + 0x2543 * -0x1 + 0x23a9)) + parseInt(Uo(0x134, -0x8, 0x72, -0x25d, -0x4a1)) / (-0x1d7b + 0xc * -0x14e + 0x2d2c) * (parseInt(Ur(0x8a, -0x205, 0x5a, 0x76e, 0x460)) / (0x3cd + 0x5 * 0x5ff + -0x21be));
if (l === R) break;
else I['push'](I['shift']());
} catch (K) {
I['push'](I['shift']());
}
}
Es la misma idea, solo que tú código ofuscado usa letras en las variables en lugar de usar la versión de hexadecimales.