#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 *);
void Desytki(int Des) {
  int *names[] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "00"};
m:
  if ((Des >= 0) && (Des <= 9)) {
    printf(" %s", names[0]);
  } else if ((Des >= 10) && (Des <= 19)) {
    printf(" %s", names[1]);
  } else if ((Des >= 20) && (Des <= 29)) {
    printf(" %s", names[2]);
  } else if ((Des >= 30) && (Des <= 39)) {
    printf(" %s", names[3]);
  } else if ((Des >= 40) && (Des <= 49)) {
    printf(" %s", names[4]);
  } else if ((Des >= 50) && (Des <= 59)) {
    printf(" %s", names[5]);
  } else if ((Des >= 60) && (Des <= 69)) {
    printf(" %s", names[6]);
  } else if ((Des >= 70) && (Des <= 79)) {
    printf(" %s", names[7]);
  } else if ((Des >= 80) && (Des <= 89)) {
    printf(" %s", names[8]);
  } else if ((Des >= 90) && (Des <= 99)) {
    printf(" %s", names[9]);
  } else if ((Des >= 100) && (Des <= 199)) {
    Des = Des - 100;
    goto m;
  } else if ((Des >= 200) && (Des <= 299)) {
    Des = Des - 200;
    goto m;
  } else if ((Des >= 300) && (Des <= 399)) {
    Des = Des - 300;
    goto m;
  } else if ((Des >= 400) && (Des <= 499)) {
    Des = Des - 400;
    goto m;
  } else if ((Des >= 500) && (Des <= 599)) {
    Des = Des - 500;
    goto m;
  } else if ((Des >= 600) && (Des <= 699)) {
    Des = Des - 600;
    goto m;
  } else if ((Des >= 700) && (Des <= 799)) {
    Des = Des - 700;
    goto m;
  } else if ((Des >= 800) && (Des <= 899)) {
    Des = Des - 800;
    goto m;
  } else if ((Des >= 900) && (Des <= 999)) {
    Des = Des - 900;
    goto m;
  } else if ((Des >= 1000) && (Des <= 1999)) {
    Des = Des - 1000;
    goto m;
  } else if ((Des >= 2000) && (Des <= 2999)) {
    Des = Des - 2000;
    goto m;
  } else if ((Des >= 3000) && (Des <= 3999)) {
    Des = Des - 3000;
    goto m;
  } else if ((Des >= 4000) && (Des <= 4999)) {
    Des = Des - 4000;
    goto m;
  } else if ((Des >= 5000) && (Des <= 5999)) {
    Des = Des - 5000;
    goto m;
  } else if ((Des >= 6000) && (Des <= 6999)) {
    Des = Des - 6000;
    goto m;
  } else if ((Des >= 7000) && (Des <= 7999)) {
    Des = Des - 7000;
    goto m;
  } else if ((Des >= 8000) && (Des <= 8999)) {
    Des = Des - 8000;
    goto m;
  } else if ((Des >= 9000) && (Des <= 9999)) {
    Des = Des - 9000;
    goto m;
  }
}


