void FUN_0041420c(void *param_1)

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