I need to decompile an executable file into its source code and put the source code together again in such a way that it can be recompiled and work as it should. The only issue that I have with this is that I do not know in what language the program was written initially. Since Visual Basic is the programming language that I know best, I would prefer to decompile the executable to it. Is this possible? As far as I understand, executable files, regardless of what language they were written in, all compile to some form of ASM, meaning that it should be possible to decompile to any language that one wants to. Do I understand this correctly?
You are slightly correct. Languages like C and C++ do get compiled to native code(what you refer to as ASM), however decompiling them back to pseudo C/C++ is difficult and sometimes impossible. And even if successful, the code will not be 1:1 to the original.
It is also not possible(or rather, very very difficult) to decompile native code to something like Java or Python. These languages come with their own bytecode format and interpreters and hence do not compile to native code. However this does mean they can be decompiled to more or less their original format.