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

31 lines
745 B

#pragma once
#include <cstdint>
#include <linuxpe>
#include <optional>
#include <vector>
#include <spdlog/spdlog.h>
#include <comp/symbol_table.hpp>
#include <decomp/routine.hpp>
#include <coff/archive.hpp>
#include <coff/image.hpp>
namespace theo::decomp {
class decomp_t {
public:
explicit decomp_t(std::vector<std::uint8_t>& lib, 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:
const std::vector<std::uint8_t> m_lib;
std::vector<coff::image_t*> m_objs;
std::vector<routine_t> m_rtns;
comp::symbol_table_t* m_syms;
};
} // namespace theo::decomp