#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 */
char *allocstr(char *);
int /*<<< orphan*/ log_msg(char *, int, char *, char);
int /*<<< orphan*/ memset(char *, char, int);
int /*<<< orphan*/ strcat(char *, char *);
char *ANSEL_to_html(char *s) {
  char buffer[1024];
  char *b;
  b = buffer;
  memset(buffer, '\0', 1024);
  while (*s != '\0') {
    if (((*s) & 0x80) == 0) {
      switch (*s) {
      case '>':
        strcat(buffer, "&gt;");
        b += 4;
        break;
      case '<':
        strcat(buffer, "&lt;");
        b += 4;
        break;
      case '&':
        strcat(buffer, "&amp;");
        b += 5;
        break;
      case '"':
        strcat(buffer, "&quot;");
        b += 6;
        break;
      default:
        *b = *s;
        b++;
      }
    } else {
      switch (*s) {
      case (char)0xEA:
        strcat(buffer, "&");
        b++;
        s++;
        *b = *s;
        strcat(buffer, "ring;");
        b += 6;
        break;
      case (char)0xE8:
        strcat(buffer, "&");
        b++;
        s++;
        *b = *s;
        strcat(buffer, "uml;");
        b += 5;
        break;
      case (char)0xE2:
        strcat(buffer, "&");
        b++;
        s++;
        *b = *s;
        strcat(buffer, "acute;");
        b += 7;
        break;
      case (char)0xE1:
        strcat(buffer, "&");
        b++;
        s++;
        *b = *s;
        strcat(buffer, "grave;");
        b += 7;
        break;
      case (char)0xE4:
        strcat(buffer, "&");
        b++;
        s++;
        *b = *s;
        strcat(buffer, "tilde;");
        b += 7;
        break;
      case (char)0xE3:
        strcat(buffer, "&");
        b++;
        s++;
        *b = *s;
        strcat(buffer, "circ;");
        b += 6;
        break;
      case (char)0xF0:
        strcat(buffer, "&");
        b++;
        s++;
        *b = *s;
        strcat(buffer, "cedil;");
        b += 7;
        break;
      case (char)0xE5:
        strcat(buffer, "&");
        b++;
        s++;
        *b = *s;
        strcat(buffer, "marc;");
        b += 6;
        break;
      case (char)0xE6:
        strcat(buffer, "&");
        b++;
        s++;
        *b = *s;
        strcat(buffer, "brev;");
        b += 6;
        break;
      case (char)0xE7:
        strcat(buffer, "&");
        b++;
        s++;
        *b = *s;
        strcat(buffer, "dot;");
        b += 5;
        break;
      case (char)0xEE:
        strcat(buffer, "&");
        b++;
        s++;
        *b = *s;
        strcat(buffer, "dblac;");
        b += 7;
        break;
      case (char)0xCF:
        strcat(buffer, "&szlig;");
        b += 7;
        break;
      case (char)0xA4:
        strcat(buffer, "&THORN;");
        b += 7;
        break;
      case (char)0xB4:
        strcat(buffer, "&thorn;");
        b += 7;
        break;
      case (char)0xA1:
        strcat(buffer, "&Lstrok;");
        b += 8;
        break;
      case (char)0xA2:
        strcat(buffer, "&Oslash;");
        b += 8;
        break;
      case (char)0xA3:
        strcat(buffer, "&Dstrok;");
        b += 8;
        break;
      case (char)0xA5:
        strcat(buffer, "&AElig;");
        b += 7;
        break;
      case (char)0xA6:
        strcat(buffer, "&OElig;");
        b += 7;
        break;
      case (char)0xB1:
        strcat(buffer, "&lstrok;");
        b += 8;
        break;
      case (char)0xB2:
        strcat(buffer, "&oslash;");
        b += 8;
        break;
      case (char)0xB3:
        strcat(buffer, "&dstrok;");
        b += 8;
        break;
      case (char)0xB5:
        strcat(buffer, "&aelig;");
        b += 7;
        break;
      case (char)0xB6:
        strcat(buffer, "&oelig;");
        b += 7;
        break;
      case (char)0xB8:
        strcat(buffer, "&inodot;");
        b += 8;
        break;
      case (char)0xBA:
        strcat(buffer, "&eth;");
        b += 5;
        break;
      case (char)0xC3:
        strcat(buffer, "&copy;");
        b += 6;
        break;
      default:
        log_msg("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
                "outputs/2022-01-22/02-19-57/repos/OS2World/APP-MISC-GED2WWW/"
                "refs/heads/master/src/utils.c",
                507, "Unrecognized ANSEL char 0x%X", (char)*s);
        break;
      }
    }
    s++;
  }
  *b = '\0';
  return allocstr(buffer);
}


