#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 clear_stats(int, char **, int, char const *);
int conf_pm(int, char **, int, char const *);
int device_up(int, char **, int, char const *);
int dump_mc7(int, char **, int, char const *);
int dump_regs(int, char **, int, char const *);
int dump_tcam(int, char **, int, char const *);
int filter_config(int, char **, int, char const *);
int get_sge_context(int, char **, int, char const *);
int get_sge_desc(int, char **, int, char const *);
int get_tcb2(int, char **, int, char const *);
int get_up_ioqs(int, char **, int, char const *);
int get_up_la(int, char **, int, char const *);
int load_boot(int, char **, int, char const *);
int load_fw(int, char **, int, char const *);
int load_ofld_policy(int, char **, int, char const *);
int mdio_io(int, char **, int, char const *);
int meminfo(int, char **, int, char const *);
int mtu_tab_op(int, char **, int, char const *);
int pktsched(int, char **, int, char const *);
int proto_sram_op(int, char **, int, char const *);
int qset_config(int, char **, int, char const *);
int qset_num_config(int, char **, int, char const *);
int register_io(int, char **, int, char const *);
int setup_lro(int, char **, int, char const *);
int setup_napi(int, char **, int, char const *);
int /*<<< orphan*/ stderr;
int /*<<< orphan*/ strcmp(char *, char *);
int trace_config(int, char **, int, char const *);
int /*<<< orphan*/ usage(int /*<<< orphan*/);
int run_cmd(int argc, char *argv[], const char *iff_name) {
  int r = -1;
  if (!strcmp(argv[2], "reg"))
    r = register_io(argc, argv, 3, iff_name);
  else if (!strcmp(argv[2], "mdio"))
    r = mdio_io(argc, argv, 3, iff_name);
  else if (!strcmp(argv[2], "up"))
    r = device_up(argc, argv, 3, iff_name);
  else if (!strcmp(argv[2], "mtus"))
    r = mtu_tab_op(argc, argv, 3, iff_name);
  else if (!strcmp(argv[2], "pm"))
    r = conf_pm(argc, argv, 3, iff_name);
  else if (!strcmp(argv[2], "regdump"))
    r = dump_regs(argc, argv, 3, iff_name);
  else if (!strcmp(argv[2], "tcamdump"))
    r = dump_tcam(argc, argv, 3, iff_name);
  else if (!strcmp(argv[2], "memdump"))
    r = dump_mc7(argc, argv, 3, iff_name);
  else if (!strcmp(argv[2], "meminfo"))
    r = meminfo(argc, argv, 3, iff_name);
  else if (!strcmp(argv[2], "context"))
    r = get_sge_context(argc, argv, 3, iff_name);
  else if (!strcmp(argv[2], "desc"))
    r = get_sge_desc(argc, argv, 3, iff_name);
  else if (!strcmp(argv[2], "loadfw"))
    r = load_fw(argc, argv, 3, iff_name);
  else if (!strcmp(argv[2], "loadboot"))
    r = load_boot(argc, argv, 3, iff_name);
  else if (!strcmp(argv[2], "policy"))
    r = load_ofld_policy(argc, argv, 3, iff_name);
  else if (!strcmp(argv[2], "proto"))
    r = proto_sram_op(argc, argv, 3, iff_name);
  else if (!strcmp(argv[2], "qset"))
    r = qset_config(argc, argv, 3, iff_name);
  else if (!strcmp(argv[2], "qsets"))
    r = qset_num_config(argc, argv, 3, iff_name);
  else if (!strcmp(argv[2], "trace"))
    r = trace_config(argc, argv, 3, iff_name);
  else if (!strcmp(argv[2], "pktsched"))
    r = pktsched(argc, argv, 3, iff_name);
  else if (!strcmp(argv[2], "napi"))
    r = setup_napi(argc, argv, 3, iff_name);
  else if (!strcmp(argv[2], "lro"))
    r = setup_lro(argc, argv, 3, iff_name);
  else if (!strcmp(argv[2], "tcb"))
    r = get_tcb2(argc, argv, 3, iff_name);
  else if (!strcmp(argv[2], "filter"))
    r = filter_config(argc, argv, 3, iff_name);
  else if (!strcmp(argv[2], "clearstats"))
    r = clear_stats(argc, argv, 3, iff_name);
  else if (!strcmp(argv[2], "la"))
    r = get_up_la(argc, argv, 3, iff_name);
  else if (!strcmp(argv[2], "ioqs"))
    r = get_up_ioqs(argc, argv, 3, iff_name);
  if (r == -1)
    usage(stderr);
  return 0;
}


