Type the Windows path-node pool input and returned node
Ghidra v1797 · 3bccb89
Win 0067b1c0 receives D2DrlgPathSearchCtxStrc* in ECX and returns D2DrlgPathNodeStrc* or null. It reads count+0x2fc4, computes base+0x404+count*56, increments count, clears exactly 56 bytes and explicitly returns that node; count200 clears full EAX. Existing context and node types independently match these offsets and sizes. The complete producer/caller chain proves identity: a 13036-byte frame object in 0067b850 passes its exact base to 0067b440; all eight calls forward that unchanged stack slot to 0067b200; its sole allocator call supplies the same pointer in ECX. Returned nodes receive the existing node fields and are linked into typed parent children. Restore both pointer contracts together, preserving nPathCtx, its one ECX slot, fastcall, plain RET and all locals. Complete 59-byte target, caller bodies and register-preserving helpers are independently decoded from the original Windows PE. No other custom-ABI helper, context layout, name, Mac pair or runtime behavior is changed.
Changes 1, applied together
Set prototype
win 0x0067b1c0signaturevoid * DRLGPATH_AllocPathNode(int32_t nPathCtx)→D2DrlgPathNodeStrc * DRLGPATH_AllocPathNode(D2DrlgPathSearchCtxStrc * nPathCtx)convention__fastcall