#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*/ play(int, int);
int /*<<< orphan*/ set_bpm(int);
void song_play() {
  set_bpm(150);
  play(2551, 1);
  play(1517, 1);
  play(1276, 1);
  play(1136, 1);
  play(1432, 1);
  play(1276, 1);
  play(1517, 1);
  play(1911, 1);
  play(1703, 1);
  play(2025, 1);
  play(1276, 1);
  play(1351, 1);
  play(1432, 1);
  play(1607, 1);
  play(1517, 1);
  play(1276, 1);
  play(1351, 1);
  play(1432, 1);
  play(1607, 1);
  play(1517, 1);
  play(956, 1);
  play(956, 1);
  play(956, 1);
  play(2551, 1);
  play(1517, 1);
  play(1276, 1);
  play(1136, 1);
  play(1432, 1);
  play(1276, 1);
  play(1517, 1);
  play(1911, 1);
  set_bpm(180);
  play(568, 4);
  play(2273, 4);
  play(568, 4);
  play(2273, 4);
  play(568, 4);
  play(676, 4);
  play(758, 4);
  play(804, 4);
  play(851, 2);
  play(2551, 2);
  play(2025, 2);
  play(2551, 2);
  play(851, 2);
  play(2551, 2);
  play(2025, 2);
  play(2551, 2);
  play(851, 2);
  play(2551, 2);
  play(2025, 2);
  play(1276, 1);
  play(1012, 1);
  play(851, 2);
  play(2551, 2);
  play(758, 2);
  play(2551, 2);
  play(851, 2);
  play(2703, 2);
  play(2273, 2);
  play(1136, 2);
  play(676, 2);
  play(2703, 2);
  play(568, 2);
  play(2703, 2);
  play(602, 2);
  play(2703, 2);
  play(568, 2);
  play(2703, 2);
  play(602, 1);
  play(568, 1);
  play(602, 1);
  play(676, 1);
  play(851, 2);
  play(1136, 2);
  play(1012, 2);
  play(2551, 1);
  play(902, 1);
  play(851, 2);
  play(2551, 1);
  play(758, 1);
  play(676, 1);
  play(716, 1);
  play(676, 1);
  play(638, 1);
  play(568, 1);
  play(638, 1);
  play(676, 1);
  play(758, 1);
  play(851, 1);
  play(902, 1);
  play(851, 1);
  play(568, 1);
  play(902, 1);
  play(956, 1);
  play(902, 1);
  play(568, 1);
  play(902, 1);
  play(956, 1);
  play(1012, 1);
  play(1073, 1);
  play(1136, 1);
  play(1204, 1);
  play(1276, 1);
  play(1517, 1);
  play(1136, 2);
  play(2273, 2);
  play(1703, 2);
  play(2273, 2);
  play(1012, 2);
  play(2273, 2);
  play(1136, 2);
  play(2273, 2);
  play(1703, 2);
  play(851, 2);
  play(902, 2);
  play(851, 2);
  play(676, 2);
  play(2273, 2);
  play(758, 2);
  play(851, 2);
  play(1012, 2);
  play(2551, 2);
  play(1012, 2);
  play(2551, 2);
  play(758, 2);
  play(2551, 2);
  play(851, 2);
  play(2551, 2);
  play(1012, 2);
  play(1012, 2);
  play(1073, 2);
  play(1012, 2);
  play(851, 2);
  play(2551, 2);
  play(902, 2);
  play(1012, 2);
  play(1136, 2);
  play(2703, 2);
  play(2703, 2);
  play(1136, 2);
  play(2703, 2);
  play(2703, 2);
  play(568, 2);
  play(2703, 2);
}


