#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*/ snprintf(char *, int, char *, ...);
char *find_sas_connector_type(int conn_type, char *buff, int buff_len) {
  switch (conn_type) {
  case 0x0:
    snprintf(buff, buff_len, "No information");
    break;
  case 0x1:
    snprintf(buff, buff_len,
             "SAS 4x receptacle (SFF-8470) "
             "[max 4 phys]");
    break;
  case 0x2:
    snprintf(buff, buff_len,
             "Mini SAS 4x receptacle (SFF-8088) "
             "[max 4 phys]");
    break;
  case 0xf:
    snprintf(buff, buff_len, "Vendor specific external connector");
    break;
  case 0x10:
    snprintf(buff, buff_len, "SAS 4i plug (SFF-8484) [max 4 phys]");
    break;
  case 0x11:
    snprintf(buff, buff_len,
             "Mini SAS 4i receptacle (SFF-8087) "
             "[max 4 phys]");
    break;
  case 0x20:
    snprintf(buff, buff_len,
             "SAS Drive backplane receptacle (SFF-8482) "
             "[max 2 phys]");
    break;
  case 0x21:
    snprintf(buff, buff_len, "SATA host plug [max 1 phy]");
    break;
  case 0x22:
    snprintf(buff, buff_len, "SAS Drive plug (SFF-8482) [max 2 phys]");
    break;
  case 0x23:
    snprintf(buff, buff_len, "SATA device plug [max 1 phy]");
    break;
  case 0x2f:
    snprintf(buff, buff_len, "SAS virtual connector [max 1 phy]");
    break;
  case 0x3f:
    snprintf(buff, buff_len, "Vendor specific internal connector");
    break;
  default:
    if (conn_type < 0x10)
      snprintf(buff, buff_len, "unknown external connector type: 0x%x",
               conn_type);
    else if (conn_type < 0x20)
      snprintf(buff, buff_len,
               "unknown internal wide connector type: "
               "0x%x",
               conn_type);
    else if (conn_type < 0x30)
      snprintf(buff, buff_len,
               "unknown internal connector to end "
               "device, type: 0x%x",
               conn_type);
    else if (conn_type < 0x70)
      snprintf(buff, buff_len, "reserved connector type: 0x%x", conn_type);
    else if (conn_type < 0x80)
      snprintf(buff, buff_len, "vendor specific connector type: 0x%x",
               conn_type);
    else
      snprintf(buff, buff_len, "unexpected connector type: 0x%x", conn_type);
    break;
  }
  return buff;
}


