TtmpQueueTerminalDisplayStateOntoDevice
VOID __stdcall TtmpQueueTerminalDisplayStateOntoDevice(INT64 a1, INT64 a2, INT64 a3){
VOID **v3;
VOID ****v5;
VOID ***v6;
UINT64 v7;
INT64 v8;
VOID **PoolWithTag;
VOID **v10;
VOID **v11;
v3 = *(VOID ***)(a2 + 56);
if( v3 )
{
v5 = (VOID ****)(a1 + 16 * ((int)a3 + 8i64));
v6 = *v5;
if( *v5 != (VOID ***)v5 )
{
while( 1 )
{
if( v6[3] == *(VOID ***)(a2 + 24) && *((_DWORD *)v6 + 8) == *(_DWORD *)(a2 + 32) )
{
v7 = 2862i64;
v8 = 3221226026i64;
goto LABEL_9;
}
if( v6[2] >= v3 )
break;
v6 = (VOID ***)*v6;
if( v6 == (VOID ***)v5 )
goto LABEL_11;
}
v6 = (VOID ***)v6[1];
}
LABEL_11:
PoolWithTag = ExAllocatePoolWithTag(1ui64, 0x28ui64, 1148023892i64);
v10 = PoolWithTag;
if( PoolWithTag )
{
*PoolWithTag = 0i64;
PoolWithTag[1] = 0i64;
PoolWithTag[3] = 0i64;
PoolWithTag[4] = 0i64;
PoolWithTag[2] = v3;
PoolWithTag[3] = *(VOID **)(a2 + 24);
*((_DWORD *)PoolWithTag + 8) = *(_DWORD *)(a2 + 32);
v11 = *v6;
if( (*v6)[1] != v6 )
__fastfail(3u);
*v10 = v11;
v10[1] = v6;
v11[1] = v10;
*v6 = v10;
}
else
{
v7 = 2897i64;
v8 = 3221225626i64;
LABEL_9:
TtmiLogError((INT8 *)"TtmpQueueTerminalDisplayStateOntoDevice", v7, v8, 0xFFFFFFFFi64);
}
}
}Referenced by:
TtmpPushTerminalState