Mac SUNITPROXY_FreeInventoryItems: void __fastcall (D2GameStrc* pGame ECX, D2InventoryStrc* pInventory EDX)
ECX = pGame (saved to [EBP-0x10] for the item frees). EDX = pInventory (NULL-checked, then passed to INVENTORY_GetFirstItem 0x00167701, with next-item/free per item). There are no stack-arg reads; void. All three callers load ECX=pGame and EDX=an inventory pointer, and after the call free that same inventory (CALL 0x00167412) without reading EAX (FreeNpcProxyData 0x0028c28d/0x0028c2e0, RemovePlayerProxyInventory 0x0028d0b2). Same roles as the Windows twin 0x00536510 (pGame stack, pInventory EAX).
Changes 1, applied together
Set prototype
mac 0x0028c92dsignatureundefined SUNITPROXY_FreeInventoryItems(void)→void SUNITPROXY_FreeInventoryItems(D2GameStrc* pGame, D2InventoryStrc* pInventory)conventionunknown→__fastcall