<trclass="memdesc:a0a9ae3322261b97cf1dc47c908ef3c6d"><tdclass="mdescLeft"> </td><tdclass="mdescRight">explicit constructor for theo class. <ahref="../../d9/dbc/classtheo_1_1theo__t.html#a0a9ae3322261b97cf1dc47c908ef3c6d">More...</a><br/></td></tr>
<trclass="memdesc:a66257ff5d9825483d85e58384a12760a"><tdclass="mdescLeft"> </td><tdclass="mdescRight">decomposes the lib file and return the number of symbols that are used. <ahref="../../d9/dbc/classtheo_1_1theo__t.html#a66257ff5d9825483d85e58384a12760a">More...</a><br/></td></tr>
<trclass="memdesc:a39e067dd71f82b437c6a418d41e38b27"><tdclass="mdescLeft"> </td><tdclass="mdescRight">compose the decomposed module. This will run obfuscation passes, the map and resolve symbols to each other. <ahref="../../d9/dbc/classtheo_1_1theo__t.html#a39e067dd71f82b437c6a418d41e38b27">More...</a><br/></td></tr>
<trclass="memdesc:a97c52bda4b07a456ff1ea6f3c1cdbe24"><tdclass="mdescLeft"> </td><tdclass="mdescRight">given the name of a symbol, it returns the address of where its mapped. <ahref="../../d9/dbc/classtheo_1_1theo__t.html#a97c52bda4b07a456ff1ea6f3c1cdbe24">More...</a><br/></td></tr>
<divclass="textblock"><p>the main class which encapsulates a symbol table, decomp, and recomp objects. This class is a bridge that connects all three: decomp, obf, recomp. </p>
<p>You will create an object of this type when using theo.</p>
</div><h2class="groupheader">Constructor & Destructor Documentation</h2>
<divclass="ttc"id="aclasstheo_1_1recomp_1_1recomp__t_html_a0da9a904b0057c14190218592aff0f07"><divclass="ttname"><ahref="../../d5/d05/classtheo_1_1recomp_1_1recomp__t.html#a0da9a904b0057c14190218592aff0f07">theo::recomp::recomp_t::allocator</a></div><divclass="ttdeci">void allocator(allocator_t alloc)</div><divclass="ttdoc">setter for the allocater lambda function.</div><divclass="ttdef"><b>Definition:</b> recomp.cpp:163</div></div>
<divclass="ttc"id="aclasstheo_1_1recomp_1_1recomp__t_html_a1be6d0cdb57565c31b138248c8b2d470"><divclass="ttname"><ahref="../../d5/d05/classtheo_1_1recomp_1_1recomp__t.html#a1be6d0cdb57565c31b138248c8b2d470">theo::recomp::recomp_t::resolver</a></div><divclass="ttdeci">void resolver(resolver_t resolve)</div><divclass="ttdoc">setter for the resolve lambda function.</div><divclass="ttdef"><b>Definition:</b> recomp.cpp:171</div></div>
<divclass="ttc"id="aclasstheo_1_1recomp_1_1recomp__t_html_aa6fecf752d4c5bc211e164d8496724b1"><divclass="ttname"><ahref="../../d5/d05/classtheo_1_1recomp_1_1recomp__t.html#aa6fecf752d4c5bc211e164d8496724b1">theo::recomp::recomp_t::copier</a></div><divclass="ttdeci">void copier(copier_t copy)</div><divclass="ttdoc">setter for the copier lambda function.</div><divclass="ttdef"><b>Definition:</b> recomp.cpp:167</div></div>
<divclass="ttc"id="aclasstheo_1_1obf_1_1engine__t_html_a58715f5c3ade824a65e602aba570040e"><divclass="ttname"><ahref="../../d9/d18/classtheo_1_1obf_1_1engine__t.html#a58715f5c3ade824a65e602aba570040e">theo::obf::engine_t::get</a></div><divclass="ttdeci">static engine_t * get()</div><divclass="ttdoc">get the singleton object of this class.</div><divclass="ttdef"><b>Definition:</b> engine.cpp:34</div></div>
<divclass="ttc"id="aclasstheo_1_1recomp_1_1recomp__t_html_a080d88f122d12faf2e328c9bdd10be6e"><divclass="ttname"><ahref="../../d5/d05/classtheo_1_1recomp_1_1recomp__t.html#a080d88f122d12faf2e328c9bdd10be6e">theo::recomp::recomp_t::copy_syms</a></div><divclass="ttdeci">void copy_syms()</div><divclass="ttdoc">when called, this function copies symbols into allocations.</div><divclass="ttdef"><b>Definition:</b> recomp.cpp:155</div></div>
<divclass="ttc"id="aclasstheo_1_1recomp_1_1recomp__t_html_a299fbede378f04991df2e39293307094"><divclass="ttname"><ahref="../../d5/d05/classtheo_1_1recomp_1_1recomp__t.html#a299fbede378f04991df2e39293307094">theo::recomp::recomp_t::resolve</a></div><divclass="ttdeci">void resolve()</div><divclass="ttdoc">when called, this function resolves all relocations in every symbol.</div><divclass="ttdef"><b>Definition:</b> recomp.cpp:92</div></div>
<divclass="ttc"id="aclasstheo_1_1recomp_1_1recomp__t_html_a78502665e218d3addca9b1e5e3875f39"><divclass="ttname"><ahref="../../d5/d05/classtheo_1_1recomp_1_1recomp__t.html#a78502665e218d3addca9b1e5e3875f39">theo::recomp::recomp_t::allocate</a></div><divclass="ttdeci">void allocate()</div><divclass="ttdoc">when called, this function allocates space for every symbol.</div><divclass="ttdef"><b>Definition:</b> recomp.cpp:40</div></div>
<divclass="ttc"id="aclasstheo_1_1recomp_1_1symbol__table__t_html_a35008ba37814a94209cf979302e13e6d"><divclass="ttname"><ahref="../../db/d77/classtheo_1_1recomp_1_1symbol__table__t.html#a35008ba37814a94209cf979302e13e6d">theo::recomp::symbol_table_t::for_each</a></div><divclass="ttdeci">void for_each(std::function< void(decomp::symbol_t &sym)> fn)</div><divclass="ttdoc">this function is a wrapper function that allows you to get at each entry in the symbol table by refer...</div><divclass="ttdef"><b>Definition:</b> symbol_table.cpp:49</div></div>
<divclass="line"><aname="l00046"></a><spanclass="lineno"> 46</span> <spanclass="keyword">auto</span> res = m_dcmp.<aclass="code"href="../../d6/d0e/classtheo_1_1decomp_1_1decomp__t.html#ae23353a4293aa30969b6d3fa37359469">decompose</a>(m_entry_sym);</div>
<divclass="line"><aname="l00048"></a><spanclass="lineno"> 48</span>  spdlog::error(<spanclass="stringliteral">"failed to decompose...\n"</span>);</div>
<divclass="ttc"id="aclasstheo_1_1decomp_1_1decomp__t_html_ae23353a4293aa30969b6d3fa37359469"><divclass="ttname"><ahref="../../d6/d0e/classtheo_1_1decomp_1_1decomp__t.html#ae23353a4293aa30969b6d3fa37359469">theo::decomp::decomp_t::decompose</a></div><divclass="ttdeci">std::optional< recomp::symbol_table_t * > decompose(std::string &entry_sym)</div><divclass="ttdoc">decomposes (extracts) the symbols used. this function determines all used symbols given the entry poi...</div><divclass="ttdef"><b>Definition:</b> decomp.cpp:37</div></div>
<divclass="line"><aname="l00069"></a><spanclass="lineno"> 69</span> <spanclass="keyword">auto</span> val = m_sym_tbl.<aclass="code"href="../../db/d77/classtheo_1_1recomp_1_1symbol__table__t.html#a308c0dbcc4d569467e0986b32ef30db5">sym_from_hash</a>(<aclass="code"href="../../d9/dd5/classtheo_1_1decomp_1_1symbol__t.html#a8695d75670cc4d61d275464e9109ff06">decomp::symbol_t::hash</a>(sym));</div>
<divclass="ttc"id="aclasstheo_1_1decomp_1_1symbol__t_html_a8695d75670cc4d61d275464e9109ff06"><divclass="ttname"><ahref="../../d9/dd5/classtheo_1_1decomp_1_1symbol__t.html#a8695d75670cc4d61d275464e9109ff06">theo::decomp::symbol_t::hash</a></div><divclass="ttdeci">std::size_t hash()</div><divclass="ttdoc">gets the hash of the symbol name.</div><divclass="ttdef"><b>Definition:</b> symbol.cpp:88</div></div>
<divclass="ttc"id="aclasstheo_1_1recomp_1_1symbol__table__t_html_a308c0dbcc4d569467e0986b32ef30db5"><divclass="ttname"><ahref="../../db/d77/classtheo_1_1recomp_1_1symbol__table__t.html#a308c0dbcc4d569467e0986b32ef30db5">theo::recomp::symbol_table_t::sym_from_hash</a></div><divclass="ttdeci">std::optional< decomp::symbol_t * > sym_from_hash(std::size_t hash)</div><divclass="ttdoc">returns an optional pointer to a symbol from the symbol table given the symbols hash (hash of its nam...</div><divclass="ttdef"><b>Definition:</b> symbol_table.cpp:54</div></div>