undefined4 iptc_append_entry(undefined4 param_1,void *param_2,int param_3)

{
  int iVar1;
  int *piVar2;
  int iVar3;
  undefined4 *puVar4;
  
  iptc_fn = iptc_append_entry;
  iVar1 = (*(code *)0x1f1c)(param_1,param_3);
  if (iVar1 == 0) {
    piVar2 = __errno_location();
    iVar1 = 2;
  }
  else {
    piVar2 = (int *)(*(code *)0x1204)(iVar1,*(undefined2 *)((int)param_2 + 0x5a));
    if (piVar2 != (int *)0x0) {
      memcpy(piVar2 + 10,param_2,(size_t)*(undefined2 *)((int)param_2 + 0x5a))   //possible issue identified - semgrep
      piVar2[3] = 3;
      iVar3 = (*(code *)0x30c4)(param_3,piVar2);
      if (iVar3 == 0) {
        free(piVar2);
        return 0;
      }
      puVar4 = *(undefined4 **)(iVar1 + 0x58);
      *(int *)(iVar1 + 0x50) = *(int *)(iVar1 + 0x50) + 1;
      *piVar2 = iVar1 + 0x54;
      *(int **)(iVar1 + 0x58) = piVar2;
      *(undefined4 *)(param_3 + 4) = 1;
      *puVar4 = piVar2;
      piVar2[1] = (int)puVar4;
      return 1;
    }
    piVar2 = __errno_location();
    iVar1 = 0xc;
  }
  *piVar2 = iVar1;
  return 0;
}