x86 assembly (clang, -O0):
<find_sas_connector_type>:
push   %rbp
mov    %rsp,%rbp
sub    $0x20,%rsp
mov    %edi,-0x4(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %edx,-0x14(%rbp)
mov    -0x4(%rbp),%eax
mov    %rax,-0x20(%rbp)
sub    $0x3f,%rax
ja     127f <find_sas_connector_type+0x16f>
mov    -0x20(%rbp),%rax
lea    0xec2(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x10(%rbp),%rdi
mov    -0x14(%rbp),%esi
lea    0xfab(%rip),%rdx
mov    $0x0,%al
call   1030 <snprintf@plt>
jmp    1376 <find_sas_connector_type+0x266>
mov    -0x10(%rbp),%rdi
mov    -0x14(%rbp),%esi
lea    0xfa0(%rip),%rdx
mov    $0x0,%al
call   1030 <snprintf@plt>
jmp    1376 <find_sas_connector_type+0x266>
mov    -0x10(%rbp),%rdi
mov    -0x14(%rbp),%esi
lea    0xfb0(%rip),%rdx
mov    $0x0,%al
call   1030 <snprintf@plt>
jmp    1376 <find_sas_connector_type+0x266>
mov    -0x10(%rbp),%rdi
mov    -0x14(%rbp),%esi
lea    0xfc5(%rip),%rdx
mov    $0x0,%al
call   1030 <snprintf@plt>
jmp    1376 <find_sas_connector_type+0x266>
mov    -0x10(%rbp),%rdi
mov    -0x14(%rbp),%esi
lea    0xfce(%rip),%rdx
mov    $0x0,%al
call   1030 <snprintf@plt>
jmp    1376 <find_sas_connector_type+0x266>
mov    -0x10(%rbp),%rdi
mov    -0x14(%rbp),%esi
lea    0xfd8(%rip),%rdx
mov    $0x0,%al
call   1030 <snprintf@plt>
jmp    1376 <find_sas_connector_type+0x266>
mov    -0x10(%rbp),%rdi
mov    -0x14(%rbp),%esi
lea    0xfed(%rip),%rdx
mov    $0x0,%al
call   1030 <snprintf@plt>
jmp    1376 <find_sas_connector_type+0x266>
mov    -0x10(%rbp),%rdi
mov    -0x14(%rbp),%esi
lea    0x100a(%rip),%rdx
mov    $0x0,%al
call   1030 <snprintf@plt>
jmp    1376 <find_sas_connector_type+0x266>
mov    -0x10(%rbp),%rdi
mov    -0x14(%rbp),%esi
lea    0x100b(%rip),%rdx
mov    $0x0,%al
call   1030 <snprintf@plt>
jmp    1376 <find_sas_connector_type+0x266>
mov    -0x10(%rbp),%rdi
mov    -0x14(%rbp),%esi
lea    0x1018(%rip),%rdx
mov    $0x0,%al
call   1030 <snprintf@plt>
jmp    1376 <find_sas_connector_type+0x266>
mov    -0x10(%rbp),%rdi
mov    -0x14(%rbp),%esi
lea    0x101b(%rip),%rdx
mov    $0x0,%al
call   1030 <snprintf@plt>
jmp    1376 <find_sas_connector_type+0x266>
mov    -0x10(%rbp),%rdi
mov    -0x14(%rbp),%esi
lea    0x1023(%rip),%rdx
mov    $0x0,%al
call   1030 <snprintf@plt>
jmp    1376 <find_sas_connector_type+0x266>
cmpl   $0x10,-0x4(%rbp)
jge    12a6 <find_sas_connector_type+0x196>
mov    -0x10(%rbp),%rdi
mov    -0x14(%rbp),%esi
mov    -0x4(%rbp),%ecx
lea    0x101f(%rip),%rdx
mov    $0x0,%al
call   1030 <snprintf@plt>
jmp    1371 <find_sas_connector_type+0x261>
cmpl   $0x20,-0x4(%rbp)
jge    12cd <find_sas_connector_type+0x1bd>
mov    -0x10(%rbp),%rdi
mov    -0x14(%rbp),%esi
mov    -0x4(%rbp),%ecx
lea    0x101e(%rip),%rdx
mov    $0x0,%al
call   1030 <snprintf@plt>
jmp    136c <find_sas_connector_type+0x25c>
cmpl   $0x30,-0x4(%rbp)
jge    12f4 <find_sas_connector_type+0x1e4>
mov    -0x10(%rbp),%rdi
mov    -0x14(%rbp),%esi
mov    -0x4(%rbp),%ecx
lea    0x1022(%rip),%rdx
mov    $0x0,%al
call   1030 <snprintf@plt>
jmp    1367 <find_sas_connector_type+0x257>
cmpl   $0x70,-0x4(%rbp)
jge    131b <find_sas_connector_type+0x20b>
mov    -0x10(%rbp),%rdi
mov    -0x14(%rbp),%esi
mov    -0x4(%rbp),%ecx
lea    0x1030(%rip),%rdx
mov    $0x0,%al
call   1030 <snprintf@plt>
jmp    1362 <find_sas_connector_type+0x252>
cmpl   $0x80,-0x4(%rbp)
jge    1345 <find_sas_connector_type+0x235>
mov    -0x10(%rbp),%rdi
mov    -0x14(%rbp),%esi
mov    -0x4(%rbp),%ecx
lea    0x1024(%rip),%rdx
mov    $0x0,%al
call   1030 <snprintf@plt>
jmp    135d <find_sas_connector_type+0x24d>
mov    -0x10(%rbp),%rdi
mov    -0x14(%rbp),%esi
mov    -0x4(%rbp),%ecx
lea    0x102c(%rip),%rdx
mov    $0x0,%al
call   1030 <snprintf@plt>
jmp    1362 <find_sas_connector_type+0x252>
jmp    1367 <find_sas_connector_type+0x257>
jmp    136c <find_sas_connector_type+0x25c>
jmp    1371 <find_sas_connector_type+0x261>
jmp    1376 <find_sas_connector_type+0x266>
mov    -0x10(%rbp),%rax
add    $0x20,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<find_sas_connector_type>:
push   %rbx
mov    %rsi,%rbx
mov    %edi,%ecx
cmp    $0x3f,%edi
ja     11af <find_sas_connector_type+0x9f>
mov    %ecx,%eax
lea    0xed8(%rip),%rsi
movslq (%rsi,%rax,4),%rax
add    %rsi,%rax
jmp    *%rax
lea    0xfc8(%rip),%rax
jmp    119b <find_sas_connector_type+0x8b>
lea    0xfce(%rip),%rax
jmp    119b <find_sas_connector_type+0x8b>
lea    0xfef(%rip),%rax
jmp    119b <find_sas_connector_type+0x8b>
lea    0x1015(%rip),%rax
jmp    119b <find_sas_connector_type+0x8b>
lea    0x102f(%rip),%rax
jmp    119b <find_sas_connector_type+0x8b>
lea    0x104a(%rip),%rax
jmp    119b <find_sas_connector_type+0x8b>
lea    0x1070(%rip),%rax
jmp    119b <find_sas_connector_type+0x8b>
lea    0x109e(%rip),%rax
jmp    119b <find_sas_connector_type+0x8b>
lea    0x10b0(%rip),%rax
jmp    119b <find_sas_connector_type+0x8b>
lea    0x10ce(%rip),%rax
jmp    119b <find_sas_connector_type+0x8b>
lea    0x10e2(%rip),%rax
jmp    119b <find_sas_connector_type+0x8b>
lea    0x10fb(%rip),%rax
mov    %rbx,%rdi
mov    %edx,%esi
mov    %rax,%rdx
xor    %eax,%eax
call   1030 <snprintf@plt>
mov    %rbx,%rax
pop    %rbx
ret
cmp    $0xf,%ecx
jg     11bd <find_sas_connector_type+0xad>
lea    0x10fe(%rip),%rax
jmp    11fc <find_sas_connector_type+0xec>
cmp    $0x1f,%ecx
ja     11cb <find_sas_connector_type+0xbb>
lea    0x1116(%rip),%rax
jmp    11fc <find_sas_connector_type+0xec>
cmp    $0x2f,%ecx
ja     11d9 <find_sas_connector_type+0xc9>
lea    0x1133(%rip),%rax
jmp    11fc <find_sas_connector_type+0xec>
cmp    $0x6f,%ecx
ja     11e7 <find_sas_connector_type+0xd7>
lea    0x115a(%rip),%rax
jmp    11fc <find_sas_connector_type+0xec>
cmp    $0x7f,%ecx
ja     11f5 <find_sas_connector_type+0xe5>
lea    0x116a(%rip),%rax
jmp    11fc <find_sas_connector_type+0xec>
lea    0x1186(%rip),%rax
mov    %rbx,%rdi
mov    %edx,%esi
mov    %rax,%rdx
xor    %eax,%eax
call   1030 <snprintf@plt>
jmp    11aa <find_sas_connector_type+0x9a>

LLVM IR (-O0):
@.str = [15 x i8] c"No information\00"
@.str.1 = [42 x i8] c"SAS 4x receptacle (SFF-8470) [max 4 phys]\00"
@.str.2 = [47 x i8] c"Mini SAS 4x receptacle (SFF-8088) [max 4 phys]\00"
@.str.3 = [35 x i8] c"Vendor specific external connector\00"
@.str.4 = [36 x i8] c"SAS 4i plug (SFF-8484) [max 4 phys]\00"
@.str.5 = [47 x i8] c"Mini SAS 4i receptacle (SFF-8087) [max 4 phys]\00"
@.str.6 = [55 x i8] c"SAS Drive backplane receptacle (SFF-8482) [max 2 phys]\00"
@.str.7 = [27 x i8] c"SATA host plug [max 1 phy]\00"
@.str.8 = [39 x i8] c"SAS Drive plug (SFF-8482) [max 2 phys]\00"
@.str.9 = [29 x i8] c"SATA device plug [max 1 phy]\00"
@.str.10 = [34 x i8] c"SAS virtual connector [max 1 phy]\00"
@.str.11 = [35 x i8] c"Vendor specific internal connector\00"
@.str.12 = [38 x i8] c"unknown external connector type: 0x%x\00"
@.str.13 = [43 x i8] c"unknown internal wide connector type: 0x%x\00"
@.str.14 = [53 x i8] c"unknown internal connector to end device, type: 0x%x\00"
@.str.15 = [30 x i8] c"reserved connector type: 0x%x\00"
@.str.16 = [37 x i8] c"vendor specific connector type: 0x%x\00"
@.str.17 = [32 x i8] c"unexpected connector type: 0x%x\00"
define i8* @find_sas_connector_type(i32 %0, i8* %1, i32 %2) {
%4 = alloca i32
%5 = alloca i8*
%6 = alloca i32
store i32 %0, i32* %4
store i8* %1, i8** %5
store i32 %2, i32* %6
%7 = load i32, i32* %4
switch i32 %7, label %56 [
i32 0, label %8
i32 1, label %12
i32 2, label %16
i32 15, label %20
i32 16, label %24
i32 17, label %28
i32 32, label %32
i32 33, label %36
i32 34, label %40
i32 35, label %44
i32 47, label %48
i32 63, label %52
]
8: ; preds = %3
%9 = load i8*, i8** %5
%10 = load i32, i32* %6
%11 = call i32 (i8*, i32, i8*, ...) @snprintf(i8* %9, i32 %10, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0))
br label %106
12: ; preds = %3
%13 = load i8*, i8** %5
%14 = load i32, i32* %6
%15 = call i32 (i8*, i32, i8*, ...) @snprintf(i8* %13, i32 %14, i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.1, i64 0, i64 0))
br label %106
16: ; preds = %3
%17 = load i8*, i8** %5
%18 = load i32, i32* %6
%19 = call i32 (i8*, i32, i8*, ...) @snprintf(i8* %17, i32 %18, i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.2, i64 0, i64 0))
br label %106
20: ; preds = %3
%21 = load i8*, i8** %5
%22 = load i32, i32* %6
%23 = call i32 (i8*, i32, i8*, ...) @snprintf(i8* %21, i32 %22, i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.3, i64 0, i64 0))
br label %106
24: ; preds = %3
%25 = load i8*, i8** %5
%26 = load i32, i32* %6
%27 = call i32 (i8*, i32, i8*, ...) @snprintf(i8* %25, i32 %26, i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str.4, i64 0, i64 0))
br label %106
28: ; preds = %3
%29 = load i8*, i8** %5
%30 = load i32, i32* %6
%31 = call i32 (i8*, i32, i8*, ...) @snprintf(i8* %29, i32 %30, i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.5, i64 0, i64 0))
br label %106
32: ; preds = %3
%33 = load i8*, i8** %5
%34 = load i32, i32* %6
%35 = call i32 (i8*, i32, i8*, ...) @snprintf(i8* %33, i32 %34, i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.6, i64 0, i64 0))
br label %106
36: ; preds = %3
%37 = load i8*, i8** %5
%38 = load i32, i32* %6
%39 = call i32 (i8*, i32, i8*, ...) @snprintf(i8* %37, i32 %38, i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.7, i64 0, i64 0))
br label %106
40: ; preds = %3
%41 = load i8*, i8** %5
%42 = load i32, i32* %6
%43 = call i32 (i8*, i32, i8*, ...) @snprintf(i8* %41, i32 %42, i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.8, i64 0, i64 0))
br label %106
44: ; preds = %3
%45 = load i8*, i8** %5
%46 = load i32, i32* %6
%47 = call i32 (i8*, i32, i8*, ...) @snprintf(i8* %45, i32 %46, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.9, i64 0, i64 0))
br label %106
48: ; preds = %3
%49 = load i8*, i8** %5
%50 = load i32, i32* %6
%51 = call i32 (i8*, i32, i8*, ...) @snprintf(i8* %49, i32 %50, i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.10, i64 0, i64 0))
br label %106
52: ; preds = %3
%53 = load i8*, i8** %5
%54 = load i32, i32* %6
%55 = call i32 (i8*, i32, i8*, ...) @snprintf(i8* %53, i32 %54, i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.11, i64 0, i64 0))
br label %106
56: ; preds = %3
%57 = load i32, i32* %4
%58 = icmp slt i32 %57, 16
br i1 %58, label %59, label %64
59: ; preds = %56
%60 = load i8*, i8** %5
%61 = load i32, i32* %6
%62 = load i32, i32* %4
%63 = call i32 (i8*, i32, i8*, ...) @snprintf(i8* %60, i32 %61, i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.12, i64 0, i64 0), i32 %62)
br label %105
64: ; preds = %56
%65 = load i32, i32* %4
%66 = icmp slt i32 %65, 32
br i1 %66, label %67, label %72
67: ; preds = %64
%68 = load i8*, i8** %5
%69 = load i32, i32* %6
%70 = load i32, i32* %4
%71 = call i32 (i8*, i32, i8*, ...) @snprintf(i8* %68, i32 %69, i8* getelementptr inbounds ([43 x i8], [43 x i8]* @.str.13, i64 0, i64 0), i32 %70)
br label %104
72: ; preds = %64
%73 = load i32, i32* %4
%74 = icmp slt i32 %73, 48
br i1 %74, label %75, label %80
75: ; preds = %72
%76 = load i8*, i8** %5
%77 = load i32, i32* %6
%78 = load i32, i32* %4
%79 = call i32 (i8*, i32, i8*, ...) @snprintf(i8* %76, i32 %77, i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.14, i64 0, i64 0), i32 %78)
br label %103
80: ; preds = %72
%81 = load i32, i32* %4
%82 = icmp slt i32 %81, 112
br i1 %82, label %83, label %88
83: ; preds = %80
%84 = load i8*, i8** %5
%85 = load i32, i32* %6
%86 = load i32, i32* %4
%87 = call i32 (i8*, i32, i8*, ...) @snprintf(i8* %84, i32 %85, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.15, i64 0, i64 0), i32 %86)
br label %102
88: ; preds = %80
%89 = load i32, i32* %4
%90 = icmp slt i32 %89, 128
br i1 %90, label %91, label %96
91: ; preds = %88
%92 = load i8*, i8** %5
%93 = load i32, i32* %6
%94 = load i32, i32* %4
%95 = call i32 (i8*, i32, i8*, ...) @snprintf(i8* %92, i32 %93, i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.16, i64 0, i64 0), i32 %94)
br label %101
96: ; preds = %88
%97 = load i8*, i8** %5
%98 = load i32, i32* %6
%99 = load i32, i32* %4
%100 = call i32 (i8*, i32, i8*, ...) @snprintf(i8* %97, i32 %98, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.17, i64 0, i64 0), i32 %99)
br label %101
101: ; preds = %96, %91
br label %102
102: ; preds = %101, %83
br label %103
103: ; preds = %102, %75
br label %104
104: ; preds = %103, %67
br label %105
105: ; preds = %104, %59
br label %106
106: ; preds = %105, %52, %48, %44, %40, %36, %32, %28, %24, %20, %16, %12, %8
%107 = load i8*, i8** %5
ret i8* %107
}

