MiSystemImageHasPrivateFixups

NTSTATUS __stdcall MiSystemImageHasPrivateFixups(
        VOID *VirtualAddress,
        _CONTROL_AREA **OutControlArea,
        UINT64 *ImagePteIndex){
  NTSTATUS SystemRegionType; 
  __int64 v7; 
  unsigned __int8 v8; 
  __int64 v9; 
  unsigned __int64 v10; 
  unsigned __int64 v11; 
  unsigned __int64 v12; 

  *(_DWORD *)ImagePteIndex = 0;
  *OutControlArea = 0i64;
  if( (__int64 *)qword_140C4CA00 == &qword_140C4CA00 )
    return 0;
  SystemRegionType = MiGetSystemRegionType((UINT64)VirtualAddress);
  if( SystemRegionType != 12 && SystemRegionType != 1 )
    return 0;
  LODWORD(v7) = 0;
  v8 = ExAcquireSpinLockShared(&unk_140C4CA24);
  v9 = qword_140C4CA00;
  v10 = v8;
  while( (__int64 *)v9 != &qword_140C4CA00 )
  {
    v11 = *(_QWORD *)(v9 + 16);
    if( (unsigned __int64)VirtualAddress >= v11 && (unsigned __int64)VirtualAddress <= *(_QWORD *)(v9 + 24) )
    {
      v12 = ((unsigned __int64)VirtualAddress - v11) >> 12;
      if( _bittest(*(const signed __int32 **)(*(_QWORD *)(v9 + 40) + 8i64), v12) )
      {
        v7 = v11 - *(_QWORD *)(v9 + 32);
        *OutControlArea = *(_CONTROL_AREA **)(v9 + 48);
        *(_DWORD *)ImagePteIndex = v12;
      }
      break;
    }
    v9 = *(_QWORD *)v9;
  }
  ExReleaseSpinLockSharedFromDpcLevel((PEX_SPIN_LOCK)&unk_140C4CA24);
  __writecr8(v10);
  return v7;
}

Referenced by:

MiCompleteProtoPteFault