#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*/ strcmp(char *, char *);
char toupper(char);
void H_catalog(long i, long m, char *bseq, char **AtomName, long *without_H,
               long *with_H) {
  *without_H = 0;
  *with_H = 0;
  if (toupper(bseq[i]) == 'A') {
    if (!strcmp(AtomName[m], " O3'") || !strcmp(AtomName[m], " O4'") ||
        !strcmp(AtomName[m], " O5'") || !strcmp(AtomName[m], " O1P") ||
        !strcmp(AtomName[m], " O2P") || !strcmp(AtomName[m], " N9 ") ||
        !strcmp(AtomName[m], " N7 ") || !strcmp(AtomName[m], " N3 "))
      *without_H = 1;
    if (!strcmp(AtomName[m], " N1 ") || !strcmp(AtomName[m], " N6 ") ||
        !strcmp(AtomName[m], " C8 ") || !strcmp(AtomName[m], " C2 ") ||
        !strcmp(AtomName[m], " O2'"))
      *with_H = 1;
  } else if (toupper(bseq[i]) == 'G') {
    if (!strcmp(AtomName[m], " O3'") || !strcmp(AtomName[m], " O4'") ||
        !strcmp(AtomName[m], " O5'") || !strcmp(AtomName[m], " O1P") ||
        !strcmp(AtomName[m], " O2P") || !strcmp(AtomName[m], " N9 ") ||
        !strcmp(AtomName[m], " N7 ") || !strcmp(AtomName[m], " O6 ") ||
        !strcmp(AtomName[m], " N3 "))
      *without_H = 1;
    if (!strcmp(AtomName[m], " N1 ") || !strcmp(AtomName[m], " N2 ") ||
        !strcmp(AtomName[m], " C8 ") || !strcmp(AtomName[m], " O2'"))
      *with_H = 1;
  } else if (toupper(bseq[i]) == 'I') {
    if (!strcmp(AtomName[m], " O3'") || !strcmp(AtomName[m], " O4'") ||
        !strcmp(AtomName[m], " O5'") || !strcmp(AtomName[m], " O1P") ||
        !strcmp(AtomName[m], " O2P") || !strcmp(AtomName[m], " N9 ") ||
        !strcmp(AtomName[m], " N7 ") || !strcmp(AtomName[m], " O6 ") ||
        !strcmp(AtomName[m], " N3 "))
      *without_H = 1;
    if (!strcmp(AtomName[m], " N1 ") || !strcmp(AtomName[m], " C2 ") ||
        !strcmp(AtomName[m], " C8 ") || !strcmp(AtomName[m], " O2'"))
      *with_H = 1;
  } else if (toupper(bseq[i]) == 'U') {
    if (!strcmp(AtomName[m], " O3'") || !strcmp(AtomName[m], " O4'") ||
        !strcmp(AtomName[m], " O5'") || !strcmp(AtomName[m], " O1P") ||
        !strcmp(AtomName[m], " O2P") || !strcmp(AtomName[m], " O4 ") ||
        !strcmp(AtomName[m], " O2 ") || !strcmp(AtomName[m], " N1 "))
      *without_H = 1;
    if (!strcmp(AtomName[m], " N3 ") || !strcmp(AtomName[m], " C5 ") ||
        !strcmp(AtomName[m], " C6 ") || !strcmp(AtomName[m], " O2'"))
      *with_H = 1;
  } else if (toupper(bseq[i]) == 'C') {
    if (!strcmp(AtomName[m], " O3'") || !strcmp(AtomName[m], " O4'") ||
        !strcmp(AtomName[m], " O5'") || !strcmp(AtomName[m], " O1P") ||
        !strcmp(AtomName[m], " O2P") || !strcmp(AtomName[m], " N1 ") ||
        !strcmp(AtomName[m], " O2 "))
      *without_H = 1;
    if (!strcmp(AtomName[m], " N3 ") || !strcmp(AtomName[m], " N4 ") ||
        !strcmp(AtomName[m], " C5 ") || !strcmp(AtomName[m], " C6 ") ||
        !strcmp(AtomName[m], " O2'"))
      *with_H = 1;
  } else if (toupper(bseq[i]) == 'P') {
    if (!strcmp(AtomName[m], " O3'") || !strcmp(AtomName[m], " O4'") ||
        !strcmp(AtomName[m], " O5'") || !strcmp(AtomName[m], " O1P") ||
        !strcmp(AtomName[m], " O2P") || !strcmp(AtomName[m], " C5 ") ||
        !strcmp(AtomName[m], " O4 ") || !strcmp(AtomName[m], " O2 "))
      *without_H = 1;
    if (!strcmp(AtomName[m], " N1 ") || !strcmp(AtomName[m], " N3 ") ||
        !strcmp(AtomName[m], " C6 ") || !strcmp(AtomName[m], " O2'"))
      *with_H = 1;
  } else if (toupper(bseq[i]) == 'T') {
    if (!strcmp(AtomName[m], " O3'") || !strcmp(AtomName[m], " O4'") ||
        !strcmp(AtomName[m], " O5'") || !strcmp(AtomName[m], " O1P") ||
        !strcmp(AtomName[m], " O2P") || !strcmp(AtomName[m], " N1 ") ||
        !strcmp(AtomName[m], " O4 ") || !strcmp(AtomName[m], " O2 "))
      *without_H = 1;
    if (!strcmp(AtomName[m], " N3 ") || !strcmp(AtomName[m], " C5 ") ||
        !strcmp(AtomName[m], " C6 "))
      *with_H = 1;
  }
}


