##JavaScript (ES6), <s>156</s> … <s>115</s> 114 bytes

Sadly, the infamous `String.fromCharCode()` costs 19 bytes.

<!-- begin snippet: js hide: false console: true babel: false -->

<!-- language: lang-js -->

    f=(x=y=k=1)=>k<96?String.fromCharCode(x-22?y/2^5&&(y>9?x-y+1>>1&&22-y-x>>1:x/2^5)?32:31+k++:(x=!++y,10))+f(x+1):''

    console.log(f())

<!-- end snippet -->