MiFreeCloneDescriptor

VOID __fastcall MiFreeCloneDescriptor(INT64 a1, INT64 a2){
  _QWORD *v2; 
  ULONG_PTR v3; 
  ULONG_PTR v4; 
  char *v7; 
  v2 = *(_QWORD **)(a2 + 56);
  v3 = 0i64;
  v4 = *(_QWORD *)(a2 + 64);
  v7 = (char *)v2[2];
  if( v4 )
  {
    do
    {
      MiUnlockPagedAddress(&v7[v3]);
      v3 += 4096i64;
    }
    while( v3 < v4 );
  }
  PsReturnProcessNonPagedPoolQuota(a1, v4);
  MiDecrementCloneHeaderCount(v2[3]);
  ExFreePoolWithTag(v2, 0);
  ExFreePoolWithTag(v7, 0);
  ExFreePoolWithTag((PVOID)a2, 0);
}

Referenced by:

MiCloneProcessAddressSpace
MiCloneVads