You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Theodosius/include/decomp/decomp.hpp

29 lines
715 B

#pragma once
#include <coff/image.hpp>
#include <cstdint>
#include <linuxpe>
#include <vector>
#include <optional>
#include <comp/symbol_table.hpp>
#include <decomp/routine.hpp>
namespace theo::decomp {
class decomp_t {
public:
explicit decomp_t(std::vector<std::uint8_t>& lib_data,
comp::symbol_table_t* syms);
std::vector<routine_t> rtns();
std::vector<std::uint8_t> lib();
std::vector<coff::image_t> objs();
comp::symbol_table_t* syms();
std::optional<comp::symbol_table_t*> decompose();
private:
std::vector<std::uint8_t> m_lib_data;
std::vector<coff::image_t> m_obj_imgs;
std::vector<routine_t> m_rtns;
comp::symbol_table_t* m_syms;
};
} // namespace theo::decomp