TtmpTsmIterate
BOOL __fastcall TtmpTsmIterate(INT64 a1, INT64 a2){
int v2;
int v5;
int v6;
__int64 v7;
UINT64 v8;
_QWORD *v9;
INT64 a4;
v2 = *(_DWORD *)(a1 + 44);
LODWORD(a4) = 0;
if( v2 == 2 )
{
v5 = 1;
}
else
{
if( v2 != 1 )
{
v5 = *(_DWORD *)a1;
v6 = 0;
goto LABEL_7;
}
v5 = 3;
}
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;
}
LODWORD(v9) = v5 - 2;
if( (unsigned int)(v5 - 2) <= 1 )
{
v9 = (_QWORD *)(a2 + 24);
if( *(_BYTE *)(a1 + 40) )
{
v5 = 3;
*v9 = 0i64;
}
else
{
TtmpTsmEvaluateTimeouts(*(_QWORD *)(a1 + 24), *(_QWORD *)(a1 + 32), v8, (INT64)&a4, (UINT64 *)(a2 + 24));
v5 = a4;
LODWORD(v9) = a4 - 1;
if( (unsigned int)(a4 - 1) <= 1 )
v6 = 12;
}
}
else
{
*(_QWORD *)(a2 + 24) = 0i64;
}
*(_DWORD *)a2 = v5;
LOBYTE(v9) = *(_DWORD *)a1 != v5;
*(_BYTE *)(a2 + 4) = (_BYTE)v9;
*(_DWORD *)(a2 + 8) = v6;
return(int)v9;
}Referenced by:
TtmpUpdateTerminalState