MiComputeOptimalZeroPath

INT64 __stdcall MiComputeOptimalZeroPath(){
  int *v0; 
  unsigned int v1; 
  __int64 i; 
  INT64 result; 
  INT64 v4; 
  char *v5; 
  int *v6; 
  __int64 v7; 
  UINT64 v8; 
  unsigned __int64 v9; 
  __int64 v10; 
  __int64 v11; 
  unsigned __int64 v12; 
  unsigned __int64 v13; 
  INT64 v14; 
  __int64 *v15; 
  UINT64 v16; 
  unsigned __int64 v17; 
  unsigned __int64 v18; 
  unsigned __int64 v19; 
  __int64 v20; 
  __int64 v21; 
  unsigned __int64 v22; 
  unsigned __int64 v23; 
  bool v24; 
  __int64 v25; 
  __int64 v26; 
  INT64 v27; 
  unsigned __int64 v28; 
  __int64 v29; 
  INT64 v30; 
  unsigned __int64 v31; 
  signed __int32 v32[8]; 
  __int64 *v33; 
  __int64 v34; 
  UINT64 PageFrameIndex; 
  unsigned __int64 v36; 
  INT64 v37[2]; 
  ULONG_PTR BugCheckParameter2[4]; 
  int v39; 
  int v40; 
  __int64 v41; 
  __int64 v42; 
  int *v43; 
  v39 = 0;
  v0 = &v39;
  v1 = 0;
  v40 = 2;
  *(_OWORD *)v37 = 0i64;
  for( i = 0i64; ; ++i )
  {
    result = MiGetPage((_MI_PARTITION *)&MiSystemPartition, v1, 0i64);
    BugCheckParameter2[i] = result;
    if( result == -1 )
      break;
    v4 = (unsigned int)*v0;
    v5 = (char *)MmGetPfnDb() + 48 * result;
    v37[i] = (INT64)v5;
    if( (unsigned __int8)v5[34] >> 6 != (_DWORD)v4 )
      MiChangePageAttribute((INT64)v5, v4, 0);
    ++v1;
    ++v0;
    if( v1 >= 2 )
    {
      v34 = 2i64;
      v6 = &v39;
      v33 = qword_140C4DD28;
      v7 = 0i64;
      v43 = &v39;
      v42 = 0i64;
      do
      {
        v8 = *(ULONG_PTR *)((char *)BugCheckParameter2 + v7);
        v9 = 0i64;
        v10 = *v6;
        PageFrameIndex = v8;
        v11 = 3i64;
        do
        {
          v12 = __rdtsc();
          _InterlockedOr(v32, 0);
          MiZeroPhysicalPage(v8, 3ui64, (_MI_PFN_CACHE_ATTRIBUTE)v10);
          _InterlockedOr(v32, 0);
          v13 = __rdtsc();
          v9 += (((unsigned __int64)HIDWORD(v13) << 32) | (unsigned int)v13) - v12;
          --v11;
        }
        while( v11 );
        v14 = *(INT64 *)((char *)v37 + v7);
        v15 = v33;
        v16 = PageFrameIndex;
        v41 = 3i64;
        v36 = v9 / 3;
        v17 = 0i64;
        do
        {
          v18 = __rdtsc();
          _InterlockedOr(v32, 0);
          MiChangePageAttribute(v14, 1i64, 0);
          MiZeroPhysicalPage(v16, 3ui64, (_MI_PFN_CACHE_ATTRIBUTE)v10);
          MiChangePageAttribute(v14, (unsigned int)v10, 0);
          _InterlockedOr(v32, 0);
          v19 = __rdtsc();
          v17 += (((unsigned __int64)HIDWORD(v19) << 32) | (unsigned int)v19) - v18;
          --v41;
        }
        while( v41 );
        v20 = v42;
        v21 = (__int64)v43;
        v22 = v17;
        v23 = v36;
        if( v22 / 3 < 9 * (v36 / 0xA) )
          dword_140C4DCDC[4 * v10] = 1;
        v7 = v20 + 8;
        *(v15 - 1) = v23;
        v6 = (int *)(v21 + 4);
        *v15 = v22 / 3;
        v42 = v7;
        v24 = v34-- == 1;
        v43 = v6;
        v33 = v15 + 2;
      }
      while( !v24 );
      v25 = 0i64;
      v26 = 2i64;
      do
      {
        v27 = v37[v25];
        v28 = (unsigned __int8)MiLockPageInline(v27);
        MiInsertPageInFreeOrZeroedList(BugCheckParameter2[v25], 2ui64);
        _InterlockedAnd64((volatile signed __int64 *)(v27 + 24), 0x7FFFFFFFFFFFFFFFui64);
        result = (unsigned int)KiIrqlFlags;
        __writecr8(v28);
        ++v25;
        --v26;
      }
      while( v26 );
      return result;
    }
  }
  if( v1 )
  {
    v29 = v1;
    do
    {
      --v29;
      --v1;
      v30 = v37[v29];
      v31 = (unsigned __int8)MiLockPageInline(v30);
      MiInsertPageInFreeOrZeroedList(BugCheckParameter2[v29], 2ui64);
      _InterlockedAnd64((volatile signed __int64 *)(v30 + 24), 0x7FFFFFFFFFFFFFFFui64);
      result = (unsigned int)KiIrqlFlags;
      __writecr8(v31);
    }
    while( v1 );
  }
  return result;
}

Referenced by:

MiInitSystem