KsepIsModuleShimmed

NTSTATUS __stdcall KsepIsModuleShimmed(_KSE_ENGINE *Engine, VOID *ModuleBaseAddress, _KSE_SHIMMED_MODULE **ModuleInfo){
  NTSTATUS v3; 
  _ETHREAD *CurrentThread; 
  _KSE_ENGINE *v8; 
  _KSE_ENGINE *v9; 
  _KSE_ENGINE *v11; 

  v3 = 0;
  if( !ModuleBaseAddress || !Engine || !ModuleInfo )
    return 0;
  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  *ModuleInfo = 0i64;
  --CurrentThread->Tcb.KernelApcDisable;
  ExAcquirePushLockExclusiveEx(&stru_140C50350, 0i64);
  v8 = Engine + 8;
  v9 = *(_KSE_ENGINE **)v8;
  while( v9 != v8 )
  {
    v11 = v9;
    v9 = *(_KSE_ENGINE **)v9;
    if( *((VOID **)v11 + 2) == ModuleBaseAddress )
    {
      *ModuleInfo = v11;
      v3 = 1;
      break;
    }
  }
  if( (_InterlockedExchangeAdd64(&stru_140C50350._bf_0, 0xFFFFFFFFFFFFFFFFui64) & 6) == 2 )
    ExfTryToWakePushLock(&stru_140C50350);
  KeAbPostRelease(&stru_140C50350);
  KeLeaveCriticalRegion();
  return v3;
}

Referenced by:

KseDriverUnloadImage
KsepGetShimCallbacksForDriver
KsepGetShimsForDriver