PopPepCompleteComponentIdleStateChangeActivity

void __fastcall PopPepCompleteComponentIdleStateChangeActivity(__int64 a1, __int64 a2){
  __int64 v4; 
  __int64 v5; 
  UINT64 v6; 

  if( !a2 )
    return;
  *(_DWORD *)(*(_QWORD *)(a2 + 64) + 12i64) = 0;
  *(_BYTE *)(*(_QWORD *)(a2 + 64) + 16i64) = 0;
  if( *(_BYTE *)(a2 + 184) && *(_BYTE *)(a1 + 124) )
  {
    v5 = *(_QWORD *)(a2 + 24);
    if( (v5 & 4) != 0 )
    {
      v6 = *(unsigned int *)(a2 + 176);
LABEL_13:
      PopFxUpdateComponentPerfStateNominalChange(*(_POP_FX_DEVICE **)(a1 + 32), *(unsigned int *)(a2 + 8), 0, v6);
      goto LABEL_3;
    }
    if( *(_DWORD *)(a2 + 180) )
    {
      v6 = *(unsigned int *)(a2 + 176);
      if( !(_DWORD)v6 && (v5 & 2) != 0 )
        goto LABEL_13;
    }
  }
LABEL_3:
  if( !*(_DWORD *)(a2 + 176) )
    KeSetEvent((PRKEVENT)(a2 + 32), 0, 0);
  PopPepUpdateIdleState(a1, (_DWORD *)a2, 0);
  PopPepTryPowerDownComponent(a1, (_DWORD *)a2);
  v4 = *(unsigned int *)(a2 + 176);
  PopPepUpdateIdleStateRefCount(
    *(unsigned int *)(*(_QWORD *)(a2 + 192) + 24i64 * *(unsigned int *)(a2 + 180) + 16),
    *(unsigned int *)(*(_QWORD *)(a2 + 192) + 24 * v4 + 16),
    UpdateTypeDecrement);
  PopFxUpdateComponentAccountingEnhanced(
    *(_POP_FX_DEVICE **)(a1 + 32),
    *(unsigned int *)(a2 + 8),
    (unsigned int)v4,
    PopFxAccountingUpdateComplete);
}

Referenced by:

No references.