REDIVIVUS

Proposals / #1382

Recover the Mac trailing-character predicate's register arguments and full Boolean result

checked · by eejitgames · submitted 2026-11-07

Mac002b7f00 is undefined(void)/unknown, but its complete body takes WCHAR* text in ECX and a byte table in EDX, with no stack inputs. It converts at most20 table bytes to WORDs, compares the text's last WORD against them, and MOVZX EAX,CL returns0/1 after the guard check. Both callers explicitly set ECX/EDX and compare AL with1. Recover BOOL(WCHAR* wszText,char* szTable), using the Mac __fastcc model whose first two inputs are ECX/EDX. The Windows counterpart005271a0 and paired possessive-name calls use the same s/sz tables and final-character membership test, but its distinct custom-register ABI and AL-only result are not part of this edit. Current no-argument pseudocode drops both call inputs and exposes in_ECX/in_EDX in the callee. The chosen Leading name contradicts the final-character access; a rename suggestion is supplied for review.

Changes 1, applied together

  1. Set prototype mac 0x002b7f00

    signatureundefined UNICODE_CheckLeadingPunctuation(void)→BOOL UNICODE_CheckLeadingPunctuation(WCHAR * wszText, char * szTable)
    conventionunknown→__fastcc