JSFiddle - React, Tailwind, and code Playground

JavaScript

var alphabet = ['!'],
    code = [27, 8, 5, 12, 103, 15, 28, 27, 23, 105, 18, 104, 4, 0],
    frase = '';

for (var i = 97; i <= 122; i++) {
    alphabet[i - 96] = String.fromCharCode(i);
}

function wat(pamparam, up) {
    if (up === 0) frase += alphabet[code[pamparam]];
    else frase += alphabet[code[pamparam]].toUpperCase();
}

for (var m = 0; m <= code.length - 1; m++) {
    if (code[m] - 100 > code.length-1 || (code[m] == code[(code[m] - 100)])) throw 'stop';
}

function rep(k) {
    if (code[k] >= 100) rep(code[k] - 100);
    else wat(k, 0);
}

for (var j = 0; j < code.length; j++) {
    if (code[j] >= 100) rep(code[j] - 100);
    else if (code[j] == 28) frase += ' ';
    else if (code[j] == 27) wat(++j, 1);
    else wat(j, 0);
}

alert(frase);