MiUpdatePartitionLargePfnBitMap

__int64 __fastcall MiUpdatePartitionLargePfnBitMap(__int64 a1, _QWORD **a2){
  _ETHREAD *CurrentThread; 
  unsigned int v4; 
  _QWORD *v6; 
  _QWORD *i; 
  _QWORD **v8; 
  __int64 v9; 
  _QWORD *v10; 
  _QWORD *v11; 
  __int128 v13; 
  __int128 v14; 
  __int128 v15; 
  __int64 v16; 
  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  v13 = 0i64;
  v14 = 0i64;
  v4 = 0;
  v15 = 0i64;
  v16 = 0i64;
  *(_QWORD *)&v13 = a1;
  MiLockDynamicMemoryExclusive(a1, (__int64)CurrentThread);
  v6 = *a2;
  i = 0i64;
  while( v6 )
  {
    i = v6;
    v6 = (_QWORD *)*v6;
  }
  while( i )
  {
    v8 = (_QWORD **)i[1];
    v9 = (__int64)i;
    v10 = i;
    if( v8 )
    {
      v11 = *v8;
      for( i = (_QWORD *)i[1]; v11; v11 = (_QWORD *)*v11 )
        i = v11;
    }
    else
    {
      while( 1 )
      {
        i = (_QWORD *)(i[2] & 0xFFFFFFFFFFFFFFFCui64);
        if( !i || (_QWORD *)*i == v10 )
          break;
        v10 = i;
      }
    }
    MiActOnPartitionNodePages(v9, 3u, (__int16 **)&v13);
    if( (SDWORD1(v14) & 0x80000000) != 0 )
    {
      v4 = DWORD1(v14);
      break;
    }
  }
  MiUnlockDynamicMemoryExclusive((_MI_PARTITION *)a1, CurrentThread);
  return v4;
}

Referenced by:

MiAllocatePartitionPhysicalPages
MiHotAddPartitionMemory