undefined4
FUN_004066c8(undefined4 param_1,char *param_2,undefined4 param_3,undefined4 param_4,int *param_5,
            undefined4 param_6,undefined4 param_7,int *param_8)

{
  int iVar1;
  int iVar2;
  undefined4 uVar3;
  char *pcVar4;
  int *piVar5;
  undefined2 local_128;
  undefined2 local_126 [3];
  undefined1 auStack_120 [8];
  undefined1 auStack_118 [32];
  undefined1 auStack_f8 [8];
  undefined1 auStack_f0 [16];
  undefined1 auStack_e0 [188];
  
  if (param_5[2] == 0) {
    pcVar4 = "no server ID option";
  }
  else {
    iVar1 = duidcmp(param_5 + 2,&DAT_0043a634);
    if (iVar1 == 0) {
      if (*param_5 != 0) {
        dhcp6_init_options(auStack_120);
        iVar1 = duidcpy(auStack_118,&DAT_0043a634);
        if (iVar1 == 0) {
          iVar1 = duidcpy(auStack_120,param_5);
          if (iVar1 == 0) {
            iVar1 = find_hostconf(param_5);
            if (iVar1 != 0) {
              dprintf(7,"react_release","found a host configuration named %s",
                      *(undefined4 *)(iVar1 + 4));
            }
            iVar2 = FUN_00403aac(param_3,param_4,iVar1,param_5,auStack_120);
            if (iVar2 == 0) {
              if ((*param_2 == -1) || (*param_8 != 0)) {
                for (piVar5 = (int *)param_5[10]; piVar5 != (int *)0x0; piVar5 = (int *)*piVar5) {
                  iVar2 = FUN_00405924(piVar5,auStack_f8,param_5);
                  if (iVar2 != 0) goto LAB_0040682c;
                }
                for (piVar5 = (int *)param_5[0xc]; piVar5 != (int *)0x0; piVar5 = (int *)*piVar5) {
                  iVar2 = FUN_00405924(piVar5,auStack_f0,param_5);
                  if (iVar2 != 0) goto LAB_0040682c;
                }
                local_128 = 0;
                iVar2 = dhcp6_add_listval(auStack_e0,2,&local_128,0);
                if (iVar2 != 0) goto LAB_00406980;
                dprintf(5,"react_release","failed to add a status code");
              }
              else {
                local_126[0] = 5;
                uVar3 = addr2str(param_6);
                dprintf(6,"react_release","unexpected unicast message from %s",uVar3);
                iVar2 = dhcp6_add_listval(auStack_e0,2,local_126,0);
                if (iVar2 != 0) {
LAB_00406980:
                  FUN_0040621c(7,param_1,param_3,param_5,param_6,param_7,auStack_120,param_8,iVar1);
                  dhcp6_clear_options(auStack_120);
                  return 0;
                }
                dprintf(3,"react_release","failed to add a status code");
              }
            }
            else {
              if (iVar1 == 0) {
                uVar3 = duidstr(param_5);
              }
              else {
                uVar3 = *(undefined4 *)(iVar1 + 4);
              }
              dprintf(6,"react_release","failed to process authentication information for %s",uVar3)
              ;
            }
          }
          else {
            dprintf(3,"react_release","failed to copy client ID");
          }
        }
        else {
          dprintf(3,"react_release","failed to copy server ID");
        }
LAB_0040682c:
        dhcp6_clear_options(auStack_120);
        return 0xffffffff;
      }
      pcVar4 = "no client ID option";
    }
    else {
      pcVar4 = "server ID mismatch";
    }
  }
  dprintf(6,"react_release",pcVar4);
  return 0xffffffff;
}