In principle it is possible to decompile a DLL, because you can certainly disassemble it. If you have a disassembly, you could search for patterns that C-compilers usually emit when compiling code, and then sort of guess what C-code it originated from.
However, this is not a trivial task and error-prone for sure. In the worst case, all these generators produce is a bunch of skeleton C functions with many ASM statements inside. In the best case, you still have to decipher random variable names for their logical meaning, because C compilers usually do not embed meta-data containing variable names and somesuch. In combination with debug builds and debug databases (pdb), it might make sense, though.