CmpExpandPathInfo
INT64 __fastcall CmpExpandPathInfo(INT64 a1){
struct _KPRCB *CurrentPrcb;
_GENERAL_LOOKASIDE *P;
unsigned int v4;
PSLIST_ENTRY v5;
_GENERAL_LOOKASIDE *L;
__int64 Size;
void *(__fastcall *AllocateEx)(_POOL_TYPE, unsigned __int64, unsigned int, _LOOKASIDE_LIST_EX *);
__int64 Tag;
__int64 Type;
CurrentPrcb = KeGetCurrentPrcb();
P = CurrentPrcb->PPLookasideList[8].P;
++P->TotalAllocates;
v4 = 0;
v5 = RtlpInterlockedPopEntrySList(&P->ListHead);
if( v5 )
goto LABEL_2;
++P->AllocateMisses;
L = CurrentPrcb->PPLookasideList[8].L;
++L->TotalAllocates;
v5 = RtlpInterlockedPopEntrySList(&L->ListHead);
if( v5
|| (Size = L->Size,
AllocateEx = L->AllocateEx,
Tag = L->Tag,
Type = (unsigned int)L->Type,
++L->AllocateMisses,
(v5 = (PSLIST_ENTRY)((__int64(__fastcall *)(__int64, __int64, __int64))AllocateEx)(Type, Size, Tag)) != 0i64) )
{
LABEL_2:
memset(v5, 0i64, 0x1E0u);
*(_QWORD *)(a1 + 160) = v5;
}
else
{
return(unsigned int)-1073741670;
}
return v4;
}Referenced by:
CmpComputeComponentHashes