TtmpTsmIterate
bool __fastcall TtmpTsmIterate(__int64 a1, __int64 a2){
int v2;
_TERMINAL_DISPLAY_STATE v5;
int v6;
__int64 v7;
UINT64 v8;
bool result;
_TERMINAL_DISPLAY_STATE DisplayState;
v2 = *(_DWORD *)(a1 + 44);
DisplayState = TerminalDisplayStateForceOff;
if( v2 == 2 )
{
v5 = TerminalDisplayStateOff;
}
else
{
if( v2 != 1 )
{
v5 = *(_DWORD *)a1;
v6 = 0;
goto LABEL_7;
}
v5 = TerminalDisplayStateOn;
}
v6 = *(_DWORD *)(a1 + 48);
LABEL_7:
if( *(_BYTE *)(a1 + 41) || v2 == 1 )
{
v8 = 0i64;
*(_QWORD *)(a2 + 16) = *(_QWORD *)(a1 + 16);
}
else
{
v7 = *(_QWORD *)(a1 + 8);
*(_QWORD *)(a2 + 16) = v7;
v8 = *(_QWORD *)(a1 + 16) - v7;
}
if( (unsigned int)(v5 - 2) <= 1 )
{
if( *(_BYTE *)(a1 + 40) )
{
v5 = TerminalDisplayStateOn;
*(_QWORD *)(a2 + 24) = 0i64;
}
else
{
TtmpTsmEvaluateTimeouts(*(_QWORD *)(a1 + 24), *(_QWORD *)(a1 + 32), v8, &DisplayState, (UINT64 *)(a2 + 24));
v5 = DisplayState;
if( (unsigned int)(DisplayState - 1) <= 1 )
v6 = 12;
}
}
else
{
*(_QWORD *)(a2 + 24) = 0i64;
}
*(_DWORD *)a2 = v5;
result = *(_DWORD *)a1 != v5;
*(_BYTE *)(a2 + 4) = result;
*(_DWORD *)(a2 + 8) = v6;
return result;
}Referenced by:
TtmpUpdateTerminalState