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


the \mbox{\hyperlink{classtheo_1_1obf_1_1pass__t}{pass\+\_\+t}} class is a base clase for all passes made. you must override the \mbox{\hyperlink{classtheo_1_1obf_1_1pass__t_acfadc013ff0754d66a18baffdb1a61d1}{pass\+\_\+t\+::run}} virtual function and declare the logic of your pass there.  




{\ttfamily \#include \char`\"{}pass.\+hpp\char`\"{}}

Inheritance diagram for theo\+::obf\+::pass\+\_\+t\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=1.359223cm]{d4/dad/classtheo_1_1obf_1_1pass__t}
\end{center}
\end{figure}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{classtheo_1_1obf_1_1pass__t_abd4ab22cc2822b968267be7f8397d611}{pass\+\_\+t}} (\mbox{\hyperlink{namespacetheo_1_1decomp_af96177687d0ad683c5897d8fa01135f9}{decomp\+::sym\+\_\+type\+\_\+t}} \mbox{\hyperlink{classtheo_1_1obf_1_1pass__t_a46608a6c2dfb8ff657e44be9b50e0dfb}{sym\+\_\+type}})
\begin{DoxyCompactList}\small\item\em the explicit constructor of the \mbox{\hyperlink{classtheo_1_1obf_1_1pass__t}{pass\+\_\+t}} base class. \end{DoxyCompactList}\item 
virtual void \mbox{\hyperlink{classtheo_1_1obf_1_1pass__t_acfadc013ff0754d66a18baffdb1a61d1}{run}} (\mbox{\hyperlink{classtheo_1_1decomp_1_1symbol__t}{decomp\+::symbol\+\_\+t}} $\ast$sym)=0
\begin{DoxyCompactList}\small\item\em virtual method which must be implimented by the pass that inherits this class. \end{DoxyCompactList}\item 
\mbox{\hyperlink{namespacetheo_1_1decomp_af96177687d0ad683c5897d8fa01135f9}{decomp\+::sym\+\_\+type\+\_\+t}} \mbox{\hyperlink{classtheo_1_1obf_1_1pass__t_a46608a6c2dfb8ff657e44be9b50e0dfb}{sym\+\_\+type}} ()
\begin{DoxyCompactList}\small\item\em gets the passes symbol type. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
the \mbox{\hyperlink{classtheo_1_1obf_1_1pass__t}{pass\+\_\+t}} class is a base clase for all passes made. you must override the \mbox{\hyperlink{classtheo_1_1obf_1_1pass__t_acfadc013ff0754d66a18baffdb1a61d1}{pass\+\_\+t\+::run}} virtual function and declare the logic of your pass there. 

in the constructor of your pass you must call the super constructor (the \mbox{\hyperlink{classtheo_1_1obf_1_1pass__t}{pass\+\_\+t}} constructor) and pass it the type of symbol which you are interesting in receiving. 

Definition at line \mbox{\hyperlink{pass_8hpp_source_l00055}{55}} of file \mbox{\hyperlink{pass_8hpp_source}{pass.\+hpp}}.



\doxysubsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{classtheo_1_1obf_1_1pass__t_abd4ab22cc2822b968267be7f8397d611}\label{classtheo_1_1obf_1_1pass__t_abd4ab22cc2822b968267be7f8397d611}} 
\index{theo::obf::pass\_t@{theo::obf::pass\_t}!pass\_t@{pass\_t}}
\index{pass\_t@{pass\_t}!theo::obf::pass\_t@{theo::obf::pass\_t}}
\doxysubsubsection{\texorpdfstring{pass\_t()}{pass\_t()}}
{\footnotesize\ttfamily theo\+::obf\+::pass\+\_\+t\+::pass\+\_\+t (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespacetheo_1_1decomp_af96177687d0ad683c5897d8fa01135f9}{decomp\+::sym\+\_\+type\+\_\+t}}}]{sym\+\_\+type }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [explicit]}}



