As you correctly mentioned, this is a pseudo C code which output a C-like code. This code can't be compiled since it's not a valid C code. This output can be shown using the pdc
command.
radare2 contains plugins for decompilers like Snowman and retdec. You can read more about it and my answer here. With these decompilers you have high chances to success with compiling the generated code. In general, it is not recommended to rely on decompilation to achieve 1:1 result compared to the original source code. Decompilation is very complex and has high probability to fail and miss some information.
Regarding to make changes to registers -- although it is not "outside of the process" you can do it internally from radare by using the dr
command.
For example, to change EAX to 0x20 you can simply execute:
dr eax=0x20
And in case you ask in general whether you can change registers by yourself, the answer is yes. Just insert ASM code to you C program:
__asm {
mov eax, 5
add eax, 3
}