RtlpHpHeapCompact
INT64 __fastcall RtlpHpHeapCompact(INT64 a1){
int v2;
int v3;
int v4;
unsigned int v5;
v2 = *(_DWORD *)(a1 + 220);
v3 = *(_DWORD *)(a1 + 20) & 0x13000003;
v4 = 0;
if( v2 )
LOBYTE(v4) = v2 == *((_DWORD *)KeGetCurrentThread() + 288);
v5 = v3 | 1;
if( !v4 )
v5 = v3;
if( RtlpInterlockedFlushSList((PSLIST_HEADER)(a1 + 704)) )
RtlpHpVsContextFreeList((INT64 *)(a1 + 640), (BYTE *)v5);
RtlpHpLfhContextCompact((POBJECT_ATTRIBUTES)(a1 + 832), (PFILE_NETWORK_OPEN_INFORMATION)v5);
RtlpHpSegContextCompact(a1 + 256, v5);
RtlpHpSegContextCompact(a1 + 448, v5);
return 0i64;
}Referenced by:
ExpHpCompactSessionPools
ExpHpCompactionRoutine