MiRemoveEnclavePagesFromMirror

_LIST_ENTRY *__fastcall MiRemoveEnclavePagesFromMirror(INT64 a1){
  _LIST_ENTRY *result; 
  _LIST_ENTRY *v3; 
  _LIST_ENTRY *v4; 
  _LIST_ENTRY *Flink; 

  result = (_LIST_ENTRY *)*(&stru_140C4DB30 + 530);
  v3 = 0i64;
  while( result )
  {
    v3 = result;
    result = result->Flink;
  }
  while( v3 )
  {
    MiMirrorOmitPagesFromCopy(a1, (UINT64)v3[1].Blink, (UINT64)v3[2].Flink);
    result = v3->Blink;
    v4 = v3;
    if( result )
    {
      Flink = result->Flink;
      v3 = v3->Blink;
      if( result->Flink )
      {
        do
        {
          result = Flink->Flink;
          v3 = Flink;
          Flink = result;
        }
        while( result );
      }
    }
    else
    {
      while( 1 )
      {
        v3 = (_LIST_ENTRY *)((unsigned __int64)v3[1].Flink & 0xFFFFFFFFFFFFFFFCui64);
        if( !v3 || v3->Flink == v4 )
          break;
        v4 = v3;
      }
    }
  }
  return result;
}

Referenced by:

MiMirrorBlackPhase