FsRtlpCleanupEcps

CHAR __fastcall FsRtlpCleanupEcps(ECP_LIST *a1, LOOKASIDE_LIST_EX *a2){
  unsigned int Flags; 
  _LIST_ENTRY *p_EcpList; 
  _LIST_ENTRY *Flink; 
  _LIST_ENTRY *v6; 
  _LIST_ENTRY *v7; 
  _LIST_ENTRY *Blink; 
  Flags = a1->Flags;
  if( (Flags & 0x3F0) != 0 )
  {
    a1->Flags = Flags - 16;
    return 1;
  }
  if( (Flags & 1) == 0 )
  {
    FsRtlFreeExtraCreateParameterList(a1);
    return 1;
  }
  p_EcpList = &a1->EcpList;
  Flink = a1->EcpList.Flink;
  while( Flink != p_EcpList )
  {
    v6 = Flink;
    v7 = Flink;
    Flink = Flink->Flink;
    if( ((__int64)v6[2].Blink & 1) == 0 )
    {
      if( Flink->Blink != v7 || (Blink = v7->Blink, Blink->Flink != v7) )
        __fastfail(3u);
      Blink->Flink = Flink;
      Flink->Blink = Blink;
      v7->Flink = 0i64;
      v6->Blink = 0i64;
      FsRtlFreeExtraCreateParameter(&v6[4]);
    }
  }
  return 0;
}

Referenced by:

IopCleanupExtraCreateParameters
IopFastQueryNetworkAttributes
NtQueryAttributesFile
NtQueryFullAttributesFile