WdipSemAddScenarioToTable
__int64 __fastcall WdipSemAddScenarioToTable(__int64 a1){
int v1;
__int64 v3;
__int64 v4;
__int64 v5;
__int64 v6;
v1 = 0;
if( a1 )
{
v3 = 0i64;
if( dword_140C1A360 )
{
while( 1 )
{
v4 = *(&WdipSemScenarioTable + v3);
v5 = (unsigned int)v3;
v6 = *(_QWORD *)v4 - *(_QWORD *)a1;
if( *(_QWORD *)v4 == *(_QWORD *)a1 )
v6 = *(_QWORD *)(v4 + 8) - *(_QWORD *)(a1 + 8);
if( !v6 && *(_WORD *)(v4 + 16) == *(_WORD *)(a1 + 16) )
break;
v3 = (unsigned int)(v3 + 1);
if( (unsigned int)v3 >= dword_140C1A360 )
goto LABEL_7;
}
v1 = WdipSemMergeScenarios(a1, *(&WdipSemScenarioTable + v3));
if( v1 >= 0 )
{
*(&WdipSemScenarioTable + v5) = a1;
WdipSemFreeScenario(v4);
}
}
else
{
LABEL_7:
if( (unsigned int)dword_140C1A360 >= 0x40 )
return(unsigned int)-1073741823;
else
*(&WdipSemScenarioTable + (unsigned int)dword_140C1A360++) = a1;
}
}
else
{
return(unsigned int)-1073741811;
}
return(unsigned int)v1;
}Referenced by:
WdipSemLoadScenarioTable