In a sense, yes, it is a 'reassembler', but instead of patching a binary program, it patches the only one binary program that has been hard-coded in the 'reassembler' itself.... if I am allowed to use the word 'compiler', I would be more than happy.
Thank you MarkMLI for bringing up this topic of discussion.
Please stick to the standard terminology: it's a compiler, and nobody will kick you for doing something crude as a learning exercise (unlike, dare I say it, Python :-)
"Reassembler" is a problematic name, since it really implies something like taking a binary program, patching it, and reassembling it with checksums and signatures as appropriate. Such a thing would be valuable, you're not doing it, so the name is best avoided.
And you're welcome :-)
It can be very difficult for "an outsider"- even an engineer like me- to get into this sort of thing, since so much blatant bullshit is written about it by the computer science priesthood.
The fact is that most of what has been written about compilers focusses on taking a difficult syntax and making sure that it can be compiled without requiring inordinate resources. I have very little time for that, and prefer the philosophy that (by analogy) if you're writing obscure and difficult English it's down to you to improve your presentation, rather than expecting every reader to "get educated".
Most "real" computer languages can be compiled efficiently using a technique called recursive descent, which you will find discussed in that Wp article I pointed you at earlier.
MarkMLl