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