/* WARNING: Removing unreachable block (ram,0x00416bac) */
/* WARNING: Removing unreachable block (ram,0x00416a74) */
/* WARNING: Removing unreachable block (ram,0x00416dfc) */
/* WARNING: Removing unreachable block (ram,0x00416a84) */
/* WARNING: Removing unreachable block (ram,0x00416ddc) */
/* WARNING: Removing unreachable block (ram,0x00416aa8) */
/* WARNING: Removing unreachable block (ram,0x00416da0) */
/* WARNING: Removing unreachable block (ram,0x00416ab8) */
/* WARNING: Removing unreachable block (ram,0x00416b64) */
/* WARNING: Removing unreachable block (ram,0x00416b7c) */
/* WARNING: Removing unreachable block (ram,0x00416d74) */

undefined4 configure_interface(int *param_1)

{
  uint uVar1;
  undefined4 *puVar2;
  undefined4 uVar3;
  char *pcVar4;
  undefined4 uVar5;
  int *piVar6;
  int iVar7;
  int *piVar8;
  undefined4 *puVar9;
  
  dprintf(7,"configure_interface","called");
  if (param_1 != (int *)0x0) {
    do {
      uVar1 = if_nametoindex((char *)param_1[1]);
      if (uVar1 == 0) {
        iVar7 = param_1[1];
        piVar8 = __errno_location();
        pcVar4 = strerror(*piVar8);
        dprintf(3,"configure_interface","invalid interface(%s): %s",iVar7,pcVar4);
LAB_00416918:
        FUN_00413d74(DAT_0043cd10);
        DAT_0043cd10 = (undefined4 *)0x0;
        return 0xffffffff;
      }
      puVar2 = (undefined4 *)malloc(0x38)   //possible issue identified - semgrep
      if (puVar2 == (undefined4 *)0x0) {
        dprintf(3,"configure_interface","memory allocation for %s failed",param_1[1]);
        goto LAB_00416918;
      }
      puVar2[1] = 0;
      puVar2[2] = 0;
      puVar2[3] = 0;
      puVar2[4] = 0;
      puVar2[5] = 0;
      puVar2[6] = 0;
      puVar2[7] = 0;
      puVar2[8] = 0;
      puVar2[9] = 0;
      puVar2[10] = 0;
      puVar2[0xb] = 0;
      puVar2[0xc] = 0;
      puVar2[0xd] = 0;
      pcVar4 = (char *)param_1[1];
      *puVar2 = DAT_0043cd10;
      DAT_0043cd10 = puVar2;
      pcVar4 = strdup(pcVar4);
      puVar2[1] = pcVar4;
      if (pcVar4 == (char *)0x0) {
        dprintf(3,"configure_interface","failed to copy ifname");
        goto LAB_00416918;
      }
      piVar8 = (int *)param_1[3];
      puVar2[7] = puVar2 + 6;
      puVar2[9] = puVar2 + 8;
      puVar2[4] = 0xffffffff;
      puVar2[6] = 0;
      puVar2[8] = 0;
      piVar6 = DAT_0043cd9c;
      for (; DAT_0043cd9c = piVar6, piVar8 != (int *)0x0; piVar8 = (int *)*piVar8) {
        switch(piVar8[2]) {
        case 0:
          iVar7 = FUN_00416224(0,puVar2,piVar8[6]);
          if (iVar7 != 0) {
            dprintf(3,"configure_interface","****%d****",0xef);
            goto LAB_00416918;
          }
          break;
        case 1:
          iVar7 = FUN_00416224(2,puVar2,piVar8[6]);
          if (iVar7 != 0) {
            dprintf(3,"configure_interface","****%d****",0xf6);
            goto LAB_00416918;
          }
          break;
        case 2:
          goto LAB_00416c38;
        case 3:
          goto LAB_00416c38;
        default:
          dprintf(3,"configure_interface","%s:%d invalid interface configuration",configfilename,
                  piVar8[3]);
          goto LAB_00416918;
        case 6:
          uVar1 = piVar8[4];
          puVar2[4] = uVar1;
          if (0xff < uVar1) {
            dprintf(6,"configure_interface","%s:%d bad value: %d",configfilename,piVar8[3],uVar1);
            goto LAB_00416918;
          }
          break;
        case 7:
LAB_00416c38:
          dprintf(6,"configure_interface","%s:%d client-only configuration",configfilename,piVar8[3]
                 );
          goto LAB_00416918;
        case 0xb:
          puVar9 = (undefined4 *)piVar8[7];
          if (piVar6 == (int *)0x0) {
LAB_00416d3c:
            dprintf(3,"configure_interface","%s:%d pool \'%s\' not found",configfilename,piVar8[3],
                    *puVar9);
            goto LAB_00416918;
          }
          pcVar4 = (char *)*puVar9;
          while (iVar7 = strcmp(pcVar4,(char *)piVar6[1]), iVar7 != 0) {
            piVar6 = (int *)*piVar6;
            if (piVar6 == (int *)0x0) goto LAB_00416d3c;
          }
          if ((puVar9[2] != 0xffffffff) &&
             ((puVar9[1] == 0xffffffff || ((uint)puVar9[2] < (uint)puVar9[1])))) {
            dprintf(3,"configure_interface","%s:%d ",configfilename,piVar8[3],
                    "specified a larger preferred lifetime than valid lifetime");
            goto LAB_00416918;
          }
          uVar5 = puVar9[2];
          uVar3 = puVar9[1];
          puVar2[0xb] = *puVar9;
          puVar2[0xc] = uVar3;
          puVar2[0xd] = uVar5;
          pcVar4 = strdup((char *)*puVar9);
          puVar2[0xb] = pcVar4;
          if (pcVar4 == (char *)0x0) {
            dprintf(3,"configure_interface","memory allocation failed",0);
            goto LAB_00416918;
          }
          dprintf(7,"configure_interface","pool \'%s\' is specified to the interface \'%s\'",pcVar4,
                  puVar2[1]);
        }
        piVar6 = DAT_0043cd9c;
      }
      param_1 = (int *)*param_1;
    } while (param_1 != (int *)0x0);
  }
  return 0;
}