Let's do some "deciph4r4ng"
Java 7, 81 80 bytes

void a(char[]a){for(int i=0;++i&lt;a.length;)if(a[i]&gt;47&amp;a[i]&lt;58)a[i]=a[i-a[i]+47];}


Try it online!

Saved 1 byte thanks to Anders Tornblad. The first character cannot be a digit so it doesn't need to be checked meaning we can preincrement before checking our terminate condition.