x86 assembly (clang, -O0):
<run_cmd>:
push   %rbp
mov    %rsp,%rbp
sub    $0x20,%rsp
mov    %edi,-0x4(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
movl   $0xffffffff,-0x1c(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0xd17(%rip),%rsi
call   10d0 <strcmp@plt>
cmp    $0x0,%eax
jne    1314 <run_cmd+0x54>
mov    -0x4(%rbp),%edi
mov    -0x10(%rbp),%rsi
mov    -0x18(%rbp),%rcx
mov    $0x3,%edx
call   1050 <register_io@plt>
mov    %eax,-0x1c(%rbp)
jmp    1936 <run_cmd+0x676>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0xce1(%rip),%rsi
call   10d0 <strcmp@plt>
cmp    $0x0,%eax
jne    134e <run_cmd+0x8e>
mov    -0x4(%rbp),%edi
mov    -0x10(%rbp),%rsi
mov    -0x18(%rbp),%rcx
mov    $0x3,%edx
call   1070 <mdio_io@plt>
mov    %eax,-0x1c(%rbp)
jmp    1931 <run_cmd+0x671>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0xcac(%rip),%rsi
call   10d0 <strcmp@plt>
cmp    $0x0,%eax
jne    1388 <run_cmd+0xc8>
mov    -0x4(%rbp),%edi
mov    -0x10(%rbp),%rsi
mov    -0x18(%rbp),%rcx
mov    $0x3,%edx
call   1110 <device_up@plt>
mov    %eax,-0x1c(%rbp)
jmp    192c <run_cmd+0x66c>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0xc75(%rip),%rsi
call   10d0 <strcmp@plt>
cmp    $0x0,%eax
jne    13c2 <run_cmd+0x102>
mov    -0x4(%rbp),%edi
mov    -0x10(%rbp),%rsi
mov    -0x18(%rbp),%rcx
mov    $0x3,%edx
call   1140 <mtu_tab_op@plt>
mov    %eax,-0x1c(%rbp)
jmp    1927 <run_cmd+0x667>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0xc40(%rip),%rsi
call   10d0 <strcmp@plt>
cmp    $0x0,%eax
jne    13fc <run_cmd+0x13c>
mov    -0x4(%rbp),%edi
mov    -0x10(%rbp),%rsi
mov    -0x18(%rbp),%rcx
mov    $0x3,%edx
call   1080 <conf_pm@plt>
mov    %eax,-0x1c(%rbp)
jmp    1922 <run_cmd+0x662>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0xc09(%rip),%rsi
call   10d0 <strcmp@plt>
cmp    $0x0,%eax
jne    1436 <run_cmd+0x176>
mov    -0x4(%rbp),%edi
mov    -0x10(%rbp),%rsi
mov    -0x18(%rbp),%rcx
mov    $0x3,%edx
call   1100 <dump_regs@plt>
mov    %eax,-0x1c(%rbp)
jmp    191d <run_cmd+0x65d>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0xbd7(%rip),%rsi
call   10d0 <strcmp@plt>
cmp    $0x0,%eax
jne    1470 <run_cmd+0x1b0>
mov    -0x4(%rbp),%edi
mov    -0x10(%rbp),%rsi
mov    -0x18(%rbp),%rcx
mov    $0x3,%edx
call   1180 <dump_tcam@plt>
mov    %eax,-0x1c(%rbp)
jmp    1918 <run_cmd+0x658>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0xba6(%rip),%rsi
call   10d0 <strcmp@plt>
cmp    $0x0,%eax
jne    14aa <run_cmd+0x1ea>
mov    -0x4(%rbp),%edi
mov    -0x10(%rbp),%rsi
mov    -0x18(%rbp),%rcx
mov    $0x3,%edx
call   10e0 <dump_mc7@plt>
mov    %eax,-0x1c(%rbp)
jmp    1913 <run_cmd+0x653>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0xb74(%rip),%rsi
call   10d0 <strcmp@plt>
cmp    $0x0,%eax
jne    14e4 <run_cmd+0x224>
mov    -0x4(%rbp),%edi
mov    -0x10(%rbp),%rsi
mov    -0x18(%rbp),%rcx
mov    $0x3,%edx
call   1170 <meminfo@plt>
mov    %eax,-0x1c(%rbp)
jmp    190e <run_cmd+0x64e>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0xb42(%rip),%rsi
call   10d0 <strcmp@plt>
cmp    $0x0,%eax
jne    151e <run_cmd+0x25e>
mov    -0x4(%rbp),%edi
mov    -0x10(%rbp),%rsi
mov    -0x18(%rbp),%rcx
mov    $0x3,%edx
call   1040 <get_sge_context@plt>
mov    %eax,-0x1c(%rbp)
jmp    1909 <run_cmd+0x649>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0xb10(%rip),%rsi
call   10d0 <strcmp@plt>
cmp    $0x0,%eax
jne    1558 <run_cmd+0x298>
mov    -0x4(%rbp),%edi
mov    -0x10(%rbp),%rsi
mov    -0x18(%rbp),%rcx
mov    $0x3,%edx
call   1130 <get_sge_desc@plt>
mov    %eax,-0x1c(%rbp)
jmp    1904 <run_cmd+0x644>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0xadb(%rip),%rsi
call   10d0 <strcmp@plt>
cmp    $0x0,%eax
jne    1592 <run_cmd+0x2d2>
mov    -0x4(%rbp),%edi
mov    -0x10(%rbp),%rsi
mov    -0x18(%rbp),%rcx
mov    $0x3,%edx
call   11c0 <load_fw@plt>
mov    %eax,-0x1c(%rbp)
jmp    18ff <run_cmd+0x63f>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0xaa8(%rip),%rsi
call   10d0 <strcmp@plt>
cmp    $0x0,%eax
jne    15cc <run_cmd+0x30c>
mov    -0x4(%rbp),%edi
mov    -0x10(%rbp),%rsi
mov    -0x18(%rbp),%rcx
mov    $0x3,%edx
call   11d0 <load_boot@plt>
mov    %eax,-0x1c(%rbp)
jmp    18fa <run_cmd+0x63a>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0xa77(%rip),%rsi
call   10d0 <strcmp@plt>
cmp    $0x0,%eax
jne    1606 <run_cmd+0x346>
mov    -0x4(%rbp),%edi
mov    -0x10(%rbp),%rsi
mov    -0x18(%rbp),%rcx
mov    $0x3,%edx
call   1190 <load_ofld_policy@plt>
mov    %eax,-0x1c(%rbp)
jmp    18f5 <run_cmd+0x635>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0xa44(%rip),%rsi
call   10d0 <strcmp@plt>
cmp    $0x0,%eax
jne    1640 <run_cmd+0x380>
mov    -0x4(%rbp),%edi
mov    -0x10(%rbp),%rsi
mov    -0x18(%rbp),%rcx
mov    $0x3,%edx
call   11e0 <proto_sram_op@plt>
mov    %eax,-0x1c(%rbp)
jmp    18f0 <run_cmd+0x630>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0xa10(%rip),%rsi
call   10d0 <strcmp@plt>
cmp    $0x0,%eax
jne    167a <run_cmd+0x3ba>
mov    -0x4(%rbp),%edi
mov    -0x10(%rbp),%rsi
mov    -0x18(%rbp),%rcx
mov    $0x3,%edx
call   10c0 <qset_config@plt>
mov    %eax,-0x1c(%rbp)
jmp    18eb <run_cmd+0x62b>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0x9db(%rip),%rsi
call   10d0 <strcmp@plt>
cmp    $0x0,%eax
jne    16b4 <run_cmd+0x3f4>
mov    -0x4(%rbp),%edi
mov    -0x10(%rbp),%rsi
mov    -0x18(%rbp),%rcx
mov    $0x3,%edx
call   1090 <qset_num_config@plt>
mov    %eax,-0x1c(%rbp)
jmp    18e6 <run_cmd+0x626>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0x9a7(%rip),%rsi
call   10d0 <strcmp@plt>
cmp    $0x0,%eax
jne    16ee <run_cmd+0x42e>
mov    -0x4(%rbp),%edi
mov    -0x10(%rbp),%rsi
mov    -0x18(%rbp),%rcx
mov    $0x3,%edx
call   10a0 <trace_config@plt>
mov    %eax,-0x1c(%rbp)
jmp    18e1 <run_cmd+0x621>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0x973(%rip),%rsi
call   10d0 <strcmp@plt>
cmp    $0x0,%eax
jne    1728 <run_cmd+0x468>
mov    -0x4(%rbp),%edi
mov    -0x10(%rbp),%rsi
mov    -0x18(%rbp),%rcx
mov    $0x3,%edx
call   1150 <pktsched@plt>
mov    %eax,-0x1c(%rbp)
jmp    18dc <run_cmd+0x61c>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0x942(%rip),%rsi
call   10d0 <strcmp@plt>
cmp    $0x0,%eax
jne    1762 <run_cmd+0x4a2>
mov    -0x4(%rbp),%edi
mov    -0x10(%rbp),%rsi
mov    -0x18(%rbp),%rcx
mov    $0x3,%edx
call   10b0 <setup_napi@plt>
mov    %eax,-0x1c(%rbp)
jmp    18d7 <run_cmd+0x617>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0x90d(%rip),%rsi
call   10d0 <strcmp@plt>
cmp    $0x0,%eax
jne    179c <run_cmd+0x4dc>
mov    -0x4(%rbp),%edi
mov    -0x10(%rbp),%rsi
mov    -0x18(%rbp),%rcx
mov    $0x3,%edx
call   1030 <setup_lro@plt>
mov    %eax,-0x1c(%rbp)
jmp    18d2 <run_cmd+0x612>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0x8d7(%rip),%rsi
call   10d0 <strcmp@plt>
cmp    $0x0,%eax
jne    17d6 <run_cmd+0x516>
mov    -0x4(%rbp),%edi
mov    -0x10(%rbp),%rsi
mov    -0x18(%rbp),%rcx
mov    $0x3,%edx
call   1060 <get_tcb2@plt>
mov    %eax,-0x1c(%rbp)
jmp    18cd <run_cmd+0x60d>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0x8a1(%rip),%rsi
call   10d0 <strcmp@plt>
cmp    $0x0,%eax
jne    1810 <run_cmd+0x550>
mov    -0x4(%rbp),%edi
mov    -0x10(%rbp),%rsi
mov    -0x18(%rbp),%rcx
mov    $0x3,%edx
call   10f0 <filter_config@plt>
mov    %eax,-0x1c(%rbp)
jmp    18c8 <run_cmd+0x608>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0x86e(%rip),%rsi
call   10d0 <strcmp@plt>
cmp    $0x0,%eax
jne    184a <run_cmd+0x58a>
mov    -0x4(%rbp),%edi
mov    -0x10(%rbp),%rsi
mov    -0x18(%rbp),%rcx
mov    $0x3,%edx
call   1160 <clear_stats@plt>
mov    %eax,-0x1c(%rbp)
jmp    18c3 <run_cmd+0x603>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0x83f(%rip),%rsi
call   10d0 <strcmp@plt>
cmp    $0x0,%eax
jne    1884 <run_cmd+0x5c4>
mov    -0x4(%rbp),%edi
mov    -0x10(%rbp),%rsi
mov    -0x18(%rbp),%rcx
mov    $0x3,%edx
call   11a0 <get_up_la@plt>
mov    %eax,-0x1c(%rbp)
jmp    18be <run_cmd+0x5fe>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0x808(%rip),%rsi
call   10d0 <strcmp@plt>
cmp    $0x0,%eax
jne    18b9 <run_cmd+0x5f9>
mov    -0x4(%rbp),%edi
mov    -0x10(%rbp),%rsi
mov    -0x18(%rbp),%rcx
mov    $0x3,%edx
call   11b0 <get_up_ioqs@plt>
mov    %eax,-0x1c(%rbp)
jmp    18be <run_cmd+0x5fe>
jmp    18c3 <run_cmd+0x603>
jmp    18c8 <run_cmd+0x608>
jmp    18cd <run_cmd+0x60d>
jmp    18d2 <run_cmd+0x612>
jmp    18d7 <run_cmd+0x617>
jmp    18dc <run_cmd+0x61c>
jmp    18e1 <run_cmd+0x621>
jmp    18e6 <run_cmd+0x626>
jmp    18eb <run_cmd+0x62b>
jmp    18f0 <run_cmd+0x630>
jmp    18f5 <run_cmd+0x635>
jmp    18fa <run_cmd+0x63a>
jmp    18ff <run_cmd+0x63f>
jmp    1904 <run_cmd+0x644>
jmp    1909 <run_cmd+0x649>
jmp    190e <run_cmd+0x64e>
jmp    1913 <run_cmd+0x653>
jmp    1918 <run_cmd+0x658>
jmp    191d <run_cmd+0x65d>
jmp    1922 <run_cmd+0x662>
jmp    1927 <run_cmd+0x667>
jmp    192c <run_cmd+0x66c>
jmp    1931 <run_cmd+0x671>
jmp    1936 <run_cmd+0x676>
cmpl   $0xffffffff,-0x1c(%rbp)
jne    194e <run_cmd+0x68e>
mov    0x2699(%rip),%rax
mov    (%rax),%edi
call   1120 <usage@plt>
xor    %eax,%eax
add    $0x20,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<run_cmd>:
push   %rbp
push   %r15
push   %r14
push   %rbx
push   %rax
mov    %rdx,%r14
mov    %rsi,%rbx
mov    %edi,%r15d
mov    0x10(%rsi),%rbp
lea    0xd25(%rip),%rsi
mov    %rbp,%rdi
call   10d0 <strcmp@plt>
test   %eax,%eax
je     1542 <run_cmd+0x282>
lea    0xd12(%rip),%rsi
mov    %rbp,%rdi
call   10d0 <strcmp@plt>
test   %eax,%eax
je     155a <run_cmd+0x29a>
lea    0xd00(%rip),%rsi
mov    %rbp,%rdi
call   10d0 <strcmp@plt>
test   %eax,%eax
je     1572 <run_cmd+0x2b2>
lea    0xcec(%rip),%rsi
mov    %rbp,%rdi
call   10d0 <strcmp@plt>
test   %eax,%eax
je     158a <run_cmd+0x2ca>
lea    0xcda(%rip),%rsi
mov    %rbp,%rdi
call   10d0 <strcmp@plt>
test   %eax,%eax
je     15a2 <run_cmd+0x2e2>
lea    0xcc6(%rip),%rsi
mov    %rbp,%rdi
call   10d0 <strcmp@plt>
test   %eax,%eax
je     15ba <run_cmd+0x2fa>
lea    0xcb7(%rip),%rsi
mov    %rbp,%rdi
call   10d0 <strcmp@plt>
test   %eax,%eax
je     15d2 <run_cmd+0x312>
lea    0xca9(%rip),%rsi
mov    %rbp,%rdi
call   10d0 <strcmp@plt>
test   %eax,%eax
je     15ea <run_cmd+0x32a>
lea    0xc9a(%rip),%rsi
mov    %rbp,%rdi
call   10d0 <strcmp@plt>
test   %eax,%eax
je     1602 <run_cmd+0x342>
lea    0xc8b(%rip),%rsi
mov    %rbp,%rdi
call   10d0 <strcmp@plt>
test   %eax,%eax
je     161a <run_cmd+0x35a>
lea    0xc7c(%rip),%rsi
mov    %rbp,%rdi
call   10d0 <strcmp@plt>
test   %eax,%eax
je     1632 <run_cmd+0x372>
lea    0xc6a(%rip),%rsi
mov    %rbp,%rdi
call   10d0 <strcmp@plt>
test   %eax,%eax
je     164a <run_cmd+0x38a>
lea    0xc5a(%rip),%rsi
mov    %rbp,%rdi
call   10d0 <strcmp@plt>
test   %eax,%eax
je     1662 <run_cmd+0x3a2>
lea    0xc4c(%rip),%rsi
mov    %rbp,%rdi
call   10d0 <strcmp@plt>
test   %eax,%eax
je     167a <run_cmd+0x3ba>
lea    0xc3c(%rip),%rsi
mov    %rbp,%rdi
call   10d0 <strcmp@plt>
test   %eax,%eax
je     1692 <run_cmd+0x3d2>
lea    0xc2b(%rip),%rsi
mov    %rbp,%rdi
call   10d0 <strcmp@plt>
test   %eax,%eax
je     16aa <run_cmd+0x3ea>
lea    0xc19(%rip),%rsi
mov    %rbp,%rdi
call   10d0 <strcmp@plt>
test   %eax,%eax
je     16c2 <run_cmd+0x402>
lea    0xc08(%rip),%rsi
mov    %rbp,%rdi
call   10d0 <strcmp@plt>
test   %eax,%eax
je     16da <run_cmd+0x41a>
lea    0xbf7(%rip),%rsi
mov    %rbp,%rdi
call   10d0 <strcmp@plt>
test   %eax,%eax
je     16f2 <run_cmd+0x432>
lea    0xbe9(%rip),%rsi
mov    %rbp,%rdi
call   10d0 <strcmp@plt>
test   %eax,%eax
je     1707 <run_cmd+0x447>
lea    0xbd7(%rip),%rsi
mov    %rbp,%rdi
call   10d0 <strcmp@plt>
test   %eax,%eax
je     171c <run_cmd+0x45c>
lea    0xbc4(%rip),%rsi
mov    %rbp,%rdi
call   10d0 <strcmp@plt>
test   %eax,%eax
je     1731 <run_cmd+0x471>
lea    0xbb1(%rip),%rsi
mov    %rbp,%rdi
call   10d0 <strcmp@plt>
test   %eax,%eax
je     1746 <run_cmd+0x486>
lea    0xba1(%rip),%rsi
mov    %rbp,%rdi
call   10d0 <strcmp@plt>
test   %eax,%eax
je     175b <run_cmd+0x49b>
lea    0xb95(%rip),%rsi
mov    %rbp,%rdi
call   10d0 <strcmp@plt>
test   %eax,%eax
je     1770 <run_cmd+0x4b0>
lea    0xb81(%rip),%rsi
mov    %rbp,%rdi
call   10d0 <strcmp@plt>
test   %eax,%eax
jne    1788 <run_cmd+0x4c8>
mov    %r15d,%edi
mov    %rbx,%rsi
mov    $0x3,%edx
mov    %r14,%rcx
call   11b0 <get_up_ioqs@plt>
jmp    1783 <run_cmd+0x4c3>
mov    %r15d,%edi
mov    %rbx,%rsi
mov    $0x3,%edx
mov    %r14,%rcx
call   1050 <register_io@plt>
jmp    1783 <run_cmd+0x4c3>
mov    %r15d,%edi
mov    %rbx,%rsi
mov    $0x3,%edx
mov    %r14,%rcx
call   1070 <mdio_io@plt>
jmp    1783 <run_cmd+0x4c3>
mov    %r15d,%edi
mov    %rbx,%rsi
mov    $0x3,%edx
mov    %r14,%rcx
call   1110 <device_up@plt>
jmp    1783 <run_cmd+0x4c3>
mov    %r15d,%edi
mov    %rbx,%rsi
mov    $0x3,%edx
mov    %r14,%rcx
call   1140 <mtu_tab_op@plt>
jmp    1783 <run_cmd+0x4c3>
mov    %r15d,%edi
mov    %rbx,%rsi
mov    $0x3,%edx
mov    %r14,%rcx
call   1080 <conf_pm@plt>
jmp    1783 <run_cmd+0x4c3>
mov    %r15d,%edi
mov    %rbx,%rsi
mov    $0x3,%edx
mov    %r14,%rcx
call   1100 <dump_regs@plt>
jmp    1783 <run_cmd+0x4c3>
mov    %r15d,%edi
mov    %rbx,%rsi
mov    $0x3,%edx
mov    %r14,%rcx
call   1180 <dump_tcam@plt>
jmp    1783 <run_cmd+0x4c3>
mov    %r15d,%edi
mov    %rbx,%rsi
mov    $0x3,%edx
mov    %r14,%rcx
call   10e0 <dump_mc7@plt>
jmp    1783 <run_cmd+0x4c3>
mov    %r15d,%edi
mov    %rbx,%rsi
mov    $0x3,%edx
mov    %r14,%rcx
call   1170 <meminfo@plt>
jmp    1783 <run_cmd+0x4c3>
mov    %r15d,%edi
mov    %rbx,%rsi
mov    $0x3,%edx
mov    %r14,%rcx
call   1040 <get_sge_context@plt>
jmp    1783 <run_cmd+0x4c3>
mov    %r15d,%edi
mov    %rbx,%rsi
mov    $0x3,%edx
mov    %r14,%rcx
call   1130 <get_sge_desc@plt>
jmp    1783 <run_cmd+0x4c3>
mov    %r15d,%edi
mov    %rbx,%rsi
mov    $0x3,%edx
mov    %r14,%rcx
call   11c0 <load_fw@plt>
jmp    1783 <run_cmd+0x4c3>
mov    %r15d,%edi
mov    %rbx,%rsi
mov    $0x3,%edx
mov    %r14,%rcx
call   11d0 <load_boot@plt>
jmp    1783 <run_cmd+0x4c3>
mov    %r15d,%edi
mov    %rbx,%rsi
mov    $0x3,%edx
mov    %r14,%rcx
call   1190 <load_ofld_policy@plt>
jmp    1783 <run_cmd+0x4c3>
mov    %r15d,%edi
mov    %rbx,%rsi
mov    $0x3,%edx
mov    %r14,%rcx
call   11e0 <proto_sram_op@plt>
jmp    1783 <run_cmd+0x4c3>
mov    %r15d,%edi
mov    %rbx,%rsi
mov    $0x3,%edx
mov    %r14,%rcx
call   10c0 <qset_config@plt>
jmp    1783 <run_cmd+0x4c3>
mov    %r15d,%edi
mov    %rbx,%rsi
mov    $0x3,%edx
mov    %r14,%rcx
call   1090 <qset_num_config@plt>
jmp    1783 <run_cmd+0x4c3>
mov    %r15d,%edi
mov    %rbx,%rsi
mov    $0x3,%edx
mov    %r14,%rcx
call   10a0 <trace_config@plt>
jmp    1783 <run_cmd+0x4c3>
mov    %r15d,%edi
mov    %rbx,%rsi
mov    $0x3,%edx
mov    %r14,%rcx
call   1150 <pktsched@plt>
jmp    1783 <run_cmd+0x4c3>
mov    %r15d,%edi
mov    %rbx,%rsi
mov    $0x3,%edx
mov    %r14,%rcx
call   10b0 <setup_napi@plt>
jmp    1783 <run_cmd+0x4c3>
mov    %r15d,%edi
mov    %rbx,%rsi
mov    $0x3,%edx
mov    %r14,%rcx
call   1030 <setup_lro@plt>
jmp    1783 <run_cmd+0x4c3>
mov    %r15d,%edi
mov    %rbx,%rsi
mov    $0x3,%edx
mov    %r14,%rcx
call   1060 <get_tcb2@plt>
jmp    1783 <run_cmd+0x4c3>
mov    %r15d,%edi
mov    %rbx,%rsi
mov    $0x3,%edx
mov    %r14,%rcx
call   10f0 <filter_config@plt>
jmp    1783 <run_cmd+0x4c3>
mov    %r15d,%edi
mov    %rbx,%rsi
mov    $0x3,%edx
mov    %r14,%rcx
call   1160 <clear_stats@plt>
jmp    1783 <run_cmd+0x4c3>
mov    %r15d,%edi
mov    %rbx,%rsi
mov    $0x3,%edx
mov    %r14,%rcx
call   11a0 <get_up_la@plt>
cmp    $0xffffffff,%eax
jne    1796 <run_cmd+0x4d6>
mov    0x2851(%rip),%rax
mov    (%rax),%edi
call   1120 <usage@plt>
xor    %eax,%eax
add    $0x8,%rsp
pop    %rbx
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@.str = [4 x i8] c"reg\00"
@.str.1 = [5 x i8] c"mdio\00"
@.str.2 = [3 x i8] c"up\00"
@.str.3 = [5 x i8] c"mtus\00"
@.str.4 = [3 x i8] c"pm\00"
@.str.5 = [8 x i8] c"regdump\00"
@.str.6 = [9 x i8] c"tcamdump\00"
@.str.7 = [8 x i8] c"memdump\00"
@.str.8 = [8 x i8] c"meminfo\00"
@.str.9 = [8 x i8] c"context\00"
@.str.10 = [5 x i8] c"desc\00"
@.str.11 = [7 x i8] c"loadfw\00"
@.str.12 = [9 x i8] c"loadboot\00"
@.str.13 = [7 x i8] c"policy\00"
@.str.14 = [6 x i8] c"proto\00"
@.str.15 = [5 x i8] c"qset\00"
@.str.16 = [6 x i8] c"qsets\00"
@.str.17 = [6 x i8] c"trace\00"
@.str.18 = [9 x i8] c"pktsched\00"
@.str.19 = [5 x i8] c"napi\00"
@.str.20 = [4 x i8] c"lro\00"
@.str.21 = [4 x i8] c"tcb\00"
@.str.22 = [7 x i8] c"filter\00"
@.str.23 = [11 x i8] c"clearstats\00"
@.str.24 = [3 x i8] c"la\00"
@.str.25 = [5 x i8] c"ioqs\00"
@stderr = global i32 0
define i32 @run_cmd(i32 %0, i8** %1, i8* %2) {
%4 = alloca i32
%5 = alloca i8**
%6 = alloca i8*
%7 = alloca i32
store i32 %0, i32* %4
store i8** %1, i8*** %5
store i8* %2, i8** %6
store i32 -1, i32* %7
%8 = load i8**, i8*** %5
%9 = getelementptr inbounds i8*, i8** %8, i64 2
%10 = load i8*, i8** %9
%11 = call i32 @strcmp(i8* %10, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0))
%12 = icmp ne i32 %11, 0
br i1 %12, label %18, label %13
13: ; preds = %3
%14 = load i32, i32* %4
%15 = load i8**, i8*** %5
%16 = load i8*, i8** %6
%17 = call i32 @register_io(i32 %14, i8** %15, i32 3, i8* %16)
store i32 %17, i32* %7
br label %318
18: ; preds = %3
%19 = load i8**, i8*** %5
%20 = getelementptr inbounds i8*, i8** %19, i64 2
%21 = load i8*, i8** %20
%22 = call i32 @strcmp(i8* %21, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0))
%23 = icmp ne i32 %22, 0
br i1 %23, label %29, label %24
24: ; preds = %18
%25 = load i32, i32* %4
%26 = load i8**, i8*** %5
%27 = load i8*, i8** %6
%28 = call i32 @mdio_io(i32 %25, i8** %26, i32 3, i8* %27)
store i32 %28, i32* %7
br label %317
29: ; preds = %18
%30 = load i8**, i8*** %5
%31 = getelementptr inbounds i8*, i8** %30, i64 2
%32 = load i8*, i8** %31
%33 = call i32 @strcmp(i8* %32, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0))
%34 = icmp ne i32 %33, 0
br i1 %34, label %40, label %35
35: ; preds = %29
%36 = load i32, i32* %4
%37 = load i8**, i8*** %5
%38 = load i8*, i8** %6
%39 = call i32 @device_up(i32 %36, i8** %37, i32 3, i8* %38)
store i32 %39, i32* %7
br label %316
40: ; preds = %29
%41 = load i8**, i8*** %5
%42 = getelementptr inbounds i8*, i8** %41, i64 2
%43 = load i8*, i8** %42
%44 = call i32 @strcmp(i8* %43, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.3, i64 0, i64 0))
%45 = icmp ne i32 %44, 0
br i1 %45, label %51, label %46
46: ; preds = %40
%47 = load i32, i32* %4
%48 = load i8**, i8*** %5
%49 = load i8*, i8** %6
%50 = call i32 @mtu_tab_op(i32 %47, i8** %48, i32 3, i8* %49)
store i32 %50, i32* %7
br label %315
51: ; preds = %40
%52 = load i8**, i8*** %5
%53 = getelementptr inbounds i8*, i8** %52, i64 2
%54 = load i8*, i8** %53
%55 = call i32 @strcmp(i8* %54, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0))
%56 = icmp ne i32 %55, 0
br i1 %56, label %62, label %57
57: ; preds = %51
%58 = load i32, i32* %4
%59 = load i8**, i8*** %5
%60 = load i8*, i8** %6
%61 = call i32 @conf_pm(i32 %58, i8** %59, i32 3, i8* %60)
store i32 %61, i32* %7
br label %314
62: ; preds = %51
%63 = load i8**, i8*** %5
%64 = getelementptr inbounds i8*, i8** %63, i64 2
%65 = load i8*, i8** %64
%66 = call i32 @strcmp(i8* %65, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.5, i64 0, i64 0))
%67 = icmp ne i32 %66, 0
br i1 %67, label %73, label %68
68: ; preds = %62
%69 = load i32, i32* %4
%70 = load i8**, i8*** %5
%71 = load i8*, i8** %6
%72 = call i32 @dump_regs(i32 %69, i8** %70, i32 3, i8* %71)
store i32 %72, i32* %7
br label %313
73: ; preds = %62
%74 = load i8**, i8*** %5
%75 = getelementptr inbounds i8*, i8** %74, i64 2
%76 = load i8*, i8** %75
%77 = call i32 @strcmp(i8* %76, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.6, i64 0, i64 0))
%78 = icmp ne i32 %77, 0
br i1 %78, label %84, label %79
79: ; preds = %73
%80 = load i32, i32* %4
%81 = load i8**, i8*** %5
%82 = load i8*, i8** %6
%83 = call i32 @dump_tcam(i32 %80, i8** %81, i32 3, i8* %82)
store i32 %83, i32* %7
br label %312
84: ; preds = %73
%85 = load i8**, i8*** %5
%86 = getelementptr inbounds i8*, i8** %85, i64 2
%87 = load i8*, i8** %86
%88 = call i32 @strcmp(i8* %87, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.7, i64 0, i64 0))
%89 = icmp ne i32 %88, 0
br i1 %89, label %95, label %90
90: ; preds = %84
%91 = load i32, i32* %4
%92 = load i8**, i8*** %5
%93 = load i8*, i8** %6
%94 = call i32 @dump_mc7(i32 %91, i8** %92, i32 3, i8* %93)
store i32 %94, i32* %7
br label %311
95: ; preds = %84
%96 = load i8**, i8*** %5
%97 = getelementptr inbounds i8*, i8** %96, i64 2
%98 = load i8*, i8** %97
%99 = call i32 @strcmp(i8* %98, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.8, i64 0, i64 0))
%100 = icmp ne i32 %99, 0
br i1 %100, label %106, label %101
101: ; preds = %95
%102 = load i32, i32* %4
%103 = load i8**, i8*** %5
%104 = load i8*, i8** %6
%105 = call i32 @meminfo(i32 %102, i8** %103, i32 3, i8* %104)
store i32 %105, i32* %7
br label %310
106: ; preds = %95
%107 = load i8**, i8*** %5
%108 = getelementptr inbounds i8*, i8** %107, i64 2
%109 = load i8*, i8** %108
%110 = call i32 @strcmp(i8* %109, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.9, i64 0, i64 0))
%111 = icmp ne i32 %110, 0
br i1 %111, label %117, label %112
112: ; preds = %106
%113 = load i32, i32* %4
%114 = load i8**, i8*** %5
%115 = load i8*, i8** %6
%116 = call i32 @get_sge_context(i32 %113, i8** %114, i32 3, i8* %115)
store i32 %116, i32* %7
br label %309
117: ; preds = %106
%118 = load i8**, i8*** %5
%119 = getelementptr inbounds i8*, i8** %118, i64 2
%120 = load i8*, i8** %119
%121 = call i32 @strcmp(i8* %120, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.10, i64 0, i64 0))
%122 = icmp ne i32 %121, 0
br i1 %122, label %128, label %123
123: ; preds = %117
%124 = load i32, i32* %4
%125 = load i8**, i8*** %5
%126 = load i8*, i8** %6
%127 = call i32 @get_sge_desc(i32 %124, i8** %125, i32 3, i8* %126)
store i32 %127, i32* %7
br label %308
128: ; preds = %117
%129 = load i8**, i8*** %5
%130 = getelementptr inbounds i8*, i8** %129, i64 2
%131 = load i8*, i8** %130
%132 = call i32 @strcmp(i8* %131, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.11, i64 0, i64 0))
%133 = icmp ne i32 %132, 0
br i1 %133, label %139, label %134
134: ; preds = %128
%135 = load i32, i32* %4
%136 = load i8**, i8*** %5
%137 = load i8*, i8** %6
%138 = call i32 @load_fw(i32 %135, i8** %136, i32 3, i8* %137)
store i32 %138, i32* %7
br label %307
139: ; preds = %128
%140 = load i8**, i8*** %5
%141 = getelementptr inbounds i8*, i8** %140, i64 2
%142 = load i8*, i8** %141
%143 = call i32 @strcmp(i8* %142, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.12, i64 0, i64 0))
%144 = icmp ne i32 %143, 0
br i1 %144, label %150, label %145
145: ; preds = %139
%146 = load i32, i32* %4
%147 = load i8**, i8*** %5
%148 = load i8*, i8** %6
%149 = call i32 @load_boot(i32 %146, i8** %147, i32 3, i8* %148)
store i32 %149, i32* %7
br label %306
150: ; preds = %139
%151 = load i8**, i8*** %5
%152 = getelementptr inbounds i8*, i8** %151, i64 2
%153 = load i8*, i8** %152
%154 = call i32 @strcmp(i8* %153, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.13, i64 0, i64 0))
%155 = icmp ne i32 %154, 0
br i1 %155, label %161, label %156
156: ; preds = %150
%157 = load i32, i32* %4
%158 = load i8**, i8*** %5
%159 = load i8*, i8** %6
%160 = call i32 @load_ofld_policy(i32 %157, i8** %158, i32 3, i8* %159)
store i32 %160, i32* %7
br label %305
161: ; preds = %150
%162 = load i8**, i8*** %5
%163 = getelementptr inbounds i8*, i8** %162, i64 2
%164 = load i8*, i8** %163
%165 = call i32 @strcmp(i8* %164, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.14, i64 0, i64 0))
%166 = icmp ne i32 %165, 0
br i1 %166, label %172, label %167
167: ; preds = %161
%168 = load i32, i32* %4
%169 = load i8**, i8*** %5
%170 = load i8*, i8** %6
%171 = call i32 @proto_sram_op(i32 %168, i8** %169, i32 3, i8* %170)
store i32 %171, i32* %7
br label %304
172: ; preds = %161
%173 = load i8**, i8*** %5
%174 = getelementptr inbounds i8*, i8** %173, i64 2
%175 = load i8*, i8** %174
%176 = call i32 @strcmp(i8* %175, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0))
%177 = icmp ne i32 %176, 0
br i1 %177, label %183, label %178
178: ; preds = %172
%179 = load i32, i32* %4
%180 = load i8**, i8*** %5
%181 = load i8*, i8** %6
%182 = call i32 @qset_config(i32 %179, i8** %180, i32 3, i8* %181)
store i32 %182, i32* %7
br label %303
183: ; preds = %172
%184 = load i8**, i8*** %5
%185 = getelementptr inbounds i8*, i8** %184, i64 2
%186 = load i8*, i8** %185
%187 = call i32 @strcmp(i8* %186, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.16, i64 0, i64 0))
%188 = icmp ne i32 %187, 0
br i1 %188, label %194, label %189
189: ; preds = %183
%190 = load i32, i32* %4
%191 = load i8**, i8*** %5
%192 = load i8*, i8** %6
%193 = call i32 @qset_num_config(i32 %190, i8** %191, i32 3, i8* %192)
store i32 %193, i32* %7
br label %302
194: ; preds = %183
%195 = load i8**, i8*** %5
%196 = getelementptr inbounds i8*, i8** %195, i64 2
%197 = load i8*, i8** %196
%198 = call i32 @strcmp(i8* %197, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0))
%199 = icmp ne i32 %198, 0
br i1 %199, label %205, label %200
200: ; preds = %194
%201 = load i32, i32* %4
%202 = load i8**, i8*** %5
%203 = load i8*, i8** %6
%204 = call i32 @trace_config(i32 %201, i8** %202, i32 3, i8* %203)
store i32 %204, i32* %7
br label %301
205: ; preds = %194
%206 = load i8**, i8*** %5
%207 = getelementptr inbounds i8*, i8** %206, i64 2
%208 = load i8*, i8** %207
%209 = call i32 @strcmp(i8* %208, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.18, i64 0, i64 0))
%210 = icmp ne i32 %209, 0
br i1 %210, label %216, label %211
211: ; preds = %205
%212 = load i32, i32* %4
%213 = load i8**, i8*** %5
%214 = load i8*, i8** %6
%215 = call i32 @pktsched(i32 %212, i8** %213, i32 3, i8* %214)
store i32 %215, i32* %7
br label %300
216: ; preds = %205
%217 = load i8**, i8*** %5
%218 = getelementptr inbounds i8*, i8** %217, i64 2
%219 = load i8*, i8** %218
%220 = call i32 @strcmp(i8* %219, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.19, i64 0, i64 0))
%221 = icmp ne i32 %220, 0
br i1 %221, label %227, label %222
222: ; preds = %216
%223 = load i32, i32* %4
%224 = load i8**, i8*** %5
%225 = load i8*, i8** %6
%226 = call i32 @setup_napi(i32 %223, i8** %224, i32 3, i8* %225)
store i32 %226, i32* %7
br label %299
227: ; preds = %216
%228 = load i8**, i8*** %5
%229 = getelementptr inbounds i8*, i8** %228, i64 2
%230 = load i8*, i8** %229
%231 = call i32 @strcmp(i8* %230, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.20, i64 0, i64 0))
%232 = icmp ne i32 %231, 0
br i1 %232, label %238, label %233
233: ; preds = %227
%234 = load i32, i32* %4
%235 = load i8**, i8*** %5
%236 = load i8*, i8** %6
%237 = call i32 @setup_lro(i32 %234, i8** %235, i32 3, i8* %236)
store i32 %237, i32* %7
br label %298
238: ; preds = %227
%239 = load i8**, i8*** %5
%240 = getelementptr inbounds i8*, i8** %239, i64 2
%241 = load i8*, i8** %240
%242 = call i32 @strcmp(i8* %241, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.21, i64 0, i64 0))
%243 = icmp ne i32 %242, 0
br i1 %243, label %249, label %244
244: ; preds = %238
%245 = load i32, i32* %4
%246 = load i8**, i8*** %5
%247 = load i8*, i8** %6
%248 = call i32 @get_tcb2(i32 %245, i8** %246, i32 3, i8* %247)
store i32 %248, i32* %7
br label %297
249: ; preds = %238
%250 = load i8**, i8*** %5
%251 = getelementptr inbounds i8*, i8** %250, i64 2
%252 = load i8*, i8** %251
%253 = call i32 @strcmp(i8* %252, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.22, i64 0, i64 0))
%254 = icmp ne i32 %253, 0
br i1 %254, label %260, label %255
255: ; preds = %249
%256 = load i32, i32* %4
%257 = load i8**, i8*** %5
%258 = load i8*, i8** %6
%259 = call i32 @filter_config(i32 %256, i8** %257, i32 3, i8* %258)
store i32 %259, i32* %7
br label %296
260: ; preds = %249
%261 = load i8**, i8*** %5
%262 = getelementptr inbounds i8*, i8** %261, i64 2
%263 = load i8*, i8** %262
%264 = call i32 @strcmp(i8* %263, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.23, i64 0, i64 0))
%265 = icmp ne i32 %264, 0
br i1 %265, label %271, label %266
266: ; preds = %260
%267 = load i32, i32* %4
%268 = load i8**, i8*** %5
%269 = load i8*, i8** %6
%270 = call i32 @clear_stats(i32 %267, i8** %268, i32 3, i8* %269)
store i32 %270, i32* %7
br label %295
271: ; preds = %260
%272 = load i8**, i8*** %5
%273 = getelementptr inbounds i8*, i8** %272, i64 2
%274 = load i8*, i8** %273
%275 = call i32 @strcmp(i8* %274, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.24, i64 0, i64 0))
%276 = icmp ne i32 %275, 0
br i1 %276, label %282, label %277
277: ; preds = %271
%278 = load i32, i32* %4
%279 = load i8**, i8*** %5
%280 = load i8*, i8** %6
%281 = call i32 @get_up_la(i32 %278, i8** %279, i32 3, i8* %280)
store i32 %281, i32* %7
br label %294
282: ; preds = %271
%283 = load i8**, i8*** %5
%284 = getelementptr inbounds i8*, i8** %283, i64 2
%285 = load i8*, i8** %284
%286 = call i32 @strcmp(i8* %285, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.25, i64 0, i64 0))
%287 = icmp ne i32 %286, 0
br i1 %287, label %293, label %288
288: ; preds = %282
%289 = load i32, i32* %4
%290 = load i8**, i8*** %5
%291 = load i8*, i8** %6
%292 = call i32 @get_up_ioqs(i32 %289, i8** %290, i32 3, i8* %291)
store i32 %292, i32* %7
br label %293
293: ; preds = %288, %282
br label %294
294: ; preds = %293, %277
br label %295
295: ; preds = %294, %266
br label %296
296: ; preds = %295, %255
br label %297
297: ; preds = %296, %244
br label %298
298: ; preds = %297, %233
br label %299
299: ; preds = %298, %222
br label %300
300: ; preds = %299, %211
br label %301
301: ; preds = %300, %200
br label %302
302: ; preds = %301, %189
br label %303
303: ; preds = %302, %178
br label %304
304: ; preds = %303, %167
br label %305
305: ; preds = %304, %156
br label %306
306: ; preds = %305, %145
br label %307
307: ; preds = %306, %134
br label %308
308: ; preds = %307, %123
br label %309
309: ; preds = %308, %112
br label %310
310: ; preds = %309, %101
br label %311
311: ; preds = %310, %90
br label %312
312: ; preds = %311, %79
br label %313
313: ; preds = %312, %68
br label %314
314: ; preds = %313, %57
br label %315
315: ; preds = %314, %46
br label %316
316: ; preds = %315, %35
br label %317
317: ; preds = %316, %24
br label %318
318: ; preds = %317, %13
%319 = load i32, i32* %7
%320 = icmp eq i32 %319, -1
br i1 %320, label %321, label %324
321: ; preds = %318
%322 = load i32, i32* @stderr
%323 = call i32 @usage(i32 %322)
br label %324
324: ; preds = %321, %318
ret i32 0
}

