uint vifs_add_if(int param_1,char *param_2,undefined1 param_3,undefined4 param_4)

{
  bool bVar1;
  uint uVar2;
  int iVar3;
  undefined4 uVar4;
  char *pcVar5;
  uint uVar6;
  undefined4 uVar7;
  int iVar8;
  char acStack_60 [32];
  char acStack_40 [36];
  
  uVar2 = DAT_0041b990;
  iVar8 = DAT_0041b990 * 0x2c;
  memset(&DAT_0041b830 + iVar8,0,0x2c)   //possible issue identified - semgrep
  iVar3 = FUN_00403784(param_2);
  if (iVar3 < 0) {
    strncpy(&DAT_0041b830 + iVar8,param_2,0x10)   //possible issue identified - semgrep
    uVar4 = sioc_getifaddr(param_2);
    (&DAT_0041b840)[uVar2 * 0xb] = uVar4;
    uVar4 = sioc_getifnetmask(param_2);
    (&DAT_0041b844)[uVar2 * 0xb] = uVar4;
    (&DAT_0041b858)[uVar2 * 0xb] = 0x22;
    (&DAT_0041b848)[iVar8] = param_3;
    (&DAT_0041b84c)[uVar2 * 0xb] = param_4;
    uVar4 = sloop_register_timeout(0,0,FUN_0040364c,uVar2);
    (&DAT_0041b850)[uVar2 * 0xb] = uVar4;
    (&DAT_0041b854)[uVar2 * 0xb] = param_1;
    if (((&DAT_0041b840)[uVar2 * 0xb] != 0) && ((&DAT_0041b844)[uVar2 * 0xb] != 0)) {
      pcVar5 = inet_ntoa((in_addr)(&DAT_0041b840)[uVar2 * 0xb]);
      strcpy(acStack_60,pcVar5)   //possible issue identified - semgrep
      pcVar5 = inet_ntoa((in_addr)(&DAT_0041b844)[uVar2 * 0xb]);
      strcpy(acStack_40,pcVar5)   //possible issue identified - semgrep
      if ((&DAT_0041b850)[uVar2 * 0xb] != 0) {
        iVar3 = mrtapi_add_vif(uVar2 & 0xffff,param_3,param_4,(&DAT_0041b840)[uVar2 * 0xb]);
        if (iVar3 != 0) {
          sloop_cancel_timeout((&DAT_0041b850)[uVar2 * 0xb]);
          return 0xffffffff;
        }
        if (param_1 == 0) {
          uVar4 = mrtapi_sock();
          iVar3 = sopt_set_membership(uVar4,0x20000e0,(&DAT_0041b840)[uVar2 * 0xb],1);
          if (iVar3 != 0) {
            bVar1 = true;
            goto LAB_00403b58;
          }
          uVar4 = mrtapi_sock();
          uVar7 = (&DAT_0041b840)[uVar2 * 0xb];
          uVar6 = 0x16000000;
        }
        else {
          uVar4 = mrtapi_sock();
          uVar7 = (&DAT_0041b840)[uVar2 * 0xb];
          uVar6 = 0x1000000;
        }
        iVar3 = sopt_set_membership(uVar4,uVar6 | 0xe0,uVar7,1);
        bVar1 = true;
        if (iVar3 == 0) {
          DAT_0041b990 = DAT_0041b990 + 1;
          if (-1 < (int)uVar2) {
            return uVar2;
          }
          bVar1 = true;
          uVar6 = uVar2;
          goto LAB_00403acc;
        }
        goto LAB_00403b58;
      }
    }
    bVar1 = false;
  }
  else {
    verbose("%s: %s is already in the list!\n","vifs_add_if",param_2);
    bVar1 = false;
  }
LAB_00403b58:
  uVar6 = 0xffffffff;
LAB_00403acc:
  if ((&DAT_0041b850)[uVar2 * 0xb] != 0) {
    sloop_cancel_timeout();
  }
  if (bVar1) {
    mrtapi_del_vif(uVar2 & 0xffff);
  }
  return uVar6;
}