for an university course I am working on a code morphing pass. The idea
is that a random vector gets generated at the entry point of functions
and that vector will be used to randomize the flow of execution.
Alternative flows are built looking at the instructions inside the basic
blocks of the function and for some of them replacing the orginal
instruction with a set of logically equivalent basic blocks.