REDIVIVUS

Proposals / #1009

Recover 16-bit source elements for table-conversion APIs

applied · by Commit-Will · submitted 2026-11-02, applied 2026-11-02

Ghidra v1846 · 3cfe190

All three public wrappers forward their second argument unchanged in ECX to the original converter. Its complete body reads unsigned 16-bit units from that base, advances it by two bytes per converted unit, and uses a low-byte reread only for the direct mapping path. Declare pSrcUTF16 as existing ushort * instead of untyped void *. Preserve all chosen names, pointer storage, output/count types, void returns, ordinary stdcall and RET12. The converter's custom ECX/EAX/two-stack contract is read-only support. These three APIs have no incoming references; no caller/producer/runtime use, table extent, Unicode-validity, bounds, algorithm or measured source/matching gain is claimed.

Changes 3, applied together

  1. Retype variable win 0x006c7900 Stack[0x8]

    typevoid *→ushort *
  2. Retype variable win 0x006c7920 Stack[0x8]

    typevoid *→ushort *
  3. Retype variable win 0x006c7940 Stack[0x8]

    typevoid *→ushort *