Remember what UML stands for Unified Modeling Language. It's not just for modeling Object Relations, which I believe is a common misconception of UML. It can also be used for state diagrams, business processes, database schemas, ... See : http://en.wikipedia.org/wiki/Unified_Modeling_Language .
I recently used IBM's Rational Software Architect to convert State Diagrams into Perl. But for Perl we had to write our own translation files since Architect didn't include them for Perl.
But if you are talking about C code, Architect has a built in feature to reverse engineer written code into a UML diagram. I've used that feature for Java and it works pretty well and creates a Object Diagram. I haven't used it for C before, so I don't know if it will turn it into a Sequence, Activity or State Diagram.
You can download the trial version of Software Architect and see if it works for your code.