void FUN_004054bc(int *param_1)
{
int iVar1;
undefined4 uVar2;
int *piVar3;
int *__ptr;
__ptr = (int *)param_1[4];
if (param_1[6] < 0xb) {
param_1[6] = param_1[6] + 1;
iVar1 = vifs_get_ver_by_id((short)param_1[5]);
if (iVar1 == 0x22) {
uVar2 = vifs_get_ipaddr();
send_igmp_v3(uVar2,__ptr[2],0x11,0x7d,__ptr[2],1,0);
}
else {
iVar1 = vifs_get_ver_by_id((short)param_1[5]);
if ((iVar1 == 0x16) || (iVar1 = vifs_get_ver_by_id((short)param_1[5]), iVar1 == 0x12)) {
uVar2 = vifs_get_ipaddr((short)param_1[5]);
send_igmp(uVar2,__ptr[2],0x11,10,__ptr[2]);
}
}
iVar1 = sloop_register_timeout(10,0,FUN_004054bc,param_1);
param_1[7] = iVar1;
}
else {
piVar3 = (int *)param_1[1];
iVar1 = *param_1;
*piVar3 = iVar1;
*(int **)(iVar1 + 4) = piVar3;
*param_1 = 0;
param_1[1] = 0;
FUN_00404900();
FUN_004050a4(__ptr);
if ((int *)__ptr[5] == __ptr + 5) {
FUN_00404a40(__ptr);
piVar3 = (int *)__ptr[1];
iVar1 = *__ptr;
*piVar3 = iVar1;
*(int **)(iVar1 + 4) = piVar3;
*__ptr = 0;
__ptr[1] = 0;
/* WARNING: Could not recover jumptable at 0x00405564. Too many branches */
/* WARNING: Treating indirect jump as call */
free(__ptr);
return;
}
}
return;
}