When you run a VMProtect-protected binary, the stub decrypts the VM bytecode in memory, spins up the virtual CPU (using registers like RSP for the VM stack, RSI for the VM instruction pointer), and begins executing your original program logic at a glacial pace.
With VMProtect, this is often impossible. Because the code is virtualized, it is never "unpacked" back into native x86 instructions in memory. The VM interprets the bytecode continuously. You can dump the memory, but all you will have is the VM engine and the bytecode—not the original assembly code you want to analyze.