MiUpdateClaimDistribution

VOID __stdcall MiUpdateClaimDistribution(_MMSUPPORT_INSTANCE *VmSupport, UINT64 *ClaimDistribution){
  UINT64 v4; 
  char v5; 
  UINT64 v6; 
  UINT64 v7; 
  UINT64 v8; 
  UINT64 v9; 
  unsigned __int64 v10; 
  bool v11; 
  UINT64 v12; 
  UINT64 v13; 
  unsigned __int64 v14; 
  UINT64 v15; 
  UINT64 v16; 
  unsigned __int64 v17; 
  UINT64 v18; 
  UINT64 v19; 
  unsigned __int64 v20; 
  UINT64 v21; 
  UINT64 v22; 
  unsigned __int64 v23; 
  unsigned __int64 v24; 
  UINT64 v25; 
  unsigned __int64 v26; 
  UINT64 v27; 
  UINT64 v28; 

  v4 = *ClaimDistribution;
  v5 = 3;
  if( VmSupport->Flags.MemoryPriority != 2 )
    v5 = 1;
  v6 = v4 + (VmSupport->AgeDistribution[0] >> v5);
  if( v6 < v4 )
    v6 = -1i64;
  *ClaimDistribution = v6;
  v7 = ClaimDistribution[1];
  v8 = ClaimDistribution[6];
  v9 = (VmSupport->AgeDistribution[1] >> v5) + v7;
  v10 = VmSupport->AgeDistribution[2];
  v11 = v9 < v7;
  v12 = ClaimDistribution[2];
  if( v11 )
    v9 = -1i64;
  ClaimDistribution[1] = v9;
  v13 = (v10 >> v5) + v12;
  v14 = VmSupport->AgeDistribution[3];
  v11 = v13 < v12;
  v15 = ClaimDistribution[3];
  if( v11 )
    v13 = -1i64;
  ClaimDistribution[2] = v13;
  v16 = (v14 >> v5) + v15;
  v17 = VmSupport->AgeDistribution[4];
  v11 = v16 < v15;
  v18 = ClaimDistribution[4];
  if( v11 )
    v16 = -1i64;
  ClaimDistribution[3] = v16;
  v19 = (v17 >> v5) + v18;
  v20 = VmSupport->AgeDistribution[5];
  v11 = v19 < v18;
  v21 = ClaimDistribution[5];
  if( v11 )
    v19 = -1i64;
  ClaimDistribution[4] = v19;
  v22 = (v20 >> v5) + v21;
  v23 = VmSupport->AgeDistribution[7];
  v11 = v22 < v21;
  v24 = VmSupport->AgeDistribution[6];
  if( v11 )
    v22 = -1i64;
  ClaimDistribution[5] = v22;
  v25 = v8 + (v24 >> v5);
  if( v25 < v8 )
    v25 = -1i64;
  v26 = v23 >> v5;
  ClaimDistribution[6] = v25;
  v27 = ClaimDistribution[7];
  v28 = v26 + v27;
  if( v26 + v27 < v27 )
    v28 = -1i64;
  ClaimDistribution[7] = v28;
}

Referenced by:

MiComputeAgeDistribution
MiOrderTrimList