MiRemoveEnclavePagesFromMirror

INT64 **__fastcall MiRemoveEnclavePagesFromMirror(INT64 a1){
  INT64 **result; 
  unsigned __int64 v3; 
  unsigned __int64 v4; 
  INT64 ***v5; 
  result = (INT64 **)qword_140C4EBC0;
  v3 = 0i64;
  while( result )
  {
    v3 = (unsigned __int64)result;
    result = (INT64 **)*result;
  }
  while( v3 )
  {
    MiMirrorOmitPagesFromCopy(a1, *(_QWORD *)(v3 + 24), *(_QWORD *)(v3 + 32));
    result = *(INT64 ***)(v3 + 8);
    v4 = v3;
    if( result )
    {
      v5 = (INT64 ***)*result;
      v3 = *(_QWORD *)(v3 + 8);
      if( *result )
      {
        do
        {
          result = *v5;
          v3 = (unsigned __int64)v5;
          v5 = (INT64 ***)result;
        }
        while( result );
      }
    }
    else
    {
      while( 1 )
      {
        v3 = *(_QWORD *)(v3 + 16) & 0xFFFFFFFFFFFFFFFCui64;
        if( !v3 || *(_QWORD *)v3 == v4 )
          break;
        v4 = v3;
      }
    }
  }
  return result;
}

Referenced by:

MiMirrorBlackPhase