SafeReallocBlob

UINT8 *__fastcall SafeReallocBlob(
        ULONG_PTR BugCheckParameter2,
        unsigned int a2,
        unsigned int a3,
        unsigned int a4,
        int a5,
        int a6,
        __int64 a7){
  unsigned __int64 v8; 
  unsigned int v9; 
  UINT8 *PoolWithTag; 
  UINT8 *v11; 
  if( !BugCheckParameter2 )
    return 0i64;
  v8 = a4 * (unsigned __int64)a3;
  if( v8 > 0xFFFFFFFF )
    return 0i64;
  v9 = v8 + a2;
  if( (unsigned int)v8 + a2 < a2 )
    return 0i64;
  if( a7 )
    *(_DWORD *)a7 = v9;
  if( v9 )
  {
    PoolWithTag = (UINT8 *)ExAllocatePoolWithTag(PagedPool, v9, 0x72746C6Dui64);
    v11 = PoolWithTag;
    if( PoolWithTag )
      memset((INT64)PoolWithTag, 0i64);
  }
  else
  {
    v11 = 0i64;
  }
  if( !v11 )
    return 0i64;
  memmove(v11, (UINT8 *)BugCheckParameter2, *(unsigned int *)BugCheckParameter2);
  ExFreeHeapPool((PVOID)BugCheckParameter2);
  return v11;
}

Referenced by:

RtlpMuiRegResizeLanguageConfigList
RtlpMuiRegResizeLanguages