KiMaskInterruptInternal
NTSTATUS __stdcall KiMaskInterruptInternal(UINT64 Vector, UINT64 Gsiv){
unsigned int v2;
__int64 v3;
__int64 **v5;
__int64 **v6;
v2 = Gsiv;
v3 = *((_QWORD *)KeGetCurrentPrcb() + ((unsigned __int8(__fastcall *)(UINT64))off_140C00618[0])(Vector) + 1576);
if( !v3 )
return -2147483611;
if( *(INT64(__fastcall **)())(v3 + 80) == KiChainedDispatch )
{
v5 = (__int64 **)(v3 + 8);
v6 = v5;
while( ((_DWORD)v6[12] & 1) != 0 )
{
v6 = (__int64 **)*v6;
if( v6 == v5 )
return((__int64(__fastcall *)(_QWORD, _QWORD))off_140C00770[0])(v2, 0i64);
}
}
else if( (*(_DWORD *)(v3 + 104) & 1) != 0 )
{
return((__int64(__fastcall *)(_QWORD, _QWORD))off_140C00770[0])(v2, 0i64);
}
return 296;
}Referenced by:
KeMaskInterrupt
KiMaskInterruptDpc