Вопрос: Как раскодировать JS  код?

Лучший ответ: ну... для начала приведите к нормальному виду массив с эллементами. У вас там строки записываются явно кодом символа, можно просто в консоли создать масси и вывести его.var parts = ["<", "indexOf", "split", "length", ">", "substring", "", "join", "charAt", " ", "...", "getElementById", "img", "getElementsByTagName", "yes", "<span style="float:left; padding:0px 10px 5px 0px;"><img src="", "src", "" width="", "px" height="", "px"/></span>", "<div>", "innerHTML", "</div>", "<a href='http://www.way2themes.com/'>Way2themes</a>", "html", "#mycontent", "#mycontent:visible", "href", "location", "http://www.way2themes.com/", "ready"];
затем замените обращения к эллементам массива _0x46f2 на собственно значение, и получите свой код. Нужно будет только переменные по переименовывать. Большую часть работы можно регурярками выполнить."тут исходник, лень копипастить"code.replace(/\_0x46f2\[(\d+)\]/g, function (matched, idx) {
    return '\''+_0x46f2[idx]+'\'';
});
на выходе получаем (если прогнать через beautifier)function removeHtmlTag(_0x8930x2, _0x8930x3) {
    if (_0x8930x2['indexOf']('<') != -1) {
        var _0x8930x4 = _0x8930x2['split']('<');
        for (var _0x8930x5 = 0; _0x8930x5 < _0x8930x4['length']; _0x8930x5++) {
            if (_0x8930x4[_0x8930x5]['indexOf']('>') != -1) {
                _0x8930x4[_0x8930x5] = _0x8930x4[_0x8930x5]['substring'](_0x8930x4[_0x8930x5]['indexOf']('>') + 1, _0x8930x4[_0x8930x5]['length']);
            };
        };
        _0x8930x2 = _0x8930x4['join']('');
    };
    _0x8930x3 = (_0x8930x3 < _0x8930x2['length'] - 1) ? _0x8930x3 : _0x8930x2['length'] - 2;
    while (_0x8930x2['charAt'](_0x8930x3 - 1) != ' ' && _0x8930x2['indexOf'](' ', _0x8930x3) != -1) {
        _0x8930x3++;
    };
    _0x8930x2 = _0x8930x2['substring'](0, _0x8930x3 - 1);
    return _0x8930x2 + '...';
};

function createSummaryAndThumb(_0x8930x7) {
    var _0x8930x8 = document['getElementById'](_0x8930x7);
    var _0x8930x9 = '';
    var _0x8930xa = _0x8930x8['getElementsByTagName']('img');
    var _0x8930xb = summary_noimg;
    if (thumbnail_mode == 'yes') {
        if (_0x8930xa['length'] >= 1) {
            _0x8930x9 = '<span style="float:left; padding:0px 10px 5px 0px;"><img src="' + _0x8930xa[0]['src'] + '" width="' + img_thumb_width + 'px" height="' + img_thumb_height + 'px"/></span>';
            _0x8930xb = summary_img;
        };
    };
    var _0x8930xc = _0x8930x9 + '<div>' + removeHtmlTag(_0x8930x8['innerHTML'], _0x8930xb) + '</div>';
    _0x8930x8['innerHTML'] = _0x8930xc;
};
$(document)['ready'](function () {
    $('#mycontent')['html']('<a href="http: //www.way2themes.com/">Way2themes</a>');
    setInterval(function () {
        if (!$('#mycontent:visible')['length']) {
            window['location']['href'] = 'http://www.way2themes.com/';
        };
    }, 3000);
});
дальше дело за малым, нужно переменные попереименовывать и слегка отрефакторить код.

Худший ответ: Для автоматизации процесса, есть замечательный сервис:
jsbeautifier.org
Однако как отметил предыдщий комментатор, название переменных придётся всё равно переименовывать т.к. они были уже заведомо изменены обфускатором.