void FUN_00404844(void)
{
time_t tVar1;
uint uVar2;
uint uVar3;
int *piVar4;
int iVar5;
int *piVar6;
int iVar7;
int *piVar8;
int iVar9;
int *piVar10;
int *piVar11;
dolog(7,"Timeout\n");
FUN_00402080(0,0);
tVar1 = time((time_t *)0x0);
piVar11 = (int *)**(int **)(g_conf + 0xc);
while (piVar8 = piVar11, piVar8 != (int *)0x0) {
iVar9 = piVar8[2];
piVar11 = (int *)*piVar8;
if (iVar9 != 0) {
piVar10 = (int *)**(int **)(iVar9 + 0x10);
while (piVar6 = piVar10, piVar6 != (int *)0x0) {
iVar7 = piVar6[2];
piVar10 = (int *)*piVar6;
if (iVar7 != 0) {
piVar4 = (int *)**(int **)(iVar7 + 4);
while (piVar4 != (int *)0x0) {
iVar5 = piVar4[2];
piVar4 = (int *)*piVar4;
if ((iVar5 != 0) &&
(uVar2 = tVar1 - *(int *)(iVar5 + 0x14), uVar3 = (int)uVar2 >> 0x1f,
0xfa < (int)((uVar3 ^ uVar2) - uVar3))) {
list_delete_node(*(undefined4 *)(iVar7 + 4));
subscr_destroy(iVar5);
}
}
if (*(int *)(*(int *)(iVar7 + 4) + 8) < -1) {
list_delete_node(*(undefined4 *)(iVar9 + 0x10),piVar6);
grpint_destroy(iVar7);
}
}
}
if (*(int *)(*(int *)(iVar9 + 0x10) + 8) == 0) {
list_delete_node(*(undefined4 *)(g_conf + 0xc),piVar8);
group_destroy(iVar9);
}
}
}
FUN_00404768();
dolog(7,"Timeout - done\n");
return;
}