MiBuildWakeList

VOID __stdcall MiBuildWakeList(_CONTROL_AREA *ControlArea, UINT64 WaitMask){
  _QWORD *v2; 
  __int64 *v3; 
  __int64 *v4; 
  __int64 *v5; 
  v2 = (_QWORD *)((char *)ControlArea + 80);
  v3 = 0i64;
  v4 = (__int64 *)*((_QWORD *)ControlArea + 10);
  if( v4 )
  {
    do
    {
      v5 = (__int64 *)*v4;
      if( ((unsigned int)WaitMask & (_DWORD)v4[1]) != 0 )
      {
        if( (WaitMask & 4) != 0 )
        {
          *((_DWORD *)v4 + 3) = 1;
        }
        else
        {
          *v4 = (__int64)v3;
          v3 = v4;
          *v2 = v5;
        }
      }
      else
      {
        v2 = v4;
      }
      v4 = v5;
    }
    while( v5 );
  }
}

Referenced by:

MiCheckControlArea
MiComputeDataFlushRange
MiDecrementLargeSubsections
MiDecrementModifiedWriteCount
MiIncrementLargeSubsections
MiPrepareSegmentForDeletion
MiPreventControlAreaDeletion
MiReferenceActiveControlArea
MiReferencePfBackedSection
MiUnlockControlAreaSectionExtend