AslRegWildcardFindFirst

INT64 __fastcall AslRegWildcardFindFirst(_QWORD *a1, _QWORD *a2, WCHAR *a3){
  VOID *v6; 
  INT64 *v7; 
  int Next; 
  INT64 v10; 
  *a2 = 0i64;
  v6 = AslAlloc(a1, 0x20ui64, (INT64)a3);
  v7 = (INT64 *)v6;
  if( !v6 )
    return 3221225495i64;
  *((_QWORD *)v6 + 2) = 0i64;
  *((_QWORD *)v6 + 3) = 0i64;
  *((_QWORD *)v6 + 1) = v6;
  *(_QWORD *)v6 = v6;
  Next = AslStringDuplicate((WCHAR **)v6 + 3, a3);
  if( Next >= 0 )
  {
    Next = AslpParsePattern(v7[3], v7);
    if( Next >= 0 )
    {
      v7[2] = *v7;
      Next = AslRegWildcardFindNext(a1, (INT64)v7, v10);
      if( Next >= 0 )
      {
        *a2 = v7;
        v7 = 0i64;
      }
    }
  }
  if( v7 )
    AslRegWildcardFindClose(v7);
  return(unsigned int)Next;
}

Referenced by:

SdbpCheckMatchingWildcardRegistryEntry