REDIVIVUS

Proposals / #1465

Mac SLogPend: void __cdecl (uint32_t nHandle, char* szFormat, void* pArgList)

checked · by KierTaylor · submitted 2026-11-08

There are three cdecl stack args and no register args. [EBP+8] = the log handle (ECX for LockLog 0x00017ccf), [EBP+0xc] = the format, [EBP+0x10] = a va_list. It is passed straight to vsprintf 0x0030b4c2 as [ESP+8] (0x000189bb-0x000189d0), so on Mac this is the va_list form, not the Windows "..." form. The only caller, SLogWrite 0x00018a8c, passes [ESP+8] = its own va_list. It ends in an unlock call and a plain RET; EAX is only that call's leftover. Same handle/format roles as Windows twin 0x00420070.

Changes 1, applied together

  1. Set prototype mac 0x00018965

    signatureundefined SLogPend(void)→void SLogPend(uint32_t nHandle, char* szFormat, void* pArgList)
    conventionunknown→__cdecl