#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 *, int, int);
int /*<<< orphan*/ scanf(char *, char *);
int strlen(char *);
void create_letter_distribution_diagram() {
  char s[1000];
  int a[26][2], i, j, n, c, d;
  scanf("%s", s);
  n = strlen(s);
  for (i = 0, j = 'a'; i < 26; i++) {
    a[i][1] = j;
    a[i][0] = 0;
    j++;
  }
  for (i = 0; i < n; i++)
    if (s[i] >= 'A' && s[i] <= 'Z')
      s[i] = s[i] + ('a' - 'A');
  for (i = 0; i < n; i++) {
    switch (s[i]) {
    case 'a':
      a[0][0]++;
      break;
    case 'b':
      a[1][0]++;
      break;
    case 'c':
      a[2][0]++;
      break;
    case 'd':
      a[3][0]++;
      break;
    case 'e':
      a[4][0]++;
      break;
    case 'f':
      a[5][0]++;
      break;
    case 'g':
      a[6][0]++;
      break;
    case 'h':
      a[7][0]++;
      break;
    case 'i':
      a[8][0]++;
      break;
    case 'j':
      a[9][0]++;
      break;
    case 'k':
      a[10][0]++;
      break;
    case 'l':
      a[11][0]++;
      break;
    case 'm':
      a[12][0]++;
      break;
    case 'n':
      a[13][0]++;
      break;
    case 'o':
      a[14][0]++;
      break;
    case 'p':
      a[15][0]++;
      break;
    case 'q':
      a[16][0]++;
      break;
    case 'r':
      a[17][0]++;
      break;
    case 's':
      a[18][0]++;
      break;
    case 't':
      a[19][0]++;
      break;
    case 'u':
      a[20][0]++;
      break;
    case 'v':
      a[21][0]++;
      break;
    case 'w':
      a[22][0]++;
      break;
    case 'x':
      a[23][0]++;
      break;
    case 'y':
      a[24][0]++;
      break;
    case 'z':
      a[25][0]++;
      break;
    }
  }
  for (i = 0; i < 26; i++)
    for (j = 0; j < 26; j++)
      if (a[i][0] > a[j][0]) {
        c = a[i][0];
        d = a[i][1];
        a[i][0] = a[j][0];
        a[i][1] = a[j][1];
        a[j][0] = c;
        a[j][1] = d;
      } else if (a[i][1] < a[j][1]) {
        c = a[i][0];
        d = a[i][1];
        a[i][0] = a[j][0];
        a[i][1] = a[j][1];
        a[j][0] = c;
        a[j][1] = d;
      }
  for (i = 0; i < 26; i++)
    printf("\n%c: %d ", a[i][1], a[i][0]);
}


