REDIVIVUS

Proposals / #1315

Mac COMCALLBACK_AddUserToChannelList: void __fastcall (pChannelUser, szUsername, pRawData, nStatusFlags)

checked · by KierTaylor · submitted 2026-11-06

Roles match the Windows twin 0x00447fd0 (pChannelUser ECX, nStatusFlags EDX, szUsername stack, pbRawData EAX), in Mac fastcall order. ECX -> ESI = pChannelUser (status stored at +0x90, name copied to +4, flags word at +0x8a). EDX -> EDI = the username (strcpy source into +4, max 0x7fffffff). [EBP+8] = the raw stat-string data (passed as EDX to COMCALLBACK_CreateChannelUser 0x002d6e7c). [EBP+0xc] = the status flags (stored to +0x90, also [ESP] for that call). Only these two stack args are read. The caller CreateChannelUserEntry 0x002d75c8 sets ECX, EDX, [ESP], [ESP+4]. The pb prefix is refused, so the raw-data arg is named pRawData.

Changes 1, applied together

  1. Set prototype mac 0x002d5e02

    signatureundefined COMCALLBACK_AddUserToChannelList(void)→void COMCALLBACK_AddUserToChannelList(D2ChannelUserStrc* pChannelUser, char* szUsername, byte* pRawData, uint32_t nStatusFlags)
    conventionunknown→__fastcall