#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 */
typedef int /*<<< orphan*/ part8;
typedef int /*<<< orphan*/ part7;
typedef int /*<<< orphan*/ part6;
typedef int /*<<< orphan*/ part5;
typedef int /*<<< orphan*/ part4;
typedef int /*<<< orphan*/ part3;
typedef int /*<<< orphan*/ part2;
typedef int /*<<< orphan*/ part1;

/* Variables and functions */
int biscDefineSong(int, unsigned char *, unsigned char *, int);
int biscPlaySong(int);
int /*<<< orphan*/ usleep(int);
int biscPlayFireflies(void) {
  unsigned char part1[] = {58, 70, 86, 58, 70, 82, 75,
                           63, 75, 77, 75, 77, 82, 75};
  unsigned char part1d[] = {10, 10, 10, 10, 10, 20, 10,
                            10, 10, 10, 10, 10, 20, 10};
  unsigned char part2[] = {56, 72, 70, 72, 75, 63, 56,
                           70, 72, 70, 60, 70, 75, 77};
  unsigned char part2d[] = {20, 10, 10, 10, 10, 10, 20,
                            10, 10, 10, 10, 10, 10, 10};
  unsigned char part3[] = {56, 77, 86, 74, 65, 82, 75, 63,
                           70, 77, 75, 80, 79, 75, 70};
  unsigned char part3d[] = {10, 10, 10, 10, 10, 20, 10, 10,
                            10, 10, 10, 10, 10, 10, 10};
  unsigned char part4[] = {56, 72, 63, 56, 70, 63, 72, 56, 72, 70, 60, 75, 77};
  unsigned char part4d[] = {20, 10, 10, 10, 20, 10, 10, 10, 10, 10, 10, 10, 20};
  unsigned char part5[] = {74, 70, 65, 74, 70, 72};
  unsigned char part5d[] = {30, 30, 20, 30, 30, 20};
  unsigned char part6[] = {56, 72, 70, 72, 75, 70, 56, 72, 75, 60, 77};
  unsigned char part6d[] = {20, 10, 10, 10, 10, 10, 10, 30, 10, 20, 20};
  unsigned char part7[] = {56, 63, 70, 70, 79, 77, 75};
  unsigned char part7d[] = {40, 10, 10, 20, 30, 30, 20};
  unsigned char part8[] = {56, 72, 63, 56, 70, 63, 72,
                           56, 72, 70, 60, 75, 77, 75};
  unsigned char part8d[] = {20, 10, 10, 10, 20, 10, 10,
                            10, 10, 10, 10, 10, 10, 10};
  if (biscDefineSong(1, part1, part1d, sizeof(part1)) == -1)
    return -1;
  if (biscDefineSong(2, part2, part2d, sizeof(part2)) == -1)
    return -1;
  if (biscDefineSong(3, part3, part3d, sizeof(part3)) == -1)
    return -1;
  if (biscDefineSong(4, part4, part4d, sizeof(part4)) == -1)
    return -1;
  if (biscDefineSong(5, part5, part5d, sizeof(part5)) == -1)
    return -1;
  if (biscDefineSong(6, part6, part6d, sizeof(part6)) == -1)
    return -1;
  if (biscDefineSong(7, part7, part7d, sizeof(part7)) == -1)
    return -1;
  if (biscDefineSong(8, part8, part8d, sizeof(part8)) == -1)
    return -1;
  if (biscPlaySong(1) == -1)
    return -1;
  usleep(2405 * 1000);
  if (biscPlaySong(2) == -1)
    return -1;
  usleep(2410 * 1000);
  if (biscPlaySong(3) == -1)
    return -1;
  usleep(2405 * 1000);
  if (biscPlaySong(4) == -1)
    return -1;
  usleep(2445 * 1000);
  if (biscPlaySong(5) == -1)
    return -1;
  usleep(2475 * 1000);
  if (biscPlaySong(6) == -1)
    return -1;
  usleep(2435 * 1000);
  if (biscPlaySong(7) == -1)
    return -1;
  usleep(2445 * 1000);
  if (biscPlaySong(8) == -1)
    return -1;
  usleep(2445 * 1000);
  return 0;
}


