#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*/ delay_second();
int main_menu();
int /*<<< orphan*/ printf(char *);
int Menu_ExeCmd(void) {
  int key;
  while ((key = main_menu()) != 0) {
    switch (key) {
    case '1':
      printf("No.1\n");
      *(volatile unsigned long *)0x40010810 |= 0x01 << 0;
      delay_second();
      *(volatile unsigned long *)0x40010814 |= 0x01 << 0;
      break;
    case '2':
      printf("No.2\n");
      *(volatile unsigned long *)0x40010810 |= 0x01 << 1;
      delay_second();
      *(volatile unsigned long *)0x40010814 |= 0x01 << 1;
      break;
    case '3':
      printf("No.3\n");
      *(volatile unsigned long *)0x40010810 |= 0x01 << 2;
      delay_second();
      *(volatile unsigned long *)0x40010814 |= 0x01 << 2;
      break;
    case '4':
      printf("No.4\n");
      *(volatile unsigned long *)0x40010810 |= 0x01 << 3;
      delay_second();
      *(volatile unsigned long *)0x40010814 |= 0x01 << 3;
      break;
    case '5':
      printf("No.5\n");
      *(volatile unsigned long *)0x40010810 |= 0x01 << 4;
      delay_second();
      *(volatile unsigned long *)0x40010814 |= 0x01 << 4;
      break;
    case '6':
      printf("No.6\n");
      *(volatile unsigned long *)0x40010810 |= 0x01 << 5;
      delay_second();
      *(volatile unsigned long *)0x40010814 |= 0x01 << 5;
      break;
    case '7':
      printf("No.7\n");
      *(volatile unsigned long *)0x40010810 |= 0x01 << 6;
      delay_second();
      *(volatile unsigned long *)0x40010814 |= 0x01 << 6;
      break;
    case '8':
      printf("No.8\n");
      *(volatile unsigned long *)0x40010810 |= 0x01 << 7;
      delay_second();
      *(volatile unsigned long *)0x40010814 |= 0x01 << 7;
      break;
    case '9':
      printf("No.9\n");
      *(volatile unsigned long *)0x40010810 |= 0x01 << 8;
      delay_second();
      *(volatile unsigned long *)0x40010814 |= 0x01 << 8;
      break;
    case '0':
      printf("No.0\n");
      *(volatile unsigned long *)0x40010810 |= 0x01 << 13;
      delay_second();
      *(volatile unsigned long *)0x40010814 |= 0x01 << 13;
      break;
    case 'a':
      printf("No.0\n");
      *(volatile unsigned long *)0x40010810 |= 0x01 << 14;
      delay_second();
      *(volatile unsigned long *)0x40010814 |= 0x01 << 14;
      break;
    case 'b':
      printf("No.0\n");
      *(volatile unsigned long *)0x40010810 |= 0x01 << 15;
      delay_second();
      *(volatile unsigned long *)0x40010814 |= 0x01 << 15;
      break;
    case 'c':
      printf("No.0\n");
      *(volatile unsigned long *)0x40010C10 |= 0x01 << 0;
      delay_second();
      *(volatile unsigned long *)0x40010C14 |= 0x01 << 0;
      break;
    case 'd':
      printf("No.0\n");
      *(volatile unsigned long *)0x40010C10 |= 0x01 << 1;
      delay_second();
      *(volatile unsigned long *)0x40010C14 |= 0x01 << 1;
      break;
    case 'e':
      printf("No.0\n");
      *(volatile unsigned long *)0x40010C10 |= 0x01 << 2;
      delay_second();
      *(volatile unsigned long *)0x40010C14 |= 0x01 << 2;
      break;
    case 'f':
      printf("No.0\n");
      *(volatile unsigned long *)0x40010C10 |= 0x01 << 3;
      delay_second();
      *(volatile unsigned long *)0x40010C14 |= 0x01 << 3;
      break;
    case 'g':
      printf("No.0\n");
      *(volatile unsigned long *)0x40010C10 |= 0x01 << 4;
      delay_second();
      *(volatile unsigned long *)0x40010C14 |= 0x01 << 4;
      break;
    case 'h':
      printf("No.0\n");
      *(volatile unsigned long *)0x40010C10 |= 0x01 << 5;
      delay_second();
      *(volatile unsigned long *)0x40010C14 |= 0x01 << 5;
      break;
    case 'i':
      printf("No.0\n");
      *(volatile unsigned long *)0x40010C10 |= 0x01 << 6;
      delay_second();
      *(volatile unsigned long *)0x40010C14 |= 0x01 << 6;
      break;
    case 'j':
      printf("No.0\n");
      *(volatile unsigned long *)0x40010C10 |= 0x01 << 7;
      delay_second();
      *(volatile unsigned long *)0x40010C14 |= 0x01 << 7;
      break;
    case 'k':
      printf("No.0\n");
      *(volatile unsigned long *)0x40010C10 |= 0x01 << 8;
      delay_second();
      *(volatile unsigned long *)0x40010C14 |= 0x01 << 8;
      break;
    case 'l':
      printf("No.0\n");
      *(volatile unsigned long *)0x40010C10 |= 0x01 << 9;
      delay_second();
      *(volatile unsigned long *)0x40010C14 |= 0x01 << 9;
      break;
    case 'm':
      printf("No.0\n");
      *(volatile unsigned long *)0x40010C10 |= 0x01 << 10;
      delay_second();
      *(volatile unsigned long *)0x40010C14 |= 0x01 << 10;
      break;
    case 'n':
      printf("No.0\n");
      *(volatile unsigned long *)0x40010C10 |= 0x01 << 11;
      delay_second();
      *(volatile unsigned long *)0x40010C14 |= 0x01 << 12;
      break;
    case 'o':
      printf("No.0\n");
      *(volatile unsigned long *)0x40010C10 |= 0x01 << 13;
      delay_second();
      *(volatile unsigned long *)0x40010C14 |= 0x01 << 13;
      break;
    case 'p':
      printf("No.0\n");
      *(volatile unsigned long *)0x40010C10 |= 0x01 << 14;
      delay_second();
      *(volatile unsigned long *)0x40010C14 |= 0x01 << 14;
      break;
    case 'r':
      printf("No.0\n");
      *(volatile unsigned long *)0x40010C10 |= 0x01 << 15;
      delay_second();
      *(volatile unsigned long *)0x40010C14 |= 0x01 << 15;
      break;
    case 's':
      printf("No.0\n");
      *(volatile unsigned long *)0x40011010 |= 0x01 << 14;
      delay_second();
      *(volatile unsigned long *)0x40011014 |= 0x01 << 14;
      break;
    case 't':
      printf("No.0\n");
      *(volatile unsigned long *)0x40011010 |= 0x01 << 15;
      delay_second();
      *(volatile unsigned long *)0x40011014 |= 0x01 << 15;
      break;
    case 'q':
      printf("exit\n");
      break;
    default:
      break;
    }
  }
  return key;
}


