Mac SMSG_InternalUnregister: BOOL __fastcc (nEventId ECX, pWindow EDX, dwContext, pCallback)
This mirrors SMSG_InternalRegister. ECX -> ESI = nEventId (SEvtUnregisterHandler [ESP]). EDX -> EDI = window (SMSG_FindWindow 0x00019235, SEvt subtype [ESP+4]). [EBP+8] = the SEvt id ([ESP+8]). [EBP+0xc] = the handler ([ESP+0xc]). The call to SEvtUnregisterHandler 0x000191b9 is last, and its EAX is returned unchanged to the SMsgUnregister* wrappers. Windows twin 0x00420ab0 has the same four roles (nEventId, szText1=id, szText2=handler, hWnd); its sz names are misleading, so the two stack args are named by role, as in SMSG_InternalRegister.
Changes 1, applied together
Set prototype
mac 0x0001915dsignatureundefined SMSG_InternalUnregister(void)→BOOL SMSG_InternalUnregister(uint32_t nEventId, void* pWindow, uint32_t dwContext, void* pCallback)conventionunknown→__fastcc