Turn a function into a specialized interpreter.
Turn a function into one that generates its code at runtime.
Turn a function into one that continously transforms itself.
Remove control flow from a function.
Split a function into smaller parts.
Merge multipe functions into one.
Split up control flow by adding opaque branches.
Replace integer and string litterals by less obvious expressions.
Replace integer variables with different representations.
Replace integer arithmetic with more complex expressions.
Hide API calls such as system calls and library calls.
Make it harder to dtermine the target of branches.
Disrupt static analysis tools that make use of alias analysis.
Disrupt dynamic analysis tools that make use of taint analysis.
Initialize the opaque predicate library.
Initialize the library for collecting randomness.
Initialize the anti taint analysis library.
Generate a random function.
Last transformation to run, to clean up the generated code.
Dump internal datastructures.
Measure the time to run a transformed function.
Make a copy of a function.
Simulate a misbehaving obfuscator that leaks a secret from the program.
The identity transformation; it does nothing.
Reorder function arguments and/or add bogus arguments
Options that apply to all of Tigress' transformations.
Transform a function into one that modifies its own code.