x86 assembly (clang, -O0):
<Menu_ExeCmd>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    $0x0,%al
call   1050 <main_menu@plt>
mov    %eax,-0x4(%rbp)
cmp    $0x0,%eax
je     1929 <Menu_ExeCmd+0x7f9>
mov    -0x4(%rbp),%eax
add    $0xffffffd0,%eax
mov    %eax,%ecx
mov    %rcx,-0x10(%rbp)
sub    $0x44,%eax
ja     191f <Menu_ExeCmd+0x7ef>
mov    -0x10(%rbp),%rax
lea    0xe95(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0xf99(%rip),%rdi
call   1030 <printf@plt>
mov    $0x40010810,%eax
mov    (%rax),%rcx
or     $0x1,%rcx
mov    $0x40010810,%eax
mov    %rcx,(%rax)
mov    $0x0,%al
call   1040 <delay_second@plt>
mov    $0x40010814,%eax
mov    (%rax),%rcx
or     $0x1,%rcx
mov    $0x40010814,%eax
mov    %rcx,(%rax)
jmp    1924 <Menu_ExeCmd+0x7f4>
lea    0xf5f(%rip),%rdi
call   1030 <printf@plt>
mov    $0x40010810,%eax
mov    (%rax),%rcx
or     $0x2,%rcx
mov    $0x40010810,%eax
mov    %rcx,(%rax)
mov    $0x0,%al
call   1040 <delay_second@plt>
mov    $0x40010814,%eax
mov    (%rax),%rcx
or     $0x2,%rcx
mov    $0x40010814,%eax
mov    %rcx,(%rax)
jmp    1924 <Menu_ExeCmd+0x7f4>
lea    0xf25(%rip),%rdi
call   1030 <printf@plt>
mov    $0x40010810,%eax
mov    (%rax),%rcx
or     $0x4,%rcx
mov    $0x40010810,%eax
mov    %rcx,(%rax)
mov    $0x0,%al
call   1040 <delay_second@plt>
mov    $0x40010814,%eax
mov    (%rax),%rcx
or     $0x4,%rcx
mov    $0x40010814,%eax
mov    %rcx,(%rax)
jmp    1924 <Menu_ExeCmd+0x7f4>
lea    0xeeb(%rip),%rdi
call   1030 <printf@plt>
mov    $0x40010810,%eax
mov    (%rax),%rcx
or     $0x8,%rcx
mov    $0x40010810,%eax
mov    %rcx,(%rax)
mov    $0x0,%al
call   1040 <delay_second@plt>
mov    $0x40010814,%eax
mov    (%rax),%rcx
or     $0x8,%rcx
mov    $0x40010814,%eax
mov    %rcx,(%rax)
jmp    1924 <Menu_ExeCmd+0x7f4>
lea    0xeb1(%rip),%rdi
call   1030 <printf@plt>
mov    $0x40010810,%eax
mov    (%rax),%rcx
or     $0x10,%rcx
mov    $0x40010810,%eax
mov    %rcx,(%rax)
mov    $0x0,%al
call   1040 <delay_second@plt>
mov    $0x40010814,%eax
mov    (%rax),%rcx
or     $0x10,%rcx
mov    $0x40010814,%eax
mov    %rcx,(%rax)
jmp    1924 <Menu_ExeCmd+0x7f4>
lea    0xe77(%rip),%rdi
call   1030 <printf@plt>
mov    $0x40010810,%eax
mov    (%rax),%rcx
or     $0x20,%rcx
mov    $0x40010810,%eax
mov    %rcx,(%rax)
mov    $0x0,%al
call   1040 <delay_second@plt>
mov    $0x40010814,%eax
mov    (%rax),%rcx
or     $0x20,%rcx
mov    $0x40010814,%eax
mov    %rcx,(%rax)
jmp    1924 <Menu_ExeCmd+0x7f4>
lea    0xe3d(%rip),%rdi
call   1030 <printf@plt>
mov    $0x40010810,%eax
mov    (%rax),%rcx
or     $0x40,%rcx
mov    $0x40010810,%eax
mov    %rcx,(%rax)
mov    $0x0,%al
call   1040 <delay_second@plt>
mov    $0x40010814,%eax
mov    (%rax),%rcx
or     $0x40,%rcx
mov    $0x40010814,%eax
mov    %rcx,(%rax)
jmp    1924 <Menu_ExeCmd+0x7f4>
lea    0xe03(%rip),%rdi
call   1030 <printf@plt>
mov    $0x40010810,%eax
mov    (%rax),%rcx
or     $0x80,%rcx
mov    $0x40010810,%eax
mov    %rcx,(%rax)
mov    $0x0,%al
call   1040 <delay_second@plt>
mov    $0x40010814,%eax
mov    (%rax),%rcx
or     $0x80,%rcx
mov    $0x40010814,%eax
mov    %rcx,(%rax)
jmp    1924 <Menu_ExeCmd+0x7f4>
lea    0xdc3(%rip),%rdi
call   1030 <printf@plt>
mov    $0x40010810,%eax
mov    (%rax),%rcx
or     $0x100,%rcx
mov    $0x40010810,%eax
mov    %rcx,(%rax)
mov    $0x0,%al
call   1040 <delay_second@plt>
mov    $0x40010814,%eax
mov    (%rax),%rcx
or     $0x100,%rcx
mov    $0x40010814,%eax
mov    %rcx,(%rax)
jmp    1924 <Menu_ExeCmd+0x7f4>
lea    0xd83(%rip),%rdi
call   1030 <printf@plt>
mov    $0x40010810,%eax
mov    (%rax),%rcx
or     $0x2000,%rcx
mov    $0x40010810,%eax
mov    %rcx,(%rax)
mov    $0x0,%al
call   1040 <delay_second@plt>
mov    $0x40010814,%eax
mov    (%rax),%rcx
or     $0x2000,%rcx
mov    $0x40010814,%eax
mov    %rcx,(%rax)
jmp    1924 <Menu_ExeCmd+0x7f4>
lea    0xd3d(%rip),%rdi
call   1030 <printf@plt>
mov    $0x40010810,%eax
mov    (%rax),%rcx
or     $0x4000,%rcx
mov    $0x40010810,%eax
mov    %rcx,(%rax)
mov    $0x0,%al
call   1040 <delay_second@plt>
mov    $0x40010814,%eax
mov    (%rax),%rcx
or     $0x4000,%rcx
mov    $0x40010814,%eax
mov    %rcx,(%rax)
jmp    1924 <Menu_ExeCmd+0x7f4>
lea    0xcf7(%rip),%rdi
call   1030 <printf@plt>
mov    $0x40010810,%eax
mov    (%rax),%rcx
or     $0x8000,%rcx
mov    $0x40010810,%eax
mov    %rcx,(%rax)
mov    $0x0,%al
call   1040 <delay_second@plt>
mov    $0x40010814,%eax
mov    (%rax),%rcx
or     $0x8000,%rcx
mov    $0x40010814,%eax
mov    %rcx,(%rax)
jmp    1924 <Menu_ExeCmd+0x7f4>
lea    0xcb1(%rip),%rdi
call   1030 <printf@plt>
mov    $0x40010c10,%eax
mov    (%rax),%rcx
or     $0x1,%rcx
mov    $0x40010c10,%eax
mov    %rcx,(%rax)
mov    $0x0,%al
call   1040 <delay_second@plt>
mov    $0x40010c14,%eax
mov    (%rax),%rcx
or     $0x1,%rcx
mov    $0x40010c14,%eax
mov    %rcx,(%rax)
jmp    1924 <Menu_ExeCmd+0x7f4>
lea    0xc71(%rip),%rdi
call   1030 <printf@plt>
mov    $0x40010c10,%eax
mov    (%rax),%rcx
or     $0x2,%rcx
mov    $0x40010c10,%eax
mov    %rcx,(%rax)
mov    $0x0,%al
call   1040 <delay_second@plt>
mov    $0x40010c14,%eax
mov    (%rax),%rcx
or     $0x2,%rcx
mov    $0x40010c14,%eax
mov    %rcx,(%rax)
jmp    1924 <Menu_ExeCmd+0x7f4>
lea    0xc31(%rip),%rdi
call   1030 <printf@plt>
mov    $0x40010c10,%eax
mov    (%rax),%rcx
or     $0x4,%rcx
mov    $0x40010c10,%eax
mov    %rcx,(%rax)
mov    $0x0,%al
call   1040 <delay_second@plt>
mov    $0x40010c14,%eax
mov    (%rax),%rcx
or     $0x4,%rcx
mov    $0x40010c14,%eax
mov    %rcx,(%rax)
jmp    1924 <Menu_ExeCmd+0x7f4>
lea    0xbf1(%rip),%rdi
call   1030 <printf@plt>
mov    $0x40010c10,%eax
mov    (%rax),%rcx
or     $0x8,%rcx
mov    $0x40010c10,%eax
mov    %rcx,(%rax)
mov    $0x0,%al
call   1040 <delay_second@plt>
mov    $0x40010c14,%eax
mov    (%rax),%rcx
or     $0x8,%rcx
mov    $0x40010c14,%eax
mov    %rcx,(%rax)
jmp    1924 <Menu_ExeCmd+0x7f4>
lea    0xbb1(%rip),%rdi
call   1030 <printf@plt>
mov    $0x40010c10,%eax
mov    (%rax),%rcx
or     $0x10,%rcx
mov    $0x40010c10,%eax
mov    %rcx,(%rax)
mov    $0x0,%al
call   1040 <delay_second@plt>
mov    $0x40010c14,%eax
mov    (%rax),%rcx
or     $0x10,%rcx
mov    $0x40010c14,%eax
mov    %rcx,(%rax)
jmp    1924 <Menu_ExeCmd+0x7f4>
lea    0xb71(%rip),%rdi
call   1030 <printf@plt>
mov    $0x40010c10,%eax
mov    (%rax),%rcx
or     $0x20,%rcx
mov    $0x40010c10,%eax
mov    %rcx,(%rax)
mov    $0x0,%al
call   1040 <delay_second@plt>
mov    $0x40010c14,%eax
mov    (%rax),%rcx
or     $0x20,%rcx
mov    $0x40010c14,%eax
mov    %rcx,(%rax)
jmp    1924 <Menu_ExeCmd+0x7f4>
lea    0xb31(%rip),%rdi
call   1030 <printf@plt>
mov    $0x40010c10,%eax
mov    (%rax),%rcx
or     $0x40,%rcx
mov    $0x40010c10,%eax
mov    %rcx,(%rax)
mov    $0x0,%al
call   1040 <delay_second@plt>
mov    $0x40010c14,%eax
mov    (%rax),%rcx
or     $0x40,%rcx
mov    $0x40010c14,%eax
mov    %rcx,(%rax)
jmp    1924 <Menu_ExeCmd+0x7f4>
lea    0xaf1(%rip),%rdi
call   1030 <printf@plt>
mov    $0x40010c10,%eax
mov    (%rax),%rcx
or     $0x80,%rcx
mov    $0x40010c10,%eax
mov    %rcx,(%rax)
mov    $0x0,%al
call   1040 <delay_second@plt>
mov    $0x40010c14,%eax
mov    (%rax),%rcx
or     $0x80,%rcx
mov    $0x40010c14,%eax
mov    %rcx,(%rax)
jmp    1924 <Menu_ExeCmd+0x7f4>
lea    0xaab(%rip),%rdi
call   1030 <printf@plt>
mov    $0x40010c10,%eax
mov    (%rax),%rcx
or     $0x100,%rcx
mov    $0x40010c10,%eax
mov    %rcx,(%rax)
mov    $0x0,%al
call   1040 <delay_second@plt>
mov    $0x40010c14,%eax
mov    (%rax),%rcx
or     $0x100,%rcx
mov    $0x40010c14,%eax
mov    %rcx,(%rax)
jmp    1924 <Menu_ExeCmd+0x7f4>
lea    0xa65(%rip),%rdi
call   1030 <printf@plt>
mov    $0x40010c10,%eax
mov    (%rax),%rcx
or     $0x200,%rcx
mov    $0x40010c10,%eax
mov    %rcx,(%rax)
mov    $0x0,%al
call   1040 <delay_second@plt>
mov    $0x40010c14,%eax
mov    (%rax),%rcx
or     $0x200,%rcx
mov    $0x40010c14,%eax
mov    %rcx,(%rax)
jmp    1924 <Menu_ExeCmd+0x7f4>
lea    0xa1f(%rip),%rdi
call   1030 <printf@plt>
mov    $0x40010c10,%eax
mov    (%rax),%rcx
or     $0x400,%rcx
mov    $0x40010c10,%eax
mov    %rcx,(%rax)
mov    $0x0,%al
call   1040 <delay_second@plt>
mov    $0x40010c14,%eax
mov    (%rax),%rcx
or     $0x400,%rcx
mov    $0x40010c14,%eax
mov    %rcx,(%rax)
jmp    1924 <Menu_ExeCmd+0x7f4>
lea    0x9d9(%rip),%rdi
call   1030 <printf@plt>
mov    $0x40010c10,%eax
mov    (%rax),%rcx
or     $0x800,%rcx
mov    $0x40010c10,%eax
mov    %rcx,(%rax)
mov    $0x0,%al
call   1040 <delay_second@plt>
mov    $0x40010c14,%eax
mov    (%rax),%rcx
or     $0x1000,%rcx
mov    $0x40010c14,%eax
mov    %rcx,(%rax)
jmp    1924 <Menu_ExeCmd+0x7f4>
lea    0x993(%rip),%rdi
call   1030 <printf@plt>
mov    $0x40010c10,%eax
mov    (%rax),%rcx
or     $0x2000,%rcx
mov    $0x40010c10,%eax
mov    %rcx,(%rax)
mov    $0x0,%al
call   1040 <delay_second@plt>
mov    $0x40010c14,%eax
mov    (%rax),%rcx
or     $0x2000,%rcx
mov    $0x40010c14,%eax
mov    %rcx,(%rax)
jmp    1924 <Menu_ExeCmd+0x7f4>
lea    0x94d(%rip),%rdi
call   1030 <printf@plt>
mov    $0x40010c10,%eax
mov    (%rax),%rcx
or     $0x4000,%rcx
mov    $0x40010c10,%eax
mov    %rcx,(%rax)
mov    $0x0,%al
call   1040 <delay_second@plt>
mov    $0x40010c14,%eax
mov    (%rax),%rcx
or     $0x4000,%rcx
mov    $0x40010c14,%eax
mov    %rcx,(%rax)
jmp    1924 <Menu_ExeCmd+0x7f4>
lea    0x907(%rip),%rdi
call   1030 <printf@plt>
mov    $0x40010c10,%eax
mov    (%rax),%rcx
or     $0x8000,%rcx
mov    $0x40010c10,%eax
mov    %rcx,(%rax)
mov    $0x0,%al
call   1040 <delay_second@plt>
mov    $0x40010c14,%eax
mov    (%rax),%rcx
or     $0x8000,%rcx
mov    $0x40010c14,%eax
mov    %rcx,(%rax)
jmp    1924 <Menu_ExeCmd+0x7f4>
lea    0x8c1(%rip),%rdi
call   1030 <printf@plt>
mov    $0x40011010,%eax
mov    (%rax),%rcx
or     $0x4000,%rcx
mov    $0x40011010,%eax
mov    %rcx,(%rax)
mov    $0x0,%al
call   1040 <delay_second@plt>
mov    $0x40011014,%eax
mov    (%rax),%rcx
or     $0x4000,%rcx
mov    $0x40011014,%eax
mov    %rcx,(%rax)
jmp    1924 <Menu_ExeCmd+0x7f4>
lea    0x87b(%rip),%rdi
call   1030 <printf@plt>
mov    $0x40011010,%eax
mov    (%rax),%rcx
or     $0x8000,%rcx
mov    $0x40011010,%eax
mov    %rcx,(%rax)
mov    $0x0,%al
call   1040 <delay_second@plt>
mov    $0x40011014,%eax
mov    (%rax),%rcx
or     $0x8000,%rcx
mov    $0x40011014,%eax
mov    %rcx,(%rax)
jmp    1924 <Menu_ExeCmd+0x7f4>
lea    0x83b(%rip),%rdi
call   1030 <printf@plt>
jmp    1924 <Menu_ExeCmd+0x7f4>
jmp    1924 <Menu_ExeCmd+0x7f4>
jmp    1138 <Menu_ExeCmd+0x8>
mov    -0x4(%rbp),%eax
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<Menu_ExeCmd>:
push   %rbx
lea    0xec8(%rip),%rbx
jmp    1150 <Menu_ExeCmd+0x20>
lea    0x1093(%rip),%rdi
call   1030 <puts@plt>
cs nopw 0x0(%rax,%rax,1)
xor    %eax,%eax
call   1050 <main_menu@plt>
cmp    $0x74,%eax
ja     1150 <Menu_ExeCmd+0x20>
mov    %eax,%eax
movslq (%rbx,%rax,4),%rax
add    %rbx,%rax
jmp    *%rax
lea    0x106b(%rip),%rdi
call   1030 <puts@plt>
orq    $0x2000,0x40010810
xor    %eax,%eax
call   1040 <delay_second@plt>
orq    $0x2000,0x40010814
jmp    1150 <Menu_ExeCmd+0x20>
lea    0x106b(%rip),%rdi
call   1030 <puts@plt>
orq    $0x1,0x40010810
40 01
xor    %eax,%eax
call   1040 <delay_second@plt>
orq    $0x1,0x40010814
40 01
jmp    1150 <Menu_ExeCmd+0x20>
lea    0x103f(%rip),%rdi
call   1030 <puts@plt>
orq    $0x2,0x40010810
40 02
xor    %eax,%eax
call   1040 <delay_second@plt>
orq    $0x2,0x40010814
40 02
jmp    1150 <Menu_ExeCmd+0x20>
lea    0x1010(%rip),%rdi
call   1030 <puts@plt>
orq    $0x4,0x40010810
40 04
xor    %eax,%eax
call   1040 <delay_second@plt>
orq    $0x4,0x40010814
40 04
jmp    1150 <Menu_ExeCmd+0x20>
lea    0xfe1(%rip),%rdi
call   1030 <puts@plt>
orq    $0x8,0x40010810
40 08
xor    %eax,%eax
call   1040 <delay_second@plt>
orq    $0x8,0x40010814
40 08
jmp    1150 <Menu_ExeCmd+0x20>
lea    0xfb2(%rip),%rdi
call   1030 <puts@plt>
orq    $0x10,0x40010810
40 10
xor    %eax,%eax
call   1040 <delay_second@plt>
orq    $0x10,0x40010814
40 10
jmp    1150 <Menu_ExeCmd+0x20>
lea    0xf83(%rip),%rdi
call   1030 <puts@plt>
orq    $0x20,0x40010810
40 20
xor    %eax,%eax
call   1040 <delay_second@plt>
orq    $0x20,0x40010814
40 20
jmp    1150 <Menu_ExeCmd+0x20>
lea    0xf54(%rip),%rdi
call   1030 <puts@plt>
orq    $0x40,0x40010810
40 40
xor    %eax,%eax
call   1040 <delay_second@plt>
orq    $0x40,0x40010814
40 40
jmp    1150 <Menu_ExeCmd+0x20>
lea    0xf25(%rip),%rdi
call   1030 <puts@plt>
orq    $0x80,0x40010810
xor    %eax,%eax
call   1040 <delay_second@plt>
orq    $0x80,0x40010814
jmp    1150 <Menu_ExeCmd+0x20>
lea    0xef0(%rip),%rdi
call   1030 <puts@plt>
orq    $0x100,0x40010810
xor    %eax,%eax
call   1040 <delay_second@plt>
orq    $0x100,0x40010814
jmp    1150 <Menu_ExeCmd+0x20>
lea    0xebb(%rip),%rdi
call   1030 <puts@plt>
orq    $0x4000,0x40010810
xor    %eax,%eax
call   1040 <delay_second@plt>
orq    $0x4000,0x40010814
jmp    1150 <Menu_ExeCmd+0x20>
lea    0xe8b(%rip),%rdi
call   1030 <puts@plt>
orq    $0x8000,0x40010810
xor    %eax,%eax
call   1040 <delay_second@plt>
orq    $0x8000,0x40010814
jmp    1150 <Menu_ExeCmd+0x20>
lea    0xe5b(%rip),%rdi
call   1030 <puts@plt>
orq    $0x1,0x40010c10
40 01
xor    %eax,%eax
call   1040 <delay_second@plt>
orq    $0x1,0x40010c14
40 01
jmp    1150 <Menu_ExeCmd+0x20>
lea    0xe31(%rip),%rdi
call   1030 <puts@plt>
orq    $0x2,0x40010c10
40 02
xor    %eax,%eax
call   1040 <delay_second@plt>
orq    $0x2,0x40010c14
40 02
jmp    1150 <Menu_ExeCmd+0x20>
lea    0xe07(%rip),%rdi
call   1030 <puts@plt>
orq    $0x4,0x40010c10
40 04
xor    %eax,%eax
call   1040 <delay_second@plt>
orq    $0x4,0x40010c14
40 04
jmp    1150 <Menu_ExeCmd+0x20>
lea    0xddd(%rip),%rdi
call   1030 <puts@plt>
orq    $0x8,0x40010c10
40 08
xor    %eax,%eax
call   1040 <delay_second@plt>
orq    $0x8,0x40010c14
40 08
jmp    1150 <Menu_ExeCmd+0x20>
lea    0xdb3(%rip),%rdi
call   1030 <puts@plt>
orq    $0x10,0x40010c10
40 10
xor    %eax,%eax
call   1040 <delay_second@plt>
orq    $0x10,0x40010c14
40 10
jmp    1150 <Menu_ExeCmd+0x20>
lea    0xd89(%rip),%rdi
call   1030 <puts@plt>
orq    $0x20,0x40010c10
40 20
xor    %eax,%eax
call   1040 <delay_second@plt>
orq    $0x20,0x40010c14
40 20
jmp    1150 <Menu_ExeCmd+0x20>
lea    0xd5f(%rip),%rdi
call   1030 <puts@plt>
orq    $0x40,0x40010c10
40 40
xor    %eax,%eax
call   1040 <delay_second@plt>
orq    $0x40,0x40010c14
40 40
jmp    1150 <Menu_ExeCmd+0x20>
lea    0xd35(%rip),%rdi
call   1030 <puts@plt>
orq    $0x80,0x40010c10
xor    %eax,%eax
call   1040 <delay_second@plt>
orq    $0x80,0x40010c14
jmp    1150 <Menu_ExeCmd+0x20>
lea    0xd05(%rip),%rdi
call   1030 <puts@plt>
orq    $0x100,0x40010c10
xor    %eax,%eax
call   1040 <delay_second@plt>
orq    $0x100,0x40010c14
jmp    1150 <Menu_ExeCmd+0x20>
lea    0xcd5(%rip),%rdi
call   1030 <puts@plt>
orq    $0x200,0x40010c10
xor    %eax,%eax
call   1040 <delay_second@plt>
orq    $0x200,0x40010c14
jmp    1150 <Menu_ExeCmd+0x20>
lea    0xca5(%rip),%rdi
call   1030 <puts@plt>
orq    $0x400,0x40010c10
xor    %eax,%eax
call   1040 <delay_second@plt>
orq    $0x400,0x40010c14
jmp    1150 <Menu_ExeCmd+0x20>
lea    0xc75(%rip),%rdi
call   1030 <puts@plt>
orq    $0x800,0x40010c10
xor    %eax,%eax
call   1040 <delay_second@plt>
orq    $0x1000,0x40010c14
jmp    1150 <Menu_ExeCmd+0x20>
lea    0xc45(%rip),%rdi
call   1030 <puts@plt>
orq    $0x2000,0x40010c10
xor    %eax,%eax
call   1040 <delay_second@plt>
orq    $0x2000,0x40010c14
jmp    1150 <Menu_ExeCmd+0x20>
lea    0xc15(%rip),%rdi
call   1030 <puts@plt>
orq    $0x4000,0x40010c10
xor    %eax,%eax
call   1040 <delay_second@plt>
orq    $0x4000,0x40010c14
jmp    1150 <Menu_ExeCmd+0x20>
lea    0xbe5(%rip),%rdi
call   1030 <puts@plt>
orq    $0x8000,0x40010c10
xor    %eax,%eax
call   1040 <delay_second@plt>
orq    $0x8000,0x40010c14
jmp    1150 <Menu_ExeCmd+0x20>
lea    0xbb5(%rip),%rdi
call   1030 <puts@plt>
orq    $0x4000,0x40011010
xor    %eax,%eax
call   1040 <delay_second@plt>
orq    $0x4000,0x40011014
jmp    1150 <Menu_ExeCmd+0x20>
lea    0xb85(%rip),%rdi
call   1030 <puts@plt>
orq    $0x8000,0x40011010
xor    %eax,%eax
call   1040 <delay_second@plt>
orq    $0x8000,0x40011014
jmp    1150 <Menu_ExeCmd+0x20>
xor    %eax,%eax
pop    %rbx
ret

LLVM IR (-O0):
@.str = [6 x i8] c"No.1\0A\00"
@.str.1 = [6 x i8] c"No.2\0A\00"
@.str.2 = [6 x i8] c"No.3\0A\00"
@.str.3 = [6 x i8] c"No.4\0A\00"
@.str.4 = [6 x i8] c"No.5\0A\00"
@.str.5 = [6 x i8] c"No.6\0A\00"
@.str.6 = [6 x i8] c"No.7\0A\00"
@.str.7 = [6 x i8] c"No.8\0A\00"
@.str.8 = [6 x i8] c"No.9\0A\00"
@.str.9 = [6 x i8] c"No.0\0A\00"
@.str.10 = [6 x i8] c"exit\0A\00"
define i32 @Menu_ExeCmd() {
%1 = alloca i32
br label %2
2: ; preds = %213, %0
%3 = call i32 (...) @main_menu()
store i32 %3, i32* %1
%4 = icmp ne i32 %3, 0
br i1 %4, label %5, label %214
5: ; preds = %2
%6 = load i32, i32* %1
switch i32 %6, label %212 [
i32 49, label %7
i32 50, label %14
i32 51, label %21
i32 52, label %28
i32 53, label %35
i32 54, label %42
i32 55, label %49
i32 56, label %56
i32 57, label %63
i32 48, label %70
i32 97, label %77
i32 98, label %84
i32 99, label %91
i32 100, label %98
i32 101, label %105
i32 102, label %112
i32 103, label %119
i32 104, label %126
i32 105, label %133
i32 106, label %140
i32 107, label %147
i32 108, label %154
i32 109, label %161
i32 110, label %168
i32 111, label %175
i32 112, label %182
i32 114, label %189
i32 115, label %196
i32 116, label %203
i32 113, label %210
]
7: ; preds = %5
%8 = call i32 @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i64 0, i64 0))
%9 = load volatile i64, i64* inttoptr (i64 1073809424 to i64*)
%10 = or i64 %9, 1
store volatile i64 %10, i64* inttoptr (i64 1073809424 to i64*)
%11 = call i32 (...) @delay_second()
%12 = load volatile i64, i64* inttoptr (i64 1073809428 to i64*)
%13 = or i64 %12, 1
store volatile i64 %13, i64* inttoptr (i64 1073809428 to i64*)
br label %213
14: ; preds = %5
%15 = call i32 @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0))
%16 = load volatile i64, i64* inttoptr (i64 1073809424 to i64*)
%17 = or i64 %16, 2
store volatile i64 %17, i64* inttoptr (i64 1073809424 to i64*)
%18 = call i32 (...) @delay_second()
%19 = load volatile i64, i64* inttoptr (i64 1073809428 to i64*)
%20 = or i64 %19, 2
store volatile i64 %20, i64* inttoptr (i64 1073809428 to i64*)
br label %213
21: ; preds = %5
%22 = call i32 @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.2, i64 0, i64 0))
%23 = load volatile i64, i64* inttoptr (i64 1073809424 to i64*)
%24 = or i64 %23, 4
store volatile i64 %24, i64* inttoptr (i64 1073809424 to i64*)
%25 = call i32 (...) @delay_second()
%26 = load volatile i64, i64* inttoptr (i64 1073809428 to i64*)
%27 = or i64 %26, 4
store volatile i64 %27, i64* inttoptr (i64 1073809428 to i64*)
br label %213
28: ; preds = %5
%29 = call i32 @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.3, i64 0, i64 0))
%30 = load volatile i64, i64* inttoptr (i64 1073809424 to i64*)
%31 = or i64 %30, 8
store volatile i64 %31, i64* inttoptr (i64 1073809424 to i64*)
%32 = call i32 (...) @delay_second()
%33 = load volatile i64, i64* inttoptr (i64 1073809428 to i64*)
%34 = or i64 %33, 8
store volatile i64 %34, i64* inttoptr (i64 1073809428 to i64*)
br label %213
35: ; preds = %5
%36 = call i32 @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.4, i64 0, i64 0))
%37 = load volatile i64, i64* inttoptr (i64 1073809424 to i64*)
%38 = or i64 %37, 16
store volatile i64 %38, i64* inttoptr (i64 1073809424 to i64*)
%39 = call i32 (...) @delay_second()
%40 = load volatile i64, i64* inttoptr (i64 1073809428 to i64*)
%41 = or i64 %40, 16
store volatile i64 %41, i64* inttoptr (i64 1073809428 to i64*)
br label %213
42: ; preds = %5
%43 = call i32 @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.5, i64 0, i64 0))
%44 = load volatile i64, i64* inttoptr (i64 1073809424 to i64*)
%45 = or i64 %44, 32
store volatile i64 %45, i64* inttoptr (i64 1073809424 to i64*)
%46 = call i32 (...) @delay_second()
%47 = load volatile i64, i64* inttoptr (i64 1073809428 to i64*)
%48 = or i64 %47, 32
store volatile i64 %48, i64* inttoptr (i64 1073809428 to i64*)
br label %213
49: ; preds = %5
%50 = call i32 @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.6, i64 0, i64 0))
%51 = load volatile i64, i64* inttoptr (i64 1073809424 to i64*)
%52 = or i64 %51, 64
store volatile i64 %52, i64* inttoptr (i64 1073809424 to i64*)
%53 = call i32 (...) @delay_second()
%54 = load volatile i64, i64* inttoptr (i64 1073809428 to i64*)
%55 = or i64 %54, 64
store volatile i64 %55, i64* inttoptr (i64 1073809428 to i64*)
br label %213
56: ; preds = %5
%57 = call i32 @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.7, i64 0, i64 0))
%58 = load volatile i64, i64* inttoptr (i64 1073809424 to i64*)
%59 = or i64 %58, 128
store volatile i64 %59, i64* inttoptr (i64 1073809424 to i64*)
%60 = call i32 (...) @delay_second()
%61 = load volatile i64, i64* inttoptr (i64 1073809428 to i64*)
%62 = or i64 %61, 128
store volatile i64 %62, i64* inttoptr (i64 1073809428 to i64*)
br label %213
63: ; preds = %5
%64 = call i32 @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.8, i64 0, i64 0))
%65 = load volatile i64, i64* inttoptr (i64 1073809424 to i64*)
%66 = or i64 %65, 256
store volatile i64 %66, i64* inttoptr (i64 1073809424 to i64*)
%67 = call i32 (...) @delay_second()
%68 = load volatile i64, i64* inttoptr (i64 1073809428 to i64*)
%69 = or i64 %68, 256
store volatile i64 %69, i64* inttoptr (i64 1073809428 to i64*)
br label %213
70: ; preds = %5
%71 = call i32 @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.9, i64 0, i64 0))
%72 = load volatile i64, i64* inttoptr (i64 1073809424 to i64*)
%73 = or i64 %72, 8192
store volatile i64 %73, i64* inttoptr (i64 1073809424 to i64*)
%74 = call i32 (...) @delay_second()
%75 = load volatile i64, i64* inttoptr (i64 1073809428 to i64*)
%76 = or i64 %75, 8192
store volatile i64 %76, i64* inttoptr (i64 1073809428 to i64*)
br label %213
77: ; preds = %5
%78 = call i32 @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.9, i64 0, i64 0))
%79 = load volatile i64, i64* inttoptr (i64 1073809424 to i64*)
%80 = or i64 %79, 16384
store volatile i64 %80, i64* inttoptr (i64 1073809424 to i64*)
%81 = call i32 (...) @delay_second()
%82 = load volatile i64, i64* inttoptr (i64 1073809428 to i64*)
%83 = or i64 %82, 16384
store volatile i64 %83, i64* inttoptr (i64 1073809428 to i64*)
br label %213
84: ; preds = %5
%85 = call i32 @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.9, i64 0, i64 0))
%86 = load volatile i64, i64* inttoptr (i64 1073809424 to i64*)
%87 = or i64 %86, 32768
store volatile i64 %87, i64* inttoptr (i64 1073809424 to i64*)
%88 = call i32 (...) @delay_second()
%89 = load volatile i64, i64* inttoptr (i64 1073809428 to i64*)
%90 = or i64 %89, 32768
store volatile i64 %90, i64* inttoptr (i64 1073809428 to i64*)
br label %213
91: ; preds = %5
%92 = call i32 @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.9, i64 0, i64 0))
%93 = load volatile i64, i64* inttoptr (i64 1073810448 to i64*)
%94 = or i64 %93, 1
store volatile i64 %94, i64* inttoptr (i64 1073810448 to i64*)
%95 = call i32 (...) @delay_second()
%96 = load volatile i64, i64* inttoptr (i64 1073810452 to i64*)
%97 = or i64 %96, 1
store volatile i64 %97, i64* inttoptr (i64 1073810452 to i64*)
br label %213
98: ; preds = %5
%99 = call i32 @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.9, i64 0, i64 0))
%100 = load volatile i64, i64* inttoptr (i64 1073810448 to i64*)
%101 = or i64 %100, 2
store volatile i64 %101, i64* inttoptr (i64 1073810448 to i64*)
%102 = call i32 (...) @delay_second()
%103 = load volatile i64, i64* inttoptr (i64 1073810452 to i64*)
%104 = or i64 %103, 2
store volatile i64 %104, i64* inttoptr (i64 1073810452 to i64*)
br label %213
105: ; preds = %5
%106 = call i32 @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.9, i64 0, i64 0))
%107 = load volatile i64, i64* inttoptr (i64 1073810448 to i64*)
%108 = or i64 %107, 4
store volatile i64 %108, i64* inttoptr (i64 1073810448 to i64*)
%109 = call i32 (...) @delay_second()
%110 = load volatile i64, i64* inttoptr (i64 1073810452 to i64*)
%111 = or i64 %110, 4
store volatile i64 %111, i64* inttoptr (i64 1073810452 to i64*)
br label %213
112: ; preds = %5
%113 = call i32 @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.9, i64 0, i64 0))
%114 = load volatile i64, i64* inttoptr (i64 1073810448 to i64*)
%115 = or i64 %114, 8
store volatile i64 %115, i64* inttoptr (i64 1073810448 to i64*)
%116 = call i32 (...) @delay_second()
%117 = load volatile i64, i64* inttoptr (i64 1073810452 to i64*)
%118 = or i64 %117, 8
store volatile i64 %118, i64* inttoptr (i64 1073810452 to i64*)
br label %213
119: ; preds = %5
%120 = call i32 @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.9, i64 0, i64 0))
%121 = load volatile i64, i64* inttoptr (i64 1073810448 to i64*)
%122 = or i64 %121, 16
store volatile i64 %122, i64* inttoptr (i64 1073810448 to i64*)
%123 = call i32 (...) @delay_second()
%124 = load volatile i64, i64* inttoptr (i64 1073810452 to i64*)
%125 = or i64 %124, 16
store volatile i64 %125, i64* inttoptr (i64 1073810452 to i64*)
br label %213
126: ; preds = %5
%127 = call i32 @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.9, i64 0, i64 0))
%128 = load volatile i64, i64* inttoptr (i64 1073810448 to i64*)
%129 = or i64 %128, 32
store volatile i64 %129, i64* inttoptr (i64 1073810448 to i64*)
%130 = call i32 (...) @delay_second()
%131 = load volatile i64, i64* inttoptr (i64 1073810452 to i64*)
%132 = or i64 %131, 32
store volatile i64 %132, i64* inttoptr (i64 1073810452 to i64*)
br label %213
133: ; preds = %5
%134 = call i32 @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.9, i64 0, i64 0))
%135 = load volatile i64, i64* inttoptr (i64 1073810448 to i64*)
%136 = or i64 %135, 64
store volatile i64 %136, i64* inttoptr (i64 1073810448 to i64*)
%137 = call i32 (...) @delay_second()
%138 = load volatile i64, i64* inttoptr (i64 1073810452 to i64*)
%139 = or i64 %138, 64
store volatile i64 %139, i64* inttoptr (i64 1073810452 to i64*)
br label %213
140: ; preds = %5
%141 = call i32 @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.9, i64 0, i64 0))
%142 = load volatile i64, i64* inttoptr (i64 1073810448 to i64*)
%143 = or i64 %142, 128
store volatile i64 %143, i64* inttoptr (i64 1073810448 to i64*)
%144 = call i32 (...) @delay_second()
%145 = load volatile i64, i64* inttoptr (i64 1073810452 to i64*)
%146 = or i64 %145, 128
store volatile i64 %146, i64* inttoptr (i64 1073810452 to i64*)
br label %213
147: ; preds = %5
%148 = call i32 @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.9, i64 0, i64 0))
%149 = load volatile i64, i64* inttoptr (i64 1073810448 to i64*)
%150 = or i64 %149, 256
store volatile i64 %150, i64* inttoptr (i64 1073810448 to i64*)
%151 = call i32 (...) @delay_second()
%152 = load volatile i64, i64* inttoptr (i64 1073810452 to i64*)
%153 = or i64 %152, 256
store volatile i64 %153, i64* inttoptr (i64 1073810452 to i64*)
br label %213
154: ; preds = %5
%155 = call i32 @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.9, i64 0, i64 0))
%156 = load volatile i64, i64* inttoptr (i64 1073810448 to i64*)
%157 = or i64 %156, 512
store volatile i64 %157, i64* inttoptr (i64 1073810448 to i64*)
%158 = call i32 (...) @delay_second()
%159 = load volatile i64, i64* inttoptr (i64 1073810452 to i64*)
%160 = or i64 %159, 512
store volatile i64 %160, i64* inttoptr (i64 1073810452 to i64*)
br label %213
161: ; preds = %5
%162 = call i32 @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.9, i64 0, i64 0))
%163 = load volatile i64, i64* inttoptr (i64 1073810448 to i64*)
%164 = or i64 %163, 1024
store volatile i64 %164, i64* inttoptr (i64 1073810448 to i64*)
%165 = call i32 (...) @delay_second()
%166 = load volatile i64, i64* inttoptr (i64 1073810452 to i64*)
%167 = or i64 %166, 1024
store volatile i64 %167, i64* inttoptr (i64 1073810452 to i64*)
br label %213
168: ; preds = %5
%169 = call i32 @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.9, i64 0, i64 0))
%170 = load volatile i64, i64* inttoptr (i64 1073810448 to i64*)
%171 = or i64 %170, 2048
store volatile i64 %171, i64* inttoptr (i64 1073810448 to i64*)
%172 = call i32 (...) @delay_second()
%173 = load volatile i64, i64* inttoptr (i64 1073810452 to i64*)
%174 = or i64 %173, 4096
store volatile i64 %174, i64* inttoptr (i64 1073810452 to i64*)
br label %213
175: ; preds = %5
%176 = call i32 @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.9, i64 0, i64 0))
%177 = load volatile i64, i64* inttoptr (i64 1073810448 to i64*)
%178 = or i64 %177, 8192
store volatile i64 %178, i64* inttoptr (i64 1073810448 to i64*)
%179 = call i32 (...) @delay_second()
%180 = load volatile i64, i64* inttoptr (i64 1073810452 to i64*)
%181 = or i64 %180, 8192
store volatile i64 %181, i64* inttoptr (i64 1073810452 to i64*)
br label %213
182: ; preds = %5
%183 = call i32 @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.9, i64 0, i64 0))
%184 = load volatile i64, i64* inttoptr (i64 1073810448 to i64*)
%185 = or i64 %184, 16384
store volatile i64 %185, i64* inttoptr (i64 1073810448 to i64*)
%186 = call i32 (...) @delay_second()
%187 = load volatile i64, i64* inttoptr (i64 1073810452 to i64*)
%188 = or i64 %187, 16384
store volatile i64 %188, i64* inttoptr (i64 1073810452 to i64*)
br label %213
189: ; preds = %5
%190 = call i32 @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.9, i64 0, i64 0))
%191 = load volatile i64, i64* inttoptr (i64 1073810448 to i64*)
%192 = or i64 %191, 32768
store volatile i64 %192, i64* inttoptr (i64 1073810448 to i64*)
%193 = call i32 (...) @delay_second()
%194 = load volatile i64, i64* inttoptr (i64 1073810452 to i64*)
%195 = or i64 %194, 32768
store volatile i64 %195, i64* inttoptr (i64 1073810452 to i64*)
br label %213
196: ; preds = %5
%197 = call i32 @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.9, i64 0, i64 0))
%198 = load volatile i64, i64* inttoptr (i64 1073811472 to i64*)
%199 = or i64 %198, 16384
store volatile i64 %199, i64* inttoptr (i64 1073811472 to i64*)
%200 = call i32 (...) @delay_second()
%201 = load volatile i64, i64* inttoptr (i64 1073811476 to i64*)
%202 = or i64 %201, 16384
store volatile i64 %202, i64* inttoptr (i64 1073811476 to i64*)
br label %213
203: ; preds = %5
%204 = call i32 @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.9, i64 0, i64 0))
%205 = load volatile i64, i64* inttoptr (i64 1073811472 to i64*)
%206 = or i64 %205, 32768
store volatile i64 %206, i64* inttoptr (i64 1073811472 to i64*)
%207 = call i32 (...) @delay_second()
%208 = load volatile i64, i64* inttoptr (i64 1073811476 to i64*)
%209 = or i64 %208, 32768
store volatile i64 %209, i64* inttoptr (i64 1073811476 to i64*)
br label %213
210: ; preds = %5
%211 = call i32 @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.10, i64 0, i64 0))
br label %213
212: ; preds = %5
br label %213
213: ; preds = %212, %210, %203, %196, %189, %182, %175, %168, %161, %154, %147, %140, %133, %126, %119, %112, %105, %98, %91, %84, %77, %70, %63, %56, %49, %42, %35, %28, %21, %14, %7
br label %2
214: ; preds = %2
%215 = load i32, i32* %1
ret i32 %215
}

