function reverse_string(param) {
var _15 = param.split('');
var _16 = _15.reverse();
var _13 = _16.join('');
return _13
}
function chunkString(_17, _18) {
return _17.match(new RegExp('.{1,' + _18 + '}', 'g'))
}
function enc1(param) {
// adds 0x14 to each character
nchunk = [];
for (var i = 0x0; i < param.length; i++) {
nchunk.push(String.fromCharCode(param[i].charCodeAt() + 0x14))
}
return nchunk.join('')
}
function enc2(_9) {
// substracts 0x14 from each character
nchunk = [];
for (var _5 = 0x0; _5 < _9.length; _5++) {
nchunk.push(String.fromCharCode(_9[_5].charCodeAt() - 0x14))
}
return nchunk.join('')
}
function enc3(_19) {
// reverses the string
nchunk = reverse_string(_19);
return nchunk
}
function encode(flag) {
// alternates between the encryption functions until it fully encrypts the flag
functs = [enc1, enc2, enc3];
for (var i = 0x0; i < flag.length; i++) {
flag[i] = functs[i % 3](flag[i])
console.log(functs[i % 3](flag[i]))
}
return flag
}