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