Mac DRAW_UpdateTileVisibilityBounds: __cdecl void (pBounds, pTileData, nX, nY)
Ghidra vmac 111 · 3c6740e
Mac body reads only stack arguments: [EBP+0xc] gets bit 0x2 OR'd into its byte +0x16 (the 0x20000 bit of the tile flags dword at +0x14), so it is the tile data; [EBP+8] is a record whose +0x28 enables min/max tracking at +0x2c/+0x30 (X) and +0x34/+0x38 (Y); [EBP+0x10] and [EBP+0x14] are the X and Y folded into those bounds; plain RET. Windows twin DRAW_UpdateTileVisibilityBounds 0x004dde80 has the same body with the bounds record in ECX (typed int32_t nParam3) and the other three on the stack; Mac passes all four on the stack, bounds first. The record type is not named yet, so void *.
Changes 1, applied together
Set prototype
mac 0x0005f8aesignatureundefined DRAW_UpdateTileVisibilityBounds(void)→void DRAW_UpdateTileVisibilityBounds(void * pBounds, D2DrlgTileDataStrc * pTileData, int32_t nX, int32_t nY)conventionunknown→__cdecl