Meta: Code maintainability improvements
There is much room for improvement to the code quality of the C++ components in BinRec and the plugins. Stopping short of a complete refactor / rewrite, there is a lot we can do to make the code more readable and decipherable for new engineers coming on to the project.
This is a catchall issue we commit / merge PRs against to capture the various little improvements we make along the way. Ideally, when exploring parts of the code base as parts of other issues, we can commit /merge localized cleanup and maintainability changes towards this issue to keep our other PRs simple to review.
Commits and PRs against this issue should have zero to no impact on program behavior to allow for rapid review and merging. This includes changes like adding comments, cleaning up comments, single line code clarity changes that do not change program behavior, code formatting, etc.
Actionable tasks can be added as comments for cleanup.
Unify all checks for Func_* in binrec_lift to use isLiftedFunction
Add descriptive error messages to assertions to convey what is actually happening or failing.
Replace asserts in the binrec plugins with exceptions thrown in the same manner as the work Adam did on the Binrec lifting components.