diff --git a/decompile/src/XDK/Xapi/xapi0.c b/decompile/src/XDK/Xapi/xapi0.c index d726005..ae97f97 100644 --- a/decompile/src/XDK/Xapi/xapi0.c +++ b/decompile/src/XDK/Xapi/xapi0.c @@ -71,7 +71,7 @@ the middle part of the function match is through writing the instructions directly. Given that the C parts of this function are so simple that a human and a compiler would reasonably produce the exact same code, and this function exhibits other oddities mentioned in the body, it's likely this whole function -was originally written purely in assemblys. In the spirit of decompilation, +was originally written purely in assembly. In the spirit of decompilation, however, we'll lift what we can into C. */ XapiInitProcess(); @@ -107,7 +107,7 @@ however, we'll lift what we can into C. written function. If it was a function, it must have been inlined, but it couldn't be because it must be called from assembly to use the value in ecx that never went on the stack - (as passing data from C to assembly has to do). Notably, this + (as passing data from assembly to C has to do). Notably, this function's calling convention does require edi to be preserved, but if left up to the compiler, it will push and pop edi in the prologue and epilogue, not here (which this function must be @@ -135,6 +135,7 @@ however, we'll lift what we can into C. _cinit(); main(0, NULL, NULL); + // main() is not supposed to return, so error out if it does XapiBootToDash(XLD_LAUNCH_DASHBOARD_ERROR, XLD_ERROR_INVALID_XBE, 0); // Return 0 to satisfy signature required for thread functions @@ -152,7 +153,7 @@ The linker automatically sets this function to the entrypoint. */ HANDLE thread; - // Figure out available thread-local storage + // Figure out available thread-local storage (used by CreateThread()) XapiTlsSize = 4 + (( (_tls_used.EndAddressOfRawData - _tls_used.StartAddressOfRawData) + _tls_used.SizeOfZeroFill