| [SPOILER ALERT]
Nice solution, really well written. Your method works for sure and it's correct, but i would have done it in a different way.
If you check the assembly you will see that the right subroutine that shows the correct string is basically an unreferenced function. I would have patched the call instruction from the main() function to call it instead of the wrong string subroutine.
That said, thanks for submitting it anyway :)
| Yes patching is allowed...be creative!
You just have to force the console to show the right thing.