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


the main decomposition class which is responsible for breaking down lib file into coff files, and extracted used symbols from the coff files.  




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

\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{classtheo_1_1decomp_1_1decomp__t_a35cfac16bd918d576b29e04388690d68}{decomp\+\_\+t}} (std\+::vector$<$ std\+::uint8\+\_\+t $>$ \&\mbox{\hyperlink{classtheo_1_1decomp_1_1decomp__t_a165d6c4840368e83eccb0f7a390d89aa}{lib}}, \mbox{\hyperlink{classtheo_1_1recomp_1_1symbol__table__t}{recomp\+::symbol\+\_\+table\+\_\+t}} $\ast$\mbox{\hyperlink{classtheo_1_1decomp_1_1decomp__t_a4acd873857bf96e996573c78254a1875}{syms}})
\begin{DoxyCompactList}\small\item\em the explicit constructor for \mbox{\hyperlink{classtheo_1_1decomp_1_1decomp__t}{decomp\+\_\+t}} \end{DoxyCompactList}\item 
std\+::vector$<$ \mbox{\hyperlink{classtheo_1_1decomp_1_1routine__t}{routine\+\_\+t}} $>$ \mbox{\hyperlink{classtheo_1_1decomp_1_1decomp__t_a072d489230e01f634557c5cd6a734d6a}{rtns}} ()
\begin{DoxyCompactList}\small\item\em gets all of the routine objects. \end{DoxyCompactList}\item 
std\+::vector$<$ std\+::uint8\+\_\+t $>$ \mbox{\hyperlink{classtheo_1_1decomp_1_1decomp__t_a165d6c4840368e83eccb0f7a390d89aa}{lib}} ()
\begin{DoxyCompactList}\small\item\em gets a vector of bytes consisting of the lib file. \end{DoxyCompactList}\item 
std\+::vector$<$ std\+::vector$<$ std\+::uint8\+\_\+t $>$ $>$ \mbox{\hyperlink{classtheo_1_1decomp_1_1decomp__t_afa3f22948f6e5e3b6a32b82a76226c3f}{objs}} ()
\begin{DoxyCompactList}\small\item\em gets all the obj files as a vector of a vector of bytes. \end{DoxyCompactList}\item 
\mbox{\hyperlink{classtheo_1_1recomp_1_1symbol__table__t}{recomp\+::symbol\+\_\+table\+\_\+t}} $\ast$ \mbox{\hyperlink{classtheo_1_1decomp_1_1decomp__t_a4acd873857bf96e996573c78254a1875}{syms}} ()
\begin{DoxyCompactList}\small\item\em gets the symbol table. \end{DoxyCompactList}\item 
std\+::map$<$ coff\+::section\+\_\+header\+\_\+t $\ast$, std\+::size\+\_\+t $>$ \& \mbox{\hyperlink{classtheo_1_1decomp_1_1decomp__t_a47e3a85ee0121f3c3795b242aea75902}{scn\+\_\+hash\+\_\+tbl}} ()
\begin{DoxyCompactList}\small\item\em gets the section hash table section header -\/-\/$>$ hash of the section header ptr. \end{DoxyCompactList}\item 
std\+::optional$<$ \mbox{\hyperlink{classtheo_1_1recomp_1_1symbol__table__t}{recomp\+::symbol\+\_\+table\+\_\+t}} $\ast$ $>$ \mbox{\hyperlink{classtheo_1_1decomp_1_1decomp__t_a712b162fb8f9e5529b90dfb7fc1b9199}{decompose}} (std\+::string \&entry\+\_\+sym)
\begin{DoxyCompactList}\small\item\em decomposes (extracts) the symbols used. this function determines all used symbols given the entry point. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
the main decomposition class which is responsible for breaking down lib file into coff files, and extracted used symbols from the coff files. 



Definition at line 61 of file decomp.\+hpp.



\doxysubsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{classtheo_1_1decomp_1_1decomp__t_a35cfac16bd918d576b29e04388690d68}\label{classtheo_1_1decomp_1_1decomp__t_a35cfac16bd918d576b29e04388690d68}} 
\index{theo::decomp::decomp\_t@{theo::decomp::decomp\_t}!decomp\_t@{decomp\_t}}
\index{decomp\_t@{decomp\_t}!theo::decomp::decomp\_t@{theo::decomp::decomp\_t}}
\doxysubsubsection{\texorpdfstring{decomp\_t()}{decomp\_t()}}
{\footnotesize\ttfamily theo\+::decomp\+::decomp\+\_\+t\+::decomp\+\_\+t (\begin{DoxyParamCaption}\item[{std\+::vector$<$ std\+::uint8\+\_\+t $>$ \&}]{lib,  }\item[{\mbox{\hyperlink{classtheo_1_1recomp_1_1symbol__table__t}{recomp\+::symbol\+\_\+table\+\_\+t}} $\ast$}]{syms }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [explicit]}}



the explicit constructor for \mbox{\hyperlink{classtheo_1_1decomp_1_1decomp__t}{decomp\+\_\+t}} 


\begin{DoxyParams}{Parameters}
{\em lib} & vector of bytes containing the lib file.\\
\hline
{\em syms} & symbol table that gets populated and managed by this class.\\
\hline
\end{DoxyParams}


