#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ archdep_shutdown();
int /*<<< orphan*/ autostart_resources_shutdown();
int /*<<< orphan*/ autostart_shutdown();
int /*<<< orphan*/ cmdline_shutdown();
int /*<<< orphan*/ disk_image_resources_shutdown();
int /*<<< orphan*/ drive_shutdown();
int /*<<< orphan*/ event_shutdown();
int /*<<< orphan*/ file_system_detach_disk_shutdown();
int /*<<< orphan*/ file_system_shutdown();
int /*<<< orphan*/ fliplist_resources_shutdown();
int /*<<< orphan*/ fliplist_shutdown();
int /*<<< orphan*/ fsdevice_resources_shutdown();
int /*<<< orphan*/ fsdevice_shutdown();
int /*<<< orphan*/ gfxoutput_shutdown();
int /*<<< orphan*/ joystick_close();
int /*<<< orphan*/ kbdbuf_shutdown();
int /*<<< orphan*/ keyboard_shutdown();
int /*<<< orphan*/ lib_debug_check();
int /*<<< orphan*/ log_close_all();
int /*<<< orphan*/ log_resources_shutdown();
int /*<<< orphan*/ machine_maincpu_shutdown();
int /*<<< orphan*/ machine_resources_shutdown();
int /*<<< orphan*/ machine_specific_shutdown();
int /*<<< orphan*/ monitor_shutdown();
int /*<<< orphan*/ network_shutdown();
int /*<<< orphan*/ printer_shutdown();
int /*<<< orphan*/ resources_shutdown();
int /*<<< orphan*/ romset_resources_shutdown();
int /*<<< orphan*/ sound_close();
int /*<<< orphan*/ sysfile_resources_shutdown();
int /*<<< orphan*/ sysfile_shutdown();
int /*<<< orphan*/ tape_shutdown();
int /*<<< orphan*/ traps_shutdown();
int /*<<< orphan*/ ui_resources_shutdown();
int /*<<< orphan*/ ui_shutdown();
int /*<<< orphan*/ video_shutdown();
int /*<<< orphan*/ zfile_shutdown();
void machine_shutdown(void) {
  file_system_detach_disk_shutdown();
  machine_specific_shutdown();
  autostart_shutdown();
  joystick_close();
  sound_close();
  printer_shutdown();
  gfxoutput_shutdown();
  fliplist_shutdown();
  file_system_shutdown();
  fsdevice_shutdown();
  tape_shutdown();
  traps_shutdown();
  kbdbuf_shutdown();
  keyboard_shutdown();
  monitor_shutdown();
  cmdline_shutdown();
  resources_shutdown();
  drive_shutdown();
  machine_maincpu_shutdown();
  video_shutdown();
  ui_shutdown();
  sysfile_shutdown();
  log_close_all();
  event_shutdown();
  network_shutdown();
  autostart_resources_shutdown();
  fsdevice_resources_shutdown();
  disk_image_resources_shutdown();
  machine_resources_shutdown();
  sysfile_resources_shutdown();
  zfile_shutdown();
  ui_resources_shutdown();
  log_resources_shutdown();
  fliplist_resources_shutdown();
  romset_resources_shutdown();
  archdep_shutdown();
  lib_debug_check();
}


