void FUN_00404dc4(int param_1)
{
int iVar1;
int *piVar2;
int *piVar3;
int *piVar4;
if (param_1 != 0) {
piVar3 = (int *)0x0;
while( true ) {
if (piVar3 == (int *)0x0) {
piVar4 = *(int **)(param_1 + 0x14);
}
else {
piVar4 = (int *)*piVar3;
}
if ((piVar4 == (int *)(param_1 + 0x14)) || (piVar4 == (int *)0x0)) break;
if (0 < piVar4[2]) {
iVar1 = child_running();
if (iVar1 == 0) {
piVar4[2] = 0;
}
}
if (piVar4[2] < 1) {
piVar2 = (int *)piVar4[1];
iVar1 = *piVar4;
piVar3 = (int *)piVar4[1];
*piVar2 = iVar1;
*(int **)(iVar1 + 4) = piVar2;
*piVar4 = 0;
piVar4[1] = 0;
FUN_00404c20(piVar4);
}
else {
piVar4[5] = piVar4[5] + 1;
piVar3 = piVar4;
}
}
}
return;
}