Just curious if you can see any compiler tags in there to know what the original programming language or compiler might have been (2004 I would suspect Borland C or an earlier Microsoft C).
Not really tags, but based on the features in use and some other fingerprints, I'm fairly confident that it's MS Visual C 2005, with an upgraded Platform SDK from sometime in 2007 or 2008. The vast majority (98%) of the code is almost certainly C. I've identified a few spots that use C++ calling conventions, but all of them are in places that have to do with talking to the authentication server. We know the auth protocol is a variant of Lineage II's (and later used for Tabula Rasa), so the C++ code most likely came from NCSoft rather than Cryptic's codebase.
Whole-program optimization and link time code generation were turned on for the I23 and I24 client builds (they turned this on sometime around Issue 18 or 19 along with duplicate string elimination), which makes reverse engineering fun. By fun I mean "fun", since LTCG lets the compiler make up whatever calling conventions it wants and inline things across module boundaries. Most functions calls are not cdecl or stdcall or even fastcall, but use whatever random combination of registers and stack the compiler decided was best for that function. I ended up writing some automatic analysis tools to identify and categorize these so that interface adapters could be generated.
There are a number of debugging messages left in the executable, and a couple instances I've concluded must have been debug call wrapper macros that got missed and included __FILE__ and __LINE__ arguments. Those have given me quite a collection of source file names, so I have a fairly good idea of what the build tree looked like. It's not a complete picture, but a decent overview.