RtlpMuiRegGrowStringPool

_MUISTRINGPOOL *__stdcall RtlpMuiRegGrowStringPool(_MUISTRINGPOOL *OldPool, INT64 NumPoolCharsNeeded, UINT8 ForceCopy){
  UINT8 v3; 
  UINT8 v4; 
  _MUISTRINGPOOL *v5; 
  int v6; 
  unsigned int v7; 
  unsigned int v8; 
  int v9; 
  unsigned int v10; 
  int v11; 
  int v12; 

  v4 = v3;
  v5 = OldPool;
  if( OldPool )
  {
    v6 = 16;
    v7 = *((unsigned __int16 *)OldPool + 3) + 1;
    if( (int)ForceCopy >= 0 )
      v6 = ForceCopy;
    v8 = *((unsigned __int16 *)OldPool + 2);
    v9 = *((unsigned __int16 *)OldPool + 5) + v6;
    v10 = v8;
    if( v7 >= v8 )
      v10 = v7;
    v11 = *((unsigned __int16 *)v5 + 4);
    v12 = v11;
    if( v9 >= v11 )
      v12 = v9;
    if( v4 || v10 != v8 || v12 != v11 )
      return RtlpMuiRegResizeStringPool(v5, v10, v12, v4);
  }
  return v5;
}

Referenced by:

RtlpMuiRegGetOrAddString