MiSetVadFlags

NTSTATUS __stdcall MiSetVadFlags(_MI_PARTITION *Partition, UINT64 Color, INT16 a3){
  char v3; 
  char v4; 
  unsigned __int8 CurrentIrql; 
  signed __int32 Flink; 
  signed __int32 v8; 
  signed __int32 v9; 
  int v10; 
  int v11; 
  int v12; 
  int v13; 
  signed __int32 v14; 
  signed __int32 v15; 
  NTSTATUS result; 
  UINT64 SpinCount; 

  v3 = a3;
  LODWORD(SpinCount) = 0;
  v4 = Color;
  CurrentIrql = KeGetCurrentIrql();
  __writecr8(2ui64);
  Flink = (signed __int32)Partition->Core.PfnUnmapWorkItem.List.Flink;
  do
  {
    while( (Flink & 1) != 0 )
    {
      if( (Flink & 2) != 0 )
      {
        LODWORD(SpinCount) = 0;
        do
        {
          KeYieldProcessorEx(&SpinCount);
          Flink = (signed __int32)Partition->Core.PfnUnmapWorkItem.List.Flink;
        }
        while( (Flink & 1) != 0 );
      }
      else
      {
        Flink = _InterlockedCompareExchange(
                  (volatile signed __int32 *)&Partition->Core.PfnUnmapWorkItem,
                  Flink | 2,
                  Flink);
      }
    }
    v8 = Flink;
    Flink = _InterlockedCompareExchange(
              (volatile signed __int32 *)&Partition->Core.PfnUnmapWorkItem,
              Flink & 0xFFFFFFFC | 1,
              Flink);
  }
  while( v8 != Flink );
  v9 = (signed __int32)Partition->Core.PfnUnmapWorkItem.List.Flink;
  v10 = v4 & 1;
  v11 = v4 & 2;
  v12 = v4 & 4;
  v13 = v3 & 1;
  do
  {
    v14 = v9;
    if( v10 )
    {
      v13 = v3 & 1;
      v14 = v9 & 0xFFFFFFF7 | (8 * v13);
    }
    if( v11 )
      v14 = (4 * v13) | v14 & 0xFFFFFFFB;
    else
      v13 = v3 & 1;
    if( v12 )
      v14 = v14 & 0xFFBFFFFF | (v13 << 22);
    v15 = v9;
    v9 = _InterlockedCompareExchange((volatile signed __int32 *)&Partition->Core.PfnUnmapWorkItem, v14, v9);
  }
  while( v15 != v9 );
  _InterlockedAnd((volatile signed __int32 *)&Partition->Core.PfnUnmapWorkItem, 0xFFFFFFFC);
  result = CurrentIrql;
  __writecr8(CurrentIrql);
  return result;
}

Referenced by:

MiAddSecureEntry
MiDeleteVad
MiRemoveSecureEntry
MiSetImageHotPatchAllowed