#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*/ printf(char *, char, int);
int strlen(char *);
int create_letter_distribution_diagram(char sentence[500]) {
  int counter, letter_count[26], comparison, u = 25;
  char letter[26];
  for (counter = 0; counter < 26; counter++)
    letter_count[counter] = 0;
  for (counter = 0; counter != strlen(sentence); counter++) {
    if (sentence[counter] == 'a' || sentence[counter] == 'A')
      letter_count[0]++;
    else if (sentence[counter] == 'b' || sentence[counter] == 'B')
      letter_count[1]++;
    else if (sentence[counter] == 'c' || sentence[counter] == 'C')
      letter_count[2]++;
    else if (sentence[counter] == 'd' || sentence[counter] == 'D')
      letter_count[3]++;
    else if (sentence[counter] == 'e' || sentence[counter] == 'E')
      letter_count[4]++;
    else if (sentence[counter] == 'f' || sentence[counter] == 'F')
      letter_count[5]++;
    else if (sentence[counter] == 'g' || sentence[counter] == 'G')
      letter_count[6]++;
    else if (sentence[counter] == 'h' || sentence[counter] == 'H')
      letter_count[7]++;
    else if (sentence[counter] == 'i' || sentence[counter] == 'I')
      letter_count[8]++;
    else if (sentence[counter] == 'j' || sentence[counter] == 'J')
      letter_count[9]++;
    else if (sentence[counter] == 'k' || sentence[counter] == 'K')
      letter_count[10]++;
    else if (sentence[counter] == 'l' || sentence[counter] == 'L')
      letter_count[11]++;
    else if (sentence[counter] == 'm' || sentence[counter] == 'M')
      letter_count[12]++;
    else if (sentence[counter] == 'n' || sentence[counter] == 'N')
      letter_count[13]++;
    else if (sentence[counter] == 'o' || sentence[counter] == 'O')
      letter_count[14]++;
    else if (sentence[counter] == 'p' || sentence[counter] == 'P')
      letter_count[15]++;
    else if (sentence[counter] == 'q' || sentence[counter] == 'Q')
      letter_count[16]++;
    else if (sentence[counter] == 'r' || sentence[counter] == 'R')
      letter_count[17]++;
    else if (sentence[counter] == 's' || sentence[counter] == 'S')
      letter_count[18]++;
    else if (sentence[counter] == 't' || sentence[counter] == 'T')
      letter_count[19]++;
    else if (sentence[counter] == 'u' || sentence[counter] == 'U')
      letter_count[20]++;
    else if (sentence[counter] == 'v' || sentence[counter] == 'V')
      letter_count[21]++;
    else if (sentence[counter] == 'w' || sentence[counter] == 'W')
      letter_count[22]++;
    else if (sentence[counter] == 'x' || sentence[counter] == 'X')
      letter_count[23]++;
    else if (sentence[counter] == 'y' || sentence[counter] == 'Y')
      letter_count[24]++;
    else if (sentence[counter] == 'z' || sentence[counter] == 'Z')
      letter_count[25]++;
  }
  for (counter = 0; counter < 26; counter++)
    letter[counter] = 97 + counter;
  for (u = 25; u != 0; u--) {
    for (counter = 0; counter < 26; counter++) {
      if (letter_count[counter] < letter_count[counter + 1]) {
        comparison = letter[counter + 1];
        letter[counter + 1] = letter[counter];
        letter[counter] = comparison;
        comparison = letter_count[counter];
        letter_count[counter] = letter_count[1 + counter];
        letter_count[1 + counter] = comparison;
      }
    }
  }
  for (counter = 0; counter < 26; counter++)
    printf("%c - %d\n", letter[counter], letter_count[counter]);
}


