var charTable = "abcdefghijklmnopqrstuvwxyz0123456789_.";

function decode(strAddress) {
	var atPos = strAddress.indexOf("@");
	if( atPos < 0 ) atPos = strAddress.length;
	
	var charArray = new Array(atPos);
	for( var i = 0; i < atPos; i++) {
		charArray[i] = charTable.indexOf(strAddress.charAt(i));
	}
	
	var seed = 111, modifier = 234, accumulator = 0;
	for( var i = 0; i < 100; i++) {
		accumulator += seed++;
		accumulator ^= modifier;
		var charPos = accumulator % atPos;
		if( ++charArray[charPos] >= charTable.length) charArray[charPos] %= charTable.length;
	}
	
	var strResult = "";
	for( var i = 0; i < atPos; i++) {
		strResult += charTable.charAt( charArray[i]);
	}
	
	if( atPos < strAddress.length) strResult += strAddress.substr( atPos);
	return strResult;
}
