void FUN_00406b14(int param_1)

{
  uint uVar1;
  undefined4 *puVar2;
  
  puVar2 = *(undefined4 **)(param_1 + 4);
  uVar1 = 0;
  do {
    if (puVar2 == (undefined4 *)0x0) {
LAB_00406b8c:
      if (*(byte *)(param_1 + 3) != uVar1) {
        *(char *)(param_1 + 3) = (char)uVar1;
        FUN_004069a4(param_1,2);
        return;
      }
      return;
    }
    uVar1 = uVar1 | 1 << ((int)*(char *)((int)puVar2 + 5) & 0x1fU) & 0xffU;
    if ((int)*(char *)((int)puVar2 + 5) == 0xffffffff) {
      verbose("*** igmp: can\'t find port number for IP(%x)...\n",*puVar2);
      uVar1 = 0x5f;
      goto LAB_00406b8c;
    }
    puVar2 = (undefined4 *)puVar2[2];
  } while( true );
}