Q22_StatusFilter returns bool, not undefined4
Every exit sets only AL: 005bbe3f MOV AL,1 / RET 0xc with EAX = the szText pointer loaded at 005bbe38 (upper bytes are pointer bits), 005bbe6c MOV AL,1 / RET 0xc after GetQuestState's result, and the Step0x04 exit likewise. No exit writes all of EAX, so the return is a one-byte bool (the status byte itself goes out through the third argument). The other quest StatusFilter handlers already return bool. Calling convention and parameters unchanged. VC8 oracle on main a9d994e: 005bbe20 OUR+14 -> MATCH, +1 MATCH, 0 lost.
Changes 1, applied together
Set prototype
win 0x005bbe20signatureundefined4 Q22_StatusFilter(int32_t this, uint32_t param_1_00, D2BitBufferStrc * pBitBuffer, char * szText)→bool Q22_StatusFilter(int32_t this, uint32_t param_1_00, D2BitBufferStrc * pBitBuffer, char * szText)convention__fastcall