WdipSemAddEndEventToScenario
INT64 __fastcall WdipSemAddEndEventToScenario(INT64 a1, INT64 a2){
unsigned int v2;
unsigned int v5;
unsigned int v6;
__int64 v7;
__int64 v8;
PSLIST_ENTRY v10;
v2 = 0;
if( a1 && a2 )
{
v5 = *(_DWORD *)(a1 + 52);
v6 = 0;
if( v5 )
{
while( 1 )
{
v7 = *(_QWORD *)(a1 + 8i64 * v6 + 1048);
v8 = *(_QWORD *)a2 - *(_QWORD *)v7;
if( *(_QWORD *)a2 == *(_QWORD *)v7 )
v8 = *(_QWORD *)(a2 + 8) - *(_QWORD *)(v7 + 8);
if( !v8 && *(_WORD *)(a2 + 16) == *(_WORD *)(v7 + 16) )
break;
if( ++v6 >= v5 )
goto LABEL_12;
}
WdipSemMergeEvents(*(_QWORD *)(a1 + 8i64 * v6 + 1048), a2);
}
else
{
LABEL_12:
if( v5 < 0x10 )
{
v10 = WdipSemFastAllocate(0, 0x30u);
if( v10 )
{
*v10 = *(PSLIST_ENTRY)a2;
v10[1] = *(PSLIST_ENTRY)(a2 + 16);
v10[2] = *(PSLIST_ENTRY)(a2 + 32);
*(_QWORD *)(a1 + 8i64 * (unsigned int)(*(_DWORD *)(a1 + 52))++ + 1048) = v10;
}
else
{
return(unsigned int)-1073741670;
}
}
else
{
return(unsigned int)-1073741823;
}
}
}
else
{
return(unsigned int)-1073741811;
}
return v2;
}Referenced by:
WdipSemMergeScenarios