/* WARNING: Type propagation algorithm not settling */

void FUN_0040793c(void)

{
  byte bVar1;
  bool bVar2;
  int *******pppppppiVar3;
  uint uVar4;
  cmsghdr *__cmsg;
  undefined4 uVar5;
  undefined4 uVar6;
  int iVar7;
  int *piVar8;
  int *******__s;
  int iVar9;
  int *piVar10;
  int ******ppppppiVar11;
  int ******ppppppiVar12;
  int ******ppppppiVar13;
  int *piVar14;
  undefined1 *puVar15;
  char *pcVar16;
  char *pcVar17;
  cmsghdr *pcVar18;
  undefined2 local_16e0 [2];
  iovec local_16dc;
  int *******local_16d4;
  int *******local_16d0;
  undefined4 local_16cc;
  undefined4 *local_16c8;
  int local_16c4;
  int *local_16c0;
  int local_16bc;
  undefined1 *local_16b8;
  msghdr local_16b4;
  undefined1 auStack_1698 [128];
  int local_1618 [2];
  int local_1610 [2];
  int local_1608;
  int *local_15f0;
  int *local_15e8;
  undefined1 auStack_15e0 [192];
  int aiStack_1520 [46];
  uint local_1468;
  int local_1464;
  undefined1 auStack_1460 [4];
  int local_145c;
  undefined1 auStack_1428 [8];
  undefined1 auStack_1420 [8];
  undefined4 local_1418;
  int local_1414;
  undefined1 auStack_1400 [8];
  undefined1 auStack_13f8 [16];
  undefined1 auStack_13e8 [184];
  undefined1 auStack_1330 [8];
  undefined1 auStack_1328 [32];
  undefined1 auStack_1308 [8];
  undefined1 auStack_1300 [16];
  undefined1 auStack_12f0 [184];
  undefined1 auStack_1238 [8];
  undefined1 auStack_1230 [32];
  undefined1 auStack_1210 [8];
  undefined1 auStack_1208 [16];
  undefined1 auStack_11f8 [184];
  undefined1 auStack_1140 [8];
  undefined1 auStack_1138 [32];
  int local_1118 [2];
  int local_1110 [50];
  cmsghdr local_1048 [341];
  int ******local_48;
  int local_44;
  socklen_t local_40;
  int *******local_3c;
  undefined1 *local_38;
  undefined1 *local_34;
  uint *local_30;
  undefined1 *local_2c;
  
  local_16b4.msg_iov = &local_16dc;
  local_16d0 = (int *******)&local_16d4;
  local_16b4.msg_control = local_1048;
  local_16b4.msg_namelen = 0x80;
  pcVar17 = &DAT_0043962c;
  local_16b4.msg_controllen = 0x1000;
  local_16dc.iov_len = 0x1000;
  local_16b4.msg_iovlen = 1;
  local_16d4 = (int *******)0x0;
  local_16b4.msg_flags = 0;
  local_16dc.iov_base = &DAT_0043962c;
  local_16b4.msg_name = auStack_1698;
  local_3c = local_16d0;
  uVar4 = recvmsg(insock,&local_16b4,0);
  if ((int)uVar4 < 0) {
    piVar8 = __errno_location();
    pcVar17 = strerror(*piVar8);
    dprintf(3,"server6_recv","recvmsg: %s",pcVar17);
    return;
  }
  local_40 = local_16b4.msg_namelen;
  if ((local_16b4.msg_controllen < 0xc) ||
     (pcVar18 = (cmsghdr *)0x0, __cmsg = (cmsghdr *)local_16b4.msg_control,
     (cmsghdr *)local_16b4.msg_control == (cmsghdr *)0x0)) {
LAB_00407aec:
    dprintf(5,"server6_recv","failed to get packet info");
    return;
  }
  do {
    while ((__cmsg->cmsg_level != 0x29 ||
           ((__cmsg->cmsg_type != 0x32 || (__cmsg->cmsg_len != 0x20))))) {
      __cmsg = __cmsg_nxthdr(&local_16b4,__cmsg);
      if (__cmsg == (cmsghdr *)0x0) goto LAB_00407a9c;
    }
    pcVar18 = __cmsg + 1;
    __cmsg = __cmsg_nxthdr(&local_16b4,__cmsg);
  } while (__cmsg != (cmsghdr *)0x0);
LAB_00407a9c:
  if (pcVar18 == (cmsghdr *)0x0) goto LAB_00407aec;
  if (pcVar18[1].cmsg_level != ifidx) {
    return;
  }
  local_44 = find_ifconfbyid();
  if (local_44 == 0) {
    dprintf(6,"server6_recv","unexpected interface (%d)",pcVar18[1].cmsg_level);
    return;
  }
  if (uVar4 < 4) {
    dprintf(6,"server6_recv","short packet (%d bytes)",uVar4);
    return;
  }
  uVar5 = dhcp6msgstr(DAT_0043962c);
  uVar6 = addr2str(auStack_1698);
  dprintf(7,"server6_recv","received %s from %s",uVar5,uVar6);
  local_48 = (int ******)&DAT_0043962c;
  if (((char)pcVar18->cmsg_len != -1) &&
     ((((DAT_0043962c == '\x01' || (DAT_0043962c == '\x04')) || (DAT_0043962c == '\x06')) ||
      (DAT_0043962c == '\v')))) {
    dprintf(6,"server6_recv","invalid unicast message");
    return;
  }
  if (DAT_0043962c == '\r') {
    uVar5 = addr2str(auStack_1698);
    dprintf(6,"server6_recv","relay reply message from %s",uVar5,uVar6);
    return;
  }
  pcVar16 = &DAT_0043962c + uVar4;
  if (DAT_0043962c == '\f') {
    local_30 = &local_1468;
    local_2c = auStack_1460;
    piVar8 = aiStack_1520;
    do {
      if ((uint)((int)pcVar16 - (int)pcVar17) < 0x22) {   //possible issue identified - semgrep
        uVar5 = addr2str(auStack_1698);
        pcVar17 = "short relay message from %s";
LAB_00408488:
        dprintf(6,"process_relayforw",pcVar17,uVar5,uVar6);
        goto LAB_00407ca0;
      }
      bVar1 = *(byte *)((int)pcVar17 + 1);
      uVar6 = in6addr2str((int *)((int)pcVar17 + 2),0);
      uVar5 = in6addr2str((int *)((int)pcVar17 + 0x12),0);
      dprintf(7,"process_relayforw","dhcp6 relay: hop=%d, linkaddr=%s, peeraddr=%s",(uint)bVar1,
              uVar6,uVar5);
      dhcp6_init_options(piVar8);
      iVar7 = dhcp6_get_options((char *)((int)pcVar17 + 0x22),pcVar16,piVar8);
      uVar4 = local_1468;
      if (iVar7 < 0) {
        pcVar17 = "process_relayforw";
        goto LAB_00408430;
      }
      if (local_1464 == 0) {
        uVar5 = addr2str(auStack_1698);
        pcVar17 = "relay forward from %s without a relay message";
        goto LAB_00408488;
      }
      if (local_1468 < 4) {
        dprintf(6,"process_relayforw","short packet (%d bytes) in relay message",local_1468,uVar6,
                uVar5);
        goto LAB_00407ca0;
      }
      __s = (int *******)malloc(0x3c)   //possible issue identified - semgrep
      if (__s == (int *******)0x0) {
        dprintf(3,"process_relayforw","failed to allocate relay info");
        goto LAB_00407ca0;
      }
      memset(__s,0,0x3c)   //possible issue identified - semgrep
      __s[2] = (int ******)(uint)*(byte *)((int)pcVar17 + 1);
      ppppppiVar13 = *(int *******)((int)pcVar17 + 0xe);
      ppppppiVar11 = *(int *******)((int)pcVar17 + 6);
      ppppppiVar12 = *(int *******)((int)pcVar17 + 10);
      __s[3] = *(int *******)((int)pcVar17 + 2);
      __s[6] = ppppppiVar13;
      __s[4] = ppppppiVar11;
      __s[5] = ppppppiVar12;
      ppppppiVar11 = *(int *******)((int)pcVar17 + 0x16);
      ppppppiVar12 = *(int *******)((int)pcVar17 + 0x1a);
      ppppppiVar13 = *(int *******)((int)pcVar17 + 0x1e);
      __s[7] = *(int *******)((int)pcVar17 + 0x12);
      __s[8] = ppppppiVar11;
      __s[10] = ppppppiVar13;
      __s[9] = ppppppiVar12;
      iVar7 = dhcp6_vbuf_copy(__s + 0xd,local_30);
      if ((iVar7 != 0) ||
         ((local_145c != 0 && (iVar7 = dhcp6_vbuf_copy(__s + 0xb,local_2c), iVar7 != 0)))) {
        FUN_004061a0(__s);
        goto LAB_00407c68;
      }
      *__s = (int ******)local_16d4;
      pppppppiVar3 = __s;
      if (local_16d4 != (int *******)0x0) {
        local_16d4[1] = (int ******)__s;
        pppppppiVar3 = local_16d0;
      }
      local_16d0 = pppppppiVar3;
      __s[1] = (int ******)local_3c;
      local_16d4 = __s;
      dhcp6_clear_options(piVar8);
      pcVar17 = (char *)__s[0xe];
      pcVar16 = (char *)((int)pcVar17 + uVar4);
    } while (*pcVar17 == '\f');
    uVar4 = (int)pcVar16 - (int)pcVar17   //possible issue identified - semgrep
    local_48 = (int ******)pcVar17;
  }
  piVar8 = local_1618;
  dhcp6_init_options(piVar8);
  iVar7 = dhcp6_get_options(local_48 + 1,pcVar16,piVar8);
  if (iVar7 < 0) {
    pcVar17 = "server6_recv";
LAB_00408430:
    dprintf(6,pcVar17,"failed to parse options");
    goto LAB_00407ca0;
  }
  switch(*(char *)local_48) {
  default:
    uVar5 = dhcp6msgstr(*(char *)local_48);
    dprintf(6,"server6_recv","unknown or unsupported msgtype (%s)",uVar5);
    break;
  case '\x01':
    if (local_1618[0] == 0) {
      pcVar17 = "react_solicit";
      goto LAB_00409188;
    }
    uVar5 = duidstr(piVar8);
    dprintf(7,"react_solicit","client ID %s",uVar5);
    if (local_1610[0] != 0) {
      dprintf(6,"react_solicit","server ID option found");
      break;
    }
    iVar7 = find_hostconf(piVar8);
    if (iVar7 != 0) {
      dprintf(7,"react_solicit","found a host configuration for %s",*(undefined4 *)(iVar7 + 4));
    }
    dhcp6_init_options(auStack_1428);
    iVar9 = FUN_00403aac(local_48,uVar4,iVar7,piVar8,auStack_1428);
    if (iVar9 == 0) {
      iVar9 = duidcpy(auStack_1420,&DAT_0043a634);
      if (iVar9 == 0) {
        iVar9 = duidcpy(auStack_1428,piVar8);
        if (iVar9 == 0) {
          if (*(int *)(local_44 + 0x34) != -1) {
            local_1414 = *(int *)(local_44 + 0x34);
          }
          iVar9 = FUN_00403588(1,auStack_1428,auStack_15e0);
          if (iVar9 == 0) {
            uVar4 = 0;
            if (local_1608 != 0) {
              uVar4 = *(uint *)(local_44 + 0x30) >> 1 & 1;
            }
            if (local_15f0 == (int *)0x0) {
LAB_004086a8:
              if (local_15e8 != (int *)0x0) {
                if (iVar7 == 0) {
                  if (*(int *)(local_44 + 0x38) != 0) {
                    iVar7 = create_dynamic_hostconf(piVar8,local_44 + 0x38);
                    if (iVar7 != 0) goto LAB_004086c0;
                    dprintf(5,"react_solicit","failed to make host configuration");
                  }
                  local_16c8 = &local_16cc;
                  local_16cc = 0;
                }
                else {
LAB_004086c0:
                  local_16c8 = &local_16cc;
                  local_16cc = 0;
                  iVar9 = dhcp6_copy_list(local_16c8,iVar7 + 0x1c);
                  if (iVar9 != 0) goto LAB_00408f8c;
                }
                if (local_15e8 == (int *)0x0) {
                  dhcp6_clear_list(&local_16cc);
                }
                else {
                  bVar2 = false;
                  piVar14 = local_15e8;
                  do {
                    if ((iVar7 != 0) &&
                       (iVar9 = FUN_00404d68(piVar14,&local_16cc,auStack_13f8,iVar7,uVar4),
                       0 < iVar9)) {
                      bVar2 = true;
                    }
                    piVar14 = (int *)*piVar14;
                  } while (piVar14 != (int *)0x0);
                  dhcp6_clear_list(&local_16cc);
                  if (bVar2) goto LAB_00408758;
                }
                local_16e0[0] = 2;
                iVar9 = dhcp6_add_listval(auStack_13e8,2,local_16e0,0);
                if (iVar9 == 0) goto LAB_00408194;
              }
LAB_00408758:
              if ((local_1608 == 0) || ((*(uint *)(local_44 + 0x30) & 2) == 0)) {
                uVar5 = 2;
              }
              else {
                local_1418 = 1;
                uVar5 = 7;
              }
              FUN_0040621c(uVar5,local_44,local_48,piVar8,auStack_1698,local_40,auStack_1428,
                           local_3c,iVar7);
            }
            else {
              local_16bc = local_44;
              local_16cc = 0;
              local_16c8 = &local_16cc;
              local_16c4 = iVar7;
              local_16c0 = piVar8;
              local_16b8 = auStack_1698;
              iVar7 = FUN_00404008(&local_16c4);
              if ((iVar7 == 0) || (iVar9 = dhcp6_copy_list(&local_16cc,iVar7 + 0x10), iVar9 == 0)) {
                if (local_15f0 == (int *)0x0) {
LAB_00408610:
                  if (((iVar7 != 0) ||
                      (iVar7 = create_dynamic_hostconf(piVar8,local_44 + 0x38), iVar7 != 0)) &&
                     (iVar9 = dhcp6_copy_list(&local_16cc,iVar7 + 0x10), iVar9 != 0))
                  goto LAB_00408f8c;
                  if (local_15f0 != (int *)0x0) {
                    bVar2 = false;
                    piVar14 = local_15f0;
                    local_38 = auStack_1400;
                    do {
                      if (((iVar7 != 0) &&
                          (iVar9 = FUN_00404d68(piVar14,&local_16cc,local_38,iVar7,uVar4), 0 < iVar9
                          )) || ((iVar9 = find_hostconf_noduid
                                                    (local_44,iVar7,piVar8,auStack_1698,&local_16cc,
                                                     1), iVar9 == 0 &&
                                 ((iVar7 != 0 &&
                                  (iVar9 = FUN_00404d68(piVar14,&local_16cc,local_38,iVar7,uVar4),
                                  0 < iVar9)))))) {
                        bVar2 = true;
                      }
                      piVar14 = (int *)*piVar14;
                    } while (piVar14 != (int *)0x0);
                    goto LAB_0040868c;
                  }
                  dhcp6_clear_list(&local_16cc);
                }
                else {
                  bVar2 = false;
                  piVar14 = local_15f0;
                  local_34 = auStack_1400;
                  do {
                    if (((iVar7 != 0) &&
                        (iVar9 = FUN_00404d68(piVar14,&local_16cc,local_34,iVar7,uVar4), 0 < iVar9))
                       || ((local_16c4 = iVar7, iVar9 = FUN_004040e4(&local_16c4,&local_16cc),
                           -1 < iVar9 &&
                           ((iVar7 != 0 &&
                            (iVar9 = FUN_00404d68(piVar14,&local_16cc,local_34,iVar7,uVar4),
                            0 < iVar9)))))) {
                      bVar2 = true;
                    }
                    piVar14 = (int *)*piVar14;
                  } while (piVar14 != (int *)0x0);
                  if (!bVar2) goto LAB_00408610;
LAB_0040868c:
                  dhcp6_clear_list(&local_16cc);
                  if (bVar2) goto LAB_004086a8;
                }
                local_16e0[0] = 6;
                iVar9 = dhcp6_add_listval(auStack_13e8,2,local_16e0,0);
                if (iVar9 == 0) goto LAB_00408194;
                goto LAB_004086a8;
              }
LAB_00408f8c:
              dprintf(5,"react_solicit","failed to make local data");
            }
          }
          else {
            dprintf(3,"react_solicit","failed to set other stateless information");
          }
        }
        else {
          dprintf(3,"react_solicit","failed to copy client ID");
        }
      }
      else {
        dprintf(3,"react_solicit","failed to copy server ID");
      }
    }
    else {
      if (iVar7 == 0) {
        uVar5 = duidstr(piVar8);
      }
      else {
        uVar5 = *(undefined4 *)(iVar7 + 4);
      }
      dprintf(6,"react_solicit","failed to process authentication information for %s",uVar5);
    }
LAB_00408194:
    dhcp6_clear_options(auStack_1428);
    break;
  case '\x03':
    if (local_1610[0] == 0) {
      pcVar17 = "react_request";
LAB_004093f8:
      dprintf(6,pcVar17,"no server ID option")   //possible issue identified - semgrep
    }
    else {
      iVar7 = duidcmp(local_1610,&DAT_0043a634);
      if (iVar7 != 0) {
        pcVar17 = "react_request";
LAB_004093d0:
        dprintf(6,pcVar17,"server ID mismatch")   //possible issue identified - semgrep
        break;
      }
      if (local_1618[0] == 0) {
        pcVar17 = "react_request";
        goto LAB_00409188;
      }
      dhcp6_init_options(auStack_1330);
      iVar7 = duidcpy(auStack_1328,&DAT_0043a634);
      if (iVar7 == 0) {
        iVar7 = duidcpy(auStack_1330,piVar8);
        if (iVar7 == 0) {
          iVar7 = find_hostconf(piVar8);
          if (iVar7 != 0) {
            dprintf(7,"react_request","found a host configuration named %s",
                    *(undefined4 *)(iVar7 + 4));
          }
          iVar9 = FUN_00403aac(local_48,uVar4,iVar7,piVar8,auStack_1330);
          if (iVar9 == 0) {
            if (((char)pcVar18->cmsg_len == -1) || (local_16d4 != (int *******)0x0)) {
              if (local_15f0 == (int *)0x0) {
LAB_00408d68:
                if (local_15e8 != (int *)0x0) {
                  if (iVar7 == 0) {
                    if (*(int *)(local_44 + 0x38) != 0) {
                      iVar7 = create_dynamic_hostconf(piVar8,local_44 + 0x38);
                      if (iVar7 != 0) goto LAB_00408d80;
                      dprintf(5,"react_request","failed to make host configuration");
                    }
                    local_16c8 = &local_16cc;
                    local_16cc = 0;
                    piVar14 = local_15e8;
                  }
                  else {
LAB_00408d80:
                    local_16c8 = &local_16cc;
                    local_16cc = 0;
                    iVar9 = dhcp6_copy_list(local_16c8,iVar7 + 0x1c);
                    piVar14 = local_15e8;
                    if (iVar9 != 0) goto LAB_00408f38;
                  }
                  if (piVar14 != (int *)0x0) {
                    piVar10 = __errno_location();
                    do {
                      *piVar10 = 0;
                      iVar9 = FUN_00404d68(piVar14,&local_16cc,auStack_1300,iVar7,1);
                      if (iVar9 == 0) {
                        uVar5 = 4;
                        if (*piVar10 != 0x16) {
                          uVar5 = 2;
                        }
                        iVar9 = FUN_00403984(6,piVar14[3],uVar5,auStack_1300);
                        if (iVar9 != 0) goto LAB_00408c60;
                      }
                      piVar14 = (int *)*piVar14;
                    } while (piVar14 != (int *)0x0);
                  }
                  dhcp6_clear_list(&local_16cc);
                }
                iVar9 = FUN_00403588(3,auStack_1330,auStack_15e0);
                if (iVar9 == 0) goto LAB_00408efc;
                dprintf(3,"react_request","failed to set other stateless information");
              }
              else {
                local_16bc = local_44;
                local_16cc = 0;
                local_16c8 = &local_16cc;
                local_16c4 = iVar7;
                local_16c0 = piVar8;
                local_16b8 = auStack_1698;
                iVar7 = FUN_00404008(&local_16c4);
                if ((iVar7 == 0) || (iVar9 = dhcp6_copy_list(&local_16cc,iVar7 + 0x10), iVar9 == 0))
                {
                  for (piVar14 = local_15f0; piVar14 != (int *)0x0; piVar14 = (int *)*piVar14) {
                    iVar9 = FUN_00404d68(piVar14,&local_16cc,auStack_1308,iVar7,1);
                    if ((iVar9 == 0) &&
                       (((local_16c4 = iVar7, iVar9 = FUN_004040e4(&local_16c4,&local_16cc),
                         iVar9 < 0 ||
                         (iVar9 = FUN_00404d68(piVar14,&local_16cc,auStack_1308,iVar7,1), iVar9 < 1)
                         ) && (iVar9 = FUN_00403984(4,piVar14[3],6,auStack_1308), iVar9 != 0))))
                    goto LAB_00408c60;
                  }
                  dhcp6_clear_list(&local_16cc);
                  goto LAB_00408d68;
                }
LAB_00408f38:
                dprintf(5,"react_request","failed to make local data");
              }
            }
            else {
              local_16e0[0] = 5;
              uVar5 = addr2str(auStack_1698);
              dprintf(6,"react_request","unexpected unicast message from %s",uVar5);
              iVar9 = dhcp6_add_listval(auStack_12f0,2,local_16e0,0);
              if (iVar9 == 0) {
                dprintf(3,"react_request","failed to add a status code");
                goto LAB_0040806c;
              }
LAB_00408efc:
              FUN_0040621c(7,local_44,local_48,piVar8,auStack_1698,local_40,auStack_1330,local_3c,
                           iVar7);
            }
          }
          else {
            if (iVar7 == 0) {
              uVar5 = duidstr(piVar8);
            }
            else {
              uVar5 = *(undefined4 *)(iVar7 + 4);
            }
            dprintf(6,"react_request","failed to process authentication information for %s",uVar5);
          }
        }
        else {
          dprintf(3,"react_request","failed to copy client ID");
        }
      }
      else {
        dprintf(3,"react_request","failed to copy server ID");
      }
LAB_0040806c:
      dhcp6_clear_options(auStack_1330);
    }
    break;
  case '\x04':
    FUN_00406b14(local_44,pcVar18,local_48,uVar4,piVar8,auStack_1698,local_40,local_3c);
    break;
  case '\x05':
    if (local_1610[0] == 0) {
      pcVar17 = "react_renew";
      goto LAB_004093f8;
    }
    iVar7 = duidcmp(local_1610,&DAT_0043a634);
    if (iVar7 != 0) {
      pcVar17 = "react_renew";
      goto LAB_004093d0;
    }
    puVar15 = auStack_1238;
    if (local_1618[0] != 0) {
      dhcp6_init_options(puVar15);
      iVar7 = duidcpy(auStack_1230,&DAT_0043a634);
      if (iVar7 != 0) {
        pcVar17 = "react_renew";
        goto LAB_004091b0;
      }
      iVar7 = duidcpy(puVar15,piVar8);
      if (iVar7 != 0) {
        pcVar17 = "react_renew";
        goto LAB_00407ebc;
      }
      iVar7 = find_hostconf(piVar8);
      if (iVar7 != 0) {
        dprintf(7,"react_renew","found a host configuration named %s",*(undefined4 *)(iVar7 + 4));
      }
      iVar9 = FUN_00403aac(local_48,uVar4,iVar7,piVar8,puVar15);
      if (iVar9 != 0) {
        if (iVar7 == 0) {
          uVar5 = duidstr(piVar8);
        }
        else {
          uVar5 = *(undefined4 *)(iVar7 + 4);
        }
        pcVar17 = "react_renew";
        goto LAB_00408930;
      }
      if (((char)pcVar18->cmsg_len == -1) || (local_16d4 != (int *******)0x0)) {
        if (local_15f0 != (int *)0x0) {
          piVar14 = local_15f0;
          do {
            iVar9 = FUN_004045cc(5,piVar14,auStack_1210,piVar8);
            if (iVar9 != 0) goto LAB_00407ed4;
            piVar14 = (int *)*piVar14;
          } while (piVar14 != (int *)0x0);
        }
        if (local_15e8 != (int *)0x0) {
          piVar14 = local_15e8;
          do {
            iVar9 = FUN_004045cc(5,piVar14,auStack_1208,piVar8);
            if (iVar9 != 0) goto LAB_00407ed4;
            piVar14 = (int *)*piVar14;
          } while (piVar14 != (int *)0x0);
        }
        iVar9 = FUN_00403588(5,puVar15,auStack_15e0);
        if (iVar9 != 0) {
          pcVar17 = "react_renew";
          goto LAB_00408b24;
        }
      }
      else {
        local_16e0[0] = 5;
        uVar5 = addr2str(auStack_1698);
        dprintf(6,"react_renew","unexpected unicast message from %s",uVar5);
        iVar9 = dhcp6_add_listval(auStack_11f8,2,local_16e0,0);
        if (iVar9 == 0) {
          dprintf(3,"react_renew","failed to add a status code");
          goto LAB_00407ed4;
        }
      }
LAB_00409298:
      FUN_0040621c(7,local_44,local_48,piVar8,auStack_1698,local_40,puVar15,local_3c,iVar7);
      goto LAB_00407ed4;
    }
    pcVar17 = "react_renew";
LAB_00409188:
    dprintf(6,pcVar17,"no client ID option")   //possible issue identified - semgrep
    break;
  case '\x06':
    if (local_1618[0] == 0) {
      pcVar17 = "react_rebind";
      goto LAB_00409188;
    }
    puVar15 = auStack_1140;
    if (local_1610[0] == 0) {
      dhcp6_init_options(puVar15);
      iVar7 = duidcpy(auStack_1138,&DAT_0043a634);
      if (iVar7 == 0) {
        iVar7 = duidcpy(puVar15,piVar8);
        if (iVar7 == 0) {
          iVar7 = find_hostconf(piVar8);
          if (iVar7 != 0) {
            dprintf(7,"react_rebind","found a host configuration named %s",
                    *(undefined4 *)(iVar7 + 4));
          }
          iVar9 = FUN_00403aac(local_48,uVar4,iVar7,piVar8,puVar15);
          if (iVar9 == 0) {
            if (local_15f0 != (int *)0x0) {
              piVar14 = local_15f0;
              do {
                iVar9 = FUN_004045cc(6,piVar14,local_1118,piVar8);
                if (iVar9 != 0) goto LAB_00407ed4;
                piVar14 = (int *)*piVar14;
              } while (piVar14 != (int *)0x0);
            }
            if (local_15e8 != (int *)0x0) {
              piVar14 = local_15e8;
              do {
                iVar9 = FUN_004045cc(6,piVar14,local_1110,piVar8);
                if (iVar9 != 0) goto LAB_00407ed4;
                piVar14 = (int *)*piVar14;
              } while (piVar14 != (int *)0x0);
            }
            if ((local_1118[0] == 0) && (local_1110[0] == 0)) {
              dprintf(6,"react_rebind","no useful information for a rebind");
            }
            else {
              iVar9 = FUN_00403588(6,puVar15,auStack_15e0);
              if (iVar9 == 0) goto LAB_00409298;
              pcVar17 = "react_rebind";
LAB_00408b24:
              dprintf(3,pcVar17,"failed to set other stateless information")   //possible issue identified - semgrep
            }
          }
          else {
            if (iVar7 == 0) {
              uVar5 = duidstr(piVar8);
            }
            else {
              uVar5 = *(undefined4 *)(iVar7 + 4);
            }
            pcVar17 = "react_rebind";
LAB_00408930:
            dprintf(6,pcVar17,"failed to process authentication information for %s",uVar5)   //possible issue identified - semgrep
          }
        }
        else {
          pcVar17 = "react_rebind";
LAB_00407ebc:
          dprintf(3,pcVar17,"failed to copy client ID")   //possible issue identified - semgrep
        }
      }
      else {
        pcVar17 = "react_rebind";
LAB_004091b0:
        dprintf(3,pcVar17,"failed to copy server ID")   //possible issue identified - semgrep
      }
LAB_00407ed4:
      dhcp6_clear_options(puVar15);
    }
    else {
      dprintf(6,"react_rebind","server ID option is included in a rebind message");
    }
    break;
  case '\b':
    FUN_004066c8(local_44,pcVar18,local_48,uVar4,piVar8,auStack_1698,local_40,local_3c);
    break;
  case '\t':
    FUN_00407370(local_44,pcVar18,local_48,uVar4,piVar8,auStack_1698,local_40,local_3c);
    break;
  case '\v':
    FUN_004070f4(local_44,local_48,uVar4,piVar8,auStack_1698,local_40,local_3c);
  }
LAB_00407c68:
  dhcp6_clear_options(piVar8);
LAB_00407ca0:
  while (local_16d4 != (int *******)0x0) {
    ppppppiVar11 = *local_16d4;
    if (ppppppiVar11 == (int ******)0x0) {
      local_16d0 = (int *******)local_16d4[1];
    }
    else {
      ppppppiVar11[1] = (int *****)local_16d4[1];
    }
    *local_16d4[1] = (int *****)ppppppiVar11;
    FUN_004061a0();
  }
  return;
LAB_00408c60:
  dprintf(5,"react_request","failed to make an option list");
  dhcp6_clear_list(&local_16cc);
  goto LAB_0040806c;
}