PopRecalculateCBTriggerLevels

VOID __stdcall PopRecalculateCBTriggerLevels(UINT64 Flags){
  unsigned int v1; 
  __int64 v2; 
  __int64 v3; 
  __int64 v4; 
  __int64 v5; 
  UINT64 v6; 

  LODWORD(v6) = Flags;
  PopAcquirePolicyLock();
  v1 = 0;
  LODWORD(v6) = 0;
  v2 = 0i64;
  do
  {
    v3 = *(&stru_140C23628 + 232);
    if( (*(&PopCB + 6 * v2 + 75) & 0x80u) == 0 )
    {
      *(&PopCB + 6 * v2 + 78) = *(_DWORD *)(*(&stru_140C23628 + 232) + 24 * v2 + 100);
      if( *(_BYTE *)(v3 + 24 * v2 + 96) )
      {
        *(&PopCB + 6 * v2 + 75) |= 0x80u;
        PopDiagTraceBatteryTriggerFlags(&v6, (INT64)(&PopCB + 6 * v2 + 74));
        v1 = v6;
        v4 = 3i64 * (unsigned int)v6;
        v5 = 24i64 * (unsigned int)v6;
        if( PopBatteryCheckTrigger((_POP_ACTION_TRIGGER *)((char *)&PopCB + v5 + 296)) )
        {
          *(&PopCB + 2 * v4 + 75) |= 2u;
          PopDiagTraceBatteryTriggerFlags(&v6, (INT64)&PopCB + v5 + 296);
          v1 = v6;
        }
      }
    }
    LODWORD(v6) = ++v1;
    v2 = v1;
  }
  while( v1 < 4 );
  PopReleasePolicyLock();
}

Referenced by:

PopBatteryApplyCompositeState