Type the DT1 sizing and node-copy source objects
Ghidra v1804 · 39698f0
Win 00609fd0 EDX is int32_t pTileCmpHdr, and 0060a050 EBX is int32_t pTileSetEntry. Their sole complete caller 0060a0f0 passes the original header in EDX to the size helper, then derives each source entry from header.pTiles+272 plus a 96-byte index and passes it in EBX to node-copy. The size helper reads nTiles268/pTiles272 and accounts 276-byte header, 96-byte entries and 20-byte subtiles; node-copy reads entry.nSubTiles80/pSubTiles84 and copies node pixel data+16. These exactly match existing D2TileLibraryHeaderStrc/Entry. Retype only the two source slots to those precise pointers; both selected names fit. Preserve size-helper int32_t/fastcall/custom EDX and copy size_t/cdecl/EAX destination/EBX source, all returns, names and layouts. Original bytes checked; no runtime/Mac claim.
Changes 2, applied together
Retype variable
win 0x00609fd0 EDXtypeint32_t→D2TileLibraryHeaderStrc *Retype variable
win 0x0060a050 EBXtypeint32_t→D2TileLibraryEntryStrc *