undefined4 iptc_set_policy(undefined4 param_1,char *param_2,void *param_3,int param_4)

{
  int iVar1;
  int *piVar2;
  int iVar3;
  undefined4 uVar4;
  
  iptc_fn = iptc_set_policy;
  iVar1 = (*(code *)0x1f1c)(param_1,param_4);
  if ((iVar1 == 0) || (*(int *)(iVar1 + 0x28) == 0)) {
    piVar2 = __errno_location();
    iVar1 = 2;
LAB_0001215c:
    *piVar2 = iVar1;
    uVar4 = 0;
  }
  else {
    iVar3 = strcmp(param_2,(char *)0x5184);
    uVar4 = 0xfffffffe;
    if (iVar3 != 0) {
      iVar3 = strcmp(param_2,(char *)0x518c);
      if (iVar3 != 0) {
        piVar2 = __errno_location();
        iVar1 = 0x16;
        goto LAB_0001215c;
      }
      uVar4 = 0xffffffff;
    }
    *(undefined4 *)(iVar1 + 0x30) = uVar4;
    if (param_3 == (void *)0x0) {
      *(undefined4 *)(iVar1 + 0x48) = 0;
    }
    else {
      memcpy((void *)(iVar1 + 0x38),param_3,0x10)   //possible issue identified - semgrep
      *(undefined4 *)(iVar1 + 0x48) = 3;
    }
    uVar4 = 1;
    *(undefined4 *)(param_4 + 4) = 1;
  }
  return uVar4;
}