uint FUN_0040b490(void *param_1,undefined4 param_2,char *param_3,undefined2 *param_4)

{
  byte bVar1;
  int *piVar2;
  int *piVar3;
  int iVar4;
  undefined4 uVar5;
  short *psVar6;
  int *local_30 [3];
  
  iVar4 = getifaddrs(local_30);
  piVar3 = local_30[0];
  piVar2 = local_30[0];
  if (-1 < iVar4) {
    for (; piVar2 != (int *)0x0; piVar2 = (int *)*piVar2) {
      if ((((param_3 == (char *)0x0) || (iVar4 = strcmp((char *)piVar2[1],param_3), iVar4 == 0)) &&
          (psVar6 = (short *)piVar2[3], psVar6 != (short *)0x0)) &&
         ((*psVar6 == 0x11 && (psVar6[4] == 1)))) {
        uVar5 = piVar2[1];
        *param_4 = 1;
        dprintf(7,"gethwid","found an interface %s for DUID",uVar5);
        memcpy(param_1,psVar6 + 6,(size_t)*(undefined1 *)((int)psVar6 + 0xb))   //possible issue identified - semgrep
        bVar1 = *(byte *)((int)psVar6 + 0xb);
        freeifaddrs(local_30[0]);
        return (uint)bVar1;
      }
    }
    freeifaddrs(piVar3);
  }
  return 0xffffffff;
}