MiRemoveEnclavePagesFromDump
_LIST_ENTRY *__fastcall MiRemoveEnclavePagesFromDump(__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 )
{
(*(void(__fastcall **)(__int64, _LIST_ENTRY *, _LIST_ENTRY *, __int64))(a1 + 8))(
a1,
v3[1].Blink,
v3[2].Flink,
2i64);
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:
MmGetDumpRange