Is it possible to dump a running program's memory (Windows OS), and then later "reinsert" that memory when the program is run again?
Actually, I think this should technically be possible, without having put too much thought into it. Freeze all threads, save thread context state for all of them, enumerate all of the memory used by the program and dump it alongside meta data.
A problem would be stuff like open handles (files, connected sockets etc.) but for programs within a limited scope I'd say it's doable. I don't know of any tool that implements something like that though.
On a bigger scale, snapshots in VM applications do just that.
Is there a specific case you'd like to solve with this?