int get_char_in_utf_8(unsigned char *buffer, unsigned char c) {
  if (c < 0x80) {
    switch (c) {
    case 0x2a:
      *buffer = 0xc3;
      *(buffer + 1) = 0xa1;
      return 2;
    case 0x5c:
      *buffer = 0xc3;
      *(buffer + 1) = 0xa9;
      return 2;
    case 0x5e:
      *buffer = 0xc3;
      *(buffer + 1) = 0xad;
      return 2;
    case 0x5f:
      *buffer = 0xc3;
      *(buffer + 1) = 0xb3;
      return 2;
    case 0x60:
      *buffer = 0xc3;
      *(buffer + 1) = 0xba;
      return 2;
    case 0x7b:
      *buffer = 0xc3;
      *(buffer + 1) = 0xa7;
      return 2;
    case 0x7c:
      *buffer = 0xc3;
      *(buffer + 1) = 0xb7;
      return 2;
    case 0x7d:
      *buffer = 0xc3;
      *(buffer + 1) = 0x91;
      return 2;
    case 0x7e:
      *buffer = 0xc3;
      *(buffer + 1) = 0xb1;
      return 2;
    default:
      *buffer = c;
      return 1;
    }
  }
  switch (c) {
  case 0x80:
    *buffer = 0xc2;
    *(buffer + 1) = 0xae;
    return 2;
  case 0x81:
    *buffer = 0xc2;
    *(buffer + 1) = 0xb0;
    return 2;
  case 0x82:
    *buffer = 0xc2;
    *(buffer + 1) = 0xbd;
    return 2;
  case 0x83:
    *buffer = 0xc2;
    *(buffer + 1) = 0xbf;
    return 2;
  case 0x84:
    *buffer = 0xe2;
    *(buffer + 1) = 0x84;
    *(buffer + 2) = 0xa2;
    return 3;
  case 0x85:
    *buffer = 0xc2;
    *(buffer + 1) = 0xa2;
    return 2;
  case 0x86:
    *buffer = 0xc2;
    *(buffer + 1) = 0xa3;
    return 2;
  case 0x87:
    *buffer = 0xe2;
    *(buffer + 1) = 0x99;
    *(buffer + 2) = 0xaa;
    return 3;
  case 0x88:
    *buffer = 0xc3;
    *(buffer + 1) = 0xa0;
    return 2;
  case 0x89:
    *buffer = 0x20;
    return 1;
  case 0x8a:
    *buffer = 0xc3;
    *(buffer + 1) = 0xa8;
    return 2;
  case 0x8b:
    *buffer = 0xc3;
    *(buffer + 1) = 0xa2;
    return 2;
  case 0x8c:
    *buffer = 0xc3;
    *(buffer + 1) = 0xaa;
    return 2;
  case 0x8d:
    *buffer = 0xc3;
    *(buffer + 1) = 0xae;
    return 2;
  case 0x8e:
    *buffer = 0xc3;
    *(buffer + 1) = 0xb4;
    return 2;
  case 0x8f:
    *buffer = 0xc3;
    *(buffer + 1) = 0xbb;
    return 2;
  case 0x90:
    *buffer = 0xc3;
    *(buffer + 1) = 0x81;
    return 2;
  case 0x91:
    *buffer = 0xc3;
    *(buffer + 1) = 0x89;
    return 2;
  case 0x92:
    *buffer = 0xc3;
    *(buffer + 1) = 0x93;
    return 2;
  case 0x93:
    *buffer = 0xc3;
    *(buffer + 1) = 0x9a;
    return 2;
  case 0x94:
    *buffer = 0xc3;
    *(buffer + 1) = 0x9c;
    return 2;
  case 0x95:
    *buffer = 0xc3;
    *(buffer + 1) = 0xbc;
    return 2;
  case 0x96:
    *buffer = 0x27;
    return 1;
  case 0x97:
    *buffer = 0xc1;
    *(buffer + 1) = 0xa1;
    return 2;
  case 0x98:
    *buffer = 0x2a;
    return 1;
  case 0x99:
    *buffer = 0x27;
    return 1;
  case 0x9a:
    *buffer = 0x2d;
    return 1;
  case 0x9b:
    *buffer = 0xc2;
    *(buffer + 1) = 0xa9;
    return 2;
  case 0x9c:
    *buffer = 0xe2;
    *(buffer + 1) = 0x84;
    *(buffer + 2) = 0xa0;
    return 3;
  case 0x9d:
    *buffer = 0x2e;
    return 1;
  case 0x9e:
    *buffer = 0x22;
    return 1;
  case 0x9f:
    *buffer = 0x22;
    return 1;
  case 0xa0:
    *buffer = 0xc3;
    *(buffer + 1) = 0x80;
    return 2;
  case 0xa1:
    *buffer = 0xc3;
    *(buffer + 1) = 0x82;
    return 2;
  case 0xa2:
    *buffer = 0xc3;
    *(buffer + 1) = 0x87;
    return 2;
  case 0xa3:
    *buffer = 0xc3;
    *(buffer + 1) = 0x88;
    return 2;
  case 0xa4:
    *buffer = 0xc3;
    *(buffer + 1) = 0x8a;
    return 2;
  case 0xa5:
    *buffer = 0xc3;
    *(buffer + 1) = 0x8b;
    return 2;
  case 0xa6:
    *buffer = 0xc3;
    *(buffer + 1) = 0xab;
    return 2;
  case 0xa7:
    *buffer = 0xc3;
    *(buffer + 1) = 0x8e;
    return 2;
  case 0xa8:
    *buffer = 0xc3;
    *(buffer + 1) = 0x8f;
    return 2;
  case 0xa9:
    *buffer = 0xc3;
    *(buffer + 1) = 0xaf;
    return 2;
  case 0xaa:
    *buffer = 0xc3;
    *(buffer + 1) = 0x94;
    return 2;
  case 0xab:
    *buffer = 0xc3;
    *(buffer + 1) = 0x99;
    return 2;
  case 0xac:
    *buffer = 0xc3;
    *(buffer + 1) = 0xb9;
    return 2;
  case 0xad:
    *buffer = 0xc3;
    *(buffer + 1) = 0x9b;
    return 2;
  case 0xae:
    *buffer = 0xc2;
    *(buffer + 1) = 0xab;
    return 2;
  case 0xaf:
    *buffer = 0xc2;
    *(buffer + 1) = 0xbb;
    return 2;
  case 0xb0:
    *buffer = 0xc3;
    *(buffer + 1) = 0x83;
    return 2;
  case 0xb1:
    *buffer = 0xc3;
    *(buffer + 1) = 0xa3;
    return 2;
  case 0xb2:
    *buffer = 0xc3;
    *(buffer + 1) = 0x8d;
    return 2;
  case 0xb3:
    *buffer = 0xc3;
    *(buffer + 1) = 0x8c;
    return 2;
  case 0xb4:
    *buffer = 0xc3;
    *(buffer + 1) = 0xac;
    return 2;
  case 0xb5:
    *buffer = 0xc3;
    *(buffer + 1) = 0x92;
    return 2;
  case 0xb6:
    *buffer = 0xc3;
    *(buffer + 1) = 0xb2;
    return 2;
  case 0xb7:
    *buffer = 0xc3;
    *(buffer + 1) = 0x95;
    return 2;
  case 0xb8:
    *buffer = 0xc3;
    *(buffer + 1) = 0xb5;
    return 2;
  case 0xb9:
    *buffer = 0x7b;
    return 1;
  case 0xba:
    *buffer = 0x7d;
    return 1;
  case 0xbb:
    *buffer = 0x5c;
    return 1;
  case 0xbc:
    *buffer = 0x5e;
    return 1;
  case 0xbd:
    *buffer = 0x5f;
    return 1;
  case 0xbe:
    *buffer = 0xc2;
    *(buffer + 1) = 0xa6;
    return 1;
  case 0xbf:
    *buffer = 0x7e;
    return 1;
  case 0xc0:
    *buffer = 0xc3;
    *(buffer + 1) = 0x84;
    return 2;
  case 0xc1:
    *buffer = 0xc3;
    *(buffer + 1) = 0xa4;
    return 2;
  case 0xc2:
    *buffer = 0xc3;
    *(buffer + 1) = 0x96;
    return 2;
  case 0xc3:
    *buffer = 0xc3;
    *(buffer + 1) = 0xb6;
    return 2;
  case 0xc4:
    *buffer = 0xc3;
    *(buffer + 1) = 0x9f;
    return 2;
  case 0xc5:
    *buffer = 0xc2;
    *(buffer + 1) = 0xa5;
    return 2;
  case 0xc6:
    *buffer = 0xc2;
    *(buffer + 1) = 0xa4;
    return 2;
  case 0xc7:
    *buffer = 0x7c;
    return 1;
  case 0xc8:
    *buffer = 0xc3;
    *(buffer + 1) = 0x85;
    return 2;
  case 0xc9:
    *buffer = 0xc3;
    *(buffer + 1) = 0xa5;
    return 2;
  case 0xca:
    *buffer = 0xc3;
    *(buffer + 1) = 0x98;
    return 2;
  case 0xcb:
    *buffer = 0xc3;
    *(buffer + 1) = 0xb8;
    return 2;
  case 0xcc:
    *buffer = 0xe2;
    *(buffer + 1) = 0x8c;
    *(buffer + 2) = 0x9c;
    return 3;
  case 0xcd:
    *buffer = 0xe2;
    *(buffer + 1) = 0x8c;
    *(buffer + 2) = 0x9d;
    return 3;
  case 0xce:
    *buffer = 0xe2;
    *(buffer + 1) = 0x8c;
    *(buffer + 2) = 0x9e;
    return 3;
  case 0xcf:
    *buffer = 0xe2;
    *(buffer + 1) = 0x8c;
    *(buffer + 2) = 0x9f;
    return 3;
  default:
    *buffer = '?';
    return 1;
  }
}


