REDIVIVUS

Proposals / #1044

Recover the Mac light-map record unit-lookup contract

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

Ghidra vmac 111 · 3cfe190

Mac 000624b1 records undefined(void), but consumes a light-map pointer in ECX and returns a unit pointer or null in EAX. Recover the complete contract from the 52-byte allocation, type/GUID/side-byte stores at0/4/8, head/list+40 routing through all three calls in two complete callers, both lookup adapters and their shared unit hash walk. The sole return receives explicit null or an exact lookup result. Existing supported types fit the complete producer/consumer roles, beyond a common prefix. Preserve the selected function name and current __fastcc. No existing formal is renamed. Native input/output roles are proven; backend custom flag/model application remains unverified. Any refusal or slot mismatch holds the entire claim, with no fallback. Ten complete regions total5870bytes matched raw memory to separate assembly. Opaque continuations are conditional IF calls return. No Mac execution, local Mach-O hash, Windows pairing, heap-validity or runtime/build claim.

Changes 1, applied together

  1. Set prototype mac 0x000624b1

    signatureundefined UNITS_GetUnitFromTypeIdRecord(void)→D2UnitStrc * UNITS_GetUnitFromTypeIdRecord(D2LightMapStrc * pLightMap)
    convention__fastcc