PopDirectedDripsUmPowerInformationInternal

INT64 __fastcall PopDirectedDripsUmPowerInformationInternal(INT64 a1, UINT64 a2, INT64 a3, _DWORD *a4, _QWORD *a5){
  signed __int32 v5; 
  signed __int32 v6; 
  int v8; 
  int v9; 
  int v10; 
  *a4 = 0;
  *a5 = 0i64;
  _m_prefetchw(&PopDirectedDripsState);
  v5 = PopDirectedDripsState;
  do
  {
    v6 = v5;
    v5 = _InterlockedCompareExchange((volatile signed __int32 *)&PopDirectedDripsState, v5, v5);
  }
  while( v6 != v5 );
  if( (v5 & 1) == 0 )
    return 3221225659i64;
  v8 = a1 - 53;
  if( !v8 )
    return PopDirectedDripsUmDirectedFxAddTestDevice((unsigned int)a2, a3);
  v9 = v8 - 1;
  if( !v9 )
    return PopDirectedDripsUmDirectedFxRemoveTestDevice((unsigned int)a2, a3);
  v10 = v9 - 2;
  if( !v10 )
    return PopDirectedDripsUmDirectedFxSetMode((unsigned int)a2, a3);
  if( v10 == 8 )
    return PopDirectedDripsUmQueryCapabilities(a4, a5);
  return 3221225485i64;
}

Referenced by:

PopPowerInformationInternal