RtlpHpVsChunkFree
UINT64 __fastcall RtlpHpVsChunkFree(INT64 SpinLock, UINT64 a2, _WORD *a3, CHAR a4, INT64 a5){
unsigned int v5;
INT64 v6;
unsigned int i;
INT64 v11;
__int64 v12;
__int64 v13;
_WORD *v14;
UINT64 v16;
LODWORD(v16) = 0;
v5 = a4;
v6 = a5;
for( i = 0; ; i = v16 )
{
a3 = (_WORD *)RtlpHpVsChunkCoalesce(SpinLock, a2, (UINT64)a3, &v16);
if( (_DWORD)v16 == *(unsigned __int16 *)(a2 + 32) )
{
RtlpHpVsSubsegmentCleanup(SpinLock, a2, v12, v13);
return a2;
}
if( (unsigned int)v16 <= i || !RtlpHpVsChunkDecommit((PVOID)SpinLock, a2, (INT64)a3, v5, v6) )
break;
}
if( (*(_DWORD *)(SpinLock + 176) & 1) != 0 && ((unsigned __int64)(a3 + 16) & 0xFFF) != 0 )
{
v14 = (_WORD *)RtlpHpVsChunkAlignSplit(v11, a2, (INT64)a3);
if( v14 )
RtlpHpVsFreeChunkInsert((UINT64 *)SpinLock, a2, v14);
}
RtlpHpVsFreeChunkInsert((UINT64 *)SpinLock, a2, a3);
return 0i64;
}Referenced by:
RtlpHpVsContextFreeInternal