Доброго времени суток.
Появилась нужда выяснить что делает конкретный скрипт. Но проблема в том что мне данный язык не знаком. Изначально скрипт был написан в одну строчку, в силу того что вычитал по жаве предал этому такой вид. Прошу сделать к каждой строчке приведённого ниже скрипта комментарий, с описанием что данная строчка делает.
function generatecode(z){
function A(i){
function o(j,b){var c=(j<<b)|(j>>>(32-b));return c
};
function C(j){
var b="";
var c;
var e;
var x;
for(c=0;c<=6;c+=2){
e=(j>>>(c*4+4))&0x0f;
x=(j>>>(c*4))&0x0f;
b+=e.toString(16)+x.toString(16)
}
return b};function q(j){
var b="";var c;var e;for(c=7;c>=0;c--){
e=(j>>>(c*4))&0x0f;
b+=e.toString(16)
}
return b
};
function B(j){
j=j.replace(/\r\n/g,"\n");
var b="";
for(var c=0;c<j.length;c++){
var e=j.charCodeAt(c);
if(e<128){
b+=String.fromCharCode(e)
} else if((e>127)&&(e<2048)){
b+=String.fromCharCode((e>>6)|192);
b+=String.fromCharCode((e&63)|128)
} else {
b+=String.fromCharCode((e>>12)|224);
b+=String.fromCharCode(((e>>6)&63)|128);
b+=String.fromCharCode((e&63)|128)}
}return b
};
var r;
var a,y;
var k=new Array(80);
var s=0x67452301;
var t=0xEFCDAB89;
var u=0x98BADCFE;
var v=0x10325476;
var w=0xC3D2E1F0;
var h,d,f,g,l;
var m;i=B(i);
var n=i.length;
var p=new Array();
for(a=0;a<n-3;a+=4){
y=i.charCodeAt(a)<<24|i.charCodeAt(a+1)<<16|i.charCodeAt(a+2)<<8|i.charCodeAt(a+3);
p.push(y)}
switch(n%4){
case 0:a=0x080000000;
break;
case 1:a=i.charCodeAt(n-1)<<24|0x0800000;
break;
case 2:a=i.charCodeAt(n-2)<<24|i.charCodeAt(n-1)<<16|0x08000;
break;
case 3:a=i.charCodeAt(n-3)<<24|i.charCodeAt(n-2)<<16|i.charCodeAt(n-1)<<8|0x80;
break
}
p.push(a);
while((p.length%16)!=14)p.push(0);
p.push(n>>>29);
p.push((n<<3)&0x0ffffffff);
for(r=0;r<p.length;r+=16){
for(a=0;a<16;a++)k[a]=p[r+a];
for(a=16;a<=79;a++)k[a]=o(k[a-3]^k[a-8]^k[a-14]^k[a-16],1);
h=s;
d=t;
f=u;
g=v;
l=w;
for(a=0;a<=19;a++){
m=(o(h,5)+((d&f)|(~d&g))+l+k[a]+0x5A827999)&0x0ffffffff;
l=g;
g=f;
f=o(d,30);
d=h;h=m
}
for(a=20;a<=39;a++){
m=(o(h,5)+(d^f^g)+l+k[a]+0x6ED9EBA1)&0x0ffffffff;
l=g;
g=f;
f=o(d,30);
d=h;
h=m
}
for(a=40;a<=59;a++){
m=(o(h,5)+((d&f)|(d&g)|(f&g))+l+k[a]+0x8F1BBCDC)&0x0ffffffff;
l=g;
g=f;
f=o(d,30);
d=h;
h=m
}
for(a=60;a<=79;a++){
m=(o(h,5)+(d^f^g)+l+k[a]+0xCA62C1D6)&0x0ffffffff;
l=g;
g=f;
f=o(d,30);
d=h;
h=m
}
s=(s+h)&0x0ffffffff;
t=(t+d)&0x0ffffffff;
u=(u+f)&0x0ffffffff;
v=(v+g)&0x0ffffffff;
w=(w+l)&0x0ffffffff
}
var m=q(s)+q(t)+q(u)+q(v)+q(w);
return m.toLowerCase()
}
return A("uzen"+z+"sfdhjsfdjk")}