Recover the complete Mac item-modifier record resolver contract
Mac0016be52 records an untyped result, an int* input and an int fallback, but actually reads a class ID from either a primary Unit or fallback item Unit and forwards the typed ItemsTxt lookup EAX unchanged. Recover existing D2ItemsTxt* plus both D2UnitStrc* inputs together, preserving chosen pUnit/actual param_2 spelling, two Stack4/8 DWORDs, cdecl, locals and noVarArgs. All three real callers supply both object inputs; source callback/typed API copies and numeric ITEM guards, payload/seed use, row loader and actual damage-field consumers corroborate nominal roles. Twelve complete Mac bodies3469B/1012instructions and167data bytes are captured separately from unclaimed context. No name-only or integer/pointer-range inference, original typedef, opaque effects/success, hidden writer, safety/lifetime, Mac execution/image hash or generated-build/backend guarantee. Any concrete source/type/model refusal holds this whole three-type claim, with no reduced input/result/alias/name route.
Changes 1, applied together
Set prototype
mac 0x0016be52signatureundefined ITEMMOD_GetItemsTxtRecord(int * pUnit, int param_2)→D2ItemsTxt * ITEMMOD_GetItemsTxtRecord(D2UnitStrc * pUnit, D2UnitStrc * param_2)convention__cdecl