Befunge-98, 109109 98 bytes (FUNGE / ANY)
:5%!2>j#4_;\$&\#;\:0`!#@_:::88*'@/88**'@*-\88*\'@/2%*442**+2%*' +,:88*'@/:2/-88**'@*-\1+:5%!2>j#4_;442**3k2>j#4_;' 3k:4k,#;:55*%!2>j#4_;a,;
Try it online!Try it online!
(255 - (115 + 10998)) / 255 = 12%16% compression
:5%!2>j#4_;\$&\#;\:0`!#@_ Get input if it is available, else end program :::88*'@/88**'@*-\88*\'@/2%*442**+2%*' +, Output the current input character (or a space, if the mask dictates so) :88*'@/:2/-88**'@*- Throw away current mask bit \1+ Swap loop iterator to top of stack, increment it :5%!2>j#4_;442**3k2>j#4_;' *3k:4k,#; If iterator % 5 == 0, print five spaces :55*%!2>j#4_;a,; If iterator % 25 == 0, print newline character
Theoretically this can print any sequence of 5x5 ascii art.
Thanks to James Holderness for helping me get out of triple digits!