AslpParsePattern
INT64 __stdcall AslpParsePattern(UINT64 a1, INT64 *a2){
__int64 v2;
INT64 v5;
char v6;
UINT64 i;
__int16 v8;
INT64 result;
v2 = -1i64;
do
++v2;
while( *(_WORD *)(a1 + 2 * v2) );
v5 = a1 + 2i64 * (unsigned int)v2;
v6 = 0;
for( i = v5 - 2; i > a1; i -= 2i64 )
{
v8 = *(_WORD *)i;
if( *(_WORD *)i == 42 || v8 == 63 )
{
v6 = 1;
}
else if( v8 == 92 )
{
if( v6 )
{
result = AslpAllocMatchNode((VOID *)(i + 2), v5, (INT64)a2);
if( (int)result < 0 )
return result;
v5 = i;
*(_WORD *)i = 0;
v6 = 0;
}
else
{
v5 = i;
}
}
}
if( !v6 )
v5 = i;
return AslpAllocMatchNode((VOID *)(i & -(__int64)(v6 != 0)), v5, (INT64)a2);
}Referenced by:
AslRegWildcardFindFirst