x86 assembly (clang, -O0):
<biscPlayFireflies>:
push   %rbp
mov    %rsp,%rbp
sub    $0xc0,%rsp
mov    0xebe(%rip),%rax
mov    %rax,-0x12(%rbp)
mov    0xebc(%rip),%eax
mov    %eax,-0xa(%rbp)
mov    0xeb6(%rip),%ax
mov    %ax,-0x6(%rbp)
mov    0xead(%rip),%rax
mov    %rax,-0x20(%rbp)
mov    0xeab(%rip),%eax
mov    %eax,-0x18(%rbp)
mov    0xea5(%rip),%ax
mov    %ax,-0x14(%rbp)
mov    0xe9c(%rip),%rax
mov    %rax,-0x2e(%rbp)
mov    0xe9a(%rip),%eax
mov    %eax,-0x26(%rbp)
mov    0xe94(%rip),%ax
mov    %ax,-0x22(%rbp)
mov    0xe8b(%rip),%rax
mov    %rax,-0x3c(%rbp)
mov    0xe89(%rip),%eax
mov    %eax,-0x34(%rbp)
mov    0xe83(%rip),%ax
mov    %ax,-0x30(%rbp)
mov    0xe7a(%rip),%rax
mov    %rax,-0x4b(%rbp)
mov    0xe78(%rip),%eax
mov    %eax,-0x43(%rbp)
mov    0xe72(%rip),%ax
mov    %ax,-0x3f(%rbp)
mov    0xe6a(%rip),%al
mov    %al,-0x3d(%rbp)
mov    0xe61(%rip),%rax
mov    %rax,-0x5a(%rbp)
mov    0xe5f(%rip),%eax
mov    %eax,-0x52(%rbp)
mov    0xe59(%rip),%ax
mov    %ax,-0x4e(%rbp)
mov    0xe51(%rip),%al
mov    %al,-0x4c(%rbp)
mov    0xe48(%rip),%rax
mov    %rax,-0x67(%rbp)
mov    0xe46(%rip),%eax
mov    %eax,-0x5f(%rbp)
mov    0xe41(%rip),%al
mov    %al,-0x5b(%rbp)
mov    0xe38(%rip),%rax
mov    %rax,-0x74(%rbp)
mov    0xe36(%rip),%eax
mov    %eax,-0x6c(%rbp)
mov    0xe31(%rip),%al
mov    %al,-0x68(%rbp)
mov    0xe29(%rip),%eax
mov    %eax,-0x7a(%rbp)
mov    0xe23(%rip),%ax
mov    %ax,-0x76(%rbp)
mov    0xe1b(%rip),%eax
mov    %eax,-0x80(%rbp)
mov    0xe15(%rip),%ax
mov    %ax,-0x7c(%rbp)
mov    0xe0c(%rip),%rax
mov    %rax,-0x8b(%rbp)
mov    0xe06(%rip),%ax
mov    %ax,-0x83(%rbp)
mov    0xdfb(%rip),%al
mov    %al,-0x81(%rbp)
mov    0xdef(%rip),%rax
mov    %rax,-0x96(%rbp)
mov    0xde9(%rip),%ax
mov    %ax,-0x8e(%rbp)
mov    0xdde(%rip),%al
mov    %al,-0x8c(%rbp)
mov    0xdd3(%rip),%eax
mov    %eax,-0x9d(%rbp)
mov    0xdca(%rip),%ax
mov    %ax,-0x99(%rbp)
mov    0xdbf(%rip),%al
mov    %al,-0x97(%rbp)
mov    0xdb4(%rip),%eax
mov    %eax,-0xa4(%rbp)
mov    0xdab(%rip),%ax
mov    %ax,-0xa0(%rbp)
mov    0xda0(%rip),%al
mov    %al,-0x9e(%rbp)
mov    0xd94(%rip),%rax
mov    %rax,-0xb2(%rbp)
mov    0xd8f(%rip),%eax
mov    %eax,-0xaa(%rbp)
mov    0xd86(%rip),%ax
mov    %ax,-0xa6(%rbp)
mov    0xd7a(%rip),%rax
mov    %rax,-0xc0(%rbp)
mov    0xd75(%rip),%eax
mov    %eax,-0xb8(%rbp)
mov    0xd6c(%rip),%ax
mov    %ax,-0xb4(%rbp)
lea    -0x12(%rbp),%rsi
lea    -0x20(%rbp),%rdx
mov    $0x1,%edi
mov    $0xe,%ecx
call   1030 <biscDefineSong@plt>
cmp    $0xffffffff,%eax
jne    1381 <biscPlayFireflies+0x251>
movl   $0xffffffff,-0x4(%rbp)
jmp    1613 <biscPlayFireflies+0x4e3>
lea    -0x2e(%rbp),%rsi
lea    -0x3c(%rbp),%rdx
mov    $0x2,%edi
mov    $0xe,%ecx
call   1030 <biscDefineSong@plt>
cmp    $0xffffffff,%eax
jne    13ad <biscPlayFireflies+0x27d>
movl   $0xffffffff,-0x4(%rbp)
jmp    1613 <biscPlayFireflies+0x4e3>
lea    -0x4b(%rbp),%rsi
lea    -0x5a(%rbp),%rdx
mov    $0x3,%edi
mov    $0xf,%ecx
call   1030 <biscDefineSong@plt>
cmp    $0xffffffff,%eax
jne    13d9 <biscPlayFireflies+0x2a9>
movl   $0xffffffff,-0x4(%rbp)
jmp    1613 <biscPlayFireflies+0x4e3>
lea    -0x67(%rbp),%rsi
lea    -0x74(%rbp),%rdx
mov    $0x4,%edi
mov    $0xd,%ecx
call   1030 <biscDefineSong@plt>
cmp    $0xffffffff,%eax
jne    1405 <biscPlayFireflies+0x2d5>
movl   $0xffffffff,-0x4(%rbp)
jmp    1613 <biscPlayFireflies+0x4e3>
lea    -0x7a(%rbp),%rsi
lea    -0x80(%rbp),%rdx
mov    $0x5,%edi
mov    $0x6,%ecx
call   1030 <biscDefineSong@plt>
cmp    $0xffffffff,%eax
jne    1431 <biscPlayFireflies+0x301>
movl   $0xffffffff,-0x4(%rbp)
jmp    1613 <biscPlayFireflies+0x4e3>
lea    -0x8b(%rbp),%rsi
lea    -0x96(%rbp),%rdx
mov    $0x6,%edi
mov    $0xb,%ecx
call   1030 <biscDefineSong@plt>
cmp    $0xffffffff,%eax
jne    1463 <biscPlayFireflies+0x333>
movl   $0xffffffff,-0x4(%rbp)
jmp    1613 <biscPlayFireflies+0x4e3>
lea    -0x9d(%rbp),%rsi
lea    -0xa4(%rbp),%rdx
mov    $0x7,%ecx
mov    %ecx,%edi
call   1030 <biscDefineSong@plt>
cmp    $0xffffffff,%eax
jne    1492 <biscPlayFireflies+0x362>
movl   $0xffffffff,-0x4(%rbp)
jmp    1613 <biscPlayFireflies+0x4e3>
lea    -0xb2(%rbp),%rsi
lea    -0xc0(%rbp),%rdx
mov    $0x8,%edi
mov    $0xe,%ecx
call   1030 <biscDefineSong@plt>
cmp    $0xffffffff,%eax
jne    14c4 <biscPlayFireflies+0x394>
movl   $0xffffffff,-0x4(%rbp)
jmp    1613 <biscPlayFireflies+0x4e3>
mov    $0x1,%edi
call   1040 <biscPlaySong@plt>
cmp    $0xffffffff,%eax
jne    14e3 <biscPlayFireflies+0x3b3>
movl   $0xffffffff,-0x4(%rbp)
jmp    1613 <biscPlayFireflies+0x4e3>
mov    $0x24b288,%edi
call   1050 <usleep@plt>
mov    $0x2,%edi
call   1040 <biscPlaySong@plt>
cmp    $0xffffffff,%eax
jne    150c <biscPlayFireflies+0x3dc>
movl   $0xffffffff,-0x4(%rbp)
jmp    1613 <biscPlayFireflies+0x4e3>
mov    $0x24c610,%edi
call   1050 <usleep@plt>
mov    $0x3,%edi
call   1040 <biscPlaySong@plt>
cmp    $0xffffffff,%eax
jne    1535 <biscPlayFireflies+0x405>
movl   $0xffffffff,-0x4(%rbp)
jmp    1613 <biscPlayFireflies+0x4e3>
mov    $0x24b288,%edi
call   1050 <usleep@plt>
mov    $0x4,%edi
call   1040 <biscPlaySong@plt>
cmp    $0xffffffff,%eax
jne    155e <biscPlayFireflies+0x42e>
movl   $0xffffffff,-0x4(%rbp)
jmp    1613 <biscPlayFireflies+0x4e3>
mov    $0x254ec8,%edi
call   1050 <usleep@plt>
mov    $0x5,%edi
call   1040 <biscPlaySong@plt>
cmp    $0xffffffff,%eax
jne    1587 <biscPlayFireflies+0x457>
movl   $0xffffffff,-0x4(%rbp)
jmp    1613 <biscPlayFireflies+0x4e3>
mov    $0x25c3f8,%edi
call   1050 <usleep@plt>
mov    $0x6,%edi
call   1040 <biscPlaySong@plt>
cmp    $0xffffffff,%eax
jne    15b0 <biscPlayFireflies+0x480>
movl   $0xffffffff,-0x4(%rbp)
jmp    1613 <biscPlayFireflies+0x4e3>
mov    $0x2527b8,%edi
call   1050 <usleep@plt>
mov    $0x7,%edi
call   1040 <biscPlaySong@plt>
cmp    $0xffffffff,%eax
jne    15d9 <biscPlayFireflies+0x4a9>
movl   $0xffffffff,-0x4(%rbp)
jmp    1613 <biscPlayFireflies+0x4e3>
mov    $0x254ec8,%edi
call   1050 <usleep@plt>
mov    $0x8,%edi
call   1040 <biscPlaySong@plt>
cmp    $0xffffffff,%eax
jne    1602 <biscPlayFireflies+0x4d2>
movl   $0xffffffff,-0x4(%rbp)
jmp    1613 <biscPlayFireflies+0x4e3>
mov    $0x254ec8,%edi
call   1050 <usleep@plt>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0xc0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<biscPlayFireflies>:
push   %rbx
sub    $0xe0,%rsp
movabs $0x4b524d4b4d4b3f4b,%rax
4d 52 4b
mov    %rax,0xb6(%rsp)
movabs $0x3f4b52463a56463a,%rax
52 4b 3f
mov    %rax,0xb0(%rsp)
movabs $0xa140a0a0a0a0a0a,%rax
0a 14 0a
mov    %rax,0xa6(%rsp)
movabs $0xa0a140a0a0a0a0a,%rax
14 0a 0a
mov    %rax,0xa0(%rsp)
movabs $0x4d4b463c46484638,%rcx
46 4b 4d
mov    %rcx,0x96(%rsp)
movabs $0x46383f4b48464838,%rcx
3f 38 46
mov    %rcx,0x90(%rsp)
movabs $0xa0a0a0a0a0a0a14,%rcx
0a 0a 0a
mov    %rcx,0x86(%rsp)
movabs $0xa140a0a0a0a0a14,%rcx
0a 14 0a
mov    %rcx,0x80(%rsp)
movabs $0x464b4f504b4d463f,%rcx
4f 4b 46
mov    %rcx,0xd7(%rsp)
movabs $0x3f4b52414a564d38,%rcx
52 4b 3f
mov    %rcx,0xd0(%rsp)
movabs $0xa0a0a0a0a0a0a0a,%rcx
0a 0a 0a
mov    %rcx,0xc7(%rsp)
mov    %rax,0xc0(%rsp)
movabs $0x4d4b3c464838483f,%rax
3c 4b 4d
mov    %rax,0x55(%rsp)
movabs $0x38483f46383f4838,%rax
3f 48 38
mov    %rax,0x50(%rsp)
movabs $0x140a0a0a0a0a0a0a,%rdx
0a 0a 14
mov    %rdx,0x45(%rsp)
movabs $0xa0a0a140a0a0a14,%rdx
0a 0a 0a
mov    %rdx,0x40(%rsp)
movw   $0x4846,0xc(%rsp)
movl   $0x4a41464a,0x8(%rsp)
4a
movw   $0x141e,0x4(%rsp)
movl   $0x1e141e1e,(%rsp)
movabs $0x4838464b48464838,%rsi
46 38 48
mov    %rsi,0x30(%rsp)
movl   $0x4d3c4b48,0x37(%rsp)
4d
movabs $0x1e0a0a0a0a0a0a14,%rsi
0a 0a 1e
mov    %rsi,0x20(%rsp)
movl   $0x14140a1e,0x27(%rsp)
14
movl   $0x4b4d4f46,0x1b(%rsp)
4b
movl   $0x46463f38,0x18(%rsp)
46
movl   $0x141e1e14,0x13(%rsp)
14
movl   $0x140a0a28,0x10(%rsp)
14
movabs $0x4b4d4b3c46483848,%rsi
4b 4d 4b
mov    %rsi,0x76(%rsp)
mov    %rax,0x70(%rsp)
mov    %rcx,0x66(%rsp)
mov    %rdx,0x60(%rsp)
lea    0xb0(%rsp),%rsi
lea    0xa0(%rsp),%rdx
mov    $0x1,%edi
mov    $0xe,%ecx
call   1030 <biscDefineSong@plt>
mov    $0xffffffff,%ebx
cmp    $0xffffffff,%eax
je     14c6 <biscPlayFireflies+0x396>
lea    0x90(%rsp),%rsi
lea    0x80(%rsp),%rdx
mov    $0x2,%edi
mov    $0xe,%ecx
call   1030 <biscDefineSong@plt>
cmp    $0xffffffff,%eax
je     14c6 <biscPlayFireflies+0x396>
lea    0xd0(%rsp),%rsi
lea    0xc0(%rsp),%rdx
mov    $0x3,%edi
mov    $0xf,%ecx
call   1030 <biscDefineSong@plt>
cmp    $0xffffffff,%eax
je     14c6 <biscPlayFireflies+0x396>
lea    0x50(%rsp),%rsi
lea    0x40(%rsp),%rdx
mov    $0x4,%edi
mov    $0xd,%ecx
call   1030 <biscDefineSong@plt>
cmp    $0xffffffff,%eax
je     14c6 <biscPlayFireflies+0x396>
lea    0x8(%rsp),%rsi
mov    %rsp,%rdx
mov    $0x5,%edi
mov    $0x6,%ecx
call   1030 <biscDefineSong@plt>
cmp    $0xffffffff,%eax
je     14c6 <biscPlayFireflies+0x396>
lea    0x30(%rsp),%rsi
lea    0x20(%rsp),%rdx
mov    $0x6,%edi
mov    $0xb,%ecx
call   1030 <biscDefineSong@plt>
cmp    $0xffffffff,%eax
je     14c6 <biscPlayFireflies+0x396>
lea    0x18(%rsp),%rsi
lea    0x10(%rsp),%rdx
mov    $0x7,%edi
mov    $0x7,%ecx
call   1030 <biscDefineSong@plt>
cmp    $0xffffffff,%eax
je     14c6 <biscPlayFireflies+0x396>
lea    0x70(%rsp),%rsi
lea    0x60(%rsp),%rdx
mov    $0x8,%edi
mov    $0xe,%ecx
call   1030 <biscDefineSong@plt>
cmp    $0xffffffff,%eax
je     14c6 <biscPlayFireflies+0x396>
mov    $0x1,%edi
call   1040 <biscPlaySong@plt>
cmp    $0xffffffff,%eax
je     14c6 <biscPlayFireflies+0x396>
mov    $0x24b288,%edi
call   1050 <usleep@plt>
mov    $0x2,%edi
call   1040 <biscPlaySong@plt>
cmp    $0xffffffff,%eax
je     14c6 <biscPlayFireflies+0x396>
mov    $0x24c610,%edi
call   1050 <usleep@plt>
mov    $0x3,%edi
call   1040 <biscPlaySong@plt>
cmp    $0xffffffff,%eax
je     14c6 <biscPlayFireflies+0x396>
mov    $0x24b288,%edi
call   1050 <usleep@plt>
mov    $0x4,%edi
call   1040 <biscPlaySong@plt>
cmp    $0xffffffff,%eax
je     14c6 <biscPlayFireflies+0x396>
mov    $0x254ec8,%edi
call   1050 <usleep@plt>
mov    $0x5,%edi
call   1040 <biscPlaySong@plt>
cmp    $0xffffffff,%eax
je     14c6 <biscPlayFireflies+0x396>
mov    $0x25c3f8,%edi
call   1050 <usleep@plt>
mov    $0x6,%edi
call   1040 <biscPlaySong@plt>
cmp    $0xffffffff,%eax
je     14c6 <biscPlayFireflies+0x396>
mov    $0x2527b8,%edi
call   1050 <usleep@plt>
mov    $0x7,%edi
call   1040 <biscPlaySong@plt>
cmp    $0xffffffff,%eax
je     14c6 <biscPlayFireflies+0x396>
mov    $0x254ec8,%edi
call   1050 <usleep@plt>
mov    $0x8,%edi
call   1040 <biscPlaySong@plt>
cmp    $0xffffffff,%eax
je     14c6 <biscPlayFireflies+0x396>
mov    $0x254ec8,%edi
call   1050 <usleep@plt>
xor    %ebx,%ebx
mov    %ebx,%eax
add    $0xe0,%rsp
pop    %rbx
ret