x86 assembly (clang, -O0):
<ANSEL_to_html>:
push   %rbp
mov    %rsp,%rbp
sub    $0x430,%rsp
mov    %rdi,-0x8(%rbp)
lea    -0x410(%rbp),%rax
mov    %rax,-0x418(%rbp)
lea    -0x410(%rbp),%rdi
xor    %esi,%esi
mov    $0x400,%edx
call   1030 <memset@plt>
mov    -0x8(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x0,%eax
je     1a2c <ANSEL_to_html+0x8ec>
mov    -0x8(%rbp),%rax
movsbl (%rax),%eax
and    $0x80,%eax
cmp    $0x0,%eax
jne    1296 <ANSEL_to_html+0x156>
mov    -0x8(%rbp),%rax
movsbl (%rax),%eax
add    $0xffffffde,%eax
mov    %eax,%ecx
mov    %rcx,-0x420(%rbp)
sub    $0x1c,%eax
ja     1270 <ANSEL_to_html+0x130>
mov    -0x420(%rbp),%rax
lea    0xf81(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    -0x410(%rbp),%rdi
lea    0xfde(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x4,%rax
mov    %rax,-0x418(%rbp)
jmp    1291 <ANSEL_to_html+0x151>
lea    -0x410(%rbp),%rdi
lea    0xfb9(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x4,%rax
mov    %rax,-0x418(%rbp)
jmp    1291 <ANSEL_to_html+0x151>
lea    -0x410(%rbp),%rdi
lea    0xf94(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x5,%rax
mov    %rax,-0x418(%rbp)
jmp    1291 <ANSEL_to_html+0x151>
lea    -0x410(%rbp),%rdi
lea    0xf70(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x6,%rax
mov    %rax,-0x418(%rbp)
jmp    1291 <ANSEL_to_html+0x151>
mov    -0x8(%rbp),%rax
mov    (%rax),%cl
mov    -0x418(%rbp),%rax
mov    %cl,(%rax)
mov    -0x418(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x418(%rbp)
jmp    1a1b <ANSEL_to_html+0x8db>
mov    -0x8(%rbp),%rax
movsbl (%rax),%eax
add    $0x5f,%eax
mov    %eax,%ecx
mov    %rcx,-0x428(%rbp)
sub    $0x4f,%eax
ja     19f7 <ANSEL_to_html+0x8b7>
mov    -0x428(%rbp),%rax
lea    0xd40(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    -0x410(%rbp),%rdi
lea    0xef4(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x418(%rbp)
mov    -0x8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x8(%rbp)
mov    -0x8(%rbp),%rax
mov    (%rax),%cl
mov    -0x418(%rbp),%rax
mov    %cl,(%rax)
lea    -0x410(%rbp),%rdi
lea    0xeb6(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x6,%rax
mov    %rax,-0x418(%rbp)
jmp    1a16 <ANSEL_to_html+0x8d6>
lea    -0x410(%rbp),%rdi
lea    0xe8a(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x418(%rbp)
mov    -0x8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x8(%rbp)
mov    -0x8(%rbp),%rax
mov    (%rax),%cl
mov    -0x418(%rbp),%rax
mov    %cl,(%rax)
lea    -0x410(%rbp),%rdi
lea    0xe52(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x5,%rax
mov    %rax,-0x418(%rbp)
jmp    1a16 <ANSEL_to_html+0x8d6>
lea    -0x410(%rbp),%rdi
lea    0xe20(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x418(%rbp)
mov    -0x8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x8(%rbp)
mov    -0x8(%rbp),%rax
mov    (%rax),%cl
mov    -0x418(%rbp),%rax
mov    %cl,(%rax)
lea    -0x410(%rbp),%rdi
lea    0xded(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x7,%rax
mov    %rax,-0x418(%rbp)
jmp    1a16 <ANSEL_to_html+0x8d6>
lea    -0x410(%rbp),%rdi
lea    0xdb6(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x418(%rbp)
mov    -0x8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x8(%rbp)
mov    -0x8(%rbp),%rax
mov    (%rax),%cl
mov    -0x418(%rbp),%rax
mov    %cl,(%rax)
lea    -0x410(%rbp),%rdi
lea    0xd8a(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x7,%rax
mov    %rax,-0x418(%rbp)
jmp    1a16 <ANSEL_to_html+0x8d6>
lea    -0x410(%rbp),%rdi
lea    0xd4c(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x418(%rbp)
mov    -0x8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x8(%rbp)
mov    -0x8(%rbp),%rax
mov    (%rax),%cl
mov    -0x418(%rbp),%rax
mov    %cl,(%rax)
lea    -0x410(%rbp),%rdi
lea    0xd27(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x7,%rax
mov    %rax,-0x418(%rbp)
jmp    1a16 <ANSEL_to_html+0x8d6>
lea    -0x410(%rbp),%rdi
lea    0xce2(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x418(%rbp)
mov    -0x8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x8(%rbp)
mov    -0x8(%rbp),%rax
mov    (%rax),%cl
mov    -0x418(%rbp),%rax
mov    %cl,(%rax)
lea    -0x410(%rbp),%rdi
lea    0xcc4(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x6,%rax
mov    %rax,-0x418(%rbp)
jmp    1a16 <ANSEL_to_html+0x8d6>
lea    -0x410(%rbp),%rdi
lea    0xc78(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x418(%rbp)
mov    -0x8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x8(%rbp)
mov    -0x8(%rbp),%rax
mov    (%rax),%cl
mov    -0x418(%rbp),%rax
mov    %cl,(%rax)
lea    -0x410(%rbp),%rdi
lea    0xc60(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x7,%rax
mov    %rax,-0x418(%rbp)
jmp    1a16 <ANSEL_to_html+0x8d6>
lea    -0x410(%rbp),%rdi
lea    0xc0e(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x418(%rbp)
mov    -0x8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x8(%rbp)
mov    -0x8(%rbp),%rax
mov    (%rax),%cl
mov    -0x418(%rbp),%rax
mov    %cl,(%rax)
lea    -0x410(%rbp),%rdi
lea    0xbfd(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x6,%rax
mov    %rax,-0x418(%rbp)
jmp    1a16 <ANSEL_to_html+0x8d6>
lea    -0x410(%rbp),%rdi
lea    0xba4(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x418(%rbp)
mov    -0x8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x8(%rbp)
mov    -0x8(%rbp),%rax
mov    (%rax),%cl
mov    -0x418(%rbp),%rax
mov    %cl,(%rax)
lea    -0x410(%rbp),%rdi
lea    0xb99(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x6,%rax
mov    %rax,-0x418(%rbp)
jmp    1a16 <ANSEL_to_html+0x8d6>
lea    -0x410(%rbp),%rdi
lea    0xb3a(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x418(%rbp)
mov    -0x8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x8(%rbp)
mov    -0x8(%rbp),%rax
mov    (%rax),%cl
mov    -0x418(%rbp),%rax
mov    %cl,(%rax)
lea    -0x410(%rbp),%rdi
lea    0xbae(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x5,%rax
mov    %rax,-0x418(%rbp)
jmp    1a16 <ANSEL_to_html+0x8d6>
lea    -0x410(%rbp),%rdi
lea    0xad0(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x418(%rbp)
mov    -0x8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x8(%rbp)
mov    -0x8(%rbp),%rax
mov    (%rax),%cl
mov    -0x418(%rbp),%rax
mov    %cl,(%rax)
lea    -0x410(%rbp),%rdi
lea    0xacb(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x7,%rax
mov    %rax,-0x418(%rbp)
jmp    1a16 <ANSEL_to_html+0x8d6>
lea    -0x410(%rbp),%rdi
lea    0xaa8(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x7,%rax
mov    %rax,-0x418(%rbp)
jmp    1a16 <ANSEL_to_html+0x8d6>
lea    -0x410(%rbp),%rdi
lea    0xa86(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x7,%rax
mov    %rax,-0x418(%rbp)
jmp    1a16 <ANSEL_to_html+0x8d6>
lea    -0x410(%rbp),%rdi
lea    0xa64(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x7,%rax
mov    %rax,-0x418(%rbp)
jmp    1a16 <ANSEL_to_html+0x8d6>
lea    -0x410(%rbp),%rdi
lea    0xa42(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x8,%rax
mov    %rax,-0x418(%rbp)
jmp    1a16 <ANSEL_to_html+0x8d6>
lea    -0x410(%rbp),%rdi
lea    0xa21(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x8,%rax
mov    %rax,-0x418(%rbp)
jmp    1a16 <ANSEL_to_html+0x8d6>
lea    -0x410(%rbp),%rdi
lea    0xa00(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x8,%rax
mov    %rax,-0x418(%rbp)
jmp    1a16 <ANSEL_to_html+0x8d6>
lea    -0x410(%rbp),%rdi
lea    0x9df(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x7,%rax
mov    %rax,-0x418(%rbp)
jmp    1a16 <ANSEL_to_html+0x8d6>
lea    -0x410(%rbp),%rdi
lea    0x9bd(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x7,%rax
mov    %rax,-0x418(%rbp)
jmp    1a16 <ANSEL_to_html+0x8d6>
lea    -0x410(%rbp),%rdi
lea    0x99b(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x8,%rax
mov    %rax,-0x418(%rbp)
jmp    1a16 <ANSEL_to_html+0x8d6>
lea    -0x410(%rbp),%rdi
lea    0x97a(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x8,%rax
mov    %rax,-0x418(%rbp)
jmp    1a16 <ANSEL_to_html+0x8d6>
lea    -0x410(%rbp),%rdi
lea    0x959(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x8,%rax
mov    %rax,-0x418(%rbp)
jmp    1a16 <ANSEL_to_html+0x8d6>
lea    -0x410(%rbp),%rdi
lea    0x938(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x7,%rax
mov    %rax,-0x418(%rbp)
jmp    1a16 <ANSEL_to_html+0x8d6>
lea    -0x410(%rbp),%rdi
lea    0x916(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x7,%rax
mov    %rax,-0x418(%rbp)
jmp    1a16 <ANSEL_to_html+0x8d6>
lea    -0x410(%rbp),%rdi
lea    0x8f4(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x8,%rax
mov    %rax,-0x418(%rbp)
jmp    1a16 <ANSEL_to_html+0x8d6>
lea    -0x410(%rbp),%rdi
lea    0x8d3(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x5,%rax
mov    %rax,-0x418(%rbp)
jmp    1a16 <ANSEL_to_html+0x8d6>
lea    -0x410(%rbp),%rdi
lea    0x8af(%rip),%rsi
call   1060 <strcat@plt>
mov    -0x418(%rbp),%rax
add    $0x6,%rax
mov    %rax,-0x418(%rbp)
jmp    1a16 <ANSEL_to_html+0x8d6>
mov    -0x8(%rbp),%rax
lea    0x88f(%rip),%rdi
mov    $0x1fb,%esi
lea    0x915(%rip),%rdx
movsbl (%rax),%ecx
call   1050 <log_msg@plt>
jmp    1a1b <ANSEL_to_html+0x8db>
mov    -0x8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x8(%rbp)
jmp    1170 <ANSEL_to_html+0x30>
mov    -0x418(%rbp),%rax
movb   $0x0,(%rax)
lea    -0x410(%rbp),%rdi
call   1040 <allocstr@plt>
add    $0x430,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<ANSEL_to_html>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x408,%rsp
mov    %rdi,%rbx
mov    %rsp,%r14
mov    %r14,%rdi
xor    %esi,%esi
mov    $0x400,%edx
call   1030 <memset@plt>
mov    (%rbx),%al
test   %al,%al
je     1526 <ANSEL_to_html+0x3e6>
mov    %rsp,%r13
lea    0xfc6(%rip),%r12
lea    0xe7f(%rip),%r15
mov    %r13,%r14
jmp    11d0 <ANSEL_to_html+0x90>
lea    0x103e(%rip),%rsi
mov    %rsp,%rbp
mov    %rbp,%rdi
call   1060 <strcat@plt>
movzbl 0x1(%rbx),%eax
add    $0x1,%rbx
mov    %al,0x1(%r14)
lea    0x1042(%rip),%rsi
mov    %rbp,%rdi
call   1060 <strcat@plt>
add    $0x7,%r14
nopw   0x0(%rax,%rax,1)
movzbl 0x1(%rbx),%eax
add    $0x1,%rbx
test   %al,%al
je     1526 <ANSEL_to_html+0x3e6>
movsbl %al,%ecx
test   $0x80,%al
jne    1200 <ANSEL_to_html+0xc0>
add    $0xffffffde,%ecx
cmp    $0x1c,%ecx
ja     1224 <ANSEL_to_html+0xe4>
movslq (%r12,%rcx,4),%rcx
add    %r12,%rcx
jmp    *%rcx
mov    %r13,%rdi
lea    0xfd2(%rip),%rsi
jmp    1488 <ANSEL_to_html+0x348>
nopw   0x0(%rax,%rax,1)
lea    0x5f(%rcx),%eax
cmp    $0x4f,%eax
ja     12b4 <ANSEL_to_html+0x174>
movslq (%r15,%rax,4),%rax
add    %r15,%rax
jmp    *%rax
lea    0x1009(%rip),%rsi
mov    %rsp,%rdi
jmp    1518 <ANSEL_to_html+0x3d8>
mov    %al,(%r14)
add    $0x1,%r14
jmp    11c0 <ANSEL_to_html+0x80>
mov    %r13,%rdi
lea    0xf87(%rip),%rsi
call   1060 <strcat@plt>
add    $0x5,%r14
jmp    11c0 <ANSEL_to_html+0x80>
mov    %r13,%rdi
lea    0xf6a(%rip),%rsi
jmp    125b <ANSEL_to_html+0x11b>
mov    %r13,%rdi
lea    0xf59(%rip),%rsi
call   1060 <strcat@plt>
add    $0x4,%r14
jmp    11c0 <ANSEL_to_html+0x80>
lea    0xfbe(%rip),%rsi
mov    %rsp,%rdi
jmp    1518 <ANSEL_to_html+0x3d8>
lea    0xfb8(%rip),%rsi
mov    %rsp,%rdi
jmp    1518 <ANSEL_to_html+0x3d8>
lea    0xf87(%rip),%rsi
mov    %rsp,%rdi
jmp    11ae <ANSEL_to_html+0x6e>
lea    0xfa3(%rip),%rsi
mov    %rsp,%rdi
jmp    11ae <ANSEL_to_html+0x6e>
lea    0xf9c(%rip),%rsi
mov    %rsp,%rdi
jmp    11ae <ANSEL_to_html+0x6e>
lea    0xfd6(%rip),%rdi
mov    $0x1fb,%esi
lea    0x105c(%rip),%rdx
call   1050 <log_msg@plt>
jmp    11c0 <ANSEL_to_html+0x80>
lea    0xf78(%rip),%rsi
mov    %rsp,%rdi
jmp    1518 <ANSEL_to_html+0x3d8>
lea    0xf72(%rip),%rsi
mov    %rsp,%rdi
jmp    1518 <ANSEL_to_html+0x3d8>
lea    0xf6c(%rip),%rsi
mov    %rsp,%rdi
jmp    1518 <ANSEL_to_html+0x3d8>
lea    0xf18(%rip),%rsi
mov    %rsp,%rdi
jmp    11ae <ANSEL_to_html+0x6e>
lea    0xf57(%rip),%rsi
mov    %rsp,%rdi
jmp    11ae <ANSEL_to_html+0x6e>
lea    0xf50(%rip),%rsi
mov    %rsp,%rdi
jmp    11ae <ANSEL_to_html+0x6e>
lea    0xf49(%rip),%rsi
mov    %rsp,%rdi
jmp    1518 <ANSEL_to_html+0x3d8>
lea    0xf43(%rip),%rsi
mov    %rsp,%rdi
jmp    1237 <ANSEL_to_html+0xf7>
lea    0xf3a(%rip),%rsi
mov    %rsp,%rdi
jmp    1488 <ANSEL_to_html+0x348>
lea    0xeae(%rip),%rsi
mov    %rsp,%rdi
jmp    11ae <ANSEL_to_html+0x6e>
lea    0xe5d(%rip),%rsi
mov    %rsp,%rbp
mov    %rbp,%rdi
call   1060 <strcat@plt>
movzbl 0x1(%rbx),%eax
add    $0x1,%rbx
mov    %al,0x1(%r14)
lea    0xe53(%rip),%rsi
jmp    1515 <ANSEL_to_html+0x3d5>
lea    0xe33(%rip),%rsi
mov    %rsp,%rbp
mov    %rbp,%rdi
call   1060 <strcat@plt>
movzbl 0x1(%rbx),%eax
add    $0x1,%rbx
mov    %al,0x1(%r14)
lea    0xe22(%rip),%rsi
jmp    1515 <ANSEL_to_html+0x3d5>
lea    0xe09(%rip),%rsi
mov    %rsp,%rbp
mov    %rbp,%rdi
call   1060 <strcat@plt>
movzbl 0x1(%rbx),%eax
add    $0x1,%rbx
mov    %al,0x1(%r14)
lea    0xe06(%rip),%rsi
jmp    1515 <ANSEL_to_html+0x3d5>
lea    0xddf(%rip),%rsi
mov    %rsp,%rbp
mov    %rbp,%rdi
call   1060 <strcat@plt>
movzbl 0x1(%rbx),%eax
add    $0x1,%rbx
mov    %al,0x1(%r14)
lea    0xdf0(%rip),%rsi
jmp    11ab <ANSEL_to_html+0x6b>
lea    0xdb5(%rip),%rsi
mov    %rsp,%rbp
mov    %rbp,%rdi
call   1060 <strcat@plt>
movzbl 0x1(%rbx),%eax
add    $0x1,%rbx
mov    %al,0x1(%r14)
lea    0xdcc(%rip),%rsi
jmp    11ab <ANSEL_to_html+0x6b>
lea    0xd8b(%rip),%rsi
mov    %rsp,%rbp
mov    %rbp,%rdi
call   1060 <strcat@plt>
movzbl 0x1(%rbx),%eax
add    $0x1,%rbx
mov    %al,0x1(%r14)
lea    0xe21(%rip),%rsi
jmp    1485 <ANSEL_to_html+0x345>
lea    0xd64(%rip),%rsi
mov    %rsp,%rbp
mov    %rbp,%rdi
call   1060 <strcat@plt>
movzbl 0x1(%rbx),%eax
add    $0x1,%rbx
mov    %al,0x1(%r14)
lea    0xd4e(%rip),%rsi
mov    %rbp,%rdi
call   1060 <strcat@plt>
add    $0x6,%r14
jmp    11c0 <ANSEL_to_html+0x80>
lea    0xd2e(%rip),%rsi
mov    %r13,%rbp
mov    %rsp,%r13
mov    %r13,%rdi
call   1060 <strcat@plt>
movzbl 0x1(%rbx),%eax
add    $0x1,%rbx
mov    %al,0x1(%r14)
lea    0xd0f(%rip),%rsi
mov    %r13,%rdi
mov    %rbp,%r13
jmp    11ae <ANSEL_to_html+0x6e>
lea    0xcfb(%rip),%rsi
mov    %rsp,%rbp
mov    %rbp,%rdi
call   1060 <strcat@plt>
movzbl 0x1(%rbx),%eax
add    $0x1,%rbx
mov    %al,0x1(%r14)
lea    0xd18(%rip),%rsi
jmp    1515 <ANSEL_to_html+0x3d5>
lea    0xcd4(%rip),%rsi
mov    %rsp,%rbp
mov    %rbp,%rdi
call   1060 <strcat@plt>
movzbl 0x1(%rbx),%eax
add    $0x1,%rbx
mov    %al,0x1(%r14)
lea    0xcde(%rip),%rsi
mov    %rbp,%rdi
call   1060 <strcat@plt>
add    $0x8,%r14
jmp    11c0 <ANSEL_to_html+0x80>
movb   $0x0,(%r14)
mov    %rsp,%rdi
call   1040 <allocstr@plt>
add    $0x408,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@.str = [5 x i8] c"&gt;\00"
@.str.1 = [5 x i8] c"&lt;\00"
@.str.2 = [6 x i8] c"&amp;\00"
@.str.3 = [7 x i8] c"&quot;\00"
@.str.4 = [2 x i8] c"&\00"
@.str.5 = [6 x i8] c"ring;\00"
@.str.6 = [5 x i8] c"uml;\00"
@.str.7 = [7 x i8] c"acute;\00"
@.str.8 = [7 x i8] c"grave;\00"
@.str.9 = [7 x i8] c"tilde;\00"
@.str.10 = [6 x i8] c"circ;\00"
@.str.11 = [7 x i8] c"cedil;\00"
@.str.12 = [6 x i8] c"marc;\00"
@.str.13 = [6 x i8] c"brev;\00"
@.str.14 = [5 x i8] c"dot;\00"
@.str.15 = [7 x i8] c"dblac;\00"
@.str.16 = [8 x i8] c"&szlig;\00"
@.str.17 = [8 x i8] c"&THORN;\00"
@.str.18 = [8 x i8] c"&thorn;\00"
@.str.19 = [9 x i8] c"&Lstrok;\00"
@.str.20 = [9 x i8] c"&Oslash;\00"
@.str.21 = [9 x i8] c"&Dstrok;\00"
@.str.22 = [8 x i8] c"&AElig;\00"
@.str.23 = [8 x i8] c"&OElig;\00"
@.str.24 = [9 x i8] c"&lstrok;\00"
@.str.25 = [9 x i8] c"&oslash;\00"
@.str.26 = [9 x i8] c"&dstrok;\00"
@.str.27 = [8 x i8] c"&aelig;\00"
@.str.28 = [8 x i8] c"&oelig;\00"
@.str.29 = [9 x i8] c"&inodot;\00"
@.str.30 = [6 x i8] c"&eth;\00"
@.str.31 = [7 x i8] c"&copy;\00"
@.str.32 = [146 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/OS2World/APP-MISC-GED2WWW/refs/heads/master/src/utils.c\00"
@.str.33 = [29 x i8] c"Unrecognized ANSEL char 0x%X\00"
define i8* @ANSEL_to_html(i8* %0) {
%2 = alloca i8*
%3 = alloca [1024 x i8]
%4 = alloca i8*
store i8* %0, i8** %2
%5 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
store i8* %5, i8** %4
%6 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%7 = call i32 @memset(i8* %6, i8 signext 0, i32 1024)
br label %8
8: ; preds = %293, %1
%9 = load i8*, i8** %2
%10 = load i8, i8* %9
%11 = sext i8 %10 to i32
%12 = icmp ne i32 %11, 0
br i1 %12, label %13, label %296
13: ; preds = %8
%14 = load i8*, i8** %2
%15 = load i8, i8* %14
%16 = sext i8 %15 to i32
%17 = and i32 %16, 128
%18 = icmp eq i32 %17, 0
br i1 %18, label %19, label %50
19: ; preds = %13
%20 = load i8*, i8** %2
%21 = load i8, i8* %20
%22 = sext i8 %21 to i32
switch i32 %22, label %43 [
i32 62, label %23
i32 60, label %28
i32 38, label %33
i32 34, label %38
]
23: ; preds = %19
%24 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%25 = call i32 @strcat(i8* %24, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0))
%26 = load i8*, i8** %4
%27 = getelementptr inbounds i8, i8* %26, i64 4
store i8* %27, i8** %4
br label %49
28: ; preds = %19
%29 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%30 = call i32 @strcat(i8* %29, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0))
%31 = load i8*, i8** %4
%32 = getelementptr inbounds i8, i8* %31, i64 4
store i8* %32, i8** %4
br label %49
33: ; preds = %19
%34 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%35 = call i32 @strcat(i8* %34, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.2, i64 0, i64 0))
%36 = load i8*, i8** %4
%37 = getelementptr inbounds i8, i8* %36, i64 5
store i8* %37, i8** %4
br label %49
38: ; preds = %19
%39 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%40 = call i32 @strcat(i8* %39, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.3, i64 0, i64 0))
%41 = load i8*, i8** %4
%42 = getelementptr inbounds i8, i8* %41, i64 6
store i8* %42, i8** %4
br label %49
43: ; preds = %19
%44 = load i8*, i8** %2
%45 = load i8, i8* %44
%46 = load i8*, i8** %4
store i8 %45, i8* %46
%47 = load i8*, i8** %4
%48 = getelementptr inbounds i8, i8* %47, i32 1
store i8* %48, i8** %4
br label %49
49: ; preds = %43, %38, %33, %28, %23
br label %293
50: ; preds = %13
%51 = load i8*, i8** %2
%52 = load i8, i8* %51
%53 = sext i8 %52 to i32
switch i32 %53, label %288 [
i32 -22, label %54
i32 -24, label %68
i32 -30, label %82
i32 -31, label %96
i32 -28, label %110
i32 -29, label %124
i32 -16, label %138
i32 -27, label %152
i32 -26, label %166
i32 -25, label %180
i32 -18, label %194
i32 -49, label %208
i32 -92, label %213
i32 -76, label %218
i32 -95, label %223
i32 -94, label %228
i32 -93, label %233
i32 -91, label %238
i32 -90, label %243
i32 -79, label %248
i32 -78, label %253
i32 -77, label %258
i32 -75, label %263
i32 -74, label %268
i32 -72, label %273
i32 -70, label %278
i32 -61, label %283
]
54: ; preds = %50
%55 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%56 = call i32 @strcat(i8* %55, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.4, i64 0, i64 0))
%57 = load i8*, i8** %4
%58 = getelementptr inbounds i8, i8* %57, i32 1
store i8* %58, i8** %4
%59 = load i8*, i8** %2
%60 = getelementptr inbounds i8, i8* %59, i32 1
store i8* %60, i8** %2
%61 = load i8*, i8** %2
%62 = load i8, i8* %61
%63 = load i8*, i8** %4
store i8 %62, i8* %63
%64 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%65 = call i32 @strcat(i8* %64, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.5, i64 0, i64 0))
%66 = load i8*, i8** %4
%67 = getelementptr inbounds i8, i8* %66, i64 6
store i8* %67, i8** %4
br label %292
68: ; preds = %50
%69 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%70 = call i32 @strcat(i8* %69, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.4, i64 0, i64 0))
%71 = load i8*, i8** %4
%72 = getelementptr inbounds i8, i8* %71, i32 1
store i8* %72, i8** %4
%73 = load i8*, i8** %2
%74 = getelementptr inbounds i8, i8* %73, i32 1
store i8* %74, i8** %2
%75 = load i8*, i8** %2
%76 = load i8, i8* %75
%77 = load i8*, i8** %4
store i8 %76, i8* %77
%78 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%79 = call i32 @strcat(i8* %78, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0))
%80 = load i8*, i8** %4
%81 = getelementptr inbounds i8, i8* %80, i64 5
store i8* %81, i8** %4
br label %292
82: ; preds = %50
%83 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%84 = call i32 @strcat(i8* %83, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.4, i64 0, i64 0))
%85 = load i8*, i8** %4
%86 = getelementptr inbounds i8, i8* %85, i32 1
store i8* %86, i8** %4
%87 = load i8*, i8** %2
%88 = getelementptr inbounds i8, i8* %87, i32 1
store i8* %88, i8** %2
%89 = load i8*, i8** %2
%90 = load i8, i8* %89
%91 = load i8*, i8** %4
store i8 %90, i8* %91
%92 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%93 = call i32 @strcat(i8* %92, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.7, i64 0, i64 0))
%94 = load i8*, i8** %4
%95 = getelementptr inbounds i8, i8* %94, i64 7
store i8* %95, i8** %4
br label %292
96: ; preds = %50
%97 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%98 = call i32 @strcat(i8* %97, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.4, i64 0, i64 0))
%99 = load i8*, i8** %4
%100 = getelementptr inbounds i8, i8* %99, i32 1
store i8* %100, i8** %4
%101 = load i8*, i8** %2
%102 = getelementptr inbounds i8, i8* %101, i32 1
store i8* %102, i8** %2
%103 = load i8*, i8** %2
%104 = load i8, i8* %103
%105 = load i8*, i8** %4
store i8 %104, i8* %105
%106 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%107 = call i32 @strcat(i8* %106, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0))
%108 = load i8*, i8** %4
%109 = getelementptr inbounds i8, i8* %108, i64 7
store i8* %109, i8** %4
br label %292
110: ; preds = %50
%111 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%112 = call i32 @strcat(i8* %111, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.4, i64 0, i64 0))
%113 = load i8*, i8** %4
%114 = getelementptr inbounds i8, i8* %113, i32 1
store i8* %114, i8** %4
%115 = load i8*, i8** %2
%116 = getelementptr inbounds i8, i8* %115, i32 1
store i8* %116, i8** %2
%117 = load i8*, i8** %2
%118 = load i8, i8* %117
%119 = load i8*, i8** %4
store i8 %118, i8* %119
%120 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%121 = call i32 @strcat(i8* %120, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.9, i64 0, i64 0))
%122 = load i8*, i8** %4
%123 = getelementptr inbounds i8, i8* %122, i64 7
store i8* %123, i8** %4
br label %292
124: ; preds = %50
%125 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%126 = call i32 @strcat(i8* %125, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.4, i64 0, i64 0))
%127 = load i8*, i8** %4
%128 = getelementptr inbounds i8, i8* %127, i32 1
store i8* %128, i8** %4
%129 = load i8*, i8** %2
%130 = getelementptr inbounds i8, i8* %129, i32 1
store i8* %130, i8** %2
%131 = load i8*, i8** %2
%132 = load i8, i8* %131
%133 = load i8*, i8** %4
store i8 %132, i8* %133
%134 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%135 = call i32 @strcat(i8* %134, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.10, i64 0, i64 0))
%136 = load i8*, i8** %4
%137 = getelementptr inbounds i8, i8* %136, i64 6
store i8* %137, i8** %4
br label %292
138: ; preds = %50
%139 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%140 = call i32 @strcat(i8* %139, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.4, i64 0, i64 0))
%141 = load i8*, i8** %4
%142 = getelementptr inbounds i8, i8* %141, i32 1
store i8* %142, i8** %4
%143 = load i8*, i8** %2
%144 = getelementptr inbounds i8, i8* %143, i32 1
store i8* %144, i8** %2
%145 = load i8*, i8** %2
%146 = load i8, i8* %145
%147 = load i8*, i8** %4
store i8 %146, i8* %147
%148 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%149 = call i32 @strcat(i8* %148, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.11, i64 0, i64 0))
%150 = load i8*, i8** %4
%151 = getelementptr inbounds i8, i8* %150, i64 7
store i8* %151, i8** %4
br label %292
152: ; preds = %50
%153 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%154 = call i32 @strcat(i8* %153, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.4, i64 0, i64 0))
%155 = load i8*, i8** %4
%156 = getelementptr inbounds i8, i8* %155, i32 1
store i8* %156, i8** %4
%157 = load i8*, i8** %2
%158 = getelementptr inbounds i8, i8* %157, i32 1
store i8* %158, i8** %2
%159 = load i8*, i8** %2
%160 = load i8, i8* %159
%161 = load i8*, i8** %4
store i8 %160, i8* %161
%162 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%163 = call i32 @strcat(i8* %162, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.12, i64 0, i64 0))
%164 = load i8*, i8** %4
%165 = getelementptr inbounds i8, i8* %164, i64 6
store i8* %165, i8** %4
br label %292
166: ; preds = %50
%167 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%168 = call i32 @strcat(i8* %167, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.4, i64 0, i64 0))
%169 = load i8*, i8** %4
%170 = getelementptr inbounds i8, i8* %169, i32 1
store i8* %170, i8** %4
%171 = load i8*, i8** %2
%172 = getelementptr inbounds i8, i8* %171, i32 1
store i8* %172, i8** %2
%173 = load i8*, i8** %2
%174 = load i8, i8* %173
%175 = load i8*, i8** %4
store i8 %174, i8* %175
%176 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%177 = call i32 @strcat(i8* %176, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.13, i64 0, i64 0))
%178 = load i8*, i8** %4
%179 = getelementptr inbounds i8, i8* %178, i64 6
store i8* %179, i8** %4
br label %292
180: ; preds = %50
%181 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%182 = call i32 @strcat(i8* %181, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.4, i64 0, i64 0))
%183 = load i8*, i8** %4
%184 = getelementptr inbounds i8, i8* %183, i32 1
store i8* %184, i8** %4
%185 = load i8*, i8** %2
%186 = getelementptr inbounds i8, i8* %185, i32 1
store i8* %186, i8** %2
%187 = load i8*, i8** %2
%188 = load i8, i8* %187
%189 = load i8*, i8** %4
store i8 %188, i8* %189
%190 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%191 = call i32 @strcat(i8* %190, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.14, i64 0, i64 0))
%192 = load i8*, i8** %4
%193 = getelementptr inbounds i8, i8* %192, i64 5
store i8* %193, i8** %4
br label %292
194: ; preds = %50
%195 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%196 = call i32 @strcat(i8* %195, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.4, i64 0, i64 0))
%197 = load i8*, i8** %4
%198 = getelementptr inbounds i8, i8* %197, i32 1
store i8* %198, i8** %4
%199 = load i8*, i8** %2
%200 = getelementptr inbounds i8, i8* %199, i32 1
store i8* %200, i8** %2
%201 = load i8*, i8** %2
%202 = load i8, i8* %201
%203 = load i8*, i8** %4
store i8 %202, i8* %203
%204 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%205 = call i32 @strcat(i8* %204, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.15, i64 0, i64 0))
%206 = load i8*, i8** %4
%207 = getelementptr inbounds i8, i8* %206, i64 7
store i8* %207, i8** %4
br label %292
208: ; preds = %50
%209 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%210 = call i32 @strcat(i8* %209, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.16, i64 0, i64 0))
%211 = load i8*, i8** %4
%212 = getelementptr inbounds i8, i8* %211, i64 7
store i8* %212, i8** %4
br label %292
213: ; preds = %50
%214 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%215 = call i32 @strcat(i8* %214, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.17, i64 0, i64 0))
%216 = load i8*, i8** %4
%217 = getelementptr inbounds i8, i8* %216, i64 7
store i8* %217, i8** %4
br label %292
218: ; preds = %50
%219 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%220 = call i32 @strcat(i8* %219, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.18, i64 0, i64 0))
%221 = load i8*, i8** %4
%222 = getelementptr inbounds i8, i8* %221, i64 7
store i8* %222, i8** %4
br label %292
223: ; preds = %50
%224 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%225 = call i32 @strcat(i8* %224, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.19, i64 0, i64 0))
%226 = load i8*, i8** %4
%227 = getelementptr inbounds i8, i8* %226, i64 8
store i8* %227, i8** %4
br label %292
228: ; preds = %50
%229 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%230 = call i32 @strcat(i8* %229, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.20, i64 0, i64 0))
%231 = load i8*, i8** %4
%232 = getelementptr inbounds i8, i8* %231, i64 8
store i8* %232, i8** %4
br label %292
233: ; preds = %50
%234 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%235 = call i32 @strcat(i8* %234, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.21, i64 0, i64 0))
%236 = load i8*, i8** %4
%237 = getelementptr inbounds i8, i8* %236, i64 8
store i8* %237, i8** %4
br label %292
238: ; preds = %50
%239 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%240 = call i32 @strcat(i8* %239, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.22, i64 0, i64 0))
%241 = load i8*, i8** %4
%242 = getelementptr inbounds i8, i8* %241, i64 7
store i8* %242, i8** %4
br label %292
243: ; preds = %50
%244 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%245 = call i32 @strcat(i8* %244, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.23, i64 0, i64 0))
%246 = load i8*, i8** %4
%247 = getelementptr inbounds i8, i8* %246, i64 7
store i8* %247, i8** %4
br label %292
248: ; preds = %50
%249 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%250 = call i32 @strcat(i8* %249, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.24, i64 0, i64 0))
%251 = load i8*, i8** %4
%252 = getelementptr inbounds i8, i8* %251, i64 8
store i8* %252, i8** %4
br label %292
253: ; preds = %50
%254 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%255 = call i32 @strcat(i8* %254, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.25, i64 0, i64 0))
%256 = load i8*, i8** %4
%257 = getelementptr inbounds i8, i8* %256, i64 8
store i8* %257, i8** %4
br label %292
258: ; preds = %50
%259 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%260 = call i32 @strcat(i8* %259, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.26, i64 0, i64 0))
%261 = load i8*, i8** %4
%262 = getelementptr inbounds i8, i8* %261, i64 8
store i8* %262, i8** %4
br label %292
263: ; preds = %50
%264 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%265 = call i32 @strcat(i8* %264, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.27, i64 0, i64 0))
%266 = load i8*, i8** %4
%267 = getelementptr inbounds i8, i8* %266, i64 7
store i8* %267, i8** %4
br label %292
268: ; preds = %50
%269 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%270 = call i32 @strcat(i8* %269, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.28, i64 0, i64 0))
%271 = load i8*, i8** %4
%272 = getelementptr inbounds i8, i8* %271, i64 7
store i8* %272, i8** %4
br label %292
273: ; preds = %50
%274 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%275 = call i32 @strcat(i8* %274, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.29, i64 0, i64 0))
%276 = load i8*, i8** %4
%277 = getelementptr inbounds i8, i8* %276, i64 8
store i8* %277, i8** %4
br label %292
278: ; preds = %50
%279 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%280 = call i32 @strcat(i8* %279, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.30, i64 0, i64 0))
%281 = load i8*, i8** %4
%282 = getelementptr inbounds i8, i8* %281, i64 5
store i8* %282, i8** %4
br label %292
283: ; preds = %50
%284 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%285 = call i32 @strcat(i8* %284, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.31, i64 0, i64 0))
%286 = load i8*, i8** %4
%287 = getelementptr inbounds i8, i8* %286, i64 6
store i8* %287, i8** %4
br label %292
288: ; preds = %50
%289 = load i8*, i8** %2
%290 = load i8, i8* %289
%291 = call i32 @log_msg(i8* getelementptr inbounds ([146 x i8], [146 x i8]* @.str.32, i64 0, i64 0), i32 507, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.33, i64 0, i64 0), i8 signext %290)
br label %292
292: ; preds = %288, %283, %278, %273, %268, %263, %258, %253, %248, %243, %238, %233, %228, %223, %218, %213, %208, %194, %180, %166, %152, %138, %124, %110, %96, %82, %68, %54
br label %293
293: ; preds = %292, %49
%294 = load i8*, i8** %2
%295 = getelementptr inbounds i8, i8* %294, i32 1
store i8* %295, i8** %2
br label %8
296: ; preds = %8
%297 = load i8*, i8** %4
store i8 0, i8* %297
%298 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%299 = call i8* @allocstr(i8* %298)
ret i8* %299
}

LLVM IR (-O2):
@.str = [5 x i8] c"&gt;\00"
@.str.1 = [5 x i8] c"&lt;\00"
@.str.2 = [6 x i8] c"&amp;\00"
@.str.3 = [7 x i8] c"&quot;\00"
@.str.4 = [2 x i8] c"&\00"
@.str.5 = [6 x i8] c"ring;\00"
@.str.6 = [5 x i8] c"uml;\00"
@.str.7 = [7 x i8] c"acute;\00"
@.str.8 = [7 x i8] c"grave;\00"
@.str.9 = [7 x i8] c"tilde;\00"
@.str.10 = [6 x i8] c"circ;\00"
@.str.11 = [7 x i8] c"cedil;\00"
@.str.12 = [6 x i8] c"marc;\00"
@.str.13 = [6 x i8] c"brev;\00"
@.str.14 = [5 x i8] c"dot;\00"
@.str.15 = [7 x i8] c"dblac;\00"
@.str.16 = [8 x i8] c"&szlig;\00"
@.str.17 = [8 x i8] c"&THORN;\00"
@.str.18 = [8 x i8] c"&thorn;\00"
@.str.19 = [9 x i8] c"&Lstrok;\00"
@.str.20 = [9 x i8] c"&Oslash;\00"
@.str.21 = [9 x i8] c"&Dstrok;\00"
@.str.22 = [8 x i8] c"&AElig;\00"
@.str.23 = [8 x i8] c"&OElig;\00"
@.str.24 = [9 x i8] c"&lstrok;\00"
@.str.25 = [9 x i8] c"&oslash;\00"
@.str.26 = [9 x i8] c"&dstrok;\00"
@.str.27 = [8 x i8] c"&aelig;\00"
@.str.28 = [8 x i8] c"&oelig;\00"
@.str.29 = [9 x i8] c"&inodot;\00"
@.str.30 = [6 x i8] c"&eth;\00"
@.str.31 = [7 x i8] c"&copy;\00"
@.str.32 = [146 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/OS2World/APP-MISC-GED2WWW/refs/heads/master/src/utils.c\00"
@.str.33 = [29 x i8] c"Unrecognized ANSEL char 0x%X\00"
define i8* @ANSEL_to_html(i8* %0) {
%2 = alloca [1024 x i8]
%3 = getelementptr inbounds [1024 x i8], [1024 x i8]* %2, i64 0, i64 0
%4 = call i32 @memset(i8* %3, i8 signext 0, i32 1024)
%5 = load i8, i8* %0
%6 = icmp eq i8 %5, 0
br i1 %6, label %163, label %7
7: ; preds = %1, %157
%8 = phi i8 [ %161, %157 ], [ %5, %1 ]
%9 = phi i8* [ %159, %157 ], [ %3, %1 ]
%10 = phi i8* [ %160, %157 ], [ %0, %1 ]
%11 = sext i8 %8 to i32
%12 = and i32 %11, 128
%13 = icmp eq i32 %12, 0
br i1 %13, label %14, label %29
14: ; preds = %7
switch i32 %11, label %27 [
i32 62, label %15
i32 60, label %18
i32 38, label %21
i32 34, label %24
]
15: ; preds = %14
%16 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0))
%17 = getelementptr inbounds i8, i8* %9, i64 4
br label %157
18: ; preds = %14
%19 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0))
%20 = getelementptr inbounds i8, i8* %9, i64 4
br label %157
21: ; preds = %14
%22 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.2, i64 0, i64 0))
%23 = getelementptr inbounds i8, i8* %9, i64 5
br label %157
24: ; preds = %14
%25 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.3, i64 0, i64 0))
%26 = getelementptr inbounds i8, i8* %9, i64 6
br label %157
27: ; preds = %14
store i8 %8, i8* %9
%28 = getelementptr inbounds i8, i8* %9, i64 1
br label %157
29: ; preds = %7
switch i32 %11, label %155 [
i32 -22, label %30
i32 -24, label %37
i32 -30, label %44
i32 -31, label %51
i32 -28, label %58
i32 -29, label %65
i32 -16, label %72
i32 -27, label %79
i32 -26, label %86
i32 -25, label %93
i32 -18, label %100
i32 -49, label %107
i32 -92, label %110
i32 -76, label %113
i32 -95, label %116
i32 -94, label %119
i32 -93, label %122
i32 -91, label %125
i32 -90, label %128
i32 -79, label %131
i32 -78, label %134
i32 -77, label %137
i32 -75, label %140
i32 -74, label %143
i32 -72, label %146
i32 -70, label %149
i32 -61, label %152
]
30: ; preds = %29
%31 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.4, i64 0, i64 0))
%32 = getelementptr inbounds i8, i8* %9, i64 1
%33 = getelementptr inbounds i8, i8* %10, i64 1
%34 = load i8, i8* %33
store i8 %34, i8* %32
%35 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.5, i64 0, i64 0))
%36 = getelementptr inbounds i8, i8* %9, i64 7
br label %157
37: ; preds = %29
%38 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.4, i64 0, i64 0))
%39 = getelementptr inbounds i8, i8* %9, i64 1
%40 = getelementptr inbounds i8, i8* %10, i64 1
%41 = load i8, i8* %40
store i8 %41, i8* %39
%42 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0))
%43 = getelementptr inbounds i8, i8* %9, i64 6
br label %157
44: ; preds = %29
%45 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.4, i64 0, i64 0))
%46 = getelementptr inbounds i8, i8* %9, i64 1
%47 = getelementptr inbounds i8, i8* %10, i64 1
%48 = load i8, i8* %47
store i8 %48, i8* %46
%49 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.7, i64 0, i64 0))
%50 = getelementptr inbounds i8, i8* %9, i64 8
br label %157
51: ; preds = %29
%52 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.4, i64 0, i64 0))
%53 = getelementptr inbounds i8, i8* %9, i64 1
%54 = getelementptr inbounds i8, i8* %10, i64 1
%55 = load i8, i8* %54
store i8 %55, i8* %53
%56 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0))
%57 = getelementptr inbounds i8, i8* %9, i64 8
br label %157
58: ; preds = %29
%59 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.4, i64 0, i64 0))
%60 = getelementptr inbounds i8, i8* %9, i64 1
%61 = getelementptr inbounds i8, i8* %10, i64 1
%62 = load i8, i8* %61
store i8 %62, i8* %60
%63 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.9, i64 0, i64 0))
%64 = getelementptr inbounds i8, i8* %9, i64 8
br label %157
65: ; preds = %29
%66 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.4, i64 0, i64 0))
%67 = getelementptr inbounds i8, i8* %9, i64 1
%68 = getelementptr inbounds i8, i8* %10, i64 1
%69 = load i8, i8* %68
store i8 %69, i8* %67
%70 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.10, i64 0, i64 0))
%71 = getelementptr inbounds i8, i8* %9, i64 7
br label %157
72: ; preds = %29
%73 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.4, i64 0, i64 0))
%74 = getelementptr inbounds i8, i8* %9, i64 1
%75 = getelementptr inbounds i8, i8* %10, i64 1
%76 = load i8, i8* %75
store i8 %76, i8* %74
%77 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.11, i64 0, i64 0))
%78 = getelementptr inbounds i8, i8* %9, i64 8
br label %157
79: ; preds = %29
%80 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.4, i64 0, i64 0))
%81 = getelementptr inbounds i8, i8* %9, i64 1
%82 = getelementptr inbounds i8, i8* %10, i64 1
%83 = load i8, i8* %82
store i8 %83, i8* %81
%84 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.12, i64 0, i64 0))
%85 = getelementptr inbounds i8, i8* %9, i64 7
br label %157
86: ; preds = %29
%87 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.4, i64 0, i64 0))
%88 = getelementptr inbounds i8, i8* %9, i64 1
%89 = getelementptr inbounds i8, i8* %10, i64 1
%90 = load i8, i8* %89
store i8 %90, i8* %88
%91 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.13, i64 0, i64 0))
%92 = getelementptr inbounds i8, i8* %9, i64 7
br label %157
93: ; preds = %29
%94 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.4, i64 0, i64 0))
%95 = getelementptr inbounds i8, i8* %9, i64 1
%96 = getelementptr inbounds i8, i8* %10, i64 1
%97 = load i8, i8* %96
store i8 %97, i8* %95
%98 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.14, i64 0, i64 0))
%99 = getelementptr inbounds i8, i8* %9, i64 6
br label %157
100: ; preds = %29
%101 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.4, i64 0, i64 0))
%102 = getelementptr inbounds i8, i8* %9, i64 1
%103 = getelementptr inbounds i8, i8* %10, i64 1
%104 = load i8, i8* %103
store i8 %104, i8* %102
%105 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.15, i64 0, i64 0))
%106 = getelementptr inbounds i8, i8* %9, i64 8
br label %157
107: ; preds = %29
%108 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.16, i64 0, i64 0))
%109 = getelementptr inbounds i8, i8* %9, i64 7
br label %157
110: ; preds = %29
%111 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.17, i64 0, i64 0))
%112 = getelementptr inbounds i8, i8* %9, i64 7
br label %157
113: ; preds = %29
%114 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.18, i64 0, i64 0))
%115 = getelementptr inbounds i8, i8* %9, i64 7
br label %157
116: ; preds = %29
%117 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.19, i64 0, i64 0))
%118 = getelementptr inbounds i8, i8* %9, i64 8
br label %157
119: ; preds = %29
%120 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.20, i64 0, i64 0))
%121 = getelementptr inbounds i8, i8* %9, i64 8
br label %157
122: ; preds = %29
%123 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.21, i64 0, i64 0))
%124 = getelementptr inbounds i8, i8* %9, i64 8
br label %157
125: ; preds = %29
%126 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.22, i64 0, i64 0))
%127 = getelementptr inbounds i8, i8* %9, i64 7
br label %157
128: ; preds = %29
%129 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.23, i64 0, i64 0))
%130 = getelementptr inbounds i8, i8* %9, i64 7
br label %157
131: ; preds = %29
%132 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.24, i64 0, i64 0))
%133 = getelementptr inbounds i8, i8* %9, i64 8
br label %157
134: ; preds = %29
%135 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.25, i64 0, i64 0))
%136 = getelementptr inbounds i8, i8* %9, i64 8
br label %157
137: ; preds = %29
%138 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.26, i64 0, i64 0))
%139 = getelementptr inbounds i8, i8* %9, i64 8
br label %157
140: ; preds = %29
%141 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.27, i64 0, i64 0))
%142 = getelementptr inbounds i8, i8* %9, i64 7
br label %157
143: ; preds = %29
%144 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.28, i64 0, i64 0))
%145 = getelementptr inbounds i8, i8* %9, i64 7
br label %157
146: ; preds = %29
%147 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.29, i64 0, i64 0))
%148 = getelementptr inbounds i8, i8* %9, i64 8
br label %157
149: ; preds = %29
%150 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.30, i64 0, i64 0))
%151 = getelementptr inbounds i8, i8* %9, i64 5
br label %157
152: ; preds = %29
%153 = call i32 @strcat(i8* %3, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.31, i64 0, i64 0))
%154 = getelementptr inbounds i8, i8* %9, i64 6
br label %157
155: ; preds = %29
%156 = call i32 @log_msg(i8* getelementptr inbounds ([146 x i8], [146 x i8]* @.str.32, i64 0, i64 0), i32 507, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.33, i64 0, i64 0), i8 signext %8)
br label %157
157: ; preds = %30, %37, %44, %51, %58, %65, %72, %79, %86, %93, %100, %107, %110, %113, %116, %119, %122, %125, %128, %131, %134, %137, %140, %143, %146, %149, %152, %155, %15, %18, %21, %24, %27
%158 = phi i8* [ %10, %27 ], [ %10, %24 ], [ %10, %21 ], [ %10, %18 ], [ %10, %15 ], [ %10, %155 ], [ %10, %152 ], [ %10, %149 ], [ %10, %146 ], [ %10, %143 ], [ %10, %140 ], [ %10, %137 ], [ %10, %134 ], [ %10, %131 ], [ %10, %128 ], [ %10, %125 ], [ %10, %122 ], [ %10, %119 ], [ %10, %116 ], [ %10, %113 ], [ %10, %110 ], [ %10, %107 ], [ %103, %100 ], [ %96, %93 ], [ %89, %86 ], [ %82, %79 ], [ %75, %72 ], [ %68, %65 ], [ %61, %58 ], [ %54, %51 ], [ %47, %44 ], [ %40, %37 ], [ %33, %30 ]
%159 = phi i8* [ %28, %27 ], [ %26, %24 ], [ %23, %21 ], [ %20, %18 ], [ %17, %15 ], [ %9, %155 ], [ %154, %152 ], [ %151, %149 ], [ %148, %146 ], [ %145, %143 ], [ %142, %140 ], [ %139, %137 ], [ %136, %134 ], [ %133, %131 ], [ %130, %128 ], [ %127, %125 ], [ %124, %122 ], [ %121, %119 ], [ %118, %116 ], [ %115, %113 ], [ %112, %110 ], [ %109, %107 ], [ %106, %100 ], [ %99, %93 ], [ %92, %86 ], [ %85, %79 ], [ %78, %72 ], [ %71, %65 ], [ %64, %58 ], [ %57, %51 ], [ %50, %44 ], [ %43, %37 ], [ %36, %30 ]
%160 = getelementptr inbounds i8, i8* %158, i64 1
%161 = load i8, i8* %160
%162 = icmp eq i8 %161, 0
br i1 %162, label %163, label %7
163: ; preds = %157, %1
%164 = phi i8* [ %3, %1 ], [ %159, %157 ]
store i8 0, i8* %164
%165 = call i8* @allocstr(i8* %3)
ret i8* %165
}