x86 assembly (clang, -O0):
<H_catalog>:
push   %rbp
mov    %rsp,%rbp
sub    $0x30,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %rcx,-0x20(%rbp)
mov    %r8,-0x28(%rbp)
mov    %r9,-0x30(%rbp)
mov    -0x28(%rbp),%rax
movq   $0x0,(%rax)
mov    -0x30(%rbp),%rax
movq   $0x0,(%rax)
mov    -0x18(%rbp),%rax
mov    -0x8(%rbp),%rcx
movsbl (%rax,%rcx,1),%edi
call   1030 <toupper@plt>
movsbl %al,%eax
cmp    $0x41,%eax
jne    133b <H_catalog+0x21b>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xe7a(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     127b <H_catalog+0x15b>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xe5e(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     127b <H_catalog+0x15b>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xe42(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     127b <H_catalog+0x15b>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xe26(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     127b <H_catalog+0x15b>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xe0a(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     127b <H_catalog+0x15b>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xdee(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     127b <H_catalog+0x15b>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xdd2(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     127b <H_catalog+0x15b>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xdb6(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1286 <H_catalog+0x166>
mov    -0x28(%rbp),%rax
movq   $0x1,(%rax)
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xd8f(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     132b <H_catalog+0x20b>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xd73(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     132b <H_catalog+0x20b>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xd57(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     132b <H_catalog+0x20b>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xd3b(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     132b <H_catalog+0x20b>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xd1f(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1336 <H_catalog+0x216>
mov    -0x30(%rbp),%rax
movq   $0x1,(%rax)
jmp    1e12 <H_catalog+0xcf2>
mov    -0x18(%rbp),%rax
mov    -0x8(%rbp),%rcx
movsbl (%rax,%rcx,1),%edi
call   1030 <toupper@plt>
movsbl %al,%eax
cmp    $0x47,%eax
jne    1520 <H_catalog+0x400>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xc95(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1481 <H_catalog+0x361>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xc79(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1481 <H_catalog+0x361>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xc5d(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1481 <H_catalog+0x361>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xc41(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1481 <H_catalog+0x361>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xc25(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1481 <H_catalog+0x361>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xc09(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1481 <H_catalog+0x361>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xbed(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1481 <H_catalog+0x361>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xbef(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1481 <H_catalog+0x361>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xbb0(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    148c <H_catalog+0x36c>
mov    -0x28(%rbp),%rax
movq   $0x1,(%rax)
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xb89(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1510 <H_catalog+0x3f0>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xb86(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1510 <H_catalog+0x3f0>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xb51(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1510 <H_catalog+0x3f0>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xb3a(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    151b <H_catalog+0x3fb>
mov    -0x30(%rbp),%rax
movq   $0x1,(%rax)
jmp    1e0d <H_catalog+0xced>
mov    -0x18(%rbp),%rax
mov    -0x8(%rbp),%rcx
movsbl (%rax,%rcx,1),%edi
call   1030 <toupper@plt>
movsbl %al,%eax
cmp    $0x49,%eax
jne    1705 <H_catalog+0x5e5>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xab0(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1666 <H_catalog+0x546>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xa94(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1666 <H_catalog+0x546>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xa78(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1666 <H_catalog+0x546>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xa5c(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1666 <H_catalog+0x546>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xa40(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1666 <H_catalog+0x546>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xa24(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1666 <H_catalog+0x546>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xa08(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1666 <H_catalog+0x546>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xa0a(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1666 <H_catalog+0x546>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x9cb(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1671 <H_catalog+0x551>
mov    -0x28(%rbp),%rax
movq   $0x1,(%rax)
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x9a4(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     16f5 <H_catalog+0x5d5>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x992(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     16f5 <H_catalog+0x5d5>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x96c(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     16f5 <H_catalog+0x5d5>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x955(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1700 <H_catalog+0x5e0>
mov    -0x30(%rbp),%rax
movq   $0x1,(%rax)
jmp    1e08 <H_catalog+0xce8>
mov    -0x18(%rbp),%rax
mov    -0x8(%rbp),%rcx
movsbl (%rax,%rcx,1),%edi
call   1030 <toupper@plt>
movsbl %al,%eax
cmp    $0x55,%eax
jne    18c9 <H_catalog+0x7a9>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x8cb(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     182a <H_catalog+0x70a>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x8af(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     182a <H_catalog+0x70a>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x893(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     182a <H_catalog+0x70a>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x877(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     182a <H_catalog+0x70a>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x85b(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     182a <H_catalog+0x70a>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x871(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     182a <H_catalog+0x70a>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x855(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     182a <H_catalog+0x70a>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x80c(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1835 <H_catalog+0x715>
mov    -0x28(%rbp),%rax
movq   $0x1,(%rax)
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x7db(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     18b9 <H_catalog+0x799>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x7ec(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     18b9 <H_catalog+0x799>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x7d0(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     18b9 <H_catalog+0x799>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x791(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    18c4 <H_catalog+0x7a4>
mov    -0x30(%rbp),%rax
movq   $0x1,(%rax)
jmp    1e03 <H_catalog+0xce3>
mov    -0x18(%rbp),%rax
mov    -0x8(%rbp),%rcx
movsbl (%rax,%rcx,1),%edi
call   1030 <toupper@plt>
movsbl %al,%eax
cmp    $0x43,%eax
jne    1a8d <H_catalog+0x96d>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x707(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     19cd <H_catalog+0x8ad>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x6eb(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     19cd <H_catalog+0x8ad>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x6cf(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     19cd <H_catalog+0x8ad>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x6b3(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     19cd <H_catalog+0x8ad>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x697(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     19cd <H_catalog+0x8ad>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x68a(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     19cd <H_catalog+0x8ad>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x691(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    19d8 <H_catalog+0x8b8>
mov    -0x28(%rbp),%rax
movq   $0x1,(%rax)
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x638(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1a7d <H_catalog+0x95d>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x653(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1a7d <H_catalog+0x95d>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x628(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1a7d <H_catalog+0x95d>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x60c(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1a7d <H_catalog+0x95d>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x5cd(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1a88 <H_catalog+0x968>
mov    -0x30(%rbp),%rax
movq   $0x1,(%rax)
jmp    1dfe <H_catalog+0xcde>
mov    -0x18(%rbp),%rax
mov    -0x8(%rbp),%rcx
movsbl (%rax,%rcx,1),%edi
call   1030 <toupper@plt>
movsbl %al,%eax
cmp    $0x50,%eax
jne    1c51 <H_catalog+0xb31>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x543(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1bb2 <H_catalog+0xa92>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x527(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1bb2 <H_catalog+0xa92>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x50b(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1bb2 <H_catalog+0xa92>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x4ef(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1bb2 <H_catalog+0xa92>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x4d3(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1bb2 <H_catalog+0xa92>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x4f3(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1bb2 <H_catalog+0xa92>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x4c8(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1bb2 <H_catalog+0xa92>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x4ac(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1bbd <H_catalog+0xa9d>
mov    -0x28(%rbp),%rax
movq   $0x1,(%rax)
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x458(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1c41 <H_catalog+0xb21>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x432(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1c41 <H_catalog+0xb21>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x448(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1c41 <H_catalog+0xb21>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x409(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1c4c <H_catalog+0xb2c>
mov    -0x30(%rbp),%rax
movq   $0x1,(%rax)
jmp    1df9 <H_catalog+0xcd9>
mov    -0x18(%rbp),%rax
mov    -0x8(%rbp),%rcx
movsbl (%rax,%rcx,1),%edi
call   1030 <toupper@plt>
movsbl %al,%eax
cmp    $0x54,%eax
jne    1df4 <H_catalog+0xcd4>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x37f(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1d76 <H_catalog+0xc56>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x363(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1d76 <H_catalog+0xc56>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x347(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1d76 <H_catalog+0xc56>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x32b(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1d76 <H_catalog+0xc56>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x30f(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1d76 <H_catalog+0xc56>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x302(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1d76 <H_catalog+0xc56>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x304(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1d76 <H_catalog+0xc56>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x2e8(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1d81 <H_catalog+0xc61>
mov    -0x28(%rbp),%rax
movq   $0x1,(%rax)
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x28f(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1de4 <H_catalog+0xcc4>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x2a0(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
je     1de4 <H_catalog+0xcc4>
mov    -0x20(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0x284(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1def <H_catalog+0xccf>
mov    -0x30(%rbp),%rax
movq   $0x1,(%rax)
jmp    1df4 <H_catalog+0xcd4>
jmp    1df9 <H_catalog+0xcd9>
jmp    1dfe <H_catalog+0xcde>
jmp    1e03 <H_catalog+0xce3>
jmp    1e08 <H_catalog+0xce8>
jmp    1e0d <H_catalog+0xced>
jmp    1e12 <H_catalog+0xcf2>
add    $0x30,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<H_catalog>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
push   %rax
mov    %r9,%r14
mov    %r8,%r15
mov    %rcx,%r12
mov    %rdx,%rbx
mov    %rsi,%r13
mov    %rdi,%rbp
movq   $0x0,(%r8)
movq   $0x0,(%r9)
movsbl (%rdx,%rdi,1),%edi
call   1030 <toupper@plt>
cmp    $0x41,%al
jne    1254 <H_catalog+0x134>
mov    (%r12,%r13,8),%rbx
lea    0xe99(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     11fc <H_catalog+0xdc>
lea    0xe87(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     11fc <H_catalog+0xdc>
lea    0xe79(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     11fc <H_catalog+0xdc>
lea    0xe6b(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     11fc <H_catalog+0xdc>
lea    0xe5d(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     11fc <H_catalog+0xdc>
lea    0xe4f(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     11fc <H_catalog+0xdc>
lea    0xe41(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     11fc <H_catalog+0xdc>
lea    0xe33(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
jne    1203 <H_catalog+0xe3>
movq   $0x1,(%r15)
lea    0xe1e(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     1613 <H_catalog+0x4f3>
lea    0xe0c(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     1613 <H_catalog+0x4f3>
lea    0xdfa(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     1613 <H_catalog+0x4f3>
lea    0xde8(%rip),%rsi
jmp    15f4 <H_catalog+0x4d4>
movsbl (%rbx,%rbp,1),%edi
call   1030 <toupper@plt>
cmp    $0x47,%al
jne    1346 <H_catalog+0x226>
mov    (%r12,%r13,8),%rbx
lea    0xd90(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     131c <H_catalog+0x1fc>
lea    0xd7e(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     131c <H_catalog+0x1fc>
lea    0xd6c(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     131c <H_catalog+0x1fc>
lea    0xd5e(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     131c <H_catalog+0x1fc>
lea    0xd50(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     131c <H_catalog+0x1fc>
lea    0xd42(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     131c <H_catalog+0x1fc>
lea    0xd34(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     131c <H_catalog+0x1fc>
lea    0xd44(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     131c <H_catalog+0x1fc>
lea    0xd13(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
jne    1323 <H_catalog+0x203>
movq   $0x1,(%r15)
lea    0xcfe(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     1613 <H_catalog+0x4f3>
lea    0xd05(%rip),%rsi
jmp    1433 <H_catalog+0x313>
movsbl (%rbx,%rbp,1),%edi
call   1030 <toupper@plt>
cmp    $0x49,%al
jne    144f <H_catalog+0x32f>
mov    (%r12,%r13,8),%rbx
lea    0xc9e(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     140e <H_catalog+0x2ee>
lea    0xc8c(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     140e <H_catalog+0x2ee>
lea    0xc7a(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     140e <H_catalog+0x2ee>
lea    0xc6c(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     140e <H_catalog+0x2ee>
lea    0xc5e(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     140e <H_catalog+0x2ee>
lea    0xc50(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     140e <H_catalog+0x2ee>
lea    0xc42(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     140e <H_catalog+0x2ee>
lea    0xc52(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     140e <H_catalog+0x2ee>
lea    0xc21(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
jne    1415 <H_catalog+0x2f5>
movq   $0x1,(%r15)
lea    0xc0c(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     1613 <H_catalog+0x4f3>
lea    0xc04(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     1613 <H_catalog+0x4f3>
lea    0xbe8(%rip),%rsi
jmp    15f4 <H_catalog+0x4d4>
movsbl (%rbx,%rbp,1),%edi
call   1030 <toupper@plt>
cmp    $0x55,%al
jne    1513 <H_catalog+0x3f3>
mov    (%r12,%r13,8),%rbx
lea    0xb95(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     1500 <H_catalog+0x3e0>
lea    0xb83(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     1500 <H_catalog+0x3e0>
lea    0xb75(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     1500 <H_catalog+0x3e0>
lea    0xb67(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     1500 <H_catalog+0x3e0>
lea    0xb59(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     1500 <H_catalog+0x3e0>
lea    0xb7d(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     1500 <H_catalog+0x3e0>
lea    0xb6f(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     1500 <H_catalog+0x3e0>
lea    0xb34(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
jne    1507 <H_catalog+0x3e7>
movq   $0x1,(%r15)
lea    0xb15(%rip),%rsi
jmp    15ce <H_catalog+0x4ae>
movsbl (%rbx,%rbp,1),%edi
call   1030 <toupper@plt>
cmp    $0x43,%al
jne    1629 <H_catalog+0x509>
mov    (%r12,%r13,8),%rbx
lea    0xad1(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     15ad <H_catalog+0x48d>
lea    0xac3(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     15ad <H_catalog+0x48d>
lea    0xab5(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     15ad <H_catalog+0x48d>
lea    0xaa7(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     15ad <H_catalog+0x48d>
lea    0xa99(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     15ad <H_catalog+0x48d>
lea    0xa9a(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     15ad <H_catalog+0x48d>
lea    0xaaf(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
jne    15b4 <H_catalog+0x494>
movq   $0x1,(%r15)
lea    0xa68(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     1613 <H_catalog+0x4f3>
lea    0xa91(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     1613 <H_catalog+0x4f3>
lea    0xa74(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     1613 <H_catalog+0x4f3>
lea    0xa66(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     1613 <H_catalog+0x4f3>
lea    0xa35(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
jne    161a <H_catalog+0x4fa>
movq   $0x1,(%r14)
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
movsbl (%rbx,%rbp,1),%edi
call   1030 <toupper@plt>
cmp    $0x50,%al
jne    1704 <H_catalog+0x5e4>
mov    (%r12,%r13,8),%rbx
lea    0x9bb(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     16da <H_catalog+0x5ba>
lea    0x9a9(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     16da <H_catalog+0x5ba>
lea    0x99b(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     16da <H_catalog+0x5ba>
lea    0x98d(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     16da <H_catalog+0x5ba>
lea    0x97f(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     16da <H_catalog+0x5ba>
lea    0x9ad(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     16da <H_catalog+0x5ba>
lea    0x990(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     16da <H_catalog+0x5ba>
lea    0x982(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
jne    16e1 <H_catalog+0x5c1>
movq   $0x1,(%r15)
lea    0x940(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     1613 <H_catalog+0x4f3>
lea    0x924(%rip),%rsi
jmp    15e1 <H_catalog+0x4c1>
movsbl (%rbx,%rbp,1),%edi
call   1030 <toupper@plt>
cmp    $0x54,%al
jne    161a <H_catalog+0x4fa>
mov    (%r12,%r13,8),%rbx
lea    0x8e0(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     17b5 <H_catalog+0x695>
lea    0x8ce(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     17b5 <H_catalog+0x695>
lea    0x8c0(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     17b5 <H_catalog+0x695>
lea    0x8b2(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     17b5 <H_catalog+0x695>
lea    0x8a4(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     17b5 <H_catalog+0x695>
lea    0x8a5(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     17b5 <H_catalog+0x695>
lea    0x8b5(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     17b5 <H_catalog+0x695>
lea    0x8a7(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
jne    17bc <H_catalog+0x69c>
movq   $0x1,(%r15)
lea    0x860(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     1613 <H_catalog+0x4f3>
lea    0x87b(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     1613 <H_catalog+0x4f3>
lea    0x869(%rip),%rsi
jmp    1607 <H_catalog+0x4e7>

LLVM IR (-O0):
@.str = [5 x i8] c" O3'\00"
@.str.1 = [5 x i8] c" O4'\00"
@.str.2 = [5 x i8] c" O5'\00"
@.str.3 = [5 x i8] c" O1P\00"
@.str.4 = [5 x i8] c" O2P\00"
@.str.5 = [5 x i8] c" N9 \00"
@.str.6 = [5 x i8] c" N7 \00"
@.str.7 = [5 x i8] c" N3 \00"
@.str.8 = [5 x i8] c" N1 \00"
@.str.9 = [5 x i8] c" N6 \00"
@.str.10 = [5 x i8] c" C8 \00"
@.str.11 = [5 x i8] c" C2 \00"
@.str.12 = [5 x i8] c" O2'\00"
@.str.13 = [5 x i8] c" O6 \00"
@.str.14 = [5 x i8] c" N2 \00"
@.str.15 = [5 x i8] c" O4 \00"
@.str.16 = [5 x i8] c" O2 \00"
@.str.17 = [5 x i8] c" C5 \00"
@.str.18 = [5 x i8] c" C6 \00"
@.str.19 = [5 x i8] c" N4 \00"
define void @H_catalog(i64 %0, i64 %1, i8* %2, i8** %3, i64* %4, i64* %5) {
%7 = alloca i64
%8 = alloca i64
%9 = alloca i8*
%10 = alloca i8**
%11 = alloca i64*
%12 = alloca i64*
store i64 %0, i64* %7
store i64 %1, i64* %8
store i8* %2, i8** %9
store i8** %3, i8*** %10
store i64* %4, i64** %11
store i64* %5, i64** %12
%13 = load i64*, i64** %11
store i64 0, i64* %13
%14 = load i64*, i64** %12
store i64 0, i64* %14
%15 = load i8*, i8** %9
%16 = load i64, i64* %7
%17 = getelementptr inbounds i8, i8* %15, i64 %16
%18 = load i8, i8* %17
%19 = call signext i8 @toupper(i8 signext %18)
%20 = sext i8 %19 to i32
%21 = icmp eq i32 %20, 65
br i1 %21, label %22, label %118
22: ; preds = %6
%23 = load i8**, i8*** %10
%24 = load i64, i64* %8
%25 = getelementptr inbounds i8*, i8** %23, i64 %24
%26 = load i8*, i8** %25
%27 = call i32 @strcmp(i8* %26, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0))
%28 = icmp ne i32 %27, 0
br i1 %28, label %29, label %78
29: ; preds = %22
%30 = load i8**, i8*** %10
%31 = load i64, i64* %8
%32 = getelementptr inbounds i8*, i8** %30, i64 %31
%33 = load i8*, i8** %32
%34 = call i32 @strcmp(i8* %33, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0))
%35 = icmp ne i32 %34, 0
br i1 %35, label %36, label %78
36: ; preds = %29
%37 = load i8**, i8*** %10
%38 = load i64, i64* %8
%39 = getelementptr inbounds i8*, i8** %37, i64 %38
%40 = load i8*, i8** %39
%41 = call i32 @strcmp(i8* %40, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0))
%42 = icmp ne i32 %41, 0
br i1 %42, label %43, label %78
43: ; preds = %36
%44 = load i8**, i8*** %10
%45 = load i64, i64* %8
%46 = getelementptr inbounds i8*, i8** %44, i64 %45
%47 = load i8*, i8** %46
%48 = call i32 @strcmp(i8* %47, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.3, i64 0, i64 0))
%49 = icmp ne i32 %48, 0
br i1 %49, label %50, label %78
50: ; preds = %43
%51 = load i8**, i8*** %10
%52 = load i64, i64* %8
%53 = getelementptr inbounds i8*, i8** %51, i64 %52
%54 = load i8*, i8** %53
%55 = call i32 @strcmp(i8* %54, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.4, i64 0, i64 0))
%56 = icmp ne i32 %55, 0
br i1 %56, label %57, label %78
57: ; preds = %50
%58 = load i8**, i8*** %10
%59 = load i64, i64* %8
%60 = getelementptr inbounds i8*, i8** %58, i64 %59
%61 = load i8*, i8** %60
%62 = call i32 @strcmp(i8* %61, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.5, i64 0, i64 0))
%63 = icmp ne i32 %62, 0
br i1 %63, label %64, label %78
64: ; preds = %57
%65 = load i8**, i8*** %10
%66 = load i64, i64* %8
%67 = getelementptr inbounds i8*, i8** %65, i64 %66
%68 = load i8*, i8** %67
%69 = call i32 @strcmp(i8* %68, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0))
%70 = icmp ne i32 %69, 0
br i1 %70, label %71, label %78
71: ; preds = %64
%72 = load i8**, i8*** %10
%73 = load i64, i64* %8
%74 = getelementptr inbounds i8*, i8** %72, i64 %73
%75 = load i8*, i8** %74
%76 = call i32 @strcmp(i8* %75, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.7, i64 0, i64 0))
%77 = icmp ne i32 %76, 0
br i1 %77, label %80, label %78
78: ; preds = %71, %64, %57, %50, %43, %36, %29, %22
%79 = load i64*, i64** %11
store i64 1, i64* %79
br label %80
80: ; preds = %78, %71
%81 = load i8**, i8*** %10
%82 = load i64, i64* %8
%83 = getelementptr inbounds i8*, i8** %81, i64 %82
%84 = load i8*, i8** %83
%85 = call i32 @strcmp(i8* %84, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.8, i64 0, i64 0))
%86 = icmp ne i32 %85, 0
br i1 %86, label %87, label %115
87: ; preds = %80
%88 = load i8**, i8*** %10
%89 = load i64, i64* %8
%90 = getelementptr inbounds i8*, i8** %88, i64 %89
%91 = load i8*, i8** %90
%92 = call i32 @strcmp(i8* %91, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.9, i64 0, i64 0))
%93 = icmp ne i32 %92, 0
br i1 %93, label %94, label %115
94: ; preds = %87
%95 = load i8**, i8*** %10
%96 = load i64, i64* %8
%97 = getelementptr inbounds i8*, i8** %95, i64 %96
%98 = load i8*, i8** %97
%99 = call i32 @strcmp(i8* %98, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.10, i64 0, i64 0))
%100 = icmp ne i32 %99, 0
br i1 %100, label %101, label %115
101: ; preds = %94
%102 = load i8**, i8*** %10
%103 = load i64, i64* %8
%104 = getelementptr inbounds i8*, i8** %102, i64 %103
%105 = load i8*, i8** %104
%106 = call i32 @strcmp(i8* %105, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.11, i64 0, i64 0))
%107 = icmp ne i32 %106, 0
br i1 %107, label %108, label %115
108: ; preds = %101
%109 = load i8**, i8*** %10
%110 = load i64, i64* %8
%111 = getelementptr inbounds i8*, i8** %109, i64 %110
%112 = load i8*, i8** %111
%113 = call i32 @strcmp(i8* %112, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.12, i64 0, i64 0))
%114 = icmp ne i32 %113, 0
br i1 %114, label %117, label %115
115: ; preds = %108, %101, %94, %87, %80
%116 = load i64*, i64** %12
store i64 1, i64* %116
br label %117
117: ; preds = %115, %108
br label %713
118: ; preds = %6
%119 = load i8*, i8** %9
%120 = load i64, i64* %7
%121 = getelementptr inbounds i8, i8* %119, i64 %120
%122 = load i8, i8* %121
%123 = call signext i8 @toupper(i8 signext %122)
%124 = sext i8 %123 to i32
%125 = icmp eq i32 %124, 71
br i1 %125, label %126, label %222
126: ; preds = %118
%127 = load i8**, i8*** %10
%128 = load i64, i64* %8
%129 = getelementptr inbounds i8*, i8** %127, i64 %128
%130 = load i8*, i8** %129
%131 = call i32 @strcmp(i8* %130, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0))
%132 = icmp ne i32 %131, 0
br i1 %132, label %133, label %189
133: ; preds = %126
%134 = load i8**, i8*** %10
%135 = load i64, i64* %8
%136 = getelementptr inbounds i8*, i8** %134, i64 %135
%137 = load i8*, i8** %136
%138 = call i32 @strcmp(i8* %137, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0))
%139 = icmp ne i32 %138, 0
br i1 %139, label %140, label %189
140: ; preds = %133
%141 = load i8**, i8*** %10
%142 = load i64, i64* %8
%143 = getelementptr inbounds i8*, i8** %141, i64 %142
%144 = load i8*, i8** %143
%145 = call i32 @strcmp(i8* %144, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0))
%146 = icmp ne i32 %145, 0
br i1 %146, label %147, label %189
147: ; preds = %140
%148 = load i8**, i8*** %10
%149 = load i64, i64* %8
%150 = getelementptr inbounds i8*, i8** %148, i64 %149
%151 = load i8*, i8** %150
%152 = call i32 @strcmp(i8* %151, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.3, i64 0, i64 0))
%153 = icmp ne i32 %152, 0
br i1 %153, label %154, label %189
154: ; preds = %147
%155 = load i8**, i8*** %10
%156 = load i64, i64* %8
%157 = getelementptr inbounds i8*, i8** %155, i64 %156
%158 = load i8*, i8** %157
%159 = call i32 @strcmp(i8* %158, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.4, i64 0, i64 0))
%160 = icmp ne i32 %159, 0
br i1 %160, label %161, label %189
161: ; preds = %154
%162 = load i8**, i8*** %10
%163 = load i64, i64* %8
%164 = getelementptr inbounds i8*, i8** %162, i64 %163
%165 = load i8*, i8** %164
%166 = call i32 @strcmp(i8* %165, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.5, i64 0, i64 0))
%167 = icmp ne i32 %166, 0
br i1 %167, label %168, label %189
168: ; preds = %161
%169 = load i8**, i8*** %10
%170 = load i64, i64* %8
%171 = getelementptr inbounds i8*, i8** %169, i64 %170
%172 = load i8*, i8** %171
%173 = call i32 @strcmp(i8* %172, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0))
%174 = icmp ne i32 %173, 0
br i1 %174, label %175, label %189
175: ; preds = %168
%176 = load i8**, i8*** %10
%177 = load i64, i64* %8
%178 = getelementptr inbounds i8*, i8** %176, i64 %177
%179 = load i8*, i8** %178
%180 = call i32 @strcmp(i8* %179, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.13, i64 0, i64 0))
%181 = icmp ne i32 %180, 0
br i1 %181, label %182, label %189
182: ; preds = %175
%183 = load i8**, i8*** %10
%184 = load i64, i64* %8
%185 = getelementptr inbounds i8*, i8** %183, i64 %184
%186 = load i8*, i8** %185
%187 = call i32 @strcmp(i8* %186, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.7, i64 0, i64 0))
%188 = icmp ne i32 %187, 0
br i1 %188, label %191, label %189
189: ; preds = %182, %175, %168, %161, %154, %147, %140, %133, %126
%190 = load i64*, i64** %11
store i64 1, i64* %190
br label %191
191: ; preds = %189, %182
%192 = load i8**, i8*** %10
%193 = load i64, i64* %8
%194 = getelementptr inbounds i8*, i8** %192, i64 %193
%195 = load i8*, i8** %194
%196 = call i32 @strcmp(i8* %195, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.8, i64 0, i64 0))
%197 = icmp ne i32 %196, 0
br i1 %197, label %198, label %219
198: ; preds = %191
%199 = load i8**, i8*** %10
%200 = load i64, i64* %8
%201 = getelementptr inbounds i8*, i8** %199, i64 %200
%202 = load i8*, i8** %201
%203 = call i32 @strcmp(i8* %202, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.14, i64 0, i64 0))
%204 = icmp ne i32 %203, 0
br i1 %204, label %205, label %219
205: ; preds = %198
%206 = load i8**, i8*** %10
%207 = load i64, i64* %8
%208 = getelementptr inbounds i8*, i8** %206, i64 %207
%209 = load i8*, i8** %208
%210 = call i32 @strcmp(i8* %209, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.10, i64 0, i64 0))
%211 = icmp ne i32 %210, 0
br i1 %211, label %212, label %219
212: ; preds = %205
%213 = load i8**, i8*** %10
%214 = load i64, i64* %8
%215 = getelementptr inbounds i8*, i8** %213, i64 %214
%216 = load i8*, i8** %215
%217 = call i32 @strcmp(i8* %216, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.12, i64 0, i64 0))
%218 = icmp ne i32 %217, 0
br i1 %218, label %221, label %219
219: ; preds = %212, %205, %198, %191
%220 = load i64*, i64** %12
store i64 1, i64* %220
br label %221
221: ; preds = %219, %212
br label %712
222: ; preds = %118
%223 = load i8*, i8** %9
%224 = load i64, i64* %7
%225 = getelementptr inbounds i8, i8* %223, i64 %224
%226 = load i8, i8* %225
%227 = call signext i8 @toupper(i8 signext %226)
%228 = sext i8 %227 to i32
%229 = icmp eq i32 %228, 73
br i1 %229, label %230, label %326
230: ; preds = %222
%231 = load i8**, i8*** %10
%232 = load i64, i64* %8
%233 = getelementptr inbounds i8*, i8** %231, i64 %232
%234 = load i8*, i8** %233
%235 = call i32 @strcmp(i8* %234, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0))
%236 = icmp ne i32 %235, 0
br i1 %236, label %237, label %293
237: ; preds = %230
%238 = load i8**, i8*** %10
%239 = load i64, i64* %8
%240 = getelementptr inbounds i8*, i8** %238, i64 %239
%241 = load i8*, i8** %240
%242 = call i32 @strcmp(i8* %241, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0))
%243 = icmp ne i32 %242, 0
br i1 %243, label %244, label %293
244: ; preds = %237
%245 = load i8**, i8*** %10
%246 = load i64, i64* %8
%247 = getelementptr inbounds i8*, i8** %245, i64 %246
%248 = load i8*, i8** %247
%249 = call i32 @strcmp(i8* %248, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0))
%250 = icmp ne i32 %249, 0
br i1 %250, label %251, label %293
251: ; preds = %244
%252 = load i8**, i8*** %10
%253 = load i64, i64* %8
%254 = getelementptr inbounds i8*, i8** %252, i64 %253
%255 = load i8*, i8** %254
%256 = call i32 @strcmp(i8* %255, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.3, i64 0, i64 0))
%257 = icmp ne i32 %256, 0
br i1 %257, label %258, label %293
258: ; preds = %251
%259 = load i8**, i8*** %10
%260 = load i64, i64* %8
%261 = getelementptr inbounds i8*, i8** %259, i64 %260
%262 = load i8*, i8** %261
%263 = call i32 @strcmp(i8* %262, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.4, i64 0, i64 0))
%264 = icmp ne i32 %263, 0
br i1 %264, label %265, label %293
265: ; preds = %258
%266 = load i8**, i8*** %10
%267 = load i64, i64* %8
%268 = getelementptr inbounds i8*, i8** %266, i64 %267
%269 = load i8*, i8** %268
%270 = call i32 @strcmp(i8* %269, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.5, i64 0, i64 0))
%271 = icmp ne i32 %270, 0
br i1 %271, label %272, label %293
272: ; preds = %265
%273 = load i8**, i8*** %10
%274 = load i64, i64* %8
%275 = getelementptr inbounds i8*, i8** %273, i64 %274
%276 = load i8*, i8** %275
%277 = call i32 @strcmp(i8* %276, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0))
%278 = icmp ne i32 %277, 0
br i1 %278, label %279, label %293
279: ; preds = %272
%280 = load i8**, i8*** %10
%281 = load i64, i64* %8
%282 = getelementptr inbounds i8*, i8** %280, i64 %281
%283 = load i8*, i8** %282
%284 = call i32 @strcmp(i8* %283, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.13, i64 0, i64 0))
%285 = icmp ne i32 %284, 0
br i1 %285, label %286, label %293
286: ; preds = %279
%287 = load i8**, i8*** %10
%288 = load i64, i64* %8
%289 = getelementptr inbounds i8*, i8** %287, i64 %288
%290 = load i8*, i8** %289
%291 = call i32 @strcmp(i8* %290, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.7, i64 0, i64 0))
%292 = icmp ne i32 %291, 0
br i1 %292, label %295, label %293
293: ; preds = %286, %279, %272, %265, %258, %251, %244, %237, %230
%294 = load i64*, i64** %11
store i64 1, i64* %294
br label %295
295: ; preds = %293, %286
%296 = load i8**, i8*** %10
%297 = load i64, i64* %8
%298 = getelementptr inbounds i8*, i8** %296, i64 %297
%299 = load i8*, i8** %298
%300 = call i32 @strcmp(i8* %299, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.8, i64 0, i64 0))
%301 = icmp ne i32 %300, 0
br i1 %301, label %302, label %323
302: ; preds = %295
%303 = load i8**, i8*** %10
%304 = load i64, i64* %8
%305 = getelementptr inbounds i8*, i8** %303, i64 %304
%306 = load i8*, i8** %305
%307 = call i32 @strcmp(i8* %306, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.11, i64 0, i64 0))
%308 = icmp ne i32 %307, 0
br i1 %308, label %309, label %323
309: ; preds = %302
%310 = load i8**, i8*** %10
%311 = load i64, i64* %8
%312 = getelementptr inbounds i8*, i8** %310, i64 %311
%313 = load i8*, i8** %312
%314 = call i32 @strcmp(i8* %313, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.10, i64 0, i64 0))
%315 = icmp ne i32 %314, 0
br i1 %315, label %316, label %323
316: ; preds = %309
%317 = load i8**, i8*** %10
%318 = load i64, i64* %8
%319 = getelementptr inbounds i8*, i8** %317, i64 %318
%320 = load i8*, i8** %319
%321 = call i32 @strcmp(i8* %320, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.12, i64 0, i64 0))
%322 = icmp ne i32 %321, 0
br i1 %322, label %325, label %323
323: ; preds = %316, %309, %302, %295
%324 = load i64*, i64** %12
store i64 1, i64* %324
br label %325
325: ; preds = %323, %316
br label %711
326: ; preds = %222
%327 = load i8*, i8** %9
%328 = load i64, i64* %7
%329 = getelementptr inbounds i8, i8* %327, i64 %328
%330 = load i8, i8* %329
%331 = call signext i8 @toupper(i8 signext %330)
%332 = sext i8 %331 to i32
%333 = icmp eq i32 %332, 85
br i1 %333, label %334, label %423
334: ; preds = %326
%335 = load i8**, i8*** %10
%336 = load i64, i64* %8
%337 = getelementptr inbounds i8*, i8** %335, i64 %336
%338 = load i8*, i8** %337
%339 = call i32 @strcmp(i8* %338, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0))
%340 = icmp ne i32 %339, 0
br i1 %340, label %341, label %390
341: ; preds = %334
%342 = load i8**, i8*** %10
%343 = load i64, i64* %8
%344 = getelementptr inbounds i8*, i8** %342, i64 %343
%345 = load i8*, i8** %344
%346 = call i32 @strcmp(i8* %345, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0))
%347 = icmp ne i32 %346, 0
br i1 %347, label %348, label %390
348: ; preds = %341
%349 = load i8**, i8*** %10
%350 = load i64, i64* %8
%351 = getelementptr inbounds i8*, i8** %349, i64 %350
%352 = load i8*, i8** %351
%353 = call i32 @strcmp(i8* %352, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0))
%354 = icmp ne i32 %353, 0
br i1 %354, label %355, label %390
355: ; preds = %348
%356 = load i8**, i8*** %10
%357 = load i64, i64* %8
%358 = getelementptr inbounds i8*, i8** %356, i64 %357
%359 = load i8*, i8** %358
%360 = call i32 @strcmp(i8* %359, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.3, i64 0, i64 0))
%361 = icmp ne i32 %360, 0
br i1 %361, label %362, label %390
362: ; preds = %355
%363 = load i8**, i8*** %10
%364 = load i64, i64* %8
%365 = getelementptr inbounds i8*, i8** %363, i64 %364
%366 = load i8*, i8** %365
%367 = call i32 @strcmp(i8* %366, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.4, i64 0, i64 0))
%368 = icmp ne i32 %367, 0
br i1 %368, label %369, label %390
369: ; preds = %362
%370 = load i8**, i8*** %10
%371 = load i64, i64* %8
%372 = getelementptr inbounds i8*, i8** %370, i64 %371
%373 = load i8*, i8** %372
%374 = call i32 @strcmp(i8* %373, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0))
%375 = icmp ne i32 %374, 0
br i1 %375, label %376, label %390
376: ; preds = %369
%377 = load i8**, i8*** %10
%378 = load i64, i64* %8
%379 = getelementptr inbounds i8*, i8** %377, i64 %378
%380 = load i8*, i8** %379
%381 = call i32 @strcmp(i8* %380, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.16, i64 0, i64 0))
%382 = icmp ne i32 %381, 0
br i1 %382, label %383, label %390
383: ; preds = %376
%384 = load i8**, i8*** %10
%385 = load i64, i64* %8
%386 = getelementptr inbounds i8*, i8** %384, i64 %385
%387 = load i8*, i8** %386
%388 = call i32 @strcmp(i8* %387, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.8, i64 0, i64 0))
%389 = icmp ne i32 %388, 0
br i1 %389, label %392, label %390
390: ; preds = %383, %376, %369, %362, %355, %348, %341, %334
%391 = load i64*, i64** %11
store i64 1, i64* %391
br label %392
392: ; preds = %390, %383
%393 = load i8**, i8*** %10
%394 = load i64, i64* %8
%395 = getelementptr inbounds i8*, i8** %393, i64 %394
%396 = load i8*, i8** %395
%397 = call i32 @strcmp(i8* %396, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.7, i64 0, i64 0))
%398 = icmp ne i32 %397, 0
br i1 %398, label %399, label %420
399: ; preds = %392
%400 = load i8**, i8*** %10
%401 = load i64, i64* %8
%402 = getelementptr inbounds i8*, i8** %400, i64 %401
%403 = load i8*, i8** %402
%404 = call i32 @strcmp(i8* %403, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.17, i64 0, i64 0))
%405 = icmp ne i32 %404, 0
br i1 %405, label %406, label %420
406: ; preds = %399
%407 = load i8**, i8*** %10
%408 = load i64, i64* %8
%409 = getelementptr inbounds i8*, i8** %407, i64 %408
%410 = load i8*, i8** %409
%411 = call i32 @strcmp(i8* %410, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.18, i64 0, i64 0))
%412 = icmp ne i32 %411, 0
br i1 %412, label %413, label %420
413: ; preds = %406
%414 = load i8**, i8*** %10
%415 = load i64, i64* %8
%416 = getelementptr inbounds i8*, i8** %414, i64 %415
%417 = load i8*, i8** %416
%418 = call i32 @strcmp(i8* %417, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.12, i64 0, i64 0))
%419 = icmp ne i32 %418, 0
br i1 %419, label %422, label %420
420: ; preds = %413, %406, %399, %392
%421 = load i64*, i64** %12
store i64 1, i64* %421
br label %422
422: ; preds = %420, %413
br label %710
423: ; preds = %326
%424 = load i8*, i8** %9
%425 = load i64, i64* %7
%426 = getelementptr inbounds i8, i8* %424, i64 %425
%427 = load i8, i8* %426
%428 = call signext i8 @toupper(i8 signext %427)
%429 = sext i8 %428 to i32
%430 = icmp eq i32 %429, 67
br i1 %430, label %431, label %520
431: ; preds = %423
%432 = load i8**, i8*** %10
%433 = load i64, i64* %8
%434 = getelementptr inbounds i8*, i8** %432, i64 %433
%435 = load i8*, i8** %434
%436 = call i32 @strcmp(i8* %435, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0))
%437 = icmp ne i32 %436, 0
br i1 %437, label %438, label %480
438: ; preds = %431
%439 = load i8**, i8*** %10
%440 = load i64, i64* %8
%441 = getelementptr inbounds i8*, i8** %439, i64 %440
%442 = load i8*, i8** %441
%443 = call i32 @strcmp(i8* %442, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0))
%444 = icmp ne i32 %443, 0
br i1 %444, label %445, label %480
445: ; preds = %438
%446 = load i8**, i8*** %10
%447 = load i64, i64* %8
%448 = getelementptr inbounds i8*, i8** %446, i64 %447
%449 = load i8*, i8** %448
%450 = call i32 @strcmp(i8* %449, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0))
%451 = icmp ne i32 %450, 0
br i1 %451, label %452, label %480
452: ; preds = %445
%453 = load i8**, i8*** %10
%454 = load i64, i64* %8
%455 = getelementptr inbounds i8*, i8** %453, i64 %454
%456 = load i8*, i8** %455
%457 = call i32 @strcmp(i8* %456, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.3, i64 0, i64 0))
%458 = icmp ne i32 %457, 0
br i1 %458, label %459, label %480
459: ; preds = %452
%460 = load i8**, i8*** %10
%461 = load i64, i64* %8
%462 = getelementptr inbounds i8*, i8** %460, i64 %461
%463 = load i8*, i8** %462
%464 = call i32 @strcmp(i8* %463, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.4, i64 0, i64 0))
%465 = icmp ne i32 %464, 0
br i1 %465, label %466, label %480
466: ; preds = %459
%467 = load i8**, i8*** %10
%468 = load i64, i64* %8
%469 = getelementptr inbounds i8*, i8** %467, i64 %468
%470 = load i8*, i8** %469
%471 = call i32 @strcmp(i8* %470, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.8, i64 0, i64 0))
%472 = icmp ne i32 %471, 0
br i1 %472, label %473, label %480
473: ; preds = %466
%474 = load i8**, i8*** %10
%475 = load i64, i64* %8
%476 = getelementptr inbounds i8*, i8** %474, i64 %475
%477 = load i8*, i8** %476
%478 = call i32 @strcmp(i8* %477, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.16, i64 0, i64 0))
%479 = icmp ne i32 %478, 0
br i1 %479, label %482, label %480
480: ; preds = %473, %466, %459, %452, %445, %438, %431
%481 = load i64*, i64** %11
store i64 1, i64* %481
br label %482
482: ; preds = %480, %473
%483 = load i8**, i8*** %10
%484 = load i64, i64* %8
%485 = getelementptr inbounds i8*, i8** %483, i64 %484
%486 = load i8*, i8** %485
%487 = call i32 @strcmp(i8* %486, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.7, i64 0, i64 0))
%488 = icmp ne i32 %487, 0
br i1 %488, label %489, label %517
489: ; preds = %482
%490 = load i8**, i8*** %10
%491 = load i64, i64* %8
%492 = getelementptr inbounds i8*, i8** %490, i64 %491
%493 = load i8*, i8** %492
%494 = call i32 @strcmp(i8* %493, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.19, i64 0, i64 0))
%495 = icmp ne i32 %494, 0
br i1 %495, label %496, label %517
496: ; preds = %489
%497 = load i8**, i8*** %10
%498 = load i64, i64* %8
%499 = getelementptr inbounds i8*, i8** %497, i64 %498
%500 = load i8*, i8** %499
%501 = call i32 @strcmp(i8* %500, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.17, i64 0, i64 0))
%502 = icmp ne i32 %501, 0
br i1 %502, label %503, label %517
503: ; preds = %496
%504 = load i8**, i8*** %10
%505 = load i64, i64* %8
%506 = getelementptr inbounds i8*, i8** %504, i64 %505
%507 = load i8*, i8** %506
%508 = call i32 @strcmp(i8* %507, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.18, i64 0, i64 0))
%509 = icmp ne i32 %508, 0
br i1 %509, label %510, label %517
510: ; preds = %503
%511 = load i8**, i8*** %10
%512 = load i64, i64* %8
%513 = getelementptr inbounds i8*, i8** %511, i64 %512
%514 = load i8*, i8** %513
%515 = call i32 @strcmp(i8* %514, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.12, i64 0, i64 0))
%516 = icmp ne i32 %515, 0
br i1 %516, label %519, label %517
517: ; preds = %510, %503, %496, %489, %482
%518 = load i64*, i64** %12
store i64 1, i64* %518
br label %519
519: ; preds = %517, %510
br label %709
520: ; preds = %423
%521 = load i8*, i8** %9
%522 = load i64, i64* %7
%523 = getelementptr inbounds i8, i8* %521, i64 %522
%524 = load i8, i8* %523
%525 = call signext i8 @toupper(i8 signext %524)
%526 = sext i8 %525 to i32
%527 = icmp eq i32 %526, 80
br i1 %527, label %528, label %617
528: ; preds = %520
%529 = load i8**, i8*** %10
%530 = load i64, i64* %8
%531 = getelementptr inbounds i8*, i8** %529, i64 %530
%532 = load i8*, i8** %531
%533 = call i32 @strcmp(i8* %532, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0))
%534 = icmp ne i32 %533, 0
br i1 %534, label %535, label %584
535: ; preds = %528
%536 = load i8**, i8*** %10
%537 = load i64, i64* %8
%538 = getelementptr inbounds i8*, i8** %536, i64 %537
%539 = load i8*, i8** %538
%540 = call i32 @strcmp(i8* %539, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0))
%541 = icmp ne i32 %540, 0
br i1 %541, label %542, label %584
542: ; preds = %535
%543 = load i8**, i8*** %10
%544 = load i64, i64* %8
%545 = getelementptr inbounds i8*, i8** %543, i64 %544
%546 = load i8*, i8** %545
%547 = call i32 @strcmp(i8* %546, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0))
%548 = icmp ne i32 %547, 0
br i1 %548, label %549, label %584
549: ; preds = %542
%550 = load i8**, i8*** %10
%551 = load i64, i64* %8
%552 = getelementptr inbounds i8*, i8** %550, i64 %551
%553 = load i8*, i8** %552
%554 = call i32 @strcmp(i8* %553, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.3, i64 0, i64 0))
%555 = icmp ne i32 %554, 0
br i1 %555, label %556, label %584
556: ; preds = %549
%557 = load i8**, i8*** %10
%558 = load i64, i64* %8
%559 = getelementptr inbounds i8*, i8** %557, i64 %558
%560 = load i8*, i8** %559
%561 = call i32 @strcmp(i8* %560, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.4, i64 0, i64 0))
%562 = icmp ne i32 %561, 0
br i1 %562, label %563, label %584
563: ; preds = %556
%564 = load i8**, i8*** %10
%565 = load i64, i64* %8
%566 = getelementptr inbounds i8*, i8** %564, i64 %565
%567 = load i8*, i8** %566
%568 = call i32 @strcmp(i8* %567, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.17, i64 0, i64 0))
%569 = icmp ne i32 %568, 0
br i1 %569, label %570, label %584
570: ; preds = %563
%571 = load i8**, i8*** %10
%572 = load i64, i64* %8
%573 = getelementptr inbounds i8*, i8** %571, i64 %572
%574 = load i8*, i8** %573
%575 = call i32 @strcmp(i8* %574, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0))
%576 = icmp ne i32 %575, 0
br i1 %576, label %577, label %584
577: ; preds = %570
%578 = load i8**, i8*** %10
%579 = load i64, i64* %8
%580 = getelementptr inbounds i8*, i8** %578, i64 %579
%581 = load i8*, i8** %580
%582 = call i32 @strcmp(i8* %581, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.16, i64 0, i64 0))
%583 = icmp ne i32 %582, 0
br i1 %583, label %586, label %584
584: ; preds = %577, %570, %563, %556, %549, %542, %535, %528
%585 = load i64*, i64** %11
store i64 1, i64* %585
br label %586
586: ; preds = %584, %577
%587 = load i8**, i8*** %10
%588 = load i64, i64* %8
%589 = getelementptr inbounds i8*, i8** %587, i64 %588
%590 = load i8*, i8** %589
%591 = call i32 @strcmp(i8* %590, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.8, i64 0, i64 0))
%592 = icmp ne i32 %591, 0
br i1 %592, label %593, label %614
593: ; preds = %586
%594 = load i8**, i8*** %10
%595 = load i64, i64* %8
%596 = getelementptr inbounds i8*, i8** %594, i64 %595
%597 = load i8*, i8** %596
%598 = call i32 @strcmp(i8* %597, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.7, i64 0, i64 0))
%599 = icmp ne i32 %598, 0
br i1 %599, label %600, label %614
600: ; preds = %593
%601 = load i8**, i8*** %10
%602 = load i64, i64* %8
%603 = getelementptr inbounds i8*, i8** %601, i64 %602
%604 = load i8*, i8** %603
%605 = call i32 @strcmp(i8* %604, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.18, i64 0, i64 0))
%606 = icmp ne i32 %605, 0
br i1 %606, label %607, label %614
607: ; preds = %600
%608 = load i8**, i8*** %10
%609 = load i64, i64* %8
%610 = getelementptr inbounds i8*, i8** %608, i64 %609
%611 = load i8*, i8** %610
%612 = call i32 @strcmp(i8* %611, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.12, i64 0, i64 0))
%613 = icmp ne i32 %612, 0
br i1 %613, label %616, label %614
614: ; preds = %607, %600, %593, %586
%615 = load i64*, i64** %12
store i64 1, i64* %615
br label %616
616: ; preds = %614, %607
br label %708
617: ; preds = %520
%618 = load i8*, i8** %9
%619 = load i64, i64* %7
%620 = getelementptr inbounds i8, i8* %618, i64 %619
%621 = load i8, i8* %620
%622 = call signext i8 @toupper(i8 signext %621)
%623 = sext i8 %622 to i32
%624 = icmp eq i32 %623, 84
br i1 %624, label %625, label %707
625: ; preds = %617
%626 = load i8**, i8*** %10
%627 = load i64, i64* %8
%628 = getelementptr inbounds i8*, i8** %626, i64 %627
%629 = load i8*, i8** %628
%630 = call i32 @strcmp(i8* %629, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0))
%631 = icmp ne i32 %630, 0
br i1 %631, label %632, label %681
632: ; preds = %625
%633 = load i8**, i8*** %10
%634 = load i64, i64* %8
%635 = getelementptr inbounds i8*, i8** %633, i64 %634
%636 = load i8*, i8** %635
%637 = call i32 @strcmp(i8* %636, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0))
%638 = icmp ne i32 %637, 0
br i1 %638, label %639, label %681
639: ; preds = %632
%640 = load i8**, i8*** %10
%641 = load i64, i64* %8
%642 = getelementptr inbounds i8*, i8** %640, i64 %641
%643 = load i8*, i8** %642
%644 = call i32 @strcmp(i8* %643, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0))
%645 = icmp ne i32 %644, 0
br i1 %645, label %646, label %681
646: ; preds = %639
%647 = load i8**, i8*** %10
%648 = load i64, i64* %8
%649 = getelementptr inbounds i8*, i8** %647, i64 %648
%650 = load i8*, i8** %649
%651 = call i32 @strcmp(i8* %650, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.3, i64 0, i64 0))
%652 = icmp ne i32 %651, 0
br i1 %652, label %653, label %681
653: ; preds = %646
%654 = load i8**, i8*** %10
%655 = load i64, i64* %8
%656 = getelementptr inbounds i8*, i8** %654, i64 %655
%657 = load i8*, i8** %656
%658 = call i32 @strcmp(i8* %657, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.4, i64 0, i64 0))
%659 = icmp ne i32 %658, 0
br i1 %659, label %660, label %681
660: ; preds = %653
%661 = load i8**, i8*** %10
%662 = load i64, i64* %8
%663 = getelementptr inbounds i8*, i8** %661, i64 %662
%664 = load i8*, i8** %663
%665 = call i32 @strcmp(i8* %664, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.8, i64 0, i64 0))
%666 = icmp ne i32 %665, 0
br i1 %666, label %667, label %681
667: ; preds = %660
%668 = load i8**, i8*** %10
%669 = load i64, i64* %8
%670 = getelementptr inbounds i8*, i8** %668, i64 %669
%671 = load i8*, i8** %670
%672 = call i32 @strcmp(i8* %671, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0))
%673 = icmp ne i32 %672, 0
br i1 %673, label %674, label %681
674: ; preds = %667
%675 = load i8**, i8*** %10
%676 = load i64, i64* %8
%677 = getelementptr inbounds i8*, i8** %675, i64 %676
%678 = load i8*, i8** %677
%679 = call i32 @strcmp(i8* %678, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.16, i64 0, i64 0))
%680 = icmp ne i32 %679, 0
br i1 %680, label %683, label %681
681: ; preds = %674, %667, %660, %653, %646, %639, %632, %625
%682 = load i64*, i64** %11
store i64 1, i64* %682
br label %683
683: ; preds = %681, %674
%684 = load i8**, i8*** %10
%685 = load i64, i64* %8
%686 = getelementptr inbounds i8*, i8** %684, i64 %685
%687 = load i8*, i8** %686
%688 = call i32 @strcmp(i8* %687, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.7, i64 0, i64 0))
%689 = icmp ne i32 %688, 0
br i1 %689, label %690, label %704
690: ; preds = %683
%691 = load i8**, i8*** %10
%692 = load i64, i64* %8
%693 = getelementptr inbounds i8*, i8** %691, i64 %692
%694 = load i8*, i8** %693
%695 = call i32 @strcmp(i8* %694, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.17, i64 0, i64 0))
%696 = icmp ne i32 %695, 0
br i1 %696, label %697, label %704
697: ; preds = %690
%698 = load i8**, i8*** %10
%699 = load i64, i64* %8
%700 = getelementptr inbounds i8*, i8** %698, i64 %699
%701 = load i8*, i8** %700
%702 = call i32 @strcmp(i8* %701, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.18, i64 0, i64 0))
%703 = icmp ne i32 %702, 0
br i1 %703, label %706, label %704
704: ; preds = %697, %690, %683
%705 = load i64*, i64** %12
store i64 1, i64* %705
br label %706
706: ; preds = %704, %697
br label %707
707: ; preds = %706, %617
br label %708
708: ; preds = %707, %616
br label %709
709: ; preds = %708, %519
br label %710
710: ; preds = %709, %422
br label %711
711: ; preds = %710, %325
br label %712
712: ; preds = %711, %221
br label %713
713: ; preds = %712, %117
ret void
}

LLVM IR (-O2):
@.str = [5 x i8] c" O3'\00"
@.str.1 = [5 x i8] c" O4'\00"
@.str.2 = [5 x i8] c" O5'\00"
@.str.3 = [5 x i8] c" O1P\00"
@.str.4 = [5 x i8] c" O2P\00"
@.str.5 = [5 x i8] c" N9 \00"
@.str.6 = [5 x i8] c" N7 \00"
@.str.7 = [5 x i8] c" N3 \00"
@.str.8 = [5 x i8] c" N1 \00"
@.str.9 = [5 x i8] c" N6 \00"
@.str.10 = [5 x i8] c" C8 \00"
@.str.11 = [5 x i8] c" C2 \00"
@.str.12 = [5 x i8] c" O2'\00"
@.str.13 = [5 x i8] c" O6 \00"
@.str.14 = [5 x i8] c" N2 \00"
@.str.15 = [5 x i8] c" O4 \00"
@.str.16 = [5 x i8] c" O2 \00"
@.str.17 = [5 x i8] c" C5 \00"
@.str.18 = [5 x i8] c" C6 \00"
@.str.19 = [5 x i8] c" N4 \00"
define void @H_catalog(i64 %0, i64 %1, i8* nocapture %2, i8** nocapture %3, i64* nocapture writeonly %4, i64* nocapture writeonly %5) {
store i64 0, i64* %4
store i64 0, i64* %5
%7 = getelementptr inbounds i8, i8* %2, i64 %0
%8 = load i8, i8* %7
%9 = tail call signext i8 @toupper(i8 signext %8)
%10 = icmp eq i8 %9, 65
br i1 %10, label %11, label %53
11: ; preds = %6
%12 = getelementptr inbounds i8*, i8** %3, i64 %1
%13 = load i8*, i8** %12
%14 = tail call i32 @strcmp(i8* dereferenceable(1) %13, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0))
%15 = icmp eq i32 %14, 0
br i1 %15, label %37, label %16
16: ; preds = %11
%17 = tail call i32 @strcmp(i8* dereferenceable(1) %13, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0))
%18 = icmp eq i32 %17, 0
br i1 %18, label %37, label %19
19: ; preds = %16
%20 = tail call i32 @strcmp(i8* dereferenceable(1) %13, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0))
%21 = icmp eq i32 %20, 0
br i1 %21, label %37, label %22
22: ; preds = %19
%23 = tail call i32 @strcmp(i8* dereferenceable(1) %13, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.3, i64 0, i64 0))
%24 = icmp eq i32 %23, 0
br i1 %24, label %37, label %25
25: ; preds = %22
%26 = tail call i32 @strcmp(i8* dereferenceable(1) %13, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.4, i64 0, i64 0))
%27 = icmp eq i32 %26, 0
br i1 %27, label %37, label %28
28: ; preds = %25
%29 = tail call i32 @strcmp(i8* dereferenceable(1) %13, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.5, i64 0, i64 0))
%30 = icmp eq i32 %29, 0
br i1 %30, label %37, label %31
31: ; preds = %28
%32 = tail call i32 @strcmp(i8* dereferenceable(1) %13, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0))
%33 = icmp eq i32 %32, 0
br i1 %33, label %37, label %34
34: ; preds = %31
%35 = tail call i32 @strcmp(i8* dereferenceable(1) %13, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.7, i64 0, i64 0))
%36 = icmp eq i32 %35, 0
br i1 %36, label %37, label %38
37: ; preds = %34, %31, %28, %25, %22, %19, %16, %11
store i64 1, i64* %4
br label %38
38: ; preds = %37, %34
%39 = tail call i32 @strcmp(i8* dereferenceable(1) %13, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.8, i64 0, i64 0))
%40 = icmp eq i32 %39, 0
br i1 %40, label %314, label %41
41: ; preds = %38
%42 = tail call i32 @strcmp(i8* dereferenceable(1) %13, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.9, i64 0, i64 0))
%43 = icmp eq i32 %42, 0
br i1 %43, label %314, label %44
44: ; preds = %41
%45 = tail call i32 @strcmp(i8* dereferenceable(1) %13, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.10, i64 0, i64 0))
%46 = icmp eq i32 %45, 0
br i1 %46, label %314, label %47
47: ; preds = %44
%48 = tail call i32 @strcmp(i8* dereferenceable(1) %13, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.11, i64 0, i64 0))
%49 = icmp eq i32 %48, 0
br i1 %49, label %314, label %50
50: ; preds = %47
%51 = tail call i32 @strcmp(i8* dereferenceable(1) %13, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.12, i64 0, i64 0))
%52 = icmp eq i32 %51, 0
br i1 %52, label %314, label %315
53: ; preds = %6
%54 = load i8, i8* %7
%55 = tail call signext i8 @toupper(i8 signext %54)
%56 = icmp eq i8 %55, 71
br i1 %56, label %57, label %99
57: ; preds = %53
%58 = getelementptr inbounds i8*, i8** %3, i64 %1
%59 = load i8*, i8** %58
%60 = tail call i32 @strcmp(i8* dereferenceable(1) %59, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0))
%61 = icmp eq i32 %60, 0
br i1 %61, label %86, label %62
62: ; preds = %57
%63 = tail call i32 @strcmp(i8* dereferenceable(1) %59, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0))
%64 = icmp eq i32 %63, 0
br i1 %64, label %86, label %65
65: ; preds = %62
%66 = tail call i32 @strcmp(i8* dereferenceable(1) %59, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0))
%67 = icmp eq i32 %66, 0
br i1 %67, label %86, label %68
68: ; preds = %65
%69 = tail call i32 @strcmp(i8* dereferenceable(1) %59, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.3, i64 0, i64 0))
%70 = icmp eq i32 %69, 0
br i1 %70, label %86, label %71
71: ; preds = %68
%72 = tail call i32 @strcmp(i8* dereferenceable(1) %59, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.4, i64 0, i64 0))
%73 = icmp eq i32 %72, 0
br i1 %73, label %86, label %74
74: ; preds = %71
%75 = tail call i32 @strcmp(i8* dereferenceable(1) %59, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.5, i64 0, i64 0))
%76 = icmp eq i32 %75, 0
br i1 %76, label %86, label %77
77: ; preds = %74
%78 = tail call i32 @strcmp(i8* dereferenceable(1) %59, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0))
%79 = icmp eq i32 %78, 0
br i1 %79, label %86, label %80
80: ; preds = %77
%81 = tail call i32 @strcmp(i8* dereferenceable(1) %59, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.13, i64 0, i64 0))
%82 = icmp eq i32 %81, 0
br i1 %82, label %86, label %83
83: ; preds = %80
%84 = tail call i32 @strcmp(i8* dereferenceable(1) %59, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.7, i64 0, i64 0))
%85 = icmp eq i32 %84, 0
br i1 %85, label %86, label %87
86: ; preds = %83, %80, %77, %74, %71, %68, %65, %62, %57
store i64 1, i64* %4
br label %87
87: ; preds = %86, %83
%88 = tail call i32 @strcmp(i8* dereferenceable(1) %59, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.8, i64 0, i64 0))
%89 = icmp eq i32 %88, 0
br i1 %89, label %314, label %90
90: ; preds = %87
%91 = tail call i32 @strcmp(i8* dereferenceable(1) %59, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.14, i64 0, i64 0))
%92 = icmp eq i32 %91, 0
br i1 %92, label %314, label %93
93: ; preds = %90
%94 = tail call i32 @strcmp(i8* dereferenceable(1) %59, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.10, i64 0, i64 0))
%95 = icmp eq i32 %94, 0
br i1 %95, label %314, label %96
96: ; preds = %93
%97 = tail call i32 @strcmp(i8* dereferenceable(1) %59, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.12, i64 0, i64 0))
%98 = icmp eq i32 %97, 0
br i1 %98, label %314, label %315
99: ; preds = %53
%100 = load i8, i8* %7
%101 = tail call signext i8 @toupper(i8 signext %100)
%102 = icmp eq i8 %101, 73
br i1 %102, label %103, label %145
103: ; preds = %99
%104 = getelementptr inbounds i8*, i8** %3, i64 %1
%105 = load i8*, i8** %104
%106 = tail call i32 @strcmp(i8* dereferenceable(1) %105, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0))
%107 = icmp eq i32 %106, 0
br i1 %107, label %132, label %108
108: ; preds = %103
%109 = tail call i32 @strcmp(i8* dereferenceable(1) %105, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0))
%110 = icmp eq i32 %109, 0
br i1 %110, label %132, label %111
111: ; preds = %108
%112 = tail call i32 @strcmp(i8* dereferenceable(1) %105, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0))
%113 = icmp eq i32 %112, 0
br i1 %113, label %132, label %114
114: ; preds = %111
%115 = tail call i32 @strcmp(i8* dereferenceable(1) %105, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.3, i64 0, i64 0))
%116 = icmp eq i32 %115, 0
br i1 %116, label %132, label %117
117: ; preds = %114
%118 = tail call i32 @strcmp(i8* dereferenceable(1) %105, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.4, i64 0, i64 0))
%119 = icmp eq i32 %118, 0
br i1 %119, label %132, label %120
120: ; preds = %117
%121 = tail call i32 @strcmp(i8* dereferenceable(1) %105, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.5, i64 0, i64 0))
%122 = icmp eq i32 %121, 0
br i1 %122, label %132, label %123
123: ; preds = %120
%124 = tail call i32 @strcmp(i8* dereferenceable(1) %105, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0))
%125 = icmp eq i32 %124, 0
br i1 %125, label %132, label %126
126: ; preds = %123
%127 = tail call i32 @strcmp(i8* dereferenceable(1) %105, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.13, i64 0, i64 0))
%128 = icmp eq i32 %127, 0
br i1 %128, label %132, label %129
129: ; preds = %126
%130 = tail call i32 @strcmp(i8* dereferenceable(1) %105, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.7, i64 0, i64 0))
%131 = icmp eq i32 %130, 0
br i1 %131, label %132, label %133
132: ; preds = %129, %126, %123, %120, %117, %114, %111, %108, %103
store i64 1, i64* %4
br label %133
133: ; preds = %132, %129
%134 = tail call i32 @strcmp(i8* dereferenceable(1) %105, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.8, i64 0, i64 0))
%135 = icmp eq i32 %134, 0
br i1 %135, label %314, label %136
136: ; preds = %133
%137 = tail call i32 @strcmp(i8* dereferenceable(1) %105, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.11, i64 0, i64 0))
%138 = icmp eq i32 %137, 0
br i1 %138, label %314, label %139
139: ; preds = %136
%140 = tail call i32 @strcmp(i8* dereferenceable(1) %105, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.10, i64 0, i64 0))
%141 = icmp eq i32 %140, 0
br i1 %141, label %314, label %142
142: ; preds = %139
%143 = tail call i32 @strcmp(i8* dereferenceable(1) %105, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.12, i64 0, i64 0))
%144 = icmp eq i32 %143, 0
br i1 %144, label %314, label %315
145: ; preds = %99
%146 = load i8, i8* %7
%147 = tail call signext i8 @toupper(i8 signext %146)
%148 = icmp eq i8 %147, 85
br i1 %148, label %149, label %188
149: ; preds = %145
%150 = getelementptr inbounds i8*, i8** %3, i64 %1
%151 = load i8*, i8** %150
%152 = tail call i32 @strcmp(i8* dereferenceable(1) %151, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0))
%153 = icmp eq i32 %152, 0
br i1 %153, label %175, label %154
154: ; preds = %149
%155 = tail call i32 @strcmp(i8* dereferenceable(1) %151, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0))
%156 = icmp eq i32 %155, 0
br i1 %156, label %175, label %157
157: ; preds = %154
%158 = tail call i32 @strcmp(i8* dereferenceable(1) %151, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0))
%159 = icmp eq i32 %158, 0
br i1 %159, label %175, label %160
160: ; preds = %157
%161 = tail call i32 @strcmp(i8* dereferenceable(1) %151, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.3, i64 0, i64 0))
%162 = icmp eq i32 %161, 0
br i1 %162, label %175, label %163
163: ; preds = %160
%164 = tail call i32 @strcmp(i8* dereferenceable(1) %151, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.4, i64 0, i64 0))
%165 = icmp eq i32 %164, 0
br i1 %165, label %175, label %166
166: ; preds = %163
%167 = tail call i32 @strcmp(i8* dereferenceable(1) %151, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0))
%168 = icmp eq i32 %167, 0
br i1 %168, label %175, label %169
169: ; preds = %166
%170 = tail call i32 @strcmp(i8* dereferenceable(1) %151, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.16, i64 0, i64 0))
%171 = icmp eq i32 %170, 0
br i1 %171, label %175, label %172
172: ; preds = %169
%173 = tail call i32 @strcmp(i8* dereferenceable(1) %151, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.8, i64 0, i64 0))
%174 = icmp eq i32 %173, 0
br i1 %174, label %175, label %176
175: ; preds = %172, %169, %166, %163, %160, %157, %154, %149
store i64 1, i64* %4
br label %176
176: ; preds = %175, %172
%177 = tail call i32 @strcmp(i8* dereferenceable(1) %151, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.7, i64 0, i64 0))
%178 = icmp eq i32 %177, 0
br i1 %178, label %314, label %179
179: ; preds = %176
%180 = tail call i32 @strcmp(i8* dereferenceable(1) %151, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.17, i64 0, i64 0))
%181 = icmp eq i32 %180, 0
br i1 %181, label %314, label %182
182: ; preds = %179
%183 = tail call i32 @strcmp(i8* dereferenceable(1) %151, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.18, i64 0, i64 0))
%184 = icmp eq i32 %183, 0
br i1 %184, label %314, label %185
185: ; preds = %182
%186 = tail call i32 @strcmp(i8* dereferenceable(1) %151, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.12, i64 0, i64 0))
%187 = icmp eq i32 %186, 0
br i1 %187, label %314, label %315
188: ; preds = %145
%189 = load i8, i8* %7
%190 = tail call signext i8 @toupper(i8 signext %189)
%191 = icmp eq i8 %190, 67
br i1 %191, label %192, label %231
192: ; preds = %188
%193 = getelementptr inbounds i8*, i8** %3, i64 %1
%194 = load i8*, i8** %193
%195 = tail call i32 @strcmp(i8* dereferenceable(1) %194, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0))
%196 = icmp eq i32 %195, 0
br i1 %196, label %215, label %197
197: ; preds = %192
%198 = tail call i32 @strcmp(i8* dereferenceable(1) %194, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0))
%199 = icmp eq i32 %198, 0
br i1 %199, label %215, label %200
200: ; preds = %197
%201 = tail call i32 @strcmp(i8* dereferenceable(1) %194, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0))
%202 = icmp eq i32 %201, 0
br i1 %202, label %215, label %203
203: ; preds = %200
%204 = tail call i32 @strcmp(i8* dereferenceable(1) %194, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.3, i64 0, i64 0))
%205 = icmp eq i32 %204, 0
br i1 %205, label %215, label %206
206: ; preds = %203
%207 = tail call i32 @strcmp(i8* dereferenceable(1) %194, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.4, i64 0, i64 0))
%208 = icmp eq i32 %207, 0
br i1 %208, label %215, label %209
209: ; preds = %206
%210 = tail call i32 @strcmp(i8* dereferenceable(1) %194, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.8, i64 0, i64 0))
%211 = icmp eq i32 %210, 0
br i1 %211, label %215, label %212
212: ; preds = %209
%213 = tail call i32 @strcmp(i8* dereferenceable(1) %194, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.16, i64 0, i64 0))
%214 = icmp eq i32 %213, 0
br i1 %214, label %215, label %216
215: ; preds = %212, %209, %206, %203, %200, %197, %192
store i64 1, i64* %4
br label %216
216: ; preds = %215, %212
%217 = tail call i32 @strcmp(i8* dereferenceable(1) %194, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.7, i64 0, i64 0))
%218 = icmp eq i32 %217, 0
br i1 %218, label %314, label %219
219: ; preds = %216
%220 = tail call i32 @strcmp(i8* dereferenceable(1) %194, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.19, i64 0, i64 0))
%221 = icmp eq i32 %220, 0
br i1 %221, label %314, label %222
222: ; preds = %219
%223 = tail call i32 @strcmp(i8* dereferenceable(1) %194, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.17, i64 0, i64 0))
%224 = icmp eq i32 %223, 0
br i1 %224, label %314, label %225
225: ; preds = %222
%226 = tail call i32 @strcmp(i8* dereferenceable(1) %194, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.18, i64 0, i64 0))
%227 = icmp eq i32 %226, 0
br i1 %227, label %314, label %228
228: ; preds = %225
%229 = tail call i32 @strcmp(i8* dereferenceable(1) %194, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.12, i64 0, i64 0))
%230 = icmp eq i32 %229, 0
br i1 %230, label %314, label %315
231: ; preds = %188
%232 = load i8, i8* %7
%233 = tail call signext i8 @toupper(i8 signext %232)
%234 = icmp eq i8 %233, 80
br i1 %234, label %235, label %274
235: ; preds = %231
%236 = getelementptr inbounds i8*, i8** %3, i64 %1
%237 = load i8*, i8** %236
%238 = tail call i32 @strcmp(i8* dereferenceable(1) %237, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0))
%239 = icmp eq i32 %238, 0
br i1 %239, label %261, label %240
240: ; preds = %235
%241 = tail call i32 @strcmp(i8* dereferenceable(1) %237, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0))
%242 = icmp eq i32 %241, 0
br i1 %242, label %261, label %243
243: ; preds = %240
%244 = tail call i32 @strcmp(i8* dereferenceable(1) %237, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0))
%245 = icmp eq i32 %244, 0
br i1 %245, label %261, label %246
246: ; preds = %243
%247 = tail call i32 @strcmp(i8* dereferenceable(1) %237, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.3, i64 0, i64 0))
%248 = icmp eq i32 %247, 0
br i1 %248, label %261, label %249
249: ; preds = %246
%250 = tail call i32 @strcmp(i8* dereferenceable(1) %237, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.4, i64 0, i64 0))
%251 = icmp eq i32 %250, 0
br i1 %251, label %261, label %252
252: ; preds = %249
%253 = tail call i32 @strcmp(i8* dereferenceable(1) %237, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.17, i64 0, i64 0))
%254 = icmp eq i32 %253, 0
br i1 %254, label %261, label %255
255: ; preds = %252
%256 = tail call i32 @strcmp(i8* dereferenceable(1) %237, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0))
%257 = icmp eq i32 %256, 0
br i1 %257, label %261, label %258
258: ; preds = %255
%259 = tail call i32 @strcmp(i8* dereferenceable(1) %237, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.16, i64 0, i64 0))
%260 = icmp eq i32 %259, 0
br i1 %260, label %261, label %262
261: ; preds = %258, %255, %252, %249, %246, %243, %240, %235
store i64 1, i64* %4
br label %262
262: ; preds = %261, %258
%263 = tail call i32 @strcmp(i8* dereferenceable(1) %237, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.8, i64 0, i64 0))
%264 = icmp eq i32 %263, 0
br i1 %264, label %314, label %265
265: ; preds = %262
%266 = tail call i32 @strcmp(i8* dereferenceable(1) %237, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.7, i64 0, i64 0))
%267 = icmp eq i32 %266, 0
br i1 %267, label %314, label %268
268: ; preds = %265
%269 = tail call i32 @strcmp(i8* dereferenceable(1) %237, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.18, i64 0, i64 0))
%270 = icmp eq i32 %269, 0
br i1 %270, label %314, label %271
271: ; preds = %268
%272 = tail call i32 @strcmp(i8* dereferenceable(1) %237, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.12, i64 0, i64 0))
%273 = icmp eq i32 %272, 0
br i1 %273, label %314, label %315
274: ; preds = %231
%275 = load i8, i8* %7
%276 = tail call signext i8 @toupper(i8 signext %275)
%277 = icmp eq i8 %276, 84
br i1 %277, label %278, label %315
278: ; preds = %274
%279 = getelementptr inbounds i8*, i8** %3, i64 %1
%280 = load i8*, i8** %279
%281 = tail call i32 @strcmp(i8* dereferenceable(1) %280, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0))
%282 = icmp eq i32 %281, 0
br i1 %282, label %304, label %283
283: ; preds = %278
%284 = tail call i32 @strcmp(i8* dereferenceable(1) %280, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0))
%285 = icmp eq i32 %284, 0
br i1 %285, label %304, label %286
286: ; preds = %283
%287 = tail call i32 @strcmp(i8* dereferenceable(1) %280, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0))
%288 = icmp eq i32 %287, 0
br i1 %288, label %304, label %289
289: ; preds = %286
%290 = tail call i32 @strcmp(i8* dereferenceable(1) %280, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.3, i64 0, i64 0))
%291 = icmp eq i32 %290, 0
br i1 %291, label %304, label %292
292: ; preds = %289
%293 = tail call i32 @strcmp(i8* dereferenceable(1) %280, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.4, i64 0, i64 0))
%294 = icmp eq i32 %293, 0
br i1 %294, label %304, label %295
295: ; preds = %292
%296 = tail call i32 @strcmp(i8* dereferenceable(1) %280, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.8, i64 0, i64 0))
%297 = icmp eq i32 %296, 0
br i1 %297, label %304, label %298
298: ; preds = %295
%299 = tail call i32 @strcmp(i8* dereferenceable(1) %280, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0))
%300 = icmp eq i32 %299, 0
br i1 %300, label %304, label %301
301: ; preds = %298
%302 = tail call i32 @strcmp(i8* dereferenceable(1) %280, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.16, i64 0, i64 0))
%303 = icmp eq i32 %302, 0
br i1 %303, label %304, label %305
304: ; preds = %301, %298, %295, %292, %289, %286, %283, %278
store i64 1, i64* %4
br label %305
305: ; preds = %304, %301
%306 = tail call i32 @strcmp(i8* dereferenceable(1) %280, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.7, i64 0, i64 0))
%307 = icmp eq i32 %306, 0
br i1 %307, label %314, label %308
308: ; preds = %305
%309 = tail call i32 @strcmp(i8* dereferenceable(1) %280, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.17, i64 0, i64 0))
%310 = icmp eq i32 %309, 0
br i1 %310, label %314, label %311
311: ; preds = %308
%312 = tail call i32 @strcmp(i8* dereferenceable(1) %280, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.18, i64 0, i64 0))
%313 = icmp eq i32 %312, 0
br i1 %313, label %314, label %315
314: ; preds = %305, %308, %311, %262, %265, %268, %271, %216, %219, %222, %225, %228, %176, %179, %182, %185, %133, %136, %139, %142, %87, %90, %93, %96, %38, %41, %44, %47, %50
store i64 1, i64* %5
br label %315
315: ; preds = %314, %96, %185, %271, %311, %274, %228, %142, %50
ret void
}