x86 assembly (clang, -O0):
<Desytki>:
push   %rbp
mov    %rsp,%rbp
sub    $0x60,%rsp
mov    %edi,-0x4(%rbp)
lea    -0x60(%rbp),%rdi
lea    0x2c8a(%rip),%rsi
mov    $0x58,%edx
call   1040 <memcpy@plt>
cmpl   $0x0,-0x4(%rbp)
jl     1169 <Desytki+0x49>
cmpl   $0x9,-0x4(%rbp)
jg     1169 <Desytki+0x49>
mov    -0x60(%rbp),%rsi
lea    0xeb6(%rip),%rdi
call   1030 <printf@plt>
jmp    1650 <Desytki+0x530>
cmpl   $0xa,-0x4(%rbp)
jl     1192 <Desytki+0x72>
cmpl   $0x13,-0x4(%rbp)
jg     1192 <Desytki+0x72>
mov    -0x58(%rbp),%rsi
lea    0xe8d(%rip),%rdi
call   1030 <printf@plt>
jmp    164b <Desytki+0x52b>
cmpl   $0x14,-0x4(%rbp)
jl     11bb <Desytki+0x9b>
cmpl   $0x1d,-0x4(%rbp)
jg     11bb <Desytki+0x9b>
mov    -0x50(%rbp),%rsi
lea    0xe64(%rip),%rdi
call   1030 <printf@plt>
jmp    1646 <Desytki+0x526>
cmpl   $0x1e,-0x4(%rbp)
jl     11e4 <Desytki+0xc4>
cmpl   $0x27,-0x4(%rbp)
jg     11e4 <Desytki+0xc4>
mov    -0x48(%rbp),%rsi
lea    0xe3b(%rip),%rdi
call   1030 <printf@plt>
jmp    1641 <Desytki+0x521>
cmpl   $0x28,-0x4(%rbp)
jl     120d <Desytki+0xed>
cmpl   $0x31,-0x4(%rbp)
jg     120d <Desytki+0xed>
mov    -0x40(%rbp),%rsi
lea    0xe12(%rip),%rdi
call   1030 <printf@plt>
jmp    163c <Desytki+0x51c>
cmpl   $0x32,-0x4(%rbp)
jl     1236 <Desytki+0x116>
cmpl   $0x3b,-0x4(%rbp)
jg     1236 <Desytki+0x116>
mov    -0x38(%rbp),%rsi
lea    0xde9(%rip),%rdi
call   1030 <printf@plt>
jmp    1637 <Desytki+0x517>
cmpl   $0x3c,-0x4(%rbp)
jl     125f <Desytki+0x13f>
cmpl   $0x45,-0x4(%rbp)
jg     125f <Desytki+0x13f>
mov    -0x30(%rbp),%rsi
lea    0xdc0(%rip),%rdi
call   1030 <printf@plt>
jmp    1632 <Desytki+0x512>
cmpl   $0x46,-0x4(%rbp)
jl     1288 <Desytki+0x168>
cmpl   $0x4f,-0x4(%rbp)
jg     1288 <Desytki+0x168>
mov    -0x28(%rbp),%rsi
lea    0xd97(%rip),%rdi
call   1030 <printf@plt>
jmp    162d <Desytki+0x50d>
cmpl   $0x50,-0x4(%rbp)
jl     12b1 <Desytki+0x191>
cmpl   $0x59,-0x4(%rbp)
jg     12b1 <Desytki+0x191>
mov    -0x20(%rbp),%rsi
lea    0xd6e(%rip),%rdi
call   1030 <printf@plt>
jmp    1628 <Desytki+0x508>
cmpl   $0x5a,-0x4(%rbp)
jl     12da <Desytki+0x1ba>
cmpl   $0x63,-0x4(%rbp)
jg     12da <Desytki+0x1ba>
mov    -0x18(%rbp),%rsi
lea    0xd45(%rip),%rdi
call   1030 <printf@plt>
jmp    1623 <Desytki+0x503>
cmpl   $0x64,-0x4(%rbp)
jl     12ff <Desytki+0x1df>
cmpl   $0xc7,-0x4(%rbp)
jg     12ff <Desytki+0x1df>
mov    -0x4(%rbp),%eax
sub    $0x64,%eax
mov    %eax,-0x4(%rbp)
jmp    1140 <Desytki+0x20>
cmpl   $0xc8,-0x4(%rbp)
jl     1329 <Desytki+0x209>
cmpl   $0x12b,-0x4(%rbp)
jg     1329 <Desytki+0x209>
mov    -0x4(%rbp),%eax
sub    $0xc8,%eax
mov    %eax,-0x4(%rbp)
jmp    1140 <Desytki+0x20>
cmpl   $0x12c,-0x4(%rbp)
jl     1353 <Desytki+0x233>
cmpl   $0x18f,-0x4(%rbp)
jg     1353 <Desytki+0x233>
mov    -0x4(%rbp),%eax
sub    $0x12c,%eax
mov    %eax,-0x4(%rbp)
jmp    1140 <Desytki+0x20>
cmpl   $0x190,-0x4(%rbp)
jl     137d <Desytki+0x25d>
cmpl   $0x1f3,-0x4(%rbp)
jg     137d <Desytki+0x25d>
mov    -0x4(%rbp),%eax
sub    $0x190,%eax
mov    %eax,-0x4(%rbp)
jmp    1140 <Desytki+0x20>
cmpl   $0x1f4,-0x4(%rbp)
jl     13a7 <Desytki+0x287>
cmpl   $0x257,-0x4(%rbp)
jg     13a7 <Desytki+0x287>
mov    -0x4(%rbp),%eax
sub    $0x1f4,%eax
mov    %eax,-0x4(%rbp)
jmp    1140 <Desytki+0x20>
cmpl   $0x258,-0x4(%rbp)
jl     13d1 <Desytki+0x2b1>
cmpl   $0x2bb,-0x4(%rbp)
jg     13d1 <Desytki+0x2b1>
mov    -0x4(%rbp),%eax
sub    $0x258,%eax
mov    %eax,-0x4(%rbp)
jmp    1140 <Desytki+0x20>
cmpl   $0x2bc,-0x4(%rbp)
jl     13fb <Desytki+0x2db>
cmpl   $0x31f,-0x4(%rbp)
jg     13fb <Desytki+0x2db>
mov    -0x4(%rbp),%eax
sub    $0x2bc,%eax
mov    %eax,-0x4(%rbp)
jmp    1140 <Desytki+0x20>
cmpl   $0x320,-0x4(%rbp)
jl     1425 <Desytki+0x305>
cmpl   $0x383,-0x4(%rbp)
jg     1425 <Desytki+0x305>
mov    -0x4(%rbp),%eax
sub    $0x320,%eax
mov    %eax,-0x4(%rbp)
jmp    1140 <Desytki+0x20>
cmpl   $0x384,-0x4(%rbp)
jl     144f <Desytki+0x32f>
cmpl   $0x3e7,-0x4(%rbp)
jg     144f <Desytki+0x32f>
mov    -0x4(%rbp),%eax
sub    $0x384,%eax
mov    %eax,-0x4(%rbp)
jmp    1140 <Desytki+0x20>
cmpl   $0x3e8,-0x4(%rbp)
jl     1479 <Desytki+0x359>
cmpl   $0x7cf,-0x4(%rbp)
jg     1479 <Desytki+0x359>
mov    -0x4(%rbp),%eax
sub    $0x3e8,%eax
mov    %eax,-0x4(%rbp)
jmp    1140 <Desytki+0x20>
cmpl   $0x7d0,-0x4(%rbp)
jl     14a3 <Desytki+0x383>
cmpl   $0xbb7,-0x4(%rbp)
jg     14a3 <Desytki+0x383>
mov    -0x4(%rbp),%eax
sub    $0x7d0,%eax
mov    %eax,-0x4(%rbp)
jmp    1140 <Desytki+0x20>
cmpl   $0xbb8,-0x4(%rbp)
jl     14cd <Desytki+0x3ad>
cmpl   $0xf9f,-0x4(%rbp)
jg     14cd <Desytki+0x3ad>
mov    -0x4(%rbp),%eax
sub    $0xbb8,%eax
mov    %eax,-0x4(%rbp)
jmp    1140 <Desytki+0x20>
cmpl   $0xfa0,-0x4(%rbp)
jl     14f7 <Desytki+0x3d7>
cmpl   $0x1387,-0x4(%rbp)
jg     14f7 <Desytki+0x3d7>
mov    -0x4(%rbp),%eax
sub    $0xfa0,%eax
mov    %eax,-0x4(%rbp)
jmp    1140 <Desytki+0x20>
cmpl   $0x1388,-0x4(%rbp)
jl     1521 <Desytki+0x401>
cmpl   $0x176f,-0x4(%rbp)
jg     1521 <Desytki+0x401>
mov    -0x4(%rbp),%eax
sub    $0x1388,%eax
mov    %eax,-0x4(%rbp)
jmp    1140 <Desytki+0x20>
cmpl   $0x1770,-0x4(%rbp)
jl     154b <Desytki+0x42b>
cmpl   $0x1b57,-0x4(%rbp)
jg     154b <Desytki+0x42b>
mov    -0x4(%rbp),%eax
sub    $0x1770,%eax
mov    %eax,-0x4(%rbp)
jmp    1140 <Desytki+0x20>
cmpl   $0x1b58,-0x4(%rbp)
jl     1575 <Desytki+0x455>
cmpl   $0x1f3f,-0x4(%rbp)
jg     1575 <Desytki+0x455>
mov    -0x4(%rbp),%eax
sub    $0x1b58,%eax
mov    %eax,-0x4(%rbp)
jmp    1140 <Desytki+0x20>
cmpl   $0x1f40,-0x4(%rbp)
jl     159f <Desytki+0x47f>
cmpl   $0x2327,-0x4(%rbp)
jg     159f <Desytki+0x47f>
mov    -0x4(%rbp),%eax
sub    $0x1f40,%eax
mov    %eax,-0x4(%rbp)
jmp    1140 <Desytki+0x20>
cmpl   $0x2328,-0x4(%rbp)
jl     15c9 <Desytki+0x4a9>
cmpl   $0x270f,-0x4(%rbp)
jg     15c9 <Desytki+0x4a9>
mov    -0x4(%rbp),%eax
sub    $0x2328,%eax
mov    %eax,-0x4(%rbp)
jmp    1140 <Desytki+0x20>
jmp    15ce <Desytki+0x4ae>
jmp    15d3 <Desytki+0x4b3>
jmp    15d8 <Desytki+0x4b8>
jmp    15dd <Desytki+0x4bd>
jmp    15e2 <Desytki+0x4c2>
jmp    15e7 <Desytki+0x4c7>
jmp    15ec <Desytki+0x4cc>
jmp    15f1 <Desytki+0x4d1>
jmp    15f6 <Desytki+0x4d6>
jmp    15fb <Desytki+0x4db>
jmp    1600 <Desytki+0x4e0>
jmp    1605 <Desytki+0x4e5>
jmp    160a <Desytki+0x4ea>
jmp    160f <Desytki+0x4ef>
jmp    1614 <Desytki+0x4f4>
jmp    1619 <Desytki+0x4f9>
jmp    161e <Desytki+0x4fe>
jmp    1623 <Desytki+0x503>
jmp    1628 <Desytki+0x508>
jmp    162d <Desytki+0x50d>
jmp    1632 <Desytki+0x512>
jmp    1637 <Desytki+0x517>
jmp    163c <Desytki+0x51c>
jmp    1641 <Desytki+0x521>
jmp    1646 <Desytki+0x526>
jmp    164b <Desytki+0x52b>
jmp    1650 <Desytki+0x530>
add    $0x60,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<Desytki>:
push   %rbp
push   %r14
push   %rbx
lea    0xee5(%rip),%rsi
cmp    $0xa,%edi
jae    1130 <Desytki+0x20>
lea    0xeed(%rip),%rdi
pop    %rbx
pop    %r14
pop    %rbp
jmp    1030 <printf@plt>
lea    0xecb(%rip),%r8
lea    0xec6(%rip),%r9
lea    0xec1(%rip),%r10
lea    0xebc(%rip),%r11
lea    0xeb7(%rip),%r14
lea    0xeb2(%rip),%rdx
lea    0xead(%rip),%rax
lea    0xea8(%rip),%rbx
lea    0xea3(%rip),%rcx
jmp    1187 <Desytki+0x77>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
mov    %ebp,%edi
cmp    $0xa,%ebp
jb     1120 <Desytki+0x10>
lea    -0xa(%rdi),%ebp
cmp    $0xa,%ebp
jb     131c <Desytki+0x20c>
lea    -0x14(%rdi),%ebp
cmp    $0xa,%ebp
jb     1324 <Desytki+0x214>
lea    -0x1e(%rdi),%ebp
cmp    $0xa,%ebp
jb     132c <Desytki+0x21c>
lea    -0x28(%rdi),%ebp
cmp    $0xa,%ebp
jb     1334 <Desytki+0x224>
lea    -0x32(%rdi),%ebp
cmp    $0xa,%ebp
jb     133c <Desytki+0x22c>
lea    -0x3c(%rdi),%ebp
cmp    $0xa,%ebp
jb     1344 <Desytki+0x234>
lea    -0x46(%rdi),%ebp
cmp    $0xa,%ebp
jb     134c <Desytki+0x23c>
lea    -0x50(%rdi),%ebp
cmp    $0xa,%ebp
jb     1354 <Desytki+0x244>
lea    -0x5a(%rdi),%ebp
cmp    $0xa,%ebp
jb     135c <Desytki+0x24c>
lea    -0x64(%rdi),%ebp
cmp    $0x63,%ebp
jbe    1180 <Desytki+0x70>
lea    -0xc8(%rdi),%ebp
cmp    $0x64,%ebp
jb     1180 <Desytki+0x70>
lea    -0x12c(%rdi),%ebp
cmp    $0x64,%ebp
jb     1180 <Desytki+0x70>
lea    -0x190(%rdi),%ebp
cmp    $0x64,%ebp
jb     1180 <Desytki+0x70>
lea    -0x1f4(%rdi),%ebp
cmp    $0x64,%ebp
jb     1180 <Desytki+0x70>
lea    -0x258(%rdi),%ebp
cmp    $0x64,%ebp
jb     1180 <Desytki+0x70>
lea    -0x2bc(%rdi),%ebp
cmp    $0x64,%ebp
jb     1180 <Desytki+0x70>
lea    -0x320(%rdi),%ebp
cmp    $0x64,%ebp
jb     1180 <Desytki+0x70>
lea    -0x384(%rdi),%ebp
cmp    $0x64,%ebp
jb     1180 <Desytki+0x70>
lea    -0x3e8(%rdi),%ebp
cmp    $0x3e8,%ebp
jb     1180 <Desytki+0x70>
lea    -0x7d0(%rdi),%ebp
cmp    $0x3e8,%ebp
jb     1180 <Desytki+0x70>
lea    -0xbb8(%rdi),%ebp
cmp    $0x3e8,%ebp
jb     1180 <Desytki+0x70>
lea    -0xfa0(%rdi),%ebp
cmp    $0x3e8,%ebp
jb     1180 <Desytki+0x70>
lea    -0x1388(%rdi),%ebp
cmp    $0x3e8,%ebp
jb     1180 <Desytki+0x70>
lea    -0x1770(%rdi),%ebp
cmp    $0x3e8,%ebp
jb     1180 <Desytki+0x70>
lea    -0x1b58(%rdi),%ebp
cmp    $0x3e8,%ebp
jb     1180 <Desytki+0x70>
lea    -0x1f40(%rdi),%ebp
cmp    $0x3e8,%ebp
jb     1180 <Desytki+0x70>
add    $0xffffdcd8,%edi
mov    %edi,%ebp
cmp    $0x3e8,%edi
jb     1180 <Desytki+0x70>
pop    %rbx
pop    %r14
pop    %rbp
ret
mov    %r8,%rsi
jmp    1120 <Desytki+0x10>
mov    %r9,%rsi
jmp    1120 <Desytki+0x10>
mov    %r10,%rsi
jmp    1120 <Desytki+0x10>
mov    %r11,%rsi
jmp    1120 <Desytki+0x10>
mov    %r14,%rsi
jmp    1120 <Desytki+0x10>
mov    %rdx,%rsi
jmp    1120 <Desytki+0x10>
mov    %rax,%rsi
jmp    1120 <Desytki+0x10>
mov    %rbx,%rsi
jmp    1120 <Desytki+0x10>
mov    %rcx,%rsi
jmp    1120 <Desytki+0x10>

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

