PoSetProcessEnergyTrackingState

__int64 __fastcall PoSetProcessEnergyTrackingState(_QWORD *a1, _DWORD *a2){
  _POP_RW_LOCK *v3; 
  _POP_RW_LOCK *v5; 
  int v6; 
  _WORD *i; 
  int v8; 
  v3 = (_POP_RW_LOCK *)a1[285];
  v5 = 0i64;
  if( v3 )
  {
    if( a2[2] || (*a2 & 0xFFFFFFEF) != 0 || (~*a2 & a2[1]) != 0 )
    {
      v8 = -1073741811;
    }
    else
    {
      if( (a2[3] & 1) != 0 )
      {
        v6 = 0;
        for( i = a2 + 4; *i; ++i )
        {
          if( (unsigned int)++v6 >= 0x40 )
            return(unsigned int)-1073741811;
        }
      }
      v5 = v3;
      PopAcquireRwLockExclusive(v3 + 27);
      v8 = PopEtEnergyContextSetState(a1, a2);
      if( v8 >= 0 )
        v8 = 0;
    }
    if( v5 )
      PopReleaseRwLock((UINT64)&v5[27]);
  }
  else
  {
    return(unsigned int)-1073741637;
  }
  return(unsigned int)v8;
}

Referenced by:

NtSetInformationProcess