/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
void xtables_register_match(undefined4 *param_1)
{
ushort uVar1;
int iVar2;
size_t sVar3;
int iVar4;
int *piVar5;
char *__format;
undefined4 uVar6;
char *__s;
char *pcVar7;
pcVar7 = (char *)*param_1;
if (pcVar7 == (char *)0x0) {
uVar6 = *(undefined4 *)(xt_params + 4);
pcVar7 = (char *)(uint)*(byte *)(param_1 + 3);
__s = (char *)param_1[2];
__format = (char *)0x59c4;
}
else {
iVar2 = strcmp(pcVar7,(char *)0x59ec);
__s = (char *)param_1[2];
if (iVar2 == 0) {
sVar3 = strlen(__s);
if (sVar3 < 0x1d) {
uVar1 = *(ushort *)((int)param_1 + 0xe);
if (uVar1 < 0xff) {
if ((*(byte *)(afinfo + 8) != uVar1) && (uVar1 != 0)) {
return;
}
iVar2 = xtables_find_match(__s,1,0);
if (iVar2 != 0) {
if ((*(uint *)(iVar2 + 0xc) & 0xffff00ff) == (param_1[3] & 0xffff00ff)) {
uVar6 = *(undefined4 *)(xt_params + 4);
__s = (char *)param_1[2];
pcVar7 = (char *)0x5a88;
goto LAB_00013ca4;
}
iVar4 = (*(code *)0x2ce8)(*(undefined4 *)(iVar2 + 8),*(undefined1 *)(iVar2 + 0xc),
*(undefined4 *)(afinfo + 0xc));
if ((iVar4 != 0) && (*(byte *)(param_1 + 3) < *(byte *)(iVar2 + 0xc))) {
return;
}
iVar4 = (*(code *)0x2ce8)(param_1[2],*(undefined1 *)(param_1 + 3),
*(undefined4 *)(afinfo + 0xc));
if (iVar4 == 0) {
return;
}
if ((*(char *)(iVar2 + 0xc) == *(char *)(param_1 + 3)) &&
(*(short *)((int)param_1 + 0xe) == 0)) {
return;
}
piVar5 = &xtables_matches;
iVar4 = xtables_matches;
while (iVar4 != iVar2) {
piVar5 = (int *)(iVar4 + 4);
iVar4 = *(int *)(iVar4 + 4);
}
*piVar5 = *(int *)(iVar4 + 4);
}
pcVar7 = (char *)param_1[4];
if (pcVar7 == (char *)((uint)(pcVar7 + 7) & 0xfffffff8)) {
piVar5 = &xtables_matches;
for (iVar2 = xtables_matches; iVar2 != 0; iVar2 = *(int *)(iVar2 + 4)) {
piVar5 = (int *)(iVar2 + 4);
}
param_1[1] = 0;
param_1[0xf] = 0;
*piVar5 = (int)param_1;
param_1[0xe] = 0;
return;
}
__s = (char *)param_1[2];
uVar6 = *(undefined4 *)(xt_params + 4);
__format = (char *)0x5aac;
goto LAB_00013b78;
}
uVar6 = *(undefined4 *)(xt_params + 4);
pcVar7 = (char *)0x5a58;
}
else {
uVar6 = *(undefined4 *)(xt_params + 4);
pcVar7 = (char *)0x5a34;
}
LAB_00013ca4:
fprintf(_stderr,pcVar7,uVar6,__s) //possible issue identified - semgrep
goto LAB_00013b80;
}
uVar6 = *(undefined4 *)(xt_params + 4);
__format = (char *)0x59fc;
}
LAB_00013b78:
fprintf(_stderr,__format,uVar6,__s,pcVar7) //possible issue identified - semgrep
LAB_00013b80:
/* WARNING: Subroutine does not return */
exit(1);
}