#include "types.h" svm::pgs_base_struct vmexit_handler(void* unknown, svm::pguest_context context) { const auto vmcb = *reinterpret_cast( *reinterpret_cast( *reinterpret_cast( __readgsqword(0) + offset_vmcb_base) + offset_vmcb_link) + offset_vmcb); if (vmcb->exitcode == VMEXIT_CPUID && context->rcx == VMEXIT_KEY) { vmcb->rax = 0xC0FFEE; vmcb->rip = vmcb->nrip; return reinterpret_cast(__readgsqword(0)); } return reinterpret_cast( reinterpret_cast(&vmexit_handler) - svm::voyager_context.vcpu_run_rva)(unknown, context); }