LLVM IR (-O2):
@.str = [15 x i8] c"No information\00"
@.str.1 = [42 x i8] c"SAS 4x receptacle (SFF-8470) [max 4 phys]\00"
@.str.2 = [47 x i8] c"Mini SAS 4x receptacle (SFF-8088) [max 4 phys]\00"
@.str.3 = [35 x i8] c"Vendor specific external connector\00"
@.str.4 = [36 x i8] c"SAS 4i plug (SFF-8484) [max 4 phys]\00"
@.str.5 = [47 x i8] c"Mini SAS 4i receptacle (SFF-8087) [max 4 phys]\00"
@.str.6 = [55 x i8] c"SAS Drive backplane receptacle (SFF-8482) [max 2 phys]\00"
@.str.7 = [27 x i8] c"SATA host plug [max 1 phy]\00"
@.str.8 = [39 x i8] c"SAS Drive plug (SFF-8482) [max 2 phys]\00"
@.str.9 = [29 x i8] c"SATA device plug [max 1 phy]\00"
@.str.10 = [34 x i8] c"SAS virtual connector [max 1 phy]\00"
@.str.11 = [35 x i8] c"Vendor specific internal connector\00"
@.str.12 = [38 x i8] c"unknown external connector type: 0x%x\00"
@.str.13 = [43 x i8] c"unknown internal wide connector type: 0x%x\00"
@.str.14 = [53 x i8] c"unknown internal connector to end device, type: 0x%x\00"
@.str.15 = [30 x i8] c"reserved connector type: 0x%x\00"
@.str.16 = [37 x i8] c"vendor specific connector type: 0x%x\00"
@.str.17 = [32 x i8] c"unexpected connector type: 0x%x\00"
define i8* @find_sas_connector_type(i32 %0, i8* returned %1, i32 %2) {
switch i32 %0, label %28 [
i32 0, label %4
i32 1, label %6
i32 2, label %8
i32 15, label %10
i32 16, label %12
i32 17, label %14
i32 32, label %16
i32 33, label %18
i32 34, label %20
i32 35, label %22
i32 47, label %24
i32 63, label %26
]
4: ; preds = %3
%5 = tail call i32 (i8*, i32, i8*, ...) @snprintf(i8* %1, i32 %2, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0))
br label %50
6: ; preds = %3
%7 = tail call i32 (i8*, i32, i8*, ...) @snprintf(i8* %1, i32 %2, i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.1, i64 0, i64 0))
br label %50
8: ; preds = %3
%9 = tail call i32 (i8*, i32, i8*, ...) @snprintf(i8* %1, i32 %2, i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.2, i64 0, i64 0))
br label %50
10: ; preds = %3
%11 = tail call i32 (i8*, i32, i8*, ...) @snprintf(i8* %1, i32 %2, i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.3, i64 0, i64 0))
br label %50
12: ; preds = %3
%13 = tail call i32 (i8*, i32, i8*, ...) @snprintf(i8* %1, i32 %2, i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str.4, i64 0, i64 0))
br label %50
14: ; preds = %3
%15 = tail call i32 (i8*, i32, i8*, ...) @snprintf(i8* %1, i32 %2, i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.5, i64 0, i64 0))
br label %50
16: ; preds = %3
%17 = tail call i32 (i8*, i32, i8*, ...) @snprintf(i8* %1, i32 %2, i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.6, i64 0, i64 0))
br label %50
18: ; preds = %3
%19 = tail call i32 (i8*, i32, i8*, ...) @snprintf(i8* %1, i32 %2, i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.7, i64 0, i64 0))
br label %50
20: ; preds = %3
%21 = tail call i32 (i8*, i32, i8*, ...) @snprintf(i8* %1, i32 %2, i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.8, i64 0, i64 0))
br label %50
22: ; preds = %3
%23 = tail call i32 (i8*, i32, i8*, ...) @snprintf(i8* %1, i32 %2, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.9, i64 0, i64 0))
br label %50
24: ; preds = %3
%25 = tail call i32 (i8*, i32, i8*, ...) @snprintf(i8* %1, i32 %2, i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.10, i64 0, i64 0))
br label %50
26: ; preds = %3
%27 = tail call i32 (i8*, i32, i8*, ...) @snprintf(i8* %1, i32 %2, i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.11, i64 0, i64 0))
br label %50
28: ; preds = %3
%29 = icmp slt i32 %0, 16
br i1 %29, label %30, label %32
30: ; preds = %28
%31 = tail call i32 (i8*, i32, i8*, ...) @snprintf(i8* %1, i32 %2, i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.12, i64 0, i64 0), i32 %0)
br label %50
32: ; preds = %28
%33 = icmp ult i32 %0, 32
br i1 %33, label %34, label %36
34: ; preds = %32
%35 = tail call i32 (i8*, i32, i8*, ...) @snprintf(i8* %1, i32 %2, i8* getelementptr inbounds ([43 x i8], [43 x i8]* @.str.13, i64 0, i64 0), i32 %0)
br label %50
36: ; preds = %32
%37 = icmp ult i32 %0, 48
br i1 %37, label %38, label %40
38: ; preds = %36
%39 = tail call i32 (i8*, i32, i8*, ...) @snprintf(i8* %1, i32 %2, i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.14, i64 0, i64 0), i32 %0)
br label %50
40: ; preds = %36
%41 = icmp ult i32 %0, 112
br i1 %41, label %42, label %44
42: ; preds = %40
%43 = tail call i32 (i8*, i32, i8*, ...) @snprintf(i8* %1, i32 %2, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.15, i64 0, i64 0), i32 %0)
br label %50
44: ; preds = %40
%45 = icmp ult i32 %0, 128
br i1 %45, label %46, label %48
46: ; preds = %44
%47 = tail call i32 (i8*, i32, i8*, ...) @snprintf(i8* %1, i32 %2, i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.16, i64 0, i64 0), i32 %0)
br label %50
48: ; preds = %44
%49 = tail call i32 (i8*, i32, i8*, ...) @snprintf(i8* %1, i32 %2, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.17, i64 0, i64 0), i32 %0)
br label %50
50: ; preds = %30, %38, %46, %48, %42, %34, %26, %24, %22, %20, %18, %16, %14, %12, %10, %8, %6, %4
ret i8* %1
}