REDIVIVUS

Proposals / #617

Type GFX_FreeOverlayList’s custom EAX input as graphics info

applied · by Commit-Will · submitted 2026-11-01, applied 2026-11-01

Ghidra v1797 · 3bccb89

The custom EAX input is a D2GfxInfoStrc pointer. Sole caller FreeGfxInfo obtains it from GetGfxInfo, keeps the returned pointer unchanged in EDI throughout its cache-freeing loop, then MOV EAX,EDI at 0x0046ec5e before CALL 0x0046ec60. Getter 0x00463e10 returns the existing D2UnitStrc.pGfxInfo field at +0x54. Complete 62-byte target loads only input+0x2c, matching D2GfxInfoStrc.pOverlayList, then walks/frees its nodes and returns with no stack input. The existing 60-byte graphics layout also matches AllocGfxInfo allocation/zeroing and +0x34/+0x38 initialization. Retype only existing pGfxInfo at EAX, preserving its chosen name, void return and custom ABI. Complete target/caller/getter/allocator and relevant free helpers independently match original Windows PE bytes. No new overlay-node type or runtime/byte-match improvement is claimed.

Changes 1, applied together

  1. Retype variable win 0x0046eb70 EAX

    typeint32_t→D2GfxInfoStrc *