HalpInsertSecondarySignalList
NTSTATUS __stdcall HalpInsertSecondarySignalList(INT64 a1){
unsigned __int64 v2;
_QWORD *v3;
_QWORD *v4;
bool v5;
NTSTATUS result;
v2 = (unsigned __int8)HalpAcquireHighLevelLock((UINT64 *)&CmpDummyThreadEvent + 998);
v3 = (_QWORD *)*(&CmpDummyThreadEvent + 997);
v4 = (_QWORD *)(a1 + 144);
if( (_UNKNOWN *)**(&CmpDummyThreadEvent + 997) != (_UNKNOWN *)((char *)&CmpDummyThreadEvent + 7968) )
__fastfail(3u);
v5 = *(&CmpDummyThreadEvent + 7848) == 0;
*v4 = (char *)&CmpDummyThreadEvent + 7968;
v4[1] = v3;
*v3 = v4;
*(&CmpDummyThreadEvent + 997) = v4;
if( v5 )
{
*(&CmpDummyThreadEvent + 7848) = 1;
KiInsertQueueDpc((_KDPC *)&CmpDummyThreadEvent + 123, 0i64, 0i64, 0i64, 0);
}
KxReleaseSpinLock((UINT64 *)&CmpDummyThreadEvent + 998);
result = KiIrqlFlags;
__writecr8(v2);
return result;
}Referenced by:
HalpReleaseSecondaryIcEntryShared