diff --git a/include/obf/pass.hpp b/include/obf/pass.hpp
index 24fdd41..0c9088f 100644
--- a/include/obf/pass.hpp
+++ b/include/obf/pass.hpp
@@ -63,11 +63,53 @@ class pass_t {
explicit pass_t(decomp::sym_type_t sym_type) : m_sym_type(sym_type){};
///
- /// virtual method which must be implimented by the pass that inherits this
- /// class.
+ /// This virtual method is invoked before the recomp stage of Theodosius. This
+ /// allows you to manipulate symbols in a generic manner.
///
/// a symbol of the same type of m_sym_type.
- virtual void run(decomp::symbol_t* sym) = 0;
+ virtual void pre_recomp_pass(decomp::symbol_t* sym) = 0;
+
+ ///
+ /// This virtual method is invoked prior to calling the "allocator". This
+ /// allows you to manipulate the symbol prior to memory being allocated for
+ /// it.
+ ///
+ /// The symbol that memory is being allocated for.
+ /// The size of the symbol that memory is being allocated
+ /// for.
+ /// returns the size of the symbol.
+ virtual std::uint32_t pre_allocation_pass(decomp::symbol_t* sym,
+ std::uint32_t size) = 0;
+
+ ///
+ /// This virtual method is invoked after the call to the "allocator". This
+ /// allows you to manipulate the symbol after memory has been allocated for
+ /// it.
+ ///
+ /// Allocation address (can be linear virtual address or
+ /// file offset address)
+ /// The symbol for which allocation was made for.
+ /// Size of the allocation.
+ virtual void post_allocation_pass(decomp::symbol_t* sym,
+ std::uintptr_t dest,
+ std::uint32_t size) = 0;
+
+ ///
+ /// This virtual method is invoked prior to calling the "copier". This allows
+ /// you to manipulate the symbol prior to it being copied into memory.
+ ///
+ /// Symbol being copied into memory...
+ /// Memory destination of the copy...
+ ///
+ ///
+ virtual std::uintptr_t pre_copier_pass(decomp::symbol_t* sym,
+ std::uintptr_t dest,
+ std::uint32_t size) = 0;
+
+ virtual void post_copier_pass() = 0;
+
+ virtual void pre_resolver_pass() = 0;
+ virtual void post_resolver_pass() = 0;
///
/// gets the passes symbol type.