Type the Windows AnimData destruction input as its allocated table object
Ghidra v1797 · 3bccb89
Win 0066a830 consumes the allocated AnimData table. It null-checks the object, frees its loaded-image pointer at +0, then frees the same object. Constructor 0066a770 allocates and clears 1188 bytes, stores the image at +0, builds 256 bucket pointers and initializes an embedded default record. Its EAX return is stored at 0096c8a4 by 006193ec; the sole destruction caller loads that global into ECX at 00619241. Typed TXT_AnimTbls_Get returns the same global. Retype pParam from void** to existing D2AnimDataStrc*, retaining its name, void return, ECX fastcall storage and allocator calls. The complete 49-byte target, 435-byte caller, constructor, accessor, unique global-store edge and original Windows bytes are verified. The constructor covers a 188-byte span including 3 bytes outside its 185-byte function body. Mac destruction and shared-field changes remain held. Static verification only.
Changes 1, applied together
Retype variable
win 0x0066a830 ECXtypevoid * *→D2AnimDataStrc *