void FUN_00403d0c(int *param_1)

{
  undefined4 uVar1;
  undefined4 *puVar2;
  int iVar3;
  undefined4 *puVar4;
  short in_stack_00000010;
  
  dolog(7,"Received a ICMPv6 MLD Query on %s\n",param_1 + 1);
  if (in_stack_00000010 == 0x18) {
    uVar1 = 1;
  }
  else {
    uVar1 = 2;
  }
  int_set_mld_version(param_1,uVar1);
  if ((*(int *)(g_conf + 0x30) == 0) &&
     (((*(int *)(g_conf + 0x2c) != 0 || (param_1[7] == 0)) || (param_1[7] == 1)))) {
    for (puVar4 = (undefined4 *)**(undefined4 **)(g_conf + 0xc); puVar4 != (undefined4 *)0x0;
        puVar4 = (undefined4 *)*puVar4) {
      iVar3 = puVar4[2];
      if (iVar3 != 0) {
        for (puVar2 = (undefined4 *)**(undefined4 **)(iVar3 + 0x10); puVar2 != (undefined4 *)0x0;
            puVar2 = (undefined4 *)*puVar2) {
          if (((int *)puVar2[2] != (int *)0x0) && (*(int *)puVar2[2] == *param_1)) {
            FUN_00403c08(param_1,iVar3);
          }
        }
      }
    }
    return;
  }
  if ((*(int *)(g_conf + 0x2c) == 0) && ((*(int *)(g_conf + 0x30) != 0 || (param_1[7] == 2)))) {
    FUN_00403168(param_1,0);
    return;
  }
  dolog(7,"Did not answer query on %s\n",param_1 + 1);
  return;
}