Recover the Mac light-map record unit-lookup contract
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
Set prototype
mac 0x000624b1signatureundefined UNITS_GetUnitFromTypeIdRecord(void)→D2UnitStrc * UNITS_GetUnitFromTypeIdRecord(D2LightMapStrc * pLightMap)convention__fastcc