I admire the dedication to projects like this.
First you have to (or someone else has to) disassemble the original binary, since the original source code is usually long gone.
Then you have to actually go through the code to try to understand it all - this is difficult to do in a high level language, but even more so in assembly. Even if it's already disassembled and someone else has already added comments it's still not easy.
If you don't already know the ASM language being used, you have to also learn that as you go.
Only once you have a complete understanding of the ASM code can you even begin reimplementing it in C.
Then you have to test it and make sure it actually functions like the original.