LLVM IR (-O2):
@.str = [4 x i8] c"reg\00"
@.str.1 = [5 x i8] c"mdio\00"
@.str.2 = [3 x i8] c"up\00"
@.str.3 = [5 x i8] c"mtus\00"
@.str.4 = [3 x i8] c"pm\00"
@.str.5 = [8 x i8] c"regdump\00"
@.str.6 = [9 x i8] c"tcamdump\00"
@.str.7 = [8 x i8] c"memdump\00"
@.str.8 = [8 x i8] c"meminfo\00"
@.str.9 = [8 x i8] c"context\00"
@.str.10 = [5 x i8] c"desc\00"
@.str.11 = [7 x i8] c"loadfw\00"
@.str.12 = [9 x i8] c"loadboot\00"
@.str.13 = [7 x i8] c"policy\00"
@.str.14 = [6 x i8] c"proto\00"
@.str.15 = [5 x i8] c"qset\00"
@.str.16 = [6 x i8] c"qsets\00"
@.str.17 = [6 x i8] c"trace\00"
@.str.18 = [9 x i8] c"pktsched\00"
@.str.19 = [5 x i8] c"napi\00"
@.str.20 = [4 x i8] c"lro\00"
@.str.21 = [4 x i8] c"tcb\00"
@.str.22 = [7 x i8] c"filter\00"
@.str.23 = [11 x i8] c"clearstats\00"
@.str.24 = [3 x i8] c"la\00"
@.str.25 = [5 x i8] c"ioqs\00"
@stderr = global i32 0
define i32 @run_cmd(i32 %0, i8** %1, i8* %2) {
%4 = getelementptr inbounds i8*, i8** %1, i64 2
%5 = load i8*, i8** %4
%6 = tail call i32 @strcmp(i8* dereferenceable(1) %5, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0))
%7 = icmp eq i32 %6, 0
br i1 %7, label %8, label %10
8: ; preds = %3
%9 = tail call i32 @register_io(i32 %0, i8** %1, i32 3, i8* %2)
br label %135
10: ; preds = %3
%11 = tail call i32 @strcmp(i8* dereferenceable(1) %5, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0))
%12 = icmp eq i32 %11, 0
br i1 %12, label %13, label %15
13: ; preds = %10
%14 = tail call i32 @mdio_io(i32 %0, i8** %1, i32 3, i8* %2)
br label %135
15: ; preds = %10
%16 = tail call i32 @strcmp(i8* dereferenceable(1) %5, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0))
%17 = icmp eq i32 %16, 0
br i1 %17, label %18, label %20
18: ; preds = %15
%19 = tail call i32 @device_up(i32 %0, i8** %1, i32 3, i8* %2)
br label %135
20: ; preds = %15
%21 = tail call i32 @strcmp(i8* dereferenceable(1) %5, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.3, i64 0, i64 0))
%22 = icmp eq i32 %21, 0
br i1 %22, label %23, label %25
23: ; preds = %20
%24 = tail call i32 @mtu_tab_op(i32 %0, i8** %1, i32 3, i8* %2)
br label %135
25: ; preds = %20
%26 = tail call i32 @strcmp(i8* dereferenceable(1) %5, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0))
%27 = icmp eq i32 %26, 0
br i1 %27, label %28, label %30
28: ; preds = %25
%29 = tail call i32 @conf_pm(i32 %0, i8** %1, i32 3, i8* %2)
br label %135
30: ; preds = %25
%31 = tail call i32 @strcmp(i8* dereferenceable(1) %5, i8* dereferenceable(8) getelementptr inbounds ([8 x i8], [8 x i8]* @.str.5, i64 0, i64 0))
%32 = icmp eq i32 %31, 0
br i1 %32, label %33, label %35
33: ; preds = %30
%34 = tail call i32 @dump_regs(i32 %0, i8** %1, i32 3, i8* %2)
br label %135
35: ; preds = %30
%36 = tail call i32 @strcmp(i8* dereferenceable(1) %5, i8* dereferenceable(9) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.6, i64 0, i64 0))
%37 = icmp eq i32 %36, 0
br i1 %37, label %38, label %40
38: ; preds = %35
%39 = tail call i32 @dump_tcam(i32 %0, i8** %1, i32 3, i8* %2)
br label %135
40: ; preds = %35
%41 = tail call i32 @strcmp(i8* dereferenceable(1) %5, i8* dereferenceable(8) getelementptr inbounds ([8 x i8], [8 x i8]* @.str.7, i64 0, i64 0))
%42 = icmp eq i32 %41, 0
br i1 %42, label %43, label %45
43: ; preds = %40
%44 = tail call i32 @dump_mc7(i32 %0, i8** %1, i32 3, i8* %2)
br label %135
45: ; preds = %40
%46 = tail call i32 @strcmp(i8* dereferenceable(1) %5, i8* dereferenceable(8) getelementptr inbounds ([8 x i8], [8 x i8]* @.str.8, i64 0, i64 0))
%47 = icmp eq i32 %46, 0
br i1 %47, label %48, label %50
48: ; preds = %45
%49 = tail call i32 @meminfo(i32 %0, i8** %1, i32 3, i8* %2)
br label %135
50: ; preds = %45
%51 = tail call i32 @strcmp(i8* dereferenceable(1) %5, i8* dereferenceable(8) getelementptr inbounds ([8 x i8], [8 x i8]* @.str.9, i64 0, i64 0))
%52 = icmp eq i32 %51, 0
br i1 %52, label %53, label %55
53: ; preds = %50
%54 = tail call i32 @get_sge_context(i32 %0, i8** %1, i32 3, i8* %2)
br label %135
55: ; preds = %50
%56 = tail call i32 @strcmp(i8* dereferenceable(1) %5, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.10, i64 0, i64 0))
%57 = icmp eq i32 %56, 0
br i1 %57, label %58, label %60
58: ; preds = %55
%59 = tail call i32 @get_sge_desc(i32 %0, i8** %1, i32 3, i8* %2)
br label %135
60: ; preds = %55
%61 = tail call i32 @strcmp(i8* dereferenceable(1) %5, i8* dereferenceable(7) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.11, i64 0, i64 0))
%62 = icmp eq i32 %61, 0
br i1 %62, label %63, label %65
63: ; preds = %60
%64 = tail call i32 @load_fw(i32 %0, i8** %1, i32 3, i8* %2)
br label %135
65: ; preds = %60
%66 = tail call i32 @strcmp(i8* dereferenceable(1) %5, i8* dereferenceable(9) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.12, i64 0, i64 0))
%67 = icmp eq i32 %66, 0
br i1 %67, label %68, label %70
68: ; preds = %65
%69 = tail call i32 @load_boot(i32 %0, i8** %1, i32 3, i8* %2)
br label %135
70: ; preds = %65
%71 = tail call i32 @strcmp(i8* dereferenceable(1) %5, i8* dereferenceable(7) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.13, i64 0, i64 0))
%72 = icmp eq i32 %71, 0
br i1 %72, label %73, label %75
73: ; preds = %70
%74 = tail call i32 @load_ofld_policy(i32 %0, i8** %1, i32 3, i8* %2)
br label %135
75: ; preds = %70
%76 = tail call i32 @strcmp(i8* dereferenceable(1) %5, i8* dereferenceable(6) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.14, i64 0, i64 0))
%77 = icmp eq i32 %76, 0
br i1 %77, label %78, label %80
78: ; preds = %75
%79 = tail call i32 @proto_sram_op(i32 %0, i8** %1, i32 3, i8* %2)
br label %135
80: ; preds = %75
%81 = tail call i32 @strcmp(i8* dereferenceable(1) %5, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0))
%82 = icmp eq i32 %81, 0
br i1 %82, label %83, label %85
83: ; preds = %80
%84 = tail call i32 @qset_config(i32 %0, i8** %1, i32 3, i8* %2)
br label %135
85: ; preds = %80
%86 = tail call i32 @strcmp(i8* dereferenceable(1) %5, i8* dereferenceable(6) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.16, i64 0, i64 0))
%87 = icmp eq i32 %86, 0
br i1 %87, label %88, label %90
88: ; preds = %85
%89 = tail call i32 @qset_num_config(i32 %0, i8** %1, i32 3, i8* %2)
br label %135
90: ; preds = %85
%91 = tail call i32 @strcmp(i8* dereferenceable(1) %5, i8* dereferenceable(6) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0))
%92 = icmp eq i32 %91, 0
br i1 %92, label %93, label %95
93: ; preds = %90
%94 = tail call i32 @trace_config(i32 %0, i8** %1, i32 3, i8* %2)
br label %135
95: ; preds = %90
%96 = tail call i32 @strcmp(i8* dereferenceable(1) %5, i8* dereferenceable(9) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.18, i64 0, i64 0))
%97 = icmp eq i32 %96, 0
br i1 %97, label %98, label %100
98: ; preds = %95
%99 = tail call i32 @pktsched(i32 %0, i8** %1, i32 3, i8* %2)
br label %135
100: ; preds = %95
%101 = tail call i32 @strcmp(i8* dereferenceable(1) %5, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.19, i64 0, i64 0))
%102 = icmp eq i32 %101, 0
br i1 %102, label %103, label %105
103: ; preds = %100
%104 = tail call i32 @setup_napi(i32 %0, i8** %1, i32 3, i8* %2)
br label %135
105: ; preds = %100
%106 = tail call i32 @strcmp(i8* dereferenceable(1) %5, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.20, i64 0, i64 0))
%107 = icmp eq i32 %106, 0
br i1 %107, label %108, label %110
108: ; preds = %105
%109 = tail call i32 @setup_lro(i32 %0, i8** %1, i32 3, i8* %2)
br label %135
110: ; preds = %105
%111 = tail call i32 @strcmp(i8* dereferenceable(1) %5, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.21, i64 0, i64 0))
%112 = icmp eq i32 %111, 0
br i1 %112, label %113, label %115
113: ; preds = %110
%114 = tail call i32 @get_tcb2(i32 %0, i8** %1, i32 3, i8* %2)
br label %135
115: ; preds = %110
%116 = tail call i32 @strcmp(i8* dereferenceable(1) %5, i8* dereferenceable(7) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.22, i64 0, i64 0))
%117 = icmp eq i32 %116, 0
br i1 %117, label %118, label %120
118: ; preds = %115
%119 = tail call i32 @filter_config(i32 %0, i8** %1, i32 3, i8* %2)
br label %135
120: ; preds = %115
%121 = tail call i32 @strcmp(i8* dereferenceable(1) %5, i8* dereferenceable(11) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.23, i64 0, i64 0))
%122 = icmp eq i32 %121, 0
br i1 %122, label %123, label %125
123: ; preds = %120
%124 = tail call i32 @clear_stats(i32 %0, i8** %1, i32 3, i8* %2)
br label %135
125: ; preds = %120
%126 = tail call i32 @strcmp(i8* dereferenceable(1) %5, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.24, i64 0, i64 0))
%127 = icmp eq i32 %126, 0
br i1 %127, label %128, label %130
128: ; preds = %125
%129 = tail call i32 @get_up_la(i32 %0, i8** %1, i32 3, i8* %2)
br label %135
130: ; preds = %125
%131 = tail call i32 @strcmp(i8* dereferenceable(1) %5, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.25, i64 0, i64 0))
%132 = icmp eq i32 %131, 0
br i1 %132, label %133, label %138
133: ; preds = %130
%134 = tail call i32 @get_up_ioqs(i32 %0, i8** %1, i32 3, i8* %2)
br label %135
135: ; preds = %13, %23, %33, %43, %53, %63, %73, %83, %93, %103, %113, %123, %133, %128, %118, %108, %98, %88, %78, %68, %58, %48, %38, %28, %18, %8
%136 = phi i32 [ %134, %133 ], [ %129, %128 ], [ %124, %123 ], [ %119, %118 ], [ %114, %113 ], [ %109, %108 ], [ %104, %103 ], [ %99, %98 ], [ %94, %93 ], [ %89, %88 ], [ %84, %83 ], [ %79, %78 ], [ %74, %73 ], [ %69, %68 ], [ %64, %63 ], [ %59, %58 ], [ %54, %53 ], [ %49, %48 ], [ %44, %43 ], [ %39, %38 ], [ %34, %33 ], [ %29, %28 ], [ %24, %23 ], [ %19, %18 ], [ %14, %13 ], [ %9, %8 ]
%137 = icmp eq i32 %136, -1
br i1 %137, label %138, label %141
138: ; preds = %130, %135
%139 = load i32, i32* @stderr
%140 = tail call i32 @usage(i32 %139)
br label %141
141: ; preds = %138, %135
ret i32 0
}