#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 */
char *calloc(int, int);
char *init_set(int *set_len, int id_set) {
  char *set, c;
  int i;
  set = NULL;
  switch (id_set) {
  case 1:
    c = 'a';
    *set_len = 26;
    set = calloc(*set_len, sizeof(char));
    for (i = 0; i < *set_len; i++) {
      set[i] = c++;
    }
    break;
  case 2:
    c = 'A';
    *set_len = 26;
    set = calloc(*set_len, sizeof(char));
    for (i = 0; i < *set_len; i++) {
      set[i] = c++;
    }
    break;
  case 3:
    c = '0';
    *set_len = 10;
    set = calloc(*set_len, sizeof(char));
    for (i = 0; i < *set_len; i++) {
      set[i] = c++;
    }
    break;
  case 4:
    *set_len = 52;
    set = calloc(*set_len, sizeof(char));
    c = 'A';
    for (i = 0; i < 26; i++) {
      set[i] = c++;
    }
    c = 'a';
    for (i = 26; i < 52; i++) {
      set[i] = c++;
    }
    break;
  case 5:
    *set_len = 36;
    c = '0';
    set = calloc(*set_len, sizeof(char));
    for (i = 0; i <= 9; i++) {
      set[i] = c++;
    }
    c = 'a';
    for (i = 10; i < 36; i++) {
      set[i] = c++;
    }
    break;
  case 6:
    *set_len = 62;
    c = '0';
    set = calloc(*set_len, sizeof(char));
    for (i = 0; i <= 9; i++) {
      set[i] = c++;
    }
    c = 'A';
    for (i = 10; i < 36; i++) {
      set[i] = c++;
    }
    c = 'a';
    for (i = 36; i < 62; i++) {
      set[i] = c++;
    }
    break;
  case 7:
    *set_len = 95;
    set = calloc(*set_len, sizeof(char));
    c = ' ';
    for (i = 0; i < 95; i++) {
      set[i] = c++;
    }
    break;
  }
  return set;
}


