/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
undefined4 NEAP_BindAdapter(int *param_1,char *param_2)
{
FILE *__stream;
int iVar1;
int *piVar2;
char *pcVar3;
int iVar4;
undefined4 local_80;
sockaddr local_7c;
char acStack_6c [32];
char acStack_4c [16];
undefined4 local_3c;
undefined4 local_38;
if (param_1 != (int *)0x0) {
if (param_2 == (char *)0x0) {
return 0;
}
if (-1 < *param_1) {
*(undefined2 *)(param_1 + 1) = 0xfc00;
local_80 = 1;
local_7c.sa_data[6] = '\0';
local_7c.sa_data[7] = '\0';
local_7c.sa_data[8] = '\0';
local_7c.sa_data[9] = '\0';
local_7c.sa_data[10] = '\0';
local_7c.sa_data[0xb] = '\0';
local_7c.sa_data[0xc] = '\0';
local_7c.sa_data[0xd] = '\0';
local_7c.sa_data[0] = -4;
local_7c.sa_data[1] = '\0';
local_7c.sa_family = 2;
local_7c.sa_data[2] = '\0';
local_7c.sa_data[3] = '\0';
local_7c.sa_data[4] = '\0';
local_7c.sa_data[5] = '\0';
iVar1 = setsockopt(*param_1,0xffff,4,&local_80,4);
iVar4 = *param_1;
if (iVar1 == -1) {
iVar1 = -1;
}
else {
iVar1 = setsockopt(iVar4,0xffff,0x20,&local_80,4);
if (iVar1 != -1) {
strncpy(acStack_6c,param_2,0x10) //possible issue identified - semgrep
iVar1 = setsockopt(*param_1,0xffff,0x19,acStack_6c,0x20);
if (iVar1 < 0) {
close(*param_1);
*param_1 = -1;
return 0;
}
iVar1 = bind(*param_1,&local_7c,0x10);
if (iVar1 != -1) {
memset(acStack_4c,0,0x20) //possible issue identified - semgrep
iVar1 = socket(2,3,0xff);
__stream = _stderr;
if (iVar1 < 0) {
piVar2 = __errno_location();
pcVar3 = strerror(*piVar2);
fprintf(__stream,"socket failed!: %s",pcVar3);
return 0;
}
local_3c = CONCAT22(local_3c._2_2_,2);
strcpy(acStack_4c,param_2) //possible issue identified - semgrep
iVar4 = ioctl(iVar1,0x8915,acStack_4c);
if (iVar4 == 0) {
param_1[2] = local_38 << 0x18 | local_38 >> 0x18 | local_38 >> 8 & 0xff00 |
(local_38 & 0xff00) << 8;
iVar4 = ioctl(iVar1,0x891b,acStack_4c);
if (iVar4 == 0) {
param_1[2] = local_38 << 0x18 | local_38 >> 0x18 | local_38 >> 8 & 0xff00 |
(local_38 & 0xff00) << 8;
iVar4 = ioctl(iVar1,0x8933,acStack_4c);
if (iVar4 == 0) {
param_1[8] = local_3c;
iVar4 = ioctl(iVar1,0x8927,acStack_4c);
if (iVar4 == 0) {
*(undefined2 *)(param_1 + 4) = local_3c._2_2_;
*(undefined2 *)(param_1 + 5) = local_38._2_2_;
*(undefined2 *)((int)param_1 + 0x12) = (undefined2)local_38;
close(iVar1);
return 1;
}
}
}
}
close(iVar1);
return 0;
}
}
iVar4 = *param_1;
}
close(iVar4);
*param_1 = iVar1;
}
}
return 0;
}