undefined4 FUN_00400a28(undefined4 *param_1,char *param_2)

{
  undefined4 *puVar1;
  undefined4 uVar2;
  undefined4 *puVar3;
  char *pcVar5;
  undefined4 *puVar4;
  
  puVar1 = (undefined4 *)malloc(8)   //possible issue identified - semgrep
  uVar2 = 0xffffffff;
  if (puVar1 != (undefined4 *)0x0) {
    puVar3 = (undefined4 *)*param_1;
    if ((undefined4 *)*param_1 == (undefined4 *)0x0) {
      *param_1 = puVar1;
      *puVar1 = 0;
      puVar3 = (undefined4 *)*param_1;
    }
    do {
      puVar4 = puVar3;
      puVar3 = (undefined4 *)*puVar4;
    } while (puVar3 != (undefined4 *)0x0);
    *puVar4 = puVar1;
    *puVar1 = 0;
    pcVar5 = strdup(param_2)   //possible issue identified - semgrep
    puVar1[1] = pcVar5;
    uVar2 = 0;
  }
  return uVar2;
}