MiPageFileNoFreeSpace

__int64 __fastcall MiPageFileNoFreeSpace(__int64 a1, _QWORD *a2){
  __int64 v2; 
  UINT64 v4; 
  unsigned __int64 v6; 
  int v7; 
  unsigned __int64 v8; 
  unsigned __int128 v9; 
  unsigned __int64 v10; 
  unsigned __int64 v11; 
  unsigned int v12; 
  unsigned int v13; 
  __int64 v14; 
  unsigned __int64 v15; 
  v2 = *(_QWORD *)(a1 + 248);
  v4 = 1i64;
  MiFreeModifiedReservations((_MMPAGING_FILE *)a1, 1ui64);
  v6 = 0i64;
  v7 = 0;
  v8 = ExAcquireSpinLockExclusive((PEX_SPIN_LOCK)(a1 + 232));
  if( *(_QWORD *)(a1 + 24) )
  {
    MiMakePagefileWriterEntryAvailable(a2);
  }
  else
  {
    *(_BYTE *)(a1 + 206) |= 1u;
    v7 = 1;
  }
  ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)(a1 + 232));
  *(_QWORD *)&v9 = (unsigned int)KiIrqlFlags;
  __writecr8(v8);
  if( v7 == 1 )
  {
    *(_QWORD *)&v9 = 2575857425i64;
    *a2 = 2575857425i64;
    v10 = *(_QWORD *)(v2 + 7592);
    v11 = *(_QWORD *)(v2 + 7464);
    if( v11 > v10 )
      v11 = *(_QWORD *)(v2 + 7592);
    if( (*(_BYTE *)(a1 + 204) & 0x10) == 0 )
    {
      v9 = v10 * (unsigned __int128)0xCCCCCCCCCCCCCCCDui64;
      if( v11 > (*((_QWORD *)&v9 + 1) & 0xFFFFFFFFFFFFFFF8ui64) && v10 < *(_QWORD *)(v2 + 6216) )
      {
        MiCauseOverCommitPopup((_MI_PARTITION *)v2);
LABEL_20:
        *(_QWORD *)&v9 = *(_QWORD *)(v2 + 7592);
        if( (unsigned __int64)v9 < *(_QWORD *)(v2 + 6216) )
          *(_QWORD *)&v9 = MiIssuePageExtendRequest((_MI_PARTITION *)v2, v4, 6ui64, 0i64);
        return v9;
      }
      if( *(_QWORD *)(v2 + 7600) >= 0x1000ui64 )
      {
        v12 = *(_DWORD *)(v2 + 6936);
        v13 = 0;
        if( v12 )
        {
          v14 = v2 + 6944;
          do
          {
            if( (*(_BYTE *)(*(_QWORD *)v14 + 204i64) & 0x50) == 0 )
            {
              if( v6 + *(_QWORD *)(*(_QWORD *)v14 + 24i64) < v6 )
                break;
              v6 += *(_QWORD *)(*(_QWORD *)v14 + 24i64);
            }
            ++v13;
            v14 += 8i64;
          }
          while( v13 < v12 );
        }
        v15 = *(_QWORD *)(v2 + 7600);
        if( v15 > v6 )
        {
          v4 = v15 - v6;
          if( v4 )
            goto LABEL_20;
        }
      }
    }
  }
  return v9;
}

Referenced by:

MiGatherPagefilePages