PopFxDeliverDevicePowerRequired

UINT8 __stdcall PopFxDeliverDevicePowerRequired(_POP_FX_DEVICE *FxDevice, _PEP_WORK_INFORMATION *WorkInfo){
  void(__fastcall *v4)(_QWORD); 

  if( *((_DWORD *)FxDevice + 9) == 2 )
  {
    PopDiagTraceFxDevicePowerRequirement(*((VOID **)FxDevice + 6), 0, 1u);
    v4 = (void(__fastcall *)(_QWORD))*((_QWORD *)FxDevice + 17);
    if( v4 )
      v4(*((_QWORD *)FxDevice + 24));
    else
      _InterlockedDecrement((volatile signed __int32 *)FxDevice + 9);
    _InterlockedAnd((volatile signed __int32 *)FxDevice + 8, 0xFFFFFFBF);
  }
  return PopFxCompleteDevicePowerRequired((POP_FX_DEVICE *)FxDevice, (PEP_WORK_INFORMATION *)WorkInfo);
}

Referenced by:

PopFxDeviceWork
PopFxIdleTimeoutDpcRoutine
PopFxProcessWork