CmAppendDeclarativeDefaultFilters

__int64 __fastcall CmAppendDeclarativeDefaultFilters(
        __int64 a1,
        char *a2,
        const wchar_t *a3,
        __int64 a4,
        NTSTRSAFE_PWSTR pszDest,
        int a6,
        __int64 a7){
  wchar_t *v7; 
  unsigned int v8; 
  int v9; 
  __int64 v13; 
  int v14; 
  char v15; 
  unsigned int appended; 
  unsigned int v17; 
  int v19; 
  v7 = pszDest;
  v8 = 0;
  v9 = a6;
  v19 = 0;
  v13 = -1i64;
  do
    ++v13;
  while( a3[v13] );
  v14 = 2 * v13 + 2;
  if( pszDest )
  {
    v19 = a6;
    v15 = PnpMultiSzAppend(pszDest, (unsigned int *)&v19, a3, &pszDest);
    v7 = (wchar_t *)((unsigned __int64)pszDest & -(__int64)(v15 != 0));
    v9 -= v14;
  }
  appended = CmAppendDeclarativeFilterLevel(a1, a2, a3, v7, v9, &v19);
  v17 = appended;
  if( appended == -1073741772 )
  {
    v17 = 0;
LABEL_10:
    *(_DWORD *)a7 = v8 + v14;
    return v17;
  }
  if( (int)(appended + 0x80000000) < 0 || appended == -1073741789 )
  {
    v8 = v19;
    goto LABEL_10;
  }
  return v17;
}

Referenced by:

CmGetDeclarativeFilterList