undefined4 ip6tc_insert_entry(undefined4 param_1,void *param_2,uint param_3,int param_4)
{
int iVar1;
int *piVar2;
undefined4 *__ptr;
int iVar3;
undefined4 *puVar4;
uint uVar5;
undefined4 *puVar6;
iptc_fn = ip6tc_insert_entry;
iVar1 = (*(code *)0x2144)(param_1,param_4);
if (iVar1 == 0) {
piVar2 = __errno_location();
iVar1 = 2;
}
else {
uVar5 = *(uint *)(iVar1 + 0x50);
if (uVar5 < param_3) {
piVar2 = __errno_location();
iVar1 = 7;
}
else {
puVar6 = (undefined4 *)(iVar1 + 0x54);
if (param_3 != uVar5) {
if (uVar5 >> 1 < param_3 + 1) {
iVar3 = 0;
for (puVar6 = *(undefined4 **)(iVar1 + 0x58); iVar3 = iVar3 + 1,
puVar6 != (undefined4 *)(iVar1 + 0x54); puVar6 = (undefined4 *)puVar6[1]) {
if (iVar3 == uVar5 - param_3) goto LAB_00013960;
}
puVar6 = (undefined4 *)0x0;
}
else {
uVar5 = 0;
for (puVar6 = *(undefined4 **)(iVar1 + 0x54); uVar5 = uVar5 + 1,
puVar6 != (undefined4 *)(iVar1 + 0x54); puVar6 = (undefined4 *)*puVar6) {
if (uVar5 == param_3 + 1) goto LAB_00013960;
}
puVar6 = (undefined4 *)0x0;
}
}
LAB_00013960:
__ptr = (undefined4 *)(*(code *)0x142c)(iVar1,*(undefined2 *)((int)param_2 + 0x8e));
if (__ptr != (undefined4 *)0x0) {
memcpy(__ptr + 10,param_2,(size_t)*(undefined2 *)((int)param_2 + 0x8e)) //possible issue identified - semgrep
__ptr[3] = 3;
iVar3 = (*(code *)0x32ec)(param_4,__ptr);
if (iVar3 == 0) {
free(__ptr);
return 0;
}
puVar4 = (undefined4 *)puVar6[1];
*(int *)(iVar1 + 0x50) = *(int *)(iVar1 + 0x50) + 1;
*__ptr = puVar6;
puVar6[1] = __ptr;
*(undefined4 *)(param_4 + 4) = 1;
*puVar4 = __ptr;
__ptr[1] = puVar4;
return 1;
}
piVar2 = __errno_location();
iVar1 = 0xc;
}
}
*piVar2 = iVar1;
return 0;
}