LLVM IR (-O0):
@__const.biscPlayFireflies.part1 = [14 x i8] c":FV:FRK?KMKMRK"
@__const.biscPlayFireflies.part1d = [14 x i8] c"\0A\0A\0A\0A\0A\14\0A\0A\0A\0A\0A\0A\14\0A"
@__const.biscPlayFireflies.part2 = [14 x i8] c"8HFHK?8FHF<FKM"
@__const.biscPlayFireflies.part2d = [14 x i8] c"\14\0A\0A\0A\0A\0A\14\0A\0A\0A\0A\0A\0A\0A"
@__const.biscPlayFireflies.part3 = [15 x i8] c"8MVJARK?FMKPOKF"
@__const.biscPlayFireflies.part3d = [15 x i8] c"\0A\0A\0A\0A\0A\14\0A\0A\0A\0A\0A\0A\0A\0A\0A"
@__const.biscPlayFireflies.part4 = [13 x i8] c"8H?8F?H8HF<KM"
@__const.biscPlayFireflies.part4d = [13 x i8] c"\14\0A\0A\0A\14\0A\0A\0A\0A\0A\0A\0A\14"
@__const.biscPlayFireflies.part5 = [6 x i8] c"JFAJFH"
@__const.biscPlayFireflies.part5d = [6 x i8] c"\1E\1E\14\1E\1E\14"
@__const.biscPlayFireflies.part6 = [11 x i8] c"8HFHKF8HK<M"
@__const.biscPlayFireflies.part6d = [11 x i8] c"\14\0A\0A\0A\0A\0A\0A\1E\0A\14\14"
@__const.biscPlayFireflies.part7 = [7 x i8] c"8?FFOMK"
@__const.biscPlayFireflies.part7d = [7 x i8] c"(\0A\0A\14\1E\1E\14"
@__const.biscPlayFireflies.part8 = [14 x i8] c"8H?8F?H8HF<KMK"
@__const.biscPlayFireflies.part8d = [14 x i8] c"\14\0A\0A\0A\14\0A\0A\0A\0A\0A\0A\0A\0A\0A"
define i32 @biscPlayFireflies() {
%1 = alloca i32
%2 = alloca [14 x i8]
%3 = alloca [14 x i8]
%4 = alloca [14 x i8]
%5 = alloca [14 x i8]
%6 = alloca [15 x i8]
%7 = alloca [15 x i8]
%8 = alloca [13 x i8]
%9 = alloca [13 x i8]
%10 = alloca [6 x i8]
%11 = alloca [6 x i8]
%12 = alloca [11 x i8]
%13 = alloca [11 x i8]
%14 = alloca [7 x i8]
%15 = alloca [7 x i8]
%16 = alloca [14 x i8]
%17 = alloca [14 x i8]
%18 = bitcast [14 x i8]* %2 to i8*
%19 = bitcast [14 x i8]* %3 to i8*
%20 = bitcast [14 x i8]* %4 to i8*
%21 = bitcast [14 x i8]* %5 to i8*
%22 = bitcast [15 x i8]* %6 to i8*
%23 = bitcast [15 x i8]* %7 to i8*
%24 = bitcast [13 x i8]* %8 to i8*
%25 = bitcast [13 x i8]* %9 to i8*
%26 = bitcast [6 x i8]* %10 to i8*
%27 = bitcast [6 x i8]* %11 to i8*
%28 = bitcast [11 x i8]* %12 to i8*
%29 = bitcast [11 x i8]* %13 to i8*
%30 = bitcast [7 x i8]* %14 to i8*
%31 = bitcast [7 x i8]* %15 to i8*
%32 = bitcast [14 x i8]* %16 to i8*
%33 = bitcast [14 x i8]* %17 to i8*
%34 = getelementptr inbounds [14 x i8], [14 x i8]* %2, i64 0, i64 0
%35 = getelementptr inbounds [14 x i8], [14 x i8]* %3, i64 0, i64 0
%36 = call i32 @biscDefineSong(i32 1, i8* %34, i8* %35, i32 14)
%37 = icmp eq i32 %36, -1
br i1 %37, label %38, label %39
38: ; preds = %0
store i32 -1, i32* %1
br label %122
39: ; preds = %0
%40 = getelementptr inbounds [14 x i8], [14 x i8]* %4, i64 0, i64 0
%41 = getelementptr inbounds [14 x i8], [14 x i8]* %5, i64 0, i64 0
%42 = call i32 @biscDefineSong(i32 2, i8* %40, i8* %41, i32 14)
%43 = icmp eq i32 %42, -1
br i1 %43, label %44, label %45
44: ; preds = %39
store i32 -1, i32* %1
br label %122
45: ; preds = %39
%46 = getelementptr inbounds [15 x i8], [15 x i8]* %6, i64 0, i64 0
%47 = getelementptr inbounds [15 x i8], [15 x i8]* %7, i64 0, i64 0
%48 = call i32 @biscDefineSong(i32 3, i8* %46, i8* %47, i32 15)
%49 = icmp eq i32 %48, -1
br i1 %49, label %50, label %51
50: ; preds = %45
store i32 -1, i32* %1
br label %122
51: ; preds = %45
%52 = getelementptr inbounds [13 x i8], [13 x i8]* %8, i64 0, i64 0
%53 = getelementptr inbounds [13 x i8], [13 x i8]* %9, i64 0, i64 0
%54 = call i32 @biscDefineSong(i32 4, i8* %52, i8* %53, i32 13)
%55 = icmp eq i32 %54, -1
br i1 %55, label %56, label %57
56: ; preds = %51
store i32 -1, i32* %1
br label %122
57: ; preds = %51
%58 = getelementptr inbounds [6 x i8], [6 x i8]* %10, i64 0, i64 0
%59 = getelementptr inbounds [6 x i8], [6 x i8]* %11, i64 0, i64 0
%60 = call i32 @biscDefineSong(i32 5, i8* %58, i8* %59, i32 6)
%61 = icmp eq i32 %60, -1
br i1 %61, label %62, label %63
62: ; preds = %57
store i32 -1, i32* %1
br label %122
63: ; preds = %57
%64 = getelementptr inbounds [11 x i8], [11 x i8]* %12, i64 0, i64 0
%65 = getelementptr inbounds [11 x i8], [11 x i8]* %13, i64 0, i64 0
%66 = call i32 @biscDefineSong(i32 6, i8* %64, i8* %65, i32 11)
%67 = icmp eq i32 %66, -1
br i1 %67, label %68, label %69
68: ; preds = %63
store i32 -1, i32* %1
br label %122
69: ; preds = %63
%70 = getelementptr inbounds [7 x i8], [7 x i8]* %14, i64 0, i64 0
%71 = getelementptr inbounds [7 x i8], [7 x i8]* %15, i64 0, i64 0
%72 = call i32 @biscDefineSong(i32 7, i8* %70, i8* %71, i32 7)
%73 = icmp eq i32 %72, -1
br i1 %73, label %74, label %75
74: ; preds = %69
store i32 -1, i32* %1
br label %122
75: ; preds = %69
%76 = getelementptr inbounds [14 x i8], [14 x i8]* %16, i64 0, i64 0
%77 = getelementptr inbounds [14 x i8], [14 x i8]* %17, i64 0, i64 0
%78 = call i32 @biscDefineSong(i32 8, i8* %76, i8* %77, i32 14)
%79 = icmp eq i32 %78, -1
br i1 %79, label %80, label %81
80: ; preds = %75
store i32 -1, i32* %1
br label %122
81: ; preds = %75
%82 = call i32 @biscPlaySong(i32 1)
%83 = icmp eq i32 %82, -1
br i1 %83, label %84, label %85
84: ; preds = %81
store i32 -1, i32* %1
br label %122
85: ; preds = %81
%86 = call i32 @usleep(i32 2405000)
%87 = call i32 @biscPlaySong(i32 2)
%88 = icmp eq i32 %87, -1
br i1 %88, label %89, label %90
89: ; preds = %85
store i32 -1, i32* %1
br label %122
90: ; preds = %85
%91 = call i32 @usleep(i32 2410000)
%92 = call i32 @biscPlaySong(i32 3)
%93 = icmp eq i32 %92, -1
br i1 %93, label %94, label %95
94: ; preds = %90
store i32 -1, i32* %1
br label %122
95: ; preds = %90
%96 = call i32 @usleep(i32 2405000)
%97 = call i32 @biscPlaySong(i32 4)
%98 = icmp eq i32 %97, -1
br i1 %98, label %99, label %100
99: ; preds = %95
store i32 -1, i32* %1
br label %122
100: ; preds = %95
%101 = call i32 @usleep(i32 2445000)
%102 = call i32 @biscPlaySong(i32 5)
%103 = icmp eq i32 %102, -1
br i1 %103, label %104, label %105
104: ; preds = %100
store i32 -1, i32* %1
br label %122
105: ; preds = %100
%106 = call i32 @usleep(i32 2475000)
%107 = call i32 @biscPlaySong(i32 6)
%108 = icmp eq i32 %107, -1
br i1 %108, label %109, label %110
109: ; preds = %105
store i32 -1, i32* %1
br label %122
110: ; preds = %105
%111 = call i32 @usleep(i32 2435000)
%112 = call i32 @biscPlaySong(i32 7)
%113 = icmp eq i32 %112, -1
br i1 %113, label %114, label %115
114: ; preds = %110
store i32 -1, i32* %1
br label %122
115: ; preds = %110
%116 = call i32 @usleep(i32 2445000)
%117 = call i32 @biscPlaySong(i32 8)
%118 = icmp eq i32 %117, -1
br i1 %118, label %119, label %120
119: ; preds = %115
store i32 -1, i32* %1
br label %122
120: ; preds = %115
%121 = call i32 @usleep(i32 2445000)
store i32 0, i32* %1
br label %122
122: ; preds = %120, %119, %114, %109, %104, %99, %94, %89, %84, %80, %74, %68, %62, %56, %50, %44, %38
%123 = load i32, i32* %1
ret i32 %123
}

