void FUN_0040d354(undefined4 param_1,char *param_2,char *param_3)
{
bool bVar1;
int iVar2;
size_t sVar3;
char *__s;
char *pcVar4;
uint uVar5;
hostent *phVar6;
int *piVar7;
__fd_mask *p_Var8;
uint uVar9;
ssize_t sVar10;
uint __fd;
socklen_t local_680;
int local_67c;
timeval local_678;
sockaddr local_670;
undefined1 auStack_660 [64];
char acStack_620 [128];
undefined1 auStack_5a0 [128];
char acStack_520 [128];
uint local_4a0 [32];
undefined4 auStack_420 [128];
char acStack_220 [512];
snprintf(acStack_620,0x80,"%s/uuid",param_1) //possible issue identified - semgrep
xmldbc_get_wb(0,0,acStack_620,auStack_660,0x40);
snprintf(acStack_620,0x80,"%s/uri",param_1) //possible issue identified - semgrep
xmldbc_get_wb(0,0,acStack_620,auStack_5a0,0x80);
snprintf(acStack_620,0x80,"%s/seq",param_1) //possible issue identified - semgrep
xmldbc_get_wb(0,0,acStack_620,acStack_520,0x80);
iVar2 = atoi(acStack_520);
sprintf(acStack_520,"%d",iVar2 + 1) //possible issue identified - semgrep
xmldbc_set(0,0,acStack_620,acStack_520);
__fd = 0xffffffff;
sVar3 = strlen(param_3);
snprintf(acStack_220,0x200,
"NOTIFY %s HTTP/1.1\r\nHOST: %s\r\nCONTENT-TYPE: text/xml\r\nCONTENT-LENGTH: %d\r\nNT: upnp:event\r\nNTS: upnp:propchange\r\nSID: %s\r\nSEQ: %d\r\n\r\n"
,auStack_5a0,param_2,sVar3,auStack_660,iVar2) //possible issue identified - semgrep
__s = strdup(param_2);
local_680 = 4;
pcVar4 = strchr(__s,0x3a);
if (pcVar4 != (char *)0x0) {
*pcVar4 = '\0';
uVar5 = atoi(pcVar4 + 1);
__fd = socket(2,2,6);
if (0 < (int)__fd) {
phVar6 = gethostbyname(__s);
if (phVar6 != (hostent *)0x0) {
local_670.sa_data[6] = '\0';
local_670.sa_data[7] = '\0';
local_670.sa_data[8] = '\0';
local_670.sa_data[9] = '\0';
local_670.sa_data[10] = '\0';
local_670.sa_data[0xb] = '\0';
local_670.sa_data[0xc] = '\0';
local_670.sa_data[0xd] = '\0';
local_670.sa_data._2_4_ = *(undefined4 *)*phVar6->h_addr_list;
local_670.sa_data._0_2_ = (ushort)((uVar5 & 0xffff) << 8) | (ushort)((uVar5 & 0xffff) >> 8);
local_670.sa_family = 2;
uVar5 = fcntl(__fd,3);
fcntl(__fd,4,uVar5 | 0x80);
iVar2 = connect(__fd,&local_670,0x10);
if (iVar2 != 0) {
piVar7 = __errno_location();
bVar1 = false;
if (*piVar7 != 0x96) goto LAB_0040d728;
p_Var8 = (__fd_mask *)local_4a0;
do {
*p_Var8 = 0;
p_Var8 = p_Var8 + 1;
} while (p_Var8 != auStack_420);
uVar9 = __fd >> 5;
local_678.tv_sec = 3;
local_4a0[uVar9] = local_4a0[uVar9] | 1 << (__fd & 0x1f);
local_678.tv_usec = 0;
iVar2 = select(__fd + 1,(fd_set *)0x0,(fd_set *)local_4a0,(fd_set *)0x0,&local_678);
if ((iVar2 < 1) || (((int)local_4a0[uVar9] >> (__fd & 0x1f) & 1U) == 0))
goto LAB_0040d724;
iVar2 = getsockopt(__fd,0xffff,0x1007,&local_67c,&local_680);
bVar1 = false;
if ((iVar2 < 0) || (local_67c != 0)) goto LAB_0040d728;
}
fcntl(__fd,4,uVar5);
bVar1 = true;
goto LAB_0040d728;
}
}
}
LAB_0040d724:
bVar1 = false;
LAB_0040d728:
if (__s != (char *)0x0) {
free(__s);
}
if (bVar1) {
if ((int)__fd < 1) {
return;
}
sVar3 = strlen(acStack_220);
sVar10 = send(__fd,acStack_220,sVar3,0);
if (sVar10 != 0) {
sVar3 = strlen(param_3);
send(__fd,param_3,sVar3,0);
p_Var8 = (__fd_mask *)local_4a0;
do {
*p_Var8 = 0;
p_Var8 = p_Var8 + 1;
} while (p_Var8 != auStack_420);
local_678.tv_sec = 3;
local_4a0[__fd >> 5] = local_4a0[__fd >> 5] | 1 << (__fd & 0x1f);
local_678.tv_usec = 0;
iVar2 = select(__fd + 1,(fd_set *)local_4a0,(fd_set *)0x0,(fd_set *)0x0,&local_678);
if (0 < iVar2) {
memset(p_Var8,0,0x200) //possible issue identified - semgrep
recv(__fd,p_Var8,0x200,0) //possible issue identified - semgrep
}
}
}
close(__fd);
return;
}