FsRtlpRemoveAndCompleteReadOnlyIrp

VOID __stdcall FsRtlpRemoveAndCompleteReadOnlyIrp(LIST_ENTRY *Link, INT64 CompletionStatus, UINT64 NewOplockLevel){
  _LIST_ENTRY *Flink; 
  _IRP *p_Blink; 
  int v5; 
  unsigned int v7; 
  _LIST_ENTRY *v8; 
  _LIST_ENTRY *Blink; 
  _LIST_ENTRY *v10; 
  __int64 v11; 
  bool v12; 
  int v13; 
  Flink = Link[1].Flink;
  p_Blink = (_IRP *)&Link[-11].Blink;
  v5 = CompletionStatus;
  v7 = NewOplockLevel;
  ObfDereferenceObjectWithTag(Flink[3].Flink, 0x746C6644ui64);
  BYTE5(Link[-7].Blink) = KeAcquireQueuedSpinLock(7ui64);
  _InterlockedExchange64((volatile __int64 *)&Link[-4], 0i64);
  KeReleaseQueuedSpinLock(7ui64, BYTE5(Link[-7].Blink));
  v8 = Link->Flink;
  if( Link->Flink->Blink != Link || (Blink = Link->Blink, Blink->Flink != Link) )
    __fastfail(3u);
  Blink->Flink = v8;
  v8->Blink = Blink;
  if( LODWORD(Flink[1].Blink) == 590400 )
  {
    if( BYTE4(Link[-7].Blink) )
    {
      v12 = (unsigned int)Feature_Servicing_39887415__private_IsEnabled() == 0;
      v13 = -1073741536;
      v11 = 0i64;
      if( v12 )
        v13 = v5;
      v5 = v13;
    }
    else
    {
      v10 = Link[-9].Flink;
      v11 = 24i64;
      *(_LIST_ENTRY **)((char *)&v10->Blink + 4) = 0i64;
      HIDWORD(v10[1].Flink) = 0;
      LODWORD(v10->Flink) = 1572865;
      LODWORD(v10->Blink) = (v7 >> 12) & 7;
      HIDWORD(v10->Flink) = 1;
    }
  }
  else
  {
    if( (unsigned int)Feature_Servicing_39887415__private_IsEnabled() && BYTE4(Link[-7].Blink) )
      v5 = -1073741536;
    v11 = 8i64;
  }
  Link[-7].Flink = (_LIST_ENTRY *)v11;
  if( !(unsigned int)Feature_Servicing_39887415__private_IsEnabled() && BYTE4(Link[-7].Blink) )
    v5 = -1073741536;
  LODWORD(Link[-8].Blink) = v5;
  IofCompleteRequest(p_Blink, 1);
}

Referenced by:

FsRtlCheckUpperOplock
FsRtlpCancelReadOnlyOplockIrp
FsRtlpOplockBreakByCacheFlags
FsRtlpOplockBreakToNone
FsRtlpOplockCleanup
FsRtlpRequestExclusiveOplock
FsRtlpRequestShareableOplock