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;
}