Decompiled executables will not produce C code, i'll be in assembly code for the platform it was meant to run on. To get C code you pretty much NEED to rewrite the program from scratch. There is no point in dumping the output of a decompiler to github, it is pointless.
So, I don't understand how a DMCA claim for this project could be valid, I thought they hadn't used any assets from the games and was a clean room project. If I'm not wrong then this is unacceptable and Take Two must be punished for that, but who am I kidding. The maximum here of what can be achieved is a removed DMCA claim, and thats it.
Disassemblers will product assembly code.
Decompilers (which have just about become something useful and more than computer science phd subject*.
https://www.hex-rays.com/products/decompiler/ https://www.retroreversing.com/intro-decompiling-with-ghidra https://github.com/avast/retdec-r2plugin ) often will produce quite readable C (sometimes even compilable), and if you have a list of function/variable names/symbols and whatever else because some developer left them in (
see Diablo, though far from the earliest example
https://www.pagetable.com/?p=28&cpage=1 ) or were present elsewhere (I don't know if this used the ones found in other language ports and mapped them back but that is what I heard) then so much the better.
*for the sake of others playing along while most learn in intro to computer science about the
halting problem then in most cases for practical day to day reality then most branches are not taken, or will end the program quite quickly (and thus can be ignored). If you run the program you might also generate data on what calls what and conditions (dynamic recompilation emulators doing a more advanced version of
http://fceux.com/web/help/TraceLogger.html and you can also note common data sets passed to functions or indeed infer them from conditionals/checks). Certain common C constructions and libraries with certain compilers (and it is not like programmers really used much more than MS' efforts, GNU/GCC, Borland and a handful of others provided by system makers/integrators/CPU makers) will also produce certain assembly instructions as there are limited numbers of ways to sensibly do things. C programs/OS level stuff will also often keep function names (
http://www.nirsoft.net/utils/dll_export_viewer.html ).
Combine all that together with modern computing power and the amount of assembly you have to contemplate over straight disassembly, and amount of stuff you can soon fill in, makes decompilation a sensible notion rather than theoretical for plain C family languages where it is classically considered a one way affair.
Gets far harder/far more potential branches to keep track of when you move up to C++ with all its object oriented stuff, hence why that needs considerably more computing power before it gets realistic and why this glut of game decompilation will probably not get too far into the PS2 era (later for handhelds, earlier for PC) before it stalls out, and possibly sooner than that when devs start to use serious optimisation options in the compiler that reduce a few of the clues.
Anyway if you start from that position then you started from a tainted source and thus the rest of the project can fall.
Clean room would likely entail you sitting there with a game, screen recorder and timer, maybe a memory viewer (could be contentious in some circles,
https://h2o.law.harvard.edu/cases/4365 being a fairly relevant case, but most likely clear), and noting a jump held for this long reaches this many pixels, gun climb/recoil is this much, damage taken is this much, bailing from a car happens like this, motorbikes have this acceleration, weather does this, pedestrian normal AI, pedestrian panicked AI, normal driving AI, panicked AI, aggressive AI, how business buying works, and on and on and on and on, or maybe "just" figuring out how to interface with the assets and doing what needs doing from there (which is still going to be a lot of code and observing game behaviours). This is to say an absolute nightmare which is why nobody does it for anything other than simple file formats, simple protocols, things you can partially implement and still have something useful (SMB file sharing/user logins and SAMBA, openoffice/libreoffice and MS Office formats, WINE and Windows API) and likely even then still things that have serious demand to spend the several programmer months poking at it with a stick.