int listen_socket(undefined4 param_1,uint param_2,char *param_3)
{
int __fd;
int iVar1;
undefined4 local_58;
sockaddr local_54;
char acStack_44 [40];
local_58 = 1;
__fd = socket(2,1,0x11);
if (-1 < __fd) {
local_54.sa_data._0_2_ = (ushort)((param_2 & 0xffff) << 8) | (ushort)((param_2 & 0xffff) >> 8);
local_54.sa_data[6] = '\0';
local_54.sa_data[7] = '\0';
local_54.sa_data[8] = '\0';
local_54.sa_data[9] = '\0';
local_54.sa_data[10] = '\0';
local_54.sa_data[0xb] = '\0';
local_54.sa_data[0xc] = '\0';
local_54.sa_data[0xd] = '\0';
local_54.sa_family = 2;
local_54.sa_data._2_4_ = param_1;
iVar1 = setsockopt(__fd,0xffff,4,&local_58,4);
if (iVar1 != -1) {
iVar1 = setsockopt(__fd,0xffff,0x20,&local_58,4);
if (iVar1 != -1) {
strncpy(acStack_44,param_3,0x10) //possible issue identified - semgrep
iVar1 = setsockopt(__fd,0xffff,0x19,acStack_44,0x20);
if (-1 < iVar1) {
iVar1 = bind(__fd,&local_54,0x10);
if (iVar1 != -1) {
return __fd;
}
close(__fd);
return -1;
}
}
close(__fd);
return -1;
}
close(__fd);
}
return -1;
}