x86 assembly (clang, -O0):
<init_set>:
push   %rbp
mov    %rsp,%rbp
sub    $0x30,%rsp
mov    %rdi,-0x8(%rbp)
mov    %esi,-0xc(%rbp)
movq   $0x0,-0x18(%rbp)
mov    -0xc(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,%ecx
mov    %rcx,-0x28(%rbp)
sub    $0x6,%eax
ja     14bc <init_set+0x3ac>
mov    -0x28(%rbp),%rax
lea    0xeb9(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movb   $0x61,-0x19(%rbp)
mov    -0x8(%rbp),%rax
movl   $0x1a,(%rax)
mov    -0x8(%rbp),%rax
mov    (%rax),%edi
mov    $0x1,%esi
call   1030 <calloc@plt>
mov    %rax,-0x18(%rbp)
movl   $0x0,-0x20(%rbp)
mov    -0x20(%rbp),%eax
mov    -0x8(%rbp),%rcx
cmp    (%rcx),%eax
jge    11ab <init_set+0x9b>
mov    -0x19(%rbp),%dl
mov    %dl,%al
add    $0x1,%al
mov    %al,-0x19(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    1179 <init_set+0x69>
jmp    14bc <init_set+0x3ac>
movb   $0x41,-0x19(%rbp)
mov    -0x8(%rbp),%rax
movl   $0x1a,(%rax)
mov    -0x8(%rbp),%rax
mov    (%rax),%edi
mov    $0x1,%esi
call   1030 <calloc@plt>
mov    %rax,-0x18(%rbp)
movl   $0x0,-0x20(%rbp)
mov    -0x20(%rbp),%eax
mov    -0x8(%rbp),%rcx
cmp    (%rcx),%eax
jge    120b <init_set+0xfb>
mov    -0x19(%rbp),%dl
mov    %dl,%al
add    $0x1,%al
mov    %al,-0x19(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    11d9 <init_set+0xc9>
jmp    14bc <init_set+0x3ac>
movb   $0x30,-0x19(%rbp)
mov    -0x8(%rbp),%rax
movl   $0xa,(%rax)
mov    -0x8(%rbp),%rax
mov    (%rax),%edi
mov    $0x1,%esi
call   1030 <calloc@plt>
mov    %rax,-0x18(%rbp)
movl   $0x0,-0x20(%rbp)
mov    -0x20(%rbp),%eax
mov    -0x8(%rbp),%rcx
cmp    (%rcx),%eax
jge    126b <init_set+0x15b>
mov    -0x19(%rbp),%dl
mov    %dl,%al
add    $0x1,%al
mov    %al,-0x19(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    1239 <init_set+0x129>
jmp    14bc <init_set+0x3ac>
mov    -0x8(%rbp),%rax
movl   $0x34,(%rax)
mov    -0x8(%rbp),%rax
mov    (%rax),%edi
mov    $0x1,%esi
call   1030 <calloc@plt>
mov    %rax,-0x18(%rbp)
movb   $0x41,-0x19(%rbp)
movl   $0x0,-0x20(%rbp)
cmpl   $0x1a,-0x20(%rbp)
jge    12c6 <init_set+0x1b6>
mov    -0x19(%rbp),%dl
mov    %dl,%al
add    $0x1,%al
mov    %al,-0x19(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    1299 <init_set+0x189>
movb   $0x61,-0x19(%rbp)
movl   $0x1a,-0x20(%rbp)
cmpl   $0x34,-0x20(%rbp)
jge    12fe <init_set+0x1ee>
mov    -0x19(%rbp),%dl
mov    %dl,%al
add    $0x1,%al
mov    %al,-0x19(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    12d1 <init_set+0x1c1>
jmp    14bc <init_set+0x3ac>
mov    -0x8(%rbp),%rax
movl   $0x24,(%rax)
movb   $0x30,-0x19(%rbp)
mov    -0x8(%rbp),%rax
mov    (%rax),%edi
mov    $0x1,%esi
call   1030 <calloc@plt>
mov    %rax,-0x18(%rbp)
movl   $0x0,-0x20(%rbp)
cmpl   $0x9,-0x20(%rbp)
jg     1359 <init_set+0x249>
mov    -0x19(%rbp),%dl
mov    %dl,%al
add    $0x1,%al
mov    %al,-0x19(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    132c <init_set+0x21c>
movb   $0x61,-0x19(%rbp)
movl   $0xa,-0x20(%rbp)
cmpl   $0x24,-0x20(%rbp)
jge    1391 <init_set+0x281>
mov    -0x19(%rbp),%dl
mov    %dl,%al
add    $0x1,%al
mov    %al,-0x19(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    1364 <init_set+0x254>
jmp    14bc <init_set+0x3ac>
mov    -0x8(%rbp),%rax
movl   $0x3e,(%rax)
movb   $0x30,-0x19(%rbp)
mov    -0x8(%rbp),%rax
mov    (%rax),%edi
mov    $0x1,%esi
call   1030 <calloc@plt>
mov    %rax,-0x18(%rbp)
movl   $0x0,-0x20(%rbp)
cmpl   $0x9,-0x20(%rbp)
jg     13ec <init_set+0x2dc>
mov    -0x19(%rbp),%dl
mov    %dl,%al
add    $0x1,%al
mov    %al,-0x19(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    13bf <init_set+0x2af>
movb   $0x41,-0x19(%rbp)
movl   $0xa,-0x20(%rbp)
cmpl   $0x24,-0x20(%rbp)
jge    1424 <init_set+0x314>
mov    -0x19(%rbp),%dl
mov    %dl,%al
add    $0x1,%al
mov    %al,-0x19(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    13f7 <init_set+0x2e7>
movb   $0x61,-0x19(%rbp)
movl   $0x24,-0x20(%rbp)
cmpl   $0x3e,-0x20(%rbp)
jge    145c <init_set+0x34c>
mov    -0x19(%rbp),%dl
mov    %dl,%al
add    $0x1,%al
mov    %al,-0x19(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    142f <init_set+0x31f>
jmp    14bc <init_set+0x3ac>
mov    -0x8(%rbp),%rax
movl   $0x5f,(%rax)
mov    -0x8(%rbp),%rax
mov    (%rax),%edi
mov    $0x1,%esi
call   1030 <calloc@plt>
mov    %rax,-0x18(%rbp)
movb   $0x20,-0x19(%rbp)
movl   $0x0,-0x20(%rbp)
cmpl   $0x5f,-0x20(%rbp)
jge    14b7 <init_set+0x3a7>
mov    -0x19(%rbp),%dl
mov    %dl,%al
add    $0x1,%al
mov    %al,-0x19(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    148a <init_set+0x37a>
jmp    14bc <init_set+0x3ac>
mov    -0x18(%rbp),%rax
add    $0x30,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<init_set>:
push   %rax
add    $0xffffffff,%esi
cmp    $0x6,%esi
ja     115e <init_set+0x4e>
lea    0xfb0(%rip),%rax
movslq (%rax,%rsi,4),%rcx
add    %rax,%rcx
jmp    *%rcx
movl   $0x1a,(%rdi)
mov    $0x1a,%edi
mov    $0x1,%esi
call   1030 <calloc@plt>
movaps 0xf7b(%rip),%xmm0
movups %xmm0,(%rax)
movabs $0x7877767574737271,%rcx
76 77 78
mov    %rcx,0x10(%rax)
movw   $0x7a79,0x18(%rax)
pop    %rcx
ret
xor    %eax,%eax
pop    %rcx
ret
movl   $0x1a,(%rdi)
mov    $0x1a,%edi
mov    $0x1,%esi
call   1030 <calloc@plt>
movaps 0xf22(%rip),%xmm0
movups %xmm0,(%rax)
movabs $0x5857565554535251,%rcx
56 57 58
mov    %rcx,0x10(%rax)
movw   $0x5a59,0x18(%rax)
pop    %rcx
ret
movl   $0xa,(%rdi)
mov    $0xa,%edi
mov    $0x1,%esi
call   1030 <calloc@plt>
movabs $0x3736353433323130,%rcx
35 36 37
mov    %rcx,(%rax)
movw   $0x3938,0x8(%rax)
pop    %rcx
ret
movl   $0x34,(%rdi)
mov    $0x34,%edi
mov    $0x1,%esi
call   1030 <calloc@plt>
movaps 0xec3(%rip),%xmm0
movups %xmm0,(%rax)
movaps 0xec9(%rip),%xmm0
movups %xmm0,0x10(%rax)
movaps 0xe9e(%rip),%xmm0
movups %xmm0,0x20(%rax)
movl   $0x7a797877,0x30(%rax)
pop    %rcx
ret
movl   $0x24,(%rdi)
mov    $0x24,%edi
mov    $0x1,%esi
call   1030 <calloc@plt>
movaps 0xe65(%rip),%xmm0
movups %xmm0,(%rax)
movaps 0xe6b(%rip),%xmm0
movups %xmm0,0x10(%rax)
movl   $0x7a797877,0x20(%rax)
pop    %rcx
ret
movl   $0x3e,(%rdi)
mov    $0x3e,%edi
mov    $0x1,%esi
call   1030 <calloc@plt>
movaps 0xe02(%rip),%xmm0
movups %xmm0,(%rax)
movaps 0xe08(%rip),%xmm0
movups %xmm0,0x10(%rax)
movaps 0xe0d(%rip),%xmm0
movups %xmm0,0x20(%rax)
movabs $0x74737271706f6e6d,%rcx
72 73 74
mov    %rcx,0x30(%rax)
movl   $0x78777675,0x38(%rax)
movw   $0x7a79,0x3c(%rax)
pop    %rcx
ret
movl   $0x5f,(%rdi)
mov    $0x5f,%edi
mov    $0x1,%esi
call   1030 <calloc@plt>
movaps 0xd60(%rip),%xmm0
movups %xmm0,(%rax)
movaps 0xd66(%rip),%xmm0
movups %xmm0,0x10(%rax)
movaps 0xd6b(%rip),%xmm0
movups %xmm0,0x20(%rax)
movaps 0xd70(%rip),%xmm0
movups %xmm0,0x30(%rax)
movaps 0xd75(%rip),%xmm0
movups %xmm0,0x40(%rax)
movabs $0x7776757473727170,%rcx
75 76 77
mov    %rcx,0x50(%rax)
movl   $0x7b7a7978,0x58(%rax)
movw   $0x7d7c,0x5c(%rax)
movb   $0x7e,0x5e(%rax)
pop    %rcx
ret

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

LLVM IR (-O2):
define noalias i8* @init_set(i32* nocapture %0, i32 %1) {
switch i32 %1, label %107 [
i32 1, label %3
i32 2, label %16
i32 3, label %29
i32 4, label %40
i32 5, label %51
i32 6, label %60
i32 7, label %81
]
3: ; preds = %2
store i32 26, i32* %0
%4 = tail call dereferenceable_or_null(26) i8* @calloc(i32 26, i32 1)
%5 = bitcast i8* %4 to <16 x i8>*
store <16 x i8> <i8 97, i8 98, i8 99, i8 100, i8 101, i8 102, i8 103, i8 104, i8 105, i8 106, i8 107, i8 108, i8 109, i8 110, i8 111, i8 112>, <16 x i8>* %5
%6 = getelementptr inbounds i8, i8* %4, i64 16
store i8 113, i8* %6
%7 = getelementptr inbounds i8, i8* %4, i64 17
store i8 114, i8* %7
%8 = getelementptr inbounds i8, i8* %4, i64 18
store i8 115, i8* %8
%9 = getelementptr inbounds i8, i8* %4, i64 19
store i8 116, i8* %9
%10 = getelementptr inbounds i8, i8* %4, i64 20
store i8 117, i8* %10
%11 = getelementptr inbounds i8, i8* %4, i64 21
store i8 118, i8* %11
%12 = getelementptr inbounds i8, i8* %4, i64 22
store i8 119, i8* %12
%13 = getelementptr inbounds i8, i8* %4, i64 23
store i8 120, i8* %13
%14 = getelementptr inbounds i8, i8* %4, i64 24
store i8 121, i8* %14
%15 = getelementptr inbounds i8, i8* %4, i64 25
store i8 122, i8* %15
br label %107
16: ; preds = %2
store i32 26, i32* %0
%17 = tail call dereferenceable_or_null(26) i8* @calloc(i32 26, i32 1)
%18 = bitcast i8* %17 to <16 x i8>*
store <16 x i8> <i8 65, i8 66, i8 67, i8 68, i8 69, i8 70, i8 71, i8 72, i8 73, i8 74, i8 75, i8 76, i8 77, i8 78, i8 79, i8 80>, <16 x i8>* %18
%19 = getelementptr inbounds i8, i8* %17, i64 16
store i8 81, i8* %19
%20 = getelementptr inbounds i8, i8* %17, i64 17
store i8 82, i8* %20
%21 = getelementptr inbounds i8, i8* %17, i64 18
store i8 83, i8* %21
%22 = getelementptr inbounds i8, i8* %17, i64 19
store i8 84, i8* %22
%23 = getelementptr inbounds i8, i8* %17, i64 20
store i8 85, i8* %23
%24 = getelementptr inbounds i8, i8* %17, i64 21
store i8 86, i8* %24
%25 = getelementptr inbounds i8, i8* %17, i64 22
store i8 87, i8* %25
%26 = getelementptr inbounds i8, i8* %17, i64 23
store i8 88, i8* %26
%27 = getelementptr inbounds i8, i8* %17, i64 24
store i8 89, i8* %27
%28 = getelementptr inbounds i8, i8* %17, i64 25
store i8 90, i8* %28
br label %107
29: ; preds = %2
store i32 10, i32* %0
%30 = tail call dereferenceable_or_null(10) i8* @calloc(i32 10, i32 1)
store i8 48, i8* %30
%31 = getelementptr inbounds i8, i8* %30, i64 1
store i8 49, i8* %31
%32 = getelementptr inbounds i8, i8* %30, i64 2
store i8 50, i8* %32
%33 = getelementptr inbounds i8, i8* %30, i64 3
store i8 51, i8* %33
%34 = getelementptr inbounds i8, i8* %30, i64 4
store i8 52, i8* %34
%35 = getelementptr inbounds i8, i8* %30, i64 5
store i8 53, i8* %35
%36 = getelementptr inbounds i8, i8* %30, i64 6
store i8 54, i8* %36
%37 = getelementptr inbounds i8, i8* %30, i64 7
store i8 55, i8* %37
%38 = getelementptr inbounds i8, i8* %30, i64 8
store i8 56, i8* %38
%39 = getelementptr inbounds i8, i8* %30, i64 9
store i8 57, i8* %39
br label %107
40: ; preds = %2
store i32 52, i32* %0
%41 = tail call dereferenceable_or_null(52) i8* @calloc(i32 52, i32 1)
%42 = bitcast i8* %41 to <16 x i8>*
store <16 x i8> <i8 65, i8 66, i8 67, i8 68, i8 69, i8 70, i8 71, i8 72, i8 73, i8 74, i8 75, i8 76, i8 77, i8 78, i8 79, i8 80>, <16 x i8>* %42
%43 = getelementptr inbounds i8, i8* %41, i64 16
%44 = bitcast i8* %43 to <16 x i8>*
store <16 x i8> <i8 81, i8 82, i8 83, i8 84, i8 85, i8 86, i8 87, i8 88, i8 89, i8 90, i8 97, i8 98, i8 99, i8 100, i8 101, i8 102>, <16 x i8>* %44
%45 = getelementptr inbounds i8, i8* %41, i64 32
%46 = bitcast i8* %45 to <16 x i8>*
store <16 x i8> <i8 103, i8 104, i8 105, i8 106, i8 107, i8 108, i8 109, i8 110, i8 111, i8 112, i8 113, i8 114, i8 115, i8 116, i8 117, i8 118>, <16 x i8>* %46
%47 = getelementptr inbounds i8, i8* %41, i64 48
store i8 119, i8* %47
%48 = getelementptr inbounds i8, i8* %41, i64 49
store i8 120, i8* %48
%49 = getelementptr inbounds i8, i8* %41, i64 50
store i8 121, i8* %49
%50 = getelementptr inbounds i8, i8* %41, i64 51
store i8 122, i8* %50
br label %107
51: ; preds = %2
store i32 36, i32* %0
%52 = tail call dereferenceable_or_null(36) i8* @calloc(i32 36, i32 1)
%53 = bitcast i8* %52 to <16 x i8>*
store <16 x i8> <i8 48, i8 49, i8 50, i8 51, i8 52, i8 53, i8 54, i8 55, i8 56, i8 57, i8 97, i8 98, i8 99, i8 100, i8 101, i8 102>, <16 x i8>* %53
%54 = getelementptr inbounds i8, i8* %52, i64 16
%55 = bitcast i8* %54 to <16 x i8>*
store <16 x i8> <i8 103, i8 104, i8 105, i8 106, i8 107, i8 108, i8 109, i8 110, i8 111, i8 112, i8 113, i8 114, i8 115, i8 116, i8 117, i8 118>, <16 x i8>* %55
%56 = getelementptr inbounds i8, i8* %52, i64 32
store i8 119, i8* %56
%57 = getelementptr inbounds i8, i8* %52, i64 33
store i8 120, i8* %57
%58 = getelementptr inbounds i8, i8* %52, i64 34
store i8 121, i8* %58
%59 = getelementptr inbounds i8, i8* %52, i64 35
store i8 122, i8* %59
br label %107
60: ; preds = %2
store i32 62, i32* %0
%61 = tail call dereferenceable_or_null(62) i8* @calloc(i32 62, i32 1)
%62 = bitcast i8* %61 to <16 x i8>*
store <16 x i8> <i8 48, i8 49, i8 50, i8 51, i8 52, i8 53, i8 54, i8 55, i8 56, i8 57, i8 65, i8 66, i8 67, i8 68, i8 69, i8 70>, <16 x i8>* %62
%63 = getelementptr inbounds i8, i8* %61, i64 16
%64 = bitcast i8* %63 to <16 x i8>*
store <16 x i8> <i8 71, i8 72, i8 73, i8 74, i8 75, i8 76, i8 77, i8 78, i8 79, i8 80, i8 81, i8 82, i8 83, i8 84, i8 85, i8 86>, <16 x i8>* %64
%65 = getelementptr inbounds i8, i8* %61, i64 32
%66 = bitcast i8* %65 to <16 x i8>*
store <16 x i8> <i8 87, i8 88, i8 89, i8 90, i8 97, i8 98, i8 99, i8 100, i8 101, i8 102, i8 103, i8 104, i8 105, i8 106, i8 107, i8 108>, <16 x i8>* %66
%67 = getelementptr inbounds i8, i8* %61, i64 48
store i8 109, i8* %67
%68 = getelementptr inbounds i8, i8* %61, i64 49
store i8 110, i8* %68
%69 = getelementptr inbounds i8, i8* %61, i64 50
store i8 111, i8* %69
%70 = getelementptr inbounds i8, i8* %61, i64 51
store i8 112, i8* %70
%71 = getelementptr inbounds i8, i8* %61, i64 52
store i8 113, i8* %71
%72 = getelementptr inbounds i8, i8* %61, i64 53
store i8 114, i8* %72
%73 = getelementptr inbounds i8, i8* %61, i64 54
store i8 115, i8* %73
%74 = getelementptr inbounds i8, i8* %61, i64 55
store i8 116, i8* %74
%75 = getelementptr inbounds i8, i8* %61, i64 56
store i8 117, i8* %75
%76 = getelementptr inbounds i8, i8* %61, i64 57
store i8 118, i8* %76
%77 = getelementptr inbounds i8, i8* %61, i64 58
store i8 119, i8* %77
%78 = getelementptr inbounds i8, i8* %61, i64 59
store i8 120, i8* %78
%79 = getelementptr inbounds i8, i8* %61, i64 60
store i8 121, i8* %79
%80 = getelementptr inbounds i8, i8* %61, i64 61
store i8 122, i8* %80
br label %107
81: ; preds = %2
store i32 95, i32* %0
%82 = tail call dereferenceable_or_null(95) i8* @calloc(i32 95, i32 1)
%83 = bitcast i8* %82 to <16 x i8>*
store <16 x i8> <i8 32, i8 33, i8 34, i8 35, i8 36, i8 37, i8 38, i8 39, i8 40, i8 41, i8 42, i8 43, i8 44, i8 45, i8 46, i8 47>, <16 x i8>* %83
%84 = getelementptr inbounds i8, i8* %82, i64 16
%85 = bitcast i8* %84 to <16 x i8>*
store <16 x i8> <i8 48, i8 49, i8 50, i8 51, i8 52, i8 53, i8 54, i8 55, i8 56, i8 57, i8 58, i8 59, i8 60, i8 61, i8 62, i8 63>, <16 x i8>* %85
%86 = getelementptr inbounds i8, i8* %82, i64 32
%87 = bitcast i8* %86 to <16 x i8>*
store <16 x i8> <i8 64, i8 65, i8 66, i8 67, i8 68, i8 69, i8 70, i8 71, i8 72, i8 73, i8 74, i8 75, i8 76, i8 77, i8 78, i8 79>, <16 x i8>* %87
%88 = getelementptr inbounds i8, i8* %82, i64 48
%89 = bitcast i8* %88 to <16 x i8>*
store <16 x i8> <i8 80, i8 81, i8 82, i8 83, i8 84, i8 85, i8 86, i8 87, i8 88, i8 89, i8 90, i8 91, i8 92, i8 93, i8 94, i8 95>, <16 x i8>* %89
%90 = getelementptr inbounds i8, i8* %82, i64 64
%91 = bitcast i8* %90 to <16 x i8>*
store <16 x i8> <i8 96, i8 97, i8 98, i8 99, i8 100, i8 101, i8 102, i8 103, i8 104, i8 105, i8 106, i8 107, i8 108, i8 109, i8 110, i8 111>, <16 x i8>* %91
%92 = getelementptr inbounds i8, i8* %82, i64 80
store i8 112, i8* %92
%93 = getelementptr inbounds i8, i8* %82, i64 81
store i8 113, i8* %93
%94 = getelementptr inbounds i8, i8* %82, i64 82
store i8 114, i8* %94
%95 = getelementptr inbounds i8, i8* %82, i64 83
store i8 115, i8* %95
%96 = getelementptr inbounds i8, i8* %82, i64 84
store i8 116, i8* %96
%97 = getelementptr inbounds i8, i8* %82, i64 85
store i8 117, i8* %97
%98 = getelementptr inbounds i8, i8* %82, i64 86
store i8 118, i8* %98
%99 = getelementptr inbounds i8, i8* %82, i64 87
store i8 119, i8* %99
%100 = getelementptr inbounds i8, i8* %82, i64 88
store i8 120, i8* %100
%101 = getelementptr inbounds i8, i8* %82, i64 89
store i8 121, i8* %101
%102 = getelementptr inbounds i8, i8* %82, i64 90
store i8 122, i8* %102
%103 = getelementptr inbounds i8, i8* %82, i64 91
store i8 123, i8* %103
%104 = getelementptr inbounds i8, i8* %82, i64 92
store i8 124, i8* %104
%105 = getelementptr inbounds i8, i8* %82, i64 93
store i8 125, i8* %105
%106 = getelementptr inbounds i8, i8* %82, i64 94
store i8 126, i8* %106
br label %107
107: ; preds = %81, %60, %51, %40, %29, %16, %3, %2
%108 = phi i8* [ null, %2 ], [ %4, %3 ], [ %17, %16 ], [ %30, %29 ], [ %41, %40 ], [ %52, %51 ], [ %61, %60 ], [ %82, %81 ]
ret i8* %108
}