\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{classtheo_1_1decomp_1_1decomp__t_a712b162fb8f9e5529b90dfb7fc1b9199}\label{classtheo_1_1decomp_1_1decomp__t_a712b162fb8f9e5529b90dfb7fc1b9199}} 
\index{theo::decomp::decomp\_t@{theo::decomp::decomp\_t}!decompose@{decompose}}
\index{decompose@{decompose}!theo::decomp::decomp\_t@{theo::decomp::decomp\_t}}
\doxysubsubsection{\texorpdfstring{decompose()}{decompose()}}
{\footnotesize\ttfamily std\+::optional$<$\mbox{\hyperlink{classtheo_1_1recomp_1_1symbol__table__t}{recomp\+::symbol\+\_\+table\+\_\+t}}$\ast$$>$ theo\+::decomp\+::decomp\+\_\+t\+::decompose (\begin{DoxyParamCaption}\item[{std\+::string \&}]{entry\+\_\+sym }\end{DoxyParamCaption})}



decomposes (extracts) the symbols used. this function determines all used symbols given the entry point. 


\begin{DoxyParams}{Parameters}
{\em entry\+\_\+sym} & the entry point symbol name.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
returns an optional pointer to the symbol table. no value in the optional object on failure.
\end{DoxyReturn}
\mbox{\Hypertarget{classtheo_1_1decomp_1_1decomp__t_a165d6c4840368e83eccb0f7a390d89aa}\label{classtheo_1_1decomp_1_1decomp__t_a165d6c4840368e83eccb0f7a390d89aa}} 
\index{theo::decomp::decomp\_t@{theo::decomp::decomp\_t}!lib@{lib}}
\index{lib@{lib}!theo::decomp::decomp\_t@{theo::decomp::decomp\_t}}
\doxysubsubsection{\texorpdfstring{lib()}{lib()}}
{\footnotesize\ttfamily std\+::vector$<$std\+::uint8\+\_\+t$>$ theo\+::decomp\+::decomp\+\_\+t\+::lib (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



gets a vector of bytes consisting of the lib file. 

\begin{DoxyReturn}{Returns}
a vector of bytes consisting of the lib file.
\end{DoxyReturn}
\mbox{\Hypertarget{classtheo_1_1decomp_1_1decomp__t_afa3f22948f6e5e3b6a32b82a76226c3f}\label{classtheo_1_1decomp_1_1decomp__t_afa3f22948f6e5e3b6a32b82a76226c3f}} 
\index{theo::decomp::decomp\_t@{theo::decomp::decomp\_t}!objs@{objs}}
\index{objs@{objs}!theo::decomp::decomp\_t@{theo::decomp::decomp\_t}}
\doxysubsubsection{\texorpdfstring{objs()}{objs()}}
{\footnotesize\ttfamily std\+::vector$<$std\+::vector$<$std\+::uint8\+\_\+t$>$ $>$ theo\+::decomp\+::decomp\+\_\+t\+::objs (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



gets all the obj files as a vector of a vector of bytes. 

\begin{DoxyReturn}{Returns}
all the obj files as a vector of a vector of bytes.
\end{DoxyReturn}
\mbox{\Hypertarget{classtheo_1_1decomp_1_1decomp__t_a072d489230e01f634557c5cd6a734d6a}\label{classtheo_1_1decomp_1_1decomp__t_a072d489230e01f634557c5cd6a734d6a}} 
\index{theo::decomp::decomp\_t@{theo::decomp::decomp\_t}!rtns@{rtns}}
\index{rtns@{rtns}!theo::decomp::decomp\_t@{theo::decomp::decomp\_t}}
\doxysubsubsection{\texorpdfstring{rtns()}{rtns()}}
{\footnotesize\ttfamily std\+::vector$<$\mbox{\hyperlink{classtheo_1_1decomp_1_1routine__t}{routine\+\_\+t}}$>$ theo\+::decomp\+::decomp\+\_\+t\+::rtns (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



gets all of the routine objects. 

\begin{DoxyReturn}{Returns}
vector of routine objects.
\end{DoxyReturn}
\mbox{\Hypertarget{classtheo_1_1decomp_1_1decomp__t_a47e3a85ee0121f3c3795b242aea75902}\label{classtheo_1_1decomp_1_1decomp__t_a47e3a85ee0121f3c3795b242aea75902}} 
\index{theo::decomp::decomp\_t@{theo::decomp::decomp\_t}!scn\_hash\_tbl@{scn\_hash\_tbl}}
\index{scn\_hash\_tbl@{scn\_hash\_tbl}!theo::decomp::decomp\_t@{theo::decomp::decomp\_t}}
\doxysubsubsection{\texorpdfstring{scn\_hash\_tbl()}{scn\_hash\_tbl()}}
{\footnotesize\ttfamily std\+::map$<$coff\+::section\+\_\+header\+\_\+t$\ast$, std\+::size\+\_\+t$>$\& theo\+::decomp\+::decomp\+\_\+t\+::scn\+\_\+hash\+\_\+tbl (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



gets the section hash table section header -\/-\/$>$ hash of the section header ptr. 

\begin{DoxyReturn}{Returns}
the section hash table section header -\/-\/$>$ hash of the section header ptr.
\end{DoxyReturn}
\mbox{\Hypertarget{classtheo_1_1decomp_1_1decomp__t_a4acd873857bf96e996573c78254a1875}\label{classtheo_1_1decomp_1_1decomp__t_a4acd873857bf96e996573c78254a1875}} 
\index{theo::decomp::decomp\_t@{theo::decomp::decomp\_t}!syms@{syms}}
\index{syms@{syms}!theo::decomp::decomp\_t@{theo::decomp::decomp\_t}}
\doxysubsubsection{\texorpdfstring{syms()}{syms()}}
{\footnotesize\ttfamily \mbox{\hyperlink{classtheo_1_1recomp_1_1symbol__table__t}{recomp\+::symbol\+\_\+table\+\_\+t}}$\ast$ theo\+::decomp\+::decomp\+\_\+t\+::syms (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



gets the symbol table. 

\begin{DoxyReturn}{Returns}
the symbol table.
\end{DoxyReturn}


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