RtlpHpVsContextFreeList

VOID __stdcall RtlpHpVsContextFreeList(INT64 *SpinLock, BYTE *a2){
  _QWORD *v2; 
  _QWORD *v3; 
  unsigned int v4; 
  int v6; 
  UINT64 v7; 
  INT64 a5[2]; 
  __int64 v9; 
  v3 = v2;
  v4 = (unsigned int)a2;
  *(_OWORD *)a5 = 0i64;
  v9 = 0i64;
  v6 = (unsigned __int8)a2 & 1;
  if( ((unsigned __int8)a2 & 1) == 0 )
    RtlpHpAcquireQueuedLockExclusive((INT8)SpinLock, (UINT64 *)*((unsigned int *)SpinLock + 2));
  while( v3 )
  {
    v7 = (UINT64)(v3 - 2);
    v3 = (_QWORD *)*v3;
    RtlpHpVsContextFreeInternal(SpinLock, (INT64)a2, v7, v4, (INT64)a5);
  }
  if( !v6 )
    RtlpHpReleaseQueuedLockExclusive(*((unsigned int *)SpinLock + 2), (INT64)a5);
}

Referenced by:

RtlpHpHeapCompact