the explicit constructor of the \mbox{\hyperlink{classtheo_1_1obf_1_1pass__t}{pass\+\_\+t}} base class. 


\begin{DoxyParams}{Parameters}
{\em sym\+\_\+type} & the type of symbol in which the pass will run on. every symbol passed to the virtual \char`\"{}run\char`\"{} instruction will be of this type.\\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{pass_8hpp_source_l00063}{63}} of file \mbox{\hyperlink{pass_8hpp_source}{pass.\+hpp}}.


\begin{DoxyCode}{0}
\DoxyCodeLine{00063 : m\_sym\_type(\mbox{\hyperlink{classtheo_1_1obf_1_1pass__t_a46608a6c2dfb8ff657e44be9b50e0dfb}{sym\_type}})\{\};}

\end{DoxyCode}


\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{classtheo_1_1obf_1_1pass__t_acfadc013ff0754d66a18baffdb1a61d1}\label{classtheo_1_1obf_1_1pass__t_acfadc013ff0754d66a18baffdb1a61d1}} 
\index{theo::obf::pass\_t@{theo::obf::pass\_t}!run@{run}}
\index{run@{run}!theo::obf::pass\_t@{theo::obf::pass\_t}}
\doxysubsubsection{\texorpdfstring{run()}{run()}}
{\footnotesize\ttfamily virtual void theo\+::obf\+::pass\+\_\+t\+::run (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classtheo_1_1decomp_1_1symbol__t}{decomp\+::symbol\+\_\+t}} $\ast$}]{sym }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}



virtual method which must be implimented by the pass that inherits this class. 


\begin{DoxyParams}{Parameters}
{\em sym} & a symbol of the same type of m\+\_\+sym\+\_\+type.\\
\hline
\end{DoxyParams}


Implemented in \mbox{\hyperlink{classtheo_1_1obf_1_1hello__world__pass__t_a0d2d95f93ac083e157b2f12a8a56f1df}{theo\+::obf\+::hello\+\_\+world\+\_\+pass\+\_\+t}}, \mbox{\hyperlink{classtheo_1_1obf_1_1jcc__rewrite__pass__t_a5a93eb0945025ef3caefed8c63b65b23}{theo\+::obf\+::jcc\+\_\+rewrite\+\_\+pass\+\_\+t}}, \mbox{\hyperlink{classtheo_1_1obf_1_1next__inst__pass__t_ae4cbba78b14c2b9da794386e4d92f40f}{theo\+::obf\+::next\+\_\+inst\+\_\+pass\+\_\+t}}, and \mbox{\hyperlink{classtheo_1_1obf_1_1reloc__transform__pass__t_a24e122f6be18a88ea1809252ab3ec0b9}{theo\+::obf\+::reloc\+\_\+transform\+\_\+pass\+\_\+t}}.

\mbox{\Hypertarget{classtheo_1_1obf_1_1pass__t_a46608a6c2dfb8ff657e44be9b50e0dfb}\label{classtheo_1_1obf_1_1pass__t_a46608a6c2dfb8ff657e44be9b50e0dfb}} 
\index{theo::obf::pass\_t@{theo::obf::pass\_t}!sym\_type@{sym\_type}}
\index{sym\_type@{sym\_type}!theo::obf::pass\_t@{theo::obf::pass\_t}}
\doxysubsubsection{\texorpdfstring{sym\_type()}{sym\_type()}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespacetheo_1_1decomp_af96177687d0ad683c5897d8fa01135f9}{decomp\+::sym\+\_\+type\+\_\+t}} theo\+::obf\+::pass\+\_\+t\+::sym\+\_\+type (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



gets the passes symbol type. 

\begin{DoxyReturn}{Returns}
the passes symbol type.
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{pass_8hpp_source_l00076}{76}} of file \mbox{\hyperlink{pass_8hpp_source}{pass.\+hpp}}.


\begin{DoxyCode}{0}
\DoxyCodeLine{00076 \{ \textcolor{keywordflow}{return} m\_sym\_type; \}}

\end{DoxyCode}


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