undefined4 * FUN_0040522c(char *param_1,char *param_2)

{
  undefined4 *__ptr;
  char *pcVar1;
  
  __ptr = (undefined4 *)malloc(0x18)   //possible issue identified - semgrep
  if (__ptr != (undefined4 *)0x0) {
    *__ptr = 0;
    __ptr[1] = 0;
    __ptr[2] = 0;
    __ptr[3] = 0;
    __ptr[4] = 0;
    __ptr[5] = 0;
    pcVar1 = strdup(param_1);
    __ptr[3] = pcVar1;
    pcVar1 = strdup(param_2);
    __ptr[4] = pcVar1;
    if ((void *)__ptr[3] != (void *)0x0) {
      if (pcVar1 != (char *)0x0) {
        return __ptr;
      }
      free((void *)__ptr[3]);
    }
    if ((void *)__ptr[4] != (void *)0x0) {
      free((void *)__ptr[4]);
    }
    free(__ptr);
    __ptr = (undefined4 *)0x0;
  }
  return __ptr;
}