void FUN_0040995c(int *param_1)

{
  int iVar1;
  int *piVar2;
  void *__ptr;
  
  if (param_1 != (int *)0x0) {
    piVar2 = (int *)param_1[1];
    iVar1 = *param_1;
    __ptr = (void *)param_1[2];
    *piVar2 = iVar1;
    *(int **)(iVar1 + 4) = piVar2;
    *param_1 = 0;
    param_1[1] = 0;
    if (__ptr != (void *)0x0) {
      free(__ptr);
    }
    if (param_1[3] != 0) {
      sobj_del();
    }
    free(param_1);
    return;
  }
  return;
}