x86 assembly (clang, -O0):
<machine_shutdown>:
push   %rbp
mov    %rsp,%rbp
mov    $0x0,%al
call   11c0 <file_system_detach_disk_shutdown@plt>
mov    $0x0,%al
call   1270 <machine_specific_shutdown@plt>
mov    $0x0,%al
call   1100 <autostart_shutdown@plt>
mov    $0x0,%al
call   1210 <joystick_close@plt>
mov    $0x0,%al
call   1040 <sound_close@plt>
mov    $0x0,%al
call   1050 <printer_shutdown@plt>
mov    $0x0,%al
call   11b0 <gfxoutput_shutdown@plt>
mov    $0x0,%al
call   1130 <fliplist_shutdown@plt>
mov    $0x0,%al
call   10f0 <file_system_shutdown@plt>
mov    $0x0,%al
call   1090 <fsdevice_shutdown@plt>
mov    $0x0,%al
call   1160 <tape_shutdown@plt>
mov    $0x0,%al
call   1080 <traps_shutdown@plt>
mov    $0x0,%al
call   11f0 <kbdbuf_shutdown@plt>
mov    $0x0,%al
call   1060 <keyboard_shutdown@plt>
mov    $0x0,%al
call   1120 <monitor_shutdown@plt>
mov    $0x0,%al
call   10c0 <cmdline_shutdown@plt>
mov    $0x0,%al
call   11a0 <resources_shutdown@plt>
mov    $0x0,%al
call   1260 <drive_shutdown@plt>
mov    $0x0,%al
call   1250 <machine_maincpu_shutdown@plt>
mov    $0x0,%al
call   10d0 <video_shutdown@plt>
mov    $0x0,%al
call   1200 <ui_shutdown@plt>
mov    $0x0,%al
call   10b0 <sysfile_shutdown@plt>
mov    $0x0,%al
call   11e0 <log_close_all@plt>
mov    $0x0,%al
call   1230 <event_shutdown@plt>
mov    $0x0,%al
call   1240 <network_shutdown@plt>
mov    $0x0,%al
call   1220 <autostart_resources_shutdown@plt>
mov    $0x0,%al
call   1110 <fsdevice_resources_shutdown@plt>
mov    $0x0,%al
call   10e0 <disk_image_resources_shutdown@plt>
mov    $0x0,%al
call   1150 <machine_resources_shutdown@plt>
mov    $0x0,%al
call   1180 <sysfile_resources_shutdown@plt>
mov    $0x0,%al
call   1070 <zfile_shutdown@plt>
mov    $0x0,%al
call   10a0 <ui_resources_shutdown@plt>
mov    $0x0,%al
call   1170 <log_resources_shutdown@plt>
mov    $0x0,%al
call   1030 <fliplist_resources_shutdown@plt>
mov    $0x0,%al
call   1190 <romset_resources_shutdown@plt>
mov    $0x0,%al
call   1140 <archdep_shutdown@plt>
mov    $0x0,%al
call   11d0 <lib_debug_check@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<machine_shutdown>:
push   %rax
xor    %eax,%eax
call   11c0 <file_system_detach_disk_shutdown@plt>
xor    %eax,%eax
call   1270 <machine_specific_shutdown@plt>
xor    %eax,%eax
call   1100 <autostart_shutdown@plt>
xor    %eax,%eax
call   1210 <joystick_close@plt>
xor    %eax,%eax
call   1040 <sound_close@plt>
xor    %eax,%eax
call   1050 <printer_shutdown@plt>
xor    %eax,%eax
call   11b0 <gfxoutput_shutdown@plt>
xor    %eax,%eax
call   1130 <fliplist_shutdown@plt>
xor    %eax,%eax
call   10f0 <file_system_shutdown@plt>
xor    %eax,%eax
call   1090 <fsdevice_shutdown@plt>
xor    %eax,%eax
call   1160 <tape_shutdown@plt>
xor    %eax,%eax
call   1080 <traps_shutdown@plt>
xor    %eax,%eax
call   11f0 <kbdbuf_shutdown@plt>
xor    %eax,%eax
call   1060 <keyboard_shutdown@plt>
xor    %eax,%eax
call   1120 <monitor_shutdown@plt>
xor    %eax,%eax
call   10c0 <cmdline_shutdown@plt>
xor    %eax,%eax
call   11a0 <resources_shutdown@plt>
xor    %eax,%eax
call   1260 <drive_shutdown@plt>
xor    %eax,%eax
call   1250 <machine_maincpu_shutdown@plt>
xor    %eax,%eax
call   10d0 <video_shutdown@plt>
xor    %eax,%eax
call   1200 <ui_shutdown@plt>
xor    %eax,%eax
call   10b0 <sysfile_shutdown@plt>
xor    %eax,%eax
call   11e0 <log_close_all@plt>
xor    %eax,%eax
call   1230 <event_shutdown@plt>
xor    %eax,%eax
call   1240 <network_shutdown@plt>
xor    %eax,%eax
call   1220 <autostart_resources_shutdown@plt>
xor    %eax,%eax
call   1110 <fsdevice_resources_shutdown@plt>
xor    %eax,%eax
call   10e0 <disk_image_resources_shutdown@plt>
xor    %eax,%eax
call   1150 <machine_resources_shutdown@plt>
xor    %eax,%eax
call   1180 <sysfile_resources_shutdown@plt>
xor    %eax,%eax
call   1070 <zfile_shutdown@plt>
xor    %eax,%eax
call   10a0 <ui_resources_shutdown@plt>
xor    %eax,%eax
call   1170 <log_resources_shutdown@plt>
xor    %eax,%eax
call   1030 <fliplist_resources_shutdown@plt>
xor    %eax,%eax
call   1190 <romset_resources_shutdown@plt>
xor    %eax,%eax
call   1140 <archdep_shutdown@plt>
xor    %eax,%eax
pop    %rcx
jmp    11d0 <lib_debug_check@plt>

