void FUN_00405b10(int param_1)

{
  undefined4 *puVar1;
  undefined4 *__ptr;
  undefined4 *puVar2;
  
  if (DAT_00422a40 != (void *)0x0) {
    free(DAT_00422a40);
  }
  while (__ptr = DAT_00422a50, DAT_00422a50 != (undefined4 *)0x0) {
    puVar2 = (undefined4 *)*DAT_00422a50;
    puVar1 = DAT_00422a50 + 1;
    DAT_00422a50 = puVar2;
    if ((void *)*puVar1 != (void *)0x0) {
      free((void *)*puVar1);
    }
    free(__ptr);
  }
  FUN_004051dc();
  FUN_00405180("%s exit with code %d.\n","devdata",param_1);
                    /* WARNING: Subroutine does not return */
  exit(param_1);
}