/* WARNING: Type propagation algorithm not settling */
void FUN_004043b8(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4)
{
int iVar1;
char *pcVar2;
byte bVar3;
int iVar4;
int local_28 [6];
iVar4 = param_4 + 8;
int_set_mld_version(param_1,1);
FUN_00401448(7,"Received a ICMPv6 MLDv1 Report for %s on %s/%u\n",iVar4,param_1);
if (((*(char *)(param_4 + 8) == -1) && (bVar3 = *(byte *)(param_4 + 9) & 0xf, bVar3 != 1)) &&
(bVar3 != 2)) {
iVar1 = groupint_get(iVar4,param_1,local_28);
if (iVar1 == 0) {
pcVar2 = "Couldn\'t find or create new group %s for %s/%u\n";
}
else {
local_28[1] = 0;
local_28[2] = 0;
local_28[3] = 0;
local_28[4] = 0;
iVar1 = grpint_refresh(iVar1,local_28 + 1,1);
if (iVar1 != 0) {
if (local_28[0] == 0) {
return;
}
FUN_00403ef4(param_1,iVar4);
return;
}
pcVar2 = "Couldn\'t create subscription to %s for %s/%u\n";
}
FUN_00401448(4,pcVar2,iVar4,param_1);
}
return;
}