void FUN_0041a34c(undefined4 *param_1)

{
  void *pvVar1;
  
  if (param_1 != (undefined4 *)0x0) {
    do {
      pvVar1 = (void *)*param_1;
      if (param_1[2] == 0xb) {
        free(*(void **)param_1[7]);
      }
      if ((void *)param_1[7] != (void *)0x0) {
        free((void *)param_1[7]);
      }
      if (param_1[6] != 0) {
        FUN_0041a34c(param_1[6]);
      }
      free(param_1);
      param_1 = (undefined4 *)pvVar1;
    } while (pvVar1 != (void *)0x0);
  }
  return;
}