Mac COMCALLBACK_AddUserToChannelList: void __fastcall (pChannelUser, szUsername, pRawData, nStatusFlags)
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
Set prototype
mac 0x002d5e02signatureundefined COMCALLBACK_AddUserToChannelList(void)→void COMCALLBACK_AddUserToChannelList(D2ChannelUserStrc* pChannelUser, char* szUsername, byte* pRawData, uint32_t nStatusFlags)conventionunknown→__fastcall