Type path-list context inputs while retaining their custom register storage
Ghidra v1797 · 3bccb89
Win 0067aed0 receives D2DrlgPathSearchCtxStrc* in EDI and 0067af40 receives it in ESI, currently int32_t. Complete 102/147-byte bodies access context bucket heads at +0/+512 and sorted head+1024, with actual node pointers moving through those containers. Every incoming call has independent provenance: frame 0067b850 loads its exact 13036-byte object base into EDI before insertion and ESI before both pops; insertion's other caller 0067b200 loads the same context from its first stack slot, reached through all eight expansion calls. Retype only these two existing formals using retype_local at EDI:4/ESI:4. Preserve names, other formals, every custom slot, cdecl and current return types. Existing precise layouts, complete targets/callers/producers and original Windows bytes establish object identity. The pop return remains held because full set_prototype storage preservation is unestablished for its custom ESI ABI. No shared type, Mac pair or runtime behavior change is inferred.
Changes 2, applied together
Retype variable
win 0x0067aed0 EDItypeint32_t→D2DrlgPathSearchCtxStrc *Retype variable
win 0x0067af40 ESItypeint32_t→D2DrlgPathSearchCtxStrc *