MiFreeEnclaveModules
VOID __stdcall MiFreeEnclaveModules(INT32 **a1, _EPROCESS *a2){
INT32 *v4;
__int64 v5;
INT32 **v6;
while( 1 )
{
v4 = *a1;
if( *a1 == (INT32 *)a1 )
break;
if( a2 )
DbgkUnMapViewOfSection(&a2->Pcb, *((VOID **)v4 + 2));
v5 = *(_QWORD *)v4;
if( *(INT32 **)(*(_QWORD *)v4 + 8i64) != v4 || (v6 = (INT32 **)*((_QWORD *)v4 + 1), *v6 != v4) )
__fastfail(3u);
*v6 = (INT32 *)v5;
*(_QWORD *)(v5 + 8) = v6;
MiDereferenceEnclaveModule(v4);
}
}Referenced by:
MiCanDeleteEnclave
MmFreeVirtualMemory