RtlpMuiRegResizeStringPool
CHAR *__fastcall RtlpMuiRegResizeStringPool(const VOID **P, INT16 a2, INT16 a3, CHAR a4){
_QWORD *v4;
INT16 v7;
INT16 v8;
UINT64 v9;
UINT64 v10;
_QWORD *StringPool;
v4 = 0i64;
v7 = 4;
if( a2 >= 1 )
v7 = a2;
v8 = 40;
if( a3 >= 1 )
v8 = a3;
if( P )
{
if( v7 >= (int)*((unsigned __int16 *)P + 3) && v8 >= (int)*((unsigned __int16 *)P + 5) )
{
v9 = 2i64 * *((unsigned __int16 *)P + 2);
v10 = 2i64 * *((unsigned __int16 *)P + 4);
StringPool = RtlpMuiRegCreateStringPool(v7, v8);
v4 = StringPool;
if( StringPool )
{
memmove((UINT8 *)StringPool[2], (UINT8 *)P[2], v9);
memmove((UINT8 *)v4[3], (UINT8 *)P[3], v10);
*((_WORD *)v4 + 3) = *((_WORD *)P + 3);
*((_WORD *)v4 + 5) = *((_WORD *)P + 5);
if( !a4 )
ExFreePoolWithTag(P, 0);
}
}
}
return(CHAR *)v4;
}Referenced by:
RtlpMuiRegGrowStringPool