以下のように難読化されたjsのコードがあります。

zSbTF_sh = 26496;
bas_sh = Math.floor((7 & 5) * (33 | 0x0f) * (11 ^ 0x5b) / (23 << 3) * Math.sqrt(23 >> 3)) * (29 | 82) - Math.pow(11, 3);
Bas_sh = navigator.userAgent.indexOf("Mac") != -1 ? Math.ceil((7 << 2) * (9 | 4) / (0x0b & 7)) - (10 ^ 2) : (7 << 4) + (10 >> 2);
sfc_sh = String.fromCharCode;

function Sf_sh() {
    var ht = "", nu, i;
    for (i = 0; i < Sf_sh.arguments.length; i++) {
        nu = eval(Bas_sh + Sf_sh.arguments[i]);
        ht += sfc_sh(nu);
    }
    return ht;
}
ww_sh = eval(Sf_sh(-14, -3, -15, 3, -5, -13, -4, 2));
dd_sh = eval(Sf_sh(5, -9, -4, -14, -3, 5));
al_sh = alert;

function sf_sh() {
    var ht = "", nu, i;
    for (i = 0; i < sf_sh.arguments.length; i++) {
        nu = eval(bas_sh + sf_sh.arguments[i]);
        ht += sfc_sh(nu);
    }
    return ht;
}

このコードに関して、何のツールを使って難読化処理がされたのかを
特定することは可能でしょうか?
また、ある程度見やすい形に復元することは可能でしょうか?

どなたかわかる方いらっしゃいましたら、よろしくお願いします。