LocalGetSDDLDeliminator
NTSTATUS __stdcall LocalGetSDDLDeliminator(WCHAR *AclString, WCHAR **End){
_BOOL4 v3;
unsigned int v4;
NTSTATUS v5;
WORD *v6;
unsigned int v8;
v3 = 0;
*End = 0i64;
v4 = 0;
v5 = 0;
v6 = AclString;
if( !FContainCallBackAce(AclString) )
{
*End = wcschr(v6, 58);
return v5;
}
if( !*v6 )
return v5;
while( !*End && !v5 )
{
switch( *v6 )
{
case '"':
if( v4 <= 1 )
{
LABEL_21:
v5 = 1336;
break;
}
v3 = !v3;
break;
case '(':
v8 = v4 + 1;
if( v3 )
v8 = v4;
v4 = v8;
break;
case ')':
if( !v3 )
{
if( !v4 )
goto LABEL_21;
--v4;
}
break;
default:
if( *v6 == 58 && !v4 )
*End = v6;
break;
}
if( !*++v6 )
break;
}
if( v3 || v4 )
return 1336;
return v5;
}Referenced by:
LocalGetAclForString