#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 /*<<< orphan*/ scanf(char *, int *);
int main() {
  int given, digit10, digit9, digit8, digit7, digit6, digit5, digit4, digit3,
      digit2, digit1;
  printf("\nEnter an interger > ");
  scanf("%d", &given);
  if (given >= 1 && given < 10) {
    digit10 = given % 10;
    printf("\n%d\nThat's all, have a nice day!\n", digit10);
  }
  if (given >= 10 && given < 100) {
    digit10 = given % 10;
    digit9 = (given / 10) % 10;
    printf("\n%d\n%d\nThat's all, have a nice day!\n", digit10, digit9);
  }
  if (given >= 100 && given < 1000) {
    digit10 = given % 10;
    digit9 = (given / 10) % 10;
    digit8 = (given / 100) % 10;
    printf("\n%d\n%d\n%d\nThat's all, have a nice day!\n", digit10, digit9,
           digit8);
  }
  if (given >= 1000 && given < 10000) {
    digit10 = given % 10;
    digit9 = (given / 10) % 10;
    digit8 = (given / 100) % 10;
    digit7 = (given / 1000) % 10;
    printf("\n%d\n%d\n%d\n%d\nThat's all, have a nice day!\n", digit10, digit9,
           digit8, digit7);
  }
  if (given >= 10000 && given < 100000) {
    digit10 = given % 10;
    digit9 = (given / 10) % 10;
    digit8 = (given / 100) % 10;
    digit7 = (given / 1000) % 10;
    digit6 = (given / 10000) % 10;
    printf("\n%d\n%d\n%d\n%d\n%d\nThat's all, have a nice day!\n", digit10,
           digit9, digit8, digit7, digit6);
  }
  if (given >= 100000 && given < 1000000) {
    digit10 = given % 10;
    digit9 = (given / 10) % 10;
    digit8 = (given / 100) % 10;
    digit7 = (given / 1000) % 10;
    digit6 = (given / 10000) % 10;
    digit5 = (given / 100000) % 10;
    printf("\n%d\n%d\n%d\n%d\n%d\n%d\nThat's all, have a nice day!\n", digit10,
           digit9, digit8, digit7, digit6, digit5);
  }
  if (given >= 1000000 && given < 10000000) {
    digit10 = given % 10;
    digit9 = (given / 10) % 10;
    digit8 = (given / 100) % 10;
    digit7 = (given / 1000) % 10;
    digit6 = (given / 10000) % 10;
    digit5 = (given / 100000) % 10;
    digit4 = (given / 1000000) % 10;
    printf("\n%d\n%d\n%d\n%d\n%d\n%d\n%d\nThat's all, have a nice day!\n",
           digit10, digit9, digit8, digit7, digit6, digit5, digit4);
  }
  if (given >= 10000000 && given < 100000000) {
    digit10 = given % 10;
    digit9 = (given / 10) % 10;
    digit8 = (given / 100) % 10;
    digit7 = (given / 1000) % 10;
    digit6 = (given / 10000) % 10;
    digit5 = (given / 100000) % 10;
    digit4 = (given / 1000000) % 10;
    digit3 = (given / 10000000) % 10;
    printf("\n%d\n%d\n%d\n%d\n%d\n%d\n%d\n%d\nThat's all, have a nice day!\n",
           digit10, digit9, digit8, digit7, digit6, digit5, digit4, digit3);
  }
  if (given >= 100000000 && given < 1000000000) {
    digit10 = given % 10;
    digit9 = (given / 10) % 10;
    digit8 = (given / 100) % 10;
    digit7 = (given / 1000) % 10;
    digit6 = (given / 10000) % 10;
    digit5 = (given / 100000) % 10;
    digit4 = (given / 1000000) % 10;
    digit3 = (given / 10000000) % 10;
    digit2 = (given / 100000000) % 10;
    printf(
        "\n%d\n%d\n%d\n%d\n%d\n%d\n%d\n%d\n%d\nThat's all, have a nice day!\n",
        digit10, digit9, digit8, digit7, digit6, digit5, digit4, digit3,
        digit2);
  }
  if (given >= 1000000000 && given < 10000000000) {
    digit10 = given % 10;
    digit9 = (given / 10) % 10;
    digit8 = (given / 100) % 10;
    digit7 = (given / 1000) % 10;
    digit6 = (given / 10000) % 10;
    digit5 = (given / 100000) % 10;
    digit4 = (given / 1000000) % 10;
    digit3 = (given / 10000000) % 10;
    digit2 = (given / 100000000) % 10;
    digit1 = (given / 1000000000) % 10;
    printf("\n%d\n%d\n%d\n%d\n%d\n%d\n%d\n%d\n%d\n%d\nThat's all, have a nice "
           "day!\n",
           digit10, digit9, digit8, digit7, digit6, digit5, digit4, digit3,
           digit2, digit1);
  }
  return (0);
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
push   %r14
push   %rbx
sub    $0x60,%rsp
movl   $0x0,-0x14(%rbp)
lea    0xec7(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xecf(%rip),%rdi
lea    -0x18(%rbp),%rsi
call   1040 <scanf@plt>
cmpl   $0x1,-0x18(%rbp)
jl     1183 <main+0x63>
cmpl   $0xa,-0x18(%rbp)
jge    1183 <main+0x63>
mov    -0x18(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x1c(%rbp)
mov    -0x1c(%rbp),%esi
lea    0xeb8(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
cmpl   $0xa,-0x18(%rbp)
jl     11cf <main+0xaf>
cmpl   $0x64,-0x18(%rbp)
jge    11cf <main+0xaf>
mov    -0x18(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x1c(%rbp)
mov    -0x18(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x20(%rbp)
mov    -0x1c(%rbp),%esi
mov    -0x20(%rbp),%edx
lea    0xe69(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
cmpl   $0x64,-0x18(%rbp)
jl     1237 <main+0x117>
cmpl   $0x3e8,-0x18(%rbp)
jge    1237 <main+0x117>
mov    -0x18(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x1c(%rbp)
mov    -0x18(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x20(%rbp)
mov    -0x18(%rbp),%eax
mov    $0x64,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x24(%rbp)
mov    -0x1c(%rbp),%esi
mov    -0x20(%rbp),%edx
mov    -0x24(%rbp),%ecx
lea    0xdfe(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
cmpl   $0x3e8,-0x18(%rbp)
jl     12bc <main+0x19c>
cmpl   $0x2710,-0x18(%rbp)
jge    12bc <main+0x19c>
mov    -0x18(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x1c(%rbp)
mov    -0x18(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x20(%rbp)
mov    -0x18(%rbp),%eax
mov    $0x64,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x24(%rbp)
mov    -0x18(%rbp),%eax
mov    $0x3e8,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x28(%rbp)
mov    -0x1c(%rbp),%esi
mov    -0x20(%rbp),%edx
mov    -0x24(%rbp),%ecx
mov    -0x28(%rbp),%r8d
lea    0xd76(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
cmpl   $0x2710,-0x18(%rbp)
jl     135b <main+0x23b>
cmpl   $0x186a0,-0x18(%rbp)
jge    135b <main+0x23b>
mov    -0x18(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x1c(%rbp)
mov    -0x18(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x20(%rbp)
mov    -0x18(%rbp),%eax
mov    $0x64,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x24(%rbp)
mov    -0x18(%rbp),%eax
mov    $0x3e8,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x28(%rbp)
mov    -0x18(%rbp),%eax
mov    $0x2710,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x2c(%rbp)
mov    -0x1c(%rbp),%esi
mov    -0x20(%rbp),%edx
mov    -0x24(%rbp),%ecx
mov    -0x28(%rbp),%r8d
mov    -0x2c(%rbp),%r9d
lea    0xcd4(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
cmpl   $0x186a0,-0x18(%rbp)
jl     1416 <main+0x2f6>
cmpl   $0xf4240,-0x18(%rbp)
jge    1416 <main+0x2f6>
mov    -0x18(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x1c(%rbp)
mov    -0x18(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x20(%rbp)
mov    -0x18(%rbp),%eax
mov    $0x64,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x24(%rbp)
mov    -0x18(%rbp),%eax
mov    $0x3e8,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x28(%rbp)
mov    -0x18(%rbp),%eax
mov    $0x2710,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x2c(%rbp)
mov    -0x18(%rbp),%eax
mov    $0x186a0,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x30(%rbp)
mov    -0x1c(%rbp),%esi
mov    -0x20(%rbp),%edx
mov    -0x24(%rbp),%ecx
mov    -0x28(%rbp),%r8d
mov    -0x2c(%rbp),%r9d
mov    -0x30(%rbp),%eax
lea    0xc19(%rip),%rdi
mov    %eax,(%rsp)
mov    $0x0,%al
call   1030 <printf@plt>
cmpl   $0xf4240,-0x18(%rbp)
jl     14f0 <main+0x3d0>
cmpl   $0x989680,-0x18(%rbp)
jge    14f0 <main+0x3d0>
mov    -0x18(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x1c(%rbp)
mov    -0x18(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x20(%rbp)
mov    -0x18(%rbp),%eax
mov    $0x64,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x24(%rbp)
mov    -0x18(%rbp),%eax
mov    $0x3e8,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x28(%rbp)
mov    -0x18(%rbp),%eax
mov    $0x2710,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x2c(%rbp)
mov    -0x18(%rbp),%eax
mov    $0x186a0,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x30(%rbp)
mov    -0x18(%rbp),%eax
mov    $0xf4240,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x34(%rbp)
mov    -0x1c(%rbp),%esi
mov    -0x20(%rbp),%edx
mov    -0x24(%rbp),%ecx
mov    -0x28(%rbp),%r8d
mov    -0x2c(%rbp),%r9d
mov    -0x30(%rbp),%r10d
mov    -0x34(%rbp),%eax
lea    0xb41(%rip),%rdi
mov    %r10d,(%rsp)
mov    %eax,0x8(%rsp)
mov    $0x0,%al
call   1030 <printf@plt>
cmpl   $0x989680,-0x18(%rbp)
jl     15e9 <main+0x4c9>
cmpl   $0x5f5e100,-0x18(%rbp)
jge    15e9 <main+0x4c9>
mov    -0x18(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x1c(%rbp)
mov    -0x18(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x20(%rbp)
mov    -0x18(%rbp),%eax
mov    $0x64,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x24(%rbp)
mov    -0x18(%rbp),%eax
mov    $0x3e8,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x28(%rbp)
mov    -0x18(%rbp),%eax
mov    $0x2710,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x2c(%rbp)
mov    -0x18(%rbp),%eax
mov    $0x186a0,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x30(%rbp)
mov    -0x18(%rbp),%eax
mov    $0xf4240,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x34(%rbp)
mov    -0x18(%rbp),%eax
mov    $0x989680,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x38(%rbp)
mov    -0x1c(%rbp),%esi
mov    -0x20(%rbp),%edx
mov    -0x24(%rbp),%ecx
mov    -0x28(%rbp),%r8d
mov    -0x2c(%rbp),%r9d
mov    -0x30(%rbp),%r11d
mov    -0x34(%rbp),%r10d
mov    -0x38(%rbp),%eax
lea    0xa4a(%rip),%rdi
mov    %r11d,(%rsp)
mov    %r10d,0x8(%rsp)
mov    %eax,0x10(%rsp)
mov    $0x0,%al
call   1030 <printf@plt>
cmpl   $0x5f5e100,-0x18(%rbp)
jl     16ff <main+0x5df>
cmpl   $0x3b9aca00,-0x18(%rbp)
jge    16ff <main+0x5df>
mov    -0x18(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x1c(%rbp)
mov    -0x18(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x20(%rbp)
mov    -0x18(%rbp),%eax
mov    $0x64,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x24(%rbp)
mov    -0x18(%rbp),%eax
mov    $0x3e8,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x28(%rbp)
mov    -0x18(%rbp),%eax
mov    $0x2710,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x2c(%rbp)
mov    -0x18(%rbp),%eax
mov    $0x186a0,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x30(%rbp)
mov    -0x18(%rbp),%eax
mov    $0xf4240,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x34(%rbp)
mov    -0x18(%rbp),%eax
mov    $0x989680,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x38(%rbp)
mov    -0x18(%rbp),%eax
mov    $0x5f5e100,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x3c(%rbp)
mov    -0x1c(%rbp),%esi
mov    -0x20(%rbp),%edx
mov    -0x24(%rbp),%ecx
mov    -0x28(%rbp),%r8d
mov    -0x2c(%rbp),%r9d
mov    -0x30(%rbp),%ebx
mov    -0x34(%rbp),%r11d
mov    -0x38(%rbp),%r10d
mov    -0x3c(%rbp),%eax
lea    0x935(%rip),%rdi
mov    %ebx,(%rsp)
mov    %r11d,0x8(%rsp)
mov    %r10d,0x10(%rsp)
mov    %eax,0x18(%rsp)
mov    $0x0,%al
call   1030 <printf@plt>
cmpl   $0x3b9aca00,-0x18(%rbp)
jl     183e <main+0x71e>
movslq -0x18(%rbp),%rax
movabs $0x2540be400,%rcx
cmp    %rcx,%rax
jge    183e <main+0x71e>
mov    -0x18(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x1c(%rbp)
mov    -0x18(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x20(%rbp)
mov    -0x18(%rbp),%eax
mov    $0x64,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x24(%rbp)
mov    -0x18(%rbp),%eax
mov    $0x3e8,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x28(%rbp)
mov    -0x18(%rbp),%eax
mov    $0x2710,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x2c(%rbp)
mov    -0x18(%rbp),%eax
mov    $0x186a0,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x30(%rbp)
mov    -0x18(%rbp),%eax
mov    $0xf4240,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x34(%rbp)
mov    -0x18(%rbp),%eax
mov    $0x989680,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x38(%rbp)
mov    -0x18(%rbp),%eax
mov    $0x5f5e100,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x3c(%rbp)
mov    -0x18(%rbp),%eax
mov    $0x3b9aca00,%ecx
cltd
idiv   %ecx
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x40(%rbp)
mov    -0x1c(%rbp),%esi
mov    -0x20(%rbp),%edx
mov    -0x24(%rbp),%ecx
mov    -0x28(%rbp),%r8d
mov    -0x2c(%rbp),%r9d
mov    -0x30(%rbp),%r14d
mov    -0x34(%rbp),%ebx
mov    -0x38(%rbp),%r11d
mov    -0x3c(%rbp),%r10d
mov    -0x40(%rbp),%eax
lea    0x7f8(%rip),%rdi
mov    %r14d,(%rsp)
mov    %ebx,0x8(%rsp)
mov    %r11d,0x10(%rsp)
mov    %r10d,0x18(%rsp)
mov    %eax,0x20(%rsp)
mov    $0x0,%al
call   1030 <printf@plt>
xor    %eax,%eax
add    $0x60,%rsp
pop    %rbx
pop    %r14
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %r15
push   %r14
push   %r12
push   %rbx
push   %rax
lea    0xed1(%rip),%rdi
xor    %eax,%eax
call   1030 <printf@plt>
lea    0xed9(%rip),%rdi
lea    0x4(%rsp),%rsi
call   1040 <scanf@plt>
mov    0x4(%rsp),%esi
lea    -0x1(%rsi),%eax
cmp    $0x8,%eax
ja     117d <main+0x5d>
movzbl %sil,%eax
imul   $0xcd,%eax,%ecx
shr    $0xa,%ecx
and    $0xfffffffe,%ecx
lea    (%rcx,%rcx,4),%ecx
sub    %cl,%al
movzbl %al,%esi
lea    0xec2(%rip),%rdi
xor    %eax,%eax
call   1030 <printf@plt>
mov    0x4(%rsp),%esi
lea    -0xa(%rsi),%eax
cmp    $0x59,%eax
ja     11c3 <main+0xa3>
movzbl %sil,%eax
imul   $0xcd,%eax,%ecx
shr    $0xb,%ecx
lea    (%rcx,%rcx,1),%edx
lea    (%rdx,%rdx,4),%edx
sub    %dl,%al
movzbl %al,%esi
imul   $0xcd,%ecx,%eax
shr    $0xa,%eax
and    $0xfffffffe,%eax
lea    (%rax,%rax,4),%eax
sub    %al,%cl
movzbl %cl,%edx
lea    0xe79(%rip),%rdi
xor    %eax,%eax
call   1030 <printf@plt>
mov    0x4(%rsp),%esi
lea    -0x64(%rsi),%eax
cmp    $0x383,%eax
ja     1230 <main+0x110>
movzwl %si,%eax
imul   $0xcccd,%eax,%ecx
shr    $0x13,%ecx
lea    (%rcx,%rcx,1),%edx
lea    (%rdx,%rdx,4),%edx
sub    %edx,%esi
movzwl %si,%esi
movzbl %cl,%ecx
imul   $0xcd,%ecx,%edx
shr    $0xa,%edx
and    $0xfffffffe,%edx
lea    (%rdx,%rdx,4),%edx
sub    %dl,%cl
movzbl %cl,%edx
shr    $0x2,%eax
imul   $0x147b,%eax,%eax
shr    $0x11,%eax
movzbl %al,%eax
imul   $0xcd,%eax,%ecx
shr    $0xa,%ecx
and    $0xfffffffe,%ecx
lea    (%rcx,%rcx,4),%ecx
sub    %cl,%al
movzbl %al,%ecx
lea    0xe09(%rip),%rdi
xor    %eax,%eax
call   1030 <printf@plt>
mov    0x4(%rsp),%esi
lea    -0x3e8(%rsi),%eax
cmp    $0x2327,%eax
ja     12c6 <main+0x1a6>
movzwl %si,%eax
imul   $0xcccd,%eax,%ecx
shr    $0x13,%ecx
lea    (%rcx,%rcx,1),%edx
lea    (%rdx,%rdx,4),%edx
sub    %edx,%esi
movzwl %si,%esi
imul   $0xcccd,%ecx,%edx
shr    $0x12,%edx
and    $0xfffffffe,%edx
lea    (%rdx,%rdx,4),%edx
sub    %edx,%ecx
movzwl %cx,%edx
mov    %eax,%ecx
shr    $0x2,%ecx
imul   $0x147b,%ecx,%ecx
shr    $0x11,%ecx
movzbl %cl,%ecx
imul   $0xcd,%ecx,%edi
shr    $0xa,%edi
and    $0xfffffffe,%edi
lea    (%rdi,%rdi,4),%edi
sub    %dil,%cl
movzbl %cl,%ecx
shr    $0x3,%eax
imul   $0x20c5,%eax,%eax
shr    $0x14,%eax
imul   $0xcd,%eax,%edi
shr    $0xa,%edi
and    $0xfffffffe,%edi
lea    (%rdi,%rdi,4),%edi
sub    %dil,%al
movzbl %al,%r8d
lea    0xd70(%rip),%rdi
xor    %eax,%eax
call   1030 <printf@plt>
mov    0x4(%rsp),%esi
lea    -0x2710(%rsi),%eax
cmp    $0x15f8f,%eax
ja     1385 <main+0x265>
mov    %esi,%eax
mov    $0xcccccccd,%ecx
imul   %rax,%rcx
shr    $0x23,%rcx
lea    (%rcx,%rcx,1),%edx
lea    (%rdx,%rdx,4),%edx
sub    %edx,%esi
movzwl %cx,%edx
imul   $0xcccd,%edx,%edx
shr    $0x12,%edx
and    $0xfffffffe,%edx
lea    (%rdx,%rdx,4),%edx
sub    %edx,%ecx
movzwl %cx,%edx
imul   $0x51eb851f,%rax,%rcx
shr    $0x25,%rcx
movzwl %cx,%edi
imul   $0xcccd,%edi,%edi
shr    $0x12,%edi
and    $0xfffffffe,%edi
lea    (%rdi,%rdi,4),%edi
sub    %edi,%ecx
movzwl %cx,%ecx
imul   $0x10624dd3,%rax,%rdi
shr    $0x26,%rdi
movzbl %dil,%ebx
imul   $0xcd,%ebx,%ebx
shr    $0xa,%ebx
and    $0xfffffffe,%ebx
lea    (%rbx,%rbx,4),%ebx
sub    %bl,%dil
movzbl %dil,%r8d
mov    $0xd1b71759,%edi
imul   %rax,%rdi
shr    $0x2d,%rdi
movzbl %dil,%eax
imul   $0xcd,%eax,%eax
shr    $0xa,%eax
and    $0xfffffffe,%eax
lea    (%rax,%rax,4),%eax
sub    %al,%dil
movzbl %dil,%r9d
lea    0xcae(%rip),%rdi
xor    %eax,%eax
call   1030 <printf@plt>
mov    0x4(%rsp),%esi
lea    -0x186a0(%rsi),%eax
cmp    $0xdbb9f,%eax
ja     1473 <main+0x353>
mov    %esi,%edx
mov    $0xcccccccd,%r8d
imul   $0x51eb851f,%rdx,%rdi
imul   $0x10624dd3,%rdx,%rbx
mov    $0xd1b71759,%eax
imul   %rdx,%rax
imul   %r8,%rdx
shr    $0x23,%rdx
lea    (%rdx,%rdx,1),%ecx
lea    (%rcx,%rcx,4),%ecx
mov    %esi,%r10d
sub    %ecx,%r10d
mov    %rdx,%rcx
imul   %r8,%rcx
shr    $0x23,%rcx
add    %ecx,%ecx
lea    (%rcx,%rcx,4),%ecx
sub    %ecx,%edx
shr    $0x25,%rdi
movzwl %di,%ecx
imul   $0xcccd,%ecx,%ecx
shr    $0x12,%ecx
and    $0xfffffffe,%ecx
lea    (%rcx,%rcx,4),%ecx
sub    %ecx,%edi
movzwl %di,%ecx
shr    $0x26,%rbx
movzwl %bx,%edi
imul   $0xcccd,%edi,%edi
shr    $0x12,%edi
and    $0xfffffffe,%edi
lea    (%rdi,%rdi,4),%edi
sub    %edi,%ebx
movzwl %bx,%r8d
shr    $0x2d,%rax
movzbl %al,%edi
imul   $0xcd,%edi,%edi
shr    $0xa,%edi
and    $0xfffffffe,%edi
lea    (%rdi,%rdi,4),%edi
sub    %dil,%al
movzbl %al,%r9d
shr    $0x5,%esi
imul   $0xa7c5ac5,%rsi,%rax
shr    $0x27,%rax
movzbl %al,%esi
imul   $0xcd,%esi,%esi
shr    $0xa,%esi
and    $0xfffffffe,%esi
lea    (%rsi,%rsi,4),%esi
sub    %sil,%al
movzbl %al,%ebx
sub    $0x8,%rsp
lea    0xbc5(%rip),%rdi
mov    %r10d,%esi
xor    %eax,%eax
push   %rbx
call   1030 <printf@plt>
add    $0x10,%rsp
mov    0x4(%rsp),%esi
lea    -0xf4240(%rsi),%eax
cmp    $0x89543f,%eax
ja     157e <main+0x45e>
mov    %esi,%edx
mov    $0xcccccccd,%r8d
imul   $0x51eb851f,%rdx,%rcx
imul   $0x10624dd3,%rdx,%r9
mov    $0xd1b71759,%eax
imul   %rdx,%rax
imul   $0x431bde83,%rdx,%rbx
imul   %r8,%rdx
shr    $0x23,%rdx
lea    (%rdx,%rdx,1),%edi
lea    (%rdi,%rdi,4),%edi
mov    %esi,%r10d
sub    %edi,%r10d
mov    %rdx,%rdi
imul   %r8,%rdi
shr    $0x23,%rdi
add    %edi,%edi
lea    (%rdi,%rdi,4),%edi
sub    %edi,%edx
shr    $0x25,%rcx
mov    %rcx,%rdi
imul   %r8,%rdi
shr    $0x23,%rdi
add    %edi,%edi
lea    (%rdi,%rdi,4),%edi
sub    %edi,%ecx
shr    $0x26,%r9
movzwl %r9w,%edi
imul   $0xcccd,%edi,%edi
shr    $0x12,%edi
and    $0xfffffffe,%edi
lea    (%rdi,%rdi,4),%edi
sub    %edi,%r9d
movzwl %r9w,%r8d
shr    $0x2d,%rax
movzwl %ax,%edi
imul   $0xcccd,%edi,%edi
shr    $0x12,%edi
and    $0xfffffffe,%edi
lea    (%rdi,%rdi,4),%edi
sub    %edi,%eax
movzwl %ax,%r9d
shr    $0x5,%esi
imul   $0xa7c5ac5,%rsi,%rax
shr    $0x27,%rax
movzbl %al,%esi
imul   $0xcd,%esi,%esi
shr    $0xa,%esi
and    $0xfffffffe,%esi
lea    (%rsi,%rsi,4),%esi
sub    %sil,%al
movzbl %al,%r11d
shr    $0x32,%rbx
movzbl %bl,%eax
imul   $0xcd,%eax,%eax
shr    $0xa,%eax
and    $0xfffffffe,%eax
lea    (%rax,%rax,4),%eax
sub    %al,%bl
movzbl %bl,%ebx
lea    0xab9(%rip),%rdi
mov    %r10d,%esi
xor    %eax,%eax
push   %rbx
push   %r11
call   1030 <printf@plt>
add    $0x10,%rsp
mov    0x4(%rsp),%esi
lea    -0x989680(%rsi),%eax
cmp    $0x55d4a7f,%eax
ja     16ab <main+0x58b>
mov    %esi,%edx
mov    $0xcccccccd,%r9d
imul   $0x51eb851f,%rdx,%rcx
imul   $0x10624dd3,%rdx,%r8
mov    $0xd1b71759,%r11d
imul   %rdx,%r11
imul   $0x431bde83,%rdx,%rax
imul   $0x6b5fca6b,%rdx,%rbx
imul   %r9,%rdx
shr    $0x23,%rdx
lea    (%rdx,%rdx,1),%edi
lea    (%rdi,%rdi,4),%edi
mov    %esi,%r10d
sub    %edi,%r10d
mov    %rdx,%rdi
imul   %r9,%rdi
shr    $0x23,%rdi
add    %edi,%edi
lea    (%rdi,%rdi,4),%edi
sub    %edi,%edx
shr    $0x25,%rcx
mov    %rcx,%rdi
imul   %r9,%rdi
shr    $0x23,%rdi
add    %edi,%edi
lea    (%rdi,%rdi,4),%edi
sub    %edi,%ecx
shr    $0x26,%r8
mov    %r8,%rdi
imul   %r9,%rdi
shr    $0x23,%rdi
add    %edi,%edi
lea    (%rdi,%rdi,4),%edi
sub    %edi,%r8d
shr    $0x2d,%r11
movzwl %r11w,%edi
imul   $0xcccd,%edi,%edi
shr    $0x12,%edi
and    $0xfffffffe,%edi
lea    (%rdi,%rdi,4),%edi
sub    %edi,%r11d
movzwl %r11w,%r9d
shr    $0x5,%esi
imul   $0xa7c5ac5,%rsi,%rsi
shr    $0x27,%rsi
imul   $0xcccd,%esi,%edi
shr    $0x12,%edi
and    $0xfffffffe,%edi
lea    (%rdi,%rdi,4),%edi
sub    %edi,%esi
movzwl %si,%r11d
shr    $0x32,%rax
movzbl %al,%esi
imul   $0xcd,%esi,%esi
shr    $0xa,%esi
and    $0xfffffffe,%esi
lea    (%rsi,%rsi,4),%esi
sub    %sil,%al
movzbl %al,%r14d
shr    $0x36,%rbx
movzbl %bl,%eax
imul   $0xcd,%eax,%eax
shr    $0xa,%eax
and    $0xfffffffe,%eax
lea    (%rax,%rax,4),%eax
sub    %al,%bl
movzbl %bl,%ebx
sub    $0x8,%rsp
lea    0x98b(%rip),%rdi
mov    %r10d,%esi
xor    %eax,%eax
push   %rbx
push   %r14
push   %r11
call   1030 <printf@plt>
add    $0x20,%rsp
mov    0x4(%rsp),%esi
lea    -0x5f5e100(%rsi),%eax
cmp    $0x35a4e8ff,%eax
ja     17ee <main+0x6ce>
mov    %esi,%edx
mov    $0xcccccccd,%r10d
imul   $0x51eb851f,%rdx,%rcx
imul   $0x10624dd3,%rdx,%r8
mov    $0xd1b71759,%r9d
imul   %rdx,%r9
imul   $0x431bde83,%rdx,%r14
imul   $0x6b5fca6b,%rdx,%rax
imul   $0x55e63b89,%rdx,%rbx
imul   %r10,%rdx
shr    $0x23,%rdx
lea    (%rdx,%rdx,1),%edi
lea    (%rdi,%rdi,4),%edi
mov    %esi,%r11d
sub    %edi,%r11d
mov    %rdx,%rdi
imul   %r10,%rdi
shr    $0x23,%rdi
add    %edi,%edi
lea    (%rdi,%rdi,4),%edi
sub    %edi,%edx
shr    $0x25,%rcx
mov    %rcx,%rdi
imul   %r10,%rdi
shr    $0x23,%rdi
add    %edi,%edi
lea    (%rdi,%rdi,4),%edi
sub    %edi,%ecx
shr    $0x26,%r8
mov    %r8,%rdi
imul   %r10,%rdi
shr    $0x23,%rdi
add    %edi,%edi
lea    (%rdi,%rdi,4),%edi
sub    %edi,%r8d
shr    $0x2d,%r9
mov    %r9,%rdi
imul   %r10,%rdi
shr    $0x23,%rdi
add    %edi,%edi
lea    (%rdi,%rdi,4),%edi
sub    %edi,%r9d
shr    $0x5,%esi
imul   $0xa7c5ac5,%rsi,%rsi
shr    $0x27,%rsi
imul   $0xcccd,%esi,%edi
shr    $0x12,%edi
and    $0xfffffffe,%edi
lea    (%rdi,%rdi,4),%edi
sub    %edi,%esi
movzwl %si,%r10d
shr    $0x32,%r14
imul   $0xcccd,%r14d,%esi
shr    $0x12,%esi
and    $0xfffffffe,%esi
lea    (%rsi,%rsi,4),%esi
sub    %esi,%r14d
movzwl %r14w,%r14d
shr    $0x36,%rax
movzbl %al,%esi
imul   $0xcd,%esi,%esi
shr    $0xa,%esi
and    $0xfffffffe,%esi
lea    (%rsi,%rsi,4),%esi
sub    %sil,%al
movzbl %al,%r15d
shr    $0x39,%rbx
imul   $0xcd,%ebx,%eax
shr    $0xa,%eax
and    $0xfffffffe,%eax
lea    (%rax,%rax,4),%eax
sub    %al,%bl
movzbl %bl,%ebx
lea    0x847(%rip),%rdi
mov    %r11d,%esi
xor    %eax,%eax
push   %rbx
push   %r15
push   %r14
push   %r10
call   1030 <printf@plt>
add    $0x20,%rsp
mov    0x4(%rsp),%esi
cmp    $0x3b9aca00,%esi
jl     1940 <main+0x820>
mov    %esi,%edx
mov    $0xcccccccd,%r10d
imul   $0x51eb851f,%rdx,%rcx
imul   $0x10624dd3,%rdx,%r8
mov    $0xd1b71759,%r9d
imul   %rdx,%r9
imul   $0x431bde83,%rdx,%r14
imul   $0x6b5fca6b,%rdx,%r15
imul   $0x55e63b89,%rdx,%rbx
imul   %r10,%rdx
shr    $0x23,%rdx
lea    (%rdx,%rdx,1),%edi
lea    (%rdi,%rdi,4),%edi
mov    %esi,%r11d
sub    %edi,%r11d
mov    %rdx,%rdi
imul   %r10,%rdi
shr    $0x23,%rdi
add    %edi,%edi
lea    (%rdi,%rdi,4),%edi
sub    %edi,%edx
shr    $0x25,%rcx
mov    %rcx,%rdi
imul   %r10,%rdi
shr    $0x23,%rdi
add    %edi,%edi
lea    (%rdi,%rdi,4),%edi
sub    %edi,%ecx
shr    $0x26,%r8
mov    %r8,%rdi
imul   %r10,%rdi
shr    $0x23,%rdi
add    %edi,%edi
lea    (%rdi,%rdi,4),%edi
sub    %edi,%r8d
shr    $0x2d,%r9
mov    %r9,%rdi
imul   %r10,%rdi
shr    $0x23,%rdi
add    %edi,%edi
lea    (%rdi,%rdi,4),%edi
sub    %edi,%r9d
mov    %esi,%edi
shr    $0x5,%edi
imul   $0xa7c5ac5,%rdi,%rdi
shr    $0x27,%rdi
imul   $0xcccd,%edi,%eax
shr    $0x12,%eax
and    $0xfffffffe,%eax
lea    (%rax,%rax,4),%eax
sub    %eax,%edi
movzwl %di,%r10d
shr    $0x32,%r14
imul   $0xcccd,%r14d,%eax
shr    $0x12,%eax
and    $0xfffffffe,%eax
lea    (%rax,%rax,4),%eax
sub    %eax,%r14d
movzwl %r14w,%r14d
shr    $0x36,%r15
movzbl %r15b,%eax
imul   $0xcd,%eax,%eax
shr    $0xa,%eax
and    $0xfffffffe,%eax
lea    (%rax,%rax,4),%eax
sub    %al,%r15b
movzbl %r15b,%r15d
shr    $0x39,%rbx
imul   $0xcd,%ebx,%eax
shr    $0xa,%eax
and    $0xfffffffe,%eax
lea    (%rax,%rax,4),%eax
sub    %al,%bl
movzbl %bl,%r12d
shr    $0x9,%esi
imul   $0x44b83,%rsi,%rbx
shr    $0x27,%rbx
sub    $0x8,%rsp
lea    0x6f0(%rip),%rdi
mov    %r11d,%esi
xor    %eax,%eax
push   %rbx
push   %r12
push   %r15
push   %r14
push   %r10
call   1030 <printf@plt>
add    $0x30,%rsp
xor    %eax,%eax
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r14
pop    %r15
ret

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

LLVM IR (-O2):
@.str = [22 x i8] c"\0AEnter an interger > \00"
@.str.1 = [3 x i8] c"%d\00"
@.str.2 = [34 x i8] c"\0A%d\0AThat's all, have a nice day!\0A\00"
@.str.3 = [37 x i8] c"\0A%d\0A%d\0AThat's all, have a nice day!\0A\00"
@.str.4 = [40 x i8] c"\0A%d\0A%d\0A%d\0AThat's all, have a nice day!\0A\00"
@.str.5 = [43 x i8] c"\0A%d\0A%d\0A%d\0A%d\0AThat's all, have a nice day!\0A\00"
@.str.6 = [46 x i8] c"\0A%d\0A%d\0A%d\0A%d\0A%d\0AThat's all, have a nice day!\0A\00"
@.str.7 = [49 x i8] c"\0A%d\0A%d\0A%d\0A%d\0A%d\0A%d\0AThat's all, have a nice day!\0A\00"
@.str.8 = [52 x i8] c"\0A%d\0A%d\0A%d\0A%d\0A%d\0A%d\0A%d\0AThat's all, have a nice day!\0A\00"
@.str.9 = [55 x i8] c"\0A%d\0A%d\0A%d\0A%d\0A%d\0A%d\0A%d\0A%d\0AThat's all, have a nice day!\0A\00"
@.str.10 = [58 x i8] c"\0A%d\0A%d\0A%d\0A%d\0A%d\0A%d\0A%d\0A%d\0A%d\0AThat's all, have a nice day!\0A\00"
@.str.11 = [61 x i8] c"\0A%d\0A%d\0A%d\0A%d\0A%d\0A%d\0A%d\0A%d\0A%d\0A%d\0AThat's all, have a nice day!\0A\00"
define i32 @main() {
%1 = alloca i32
%2 = bitcast i32* %1 to i8*
%3 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @.str, i64 0, i64 0))
%4 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i32* %1)
%5 = load i32, i32* %1
%6 = add i32 %5, -1
%7 = icmp ult i32 %6, 9
br i1 %7, label %8, label %14
8: ; preds = %0
%9 = trunc i32 %5 to i8
%10 = urem i8 %9, 10
%11 = zext i8 %10 to i32
%12 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([34 x i8], [34 x i8]* @.str.2, i64 0, i64 0), i32 %11)
%13 = load i32, i32* %1
br label %14
14: ; preds = %8, %0
%15 = phi i32 [ %13, %8 ], [ %5, %0 ]
%16 = add i32 %15, -10
%17 = icmp ult i32 %16, 90
br i1 %17, label %18, label %27
18: ; preds = %14
%19 = trunc i32 %15 to i8
%20 = urem i8 %19, 10
%21 = zext i8 %20 to i32
%22 = udiv i8 %19, 10
%23 = urem i8 %22, 10
%24 = zext i8 %23 to i32
%25 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([37 x i8], [37 x i8]* @.str.3, i64 0, i64 0), i32 %21, i32 %24)
%26 = load i32, i32* %1
br label %27
27: ; preds = %18, %14
%28 = phi i32 [ %26, %18 ], [ %15, %14 ]
%29 = add i32 %28, -100
%30 = icmp ult i32 %29, 900
br i1 %30, label %31, label %45
31: ; preds = %27
%32 = trunc i32 %28 to i16
%33 = urem i16 %32, 10
%34 = zext i16 %33 to i32
%35 = udiv i16 %32, 10
%36 = trunc i16 %35 to i8
%37 = urem i8 %36, 10
%38 = zext i8 %37 to i32
%39 = udiv i16 %32, 100
%40 = trunc i16 %39 to i8
%41 = urem i8 %40, 10
%42 = zext i8 %41 to i32
%43 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([40 x i8], [40 x i8]* @.str.4, i64 0, i64 0), i32 %34, i32 %38, i32 %42)
%44 = load i32, i32* %1
br label %45
45: ; preds = %31, %27
%46 = phi i32 [ %44, %31 ], [ %28, %27 ]
%47 = add i32 %46, -1000
%48 = icmp ult i32 %47, 9000
br i1 %48, label %49, label %66
49: ; preds = %45
%50 = trunc i32 %46 to i16
%51 = urem i16 %50, 10
%52 = zext i16 %51 to i32
%53 = udiv i16 %50, 10
%54 = urem i16 %53, 10
%55 = zext i16 %54 to i32
%56 = udiv i16 %50, 100
%57 = trunc i16 %56 to i8
%58 = urem i8 %57, 10
%59 = zext i8 %58 to i32
%60 = udiv i16 %50, 1000
%61 = trunc i16 %60 to i8
%62 = urem i8 %61, 10
%63 = zext i8 %62 to i32
%64 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([43 x i8], [43 x i8]* @.str.5, i64 0, i64 0), i32 %52, i32 %55, i32 %59, i32 %63)
%65 = load i32, i32* %1
br label %66
66: ; preds = %49, %45
%67 = phi i32 [ %65, %49 ], [ %46, %45 ]
%68 = add i32 %67, -10000
%69 = icmp ult i32 %68, 90000
br i1 %69, label %70, label %90
70: ; preds = %66
%71 = urem i32 %67, 10
%72 = udiv i32 %67, 10
%73 = trunc i32 %72 to i16
%74 = urem i16 %73, 10
%75 = zext i16 %74 to i32
%76 = udiv i32 %67, 100
%77 = trunc i32 %76 to i16
%78 = urem i16 %77, 10
%79 = zext i16 %78 to i32
%80 = udiv i32 %67, 1000
%81 = trunc i32 %80 to i8
%82 = urem i8 %81, 10
%83 = zext i8 %82 to i32
%84 = udiv i32 %67, 10000
%85 = trunc i32 %84 to i8
%86 = urem i8 %85, 10
%87 = zext i8 %86 to i32
%88 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @.str.6, i64 0, i64 0), i32 %71, i32 %75, i32 %79, i32 %83, i32 %87)
%89 = load i32, i32* %1
br label %90
90: ; preds = %70, %66
%91 = phi i32 [ %89, %70 ], [ %67, %66 ]
%92 = add i32 %91, -100000
%93 = icmp ult i32 %92, 900000
br i1 %93, label %94, label %116
94: ; preds = %90
%95 = urem i32 %91, 10
%96 = udiv i32 %91, 10
%97 = urem i32 %96, 10
%98 = udiv i32 %91, 100
%99 = trunc i32 %98 to i16
%100 = urem i16 %99, 10
%101 = zext i16 %100 to i32
%102 = udiv i32 %91, 1000
%103 = trunc i32 %102 to i16
%104 = urem i16 %103, 10
%105 = zext i16 %104 to i32
%106 = udiv i32 %91, 10000
%107 = trunc i32 %106 to i8
%108 = urem i8 %107, 10
%109 = zext i8 %108 to i32
%110 = udiv i32 %91, 100000
%111 = trunc i32 %110 to i8
%112 = urem i8 %111, 10
%113 = zext i8 %112 to i32
%114 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([49 x i8], [49 x i8]* @.str.7, i64 0, i64 0), i32 %95, i32 %97, i32 %101, i32 %105, i32 %109, i32 %113)
%115 = load i32, i32* %1
br label %116
116: ; preds = %94, %90
%117 = phi i32 [ %115, %94 ], [ %91, %90 ]
%118 = add i32 %117, -1000000
%119 = icmp ult i32 %118, 9000000
br i1 %119, label %120, label %144
120: ; preds = %116
%121 = urem i32 %117, 10
%122 = udiv i32 %117, 10
%123 = urem i32 %122, 10
%124 = udiv i32 %117, 100
%125 = urem i32 %124, 10
%126 = udiv i32 %117, 1000
%127 = trunc i32 %126 to i16
%128 = urem i16 %127, 10
%129 = zext i16 %128 to i32
%130 = udiv i32 %117, 10000
%131 = trunc i32 %130 to i16
%132 = urem i16 %131, 10
%133 = zext i16 %132 to i32
%134 = udiv i32 %117, 100000
%135 = trunc i32 %134 to i8
%136 = urem i8 %135, 10
%137 = zext i8 %136 to i32
%138 = udiv i32 %117, 1000000
%139 = trunc i32 %138 to i8
%140 = urem i8 %139, 10
%141 = zext i8 %140 to i32
%142 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([52 x i8], [52 x i8]* @.str.8, i64 0, i64 0), i32 %121, i32 %123, i32 %125, i32 %129, i32 %133, i32 %137, i32 %141)
%143 = load i32, i32* %1
br label %144
144: ; preds = %120, %116
%145 = phi i32 [ %143, %120 ], [ %117, %116 ]
%146 = add i32 %145, -10000000
%147 = icmp ult i32 %146, 90000000
br i1 %147, label %148, label %174
148: ; preds = %144
%149 = urem i32 %145, 10
%150 = udiv i32 %145, 10
%151 = urem i32 %150, 10
%152 = udiv i32 %145, 100
%153 = urem i32 %152, 10
%154 = udiv i32 %145, 1000
%155 = urem i32 %154, 10
%156 = udiv i32 %145, 10000
%157 = trunc i32 %156 to i16
%158 = urem i16 %157, 10
%159 = zext i16 %158 to i32
%160 = udiv i32 %145, 100000
%161 = trunc i32 %160 to i16
%162 = urem i16 %161, 10
%163 = zext i16 %162 to i32
%164 = udiv i32 %145, 1000000
%165 = trunc i32 %164 to i8
%166 = urem i8 %165, 10
%167 = zext i8 %166 to i32
%168 = udiv i32 %145, 10000000
%169 = trunc i32 %168 to i8
%170 = urem i8 %169, 10
%171 = zext i8 %170 to i32
%172 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([55 x i8], [55 x i8]* @.str.9, i64 0, i64 0), i32 %149, i32 %151, i32 %153, i32 %155, i32 %159, i32 %163, i32 %167, i32 %171)
%173 = load i32, i32* %1
br label %174
174: ; preds = %148, %144
%175 = phi i32 [ %173, %148 ], [ %145, %144 ]
%176 = add i32 %175, -100000000
%177 = icmp ult i32 %176, 900000000
br i1 %177, label %178, label %206
178: ; preds = %174
%179 = urem i32 %175, 10
%180 = udiv i32 %175, 10
%181 = urem i32 %180, 10
%182 = udiv i32 %175, 100
%183 = urem i32 %182, 10
%184 = udiv i32 %175, 1000
%185 = urem i32 %184, 10
%186 = udiv i32 %175, 10000
%187 = urem i32 %186, 10
%188 = udiv i32 %175, 100000
%189 = trunc i32 %188 to i16
%190 = urem i16 %189, 10
%191 = zext i16 %190 to i32
%192 = udiv i32 %175, 1000000
%193 = trunc i32 %192 to i16
%194 = urem i16 %193, 10
%195 = zext i16 %194 to i32
%196 = udiv i32 %175, 10000000
%197 = trunc i32 %196 to i8
%198 = urem i8 %197, 10
%199 = zext i8 %198 to i32
%200 = udiv i32 %175, 100000000
%201 = trunc i32 %200 to i8
%202 = urem i8 %201, 10
%203 = zext i8 %202 to i32
%204 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([58 x i8], [58 x i8]* @.str.10, i64 0, i64 0), i32 %179, i32 %181, i32 %183, i32 %185, i32 %187, i32 %191, i32 %195, i32 %199, i32 %203)
%205 = load i32, i32* %1
br label %206
206: ; preds = %178, %174
%207 = phi i32 [ %205, %178 ], [ %175, %174 ]
%208 = icmp sgt i32 %207, 999999999
br i1 %208, label %209, label %237
209: ; preds = %206
%210 = urem i32 %207, 10
%211 = udiv i32 %207, 10
%212 = urem i32 %211, 10
%213 = udiv i32 %207, 100
%214 = urem i32 %213, 10
%215 = udiv i32 %207, 1000
%216 = urem i32 %215, 10
%217 = udiv i32 %207, 10000
%218 = urem i32 %217, 10
%219 = udiv i32 %207, 100000
%220 = trunc i32 %219 to i16
%221 = urem i16 %220, 10
%222 = zext i16 %221 to i32
%223 = udiv i32 %207, 1000000
%224 = trunc i32 %223 to i16
%225 = urem i16 %224, 10
%226 = zext i16 %225 to i32
%227 = udiv i32 %207, 10000000
%228 = trunc i32 %227 to i8
%229 = urem i8 %228, 10
%230 = zext i8 %229 to i32
%231 = udiv i32 %207, 100000000
%232 = trunc i32 %231 to i8
%233 = urem i8 %232, 10
%234 = zext i8 %233 to i32
%235 = udiv i32 %207, 1000000000
%236 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([61 x i8], [61 x i8]* @.str.11, i64 0, i64 0), i32 %210, i32 %212, i32 %214, i32 %216, i32 %218, i32 %222, i32 %226, i32 %230, i32 %234, i32 %235)
br label %237
237: ; preds = %209, %206
ret i32 0
}