Mac SetTimeoutEffect: void __fastcc (pGame ECX, pUnit EDX, nTimeoutFrame stack) prototype
Mac 0x0026a546 is "undefined (void)", convention unknown. Entry tests EDX (0x0026a558 TEST EDX,EDX; 0x0026a560 CMP [EDX],0 = unit type player) and moves ECX into ESI then adds [ESI+0xa8] (game frame counter) to [EBP+8] (0x0026a569/0x0026a579). Ends in plain RET (0x0026a65f, caller cleans). Both callers load ECX=[EBP+8] (their pGame), EDX=unit and store one dword at [ESP] (0x0026bb92-0x0026bb98, 0x0026a532-0x0026a538). That is the Mac clang fastcc shape (ECX, EDX, then stack), already used as __fastcc in this DB. Windows twin 0x0056ef90 is void with the same three values (pGame, timeoutFrame, pUnit).
Changes 1, applied together
Set prototype
mac 0x0026a546signatureundefined SetTimeoutEffect(void)→void SetTimeoutEffect(D2GameStrc * pGame, D2UnitStrc * pUnit, int32_t nTimeoutFrame)conventionunknown→__fastcc