\hypertarget{classtheo_1_1decomp_1_1routine__t}{}\doxysection{theo\+::decomp\+::routine\+\_\+t Class Reference}
\label{classtheo_1_1decomp_1_1routine__t}\index{theo::decomp::routine\_t@{theo::decomp::routine\_t}}


the routine class which is responsible for creating symbols for routines. if the routine is located inside a section with the name \char`\"{}.\+split\char`\"{} it will break functions into instruction symbols.  




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

\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{classtheo_1_1decomp_1_1routine__t_ab9f0693c5ec50954d953b28bebe4426b}{routine\+\_\+t}} (coff\+::symbol\+\_\+t $\ast$sym, coff\+::image\+\_\+t $\ast$img, coff\+::section\+\_\+header\+\_\+t $\ast$\mbox{\hyperlink{classtheo_1_1decomp_1_1routine__t_a5bb350cf3511fd82d7f0c21f50834bb0}{scn}}, std\+::vector$<$ std\+::uint8\+\_\+t $>$ \&fn, \mbox{\hyperlink{namespacetheo_1_1decomp_af96177687d0ad683c5897d8fa01135f9}{sym\+\_\+type\+\_\+t}} dcmp\+\_\+type)
\begin{DoxyCompactList}\small\item\em the explicit constructor for \mbox{\hyperlink{classtheo_1_1decomp_1_1routine__t}{routine\+\_\+t}}. \end{DoxyCompactList}\item 
std\+::vector$<$ \mbox{\hyperlink{classtheo_1_1decomp_1_1symbol__t}{decomp\+::symbol\+\_\+t}} $>$ \mbox{\hyperlink{classtheo_1_1decomp_1_1routine__t_a61f63c3d5c101172da9fb7657f7c16f6}{decompose}} ()
\begin{DoxyCompactList}\small\item\em decompose the function into symbol(s). \end{DoxyCompactList}\item 
coff\+::section\+\_\+header\+\_\+t $\ast$ \mbox{\hyperlink{classtheo_1_1decomp_1_1routine__t_a5bb350cf3511fd82d7f0c21f50834bb0}{scn}} ()
\begin{DoxyCompactList}\small\item\em gets the section header of the section in which the symbol is located in. \end{DoxyCompactList}\item 
std\+::vector$<$ std\+::uint8\+\_\+t $>$ \mbox{\hyperlink{classtheo_1_1decomp_1_1routine__t_ae75762b8cb7080c432edb36c3fdcafbc}{data}} ()
\begin{DoxyCompactList}\small\item\em gets the function bytes. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
the routine class which is responsible for creating symbols for routines. if the routine is located inside a section with the name \char`\"{}.\+split\char`\"{} it will break functions into instruction symbols. 



Definition at line 53 of file routine.\+hpp.



\doxysubsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{classtheo_1_1decomp_1_1routine__t_ab9f0693c5ec50954d953b28bebe4426b}\label{classtheo_1_1decomp_1_1routine__t_ab9f0693c5ec50954d953b28bebe4426b}} 
\index{theo::decomp::routine\_t@{theo::decomp::routine\_t}!routine\_t@{routine\_t}}
\index{routine\_t@{routine\_t}!theo::decomp::routine\_t@{theo::decomp::routine\_t}}
\doxysubsubsection{\texorpdfstring{routine\_t()}{routine\_t()}}
{\footnotesize\ttfamily theo\+::decomp\+::routine\+\_\+t\+::routine\+\_\+t (\begin{DoxyParamCaption}\item[{coff\+::symbol\+\_\+t $\ast$}]{sym,  }\item[{coff\+::image\+\_\+t $\ast$}]{img,  }\item[{coff\+::section\+\_\+header\+\_\+t $\ast$}]{scn,  }\item[{std\+::vector$<$ std\+::uint8\+\_\+t $>$ \&}]{fn,  }\item[{\mbox{\hyperlink{namespacetheo_1_1decomp_af96177687d0ad683c5897d8fa01135f9}{sym\+\_\+type\+\_\+t}}}]{dcmp\+\_\+type }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [explicit]}}



the explicit constructor for \mbox{\hyperlink{classtheo_1_1decomp_1_1routine__t}{routine\+\_\+t}}. 


\begin{DoxyParams}{Parameters}
{\em sym} & the coff symbol for the routine.\\
\hline
{\em img} & the coff image which contains the symbol.\\
\hline
{\em scn} & the section header of the section that contains the symbol.\\
\hline
{\em fn} & the data (bytes) of the function.\\
\hline
{\em dcmp\+\_\+type} & the type of decomp to do. if this is sym\+\_\+type\+\_\+t\+::function then this class wont split the function up into individual instructions.\\
\hline
\end{DoxyParams}


\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{classtheo_1_1decomp_1_1routine__t_ae75762b8cb7080c432edb36c3fdcafbc}\label{classtheo_1_1decomp_1_1routine__t_ae75762b8cb7080c432edb36c3fdcafbc}} 
\index{theo::decomp::routine\_t@{theo::decomp::routine\_t}!data@{data}}
\index{data@{data}!theo::decomp::routine\_t@{theo::decomp::routine\_t}}
\doxysubsubsection{\texorpdfstring{data()}{data()}}
{\footnotesize\ttfamily std\+::vector$<$std\+::uint8\+\_\+t$>$ theo\+::decomp\+::routine\+\_\+t\+::data (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



gets the function bytes. 

\begin{DoxyReturn}{Returns}
the function bytes.
\end{DoxyReturn}
\mbox{\Hypertarget{classtheo_1_1decomp_1_1routine__t_a61f63c3d5c101172da9fb7657f7c16f6}\label{classtheo_1_1decomp_1_1routine__t_a61f63c3d5c101172da9fb7657f7c16f6}} 
\index{theo::decomp::routine\_t@{theo::decomp::routine\_t}!decompose@{decompose}}
\index{decompose@{decompose}!theo::decomp::routine\_t@{theo::decomp::routine\_t}}
\doxysubsubsection{\texorpdfstring{decompose()}{decompose()}}
{\footnotesize\ttfamily std\+::vector$<$\mbox{\hyperlink{classtheo_1_1decomp_1_1symbol__t}{decomp\+::symbol\+\_\+t}}$>$ theo\+::decomp\+::routine\+\_\+t\+::decompose (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



decompose the function into symbol(s). 

\begin{DoxyReturn}{Returns}
symbol(s) of the function.
\end{DoxyReturn}
\mbox{\Hypertarget{classtheo_1_1decomp_1_1routine__t_a5bb350cf3511fd82d7f0c21f50834bb0}\label{classtheo_1_1decomp_1_1routine__t_a5bb350cf3511fd82d7f0c21f50834bb0}} 
\index{theo::decomp::routine\_t@{theo::decomp::routine\_t}!scn@{scn}}
\index{scn@{scn}!theo::decomp::routine\_t@{theo::decomp::routine\_t}}
\doxysubsubsection{\texorpdfstring{scn()}{scn()}}
{\footnotesize\ttfamily coff\+::section\+\_\+header\+\_\+t$\ast$ theo\+::decomp\+::routine\+\_\+t\+::scn (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



gets the section header of the section in which the symbol is located in. 

\begin{DoxyReturn}{Returns}
the section header of the section in which the symbol is located in.
\end{DoxyReturn}


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