HalpDisableSecondaryInterrupt
__int64 __fastcall HalpDisableSecondaryInterrupt(_DWORD *a1){
int v2;
unsigned int v3;
LIST_ENTRY *SecondaryIcEntry;
LIST_ENTRY *v5;
unsigned int v6;
__int64 v7;
int Blink;
if( SecondaryIcServicesEnabled )
{
if( HalpCheckInterruptType(a1) )
{
v3 = a1[16];
SecondaryIcEntry = HalpFindSecondaryIcEntry(v3);
v5 = SecondaryIcEntry;
if( SecondaryIcEntry )
{
v2 = ((__int64(__fastcall *)(_LIST_ENTRY *, _QWORD))SecondaryIcEntry[4].Flink)(SecondaryIcEntry[2].Flink, v3);
if( v2 >= 0 )
{
v6 = v3 - LODWORD(v5[1].Flink);
v7 = v6;
Blink = (int)v5[v6 + 10].Blink;
BYTE4(v5[v7 + 10].Blink) = 0;
LODWORD(v5[v7 + 10].Blink) = Blink | 0x80000000;
}
HalpReleaseSecondaryIcEntryShared((volatile INT32 *)v5, 1);
}
else
{
return(unsigned int)-1073700575;
}
}
else
{
return(unsigned int)-1073741811;
}
}
else
{
return(unsigned int)-1073741637;
}
return(unsigned int)v2;
}Referenced by:
HalDisableInterrupt