KeRemoveSystemServiceTable

INT8 __fastcall KeRemoveSystemServiceTable(INT64 a1){
  int v1; 
  __int64 v3; 

  v1 = a1;
  if( MmGetSessionIdEx(KeGetCurrentThread()->ApcState.Process) )
    return 1;
  if( (unsigned int)(v1 - 1) <= 1
    && ((_QWORD)xmmword_140E018E0 || (_QWORD)xmmword_140CFBA60 || (_QWORD)xmmword_140CFBC20) )
  {
    if( v1 == 1 )
    {
      *(_QWORD *)&xmmword_140CFBA60 = 0i64;
      LODWORD(xmmword_140CFBA70) = 0;
      *((_QWORD *)&xmmword_140CFBA70 + 1) = 0i64;
    }
    else
    {
      v3 = 2i64 * (unsigned int)(v1 - 1);
      *(_QWORD *)&KeServiceDescriptorTableFilter[v3] = 0i64;
      LODWORD(KeServiceDescriptorTableFilter[v3 + 1]) = 0;
      *((_QWORD *)&KeServiceDescriptorTableFilter[v3 + 1] + 1) = 0i64;
    }
    return 1;
  }
  return 0;
}

Referenced by:

No references.