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.