\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}