SeFastTraverseCheck

NTSTATUS __fastcall SeFastTraverseCheck(
        VOID *SecurityDescriptor,
        _ACCESS_STATE *AccessState,
        UINT64 TraverseAccess,
        INT8 AccessMode){
  unsigned __int64 v4; 
  int v5; 
  char *v6; 
  unsigned int v7; 
  char *v8; 
  unsigned int v9; 
  void *retaddr; 

  v4 = (unsigned __int64)&retaddr;
  v5 = TraverseAccess;
  if( !SecurityDescriptor )
  {
LABEL_19:
    LOBYTE(v4) = 0;
    return v4;
  }
  LODWORD(v4) = *((unsigned __int16 *)SecurityDescriptor + 1);
  if( (v4 & 4) != 0 )
  {
    if( (v4 & 0x8000u) == 0i64 )
    {
      v6 = (char *)*((_QWORD *)SecurityDescriptor + 4);
    }
    else
    {
      v4 = *((unsigned int *)SecurityDescriptor + 4);
      if( !(_DWORD)v4 )
        goto LABEL_15;
      v6 = (char *)SecurityDescriptor + v4;
    }
    if( v6 )
    {
      v7 = *((unsigned __int16 *)v6 + 2);
      if( *((_WORD *)v6 + 2) )
      {
        if( (*((_DWORD *)AccessState + 3) & 0x810) == 0 )
        {
          v8 = v6 + 8;
          v9 = 0;
          if( v7 )
          {
            while( 1 )
            {
              if( (v8[1] & 8) == 0 )
              {
                if( *v8 )
                {
                  if( *v8 == 1 && (v5 & *((_DWORD *)v8 + 1)) != 0 )
                    goto LABEL_19;
                }
                else if( (v5 & *((_DWORD *)v8 + 1)) != 0 && RtlEqualSid(SeWorldSid, v8 + 8) )
                {
                  goto LABEL_15;
                }
              }
              v4 = *((unsigned __int16 *)v8 + 1);
              ++v9;
              v8 += v4;
              if( v9 >= v7 )
                goto LABEL_19;
            }
          }
        }
      }
      goto LABEL_19;
    }
  }
LABEL_15:
  LOBYTE(v4) = 1;
  return v4;
}

Referenced by:

IopParseDevice
ObpCheckTraverseAccess