#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*/ memmove(unsigned char *, unsigned char *,
                           int /*<<< orphan*/);
int /*<<< orphan*/ mvsize(unsigned char *, int);
int /*<<< orphan*/ write_text(unsigned char *, char *);
void utf_replace_html(unsigned char *s) {
  while (*s) {
    if (s[0] == 0xe2 && s[1] == 0x80) {
      if (s[2] == 0x93) {
        memmove(s + 7, s + 3, mvsize(s, 3));
        write_text(s, "&#8211;");
      } else if (s[2] == 0x94) {
        memmove(s + 7, s + 3, mvsize(s, 3));
        write_text(s, "&#8212;");
      } else if (s[2] == 0xa6) {
        write_text(s, "...");
      }
    } else if (s[0] == 0xe2 && s[1] == 0x88 && s[2] == 0x92) {
      write_text(s, "-");
      memmove(s + 1, s + 3, mvsize(s, 3));
    } else if (s[0] == 0xe2 && s[1] == 0x89 && s[2] == 0xa4) {
      write_text(s, "<=");
      memmove(s + 2, s + 3, mvsize(s, 3));
    } else if (s[0] == 0xce && s[1] == 0x93) {
      memmove(s + 7, s + 2, mvsize(s, 2));
      write_text(s, "&Gamma;");
    } else if (s[0] == 0xce && s[1] == 0xb2) {
      memmove(s + 6, s + 2, mvsize(s, 2));
      write_text(s, "&beta;");
    } else if (s[0] == 0xce && s[1] == 0xbb) {
      memmove(s + 8, s + 2, mvsize(s, 2));
      write_text(s, "&lambda;");
    } else if (s[0] == 0xce && s[1] == 0xbc) {
      memmove(s + 4, s + 2, mvsize(s, 2));
      write_text(s, "&mu;");
    } else if (s[0] == 0xcf && s[1] == 0x80) {
      memmove(s + 4, s + 2, mvsize(s, 2));
      write_text(s, "&pi;");
    } else if (s[0] == 0xcf && s[1] == 0x81) {
      memmove(s + 5, s + 2, mvsize(s, 2));
      write_text(s, "&rho;");
    } else if (s[0] == 0xcf && s[1] == 0x83) {
      memmove(s + 7, s + 2, mvsize(s, 2));
      write_text(s, "&sigma;");
    } else if (s[0] == 0xcf && s[1] == 0x89) {
      memmove(s + 7, s + 2, mvsize(s, 2));
      write_text(s, "&omega;");
    } else if (s[0] == 0xc2 && s[1] == 0xb0) {
      memmove(s + 5, s + 2, mvsize(s, 2));
      write_text(s, "&deg;");
    }
    s++;
  }
}