x86 assembly (clang, -O0):
<song_play>:
push   %rbp
mov    %rsp,%rbp
mov    $0x96,%edi
call   1030 <set_bpm@plt>
mov    $0x9f7,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x5ed,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x4fc,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x470,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x598,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x4fc,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x5ed,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x777,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x6a7,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x7e9,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x4fc,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x547,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x598,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x647,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x5ed,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x4fc,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x547,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x598,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x647,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x5ed,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x3bc,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x3bc,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x3bc,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x9f7,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x5ed,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x4fc,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x470,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x598,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x4fc,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x5ed,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x777,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0xb4,%edi
call   1030 <set_bpm@plt>
mov    $0x238,%edi
mov    $0x4,%esi
call   1040 <play@plt>
mov    $0x8e1,%edi
mov    $0x4,%esi
call   1040 <play@plt>
mov    $0x238,%edi
mov    $0x4,%esi
call   1040 <play@plt>
mov    $0x8e1,%edi
mov    $0x4,%esi
call   1040 <play@plt>
mov    $0x238,%edi
mov    $0x4,%esi
call   1040 <play@plt>
mov    $0x2a4,%edi
mov    $0x4,%esi
call   1040 <play@plt>
mov    $0x2f6,%edi
mov    $0x4,%esi
call   1040 <play@plt>
mov    $0x324,%edi
mov    $0x4,%esi
call   1040 <play@plt>
mov    $0x353,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x9f7,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x7e9,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x9f7,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x353,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x9f7,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x7e9,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x9f7,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x353,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x9f7,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x7e9,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x4fc,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x3f4,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x353,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x9f7,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x2f6,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x9f7,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x353,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0xa8f,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x8e1,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x470,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x2a4,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0xa8f,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x238,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0xa8f,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x25a,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0xa8f,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x238,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0xa8f,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x25a,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x238,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x25a,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x2a4,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x353,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x470,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x3f4,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x9f7,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x386,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x353,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x9f7,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x2f6,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x2a4,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x2cc,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x2a4,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x27e,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x238,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x27e,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x2a4,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x2f6,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x353,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x386,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x353,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x238,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x386,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x3bc,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x386,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x238,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x386,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x3bc,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x3f4,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x431,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x470,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x4b4,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x4fc,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x5ed,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x470,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x8e1,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x6a7,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x8e1,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x3f4,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x8e1,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x470,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x8e1,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x6a7,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x353,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x386,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x353,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x2a4,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x8e1,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x2f6,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x353,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x3f4,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x9f7,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x3f4,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x9f7,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x2f6,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x9f7,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x353,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x9f7,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x3f4,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x3f4,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x431,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x3f4,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x353,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x9f7,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x386,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x3f4,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x470,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0xa8f,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0xa8f,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x470,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0xa8f,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0xa8f,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x238,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0xa8f,%edi
mov    $0x2,%esi
call   1040 <play@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<song_play>:
push   %rax
mov    $0x96,%edi
call   1030 <set_bpm@plt>
mov    $0x9f7,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x5ed,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x4fc,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x470,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x598,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x4fc,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x5ed,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x777,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x6a7,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x7e9,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x4fc,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x547,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x598,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x647,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x5ed,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x4fc,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x547,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x598,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x647,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x5ed,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x3bc,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x3bc,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x3bc,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x9f7,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x5ed,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x4fc,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x470,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x598,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x4fc,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x5ed,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x777,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0xb4,%edi
call   1030 <set_bpm@plt>
mov    $0x238,%edi
mov    $0x4,%esi
call   1040 <play@plt>
mov    $0x8e1,%edi
mov    $0x4,%esi
call   1040 <play@plt>
mov    $0x238,%edi
mov    $0x4,%esi
call   1040 <play@plt>
mov    $0x8e1,%edi
mov    $0x4,%esi
call   1040 <play@plt>
mov    $0x238,%edi
mov    $0x4,%esi
call   1040 <play@plt>
mov    $0x2a4,%edi
mov    $0x4,%esi
call   1040 <play@plt>
mov    $0x2f6,%edi
mov    $0x4,%esi
call   1040 <play@plt>
mov    $0x324,%edi
mov    $0x4,%esi
call   1040 <play@plt>
mov    $0x353,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x9f7,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x7e9,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x9f7,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x353,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x9f7,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x7e9,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x9f7,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x353,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x9f7,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x7e9,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x4fc,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x3f4,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x353,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x9f7,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x2f6,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x9f7,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x353,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0xa8f,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x8e1,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x470,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x2a4,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0xa8f,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x238,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0xa8f,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x25a,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0xa8f,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x238,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0xa8f,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x25a,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x238,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x25a,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x2a4,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x353,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x470,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x3f4,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x9f7,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x386,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x353,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x9f7,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x2f6,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x2a4,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x2cc,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x2a4,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x27e,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x238,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x27e,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x2a4,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x2f6,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x353,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x386,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x353,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x238,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x386,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x3bc,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x386,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x238,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x386,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x3bc,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x3f4,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x431,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x470,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x4b4,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x4fc,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x5ed,%edi
mov    $0x1,%esi
call   1040 <play@plt>
mov    $0x470,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x8e1,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x6a7,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x8e1,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x3f4,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x8e1,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x470,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x8e1,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x6a7,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x353,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x386,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x353,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x2a4,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x8e1,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x2f6,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x353,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x3f4,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x9f7,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x3f4,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x9f7,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x2f6,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x9f7,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x353,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x9f7,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x3f4,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x3f4,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x431,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x3f4,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x353,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x9f7,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x386,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x3f4,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x470,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0xa8f,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0xa8f,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x470,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0xa8f,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0xa8f,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0x238,%edi
mov    $0x2,%esi
call   1040 <play@plt>
mov    $0xa8f,%edi
mov    $0x2,%esi
pop    %rax
jmp    1040 <play@plt>