LLVM IR (-O2):
@str = [5 x i8] c"exit\00"
@str.30 = [5 x i8] c"No.0\00"
@str.31 = [5 x i8] c"No.9\00"
@str.32 = [5 x i8] c"No.8\00"
@str.33 = [5 x i8] c"No.7\00"
@str.34 = [5 x i8] c"No.6\00"
@str.35 = [5 x i8] c"No.5\00"
@str.36 = [5 x i8] c"No.4\00"
@str.37 = [5 x i8] c"No.3\00"
@str.38 = [5 x i8] c"No.2\00"
@str.39 = [5 x i8] c"No.1\00"
define i32 @Menu_ExeCmd() {
br label %1
1: ; preds = %3, %0
%2 = tail call i32 (...) @main_menu()
switch i32 %2, label %3 [
i32 0, label %209
i32 49, label %4
i32 50, label %11
i32 51, label %18
i32 52, label %25
i32 53, label %32
i32 54, label %39
i32 55, label %46
i32 56, label %53
i32 57, label %60
i32 48, label %67
i32 97, label %74
i32 98, label %81
i32 99, label %88
i32 100, label %95
i32 101, label %102
i32 102, label %109
i32 103, label %116
i32 104, label %123
i32 105, label %130
i32 106, label %137
i32 107, label %144
i32 108, label %151
i32 109, label %158
i32 110, label %165
i32 111, label %172
i32 112, label %179
i32 114, label %186
i32 115, label %193
i32 116, label %200
i32 113, label %207
]
3: ; preds = %1, %207, %200, %193, %186, %179, %172, %165, %158, %151, %144, %137, %130, %123, %116, %109, %102, %95, %88, %81, %74, %67, %60, %53, %46, %39, %32, %25, %18, %11, %4
br label %1
4: ; preds = %1
%5 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.39, i64 0, i64 0))
%6 = load volatile i64, i64* inttoptr (i64 1073809424 to i64*)
%7 = or i64 %6, 1
store volatile i64 %7, i64* inttoptr (i64 1073809424 to i64*)
%8 = tail call i32 (...) @delay_second()
%9 = load volatile i64, i64* inttoptr (i64 1073809428 to i64*)
%10 = or i64 %9, 1
store volatile i64 %10, i64* inttoptr (i64 1073809428 to i64*)
br label %3
11: ; preds = %1
%12 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.38, i64 0, i64 0))
%13 = load volatile i64, i64* inttoptr (i64 1073809424 to i64*)
%14 = or i64 %13, 2
store volatile i64 %14, i64* inttoptr (i64 1073809424 to i64*)
%15 = tail call i32 (...) @delay_second()
%16 = load volatile i64, i64* inttoptr (i64 1073809428 to i64*)
%17 = or i64 %16, 2
store volatile i64 %17, i64* inttoptr (i64 1073809428 to i64*)
br label %3
18: ; preds = %1
%19 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.37, i64 0, i64 0))
%20 = load volatile i64, i64* inttoptr (i64 1073809424 to i64*)
%21 = or i64 %20, 4
store volatile i64 %21, i64* inttoptr (i64 1073809424 to i64*)
%22 = tail call i32 (...) @delay_second()
%23 = load volatile i64, i64* inttoptr (i64 1073809428 to i64*)
%24 = or i64 %23, 4
store volatile i64 %24, i64* inttoptr (i64 1073809428 to i64*)
br label %3
25: ; preds = %1
%26 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.36, i64 0, i64 0))
%27 = load volatile i64, i64* inttoptr (i64 1073809424 to i64*)
%28 = or i64 %27, 8
store volatile i64 %28, i64* inttoptr (i64 1073809424 to i64*)
%29 = tail call i32 (...) @delay_second()
%30 = load volatile i64, i64* inttoptr (i64 1073809428 to i64*)
%31 = or i64 %30, 8
store volatile i64 %31, i64* inttoptr (i64 1073809428 to i64*)
br label %3
32: ; preds = %1
%33 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.35, i64 0, i64 0))
%34 = load volatile i64, i64* inttoptr (i64 1073809424 to i64*)
%35 = or i64 %34, 16
store volatile i64 %35, i64* inttoptr (i64 1073809424 to i64*)
%36 = tail call i32 (...) @delay_second()
%37 = load volatile i64, i64* inttoptr (i64 1073809428 to i64*)
%38 = or i64 %37, 16
store volatile i64 %38, i64* inttoptr (i64 1073809428 to i64*)
br label %3
39: ; preds = %1
%40 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.34, i64 0, i64 0))
%41 = load volatile i64, i64* inttoptr (i64 1073809424 to i64*)
%42 = or i64 %41, 32
store volatile i64 %42, i64* inttoptr (i64 1073809424 to i64*)
%43 = tail call i32 (...) @delay_second()
%44 = load volatile i64, i64* inttoptr (i64 1073809428 to i64*)
%45 = or i64 %44, 32
store volatile i64 %45, i64* inttoptr (i64 1073809428 to i64*)
br label %3
46: ; preds = %1
%47 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.33, i64 0, i64 0))
%48 = load volatile i64, i64* inttoptr (i64 1073809424 to i64*)
%49 = or i64 %48, 64
store volatile i64 %49, i64* inttoptr (i64 1073809424 to i64*)
%50 = tail call i32 (...) @delay_second()
%51 = load volatile i64, i64* inttoptr (i64 1073809428 to i64*)
%52 = or i64 %51, 64
store volatile i64 %52, i64* inttoptr (i64 1073809428 to i64*)
br label %3
53: ; preds = %1
%54 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.32, i64 0, i64 0))
%55 = load volatile i64, i64* inttoptr (i64 1073809424 to i64*)
%56 = or i64 %55, 128
store volatile i64 %56, i64* inttoptr (i64 1073809424 to i64*)
%57 = tail call i32 (...) @delay_second()
%58 = load volatile i64, i64* inttoptr (i64 1073809428 to i64*)
%59 = or i64 %58, 128
store volatile i64 %59, i64* inttoptr (i64 1073809428 to i64*)
br label %3
60: ; preds = %1
%61 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.31, i64 0, i64 0))
%62 = load volatile i64, i64* inttoptr (i64 1073809424 to i64*)
%63 = or i64 %62, 256
store volatile i64 %63, i64* inttoptr (i64 1073809424 to i64*)
%64 = tail call i32 (...) @delay_second()
%65 = load volatile i64, i64* inttoptr (i64 1073809428 to i64*)
%66 = or i64 %65, 256
store volatile i64 %66, i64* inttoptr (i64 1073809428 to i64*)
br label %3
67: ; preds = %1
%68 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.30, i64 0, i64 0))
%69 = load volatile i64, i64* inttoptr (i64 1073809424 to i64*)
%70 = or i64 %69, 8192
store volatile i64 %70, i64* inttoptr (i64 1073809424 to i64*)
%71 = tail call i32 (...) @delay_second()
%72 = load volatile i64, i64* inttoptr (i64 1073809428 to i64*)
%73 = or i64 %72, 8192
store volatile i64 %73, i64* inttoptr (i64 1073809428 to i64*)
br label %3
74: ; preds = %1
%75 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.30, i64 0, i64 0))
%76 = load volatile i64, i64* inttoptr (i64 1073809424 to i64*)
%77 = or i64 %76, 16384
store volatile i64 %77, i64* inttoptr (i64 1073809424 to i64*)
%78 = tail call i32 (...) @delay_second()
%79 = load volatile i64, i64* inttoptr (i64 1073809428 to i64*)
%80 = or i64 %79, 16384
store volatile i64 %80, i64* inttoptr (i64 1073809428 to i64*)
br label %3
81: ; preds = %1
%82 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.30, i64 0, i64 0))
%83 = load volatile i64, i64* inttoptr (i64 1073809424 to i64*)
%84 = or i64 %83, 32768
store volatile i64 %84, i64* inttoptr (i64 1073809424 to i64*)
%85 = tail call i32 (...) @delay_second()
%86 = load volatile i64, i64* inttoptr (i64 1073809428 to i64*)
%87 = or i64 %86, 32768
store volatile i64 %87, i64* inttoptr (i64 1073809428 to i64*)
br label %3
88: ; preds = %1
%89 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.30, i64 0, i64 0))
%90 = load volatile i64, i64* inttoptr (i64 1073810448 to i64*)
%91 = or i64 %90, 1
store volatile i64 %91, i64* inttoptr (i64 1073810448 to i64*)
%92 = tail call i32 (...) @delay_second()
%93 = load volatile i64, i64* inttoptr (i64 1073810452 to i64*)
%94 = or i64 %93, 1
store volatile i64 %94, i64* inttoptr (i64 1073810452 to i64*)
br label %3
95: ; preds = %1
%96 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.30, i64 0, i64 0))
%97 = load volatile i64, i64* inttoptr (i64 1073810448 to i64*)
%98 = or i64 %97, 2
store volatile i64 %98, i64* inttoptr (i64 1073810448 to i64*)
%99 = tail call i32 (...) @delay_second()
%100 = load volatile i64, i64* inttoptr (i64 1073810452 to i64*)
%101 = or i64 %100, 2
store volatile i64 %101, i64* inttoptr (i64 1073810452 to i64*)
br label %3
102: ; preds = %1
%103 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.30, i64 0, i64 0))
%104 = load volatile i64, i64* inttoptr (i64 1073810448 to i64*)
%105 = or i64 %104, 4
store volatile i64 %105, i64* inttoptr (i64 1073810448 to i64*)
%106 = tail call i32 (...) @delay_second()
%107 = load volatile i64, i64* inttoptr (i64 1073810452 to i64*)
%108 = or i64 %107, 4
store volatile i64 %108, i64* inttoptr (i64 1073810452 to i64*)
br label %3
109: ; preds = %1
%110 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.30, i64 0, i64 0))
%111 = load volatile i64, i64* inttoptr (i64 1073810448 to i64*)
%112 = or i64 %111, 8
store volatile i64 %112, i64* inttoptr (i64 1073810448 to i64*)
%113 = tail call i32 (...) @delay_second()
%114 = load volatile i64, i64* inttoptr (i64 1073810452 to i64*)
%115 = or i64 %114, 8
store volatile i64 %115, i64* inttoptr (i64 1073810452 to i64*)
br label %3
116: ; preds = %1
%117 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.30, i64 0, i64 0))
%118 = load volatile i64, i64* inttoptr (i64 1073810448 to i64*)
%119 = or i64 %118, 16
store volatile i64 %119, i64* inttoptr (i64 1073810448 to i64*)
%120 = tail call i32 (...) @delay_second()
%121 = load volatile i64, i64* inttoptr (i64 1073810452 to i64*)
%122 = or i64 %121, 16
store volatile i64 %122, i64* inttoptr (i64 1073810452 to i64*)
br label %3
123: ; preds = %1
%124 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.30, i64 0, i64 0))
%125 = load volatile i64, i64* inttoptr (i64 1073810448 to i64*)
%126 = or i64 %125, 32
store volatile i64 %126, i64* inttoptr (i64 1073810448 to i64*)
%127 = tail call i32 (...) @delay_second()
%128 = load volatile i64, i64* inttoptr (i64 1073810452 to i64*)
%129 = or i64 %128, 32
store volatile i64 %129, i64* inttoptr (i64 1073810452 to i64*)
br label %3
130: ; preds = %1
%131 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.30, i64 0, i64 0))
%132 = load volatile i64, i64* inttoptr (i64 1073810448 to i64*)
%133 = or i64 %132, 64
store volatile i64 %133, i64* inttoptr (i64 1073810448 to i64*)
%134 = tail call i32 (...) @delay_second()
%135 = load volatile i64, i64* inttoptr (i64 1073810452 to i64*)
%136 = or i64 %135, 64
store volatile i64 %136, i64* inttoptr (i64 1073810452 to i64*)
br label %3
137: ; preds = %1
%138 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.30, i64 0, i64 0))
%139 = load volatile i64, i64* inttoptr (i64 1073810448 to i64*)
%140 = or i64 %139, 128
store volatile i64 %140, i64* inttoptr (i64 1073810448 to i64*)
%141 = tail call i32 (...) @delay_second()
%142 = load volatile i64, i64* inttoptr (i64 1073810452 to i64*)
%143 = or i64 %142, 128
store volatile i64 %143, i64* inttoptr (i64 1073810452 to i64*)
br label %3
144: ; preds = %1
%145 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.30, i64 0, i64 0))
%146 = load volatile i64, i64* inttoptr (i64 1073810448 to i64*)
%147 = or i64 %146, 256
store volatile i64 %147, i64* inttoptr (i64 1073810448 to i64*)
%148 = tail call i32 (...) @delay_second()
%149 = load volatile i64, i64* inttoptr (i64 1073810452 to i64*)
%150 = or i64 %149, 256
store volatile i64 %150, i64* inttoptr (i64 1073810452 to i64*)
br label %3
151: ; preds = %1
%152 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.30, i64 0, i64 0))
%153 = load volatile i64, i64* inttoptr (i64 1073810448 to i64*)
%154 = or i64 %153, 512
store volatile i64 %154, i64* inttoptr (i64 1073810448 to i64*)
%155 = tail call i32 (...) @delay_second()
%156 = load volatile i64, i64* inttoptr (i64 1073810452 to i64*)
%157 = or i64 %156, 512
store volatile i64 %157, i64* inttoptr (i64 1073810452 to i64*)
br label %3
158: ; preds = %1
%159 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.30, i64 0, i64 0))
%160 = load volatile i64, i64* inttoptr (i64 1073810448 to i64*)
%161 = or i64 %160, 1024
store volatile i64 %161, i64* inttoptr (i64 1073810448 to i64*)
%162 = tail call i32 (...) @delay_second()
%163 = load volatile i64, i64* inttoptr (i64 1073810452 to i64*)
%164 = or i64 %163, 1024
store volatile i64 %164, i64* inttoptr (i64 1073810452 to i64*)
br label %3
165: ; preds = %1
%166 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.30, i64 0, i64 0))
%167 = load volatile i64, i64* inttoptr (i64 1073810448 to i64*)
%168 = or i64 %167, 2048
store volatile i64 %168, i64* inttoptr (i64 1073810448 to i64*)
%169 = tail call i32 (...) @delay_second()
%170 = load volatile i64, i64* inttoptr (i64 1073810452 to i64*)
%171 = or i64 %170, 4096
store volatile i64 %171, i64* inttoptr (i64 1073810452 to i64*)
br label %3
172: ; preds = %1
%173 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.30, i64 0, i64 0))
%174 = load volatile i64, i64* inttoptr (i64 1073810448 to i64*)
%175 = or i64 %174, 8192
store volatile i64 %175, i64* inttoptr (i64 1073810448 to i64*)
%176 = tail call i32 (...) @delay_second()
%177 = load volatile i64, i64* inttoptr (i64 1073810452 to i64*)
%178 = or i64 %177, 8192
store volatile i64 %178, i64* inttoptr (i64 1073810452 to i64*)
br label %3
179: ; preds = %1
%180 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.30, i64 0, i64 0))
%181 = load volatile i64, i64* inttoptr (i64 1073810448 to i64*)
%182 = or i64 %181, 16384
store volatile i64 %182, i64* inttoptr (i64 1073810448 to i64*)
%183 = tail call i32 (...) @delay_second()
%184 = load volatile i64, i64* inttoptr (i64 1073810452 to i64*)
%185 = or i64 %184, 16384
store volatile i64 %185, i64* inttoptr (i64 1073810452 to i64*)
br label %3
186: ; preds = %1
%187 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.30, i64 0, i64 0))
%188 = load volatile i64, i64* inttoptr (i64 1073810448 to i64*)
%189 = or i64 %188, 32768
store volatile i64 %189, i64* inttoptr (i64 1073810448 to i64*)
%190 = tail call i32 (...) @delay_second()
%191 = load volatile i64, i64* inttoptr (i64 1073810452 to i64*)
%192 = or i64 %191, 32768
store volatile i64 %192, i64* inttoptr (i64 1073810452 to i64*)
br label %3
193: ; preds = %1
%194 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.30, i64 0, i64 0))
%195 = load volatile i64, i64* inttoptr (i64 1073811472 to i64*)
%196 = or i64 %195, 16384
store volatile i64 %196, i64* inttoptr (i64 1073811472 to i64*)
%197 = tail call i32 (...) @delay_second()
%198 = load volatile i64, i64* inttoptr (i64 1073811476 to i64*)
%199 = or i64 %198, 16384
store volatile i64 %199, i64* inttoptr (i64 1073811476 to i64*)
br label %3
200: ; preds = %1
%201 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.30, i64 0, i64 0))
%202 = load volatile i64, i64* inttoptr (i64 1073811472 to i64*)
%203 = or i64 %202, 32768
store volatile i64 %203, i64* inttoptr (i64 1073811472 to i64*)
%204 = tail call i32 (...) @delay_second()
%205 = load volatile i64, i64* inttoptr (i64 1073811476 to i64*)
%206 = or i64 %205, 32768
store volatile i64 %206, i64* inttoptr (i64 1073811476 to i64*)
br label %3
207: ; preds = %1
%208 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str, i64 0, i64 0))
br label %3
209: ; preds = %1
ret i32 0
}