void FUN_0041c550(void *param_1)

{
  int iVar1;
  int *piVar2;
  
  piVar2 = *(int **)((int)param_1 + 0x24);
  while (piVar2 != (int *)0x0) {
    while (iVar1 = *piVar2, iVar1 != 0) {
      *(int *)(iVar1 + 4) = piVar2[1];
      *(int *)piVar2[1] = iVar1;
      FUN_0041bf18();
      piVar2 = *(int **)((int)param_1 + 0x24);
      if (piVar2 == (int *)0x0) goto LAB_0041c5e4;
    }
    *(int *)((int)param_1 + 0x28) = piVar2[1];
    *(undefined4 *)piVar2[1] = 0;
    FUN_0041bf18();
    piVar2 = *(int **)((int)param_1 + 0x24);
  }
LAB_0041c5e4:
  free(param_1);
  return;
}