LLVM IR (-O2):
@__const.biscPlayFireflies.part1 = [14 x i8] c":FV:FRK?KMKMRK"
@__const.biscPlayFireflies.part1d = [14 x i8] c"\0A\0A\0A\0A\0A\14\0A\0A\0A\0A\0A\0A\14\0A"
@__const.biscPlayFireflies.part2 = [14 x i8] c"8HFHK?8FHF<FKM"
@__const.biscPlayFireflies.part2d = [14 x i8] c"\14\0A\0A\0A\0A\0A\14\0A\0A\0A\0A\0A\0A\0A"
@__const.biscPlayFireflies.part3 = [15 x i8] c"8MVJARK?FMKPOKF"
@__const.biscPlayFireflies.part3d = [15 x i8] c"\0A\0A\0A\0A\0A\14\0A\0A\0A\0A\0A\0A\0A\0A\0A"
@__const.biscPlayFireflies.part4 = [13 x i8] c"8H?8F?H8HF<KM"
@__const.biscPlayFireflies.part4d = [13 x i8] c"\14\0A\0A\0A\14\0A\0A\0A\0A\0A\0A\0A\14"
@__const.biscPlayFireflies.part5 = [6 x i8] c"JFAJFH"
@__const.biscPlayFireflies.part5d = [6 x i8] c"\1E\1E\14\1E\1E\14"
@__const.biscPlayFireflies.part6 = [11 x i8] c"8HFHKF8HK<M"
@__const.biscPlayFireflies.part6d = [11 x i8] c"\14\0A\0A\0A\0A\0A\0A\1E\0A\14\14"
@__const.biscPlayFireflies.part7 = [7 x i8] c"8?FFOMK"
@__const.biscPlayFireflies.part7d = [7 x i8] c"(\0A\0A\14\1E\1E\14"
@__const.biscPlayFireflies.part8 = [14 x i8] c"8H?8F?H8HF<KMK"
@__const.biscPlayFireflies.part8d = [14 x i8] c"\14\0A\0A\0A\14\0A\0A\0A\0A\0A\0A\0A\0A\0A"
define i32 @biscPlayFireflies() {
%1 = alloca [14 x i8]
%2 = alloca [14 x i8]
%3 = alloca [14 x i8]
%4 = alloca [14 x i8]
%5 = alloca [15 x i8]
%6 = alloca [15 x i8]
%7 = alloca [13 x i8]
%8 = alloca [13 x i8]
%9 = alloca [6 x i8]
%10 = alloca [6 x i8]
%11 = alloca [11 x i8]
%12 = alloca [11 x i8]
%13 = alloca [7 x i8]
%14 = alloca [7 x i8]
%15 = alloca [14 x i8]
%16 = alloca [14 x i8]
%17 = getelementptr inbounds [14 x i8], [14 x i8]* %1, i64 0, i64 0
%18 = getelementptr inbounds [14 x i8], [14 x i8]* %2, i64 0, i64 0
%19 = getelementptr inbounds [14 x i8], [14 x i8]* %3, i64 0, i64 0
%20 = getelementptr inbounds [14 x i8], [14 x i8]* %4, i64 0, i64 0
%21 = getelementptr inbounds [15 x i8], [15 x i8]* %5, i64 0, i64 0
%22 = getelementptr inbounds [15 x i8], [15 x i8]* %6, i64 0, i64 0
%23 = getelementptr inbounds [13 x i8], [13 x i8]* %7, i64 0, i64 0
%24 = getelementptr inbounds [13 x i8], [13 x i8]* %8, i64 0, i64 0
%25 = getelementptr inbounds [6 x i8], [6 x i8]* %9, i64 0, i64 0
%26 = getelementptr inbounds [6 x i8], [6 x i8]* %10, i64 0, i64 0
%27 = getelementptr inbounds [11 x i8], [11 x i8]* %11, i64 0, i64 0
%28 = getelementptr inbounds [11 x i8], [11 x i8]* %12, i64 0, i64 0
%29 = getelementptr inbounds [7 x i8], [7 x i8]* %13, i64 0, i64 0
%30 = getelementptr inbounds [7 x i8], [7 x i8]* %14, i64 0, i64 0
%31 = getelementptr inbounds [14 x i8], [14 x i8]* %15, i64 0, i64 0
%32 = getelementptr inbounds [14 x i8], [14 x i8]* %16, i64 0, i64 0
%33 = call i32 @biscDefineSong(i32 1, i8* %17, i8* %18, i32 14)
%34 = icmp eq i32 %33, -1
br i1 %34, label %89, label %35
35: ; preds = %0
%36 = call i32 @biscDefineSong(i32 2, i8* %19, i8* %20, i32 14)
%37 = icmp eq i32 %36, -1
br i1 %37, label %89, label %38
38: ; preds = %35
%39 = call i32 @biscDefineSong(i32 3, i8* %21, i8* %22, i32 15)
%40 = icmp eq i32 %39, -1
br i1 %40, label %89, label %41
41: ; preds = %38
%42 = call i32 @biscDefineSong(i32 4, i8* %23, i8* %24, i32 13)
%43 = icmp eq i32 %42, -1
br i1 %43, label %89, label %44
44: ; preds = %41
%45 = call i32 @biscDefineSong(i32 5, i8* %25, i8* %26, i32 6)
%46 = icmp eq i32 %45, -1
br i1 %46, label %89, label %47
47: ; preds = %44
%48 = call i32 @biscDefineSong(i32 6, i8* %27, i8* %28, i32 11)
%49 = icmp eq i32 %48, -1
br i1 %49, label %89, label %50
50: ; preds = %47
%51 = call i32 @biscDefineSong(i32 7, i8* %29, i8* %30, i32 7)
%52 = icmp eq i32 %51, -1
br i1 %52, label %89, label %53
53: ; preds = %50
%54 = call i32 @biscDefineSong(i32 8, i8* %31, i8* %32, i32 14)
%55 = icmp eq i32 %54, -1
br i1 %55, label %89, label %56
56: ; preds = %53
%57 = call i32 @biscPlaySong(i32 1)
%58 = icmp eq i32 %57, -1
br i1 %58, label %89, label %59
59: ; preds = %56
%60 = call i32 @usleep(i32 2405000)
%61 = call i32 @biscPlaySong(i32 2)
%62 = icmp eq i32 %61, -1
br i1 %62, label %89, label %63
63: ; preds = %59
%64 = call i32 @usleep(i32 2410000)
%65 = call i32 @biscPlaySong(i32 3)
%66 = icmp eq i32 %65, -1
br i1 %66, label %89, label %67
67: ; preds = %63
%68 = call i32 @usleep(i32 2405000)
%69 = call i32 @biscPlaySong(i32 4)
%70 = icmp eq i32 %69, -1
br i1 %70, label %89, label %71
71: ; preds = %67
%72 = call i32 @usleep(i32 2445000)
%73 = call i32 @biscPlaySong(i32 5)
%74 = icmp eq i32 %73, -1
br i1 %74, label %89, label %75
75: ; preds = %71
%76 = call i32 @usleep(i32 2475000)
%77 = call i32 @biscPlaySong(i32 6)
%78 = icmp eq i32 %77, -1
br i1 %78, label %89, label %79
79: ; preds = %75
%80 = call i32 @usleep(i32 2435000)
%81 = call i32 @biscPlaySong(i32 7)
%82 = icmp eq i32 %81, -1
br i1 %82, label %89, label %83
83: ; preds = %79
%84 = call i32 @usleep(i32 2445000)
%85 = call i32 @biscPlaySong(i32 8)
%86 = icmp eq i32 %85, -1
br i1 %86, label %89, label %87
87: ; preds = %83
%88 = call i32 @usleep(i32 2445000)
br label %89
89: ; preds = %83, %79, %75, %71, %67, %63, %59, %56, %53, %50, %47, %44, %41, %38, %35, %0, %87
%90 = phi i32 [ 0, %87 ], [ -1, %0 ], [ -1, %35 ], [ -1, %38 ], [ -1, %41 ], [ -1, %44 ], [ -1, %47 ], [ -1, %50 ], [ -1, %53 ], [ -1, %56 ], [ -1, %59 ], [ -1, %63 ], [ -1, %67 ], [ -1, %71 ], [ -1, %75 ], [ -1, %79 ], [ -1, %83 ]
ret i32 %90
}