TtmpUpdateDisplayRequiredPowerRequest

VOID __stdcall TtmpUpdateDisplayRequiredPowerRequest(INT64 a1, INT64 a2, CHAR a3){
  unsigned int v4; 
  __int64 v6; 
  int v7; 
  UINT64 v8; 
  INT64 v9; 
  int v10; 
  int v11; 
  INT64 v12; 

  v12 = 0i64;
  v4 = a2;
  if( TtmpFindPowerRequestEntryById(a1, a2, &v12) )
  {
    v6 = v12;
    v7 = *(_DWORD *)(v12 + 40);
    if( a3 )
    {
      if( v7 == -1 )
      {
        v8 = 1091i64;
        v9 = 3221225621i64;
LABEL_5:
        TtmiLogError((INT8 *)"TtmpUpdateDisplayRequiredPowerRequest", v8, v9, 0xFFFFFFFFi64);
        goto LABEL_12;
      }
      v10 = v7 + 1;
      *(_DWORD *)(v12 + 40) = v10;
      if( v10 == 1 )
        TtmpWriteDisplayRequiredPowerRequestUpdatedEvent(a1, 0i64, v6);
    }
    else
    {
      if( !v7 )
      {
        v8 = 1116i64;
        v9 = 3221225485i64;
        goto LABEL_5;
      }
      v11 = v7 - 1;
      *(_DWORD *)(v12 + 40) = v11;
      if( !v11 )
      {
        TtmpWriteDisplayRequiredPowerRequestUpdatedEvent(a1, 0i64, v6);
        TtmpSetDisplayRequestEnded((_TTMI_SESSION *)a1, v4);
      }
    }
  }
LABEL_12:
  TtmiLogSessionDisplayRequiredPowerRequestUpdated();
}

Referenced by:

TtmNotifySessionDisplayRequiredChange