LLVM IR (-O2):
@.str = [2 x i8] c"0\00"
@.str.1 = [2 x i8] c"1\00"
@.str.2 = [2 x i8] c"2\00"
@.str.3 = [2 x i8] c"3\00"
@.str.4 = [2 x i8] c"4\00"
@.str.5 = [2 x i8] c"5\00"
@.str.6 = [2 x i8] c"6\00"
@.str.7 = [2 x i8] c"7\00"
@.str.8 = [2 x i8] c"8\00"
@.str.9 = [2 x i8] c"9\00"
@.str.11 = [4 x i8] c" %s\00"
define void @Desytki(i32 %0) {
%2 = icmp ult i32 %0, 10
br i1 %2, label %88, label %3
3: ; preds = %1, %34
%4 = phi i32 [ %35, %34 ], [ %0, %1 ]
%5 = add i32 %4, -10
%6 = icmp ult i32 %5, 10
br i1 %6, label %88, label %7
7: ; preds = %3
%8 = add i32 %4, -20
%9 = icmp ult i32 %8, 10
br i1 %9, label %88, label %10
10: ; preds = %7
%11 = add i32 %4, -30
%12 = icmp ult i32 %11, 10
br i1 %12, label %88, label %13
13: ; preds = %10
%14 = add i32 %4, -40
%15 = icmp ult i32 %14, 10
br i1 %15, label %88, label %16
16: ; preds = %13
%17 = add i32 %4, -50
%18 = icmp ult i32 %17, 10
br i1 %18, label %88, label %19
19: ; preds = %16
%20 = add i32 %4, -60
%21 = icmp ult i32 %20, 10
br i1 %21, label %88, label %22
22: ; preds = %19
%23 = add i32 %4, -70
%24 = icmp ult i32 %23, 10
br i1 %24, label %88, label %25
25: ; preds = %22
%26 = add i32 %4, -80
%27 = icmp ult i32 %26, 10
br i1 %27, label %88, label %28
28: ; preds = %25
%29 = add i32 %4, -90
%30 = icmp ult i32 %29, 10
br i1 %30, label %88, label %31
31: ; preds = %28
%32 = add i32 %4, -100
%33 = icmp ult i32 %32, 100
br i1 %33, label %34, label %37
34: ; preds = %31, %37, %40, %43, %46, %49, %52, %55, %58, %61, %64, %67, %70, %73, %76, %79, %82, %85
%35 = phi i32 [ %32, %31 ], [ %38, %37 ], [ %41, %40 ], [ %44, %43 ], [ %47, %46 ], [ %50, %49 ], [ %53, %52 ], [ %56, %55 ], [ %59, %58 ], [ %62, %61 ], [ %65, %64 ], [ %68, %67 ], [ %71, %70 ], [ %74, %73 ], [ %77, %76 ], [ %80, %79 ], [ %83, %82 ], [ %86, %85 ]
%36 = icmp ult i32 %35, 10
br i1 %36, label %88, label %3
37: ; preds = %31
%38 = add i32 %4, -200
%39 = icmp ult i32 %38, 100
br i1 %39, label %34, label %40
40: ; preds = %37
%41 = add i32 %4, -300
%42 = icmp ult i32 %41, 100
br i1 %42, label %34, label %43
43: ; preds = %40
%44 = add i32 %4, -400
%45 = icmp ult i32 %44, 100
br i1 %45, label %34, label %46
46: ; preds = %43
%47 = add i32 %4, -500
%48 = icmp ult i32 %47, 100
br i1 %48, label %34, label %49
49: ; preds = %46
%50 = add i32 %4, -600
%51 = icmp ult i32 %50, 100
br i1 %51, label %34, label %52
52: ; preds = %49
%53 = add i32 %4, -700
%54 = icmp ult i32 %53, 100
br i1 %54, label %34, label %55
55: ; preds = %52
%56 = add i32 %4, -800
%57 = icmp ult i32 %56, 100
br i1 %57, label %34, label %58
58: ; preds = %55
%59 = add i32 %4, -900
%60 = icmp ult i32 %59, 100
br i1 %60, label %34, label %61
61: ; preds = %58
%62 = add i32 %4, -1000
%63 = icmp ult i32 %62, 1000
br i1 %63, label %34, label %64
64: ; preds = %61
%65 = add i32 %4, -2000
%66 = icmp ult i32 %65, 1000
br i1 %66, label %34, label %67
67: ; preds = %64
%68 = add i32 %4, -3000
%69 = icmp ult i32 %68, 1000
br i1 %69, label %34, label %70
70: ; preds = %67
%71 = add i32 %4, -4000
%72 = icmp ult i32 %71, 1000
br i1 %72, label %34, label %73
73: ; preds = %70
%74 = add i32 %4, -5000
%75 = icmp ult i32 %74, 1000
br i1 %75, label %34, label %76
76: ; preds = %73
%77 = add i32 %4, -6000
%78 = icmp ult i32 %77, 1000
br i1 %78, label %34, label %79
79: ; preds = %76
%80 = add i32 %4, -7000
%81 = icmp ult i32 %80, 1000
br i1 %81, label %34, label %82
82: ; preds = %79
%83 = add i32 %4, -8000
%84 = icmp ult i32 %83, 1000
br i1 %84, label %34, label %85
85: ; preds = %82
%86 = add i32 %4, -9000
%87 = icmp ult i32 %86, 1000
br i1 %87, label %34, label %91
88: ; preds = %28, %25, %22, %19, %16, %13, %10, %7, %3, %34, %1
%89 = phi i32* [ bitcast ([2 x i8]* @.str to i32*), %1 ], [ bitcast ([2 x i8]* @.str to i32*), %34 ], [ bitcast ([2 x i8]* @.str.1 to i32*), %3 ], [ bitcast ([2 x i8]* @.str.2 to i32*), %7 ], [ bitcast ([2 x i8]* @.str.3 to i32*), %10 ], [ bitcast ([2 x i8]* @.str.4 to i32*), %13 ], [ bitcast ([2 x i8]* @.str.5 to i32*), %16 ], [ bitcast ([2 x i8]* @.str.6 to i32*), %19 ], [ bitcast ([2 x i8]* @.str.7 to i32*), %22 ], [ bitcast ([2 x i8]* @.str.8 to i32*), %25 ], [ bitcast ([2 x i8]* @.str.9 to i32*), %28 ]
%90 = tail call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.11, i64 0, i64 0), i32* %89)
br label %91
91: ; preds = %85, %88
ret void
}