Mac SUNITPROXY_RefreshGambleForAllNpcs: void __cdecl (D2GameStrc* pGame, D2UnitStrc* pUnit, int32_t dwGameTick)
[EBP+8] = pGame (NPC control at +0x1d24 is walked; it is read again at 0x0028c76a). [EBP+0x10] = the game tick (0x0028c7a4), as in the Windows twin 0x00536850 (pGame ECX, dwGameTick stack). [EBP+0xc] is not read, but the only caller, UpdateGameInfo 0x001fafe0, stores it: [ESP]=pGame, [ESP+4]=ESI (the player unit it just set a stat on), [ESP+8]=the tick. So the slot is kept as pUnit, per the arity-from-caller rule. Plain RET; the caller does not read EAX.
Changes 1, applied together
Set prototype
mac 0x0028c71fsignatureundefined SUNITPROXY_RefreshGambleForAllNpcs(void)→void SUNITPROXY_RefreshGambleForAllNpcs(D2GameStrc* pGame, D2UnitStrc* pUnit, int32_t dwGameTick)conventionunknown→__cdecl