\hypertarget{classtheo_1_1obf_1_1engine__t}{}\doxysection{theo\+::obf\+::engine\+\_\+t Class Reference}
\label{classtheo_1_1obf_1_1engine__t}\index{theo::obf::engine\_t@{theo::obf::engine\_t}}


singleton obfuscation engine class. this class is responsible for keeping track of the registered passes and the order in which to execute them.  




{\ttfamily \#include $<$engine.\+hpp$>$}

\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
void \mbox{\hyperlink{classtheo_1_1obf_1_1engine__t_a8ffc963a133653fa3a0875798d0d3426}{add\+\_\+pass}} (\mbox{\hyperlink{classtheo_1_1obf_1_1pass__t}{pass\+\_\+t}} $\ast$pass)
\begin{DoxyCompactList}\small\item\em add a pass to the engine. the order in which you call this function matters as the underlying data structure that contains the passes is a vector. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{classtheo_1_1obf_1_1engine__t_a7acfdbe9c229cf1f351cec610ab193d3}{run}} (\mbox{\hyperlink{classtheo_1_1decomp_1_1symbol__t}{decomp\+::symbol\+\_\+t}} $\ast$sym)
\begin{DoxyCompactList}\small\item\em run all the passes on the symbol. this function will only run a pass if the symbol is the same type as the pass requires. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static \mbox{\hyperlink{classtheo_1_1obf_1_1engine__t}{engine\+\_\+t}} $\ast$ \mbox{\hyperlink{classtheo_1_1obf_1_1engine__t_a545af3868f9037dbbfefb02e03e60f8a}{get}} ()
\begin{DoxyCompactList}\small\item\em get the singleton object of this class. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
singleton obfuscation engine class. this class is responsible for keeping track of the registered passes and the order in which to execute them. 



Definition at line 42 of file engine.\+hpp.



\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{classtheo_1_1obf_1_1engine__t_a8ffc963a133653fa3a0875798d0d3426}\label{classtheo_1_1obf_1_1engine__t_a8ffc963a133653fa3a0875798d0d3426}} 
\index{theo::obf::engine\_t@{theo::obf::engine\_t}!add\_pass@{add\_pass}}
\index{add\_pass@{add\_pass}!theo::obf::engine\_t@{theo::obf::engine\_t}}
\doxysubsubsection{\texorpdfstring{add\_pass()}{add\_pass()}}
{\footnotesize\ttfamily void theo\+::obf\+::engine\+\_\+t\+::add\+\_\+pass (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classtheo_1_1obf_1_1pass__t}{pass\+\_\+t}} $\ast$}]{pass }\end{DoxyParamCaption})}



add a pass to the engine. the order in which you call this function matters as the underlying data structure that contains the passes is a vector. 


\begin{DoxyParams}{Parameters}
{\em pass} & a pointer to the pass in which to add to the engine.\\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{classtheo_1_1obf_1_1engine__t_a545af3868f9037dbbfefb02e03e60f8a}\label{classtheo_1_1obf_1_1engine__t_a545af3868f9037dbbfefb02e03e60f8a}} 
\index{theo::obf::engine\_t@{theo::obf::engine\_t}!get@{get}}
\index{get@{get}!theo::obf::engine\_t@{theo::obf::engine\_t}}
\doxysubsubsection{\texorpdfstring{get()}{get()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{classtheo_1_1obf_1_1engine__t}{engine\+\_\+t}}$\ast$ theo\+::obf\+::engine\+\_\+t\+::get (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



get the singleton object of this class. 

\begin{DoxyReturn}{Returns}
the singleton object of this class.
\end{DoxyReturn}
\mbox{\Hypertarget{classtheo_1_1obf_1_1engine__t_a7acfdbe9c229cf1f351cec610ab193d3}\label{classtheo_1_1obf_1_1engine__t_a7acfdbe9c229cf1f351cec610ab193d3}} 
\index{theo::obf::engine\_t@{theo::obf::engine\_t}!run@{run}}
\index{run@{run}!theo::obf::engine\_t@{theo::obf::engine\_t}}
\doxysubsubsection{\texorpdfstring{run()}{run()}}
{\footnotesize\ttfamily void theo\+::obf\+::engine\+\_\+t\+::run (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classtheo_1_1decomp_1_1symbol__t}{decomp\+::symbol\+\_\+t}} $\ast$}]{sym }\end{DoxyParamCaption})}



run all the passes on the symbol. this function will only run a pass if the symbol is the same type as the pass requires. 


\begin{DoxyParams}{Parameters}
{\em sym} & symbol to run all passes on.\\
\hline
\end{DoxyParams}


The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
include/obf/\mbox{\hyperlink{engine_8hpp}{engine.\+hpp}}\end{DoxyCompactItemize}
