void FUN_0041d920(void *param_1)

{
  int *piVar1;
  
  if (param_1 == (void *)0x0) {
    return;
  }
  if ((DAT_0043ce14 != 0) &&
     (piVar1 = (int *)(DAT_0043ce14 + DAT_0043ce18 * 4), param_1 == (void *)*piVar1)) {
    *piVar1 = 0;
  }
  if (*(int *)((int)param_1 + 0x14) != 0) {
    free(*(void **)((int)param_1 + 4));
                    /* WARNING: Could not recover jumptable at 0x0041d9bc. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    free(param_1);
    return;
  }
  (*(code *)(undefined *)0x0)(param_1);
  (*(code *)(undefined *)0x0)();
  (*(code *)(undefined *)0x0)();
  (*(code *)(undefined *)0x0)();
  (*(code *)(undefined *)0x0)();
  (*(code *)(undefined *)0x0)();
  (*(code *)(undefined *)0x0)();
  (*(code *)(undefined *)0x0)();
  (*(code *)(undefined *)0x0)();
  (*(code *)(undefined *)0x0)();
  (*(code *)(undefined *)0x0)();
  (*(code *)(undefined *)0x0)();
  (*(code *)(undefined *)0x0)();
  FUN_004024d0();
  return;
}