TtmpPushTerminalState

CHAR __fastcall TtmpPushTerminalState(INT64 *a1, INT64 a2){
  INT64 v2; 
  CHAR v3; 
  int TerminalById; 
  __int64 v7; 
  INT64 v8; 
  UINT64 v9; 
  __int64 v11; 
  v2 = *(unsigned int *)(a2 + 596);
  v3 = 0;
  v11 = 0i64;
  if( (_DWORD)v2 != -1 )
  {
    TerminalById = TtmiGetTerminalById(&v11, (INT64)a1, v2);
    if( TerminalById >= 0 )
    {
      v7 = v11;
      v8 = *(unsigned int *)(v11 + 276);
      if( (*((_DWORD *)a1 + 1) & 8) != 0 || (unsigned int)(v8 - 2) > 1 )
      {
        TtmpQueueTerminalDisplayStateOntoDevice((INT64)a1, a2, v8);
        v9 = *(unsigned int *)(v7 + 48);
        if( (_DWORD)v9 == 2 && *(char *)(a2 + 600) >= 0 )
          v9 = 1i64;
        if( *(_QWORD *)(a2 + 64) )
          TtmpCallSetInputMode(a1, a2, v9);
      }
      else
      {
        return 1;
      }
    }
    else
    {
      TtmiLogError((PSTR)"TtmpPushTerminalState", 3175i64, (unsigned int)TerminalById, 0xFFFFFFFFi64);
    }
  }
  return v3;
}

Referenced by:

TtmiSessionDeviceListWorker