LLVM IR (-O0):
define void @machine_shutdown() {
%1 = call i32 (...) @file_system_detach_disk_shutdown()
%2 = call i32 (...) @machine_specific_shutdown()
%3 = call i32 (...) @autostart_shutdown()
%4 = call i32 (...) @joystick_close()
%5 = call i32 (...) @sound_close()
%6 = call i32 (...) @printer_shutdown()
%7 = call i32 (...) @gfxoutput_shutdown()
%8 = call i32 (...) @fliplist_shutdown()
%9 = call i32 (...) @file_system_shutdown()
%10 = call i32 (...) @fsdevice_shutdown()
%11 = call i32 (...) @tape_shutdown()
%12 = call i32 (...) @traps_shutdown()
%13 = call i32 (...) @kbdbuf_shutdown()
%14 = call i32 (...) @keyboard_shutdown()
%15 = call i32 (...) @monitor_shutdown()
%16 = call i32 (...) @cmdline_shutdown()
%17 = call i32 (...) @resources_shutdown()
%18 = call i32 (...) @drive_shutdown()
%19 = call i32 (...) @machine_maincpu_shutdown()
%20 = call i32 (...) @video_shutdown()
%21 = call i32 (...) @ui_shutdown()
%22 = call i32 (...) @sysfile_shutdown()
%23 = call i32 (...) @log_close_all()
%24 = call i32 (...) @event_shutdown()
%25 = call i32 (...) @network_shutdown()
%26 = call i32 (...) @autostart_resources_shutdown()
%27 = call i32 (...) @fsdevice_resources_shutdown()
%28 = call i32 (...) @disk_image_resources_shutdown()
%29 = call i32 (...) @machine_resources_shutdown()
%30 = call i32 (...) @sysfile_resources_shutdown()
%31 = call i32 (...) @zfile_shutdown()
%32 = call i32 (...) @ui_resources_shutdown()
%33 = call i32 (...) @log_resources_shutdown()
%34 = call i32 (...) @fliplist_resources_shutdown()
%35 = call i32 (...) @romset_resources_shutdown()
%36 = call i32 (...) @archdep_shutdown()
%37 = call i32 (...) @lib_debug_check()
ret void
}

LLVM IR (-O2):
define void @machine_shutdown() {
%1 = tail call i32 (...) @file_system_detach_disk_shutdown()
%2 = tail call i32 (...) @machine_specific_shutdown()
%3 = tail call i32 (...) @autostart_shutdown()
%4 = tail call i32 (...) @joystick_close()
%5 = tail call i32 (...) @sound_close()
%6 = tail call i32 (...) @printer_shutdown()
%7 = tail call i32 (...) @gfxoutput_shutdown()
%8 = tail call i32 (...) @fliplist_shutdown()
%9 = tail call i32 (...) @file_system_shutdown()
%10 = tail call i32 (...) @fsdevice_shutdown()
%11 = tail call i32 (...) @tape_shutdown()
%12 = tail call i32 (...) @traps_shutdown()
%13 = tail call i32 (...) @kbdbuf_shutdown()
%14 = tail call i32 (...) @keyboard_shutdown()
%15 = tail call i32 (...) @monitor_shutdown()
%16 = tail call i32 (...) @cmdline_shutdown()
%17 = tail call i32 (...) @resources_shutdown()
%18 = tail call i32 (...) @drive_shutdown()
%19 = tail call i32 (...) @machine_maincpu_shutdown()
%20 = tail call i32 (...) @video_shutdown()
%21 = tail call i32 (...) @ui_shutdown()
%22 = tail call i32 (...) @sysfile_shutdown()
%23 = tail call i32 (...) @log_close_all()
%24 = tail call i32 (...) @event_shutdown()
%25 = tail call i32 (...) @network_shutdown()
%26 = tail call i32 (...) @autostart_resources_shutdown()
%27 = tail call i32 (...) @fsdevice_resources_shutdown()
%28 = tail call i32 (...) @disk_image_resources_shutdown()
%29 = tail call i32 (...) @machine_resources_shutdown()
%30 = tail call i32 (...) @sysfile_resources_shutdown()
%31 = tail call i32 (...) @zfile_shutdown()
%32 = tail call i32 (...) @ui_resources_shutdown()
%33 = tail call i32 (...) @log_resources_shutdown()
%34 = tail call i32 (...) @fliplist_resources_shutdown()
%35 = tail call i32 (...) @romset_resources_shutdown()
%36 = tail call i32 (...) @archdep_shutdown()
%37 = tail call i32 (...) @lib_debug_check()
ret void
}