SmBinaryArrayGrow
VOID **__fastcall SmBinaryArrayGrow(__int64 a1, unsigned int a2){
__int64 v2;
__int64 v3;
unsigned int v4;
unsigned int v5;
VOID **v6;
__int64 v7;
UINT64 v9;
VOID **PoolWithTag;
v2 = 0i64;
v3 = a1;
_BitScanReverse((unsigned int *)&a1, a2);
v5 = a2 ^ (1 << v4);
if( v4 < 0x20 )
{
v6 = *(VOID ***)(v3 + 8 * a1);
v7 = (unsigned int)a1;
if( !v6 )
{
v9 = (unsigned int)(16 * (1 << a1));
PoolWithTag = ExAllocatePoolWithTag(0x200ui64, v9, 1094872435i64);
v6 = PoolWithTag;
if( !PoolWithTag )
return(VOID **)v2;
memset(PoolWithTag, 0i64, v9);
*(_QWORD *)(v3 + 8 * v7) = v6;
}
return &v6[2 * v5];
}
return(VOID **)v2;
}Referenced by:
SmHpBufferAlloc