void FUN_00407df4(int *param_1)
{
int *piVar1;
int iVar2;
int *__ptr;
while( true ) {
__ptr = (int *)*param_1;
if (__ptr == param_1) break;
piVar1 = (int *)__ptr[1];
iVar2 = *__ptr;
*piVar1 = iVar2;
*(int **)(iVar2 + 4) = piVar1;
*__ptr = 0;
__ptr[1] = 0;
FUN_00407f28(__ptr + 2);
free(__ptr);
}
return;
}