ExpWnfCheckCrossScopeAccess

INT64 __fastcall ExpWnfCheckCrossScopeAccess(_WNF_STATE_NAME_STRUCT StateName){
  unsigned __int64 v1; 
  INT64 result; 
  PVOID v3; 
  NTSTATUS v4; 
  PVOID P; 
  P = 0i64;
  v1 = (*(unsigned __int64 *)&StateName >> 6) & 0xF;
  if( (_DWORD)v1 == 3 )
    return 0i64;
  if( (_DWORD)v1 != 1 || ((*(unsigned __int64 *)&StateName >> 4) & 3) != 0 )
  {
LABEL_9:
    if( !SeSinglePrivilegeCheck(*(_QWORD *)&SeTcbPrivilege, *((_BYTE *)KeGetCurrentThread() + 562)) )
      return 3221225569i64;
    return 0i64;
  }
  result = ExpWnfLookupPermanentName(StateName, (_WNF_STATE_NAME_REGISTRATION **)&P);
  if( (int)result < 0 )
    return result;
  v3 = P;
  v4 = ExpWnfCheckCallerAccess(*((PVOID *)P + 2), 0x10ui64);
  ExFreePoolWithTag(v3, 0x20666E57u);
  if( v4 < 0 )
  {
    if( v4 != -1073741790 )
      return(unsigned int)v4;
    goto LABEL_9;
  }
  return 0i64;
}

Referenced by:

ExpNtDeleteWnfStateData
ExpNtUpdateWnfStateData
NtQueryWnfStateData
NtQueryWnfStateNameInformation