x86 assembly (clang, -O0):
<get_char_in_utf_8>:
push   %rbp
mov    %rsp,%rbp
mov    %sil,%al
mov    %rdi,-0x10(%rbp)
mov    %al,-0x11(%rbp)
movzbl -0x11(%rbp),%eax
cmp    $0x80,%eax
jge    124f <get_char_in_utf_8+0x14f>
movzbl -0x11(%rbp),%eax
add    $0xffffffd6,%eax
mov    %eax,%ecx
mov    %rcx,-0x20(%rbp)
sub    $0x54,%eax
ja     123a <get_char_in_utf_8+0x13a>
mov    -0x20(%rbp),%rax
lea    0x1002(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xa1,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xa9,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xad,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xb3,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xba,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xa7,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xb7,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0x91,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xb1,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x11(%rbp),%cl
mov    -0x10(%rbp),%rax
mov    %cl,(%rax)
movl   $0x1,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
movzbl -0x11(%rbp),%eax
add    $0xffffff80,%eax
mov    %eax,%ecx
mov    %rcx,-0x28(%rbp)
sub    $0x4f,%eax
ja     1aa9 <get_char_in_utf_8+0x9a9>
mov    -0x28(%rbp),%rax
lea    0xd90(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x10(%rbp),%rax
movb   $0xc2,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xae,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc2,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xb0,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc2,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xbd,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc2,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xbf,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xe2,(%rax)
mov    -0x10(%rbp),%rax
movb   $0x84,0x1(%rax)
mov    -0x10(%rbp),%rax
movb   $0xa2,0x2(%rax)
movl   $0x3,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc2,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xa2,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc2,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xa3,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xe2,(%rax)
mov    -0x10(%rbp),%rax
movb   $0x99,0x1(%rax)
mov    -0x10(%rbp),%rax
movb   $0xaa,0x2(%rax)
movl   $0x3,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xa0,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0x20,(%rax)
movl   $0x1,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xa8,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xa2,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xaa,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xae,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xb4,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xbb,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0x81,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0x89,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0x93,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0x9a,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0x9c,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xbc,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0x27,(%rax)
movl   $0x1,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc1,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xa1,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0x2a,(%rax)
movl   $0x1,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0x27,(%rax)
movl   $0x1,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0x2d,(%rax)
movl   $0x1,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc2,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xa9,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xe2,(%rax)
mov    -0x10(%rbp),%rax
movb   $0x84,0x1(%rax)
mov    -0x10(%rbp),%rax
movb   $0xa0,0x2(%rax)
movl   $0x3,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0x2e,(%rax)
movl   $0x1,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0x22,(%rax)
movl   $0x1,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0x22,(%rax)
movl   $0x1,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0x80,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0x82,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0x87,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0x88,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0x8a,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0x8b,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xab,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0x8e,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0x8f,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xaf,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0x94,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0x99,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xb9,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0x9b,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc2,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xab,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc2,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xbb,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0x83,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xa3,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0x8d,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0x8c,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xac,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0x92,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xb2,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0x95,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xb5,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0x7b,(%rax)
movl   $0x1,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0x7d,(%rax)
movl   $0x1,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0x5c,(%rax)
movl   $0x1,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0x5e,(%rax)
movl   $0x1,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0x5f,(%rax)
movl   $0x1,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc2,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xa6,0x1(%rax)
movl   $0x1,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0x7e,(%rax)
movl   $0x1,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0x84,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xa4,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0x96,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xb6,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0x9f,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc2,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xa5,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc2,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xa4,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0x7c,(%rax)
movl   $0x1,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0x85,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xa5,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0x98,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xc3,(%rax)
mov    -0x10(%rbp),%rax
movb   $0xb8,0x1(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xe2,(%rax)
mov    -0x10(%rbp),%rax
movb   $0x8c,0x1(%rax)
mov    -0x10(%rbp),%rax
movb   $0x9c,0x2(%rax)
movl   $0x3,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xe2,(%rax)
mov    -0x10(%rbp),%rax
movb   $0x8c,0x1(%rax)
mov    -0x10(%rbp),%rax
movb   $0x9d,0x2(%rax)
movl   $0x3,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xe2,(%rax)
mov    -0x10(%rbp),%rax
movb   $0x8c,0x1(%rax)
mov    -0x10(%rbp),%rax
movb   $0x9e,0x2(%rax)
movl   $0x3,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0xe2,(%rax)
mov    -0x10(%rbp),%rax
movb   $0x8c,0x1(%rax)
mov    -0x10(%rbp),%rax
movb   $0x9f,0x2(%rax)
movl   $0x3,-0x4(%rbp)
jmp    1ab7 <get_char_in_utf_8+0x9b7>
mov    -0x10(%rbp),%rax
movb   $0x3f,(%rax)
movl   $0x1,-0x4(%rbp)
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<get_char_in_utf_8>:
test   %sil,%sil
js     112a <get_char_in_utf_8+0x2a>
lea    -0x2a(%rsi),%eax
cmp    $0x54,%al
ja     1155 <get_char_in_utf_8+0x55>
movzbl %al,%eax
lea    0x102a(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movw   $0xa1c3,(%rdi)
mov    $0x2,%eax
ret
add    $0x80,%sil
cmp    $0x4f,%sil
ja     11bf <get_char_in_utf_8+0xbf>
movzbl %sil,%eax
lea    0xebd(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movb   $0x27,(%rdi)
mov    $0x1,%eax
ret
mov    %sil,(%rdi)
mov    $0x1,%eax
ret
movw   $0xa9c3,(%rdi)
mov    $0x2,%eax
ret
movw   $0xadc3,(%rdi)
mov    $0x2,%eax
ret
movw   $0xb3c3,(%rdi)
mov    $0x2,%eax
ret
movw   $0xbac3,(%rdi)
mov    $0x2,%eax
ret
movw   $0xa7c3,(%rdi)
mov    $0x2,%eax
ret
movw   $0xb7c3,(%rdi)
mov    $0x2,%eax
ret
movw   $0x91c3,(%rdi)
mov    $0x2,%eax
ret
movw   $0xb1c3,(%rdi)
mov    $0x2,%eax
ret
movb   $0x22,(%rdi)
mov    $0x1,%eax
ret
movb   $0x3f,(%rdi)
mov    $0x1,%eax
ret
movw   $0xaec2,(%rdi)
mov    $0x2,%eax
ret
movw   $0xb0c2,(%rdi)
mov    $0x2,%eax
ret
movw   $0xbdc2,(%rdi)
mov    $0x2,%eax
ret
movw   $0xbfc2,(%rdi)
mov    $0x2,%eax
ret
movw   $0x84e2,(%rdi)
movb   $0xa2,0x2(%rdi)
mov    $0x3,%eax
ret
movw   $0xa2c2,(%rdi)
mov    $0x2,%eax
ret
movw   $0xa3c2,(%rdi)
mov    $0x2,%eax
ret
movw   $0x99e2,(%rdi)
movb   $0xaa,0x2(%rdi)
mov    $0x3,%eax
ret
movw   $0xa0c3,(%rdi)
mov    $0x2,%eax
ret
movb   $0x20,(%rdi)
mov    $0x1,%eax
ret
movw   $0xa8c3,(%rdi)
mov    $0x2,%eax
ret
movw   $0xa2c3,(%rdi)
mov    $0x2,%eax
ret
movw   $0xaac3,(%rdi)
mov    $0x2,%eax
ret
movw   $0xaec3,(%rdi)
mov    $0x2,%eax
ret
movw   $0xb4c3,(%rdi)
mov    $0x2,%eax
ret
movw   $0xbbc3,(%rdi)
mov    $0x2,%eax
ret
movw   $0x81c3,(%rdi)
mov    $0x2,%eax
ret
movw   $0x89c3,(%rdi)
mov    $0x2,%eax
ret
movw   $0x93c3,(%rdi)
mov    $0x2,%eax
ret
movw   $0x9ac3,(%rdi)
mov    $0x2,%eax
ret
movw   $0x9cc3,(%rdi)
mov    $0x2,%eax
ret
movw   $0xbcc3,(%rdi)
mov    $0x2,%eax
ret
movw   $0xa1c1,(%rdi)
mov    $0x2,%eax
ret
movb   $0x2a,(%rdi)
mov    $0x1,%eax
ret
movb   $0x2d,(%rdi)
mov    $0x1,%eax
ret
movw   $0xa9c2,(%rdi)
mov    $0x2,%eax
ret
movw   $0x84e2,(%rdi)
movb   $0xa0,0x2(%rdi)
mov    $0x3,%eax
ret
movb   $0x2e,(%rdi)
mov    $0x1,%eax
ret
movw   $0x80c3,(%rdi)
mov    $0x2,%eax
ret
movw   $0x82c3,(%rdi)
mov    $0x2,%eax
ret
movw   $0x87c3,(%rdi)
mov    $0x2,%eax
ret
movw   $0x88c3,(%rdi)
mov    $0x2,%eax
ret
movw   $0x8ac3,(%rdi)
mov    $0x2,%eax
ret
movw   $0x8bc3,(%rdi)
mov    $0x2,%eax
ret
movw   $0xabc3,(%rdi)
mov    $0x2,%eax
ret
movw   $0x8ec3,(%rdi)
mov    $0x2,%eax
ret
movw   $0x8fc3,(%rdi)
mov    $0x2,%eax
ret
movw   $0xafc3,(%rdi)
mov    $0x2,%eax
ret
movw   $0x94c3,(%rdi)
mov    $0x2,%eax
ret
movw   $0x99c3,(%rdi)
mov    $0x2,%eax
ret
movw   $0xb9c3,(%rdi)
mov    $0x2,%eax
ret
movw   $0x9bc3,(%rdi)
mov    $0x2,%eax
ret
movw   $0xabc2,(%rdi)
mov    $0x2,%eax
ret
movw   $0xbbc2,(%rdi)
mov    $0x2,%eax
ret
movw   $0x83c3,(%rdi)
mov    $0x2,%eax
ret
movw   $0xa3c3,(%rdi)
mov    $0x2,%eax
ret
movw   $0x8dc3,(%rdi)
mov    $0x2,%eax
ret
movw   $0x8cc3,(%rdi)
mov    $0x2,%eax
ret
movw   $0xacc3,(%rdi)
mov    $0x2,%eax
ret
movw   $0x92c3,(%rdi)
mov    $0x2,%eax
ret
movw   $0xb2c3,(%rdi)
mov    $0x2,%eax
ret
movw   $0x95c3,(%rdi)
mov    $0x2,%eax
ret
movw   $0xb5c3,(%rdi)
mov    $0x2,%eax
ret
movb   $0x7b,(%rdi)
mov    $0x1,%eax
ret
movb   $0x7d,(%rdi)
mov    $0x1,%eax
ret
movb   $0x5c,(%rdi)
mov    $0x1,%eax
ret
movb   $0x5e,(%rdi)
mov    $0x1,%eax
ret
movb   $0x5f,(%rdi)
mov    $0x1,%eax
ret
movw   $0xa6c2,(%rdi)
mov    $0x1,%eax
ret
movb   $0x7e,(%rdi)
mov    $0x1,%eax
ret
movw   $0x84c3,(%rdi)
mov    $0x2,%eax
ret
movw   $0xa4c3,(%rdi)
mov    $0x2,%eax
ret
movw   $0x96c3,(%rdi)
mov    $0x2,%eax
ret
movw   $0xb6c3,(%rdi)
mov    $0x2,%eax
ret
movw   $0x9fc3,(%rdi)
mov    $0x2,%eax
ret
movw   $0xa5c2,(%rdi)
mov    $0x2,%eax
ret
movw   $0xa4c2,(%rdi)
mov    $0x2,%eax
ret
movb   $0x7c,(%rdi)
mov    $0x1,%eax
ret
movw   $0x85c3,(%rdi)
mov    $0x2,%eax
ret
movw   $0xa5c3,(%rdi)
mov    $0x2,%eax
ret
movw   $0x98c3,(%rdi)
mov    $0x2,%eax
ret
movw   $0xb8c3,(%rdi)
mov    $0x2,%eax
ret
movw   $0x8ce2,(%rdi)
movb   $0x9c,0x2(%rdi)
mov    $0x3,%eax
ret
movw   $0x8ce2,(%rdi)
movb   $0x9d,0x2(%rdi)
mov    $0x3,%eax
ret
movw   $0x8ce2,(%rdi)
movb   $0x9e,0x2(%rdi)
mov    $0x3,%eax
ret
movw   $0x8ce2,(%rdi)
movb   $0x9f,0x2(%rdi)
mov    $0x3,%eax
ret

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

LLVM IR (-O2):
define i32 @get_char_in_utf_8(i8* writeonly %0, i8 zeroext %1) {
%3 = icmp sgt i8 %1, -1
br i1 %3, label %4, label %24
4: ; preds = %2
switch i8 %1, label %23 [
i8 42, label %5
i8 92, label %7
i8 94, label %9
i8 95, label %11
i8 96, label %13
i8 123, label %15
i8 124, label %17
i8 125, label %19
i8 126, label %21
]
5: ; preds = %4
store i8 -61, i8* %0
%6 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -95, i8* %6
br label %178
7: ; preds = %4
store i8 -61, i8* %0
%8 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -87, i8* %8
br label %178
9: ; preds = %4
store i8 -61, i8* %0
%10 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -83, i8* %10
br label %178
11: ; preds = %4
store i8 -61, i8* %0
%12 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -77, i8* %12
br label %178
13: ; preds = %4
store i8 -61, i8* %0
%14 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -70, i8* %14
br label %178
15: ; preds = %4
store i8 -61, i8* %0
%16 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -89, i8* %16
br label %178
17: ; preds = %4
store i8 -61, i8* %0
%18 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -73, i8* %18
br label %178
19: ; preds = %4
store i8 -61, i8* %0
%20 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -111, i8* %20
br label %178
21: ; preds = %4
store i8 -61, i8* %0
%22 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -79, i8* %22
br label %178
23: ; preds = %4
store i8 %1, i8* %0
br label %178
24: ; preds = %2
switch i8 %1, label %177 [
i8 -128, label %25
i8 -127, label %27
i8 -126, label %29
i8 -125, label %31
i8 -124, label %33
i8 -123, label %36
i8 -122, label %38
i8 -121, label %40
i8 -120, label %43
i8 -119, label %45
i8 -118, label %46
i8 -117, label %48
i8 -116, label %50
i8 -115, label %52
i8 -114, label %54
i8 -113, label %56
i8 -112, label %58
i8 -111, label %60
i8 -110, label %62
i8 -109, label %64
i8 -108, label %66
i8 -107, label %68
i8 -106, label %70
i8 -105, label %71
i8 -104, label %73
i8 -103, label %74
i8 -102, label %75
i8 -101, label %76
i8 -100, label %78
i8 -99, label %81
i8 -98, label %82
i8 -97, label %83
i8 -96, label %84
i8 -95, label %86
i8 -94, label %88
i8 -93, label %90
i8 -92, label %92
i8 -91, label %94
i8 -90, label %96
i8 -89, label %98
i8 -88, label %100
i8 -87, label %102
i8 -86, label %104
i8 -85, label %106
i8 -84, label %108
i8 -83, label %110
i8 -82, label %112
i8 -81, label %114
i8 -80, label %116
i8 -79, label %118
i8 -78, label %120
i8 -77, label %122
i8 -76, label %124
i8 -75, label %126
i8 -74, label %128
i8 -73, label %130
i8 -72, label %132
i8 -71, label %134
i8 -70, label %135
i8 -69, label %136
i8 -68, label %137
i8 -67, label %138
i8 -66, label %139
i8 -65, label %141
i8 -64, label %142
i8 -63, label %144
i8 -62, label %146
i8 -61, label %148
i8 -60, label %150
i8 -59, label %152
i8 -58, label %154
i8 -57, label %156
i8 -56, label %157
i8 -55, label %159
i8 -54, label %161
i8 -53, label %163
i8 -52, label %165
i8 -51, label %168
i8 -50, label %171
i8 -49, label %174
]
25: ; preds = %24
store i8 -62, i8* %0
%26 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -82, i8* %26
br label %178
27: ; preds = %24
store i8 -62, i8* %0
%28 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -80, i8* %28
br label %178
29: ; preds = %24
store i8 -62, i8* %0
%30 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -67, i8* %30
br label %178
31: ; preds = %24
store i8 -62, i8* %0
%32 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -65, i8* %32
br label %178
33: ; preds = %24
store i8 -30, i8* %0
%34 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -124, i8* %34
%35 = getelementptr inbounds i8, i8* %0, i64 2
store i8 -94, i8* %35
br label %178
36: ; preds = %24
store i8 -62, i8* %0
%37 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -94, i8* %37
br label %178
38: ; preds = %24
store i8 -62, i8* %0
%39 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -93, i8* %39
br label %178
40: ; preds = %24
store i8 -30, i8* %0
%41 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -103, i8* %41
%42 = getelementptr inbounds i8, i8* %0, i64 2
store i8 -86, i8* %42
br label %178
43: ; preds = %24
store i8 -61, i8* %0
%44 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -96, i8* %44
br label %178
45: ; preds = %24
store i8 32, i8* %0
br label %178
46: ; preds = %24
store i8 -61, i8* %0
%47 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -88, i8* %47
br label %178
48: ; preds = %24
store i8 -61, i8* %0
%49 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -94, i8* %49
br label %178
50: ; preds = %24
store i8 -61, i8* %0
%51 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -86, i8* %51
br label %178
52: ; preds = %24
store i8 -61, i8* %0
%53 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -82, i8* %53
br label %178
54: ; preds = %24
store i8 -61, i8* %0
%55 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -76, i8* %55
br label %178
56: ; preds = %24
store i8 -61, i8* %0
%57 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -69, i8* %57
br label %178
58: ; preds = %24
store i8 -61, i8* %0
%59 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -127, i8* %59
br label %178
60: ; preds = %24
store i8 -61, i8* %0
%61 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -119, i8* %61
br label %178
62: ; preds = %24
store i8 -61, i8* %0
%63 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -109, i8* %63
br label %178
64: ; preds = %24
store i8 -61, i8* %0
%65 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -102, i8* %65
br label %178
66: ; preds = %24
store i8 -61, i8* %0
%67 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -100, i8* %67
br label %178
68: ; preds = %24
store i8 -61, i8* %0
%69 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -68, i8* %69
br label %178
70: ; preds = %24
store i8 39, i8* %0
br label %178
71: ; preds = %24
store i8 -63, i8* %0
%72 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -95, i8* %72
br label %178
73: ; preds = %24
store i8 42, i8* %0
br label %178
74: ; preds = %24
store i8 39, i8* %0
br label %178
75: ; preds = %24
store i8 45, i8* %0
br label %178
76: ; preds = %24
store i8 -62, i8* %0
%77 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -87, i8* %77
br label %178
78: ; preds = %24
store i8 -30, i8* %0
%79 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -124, i8* %79
%80 = getelementptr inbounds i8, i8* %0, i64 2
store i8 -96, i8* %80
br label %178
81: ; preds = %24
store i8 46, i8* %0
br label %178
82: ; preds = %24
store i8 34, i8* %0
br label %178
83: ; preds = %24
store i8 34, i8* %0
br label %178
84: ; preds = %24
store i8 -61, i8* %0
%85 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -128, i8* %85
br label %178
86: ; preds = %24
store i8 -61, i8* %0
%87 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -126, i8* %87
br label %178
88: ; preds = %24
store i8 -61, i8* %0
%89 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -121, i8* %89
br label %178
90: ; preds = %24
store i8 -61, i8* %0
%91 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -120, i8* %91
br label %178
92: ; preds = %24
store i8 -61, i8* %0
%93 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -118, i8* %93
br label %178
94: ; preds = %24
store i8 -61, i8* %0
%95 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -117, i8* %95
br label %178
96: ; preds = %24
store i8 -61, i8* %0
%97 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -85, i8* %97
br label %178
98: ; preds = %24
store i8 -61, i8* %0
%99 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -114, i8* %99
br label %178
100: ; preds = %24
store i8 -61, i8* %0
%101 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -113, i8* %101
br label %178
102: ; preds = %24
store i8 -61, i8* %0
%103 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -81, i8* %103
br label %178
104: ; preds = %24
store i8 -61, i8* %0
%105 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -108, i8* %105
br label %178
106: ; preds = %24
store i8 -61, i8* %0
%107 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -103, i8* %107
br label %178
108: ; preds = %24
store i8 -61, i8* %0
%109 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -71, i8* %109
br label %178
110: ; preds = %24
store i8 -61, i8* %0
%111 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -101, i8* %111
br label %178
112: ; preds = %24
store i8 -62, i8* %0
%113 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -85, i8* %113
br label %178
114: ; preds = %24
store i8 -62, i8* %0
%115 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -69, i8* %115
br label %178
116: ; preds = %24
store i8 -61, i8* %0
%117 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -125, i8* %117
br label %178
118: ; preds = %24
store i8 -61, i8* %0
%119 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -93, i8* %119
br label %178
120: ; preds = %24
store i8 -61, i8* %0
%121 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -115, i8* %121
br label %178
122: ; preds = %24
store i8 -61, i8* %0
%123 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -116, i8* %123
br label %178
124: ; preds = %24
store i8 -61, i8* %0
%125 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -84, i8* %125
br label %178
126: ; preds = %24
store i8 -61, i8* %0
%127 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -110, i8* %127
br label %178
128: ; preds = %24
store i8 -61, i8* %0
%129 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -78, i8* %129
br label %178
130: ; preds = %24
store i8 -61, i8* %0
%131 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -107, i8* %131
br label %178
132: ; preds = %24
store i8 -61, i8* %0
%133 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -75, i8* %133
br label %178
134: ; preds = %24
store i8 123, i8* %0
br label %178
135: ; preds = %24
store i8 125, i8* %0
br label %178
136: ; preds = %24
store i8 92, i8* %0
br label %178
137: ; preds = %24
store i8 94, i8* %0
br label %178
138: ; preds = %24
store i8 95, i8* %0
br label %178
139: ; preds = %24
store i8 -62, i8* %0
%140 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -90, i8* %140
br label %178
141: ; preds = %24
store i8 126, i8* %0
br label %178
142: ; preds = %24
store i8 -61, i8* %0
%143 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -124, i8* %143
br label %178
144: ; preds = %24
store i8 -61, i8* %0
%145 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -92, i8* %145
br label %178
146: ; preds = %24
store i8 -61, i8* %0
%147 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -106, i8* %147
br label %178
148: ; preds = %24
store i8 -61, i8* %0
%149 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -74, i8* %149
br label %178
150: ; preds = %24
store i8 -61, i8* %0
%151 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -97, i8* %151
br label %178
152: ; preds = %24
store i8 -62, i8* %0
%153 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -91, i8* %153
br label %178
154: ; preds = %24
store i8 -62, i8* %0
%155 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -92, i8* %155
br label %178
156: ; preds = %24
store i8 124, i8* %0
br label %178
157: ; preds = %24
store i8 -61, i8* %0
%158 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -123, i8* %158
br label %178
159: ; preds = %24
store i8 -61, i8* %0
%160 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -91, i8* %160
br label %178
161: ; preds = %24
store i8 -61, i8* %0
%162 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -104, i8* %162
br label %178
163: ; preds = %24
store i8 -61, i8* %0
%164 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -72, i8* %164
br label %178
165: ; preds = %24
store i8 -30, i8* %0
%166 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -116, i8* %166
%167 = getelementptr inbounds i8, i8* %0, i64 2
store i8 -100, i8* %167
br label %178
168: ; preds = %24
store i8 -30, i8* %0
%169 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -116, i8* %169
%170 = getelementptr inbounds i8, i8* %0, i64 2
store i8 -99, i8* %170
br label %178
171: ; preds = %24
store i8 -30, i8* %0
%172 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -116, i8* %172
%173 = getelementptr inbounds i8, i8* %0, i64 2
store i8 -98, i8* %173
br label %178
174: ; preds = %24
store i8 -30, i8* %0
%175 = getelementptr inbounds i8, i8* %0, i64 1
store i8 -116, i8* %175
%176 = getelementptr inbounds i8, i8* %0, i64 2
store i8 -97, i8* %176
br label %178
177: ; preds = %24
store i8 63, i8* %0
br label %178
178: ; preds = %177, %174, %171, %168, %165, %163, %161, %159, %157, %156, %154, %152, %150, %148, %146, %144, %142, %141, %139, %138, %137, %136, %135, %134, %132, %130, %128, %126, %124, %122, %120, %118, %116, %114, %112, %110, %108, %106, %104, %102, %100, %98, %96, %94, %92, %90, %88, %86, %84, %83, %82, %81, %78, %76, %75, %74, %73, %71, %70, %68, %66, %64, %62, %60, %58, %56, %54, %52, %50, %48, %46, %45, %43, %40, %38, %36, %33, %31, %29, %27, %25, %23, %21, %19, %17, %15, %13, %11, %9, %7, %5
%179 = phi i32 [ 1, %23 ], [ 2, %21 ], [ 2, %19 ], [ 2, %17 ], [ 2, %15 ], [ 2, %13 ], [ 2, %11 ], [ 2, %9 ], [ 2, %7 ], [ 2, %5 ], [ 1, %177 ], [ 3, %174 ], [ 3, %171 ], [ 3, %168 ], [ 3, %165 ], [ 2, %163 ], [ 2, %161 ], [ 2, %159 ], [ 2, %157 ], [ 1, %156 ], [ 2, %154 ], [ 2, %152 ], [ 2, %150 ], [ 2, %148 ], [ 2, %146 ], [ 2, %144 ], [ 2, %142 ], [ 1, %141 ], [ 1, %139 ], [ 1, %138 ], [ 1, %137 ], [ 1, %136 ], [ 1, %135 ], [ 1, %134 ], [ 2, %132 ], [ 2, %130 ], [ 2, %128 ], [ 2, %126 ], [ 2, %124 ], [ 2, %122 ], [ 2, %120 ], [ 2, %118 ], [ 2, %116 ], [ 2, %114 ], [ 2, %112 ], [ 2, %110 ], [ 2, %108 ], [ 2, %106 ], [ 2, %104 ], [ 2, %102 ], [ 2, %100 ], [ 2, %98 ], [ 2, %96 ], [ 2, %94 ], [ 2, %92 ], [ 2, %90 ], [ 2, %88 ], [ 2, %86 ], [ 2, %84 ], [ 1, %83 ], [ 1, %82 ], [ 1, %81 ], [ 3, %78 ], [ 2, %76 ], [ 1, %75 ], [ 1, %74 ], [ 1, %73 ], [ 2, %71 ], [ 1, %70 ], [ 2, %68 ], [ 2, %66 ], [ 2, %64 ], [ 2, %62 ], [ 2, %60 ], [ 2, %58 ], [ 2, %56 ], [ 2, %54 ], [ 2, %52 ], [ 2, %50 ], [ 2, %48 ], [ 2, %46 ], [ 1, %45 ], [ 2, %43 ], [ 3, %40 ], [ 2, %38 ], [ 2, %36 ], [ 3, %33 ], [ 2, %31 ], [ 2, %29 ], [ 2, %27 ], [ 2, %25 ]
ret i32 %179
}