x86 assembly (clang, -O0):
<utf_replace_html>:
push   %rbp
mov    %rsp,%rbp
sub    $0xe0,%rsp
mov    %rdi,-0x8(%rbp)
mov    -0x8(%rbp),%rax
cmpb   $0x0,(%rax)
je     17cd <utf_replace_html+0x69d>
mov    -0x8(%rbp),%rax
movzbl (%rax),%eax
cmp    $0xe2,%eax
jne    125d <utf_replace_html+0x12d>
mov    -0x8(%rbp),%rax
movzbl 0x1(%rax),%eax
cmp    $0x80,%eax
jne    125d <utf_replace_html+0x12d>
mov    -0x8(%rbp),%rax
movzbl 0x2(%rax),%eax
cmp    $0x93,%eax
jne    11ce <utf_replace_html+0x9e>
mov    -0x8(%rbp),%rax
add    $0x7,%rax
mov    %rax,-0x18(%rbp)
mov    -0x8(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x8(%rbp),%rdi
mov    $0x3,%esi
call   1050 <mvsize@plt>
mov    -0x18(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    %eax,%edx
call   1040 <memmove@plt>
mov    -0x8(%rbp),%rdi
lea    0xe3c(%rip),%rsi
call   1030 <write_text@plt>
jmp    1258 <utf_replace_html+0x128>
mov    -0x8(%rbp),%rax
movzbl 0x2(%rax),%eax
cmp    $0x94,%eax
jne    122b <utf_replace_html+0xfb>
mov    -0x8(%rbp),%rax
add    $0x7,%rax
mov    %rax,-0x28(%rbp)
mov    -0x8(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x20(%rbp)
mov    -0x8(%rbp),%rdi
mov    $0x3,%esi
call   1050 <mvsize@plt>
mov    -0x28(%rbp),%rdi
mov    -0x20(%rbp),%rsi
mov    %eax,%edx
call   1040 <memmove@plt>
mov    -0x8(%rbp),%rdi
lea    0xde7(%rip),%rsi
call   1030 <write_text@plt>
jmp    1253 <utf_replace_html+0x123>
mov    -0x8(%rbp),%rax
movzbl 0x2(%rax),%eax
cmp    $0xa6,%eax
jne    124e <utf_replace_html+0x11e>
mov    -0x8(%rbp),%rdi
lea    0xdc7(%rip),%rsi
call   1030 <write_text@plt>
jmp    1253 <utf_replace_html+0x123>
jmp    1258 <utf_replace_html+0x128>
jmp    17bc <utf_replace_html+0x68c>
mov    -0x8(%rbp),%rax
movzbl (%rax),%eax
cmp    $0xe2,%eax
jne    12df <utf_replace_html+0x1af>
mov    -0x8(%rbp),%rax
movzbl 0x1(%rax),%eax
cmp    $0x88,%eax
jne    12df <utf_replace_html+0x1af>
mov    -0x8(%rbp),%rax
movzbl 0x2(%rax),%eax
cmp    $0x92,%eax
jne    12df <utf_replace_html+0x1af>
mov    -0x8(%rbp),%rdi
lea    0xd74(%rip),%rsi
call   1030 <write_text@plt>
mov    -0x8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x8(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x30(%rbp)
mov    -0x8(%rbp),%rdi
mov    $0x3,%esi
call   1050 <mvsize@plt>
mov    -0x38(%rbp),%rdi
mov    -0x30(%rbp),%rsi
mov    %eax,%edx
call   1040 <memmove@plt>
jmp    17b7 <utf_replace_html+0x687>
mov    -0x8(%rbp),%rax
movzbl (%rax),%eax
cmp    $0xe2,%eax
jne    1361 <utf_replace_html+0x231>
mov    -0x8(%rbp),%rax
movzbl 0x1(%rax),%eax
cmp    $0x89,%eax
jne    1361 <utf_replace_html+0x231>
mov    -0x8(%rbp),%rax
movzbl 0x2(%rax),%eax
cmp    $0xa4,%eax
jne    1361 <utf_replace_html+0x231>
mov    -0x8(%rbp),%rdi
lea    0xcf4(%rip),%rsi
call   1030 <write_text@plt>
mov    -0x8(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x48(%rbp)
mov    -0x8(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x40(%rbp)
mov    -0x8(%rbp),%rdi
mov    $0x3,%esi
call   1050 <mvsize@plt>
mov    -0x48(%rbp),%rdi
mov    -0x40(%rbp),%rsi
mov    %eax,%edx
call   1040 <memmove@plt>
jmp    17b2 <utf_replace_html+0x682>
mov    -0x8(%rbp),%rax
movzbl (%rax),%eax
cmp    $0xce,%eax
jne    13d0 <utf_replace_html+0x2a0>
mov    -0x8(%rbp),%rax
movzbl 0x1(%rax),%eax
cmp    $0x93,%eax
jne    13d0 <utf_replace_html+0x2a0>
mov    -0x8(%rbp),%rax
add    $0x7,%rax
mov    %rax,-0x58(%rbp)
mov    -0x8(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x50(%rbp)
mov    -0x8(%rbp),%rdi
mov    $0x2,%esi
call   1050 <mvsize@plt>
mov    -0x58(%rbp),%rdi
mov    -0x50(%rbp),%rsi
mov    %eax,%edx
call   1040 <memmove@plt>
mov    -0x8(%rbp),%rdi
lea    0xc53(%rip),%rsi
call   1030 <write_text@plt>
jmp    17ad <utf_replace_html+0x67d>
mov    -0x8(%rbp),%rax
movzbl (%rax),%eax
cmp    $0xce,%eax
jne    143f <utf_replace_html+0x30f>
mov    -0x8(%rbp),%rax
movzbl 0x1(%rax),%eax
cmp    $0xb2,%eax
jne    143f <utf_replace_html+0x30f>
mov    -0x8(%rbp),%rax
add    $0x6,%rax
mov    %rax,-0x68(%rbp)
mov    -0x8(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x60(%rbp)
mov    -0x8(%rbp),%rdi
mov    $0x2,%esi
call   1050 <mvsize@plt>
mov    -0x68(%rbp),%rdi
mov    -0x60(%rbp),%rsi
mov    %eax,%edx
call   1040 <memmove@plt>
mov    -0x8(%rbp),%rdi
lea    0xbec(%rip),%rsi
call   1030 <write_text@plt>
jmp    17a8 <utf_replace_html+0x678>
mov    -0x8(%rbp),%rax
movzbl (%rax),%eax
cmp    $0xce,%eax
jne    14ae <utf_replace_html+0x37e>
mov    -0x8(%rbp),%rax
movzbl 0x1(%rax),%eax
cmp    $0xbb,%eax
jne    14ae <utf_replace_html+0x37e>
mov    -0x8(%rbp),%rax
add    $0x8,%rax
mov    %rax,-0x78(%rbp)
mov    -0x8(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x70(%rbp)
mov    -0x8(%rbp),%rdi
mov    $0x2,%esi
call   1050 <mvsize@plt>
mov    -0x78(%rbp),%rdi
mov    -0x70(%rbp),%rsi
mov    %eax,%edx
call   1040 <memmove@plt>
mov    -0x8(%rbp),%rdi
lea    0xb84(%rip),%rsi
call   1030 <write_text@plt>
jmp    17a3 <utf_replace_html+0x673>
mov    -0x8(%rbp),%rax
movzbl (%rax),%eax
cmp    $0xce,%eax
jne    1523 <utf_replace_html+0x3f3>
mov    -0x8(%rbp),%rax
movzbl 0x1(%rax),%eax
cmp    $0xbc,%eax
jne    1523 <utf_replace_html+0x3f3>
mov    -0x8(%rbp),%rax
add    $0x4,%rax
mov    %rax,-0x88(%rbp)
mov    -0x8(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x80(%rbp)
mov    -0x8(%rbp),%rdi
mov    $0x2,%esi
call   1050 <mvsize@plt>
mov    -0x88(%rbp),%rdi
mov    -0x80(%rbp),%rsi
mov    %eax,%edx
call   1040 <memmove@plt>
mov    -0x8(%rbp),%rdi
lea    0xb18(%rip),%rsi
call   1030 <write_text@plt>
jmp    179e <utf_replace_html+0x66e>
mov    -0x8(%rbp),%rax
movzbl (%rax),%eax
cmp    $0xcf,%eax
jne    159e <utf_replace_html+0x46e>
mov    -0x8(%rbp),%rax
movzbl 0x1(%rax),%eax
cmp    $0x80,%eax
jne    159e <utf_replace_html+0x46e>
mov    -0x8(%rbp),%rax
add    $0x4,%rax
mov    %rax,-0x98(%rbp)
mov    -0x8(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x90(%rbp)
mov    -0x8(%rbp),%rdi
mov    $0x2,%esi
call   1050 <mvsize@plt>
mov    -0x98(%rbp),%rdi
mov    -0x90(%rbp),%rsi
mov    %eax,%edx
call   1040 <memmove@plt>
mov    -0x8(%rbp),%rdi
lea    0xaa2(%rip),%rsi
call   1030 <write_text@plt>
jmp    1799 <utf_replace_html+0x669>
mov    -0x8(%rbp),%rax
movzbl (%rax),%eax
cmp    $0xcf,%eax
jne    1619 <utf_replace_html+0x4e9>
mov    -0x8(%rbp),%rax
movzbl 0x1(%rax),%eax
cmp    $0x81,%eax
jne    1619 <utf_replace_html+0x4e9>
mov    -0x8(%rbp),%rax
add    $0x5,%rax
mov    %rax,-0xa8(%rbp)
mov    -0x8(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0xa0(%rbp)
mov    -0x8(%rbp),%rdi
mov    $0x2,%esi
call   1050 <mvsize@plt>
mov    -0xa8(%rbp),%rdi
mov    -0xa0(%rbp),%rsi
mov    %eax,%edx
call   1040 <memmove@plt>
mov    -0x8(%rbp),%rdi
lea    0xa2c(%rip),%rsi
call   1030 <write_text@plt>
jmp    1794 <utf_replace_html+0x664>
mov    -0x8(%rbp),%rax
movzbl (%rax),%eax
cmp    $0xcf,%eax
jne    1694 <utf_replace_html+0x564>
mov    -0x8(%rbp),%rax
movzbl 0x1(%rax),%eax
cmp    $0x83,%eax
jne    1694 <utf_replace_html+0x564>
mov    -0x8(%rbp),%rax
add    $0x7,%rax
mov    %rax,-0xb8(%rbp)
mov    -0x8(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0xb0(%rbp)
mov    -0x8(%rbp),%rdi
mov    $0x2,%esi
call   1050 <mvsize@plt>
mov    -0xb8(%rbp),%rdi
mov    -0xb0(%rbp),%rsi
mov    %eax,%edx
call   1040 <memmove@plt>
mov    -0x8(%rbp),%rdi
lea    0x9b7(%rip),%rsi
call   1030 <write_text@plt>
jmp    178f <utf_replace_html+0x65f>
mov    -0x8(%rbp),%rax
movzbl (%rax),%eax
cmp    $0xcf,%eax
jne    170f <utf_replace_html+0x5df>
mov    -0x8(%rbp),%rax
movzbl 0x1(%rax),%eax
cmp    $0x89,%eax
jne    170f <utf_replace_html+0x5df>
mov    -0x8(%rbp),%rax
add    $0x7,%rax
mov    %rax,-0xc8(%rbp)
mov    -0x8(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0xc0(%rbp)
mov    -0x8(%rbp),%rdi
mov    $0x2,%esi
call   1050 <mvsize@plt>
mov    -0xc8(%rbp),%rdi
mov    -0xc0(%rbp),%rsi
mov    %eax,%edx
call   1040 <memmove@plt>
mov    -0x8(%rbp),%rdi
lea    0x944(%rip),%rsi
call   1030 <write_text@plt>
jmp    178a <utf_replace_html+0x65a>
mov    -0x8(%rbp),%rax
movzbl (%rax),%eax
cmp    $0xc2,%eax
jne    1785 <utf_replace_html+0x655>
mov    -0x8(%rbp),%rax
movzbl 0x1(%rax),%eax
cmp    $0xb0,%eax
jne    1785 <utf_replace_html+0x655>
mov    -0x8(%rbp),%rax
add    $0x5,%rax
mov    %rax,-0xd8(%rbp)
mov    -0x8(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0xd0(%rbp)
mov    -0x8(%rbp),%rdi
mov    $0x2,%esi
call   1050 <mvsize@plt>
mov    -0xd8(%rbp),%rdi
mov    -0xd0(%rbp),%rsi
mov    %eax,%edx
call   1040 <memmove@plt>
mov    -0x8(%rbp),%rdi
lea    0x8d1(%rip),%rsi
call   1030 <write_text@plt>
jmp    178a <utf_replace_html+0x65a>
jmp    178f <utf_replace_html+0x65f>
jmp    1794 <utf_replace_html+0x664>
jmp    1799 <utf_replace_html+0x669>
jmp    179e <utf_replace_html+0x66e>
jmp    17a3 <utf_replace_html+0x673>
jmp    17a8 <utf_replace_html+0x678>
jmp    17ad <utf_replace_html+0x67d>
jmp    17b2 <utf_replace_html+0x682>
jmp    17b7 <utf_replace_html+0x687>
jmp    17bc <utf_replace_html+0x68c>
mov    -0x8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x8(%rbp)
jmp    113f <utf_replace_html+0xf>
add    $0xe0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<utf_replace_html>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
push   %rax
mov    %rdi,%rbx
lea    0xebb(%rip),%r13
lea    0xfb1(%rip),%r12
lea    0xf31(%rip),%r14
jmp    1199 <utf_replace_html+0x69>
lea    0x7(%rbx),%rbp
lea    0x2(%rbx),%r15
mov    %rbx,%rdi
mov    $0x2,%esi
call   1050 <mvsize@plt>
mov    %rbp,%rdi
mov    %r15,%rsi
mov    %eax,%edx
call   1040 <memmove@plt>
mov    %rbx,%rdi
lea    0xf74(%rip),%rsi
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
call   1030 <write_text@plt>
add    $0x1,%rbx
movzbl (%rbx),%eax
lea    0x3e(%rax),%ecx
cmp    $0x20,%cl
ja     12e8 <utf_replace_html+0x1b8>
movzbl %cl,%eax
movslq 0x0(%r13,%rax,4),%rax
add    %r13,%rax
jmp    *%rax
cmpb   $0xb0,0x1(%rbx)
jne    1195 <utf_replace_html+0x65>
lea    0x5(%rbx),%rbp
lea    0x2(%rbx),%r15
mov    %rbx,%rdi
mov    $0x2,%esi
call   1050 <mvsize@plt>
mov    %rbp,%rdi
mov    %r15,%rsi
mov    %eax,%edx
call   1040 <memmove@plt>
mov    %rbx,%rdi
mov    %r12,%rsi
jmp    1190 <utf_replace_html+0x60>
movzbl 0x1(%rbx),%eax
cmp    $0xba,%al
jg     12f5 <utf_replace_html+0x1c5>
cmp    $0x93,%al
je     1394 <utf_replace_html+0x264>
cmp    $0xb2,%al
jne    1195 <utf_replace_html+0x65>
lea    0x6(%rbx),%rbp
lea    0x2(%rbx),%r15
mov    %rbx,%rdi
mov    $0x2,%esi
call   1050 <mvsize@plt>
mov    %rbp,%rdi
mov    %r15,%rsi
mov    %eax,%edx
call   1040 <memmove@plt>
mov    %rbx,%rdi
lea    0xea4(%rip),%rsi
jmp    1190 <utf_replace_html+0x60>
movzbl 0x1(%rbx),%eax
add    $0x80,%al
cmp    $0x9,%al
ja     1195 <utf_replace_html+0x65>
movzbl %al,%eax
movslq (%r14,%rax,4),%rax
add    %r14,%rax
jmp    *%rax
lea    0x4(%rbx),%rbp
lea    0x2(%rbx),%r15
mov    %rbx,%rdi
mov    $0x2,%esi
call   1050 <mvsize@plt>
mov    %rbp,%rdi
mov    %r15,%rsi
mov    %eax,%edx
call   1040 <memmove@plt>
mov    %rbx,%rdi
lea    0xe6e(%rip),%rsi
jmp    1190 <utf_replace_html+0x60>
movzbl 0x1(%rbx),%eax
cmp    $0x89,%al
je     1336 <utf_replace_html+0x206>
cmp    $0x88,%al
je     1350 <utf_replace_html+0x220>
cmp    $0x80,%al
jne    1195 <utf_replace_html+0x65>
movzbl 0x2(%rbx),%eax
cmp    $0xa6,%al
je     1458 <utf_replace_html+0x328>
cmp    $0x94,%al
je     1467 <utf_replace_html+0x337>
cmp    $0x93,%al
jne    1195 <utf_replace_html+0x65>
lea    0x7(%rbx),%r15
mov    %r12,%rbp
lea    0x3(%rbx),%r12
mov    %rbx,%rdi
mov    $0x3,%esi
call   1050 <mvsize@plt>
mov    %r15,%rdi
mov    %r12,%rsi
mov    %rbp,%r12
mov    %eax,%edx
call   1040 <memmove@plt>
mov    %rbx,%rdi
lea    0xdc9(%rip),%rsi
jmp    1190 <utf_replace_html+0x60>
test   %al,%al
jne    1195 <utf_replace_html+0x65>
jmp    1498 <utf_replace_html+0x368>
cmp    $0xbb,%al
je     1427 <utf_replace_html+0x2f7>
cmp    $0xbc,%al
jne    1195 <utf_replace_html+0x65>
lea    0x4(%rbx),%rbp
lea    0x2(%rbx),%r15
mov    %rbx,%rdi
mov    $0x2,%esi
call   1050 <mvsize@plt>
mov    %rbp,%rdi
mov    %r15,%rsi
mov    %eax,%edx
call   1040 <memmove@plt>
mov    %rbx,%rdi
lea    0xdac(%rip),%rsi
jmp    1190 <utf_replace_html+0x60>
cmpb   $0xa4,0x2(%rbx)
jne    1195 <utf_replace_html+0x65>
lea    0x2(%rbx),%r15
mov    %rbx,%rdi
lea    0xd74(%rip),%rsi
jmp    1368 <utf_replace_html+0x238>
cmpb   $0x92,0x2(%rbx)
jne    1195 <utf_replace_html+0x65>
lea    0x1(%rbx),%r15
mov    %rbx,%rdi
lea    0xd58(%rip),%rsi
call   1030 <write_text@plt>
lea    0x3(%rbx),%rbp
mov    %rbx,%rdi
mov    $0x3,%esi
call   1050 <mvsize@plt>
mov    %r15,%rdi
mov    %rbp,%rsi
mov    %eax,%edx
call   1040 <memmove@plt>
add    $0x1,%rbx
jmp    1199 <utf_replace_html+0x69>
lea    0x7(%rbx),%rbp
lea    0x2(%rbx),%r15
mov    %rbx,%rdi
mov    $0x2,%esi
call   1050 <mvsize@plt>
mov    %rbp,%rdi
mov    %r15,%rsi
mov    %eax,%edx
call   1040 <memmove@plt>
mov    %rbx,%rdi
lea    0xd05(%rip),%rsi
jmp    1190 <utf_replace_html+0x60>
lea    0x5(%rbx),%rbp
lea    0x2(%rbx),%r15
mov    %rbx,%rdi
mov    $0x2,%esi
call   1050 <mvsize@plt>
mov    %rbp,%rdi
mov    %r15,%rsi
mov    %eax,%edx
call   1040 <memmove@plt>
mov    %rbx,%rdi
lea    0xcf6(%rip),%rsi
jmp    1190 <utf_replace_html+0x60>
lea    0x7(%rbx),%rbp
lea    0x2(%rbx),%r15
mov    %rbx,%rdi
mov    $0x2,%esi
call   1050 <mvsize@plt>
mov    %rbp,%rdi
mov    %r15,%rsi
mov    %eax,%edx
call   1040 <memmove@plt>
mov    %rbx,%rdi
lea    0xccb(%rip),%rsi
jmp    1190 <utf_replace_html+0x60>
lea    0x8(%rbx),%rbp
lea    0x2(%rbx),%r15
mov    %rbx,%rdi
mov    $0x2,%esi
call   1050 <mvsize@plt>
mov    %rbp,%rdi
mov    %r15,%rsi
mov    %eax,%edx
call   1040 <memmove@plt>
mov    %rbx,%rdi
lea    0xc81(%rip),%rsi
jmp    1190 <utf_replace_html+0x60>
mov    %rbx,%rdi
lea    0xc5a(%rip),%rsi
jmp    1190 <utf_replace_html+0x60>
lea    0x7(%rbx),%rbp
lea    0x3(%rbx),%r15
mov    %rbx,%rdi
mov    $0x3,%esi
call   1050 <mvsize@plt>
mov    %rbp,%rdi
mov    %r15,%rsi
mov    %eax,%edx
call   1040 <memmove@plt>
mov    %rbx,%rdi
lea    0xc21(%rip),%rsi
jmp    1190 <utf_replace_html+0x60>
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

LLVM IR (-O2):
@.str = [8 x i8] c"&;\00"
@.str.1 = [8 x i8] c"&;\00"
@.str.2 = [4 x i8] c"...\00"
@.str.3 = [2 x i8] c"-\00"
@.str.4 = [3 x i8] c"<=\00"
@.str.5 = [8 x i8] c"&Gamma;\00"
@.str.6 = [7 x i8] c"&beta;\00"
@.str.7 = [9 x i8] c"&lambda;\00"
@.str.8 = [5 x i8] c"&mu;\00"
@.str.9 = [5 x i8] c"&pi;\00"
@.str.10 = [6 x i8] c"&rho;\00"
@.str.11 = [8 x i8] c"&sigma;\00"
@.str.12 = [8 x i8] c"&omega;\00"
@.str.13 = [6 x i8] c"&deg;\00"
define void @utf_replace_html(i8* %0) {
br label %2
2: ; preds = %107, %1
%3 = phi i8* [ %0, %1 ], [ %108, %107 ]
%4 = load i8, i8* %3
switch i8 %4, label %107 [
i8 0, label %109
i8 -30, label %5
i8 -50, label %43
i8 -49, label %70
i8 -62, label %97
]
5: ; preds = %2
%6 = getelementptr inbounds i8, i8* %3, i64 1
%7 = load i8, i8* %6
switch i8 %7, label %107 [
i8 -128, label %8
i8 -120, label %25
i8 -119, label %34
]
8: ; preds = %5
%9 = getelementptr inbounds i8, i8* %3, i64 2
%10 = load i8, i8* %9
switch i8 %10, label %107 [
i8 -109, label %11
i8 -108, label %17
i8 -90, label %23
]
11: ; preds = %8
%12 = getelementptr inbounds i8, i8* %3, i64 7
%13 = getelementptr inbounds i8, i8* %3, i64 3
%14 = tail call i32 @mvsize(i8* %3, i32 3)
%15 = tail call i32 @memmove(i8* %12, i8* %13, i32 %14)
%16 = tail call i32 @write_text(i8* %3, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str, i64 0, i64 0))
br label %107
17: ; preds = %8
%18 = getelementptr inbounds i8, i8* %3, i64 7
%19 = getelementptr inbounds i8, i8* %3, i64 3
%20 = tail call i32 @mvsize(i8* %3, i32 3)
%21 = tail call i32 @memmove(i8* %18, i8* %19, i32 %20)
%22 = tail call i32 @write_text(i8* %3, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.1, i64 0, i64 0))
br label %107
23: ; preds = %8
%24 = tail call i32 @write_text(i8* %3, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0))
br label %107
25: ; preds = %5
%26 = getelementptr inbounds i8, i8* %3, i64 2
%27 = load i8, i8* %26
%28 = icmp eq i8 %27, -110
br i1 %28, label %29, label %107
29: ; preds = %25
%30 = tail call i32 @write_text(i8* %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%31 = getelementptr inbounds i8, i8* %3, i64 3
%32 = tail call i32 @mvsize(i8* %3, i32 3)
%33 = tail call i32 @memmove(i8* %6, i8* %31, i32 %32)
br label %107
34: ; preds = %5
%35 = getelementptr inbounds i8, i8* %3, i64 2
%36 = load i8, i8* %35
%37 = icmp eq i8 %36, -92
br i1 %37, label %38, label %107
38: ; preds = %34
%39 = tail call i32 @write_text(i8* %3, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0))
%40 = getelementptr inbounds i8, i8* %3, i64 3
%41 = tail call i32 @mvsize(i8* %3, i32 3)
%42 = tail call i32 @memmove(i8* %35, i8* %40, i32 %41)
br label %107
43: ; preds = %2
%44 = getelementptr inbounds i8, i8* %3, i64 1
%45 = load i8, i8* %44
switch i8 %45, label %107 [
i8 -109, label %46
i8 -78, label %52
i8 -69, label %58
i8 -68, label %64
]
46: ; preds = %43
%47 = getelementptr inbounds i8, i8* %3, i64 7
%48 = getelementptr inbounds i8, i8* %3, i64 2
%49 = tail call i32 @mvsize(i8* %3, i32 2)
%50 = tail call i32 @memmove(i8* %47, i8* %48, i32 %49)
%51 = tail call i32 @write_text(i8* %3, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.5, i64 0, i64 0))
br label %107
52: ; preds = %43
%53 = getelementptr inbounds i8, i8* %3, i64 6
%54 = getelementptr inbounds i8, i8* %3, i64 2
%55 = tail call i32 @mvsize(i8* %3, i32 2)
%56 = tail call i32 @memmove(i8* %53, i8* %54, i32 %55)
%57 = tail call i32 @write_text(i8* %3, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.6, i64 0, i64 0))
br label %107
58: ; preds = %43
%59 = getelementptr inbounds i8, i8* %3, i64 8
%60 = getelementptr inbounds i8, i8* %3, i64 2
%61 = tail call i32 @mvsize(i8* %3, i32 2)
%62 = tail call i32 @memmove(i8* %59, i8* %60, i32 %61)
%63 = tail call i32 @write_text(i8* %3, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.7, i64 0, i64 0))
br label %107
64: ; preds = %43
%65 = getelementptr inbounds i8, i8* %3, i64 4
%66 = getelementptr inbounds i8, i8* %3, i64 2
%67 = tail call i32 @mvsize(i8* %3, i32 2)
%68 = tail call i32 @memmove(i8* %65, i8* %66, i32 %67)
%69 = tail call i32 @write_text(i8* %3, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.8, i64 0, i64 0))
br label %107
70: ; preds = %2
%71 = getelementptr inbounds i8, i8* %3, i64 1
%72 = load i8, i8* %71
switch i8 %72, label %107 [
i8 -128, label %73
i8 -127, label %79
i8 -125, label %85
i8 -119, label %91
]
73: ; preds = %70
%74 = getelementptr inbounds i8, i8* %3, i64 4
%75 = getelementptr inbounds i8, i8* %3, i64 2
%76 = tail call i32 @mvsize(i8* %3, i32 2)
%77 = tail call i32 @memmove(i8* %74, i8* %75, i32 %76)
%78 = tail call i32 @write_text(i8* %3, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.9, i64 0, i64 0))
br label %107
79: ; preds = %70
%80 = getelementptr inbounds i8, i8* %3, i64 5
%81 = getelementptr inbounds i8, i8* %3, i64 2
%82 = tail call i32 @mvsize(i8* %3, i32 2)
%83 = tail call i32 @memmove(i8* %80, i8* %81, i32 %82)
%84 = tail call i32 @write_text(i8* %3, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.10, i64 0, i64 0))
br label %107
85: ; preds = %70
%86 = getelementptr inbounds i8, i8* %3, i64 7
%87 = getelementptr inbounds i8, i8* %3, i64 2
%88 = tail call i32 @mvsize(i8* %3, i32 2)
%89 = tail call i32 @memmove(i8* %86, i8* %87, i32 %88)
%90 = tail call i32 @write_text(i8* %3, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.11, i64 0, i64 0))
br label %107
91: ; preds = %70
%92 = getelementptr inbounds i8, i8* %3, i64 7
%93 = getelementptr inbounds i8, i8* %3, i64 2
%94 = tail call i32 @mvsize(i8* %3, i32 2)
%95 = tail call i32 @memmove(i8* %92, i8* %93, i32 %94)
%96 = tail call i32 @write_text(i8* %3, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.12, i64 0, i64 0))
br label %107
97: ; preds = %2
%98 = getelementptr inbounds i8, i8* %3, i64 1
%99 = load i8, i8* %98
%100 = icmp eq i8 %99, -80
br i1 %100, label %101, label %107
101: ; preds = %97
%102 = getelementptr inbounds i8, i8* %3, i64 5
%103 = getelementptr inbounds i8, i8* %3, i64 2
%104 = tail call i32 @mvsize(i8* %3, i32 2)
%105 = tail call i32 @memmove(i8* %102, i8* %103, i32 %104)
%106 = tail call i32 @write_text(i8* %3, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.13, i64 0, i64 0))
br label %107
107: ; preds = %70, %43, %5, %25, %2, %34, %8, %29, %46, %58, %73, %85, %97, %101, %91, %79, %64, %52, %38, %11, %23, %17
%108 = getelementptr inbounds i8, i8* %3, i64 1
br label %2
109: ; preds = %2
ret void
}