|
template<stl::nttp::string S> |
constexpr auto | make_pattern () noexcept |
|
template<class F , class... Args> |
std::invoke_result_t< F, Args... > | invoke (F &&a_func, Args &&... a_args) noexcept(std::is_nothrow_invocable_v< F, Args... >) requires(std |
|
void | safe_write (std::uintptr_t a_dst, const void *a_src, std::size_t a_count) |
|
template<std::integral T> |
void | safe_write (std::uintptr_t a_dst, const T &a_data) |
|
template<class T > |
void | safe_write (std::uintptr_t a_dst, std::span< T > a_data) |
|
void | safe_fill (std::uintptr_t a_dst, std::uint8_t a_value, std::size_t a_count) |
|
constexpr bool | operator== (const Version &a_lhs, const Version &a_rhs) noexcept |
|
constexpr std::strong_ordering | operator<=> (const Version &a_lhs, const Version &a_rhs) noexcept |
|
std::optional< Version > | GetFileVersion (stl::zwstring a_filename) |
|
|
constexpr std::uint8_t | NOP = 0x90 |
|
constexpr std::uint8_t | NOP2 [] = { 0x66, 0x90 } |
|
constexpr std::uint8_t | NOP3 [] = { 0x0F, 0x1F, 0x00 } |
|
constexpr std::uint8_t | NOP4 [] = { 0x0F, 0x1F, 0x40, 0x00 } |
|
constexpr std::uint8_t | NOP5 [] = { 0x0F, 0x1F, 0x44, 0x00, 0x00 } |
|
constexpr std::uint8_t | NOP6 [] = { 0x66, 0x0F, 0x1F, 0x44, 0x00, 0x00 } |
|
constexpr std::uint8_t | NOP7 [] = { 0x0F, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00 } |
|
constexpr std::uint8_t | NOP8 [] = { 0x0F, 0x1F, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00 } |
|
constexpr std::uint8_t | NOP9 [] = { 0x66, 0x0F, 0x1F, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00 } |
|
constexpr std::uint8_t | JMP8 = 0xEB |
|
constexpr std::uint8_t | JMP32 = 0xE9 |
|
constexpr std::uint8_t | RET = 0xC3 |
|
constexpr std::uint8_t | INT3 = 0xCC |
|