SafeAllocBlob
VOID *__stdcall SafeAllocBlob(
UINT64 HeaderSize,
UINT64 NumElements,
UINT64 ElementSize,
UINT64 NumElements2,
UINT64 ElementSize2,
UINT64 *TotalSizeOut){
unsigned __int64 v6;
unsigned int v7;
unsigned __int64 v8;
unsigned int v9;
size_t v10;
VOID **PoolWithTag;
VOID **v12;
v6 = (unsigned int)ElementSize * (unsigned __int64)(unsigned int)NumElements;
if( v6 > 0xFFFFFFFF )
return 0i64;
v7 = v6 + HeaderSize;
if( (int)v6 + (int)HeaderSize < (unsigned int)HeaderSize )
return 0i64;
v8 = (unsigned int)ElementSize2 * (unsigned __int64)(unsigned int)NumElements2;
if( v8 > 0xFFFFFFFF )
return 0i64;
v9 = v7 + v8;
if( v7 + (unsigned int)v8 < v7 )
return 0i64;
if( TotalSizeOut )
*(_DWORD *)TotalSizeOut = v9;
if( !v9 )
return 0i64;
v10 = v7 + v8;
PoolWithTag = ExAllocatePoolWithTag(1ui64, v9, 1920232557i64);
v12 = PoolWithTag;
if( PoolWithTag )
memset(PoolWithTag, 0i64, v10);
return v12;
}Referenced by:
RtlpMuiRegCreateLanguageConfigList
RtlpMuiRegCreateLanguages
RtlpMuiRegCreateStringPool