Вот так вот
Сама деобфускация простая, кстати.
1. Сначала eval подменяем присваиванием в переменную и получает частично деобфусцированный код (как вышел в результате у
@omun).
2. Дальше там в коде есть одна и та же повторяющаяся комбинация:
s = String.fromCharCode(...); // в результате выходит набор символов, необходимый для получения текста функции
(![] + [])[+[]][([![]] + {})...(); // получаем из s текст функции и сразу её выполняем. Убираем () и можем получить уже непосредственно код функции