LLVM IR (-O0):
define void @song_play() {
%1 = call i32 @set_bpm(i32 150)
%2 = call i32 @play(i32 2551, i32 1)
%3 = call i32 @play(i32 1517, i32 1)
%4 = call i32 @play(i32 1276, i32 1)
%5 = call i32 @play(i32 1136, i32 1)
%6 = call i32 @play(i32 1432, i32 1)
%7 = call i32 @play(i32 1276, i32 1)
%8 = call i32 @play(i32 1517, i32 1)
%9 = call i32 @play(i32 1911, i32 1)
%10 = call i32 @play(i32 1703, i32 1)
%11 = call i32 @play(i32 2025, i32 1)
%12 = call i32 @play(i32 1276, i32 1)
%13 = call i32 @play(i32 1351, i32 1)
%14 = call i32 @play(i32 1432, i32 1)
%15 = call i32 @play(i32 1607, i32 1)
%16 = call i32 @play(i32 1517, i32 1)
%17 = call i32 @play(i32 1276, i32 1)
%18 = call i32 @play(i32 1351, i32 1)
%19 = call i32 @play(i32 1432, i32 1)
%20 = call i32 @play(i32 1607, i32 1)
%21 = call i32 @play(i32 1517, i32 1)
%22 = call i32 @play(i32 956, i32 1)
%23 = call i32 @play(i32 956, i32 1)
%24 = call i32 @play(i32 956, i32 1)
%25 = call i32 @play(i32 2551, i32 1)
%26 = call i32 @play(i32 1517, i32 1)
%27 = call i32 @play(i32 1276, i32 1)
%28 = call i32 @play(i32 1136, i32 1)
%29 = call i32 @play(i32 1432, i32 1)
%30 = call i32 @play(i32 1276, i32 1)
%31 = call i32 @play(i32 1517, i32 1)
%32 = call i32 @play(i32 1911, i32 1)
%33 = call i32 @set_bpm(i32 180)
%34 = call i32 @play(i32 568, i32 4)
%35 = call i32 @play(i32 2273, i32 4)
%36 = call i32 @play(i32 568, i32 4)
%37 = call i32 @play(i32 2273, i32 4)
%38 = call i32 @play(i32 568, i32 4)
%39 = call i32 @play(i32 676, i32 4)
%40 = call i32 @play(i32 758, i32 4)
%41 = call i32 @play(i32 804, i32 4)
%42 = call i32 @play(i32 851, i32 2)
%43 = call i32 @play(i32 2551, i32 2)
%44 = call i32 @play(i32 2025, i32 2)
%45 = call i32 @play(i32 2551, i32 2)
%46 = call i32 @play(i32 851, i32 2)
%47 = call i32 @play(i32 2551, i32 2)
%48 = call i32 @play(i32 2025, i32 2)
%49 = call i32 @play(i32 2551, i32 2)
%50 = call i32 @play(i32 851, i32 2)
%51 = call i32 @play(i32 2551, i32 2)
%52 = call i32 @play(i32 2025, i32 2)
%53 = call i32 @play(i32 1276, i32 1)
%54 = call i32 @play(i32 1012, i32 1)
%55 = call i32 @play(i32 851, i32 2)
%56 = call i32 @play(i32 2551, i32 2)
%57 = call i32 @play(i32 758, i32 2)
%58 = call i32 @play(i32 2551, i32 2)
%59 = call i32 @play(i32 851, i32 2)
%60 = call i32 @play(i32 2703, i32 2)
%61 = call i32 @play(i32 2273, i32 2)
%62 = call i32 @play(i32 1136, i32 2)
%63 = call i32 @play(i32 676, i32 2)
%64 = call i32 @play(i32 2703, i32 2)
%65 = call i32 @play(i32 568, i32 2)
%66 = call i32 @play(i32 2703, i32 2)
%67 = call i32 @play(i32 602, i32 2)
%68 = call i32 @play(i32 2703, i32 2)
%69 = call i32 @play(i32 568, i32 2)
%70 = call i32 @play(i32 2703, i32 2)
%71 = call i32 @play(i32 602, i32 1)
%72 = call i32 @play(i32 568, i32 1)
%73 = call i32 @play(i32 602, i32 1)
%74 = call i32 @play(i32 676, i32 1)
%75 = call i32 @play(i32 851, i32 2)
%76 = call i32 @play(i32 1136, i32 2)
%77 = call i32 @play(i32 1012, i32 2)
%78 = call i32 @play(i32 2551, i32 1)
%79 = call i32 @play(i32 902, i32 1)
%80 = call i32 @play(i32 851, i32 2)
%81 = call i32 @play(i32 2551, i32 1)
%82 = call i32 @play(i32 758, i32 1)
%83 = call i32 @play(i32 676, i32 1)
%84 = call i32 @play(i32 716, i32 1)
%85 = call i32 @play(i32 676, i32 1)
%86 = call i32 @play(i32 638, i32 1)
%87 = call i32 @play(i32 568, i32 1)
%88 = call i32 @play(i32 638, i32 1)
%89 = call i32 @play(i32 676, i32 1)
%90 = call i32 @play(i32 758, i32 1)
%91 = call i32 @play(i32 851, i32 1)
%92 = call i32 @play(i32 902, i32 1)
%93 = call i32 @play(i32 851, i32 1)
%94 = call i32 @play(i32 568, i32 1)
%95 = call i32 @play(i32 902, i32 1)
%96 = call i32 @play(i32 956, i32 1)
%97 = call i32 @play(i32 902, i32 1)
%98 = call i32 @play(i32 568, i32 1)
%99 = call i32 @play(i32 902, i32 1)
%100 = call i32 @play(i32 956, i32 1)
%101 = call i32 @play(i32 1012, i32 1)
%102 = call i32 @play(i32 1073, i32 1)
%103 = call i32 @play(i32 1136, i32 1)
%104 = call i32 @play(i32 1204, i32 1)
%105 = call i32 @play(i32 1276, i32 1)
%106 = call i32 @play(i32 1517, i32 1)
%107 = call i32 @play(i32 1136, i32 2)
%108 = call i32 @play(i32 2273, i32 2)
%109 = call i32 @play(i32 1703, i32 2)
%110 = call i32 @play(i32 2273, i32 2)
%111 = call i32 @play(i32 1012, i32 2)
%112 = call i32 @play(i32 2273, i32 2)
%113 = call i32 @play(i32 1136, i32 2)
%114 = call i32 @play(i32 2273, i32 2)
%115 = call i32 @play(i32 1703, i32 2)
%116 = call i32 @play(i32 851, i32 2)
%117 = call i32 @play(i32 902, i32 2)
%118 = call i32 @play(i32 851, i32 2)
%119 = call i32 @play(i32 676, i32 2)
%120 = call i32 @play(i32 2273, i32 2)
%121 = call i32 @play(i32 758, i32 2)
%122 = call i32 @play(i32 851, i32 2)
%123 = call i32 @play(i32 1012, i32 2)
%124 = call i32 @play(i32 2551, i32 2)
%125 = call i32 @play(i32 1012, i32 2)
%126 = call i32 @play(i32 2551, i32 2)
%127 = call i32 @play(i32 758, i32 2)
%128 = call i32 @play(i32 2551, i32 2)
%129 = call i32 @play(i32 851, i32 2)
%130 = call i32 @play(i32 2551, i32 2)
%131 = call i32 @play(i32 1012, i32 2)
%132 = call i32 @play(i32 1012, i32 2)
%133 = call i32 @play(i32 1073, i32 2)
%134 = call i32 @play(i32 1012, i32 2)
%135 = call i32 @play(i32 851, i32 2)
%136 = call i32 @play(i32 2551, i32 2)
%137 = call i32 @play(i32 902, i32 2)
%138 = call i32 @play(i32 1012, i32 2)
%139 = call i32 @play(i32 1136, i32 2)
%140 = call i32 @play(i32 2703, i32 2)
%141 = call i32 @play(i32 2703, i32 2)
%142 = call i32 @play(i32 1136, i32 2)
%143 = call i32 @play(i32 2703, i32 2)
%144 = call i32 @play(i32 2703, i32 2)
%145 = call i32 @play(i32 568, i32 2)
%146 = call i32 @play(i32 2703, i32 2)
ret void
}

