Improved the performance in the Decipher

I've removed a lot of unnecessary code duplication in Decipher.cs, changed to regex to get the function name.
A loop breakout has been added when determining the function names of the operations, this will mean once all three functions have been determined then the code can breakout (less wasted cycles)