x86 assembly (clang, -O0):
<create_letter_distribution_diagram>:
push   %rbp
mov    %rsp,%rbp
sub    $0xc0,%rsp
mov    %rdi,-0x10(%rbp)
movl   $0x19,-0x88(%rbp)
movl   $0x0,-0x14(%rbp)
cmpl   $0x1a,-0x14(%rbp)
jge    1164 <create_letter_distribution_diagram+0x44>
movslq -0x14(%rbp),%rax
movl   $0x0,-0x80(%rbp,%rax,4)
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    1140 <create_letter_distribution_diagram+0x20>
movl   $0x0,-0x14(%rbp)
mov    -0x14(%rbp),%eax
mov    %eax,-0xb4(%rbp)
mov    -0x10(%rbp),%rdi
call   1030 <strlen@plt>
mov    %eax,%ecx
mov    -0xb4(%rbp),%eax
cmp    %ecx,%eax
je     17c8 <create_letter_distribution_diagram+0x6a8>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x61,%eax
je     11b7 <create_letter_distribution_diagram+0x97>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x41,%eax
jne    11c5 <create_letter_distribution_diagram+0xa5>
mov    -0x80(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x80(%rbp)
jmp    17b5 <create_letter_distribution_diagram+0x695>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x62,%eax
je     11ef <create_letter_distribution_diagram+0xcf>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x42,%eax
jne    11fd <create_letter_distribution_diagram+0xdd>
mov    -0x7c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x7c(%rbp)
jmp    17b0 <create_letter_distribution_diagram+0x690>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x63,%eax
je     1227 <create_letter_distribution_diagram+0x107>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x43,%eax
jne    1235 <create_letter_distribution_diagram+0x115>
mov    -0x78(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x78(%rbp)
jmp    17ab <create_letter_distribution_diagram+0x68b>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x64,%eax
je     125f <create_letter_distribution_diagram+0x13f>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x44,%eax
jne    126d <create_letter_distribution_diagram+0x14d>
mov    -0x74(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x74(%rbp)
jmp    17a6 <create_letter_distribution_diagram+0x686>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x65,%eax
je     1297 <create_letter_distribution_diagram+0x177>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x45,%eax
jne    12a5 <create_letter_distribution_diagram+0x185>
mov    -0x70(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x70(%rbp)
jmp    17a1 <create_letter_distribution_diagram+0x681>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x66,%eax
je     12cf <create_letter_distribution_diagram+0x1af>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x46,%eax
jne    12dd <create_letter_distribution_diagram+0x1bd>
mov    -0x6c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x6c(%rbp)
jmp    179c <create_letter_distribution_diagram+0x67c>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x67,%eax
je     1307 <create_letter_distribution_diagram+0x1e7>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x47,%eax
jne    1315 <create_letter_distribution_diagram+0x1f5>
mov    -0x68(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x68(%rbp)
jmp    1797 <create_letter_distribution_diagram+0x677>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x68,%eax
je     133f <create_letter_distribution_diagram+0x21f>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x48,%eax
jne    134d <create_letter_distribution_diagram+0x22d>
mov    -0x64(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x64(%rbp)
jmp    1792 <create_letter_distribution_diagram+0x672>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x69,%eax
je     1377 <create_letter_distribution_diagram+0x257>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x49,%eax
jne    1385 <create_letter_distribution_diagram+0x265>
mov    -0x60(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x60(%rbp)
jmp    178d <create_letter_distribution_diagram+0x66d>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x6a,%eax
je     13af <create_letter_distribution_diagram+0x28f>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x4a,%eax
jne    13bd <create_letter_distribution_diagram+0x29d>
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    1788 <create_letter_distribution_diagram+0x668>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x6b,%eax
je     13e7 <create_letter_distribution_diagram+0x2c7>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x4b,%eax
jne    13f5 <create_letter_distribution_diagram+0x2d5>
mov    -0x58(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x58(%rbp)
jmp    1783 <create_letter_distribution_diagram+0x663>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x6c,%eax
je     141f <create_letter_distribution_diagram+0x2ff>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x4c,%eax
jne    142d <create_letter_distribution_diagram+0x30d>
mov    -0x54(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x54(%rbp)
jmp    177e <create_letter_distribution_diagram+0x65e>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x6d,%eax
je     1457 <create_letter_distribution_diagram+0x337>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x4d,%eax
jne    1465 <create_letter_distribution_diagram+0x345>
mov    -0x50(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x50(%rbp)
jmp    1779 <create_letter_distribution_diagram+0x659>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x6e,%eax
je     148f <create_letter_distribution_diagram+0x36f>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x4e,%eax
jne    149d <create_letter_distribution_diagram+0x37d>
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    1774 <create_letter_distribution_diagram+0x654>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x6f,%eax
je     14c7 <create_letter_distribution_diagram+0x3a7>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x4f,%eax
jne    14d5 <create_letter_distribution_diagram+0x3b5>
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    176f <create_letter_distribution_diagram+0x64f>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x70,%eax
je     14ff <create_letter_distribution_diagram+0x3df>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x50,%eax
jne    150d <create_letter_distribution_diagram+0x3ed>
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    176a <create_letter_distribution_diagram+0x64a>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x71,%eax
je     1537 <create_letter_distribution_diagram+0x417>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x51,%eax
jne    1545 <create_letter_distribution_diagram+0x425>
mov    -0x40(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x40(%rbp)
jmp    1765 <create_letter_distribution_diagram+0x645>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x72,%eax
je     156f <create_letter_distribution_diagram+0x44f>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x52,%eax
jne    157d <create_letter_distribution_diagram+0x45d>
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
jmp    1760 <create_letter_distribution_diagram+0x640>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x73,%eax
je     15a7 <create_letter_distribution_diagram+0x487>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x53,%eax
jne    15b5 <create_letter_distribution_diagram+0x495>
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    175b <create_letter_distribution_diagram+0x63b>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x74,%eax
je     15df <create_letter_distribution_diagram+0x4bf>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x54,%eax
jne    15ed <create_letter_distribution_diagram+0x4cd>
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    1756 <create_letter_distribution_diagram+0x636>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x75,%eax
je     1617 <create_letter_distribution_diagram+0x4f7>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x55,%eax
jne    1625 <create_letter_distribution_diagram+0x505>
mov    -0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
jmp    1751 <create_letter_distribution_diagram+0x631>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x76,%eax
je     164f <create_letter_distribution_diagram+0x52f>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x56,%eax
jne    165d <create_letter_distribution_diagram+0x53d>
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    174c <create_letter_distribution_diagram+0x62c>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x77,%eax
je     1687 <create_letter_distribution_diagram+0x567>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x57,%eax
jne    1695 <create_letter_distribution_diagram+0x575>
mov    -0x28(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x28(%rbp)
jmp    1747 <create_letter_distribution_diagram+0x627>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x78,%eax
je     16bf <create_letter_distribution_diagram+0x59f>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x58,%eax
jne    16cd <create_letter_distribution_diagram+0x5ad>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    1742 <create_letter_distribution_diagram+0x622>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x79,%eax
je     16f7 <create_letter_distribution_diagram+0x5d7>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x59,%eax
jne    1705 <create_letter_distribution_diagram+0x5e5>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    173d <create_letter_distribution_diagram+0x61d>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x7a,%eax
je     172f <create_letter_distribution_diagram+0x60f>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x5a,%eax
jne    1738 <create_letter_distribution_diagram+0x618>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    173d <create_letter_distribution_diagram+0x61d>
jmp    1742 <create_letter_distribution_diagram+0x622>
jmp    1747 <create_letter_distribution_diagram+0x627>
jmp    174c <create_letter_distribution_diagram+0x62c>
jmp    1751 <create_letter_distribution_diagram+0x631>
jmp    1756 <create_letter_distribution_diagram+0x636>
jmp    175b <create_letter_distribution_diagram+0x63b>
jmp    1760 <create_letter_distribution_diagram+0x640>
jmp    1765 <create_letter_distribution_diagram+0x645>
jmp    176a <create_letter_distribution_diagram+0x64a>
jmp    176f <create_letter_distribution_diagram+0x64f>
jmp    1774 <create_letter_distribution_diagram+0x654>
jmp    1779 <create_letter_distribution_diagram+0x659>
jmp    177e <create_letter_distribution_diagram+0x65e>
jmp    1783 <create_letter_distribution_diagram+0x663>
jmp    1788 <create_letter_distribution_diagram+0x668>
jmp    178d <create_letter_distribution_diagram+0x66d>
jmp    1792 <create_letter_distribution_diagram+0x672>
jmp    1797 <create_letter_distribution_diagram+0x677>
jmp    179c <create_letter_distribution_diagram+0x67c>
jmp    17a1 <create_letter_distribution_diagram+0x681>
jmp    17a6 <create_letter_distribution_diagram+0x686>
jmp    17ab <create_letter_distribution_diagram+0x68b>
jmp    17b0 <create_letter_distribution_diagram+0x690>
jmp    17b5 <create_letter_distribution_diagram+0x695>
jmp    17ba <create_letter_distribution_diagram+0x69a>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    116b <create_letter_distribution_diagram+0x4b>
movl   $0x0,-0x14(%rbp)
cmpl   $0x1a,-0x14(%rbp)
jge    17fa <create_letter_distribution_diagram+0x6da>
mov    -0x14(%rbp),%eax
add    $0x61,%eax
mov    %al,%cl
movslq -0x14(%rbp),%rax
mov    %cl,-0xb0(%rbp,%rax,1)
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    17cf <create_letter_distribution_diagram+0x6af>
movl   $0x19,-0x88(%rbp)
cmpl   $0x0,-0x88(%rbp)
je     18e0 <create_letter_distribution_diagram+0x7c0>
movl   $0x0,-0x14(%rbp)
cmpl   $0x1a,-0x14(%rbp)
jge    18c7 <create_letter_distribution_diagram+0x7a7>
movslq -0x14(%rbp),%rax
mov    -0x80(%rbp,%rax,4),%eax
mov    -0x14(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
cmp    -0x80(%rbp,%rcx,4),%eax
jge    18b4 <create_letter_distribution_diagram+0x794>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
cltq
movsbl -0xb0(%rbp,%rax,1),%eax
ff
mov    %eax,-0x84(%rbp)
movslq -0x14(%rbp),%rax
mov    -0xb0(%rbp,%rax,1),%cl
mov    -0x14(%rbp),%eax
add    $0x1,%eax
cltq
mov    %cl,-0xb0(%rbp,%rax,1)
mov    -0x84(%rbp),%eax
mov    %al,%cl
movslq -0x14(%rbp),%rax
mov    %cl,-0xb0(%rbp,%rax,1)
movslq -0x14(%rbp),%rax
mov    -0x80(%rbp,%rax,4),%eax
mov    %eax,-0x84(%rbp)
mov    -0x14(%rbp),%eax
add    $0x1,%eax
cltq
mov    -0x80(%rbp,%rax,4),%ecx
movslq -0x14(%rbp),%rax
mov    %ecx,-0x80(%rbp,%rax,4)
mov    -0x84(%rbp),%ecx
mov    -0x14(%rbp),%eax
add    $0x1,%eax
cltq
mov    %ecx,-0x80(%rbp,%rax,4)
jmp    18b9 <create_letter_distribution_diagram+0x799>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    1818 <create_letter_distribution_diagram+0x6f8>
jmp    18cc <create_letter_distribution_diagram+0x7ac>
mov    -0x88(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x88(%rbp)
jmp    1804 <create_letter_distribution_diagram+0x6e4>
movl   $0x0,-0x14(%rbp)
cmpl   $0x1a,-0x14(%rbp)
jge    1921 <create_letter_distribution_diagram+0x801>
movslq -0x14(%rbp),%rax
mov    -0xb0(%rbp,%rax,1),%al
movslq -0x14(%rbp),%rcx
mov    -0x80(%rbp,%rcx,4),%edx
lea    0x6f5(%rip),%rdi
movsbl %al,%esi
call   1040 <printf@plt>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    18e7 <create_letter_distribution_diagram+0x7c7>
mov    -0x4(%rbp),%eax
add    $0xc0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<create_letter_distribution_diagram>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0xf8,%rsp
mov    %rdi,%r14
xorps  %xmm0,%xmm0
movaps %xmm0,0x60(%rsp)
movaps %xmm0,0x70(%rsp)
movaps %xmm0,0x80(%rsp)
movaps %xmm0,0x90(%rsp)
movaps %xmm0,0xa0(%rsp)
movaps %xmm0,0xb0(%rsp)
movq   $0x0,0xc0(%rsp)
call   1030 <strlen@plt>
test   %eax,%eax
je     1498 <create_letter_distribution_diagram+0x378>
xor    %ebx,%ebx
lea    0xe8d(%rip),%r15
xor    %ebp,%ebp
movl   $0x0,0x5c(%rsp)
movl   $0x0,0x58(%rsp)
movl   $0x0,0x54(%rsp)
movl   $0x0,0x50(%rsp)
movl   $0x0,0x4c(%rsp)
movl   $0x0,0x48(%rsp)
movl   $0x0,0x44(%rsp)
movl   $0x0,0x40(%rsp)
movl   $0x0,0x3c(%rsp)
movl   $0x0,0x38(%rsp)
movl   $0x0,0x34(%rsp)
movl   $0x0,0x30(%rsp)
movl   $0x0,0x2c(%rsp)
movl   $0x0,0x28(%rsp)
movl   $0x0,0x24(%rsp)
movl   $0x0,0x20(%rsp)
movl   $0x0,0x1c(%rsp)
movl   $0x0,0x18(%rsp)
movl   $0x0,0x14(%rsp)
movl   $0x0,0x10(%rsp)
movl   $0x0,0xc(%rsp)
movl   $0x0,0x8(%rsp)
movl   $0x0,0x4(%rsp)
xor    %r13d,%r13d
xor    %r12d,%r12d
jmp    1277 <create_letter_distribution_diagram+0x157>
add    $0x1,%r12d
mov    %r12d,0xc4(%rsp)
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
add    $0x1,%rbx
mov    %r14,%rdi
call   1030 <strlen@plt>
mov    %eax,%eax
cmp    %rax,%rbx
je     149a <create_letter_distribution_diagram+0x37a>
movzbl (%r14,%rbx,1),%eax
add    $0xbf,%al
cmp    $0x39,%al
ja     1260 <create_letter_distribution_diagram+0x140>
movzbl %al,%eax
movslq (%r15,%rax,4),%rax
add    %r15,%rax
jmp    *%rax
add    $0x1,%ebp
mov    %ebp,0x60(%rsp)
jmp    1260 <create_letter_distribution_diagram+0x140>
mov    0x5c(%rsp),%eax
add    $0x1,%eax
mov    %eax,0x5c(%rsp)
mov    %eax,0x64(%rsp)
jmp    1260 <create_letter_distribution_diagram+0x140>
mov    0x58(%rsp),%eax
add    $0x1,%eax
mov    %eax,0x58(%rsp)
mov    %eax,0x68(%rsp)
jmp    1260 <create_letter_distribution_diagram+0x140>
mov    0x54(%rsp),%eax
add    $0x1,%eax
mov    %eax,0x54(%rsp)
mov    %eax,0x6c(%rsp)
jmp    1260 <create_letter_distribution_diagram+0x140>
mov    0x50(%rsp),%eax
add    $0x1,%eax
mov    %eax,0x50(%rsp)
mov    %eax,0x70(%rsp)
jmp    1260 <create_letter_distribution_diagram+0x140>
mov    0x4c(%rsp),%eax
add    $0x1,%eax
mov    %eax,0x4c(%rsp)
mov    %eax,0x74(%rsp)
jmp    1260 <create_letter_distribution_diagram+0x140>
mov    0x48(%rsp),%eax
add    $0x1,%eax
mov    %eax,0x48(%rsp)
mov    %eax,0x78(%rsp)
jmp    1260 <create_letter_distribution_diagram+0x140>
mov    0x44(%rsp),%eax
add    $0x1,%eax
mov    %eax,0x44(%rsp)
mov    %eax,0x7c(%rsp)
jmp    1260 <create_letter_distribution_diagram+0x140>
mov    0x40(%rsp),%eax
add    $0x1,%eax
mov    %eax,0x40(%rsp)
mov    %eax,0x80(%rsp)
jmp    1260 <create_letter_distribution_diagram+0x140>
mov    0x3c(%rsp),%eax
add    $0x1,%eax
mov    %eax,0x3c(%rsp)
mov    %eax,0x84(%rsp)
jmp    1260 <create_letter_distribution_diagram+0x140>
mov    0x38(%rsp),%eax
add    $0x1,%eax
mov    %eax,0x38(%rsp)
mov    %eax,0x88(%rsp)
jmp    1260 <create_letter_distribution_diagram+0x140>
mov    0x34(%rsp),%eax
add    $0x1,%eax
mov    %eax,0x34(%rsp)
mov    %eax,0x8c(%rsp)
jmp    1260 <create_letter_distribution_diagram+0x140>
mov    0x30(%rsp),%eax
add    $0x1,%eax
mov    %eax,0x30(%rsp)
mov    %eax,0x90(%rsp)
jmp    1260 <create_letter_distribution_diagram+0x140>
mov    0x2c(%rsp),%eax
add    $0x1,%eax
mov    %eax,0x2c(%rsp)
mov    %eax,0x94(%rsp)
jmp    1260 <create_letter_distribution_diagram+0x140>
mov    0x28(%rsp),%eax
add    $0x1,%eax
mov    %eax,0x28(%rsp)
mov    %eax,0x98(%rsp)
jmp    1260 <create_letter_distribution_diagram+0x140>
mov    0x24(%rsp),%eax
add    $0x1,%eax
mov    %eax,0x24(%rsp)
mov    %eax,0x9c(%rsp)
jmp    1260 <create_letter_distribution_diagram+0x140>
mov    0x20(%rsp),%eax
add    $0x1,%eax
mov    %eax,0x20(%rsp)
mov    %eax,0xa0(%rsp)
jmp    1260 <create_letter_distribution_diagram+0x140>
mov    0x1c(%rsp),%eax
add    $0x1,%eax
mov    %eax,0x1c(%rsp)
mov    %eax,0xa4(%rsp)
jmp    1260 <create_letter_distribution_diagram+0x140>
mov    0x18(%rsp),%eax
add    $0x1,%eax
mov    %eax,0x18(%rsp)
mov    %eax,0xa8(%rsp)
jmp    1260 <create_letter_distribution_diagram+0x140>
mov    0x14(%rsp),%eax
add    $0x1,%eax
mov    %eax,0x14(%rsp)
mov    %eax,0xac(%rsp)
jmp    1260 <create_letter_distribution_diagram+0x140>
mov    0x10(%rsp),%eax
add    $0x1,%eax
mov    %eax,0x10(%rsp)
mov    %eax,0xb0(%rsp)
jmp    1260 <create_letter_distribution_diagram+0x140>
mov    0xc(%rsp),%eax
add    $0x1,%eax
mov    %eax,0xc(%rsp)
mov    %eax,0xb4(%rsp)
jmp    1260 <create_letter_distribution_diagram+0x140>
mov    0x8(%rsp),%eax
add    $0x1,%eax
mov    %eax,0x8(%rsp)
mov    %eax,0xb8(%rsp)
jmp    1260 <create_letter_distribution_diagram+0x140>
mov    0x4(%rsp),%eax
add    $0x1,%eax
mov    %eax,0x4(%rsp)
mov    %eax,0xbc(%rsp)
jmp    1260 <create_letter_distribution_diagram+0x140>
add    $0x1,%r13d
mov    %r13d,0xc0(%rsp)
jmp    1260 <create_letter_distribution_diagram+0x140>
xor    %ebp,%ebp
movaps 0xb5f(%rip),%xmm0
movaps %xmm0,0xd0(%rsp)
movabs $0x7877767574737271,%rax
76 77 78
mov    %rax,0xe0(%rsp)
movw   $0x7a79,0xe8(%rsp)
mov    $0x19,%eax
nopw   0x0(%rax,%rax,1)
mov    $0x1,%ecx
jmp    14fb <create_letter_distribution_diagram+0x3db>
nopw   0x0(%rax,%rax,1)
rolw   $0x8,0xcf(%rsp,%rcx,1)
mov    %edx,0x5c(%rsp,%rcx,4)
mov    %ebp,0x60(%rsp,%rcx,4)
add    $0x1,%rcx
cmp    $0x1b,%rcx
je     1510 <create_letter_distribution_diagram+0x3f0>
mov    0x60(%rsp,%rcx,4),%edx
cmp    %edx,%ebp
jl     14e0 <create_letter_distribution_diagram+0x3c0>
mov    %edx,%ebp
jmp    14f1 <create_letter_distribution_diagram+0x3d1>
nopw   0x0(%rax,%rax,1)
add    $0xffffffff,%eax
je     151b <create_letter_distribution_diagram+0x3fb>
mov    0x60(%rsp),%ebp
jmp    14d0 <create_letter_distribution_diagram+0x3b0>
xor    %ebp,%ebp
lea    0xbd4(%rip),%rbx
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
movsbl 0xd0(%rsp,%rbp,1),%esi
mov    0x60(%rsp,%rbp,4),%edx
mov    %rbx,%rdi
call   1040 <printf@plt>
add    $0x1,%rbp
cmp    $0x1a,%rbp
jne    1530 <create_letter_distribution_diagram+0x410>
add    $0xf8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

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