LLVM IR (-O2):
define void @song_play() {
%1 = tail call i32 @set_bpm(i32 150)
%2 = tail call i32 @play(i32 2551, i32 1)
%3 = tail call i32 @play(i32 1517, i32 1)
%4 = tail call i32 @play(i32 1276, i32 1)
%5 = tail call i32 @play(i32 1136, i32 1)
%6 = tail call i32 @play(i32 1432, i32 1)
%7 = tail call i32 @play(i32 1276, i32 1)
%8 = tail call i32 @play(i32 1517, i32 1)
%9 = tail call i32 @play(i32 1911, i32 1)
%10 = tail call i32 @play(i32 1703, i32 1)
%11 = tail call i32 @play(i32 2025, i32 1)
%12 = tail call i32 @play(i32 1276, i32 1)
%13 = tail call i32 @play(i32 1351, i32 1)
%14 = tail call i32 @play(i32 1432, i32 1)
%15 = tail call i32 @play(i32 1607, i32 1)
%16 = tail call i32 @play(i32 1517, i32 1)
%17 = tail call i32 @play(i32 1276, i32 1)
%18 = tail call i32 @play(i32 1351, i32 1)
%19 = tail call i32 @play(i32 1432, i32 1)
%20 = tail call i32 @play(i32 1607, i32 1)
%21 = tail call i32 @play(i32 1517, i32 1)
%22 = tail call i32 @play(i32 956, i32 1)
%23 = tail call i32 @play(i32 956, i32 1)
%24 = tail call i32 @play(i32 956, i32 1)
%25 = tail call i32 @play(i32 2551, i32 1)
%26 = tail call i32 @play(i32 1517, i32 1)
%27 = tail call i32 @play(i32 1276, i32 1)
%28 = tail call i32 @play(i32 1136, i32 1)
%29 = tail call i32 @play(i32 1432, i32 1)
%30 = tail call i32 @play(i32 1276, i32 1)
%31 = tail call i32 @play(i32 1517, i32 1)
%32 = tail call i32 @play(i32 1911, i32 1)
%33 = tail call i32 @set_bpm(i32 180)
%34 = tail call i32 @play(i32 568, i32 4)
%35 = tail call i32 @play(i32 2273, i32 4)
%36 = tail call i32 @play(i32 568, i32 4)
%37 = tail call i32 @play(i32 2273, i32 4)
%38 = tail call i32 @play(i32 568, i32 4)
%39 = tail call i32 @play(i32 676, i32 4)
%40 = tail call i32 @play(i32 758, i32 4)
%41 = tail call i32 @play(i32 804, i32 4)
%42 = tail call i32 @play(i32 851, i32 2)
%43 = tail call i32 @play(i32 2551, i32 2)
%44 = tail call i32 @play(i32 2025, i32 2)
%45 = tail call i32 @play(i32 2551, i32 2)
%46 = tail call i32 @play(i32 851, i32 2)
%47 = tail call i32 @play(i32 2551, i32 2)
%48 = tail call i32 @play(i32 2025, i32 2)
%49 = tail call i32 @play(i32 2551, i32 2)
%50 = tail call i32 @play(i32 851, i32 2)
%51 = tail call i32 @play(i32 2551, i32 2)
%52 = tail call i32 @play(i32 2025, i32 2)
%53 = tail call i32 @play(i32 1276, i32 1)
%54 = tail call i32 @play(i32 1012, i32 1)
%55 = tail call i32 @play(i32 851, i32 2)
%56 = tail call i32 @play(i32 2551, i32 2)
%57 = tail call i32 @play(i32 758, i32 2)
%58 = tail call i32 @play(i32 2551, i32 2)
%59 = tail call i32 @play(i32 851, i32 2)
%60 = tail call i32 @play(i32 2703, i32 2)
%61 = tail call i32 @play(i32 2273, i32 2)
%62 = tail call i32 @play(i32 1136, i32 2)
%63 = tail call i32 @play(i32 676, i32 2)
%64 = tail call i32 @play(i32 2703, i32 2)
%65 = tail call i32 @play(i32 568, i32 2)
%66 = tail call i32 @play(i32 2703, i32 2)
%67 = tail call i32 @play(i32 602, i32 2)
%68 = tail call i32 @play(i32 2703, i32 2)
%69 = tail call i32 @play(i32 568, i32 2)
%70 = tail call i32 @play(i32 2703, i32 2)
%71 = tail call i32 @play(i32 602, i32 1)
%72 = tail call i32 @play(i32 568, i32 1)
%73 = tail call i32 @play(i32 602, i32 1)
%74 = tail call i32 @play(i32 676, i32 1)
%75 = tail call i32 @play(i32 851, i32 2)
%76 = tail call i32 @play(i32 1136, i32 2)
%77 = tail call i32 @play(i32 1012, i32 2)
%78 = tail call i32 @play(i32 2551, i32 1)
%79 = tail call i32 @play(i32 902, i32 1)
%80 = tail call i32 @play(i32 851, i32 2)
%81 = tail call i32 @play(i32 2551, i32 1)
%82 = tail call i32 @play(i32 758, i32 1)
%83 = tail call i32 @play(i32 676, i32 1)
%84 = tail call i32 @play(i32 716, i32 1)
%85 = tail call i32 @play(i32 676, i32 1)
%86 = tail call i32 @play(i32 638, i32 1)
%87 = tail call i32 @play(i32 568, i32 1)
%88 = tail call i32 @play(i32 638, i32 1)
%89 = tail call i32 @play(i32 676, i32 1)
%90 = tail call i32 @play(i32 758, i32 1)
%91 = tail call i32 @play(i32 851, i32 1)
%92 = tail call i32 @play(i32 902, i32 1)
%93 = tail call i32 @play(i32 851, i32 1)
%94 = tail call i32 @play(i32 568, i32 1)
%95 = tail call i32 @play(i32 902, i32 1)
%96 = tail call i32 @play(i32 956, i32 1)
%97 = tail call i32 @play(i32 902, i32 1)
%98 = tail call i32 @play(i32 568, i32 1)
%99 = tail call i32 @play(i32 902, i32 1)
%100 = tail call i32 @play(i32 956, i32 1)
%101 = tail call i32 @play(i32 1012, i32 1)
%102 = tail call i32 @play(i32 1073, i32 1)
%103 = tail call i32 @play(i32 1136, i32 1)
%104 = tail call i32 @play(i32 1204, i32 1)
%105 = tail call i32 @play(i32 1276, i32 1)
%106 = tail call i32 @play(i32 1517, i32 1)
%107 = tail call i32 @play(i32 1136, i32 2)
%108 = tail call i32 @play(i32 2273, i32 2)
%109 = tail call i32 @play(i32 1703, i32 2)
%110 = tail call i32 @play(i32 2273, i32 2)
%111 = tail call i32 @play(i32 1012, i32 2)
%112 = tail call i32 @play(i32 2273, i32 2)
%113 = tail call i32 @play(i32 1136, i32 2)
%114 = tail call i32 @play(i32 2273, i32 2)
%115 = tail call i32 @play(i32 1703, i32 2)
%116 = tail call i32 @play(i32 851, i32 2)
%117 = tail call i32 @play(i32 902, i32 2)
%118 = tail call i32 @play(i32 851, i32 2)
%119 = tail call i32 @play(i32 676, i32 2)
%120 = tail call i32 @play(i32 2273, i32 2)
%121 = tail call i32 @play(i32 758, i32 2)
%122 = tail call i32 @play(i32 851, i32 2)
%123 = tail call i32 @play(i32 1012, i32 2)
%124 = tail call i32 @play(i32 2551, i32 2)
%125 = tail call i32 @play(i32 1012, i32 2)
%126 = tail call i32 @play(i32 2551, i32 2)
%127 = tail call i32 @play(i32 758, i32 2)
%128 = tail call i32 @play(i32 2551, i32 2)
%129 = tail call i32 @play(i32 851, i32 2)
%130 = tail call i32 @play(i32 2551, i32 2)
%131 = tail call i32 @play(i32 1012, i32 2)
%132 = tail call i32 @play(i32 1012, i32 2)
%133 = tail call i32 @play(i32 1073, i32 2)
%134 = tail call i32 @play(i32 1012, i32 2)
%135 = tail call i32 @play(i32 851, i32 2)
%136 = tail call i32 @play(i32 2551, i32 2)
%137 = tail call i32 @play(i32 902, i32 2)
%138 = tail call i32 @play(i32 1012, i32 2)
%139 = tail call i32 @play(i32 1136, i32 2)
%140 = tail call i32 @play(i32 2703, i32 2)
%141 = tail call i32 @play(i32 2703, i32 2)
%142 = tail call i32 @play(i32 1136, i32 2)
%143 = tail call i32 @play(i32 2703, i32 2)
%144 = tail call i32 @play(i32 2703, i32 2)
%145 = tail call i32 @play(i32 568, i32 2)
%146 = tail call i32 @play(i32 2703, i32 2)
ret void
}