WdipSemAddScenarioToTable
NTSTATUS __stdcall WdipSemAddScenarioToTable(_WDIP_SEM_SCENARIO_INFO *NewScenario){
int v1;
__int64 v3;
__int64 v4;
__int64 v5;
__int64 v6;
v1 = 0;
if( !NewScenario )
return -1073741811;
v3 = 0i64;
if( *(&ExBootDevicesRemovedEvent + 1112) )
{
while( 1 )
{
v4 = *((_QWORD *)&ExBootDevicesRemovedEvent + v3 + 492);
v5 = (unsigned int)v3;
v6 = *(_QWORD *)v4 - *(_QWORD *)NewScenario;
if( *(_QWORD *)v4 == *(_QWORD *)NewScenario )
v6 = *(_QWORD *)(v4 + 8) - *((_QWORD *)NewScenario + 1);
if( !v6 && *(_WORD *)(v4 + 16) == *((_WORD *)NewScenario + 8) )
break;
v3 = (unsigned int)(v3 + 1);
if( (unsigned int)v3 >= *(&ExBootDevicesRemovedEvent + 1112) )
goto LABEL_7;
}
v1 = WdipSemMergeScenarios(NewScenario, *((_WDIP_SEM_SCENARIO_INFO **)&ExBootDevicesRemovedEvent + v3 + 492));
if( v1 >= 0 )
{
*((_QWORD *)&ExBootDevicesRemovedEvent + v5 + 492) = NewScenario;
WdipSemFreeScenario((_WDIP_SEM_SCENARIO_INFO *)v4);
}
}
else
{
LABEL_7:
if( *(&ExBootDevicesRemovedEvent + 1112) >= 0x40u )
{
return -1073741823;
}
else
{
*((_QWORD *)&ExBootDevicesRemovedEvent + *(&ExBootDevicesRemovedEvent + 1112) + 492) = NewScenario;
++*(&ExBootDevicesRemovedEvent + 1112);
}
}
return v1;
}Referenced by:
WdipSemLoadScenarioTable