MiFreePrivateFixupEntryForSystemImage

_MI_SYSTEM_IMAGE_PRIVATE_FIXUP *__stdcall MiFreePrivateFixupEntryForSystemImage(
        VOID *ImageBaseAddress,
        UINT64 ActualFree){
  PVOID *v3; 
  int v4; 
  unsigned __int8 v5; 
  __int64 v6; 
  unsigned __int64 v7; 
  __int64 v8; 
  _QWORD *v9; 

  v3 = 0i64;
  v4 = ActualFree;
  v5 = ExAcquireSpinLockExclusive(&unk_140C4CA24);
  v6 = qword_140C4CA00;
  v7 = v5;
  while( (__int64 *)v6 != &qword_140C4CA00 )
  {
    v3 = (PVOID *)v6;
    if( ImageBaseAddress == *(VOID **)(v6 + 16) )
    {
      if( !v4 )
      {
        ExReleaseSpinLockExclusiveFromDpcLevel(&unk_140C4CA24);
        __writecr8(v7);
        return(_MI_SYSTEM_IMAGE_PRIVATE_FIXUP *)v6;
      }
      v8 = *(_QWORD *)v6;
      v9 = *(_QWORD **)(v6 + 8);
      if( *(_QWORD *)(*(_QWORD *)v6 + 8i64) != v6 || *v9 != v6 )
        __fastfail(3u);
      *v9 = v8;
      *(_QWORD *)(v8 + 8) = v9;
      break;
    }
    v6 = *(_QWORD *)v6;
  }
  ExReleaseSpinLockExclusiveFromDpcLevel(&unk_140C4CA24);
  __writecr8(v7);
  if( v4 )
  {
    if( (__int64 *)v6 == &qword_140C4CA00 )
      KeBugCheckEx(0x1Au, (PVOID)0x1011, ImageBaseAddress, 0i64, 0i64);
    ExFreePoolWithTag(v3[5], 0);
    ExFreePoolWithTag(v3, 0);
  }
  return 0i64;
}

Referenced by:

MiCountSystemImageCommitment
MiGetSystemAddressForImage