/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
undefined4 iptc_delete_entry(undefined4 param_1,void *param_2,int param_3,int param_4)
{
byte bVar1;
ushort uVar2;
int iVar3;
int iVar4;
void *__ptr;
int *piVar5;
void *__dest;
int iVar6;
int iVar7;
undefined4 *puVar8;
uint uVar9;
void *pvVar10;
int iVar11;
undefined4 *puVar12;
ushort *puVar13;
ushort *puVar14;
uint uVar15;
uint uVar16;
iptc_fn = iptc_delete_entry;
iVar4 = (*(code *)0x1f1c)(param_1,param_4);
if (iVar4 != 0) {
__ptr = (void *)(*(code *)0x1204)(iVar4,*(undefined2 *)((int)param_2 + 0x5a));
if (__ptr == (void *)0x0) {
piVar5 = __errno_location();
iVar4 = 0xc;
goto LAB_00013780;
}
__dest = (void *)((int)__ptr + 0x28);
memcpy(__dest,param_2,(uint)*(ushort *)((int)param_2 + 0x5a)) //possible issue identified - semgrep
*(undefined4 *)((int)__ptr + 0xc) = 0;
iVar6 = (*(code *)0x30c4)(param_4,__ptr);
if (iVar6 == 0) {
free(__ptr);
return 0;
}
if ((*(int *)((int)__ptr + 0x1c) == 3) && (iVar6 = *(int *)((int)__ptr + 0x20), iVar6 != 0)) {
*(int *)(iVar6 + 0x2c) = *(int *)(iVar6 + 0x2c) + -1;
}
for (puVar12 = *(undefined4 **)(iVar4 + 0x54); puVar12 != (undefined4 *)(iVar4 + 0x54);
puVar12 = (undefined4 *)*puVar12) {
if ((((*(int *)((int)__ptr + 0x28) == puVar12[10]) &&
(*(int *)((int)__ptr + 0x2c) == puVar12[0xb])) &&
(*(int *)((int)__ptr + 0x30) == puVar12[0xc])) &&
((*(int *)((int)__ptr + 0x34) == puVar12[0xd] &&
(*(int *)((int)__ptr + 0x78) == puVar12[0x1e])))) {
iVar6 = 0;
puVar8 = puVar12;
pvVar10 = __ptr;
do {
bVar1 = *(byte *)(puVar8 + 0x16);
if (((bVar1 != *(byte *)((int)pvVar10 + 0x58)) ||
((bVar1 & *(byte *)((int)pvVar10 + 0x38)) != (*(byte *)(puVar8 + 0xe) & bVar1))) ||
((bVar1 = *(byte *)(puVar8 + 0x1a), bVar1 != *(byte *)((int)pvVar10 + 0x68) ||
(iVar6 = iVar6 + 1,
(bVar1 & *(byte *)((int)pvVar10 + 0x48)) != (*(byte *)(puVar8 + 0x12) & bVar1)))))
goto LAB_0001373c;
pvVar10 = (void *)((int)pvVar10 + 1);
puVar8 = (undefined4 *)((int)puVar8 + 1);
} while (iVar6 != 0x10);
if (*(int *)((int)__ptr + 0x80) == puVar12[0x20]) {
uVar2 = *(ushort *)((int)__ptr + 0x80);
iVar6 = param_3 + 0x70;
for (uVar16 = 0x70; uVar16 < uVar2; uVar16 = uVar16 + uVar15) {
puVar13 = (ushort *)((int)__dest + uVar16);
uVar15 = (uint)*puVar13;
puVar14 = (ushort *)((int)puVar12 + (int)puVar13 + (0x98 - ((int)__ptr + 0x98)));
if (*puVar14 != uVar15) goto LAB_0001373c;
iVar11 = strcmp((char *)(puVar13 + 1),(char *)(puVar14 + 1));
if (iVar11 != 0) goto LAB_0001373c;
uVar9 = 0;
while (uVar9 < uVar15 - 0x20) {
iVar3 = uVar9 + 0x20;
iVar11 = uVar9 + 0x20;
iVar7 = iVar6 + uVar9;
uVar9 = uVar9 + 1;
if (((*(byte *)((int)puVar14 + iVar11) ^ *(byte *)((int)puVar13 + iVar3)) &
*(byte *)(iVar7 + 0x20)) != 0) goto LAB_0001373c;
}
iVar6 = iVar6 + 0x20 + uVar9;
}
if ((iVar6 != -0x20) && (iVar11 = *(int *)((int)__ptr + 0x1c), iVar11 == puVar12[7])) {
puVar14 = (ushort *)((int)puVar12 + *(ushort *)(puVar12 + 0x20) + 0x28);
puVar13 = (ushort *)((int)__dest + (uint)uVar2);
if (iVar11 == 1) {
uVar2 = *puVar14;
if ((uint)uVar2 == (uint)*puVar13) {
iVar11 = strcmp((char *)(puVar13 + 1),(char *)(puVar14 + 1));
if (iVar11 == 0) {
uVar16 = 0;
do {
if (uVar2 - 0x20 <= uVar16) goto LAB_000136d4;
iVar3 = uVar16 + 0x20;
iVar11 = uVar16 + 0x20;
iVar7 = iVar6 + uVar16;
uVar16 = uVar16 + 1;
} while (((*(byte *)((int)puVar14 + iVar11) ^ *(byte *)((int)puVar13 + iVar3)) &
*(byte *)(iVar7 + 0x20)) == 0);
}
}
}
else {
if (iVar11 == 0) {
uVar16 = *(uint *)(puVar13 + 0x10) ^ *(uint *)(puVar14 + 0x10);
}
else {
if (iVar11 == 2) goto LAB_000136d4;
if (iVar11 != 3) {
fprintf(_stderr,(char *)0x51c4) //possible issue identified - semgrep
/* WARNING: Subroutine does not return */
abort();
}
uVar16 = *(uint *)((int)__ptr + 0x20) ^ puVar12[8];
}
if (uVar16 == 0) {
LAB_000136d4:
if (puVar12 == *(undefined4 **)(param_4 + 0x14)) {
*(undefined4 *)(param_4 + 0x14) = puVar12[1];
}
*(int *)(iVar4 + 0x50) = *(int *)(iVar4 + 0x50) + -1;
(*(code *)0x13d8)(puVar12);
*(undefined4 *)(param_4 + 4) = 1;
free(__ptr);
return 1;
}
}
}
}
}
LAB_0001373c:
}
free(__ptr);
}
piVar5 = __errno_location();
iVar4 = 2;
LAB_00013780:
*piVar5 = iVar4;
return 0;
}