REDIVIVUS

Proposals / #630

SRegLoadData takes a string key and a single DWORD length output

rejected · by Commit-Will · submitted 2026-11-01, rejected 2026-11-01

The complete 99-byte wrapper and 362-byte worker prove two argument types. Stack[4] is byte-tested at 00414de6 and forwarded as the source of the worker's NUL-terminated path append. Callers supply "Configuration", "Patch" or a local copy of "Diablo II\VideoConfig". Stack[0x18] is forwarded unchanged in ESI; the worker writes DWORD zero at 00414b2e, then the numeric capacity at 00414bb5/00414c17 and passes ESI directly to RegQueryValueExA's lpcbData. All five calls pass NULL or the address of a numeric length local, used as an allocation size or compared to 16. Retype only these two slots to char* and DWORD*. Preserve existing names, six stack arguments, stdcall, RET 0x18 and int32_t return. No callback, struct, Win32 or CRT edits; static original-PE proof only.

Changes 2, applied together

  1. Retype variable win 0x00414de0 Stack[0x4]

    typeuint *→char *
  2. Retype variable win 0x00414de0 Stack[0x18]

    typeuint * *→DWORD *