<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>
<pclass="definition">Definition at line <aclass="el"href="../../d2/d24/theo_8hpp_source.html#l00070">70</a> of file <aclass="el"href="../../d2/d24/theo_8hpp_source.html">theo.hpp</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="../../d2/d26/theo_8cpp_source.html#l00034">34</a> of file <aclass="el"href="../../d2/d26/theo_8cpp_source.html">theo.cpp</a>.</p>
<divclass="line"><spanclass="lineno"> 40</span> m_recmp.<aclass="code hl_function"href="../../d5/d05/classtheo_1_1recomp_1_1recomp__t.html#a0da9a904b0057c14190218592aff0f07"title="setter for the allocater lambda function.">allocator</a>(std::get<0>(lnkr_fns));</div>
<divclass="line"><spanclass="lineno"> 41</span> m_recmp.<aclass="code hl_function"href="../../d5/d05/classtheo_1_1recomp_1_1recomp__t.html#aa6fecf752d4c5bc211e164d8496724b1"title="setter for the copier lambda function.">copier</a>(std::get<1>(lnkr_fns));</div>
<divclass="line"><spanclass="lineno"> 42</span> m_recmp.<aclass="code hl_function"href="../../d5/d05/classtheo_1_1recomp_1_1recomp__t.html#a1be6d0cdb57565c31b138248c8b2d470"title="setter for the resolve lambda function.">resolver</a>(std::get<2>(lnkr_fns));</div>
<pclass="definition">Definition at line <aclass="el"href="../../d2/d26/theo_8cpp_source.html#l00056">56</a> of file <aclass="el"href="../../d2/d26/theo_8cpp_source.html">theo.cpp</a>.</p>
<divclass="line"><spanclass="lineno"> 59</span><spanclass="keyword">auto</span> engine = <aclass="code hl_function"href="../../d9/d18/classtheo_1_1obf_1_1engine__t.html#a58715f5c3ade824a65e602aba570040e"title="get the singleton object of this class.">obf::engine_t::get</a>();</div>
<divclass="line"><spanclass="lineno"> 60</span> m_sym_tbl.<aclass="code hl_function"href="../../db/d77/classtheo_1_1recomp_1_1symbol__table__t.html#a35008ba37814a94209cf979302e13e6d"title="this function is a wrapper function that allows you to get at each entry in the symbol table by refer...">for_each</a>([&](decomp::symbol_t& sym) { engine->run(&sym); });</div>
<divclass="line"><spanclass="lineno"> 62</span> m_recmp.<aclass="code hl_function"href="../../d5/d05/classtheo_1_1recomp_1_1recomp__t.html#a78502665e218d3addca9b1e5e3875f39"title="when called, this function allocates space for every symbol.">allocate</a>();</div>
<divclass="line"><spanclass="lineno"> 63</span> m_recmp.<aclass="code hl_function"href="../../d5/d05/classtheo_1_1recomp_1_1recomp__t.html#a299fbede378f04991df2e39293307094"title="when called, this function resolves all relocations in every symbol.">resolve</a>();</div>
<divclass="line"><spanclass="lineno"> 64</span> m_recmp.<aclass="code hl_function"href="../../d5/d05/classtheo_1_1recomp_1_1recomp__t.html#a080d88f122d12faf2e328c9bdd10be6e"title="when called, this function copies symbols into allocations.">copy_syms</a>();</div>
<divclass="line"><spanclass="lineno"> 65</span><spanclass="keywordflow">return</span> m_recmp.<aclass="code hl_function"href="../../d5/d05/classtheo_1_1recomp_1_1recomp__t.html#a299fbede378f04991df2e39293307094"title="when called, this function resolves all relocations in every symbol.">resolve</a>(m_entry_sym.data());</div>
<pclass="definition">Definition at line <aclass="el"href="../../d2/d26/theo_8cpp_source.html#l00045">45</a> of file <aclass="el"href="../../d2/d26/theo_8cpp_source.html">theo.cpp</a>.</p>
<divclass="line"><spanclass="lineno"> 46</span><spanclass="keyword">auto</span> res = m_dcmp.<aclass="code hl_function"href="../../d6/d0e/classtheo_1_1decomp_1_1decomp__t.html#ae23353a4293aa30969b6d3fa37359469"title="decomposes (extracts) the symbols used. this function determines all used symbols given the entry poi...">decompose</a>(m_entry_sym);</div>
<pclass="definition">Definition at line <aclass="el"href="../../d2/d26/theo_8cpp_source.html#l00068">68</a> of file <aclass="el"href="../../d2/d26/theo_8cpp_source.html">theo.cpp</a>.</p>
<divclass="line"><spanclass="lineno"> 69</span><spanclass="keyword">auto</span> val = m_sym_tbl.<aclass="code hl_function"href="../../db/d77/classtheo_1_1recomp_1_1symbol__table__t.html#a308c0dbcc4d569467e0986b32ef30db5"title="returns an optional pointer to a symbol from the symbol table given the symbols hash (hash of its nam...">sym_from_hash</a>(<aclass="code hl_function"href="../../d9/dd5/classtheo_1_1decomp_1_1symbol__t.html#a8695d75670cc4d61d275464e9109ff06"title="gets the hash of the symbol name.">decomp::symbol_t::hash</a>(sym));</div>
<pclass="reference">References <aclass="el"href="../../d8/d67/symbol_8cpp_source.html#l00088">theo::decomp::symbol_t::hash()</a>, and <aclass="el"href="../../da/d0c/symbol__table_8cpp_source.html#l00054">theo::recomp::symbol_table_t::sym_from_hash()</a>.</p>