I doubt a C decompiler would work well with code not written in C to start with.
There are certain programming constructs you can engineer in assembler that have absolutely no equivalent in C.
I wrote a small emulation core which was optimised in assembler, where each operation calculated the jump to the next code block directly and went there. A bit like having a big switch/case where the switch itself is never executed, but the code in each case clause is able to work out which one to jump to next relative to a base address (each block is padded to a certain 2^n size). There's absolutely no way to represent that in C.
So, code produced by pascal, could in theory contain machine level constructs that have no equivalent in C (not likely given their similarities).