TtmpActivateSessionWorker

INT64 __fastcall TtmpActivateSessionWorker(UINT64 *a1){
  int v1; 
  unsigned int v3; 
  UINT64 v4; 
  int v5; 
  v1 = *((_DWORD *)a1 + 1);
  if( (v1 & 8) == 0 )
  {
    if( (v1 & 0x40) != 0 )
      return 259;
    if( (v1 & 0x200) != 0 )
    {
      if( (v1 & 0x100) != 0 )
        return 259;
      v4 = *((unsigned int *)a1 + 3);
      *((_DWORD *)a1 + 1) = v1 | 0x100;
      v3 = TtmpInitiateModernStandbyTransition((INT64)a1, 0, v4);
      if( v3 )
        return v3;
      *((_DWORD *)a1 + 1) &= 0xFFFFFCFF;
      v1 = *((_DWORD *)a1 + 1);
      if( (v1 & 0x10) == 0 )
        return 0;
    }
    if( (v1 & 0x400) == 0 )
    {
      v3 = 0;
      *((_DWORD *)a1 + 1) = v1 & 0xFFFFFFE7 | 8;
      TtmiLogSessionActivate();
      return v3;
    }
    if( (v1 & 0x80u) == 0 )
    {
      v5 = *((_DWORD *)a1 + 3);
      *((_DWORD *)a1 + 1) = v1 | 0x80;
      TtmpSessionPowerControl((__int64)a1, 1, v5);
    }
    return 259;
  }
  *((_DWORD *)a1 + 1) = v1 & 0xFFFFFFEF;
  return 0;
}

Referenced by:

TtmpSessionWorker