KiMaskInterruptInternal
VOID __fastcall KiMaskInterruptInternal(UINT64 Vector, _BYTE *Gsiv){
unsigned int v2;
_DWORD *v3;
char *v4;
char *v5;
v2 = (unsigned int)Gsiv;
v3 = KeGetCurrentPrcb()->InterruptObject[((unsigned __int8(__fastcall *)(UINT64))off_140C00618[0])(Vector)];
if( v3 )
{
if( *((NTSTATUS(__stdcall **)())v3 + 10) == KiChainedDispatch )
{
v4 = (char *)(v3 + 2);
v5 = v4;
while( (*((_DWORD *)v5 + 24) & 1) != 0 )
{
v5 = *(char **)v5;
if( v5 == v4 )
goto LABEL_4;
}
}
else if( (v3[26] & 1) != 0 )
{
LABEL_4:
((void(__fastcall *)(_QWORD, _QWORD))off_140C00770[0])(v2, 0i64);
}
}
}Referenced by:
KeMaskInterrupt
KiMaskInterruptDpc