uint arpping(int param_1,int param_2,uint *param_3,char *param_4)
{
undefined1 *puVar1;
undefined1 uVar2;
uint *puVar3;
timeval *__timeout;
uint __fd;
int iVar4;
uint uVar5;
uint uVar6;
__fd_mask *p_Var7;
int iVar8;
ssize_t sVar9;
int *piVar10;
undefined4 *__optval;
uint uVar11;
long lVar12;
uint uVar13;
undefined4 local_158;
timeval local_154;
sockaddr local_14c;
undefined4 local_13c;
undefined1 auStack_136 [4];
undefined1 local_132;
undefined1 local_131;
undefined2 local_130;
undefined2 local_12e;
undefined2 local_12c;
undefined1 local_12a;
undefined1 local_129;
short local_128;
undefined1 auStack_126 [4];
undefined1 local_122;
undefined1 local_121;
int local_120;
undefined1 auStack_11c [6];
int local_116;
sysinfo local_100;
uint local_c0 [32];
int local_40;
uint local_3c;
timeval *local_38;
undefined4 *local_34;
undefined1 *local_30;
local_158 = 1;
__fd = socket(0x11,10,0x608);
if (__fd == 0xffffffff) {
local_3c = 0xffffffff;
}
else {
__optval = &local_158;
iVar4 = setsockopt(__fd,0xffff,0x20,__optval,4);
local_34 = &local_13c;
if (iVar4 == -1) {
close(__fd);
local_3c = 0xffffffff;
}
else {
memset(local_34,0,0x3c) //possible issue identified - semgrep
uVar6 = (int)param_3 + 3U & 3;
uVar5 = *param_3;
uVar13 = (uint)param_3 & 3;
uVar11 = (*(int *)(((int)param_3 + 3U) - uVar6) << (3 - uVar6) * 8 |
(uint)__optval & 0xffffffffU >> (uVar6 + 1) * 8) & -1 << (4 - uVar13) * 8 |
*(uint *)((int)param_3 - uVar13) >> uVar13 * 8;
puVar1 = auStack_136 + 3;
uVar6 = (uint)puVar1 & 3;
*(uint *)(puVar1 + -uVar6) =
*(uint *)(puVar1 + -uVar6) & -1 << (uVar6 + 1) * 8 | uVar5 >> (3 - uVar6) * 8;
uVar13 = param_3[1];
uVar2 = *(undefined1 *)((int)param_3 + 5);
uVar6 = (uint)auStack_136 & 3;
puVar3 = (uint *)(auStack_136 + -uVar6);
*puVar3 = *puVar3 & 0xffffffffU >> (4 - uVar6) * 8 | uVar5 << uVar6 * 8;
local_40 = param_2;
puVar1 = auStack_126 + 3;
uVar6 = (uint)puVar1 & 3;
*(uint *)(puVar1 + -uVar6) =
*(uint *)(puVar1 + -uVar6) & -1 << (uVar6 + 1) * 8 | uVar11 >> (3 - uVar6) * 8;
*(undefined2 *)(local_34 + 1) = 0xffff;
local_13c = 0xffffffff;
local_130 = 0x608;
local_131 = uVar2;
uVar6 = (uint)auStack_126 & 3;
puVar3 = (uint *)(auStack_126 + -uVar6);
*puVar3 = *puVar3 & 0xffffffffU >> (4 - uVar6) * 8 | uVar11 << uVar6 * 8;
local_12c = 8;
local_12a = 6;
local_128 = 0x100 //possible issue identified - semgrep
local_129 = 4;
local_12e = 0x100;
local_14c.sa_data[2] = '\0';
local_14c.sa_data[3] = '\0';
local_14c.sa_data[4] = '\0';
local_14c.sa_data[5] = '\0';
local_14c.sa_data[6] = '\0';
local_14c.sa_data[7] = '\0';
local_14c.sa_data[8] = '\0';
local_14c.sa_data[9] = '\0';
local_14c.sa_data[10] = '\0';
local_14c.sa_data[0xb] = '\0';
local_14c.sa_data[0xc] = '\0';
local_14c.sa_data[0xd] = '\0';
local_14c.sa_family = 0;
local_14c.sa_data[0] = '\0';
local_14c.sa_data[1] = '\0';
local_132 = (char)uVar13;
local_122 = (char)uVar13;
local_121 = uVar2;
local_120 = param_2;
local_116 = param_1;
local_40 = param_1;
strcpy(local_14c.sa_data,param_4) //possible issue identified - semgrep
uVar6 = sendto(__fd,local_34,0x3c,0,&local_14c,0x10);
local_3c = ~uVar6 >> 0x1f;
local_154.tv_usec = 0;
sysinfo(&local_100);
uVar6 = __fd >> 5;
uVar13 = 1 << (__fd & 0x1f);
iVar4 = 2;
local_38 = &local_154;
local_30 = auStack_11c;
p_Var7 = (__fd_mask *)local_c0;
lVar12 = local_100.uptime;
do {
do {
__timeout = local_38;
*p_Var7 = 0;
p_Var7 = p_Var7 + 1;
} while (&local_40 != p_Var7);
local_c0[uVar6] = local_c0[uVar6] | uVar13;
local_154.tv_sec = iVar4;
iVar8 = select(__fd + 1,(fd_set *)local_c0,(fd_set *)0x0,(fd_set *)0x0,__timeout);
if (iVar8 < 0) {
piVar10 = __errno_location();
if (*piVar10 != 4) {
local_3c = 0;
}
}
else if ((uVar13 & local_c0[uVar6]) != 0) {
sVar9 = recv(__fd,local_34,0x3c,0) //possible issue identified - semgrep
if (sVar9 < 0) {
local_3c = 0;
}
if (local_128 == 0x200) {
iVar8 = memcmp(local_30,param_3,6);
if ((iVar8 == 0) && (param_1 == local_34[7])) {
local_3c = 0;
break;
}
}
}
sysinfo(&local_100);
iVar4 = (iVar4 + lVar12) - local_100.uptime //possible issue identified - semgrep
sysinfo(&local_100);
p_Var7 = (__fd_mask *)local_c0;
lVar12 = local_100.uptime;
} while (0 < iVar4);
close(__fd);
}
}
return local_3c;
}