ExpSvmReferenceAsid

VOID *__stdcall ExpSvmReferenceAsid(UINT64 Asid){
  unsigned __int64 v1; 
  void *v2; 
  __int64 v3; 
  void *v4; 
  __int64 v5; 
  void *BugCheckParameter4; 
  _KLOCK_QUEUE_HANDLE LockHandle; 

  v1 = (unsigned int)Asid;
  memset(&LockHandle, 0, sizeof(LockHandle));
  KeAcquireInStackQueuedSpinLock((PKSPIN_LOCK)&WheapDeferredInternalLogsEventLock + 291, &LockHandle);
  v2 = 0i64;
  v3 = *(&WheapDeferredInternalLogsEventLock + 290) + 16i64 * (unsigned int)v1;
  if( (unsigned int)v1 >= *(&WheapDeferredInternalLogsEventLock + 577) )
  {
    BugCheckParameter4 = 0i64;
LABEL_7:
    if( (unsigned int)v1 < *(&WheapDeferredInternalLogsEventLock + 577) )
      v2 = *(void **)v3;
    KeBugCheckEx(0x158u, (PVOID)v1, (PVOID)*(&WheapDeferredInternalLogsEventLock + 577), v2, BugCheckParameter4);
  }
  v4 = *(void **)v3;
  if( !*(_QWORD *)v3 || (v5 = *(_QWORD *)(v3 + 8), v5 < 0) )
  {
    BugCheckParameter4 = *(void **)(v3 + 8);
    goto LABEL_7;
  }
  *(_QWORD *)(v3 + 8) = v5 + 1;
  KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
  __writecr8(LockHandle.OldIrql);
  return(VOID *)*((_QWORD *)v4 + 273);
}

Referenced by:

No references.