x86 assembly (clang, -O0):
<create_letter_distribution_diagram>:
push   %rbp
mov    %rsp,%rbp
sub    $0x4e0,%rsp
lea    -0x3f0(%rbp),%rsi
lea    0xf1f(%rip),%rdi
call   1050 <scanf@plt>
lea    -0x3f0(%rbp),%rdi
call   1030 <strlen@plt>
mov    %eax,-0x4cc(%rbp)
movl   $0x0,-0x4c4(%rbp)
movl   $0x61,-0x4c8(%rbp)
cmpl   $0x1a,-0x4c4(%rbp)
jge    11ca <create_letter_distribution_diagram+0x9a>
mov    -0x4c8(%rbp),%ecx
movslq -0x4c4(%rbp),%rax
mov    %ecx,-0x4bc(%rbp,%rax,8)
movslq -0x4c4(%rbp),%rax
movl   $0x0,-0x4c0(%rbp,%rax,8)
mov    -0x4c8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c8(%rbp)
mov    -0x4c4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c4(%rbp)
jmp    1174 <create_letter_distribution_diagram+0x44>
movl   $0x0,-0x4c4(%rbp)
mov    -0x4c4(%rbp),%eax
cmp    -0x4cc(%rbp),%eax
jge    1251 <create_letter_distribution_diagram+0x121>
movslq -0x4c4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x41,%eax
jl     1238 <create_letter_distribution_diagram+0x108>
movslq -0x4c4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x5a,%eax
jg     1238 <create_letter_distribution_diagram+0x108>
movslq -0x4c4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
add    $0x20,%eax
mov    %al,%cl
movslq -0x4c4(%rbp),%rax
mov    %cl,-0x3f0(%rbp,%rax,1)
jmp    123d <create_letter_distribution_diagram+0x10d>
mov    -0x4c4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c4(%rbp)
jmp    11d4 <create_letter_distribution_diagram+0xa4>
movl   $0x0,-0x4c4(%rbp)
mov    -0x4c4(%rbp),%eax
cmp    -0x4cc(%rbp),%eax
jge    14c4 <create_letter_distribution_diagram+0x394>
movslq -0x4c4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
add    $0xffffff9f,%eax
mov    %eax,%ecx
mov    %rcx,-0x4e0(%rbp)
sub    $0x19,%eax
ja     14ab <create_letter_distribution_diagram+0x37b>
mov    -0x4e0(%rbp),%rax
lea    0xd61(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x4c0(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c0(%rbp)
jmp    14ab <create_letter_distribution_diagram+0x37b>
mov    -0x4b8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4b8(%rbp)
jmp    14ab <create_letter_distribution_diagram+0x37b>
mov    -0x4b0(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4b0(%rbp)
jmp    14ab <create_letter_distribution_diagram+0x37b>
mov    -0x4a8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4a8(%rbp)
jmp    14ab <create_letter_distribution_diagram+0x37b>
mov    -0x4a0(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4a0(%rbp)
jmp    14ab <create_letter_distribution_diagram+0x37b>
mov    -0x498(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x498(%rbp)
jmp    14ab <create_letter_distribution_diagram+0x37b>
mov    -0x490(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x490(%rbp)
jmp    14ab <create_letter_distribution_diagram+0x37b>
mov    -0x488(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x488(%rbp)
jmp    14ab <create_letter_distribution_diagram+0x37b>
mov    -0x480(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x480(%rbp)
jmp    14ab <create_letter_distribution_diagram+0x37b>
mov    -0x478(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x478(%rbp)
jmp    14ab <create_letter_distribution_diagram+0x37b>
mov    -0x470(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x470(%rbp)
jmp    14ab <create_letter_distribution_diagram+0x37b>
mov    -0x468(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x468(%rbp)
jmp    14ab <create_letter_distribution_diagram+0x37b>
mov    -0x460(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x460(%rbp)
jmp    14ab <create_letter_distribution_diagram+0x37b>
mov    -0x458(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x458(%rbp)
jmp    14ab <create_letter_distribution_diagram+0x37b>
mov    -0x450(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x450(%rbp)
jmp    14ab <create_letter_distribution_diagram+0x37b>
mov    -0x448(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x448(%rbp)
jmp    14ab <create_letter_distribution_diagram+0x37b>
mov    -0x440(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x440(%rbp)
jmp    14ab <create_letter_distribution_diagram+0x37b>
mov    -0x438(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x438(%rbp)
jmp    14ab <create_letter_distribution_diagram+0x37b>
mov    -0x430(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x430(%rbp)
jmp    14ab <create_letter_distribution_diagram+0x37b>
mov    -0x428(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x428(%rbp)
jmp    14ab <create_letter_distribution_diagram+0x37b>
mov    -0x420(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x420(%rbp)
jmp    14ab <create_letter_distribution_diagram+0x37b>
mov    -0x418(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x418(%rbp)
jmp    14ab <create_letter_distribution_diagram+0x37b>
mov    -0x410(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x410(%rbp)
jmp    14ab <create_letter_distribution_diagram+0x37b>
mov    -0x408(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x408(%rbp)
jmp    14ab <create_letter_distribution_diagram+0x37b>
mov    -0x400(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x400(%rbp)
jmp    14ab <create_letter_distribution_diagram+0x37b>
mov    -0x3f8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3f8(%rbp)
jmp    14b0 <create_letter_distribution_diagram+0x380>
mov    -0x4c4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c4(%rbp)
jmp    125b <create_letter_distribution_diagram+0x12b>
movl   $0x0,-0x4c4(%rbp)
cmpl   $0x1a,-0x4c4(%rbp)
jge    1682 <create_letter_distribution_diagram+0x552>
movl   $0x0,-0x4c8(%rbp)
cmpl   $0x1a,-0x4c8(%rbp)
jge    1669 <create_letter_distribution_diagram+0x539>
movslq -0x4c4(%rbp),%rax
mov    -0x4c0(%rbp,%rax,8),%eax
movslq -0x4c8(%rbp),%rcx
cmp    -0x4c0(%rbp,%rcx,8),%eax
jle    15a1 <create_letter_distribution_diagram+0x471>
movslq -0x4c4(%rbp),%rax
mov    -0x4c0(%rbp,%rax,8),%eax
mov    %eax,-0x4d0(%rbp)
movslq -0x4c4(%rbp),%rax
mov    -0x4bc(%rbp,%rax,8),%eax
mov    %eax,-0x4d4(%rbp)
movslq -0x4c8(%rbp),%rax
mov    -0x4c0(%rbp,%rax,8),%ecx
movslq -0x4c4(%rbp),%rax
mov    %ecx,-0x4c0(%rbp,%rax,8)
movslq -0x4c8(%rbp),%rax
mov    -0x4bc(%rbp,%rax,8),%ecx
movslq -0x4c4(%rbp),%rax
mov    %ecx,-0x4bc(%rbp,%rax,8)
mov    -0x4d0(%rbp),%ecx
movslq -0x4c8(%rbp),%rax
mov    %ecx,-0x4c0(%rbp,%rax,8)
mov    -0x4d4(%rbp),%ecx
movslq -0x4c8(%rbp),%rax
mov    %ecx,-0x4bc(%rbp,%rax,8)
jmp    1650 <create_letter_distribution_diagram+0x520>
movslq -0x4c4(%rbp),%rax
mov    -0x4bc(%rbp,%rax,8),%eax
movslq -0x4c8(%rbp),%rcx
cmp    -0x4bc(%rbp,%rcx,8),%eax
jge    164b <create_letter_distribution_diagram+0x51b>
movslq -0x4c4(%rbp),%rax
mov    -0x4c0(%rbp,%rax,8),%eax
mov    %eax,-0x4d0(%rbp)
movslq -0x4c4(%rbp),%rax
mov    -0x4bc(%rbp,%rax,8),%eax
mov    %eax,-0x4d4(%rbp)
movslq -0x4c8(%rbp),%rax
mov    -0x4c0(%rbp,%rax,8),%ecx
movslq -0x4c4(%rbp),%rax
mov    %ecx,-0x4c0(%rbp,%rax,8)
movslq -0x4c8(%rbp),%rax
mov    -0x4bc(%rbp,%rax,8),%ecx
movslq -0x4c4(%rbp),%rax
mov    %ecx,-0x4bc(%rbp,%rax,8)
mov    -0x4d0(%rbp),%ecx
movslq -0x4c8(%rbp),%rax
mov    %ecx,-0x4c0(%rbp,%rax,8)
mov    -0x4d4(%rbp),%ecx
movslq -0x4c8(%rbp),%rax
mov    %ecx,-0x4bc(%rbp,%rax,8)
jmp    1650 <create_letter_distribution_diagram+0x520>
jmp    1655 <create_letter_distribution_diagram+0x525>
mov    -0x4c8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c8(%rbp)
jmp    14e5 <create_letter_distribution_diagram+0x3b5>
jmp    166e <create_letter_distribution_diagram+0x53e>
mov    -0x4c4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c4(%rbp)
jmp    14ce <create_letter_distribution_diagram+0x39e>
movl   $0x0,-0x4c4(%rbp)
cmpl   $0x1a,-0x4c4(%rbp)
jge    16d5 <create_letter_distribution_diagram+0x5a5>
movslq -0x4c4(%rbp),%rax
mov    -0x4bc(%rbp,%rax,8),%esi
movslq -0x4c4(%rbp),%rax
mov    -0x4c0(%rbp,%rax,8),%edx
lea    0x9af(%rip),%rdi
call   1040 <printf@plt>
mov    -0x4c4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c4(%rbp)
jmp    168c <create_letter_distribution_diagram+0x55c>
add    $0x4e0,%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    $0x4f8,%rsp
lea    0x1010(%rip),%rdi
lea    0x110(%rsp),%rbx
mov    %rbx,%rsi
call   1050 <scanf@plt>
mov    %rbx,%rdi
call   1030 <strlen@plt>
movaps 0xe99(%rip),%xmm0
movaps %xmm0,0x40(%rsp)
movaps 0xe9d(%rip),%xmm0
movaps %xmm0,0x50(%rsp)
movaps 0xea1(%rip),%xmm0
movaps %xmm0,0x60(%rsp)
movaps 0xea5(%rip),%xmm0
movaps %xmm0,0x70(%rsp)
movaps 0xea9(%rip),%xmm0
movaps %xmm0,0x80(%rsp)
movaps 0xeaa(%rip),%xmm0
movaps %xmm0,0x90(%rsp)
movaps 0xeab(%rip),%xmm0
movaps %xmm0,0xa0(%rsp)
movaps 0xeac(%rip),%xmm0
movaps %xmm0,0xb0(%rsp)
movaps 0xead(%rip),%xmm0
movaps %xmm0,0xc0(%rsp)
movaps 0xeae(%rip),%xmm0
movaps %xmm0,0xd0(%rsp)
movaps 0xeaf(%rip),%xmm0
movaps %xmm0,0xe0(%rsp)
movaps 0xeb0(%rip),%xmm0
movaps %xmm0,0xf0(%rsp)
movdqa 0xeb0(%rip),%xmm0
movdqa %xmm0,0x100(%rsp)
test   %eax,%eax
jle    16e4 <create_letter_distribution_diagram+0x5b4>
mov    %eax,%ecx
cmp    $0x8,%eax
jae    122f <create_letter_distribution_diagram+0xff>
xor    %edx,%edx
jmp    14bd <create_letter_distribution_diagram+0x38d>
mov    %ecx,%edx
and    $0xfffffff8,%edx
xor    %esi,%esi
movdqa 0xe92(%rip),%xmm0
movdqa 0xe9a(%rip),%xmm1
pcmpeqd %xmm2,%xmm2
jmp    125d <create_letter_distribution_diagram+0x12d>
nopl   0x0(%rax)
add    $0x8,%rsi
cmp    %rsi,%rdx
je     13ac <create_letter_distribution_diagram+0x27c>
movq   0x110(%rsp,%rsi,1),%xmm3
movdqa %xmm3,%xmm4
paddb  %xmm0,%xmm4
movdqa %xmm4,%xmm5
pmaxub %xmm1,%xmm5
pcmpeqb %xmm4,%xmm5
movd   %xmm5,%edi
not    %dil
test   $0x1,%dil
je     1297 <create_letter_distribution_diagram+0x167>
movd   %xmm3,%edi
add    $0x20,%dil
mov    %dil,0x110(%rsp,%rsi,1)
movdqa %xmm5,%xmm4
pxor   %xmm2,%xmm4
movdqa %xmm4,%xmm6
pslld  $0x8,%xmm6
movd   %xmm6,%edi
shr    $0x10,%edi
test   $0x1,%dil
je     12c8 <create_letter_distribution_diagram+0x198>
movd   %xmm3,%edi
shr    $0x8,%edi
add    $0x20,%dil
mov    %dil,0x111(%rsp,%rsi,1)
pshuflw $0x55,%xmm5,%xmm6
pxor   %xmm2,%xmm6
pextrw $0x2,%xmm6,%edi
test   $0x1,%dil
je     12ef <create_letter_distribution_diagram+0x1bf>
movd   %xmm3,%edi
shr    $0x10,%edi
add    $0x20,%dil
mov    %dil,0x112(%rsp,%rsi,1)
movdqa %xmm4,%xmm6
psllq  $0x18,%xmm6
pextrw $0x3,%xmm6,%edi
test   $0x1,%dil
je     1316 <create_letter_distribution_diagram+0x1e6>
movd   %xmm3,%edi
shr    $0x18,%edi
add    $0x20,%dil
mov    %dil,0x113(%rsp,%rsi,1)
pshufd $0x55,%xmm5,%xmm5
pxor   %xmm2,%xmm5
pextrw $0x4,%xmm5,%edi
test   $0x1,%dil
je     133b <create_letter_distribution_diagram+0x20b>
pextrw $0x2,%xmm3,%edi
add    $0x20,%dil
mov    %dil,0x114(%rsp,%rsi,1)
movdqa %xmm4,%xmm5
pslldq $0x5,%xmm5
pextrw $0x5,%xmm5,%edi
test   $0x1,%dil
je     1363 <create_letter_distribution_diagram+0x233>
pextrw $0x2,%xmm3,%edi
shr    $0x8,%edi
add    $0x20,%dil
mov    %dil,0x115(%rsp,%rsi,1)
pextrw $0x3,%xmm4,%edi
test   $0x1,%dil
je     137f <create_letter_distribution_diagram+0x24f>
pextrw $0x3,%xmm3,%edi
add    $0x20,%dil
mov    %dil,0x116(%rsp,%rsi,1)
pslldq $0x7,%xmm4
pextrw $0x7,%xmm4,%edi
test   $0x1,%dil
je     1250 <create_letter_distribution_diagram+0x120>
pextrw $0x3,%xmm3,%edi
shr    $0x8,%edi
add    $0x20,%dil
mov    %dil,0x117(%rsp,%rsi,1)
jmp    1250 <create_letter_distribution_diagram+0x120>
cmp    %rcx,%rdx
jne    14bd <create_letter_distribution_diagram+0x38d>
test   %eax,%eax
jle    16e4 <create_letter_distribution_diagram+0x5b4>
mov    0x108(%rsp),%eax
mov    %eax,0x3c(%rsp)
mov    0x100(%rsp),%eax
mov    %eax,0x38(%rsp)
mov    0xf8(%rsp),%eax
mov    %eax,0x34(%rsp)
mov    0xf0(%rsp),%eax
mov    %eax,0x30(%rsp)
mov    0xe8(%rsp),%eax
mov    %eax,0x2c(%rsp)
mov    0xe0(%rsp),%eax
mov    %eax,0x28(%rsp)
mov    0xd8(%rsp),%eax
mov    %eax,0x24(%rsp)
mov    0xd0(%rsp),%eax
mov    %eax,0x20(%rsp)
mov    0xc8(%rsp),%eax
mov    %eax,0x1c(%rsp)
mov    0xc0(%rsp),%eax
mov    %eax,0x18(%rsp)
mov    0xb8(%rsp),%eax
mov    %eax,0x14(%rsp)
mov    0xb0(%rsp),%eax
mov    %eax,0x10(%rsp)
mov    0xa8(%rsp),%eax
mov    %eax,0xc(%rsp)
mov    0xa0(%rsp),%eax
mov    %eax,0x8(%rsp)
mov    0x98(%rsp),%eax
mov    %eax,0x4(%rsp)
mov    0x90(%rsp),%eax
mov    %eax,(%rsp)
mov    0x88(%rsp),%r10d
mov    0x80(%rsp),%r11d
mov    0x78(%rsp),%r14d
mov    0x70(%rsp),%r15d
mov    0x68(%rsp),%r12d
mov    0x60(%rsp),%r13d
mov    0x58(%rsp),%r9d
mov    0x50(%rsp),%ebp
mov    0x40(%rsp),%ebx
mov    0x48(%rsp),%eax
xor    %edx,%edx
lea    0xc46(%rip),%rsi
jmp    14fd <create_letter_distribution_diagram+0x3cd>
nopl   0x0(%rax)
add    $0x1,%rdx
cmp    %rdx,%rcx
je     13b5 <create_letter_distribution_diagram+0x285>
movzbl 0x110(%rsp,%rdx,1),%esi
lea    -0x41(%rsi),%edi
cmp    $0x19,%dil
ja     14b0 <create_letter_distribution_diagram+0x380>
add    $0x20,%sil
mov    %sil,0x110(%rsp,%rdx,1)
jmp    14b0 <create_letter_distribution_diagram+0x380>
mov    0x3c(%rsp),%edi
add    $0x1,%edi
mov    %edi,0x3c(%rsp)
mov    %edi,0x108(%rsp)
xchg   %ax,%ax
add    $0x1,%rdx
cmp    %rdx,%rcx
je     16e4 <create_letter_distribution_diagram+0x5b4>
movsbl 0x110(%rsp,%rdx,1),%r8d
add    $0xffffff9f,%r8d
cmp    $0x19,%r8d
ja     14f0 <create_letter_distribution_diagram+0x3c0>
movslq (%rsi,%r8,4),%rdi
add    %rsi,%rdi
jmp    *%rdi
add    $0x1,%ebx
mov    %ebx,0x40(%rsp)
jmp    14f0 <create_letter_distribution_diagram+0x3c0>
add    $0x1,%eax
mov    %eax,0x48(%rsp)
jmp    14f0 <create_letter_distribution_diagram+0x3c0>
add    $0x1,%ebp
mov    %ebp,0x50(%rsp)
jmp    14f0 <create_letter_distribution_diagram+0x3c0>
add    $0x1,%r9d
mov    %r9d,0x58(%rsp)
jmp    14f0 <create_letter_distribution_diagram+0x3c0>
add    $0x1,%r13d
mov    %r13d,0x60(%rsp)
jmp    14f0 <create_letter_distribution_diagram+0x3c0>
add    $0x1,%r12d
mov    %r12d,0x68(%rsp)
jmp    14f0 <create_letter_distribution_diagram+0x3c0>
add    $0x1,%r15d
mov    %r15d,0x70(%rsp)
jmp    14f0 <create_letter_distribution_diagram+0x3c0>
add    $0x1,%r14d
mov    %r14d,0x78(%rsp)
jmp    14f0 <create_letter_distribution_diagram+0x3c0>
add    $0x1,%r11d
mov    %r11d,0x80(%rsp)
jmp    14f0 <create_letter_distribution_diagram+0x3c0>
add    $0x1,%r10d
mov    %r10d,0x88(%rsp)
jmp    14f0 <create_letter_distribution_diagram+0x3c0>
mov    (%rsp),%edi
add    $0x1,%edi
mov    %edi,(%rsp)
mov    %edi,0x90(%rsp)
jmp    14f0 <create_letter_distribution_diagram+0x3c0>
mov    0x4(%rsp),%edi
add    $0x1,%edi
mov    %edi,0x4(%rsp)
mov    %edi,0x98(%rsp)
jmp    14f0 <create_letter_distribution_diagram+0x3c0>
mov    0x8(%rsp),%edi
add    $0x1,%edi
mov    %edi,0x8(%rsp)
mov    %edi,0xa0(%rsp)
jmp    14f0 <create_letter_distribution_diagram+0x3c0>
mov    0xc(%rsp),%edi
add    $0x1,%edi
mov    %edi,0xc(%rsp)
mov    %edi,0xa8(%rsp)
jmp    14f0 <create_letter_distribution_diagram+0x3c0>
mov    0x10(%rsp),%edi
add    $0x1,%edi
mov    %edi,0x10(%rsp)
mov    %edi,0xb0(%rsp)
jmp    14f0 <create_letter_distribution_diagram+0x3c0>
mov    0x14(%rsp),%edi
add    $0x1,%edi
mov    %edi,0x14(%rsp)
mov    %edi,0xb8(%rsp)
jmp    14f0 <create_letter_distribution_diagram+0x3c0>
mov    0x18(%rsp),%edi
add    $0x1,%edi
mov    %edi,0x18(%rsp)
mov    %edi,0xc0(%rsp)
jmp    14f0 <create_letter_distribution_diagram+0x3c0>
mov    0x1c(%rsp),%edi
add    $0x1,%edi
mov    %edi,0x1c(%rsp)
mov    %edi,0xc8(%rsp)
jmp    14f0 <create_letter_distribution_diagram+0x3c0>
mov    0x20(%rsp),%edi
add    $0x1,%edi
mov    %edi,0x20(%rsp)
mov    %edi,0xd0(%rsp)
jmp    14f0 <create_letter_distribution_diagram+0x3c0>
mov    0x24(%rsp),%edi
add    $0x1,%edi
mov    %edi,0x24(%rsp)
mov    %edi,0xd8(%rsp)
jmp    14f0 <create_letter_distribution_diagram+0x3c0>
mov    0x28(%rsp),%edi
add    $0x1,%edi
mov    %edi,0x28(%rsp)
mov    %edi,0xe0(%rsp)
jmp    14f0 <create_letter_distribution_diagram+0x3c0>
mov    0x2c(%rsp),%edi
add    $0x1,%edi
mov    %edi,0x2c(%rsp)
mov    %edi,0xe8(%rsp)
jmp    14f0 <create_letter_distribution_diagram+0x3c0>
mov    0x30(%rsp),%edi
add    $0x1,%edi
mov    %edi,0x30(%rsp)
mov    %edi,0xf0(%rsp)
jmp    14f0 <create_letter_distribution_diagram+0x3c0>
mov    0x34(%rsp),%edi
add    $0x1,%edi
mov    %edi,0x34(%rsp)
mov    %edi,0xf8(%rsp)
jmp    14f0 <create_letter_distribution_diagram+0x3c0>
mov    0x38(%rsp),%edi
add    $0x1,%edi
mov    %edi,0x38(%rsp)
mov    %edi,0x100(%rsp)
jmp    14f0 <create_letter_distribution_diagram+0x3c0>
xor    %eax,%eax
jmp    16fa <create_letter_distribution_diagram+0x5ca>
nopl   0x0(%rax,%rax,1)
add    $0x1,%rax
cmp    $0x1a,%rax
je     1762 <create_letter_distribution_diagram+0x632>
mov    $0x4,%ecx
xor    %edx,%edx
jmp    173c <create_letter_distribution_diagram+0x60c>
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
mov    %ebx,0x40(%rsp,%rax,8)
lea    (%rsp,%rdx,8),%r8
add    $0x44,%r8
mov    0x40(%rsp,%rcx,1),%ebp
mov    %ebp,0x44(%rsp,%rax,8)
mov    %esi,0x3c(%rsp,%rcx,1)
mov    %edi,(%r8)
add    $0x1,%rdx
add    $0x8,%rcx
cmp    $0xd4,%rcx
je     16f0 <create_letter_distribution_diagram+0x5c0>
mov    0x40(%rsp,%rax,8),%esi
mov    0x44(%rsp,%rax,8),%edi
mov    0x3c(%rsp,%rcx,1),%ebx
cmp    %ebx,%esi
jg     1710 <create_letter_distribution_diagram+0x5e0>
mov    0x40(%rsp,%rcx,1),%ebp
cmp    %ebp,%edi
jge    172b <create_letter_distribution_diagram+0x5fb>
lea    (%rsp,%rcx,1),%r8
add    $0x40,%r8
mov    %ebx,0x40(%rsp,%rax,8)
jmp    1720 <create_letter_distribution_diagram+0x5f0>
xor    %ebp,%ebp
lea    0x9f0(%rip),%rbx
nopl   0x0(%rax,%rax,1)
mov    0x40(%rsp,%rbp,8),%edx
mov    0x44(%rsp,%rbp,8),%esi
mov    %rbx,%rdi
call   1040 <printf@plt>
add    $0x1,%rbp
cmp    $0x1a,%rbp
jne    1770 <create_letter_distribution_diagram+0x640>
add    $0x4f8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

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