SmArrayGrow
UINT64 __stdcall SmArrayGrow(UINT64 DesiredIndex, UINT64 EntrySize, UINT64 *EntryCountMax, PVOID *Array){
unsigned int v6;
unsigned __int64 v7;
UINT8 *PoolWithTag;
UINT8 *v9;
UINT64 v10;
if( (unsigned int)DesiredIndex < *(_DWORD *)EntryCountMax )
return 1i64;
v6 = 2 * *(_DWORD *)EntryCountMax;
if( v6 < 8 )
v6 = 8;
if( (unsigned int)DesiredIndex < v6 || (v6 = DesiredIndex + 8, (int)DesiredIndex + 8 >= (unsigned int)DesiredIndex) )
{
v7 = 16i64 * v6;
if( v7 <= 0xFFFFFFFF )
{
PoolWithTag = (UINT8 *)ExAllocatePoolWithTag(NonPagedPoolNx, (unsigned int)v7, 0x72416D73ui64);
v9 = PoolWithTag;
if( PoolWithTag )
{
v10 = (unsigned int)(16 * *(_DWORD *)EntryCountMax);
memset((INT64)&PoolWithTag[v10], 0i64);
if( (_DWORD)v10 )
{
memmove(v9, (UINT8 *)*Array, v10);
ExFreePoolWithTag(*Array, 0);
}
*Array = v9;
*(_DWORD *)EntryCountMax = v6;
return 1i64;
}
}
}
return 0i64;
}Referenced by:
B_TREE<_SM_PAGE_KEY,SMKM_STORE_MGR::SMKM_FRONTEND_ENTRY,4096,B_TREE_DUMMY_NODE_POOL,B_TREE_KEY_COMPARATOR<_SM_PAGE_KEY>>::BTreeInsertEx
B_TREE<_SM_PAGE_KEY,SMKM_STORE_MGR::SMKM_FRONTEND_ENTRY,4096,B_TREE_DUMMY_NODE_POOL,B_TREE_KEY_COMPARATOR<_SM_PAGE_KEY>>::BTreeSearchKey
B_TREE<_SM_PAGE_KEY,ST_STORE::_ST_PAGE_ENTRY,4096,NP_CONTEXT,B_TREE_KEY_COMPARATOR<_SM_PAGE_KEY>>::BTreeInsertEx
B_TREE<_SM_PAGE_KEY,ST_STORE::_ST_PAGE_ENTRY,4096,NP_CONTEXT,B_TREE_KEY_COMPARATOR<_SM_PAGE_KEY>>::BTreeSearchKey
SMKM_STORE::SmStOutSwapStore
SmKmStoreFileGetExtents
long,ST_STORE::_ST_HASH_ENTRY,4096,NP_CONTEXT,ST_STORE::ST_HASH_ENTRY_COMPARATOR>::BTreeInsertEx
long,ST_STORE::_ST_HASH_ENTRY,4096,NP_CONTEXT,ST_STORE::ST_HASH_ENTRY_COMPARATOR>::BTreeSearchKey
long,ST_STORE::_ST_REGION_ENTRY,4096,NP_CONTEXT,ST_STORE::ST_REGION_ENTRY_COMPARATOR>::BTreeInsertEx
long,ST_STORE::_ST_REGION_ENTRY,4096,NP_CONTEXT,ST_STORE::ST_REGION_ENTRY_COMPARATOR>::BTreeSearchKey