#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 */
const char *sigalg_name(unsigned code) {
  switch (code) {
  default:
    return NULL;
    break;
  case 0x0303:
    return "ECDSA_SECP224R1_SHA224";
    break;
  case 0x0403:
    return "ECDSA_SECP256R1_SHA256";
    break;
  case 0x0503:
    return "ECDSA_SECP384R1_SHA384";
    break;
  case 0x0603:
    return "ECDSA_SECP521R1_SHA512";
    break;
  case 0x0103:
    return "ECDSA_MD5";
    break;
  case 0x0203:
    return "ECDSA_SHA1";
    break;
  case 0x0700:
    return "TLS13_RSA_PSS_SHA256";
    break;
  case 0x0701:
    return "TLS13_RSA_PSS_SHA384";
    break;
  case 0x0702:
    return "TLS13_RSA_PSS_SHA512";
    break;
  case 0x0703:
    return "TLS13_ED25519";
    break;
  case 0x0704:
    return "TLS13_ED448";
    break;
  case 0x0809:
    return "RSA_PSS_PSS_SHA256";
    break;
  case 0x080a:
    return "RSA_PSS_PSS_SHA384";
    break;
  case 0x080b:
    return "RSA_PSS_PSS_SHA512";
    break;
  case 0x0804:
    return "RSA_PSS_SHA256";
    break;
  case 0x0805:
    return "RSA_PSS_SHA384";
    break;
  case 0x0806:
    return "RSA_PSS_SHA512";
    break;
  case 0x0807:
    return "ED25519";
    break;
  case 0x0808:
    return "ED448";
    break;
  case 0x0301:
    return "RSA_PKCS1_SHA224";
    break;
  case 0x0401:
    return "RSA_PKCS1_SHA256";
    break;
  case 0x0501:
    return "RSA_PKCS1_SHA384";
    break;
  case 0x0601:
    return "RSA_PKCS1_SHA512";
    break;
  case 0x0101:
    return "RSA_PKCS1_MD5";
    break;
  case 0x0201:
    return "RSA_PKCS1_SHA1";
    break;
  case 0x0302:
    return "DSA_SHA224";
    break;
  case 0x0402:
    return "DSA_SHA256";
    break;
  case 0x0502:
    return "DSA_SHA384";
    break;
  case 0x0602:
    return "DSA_SHA512";
    break;
  case 0x0202:
    return "DSA_SHA1";
    break;
  case 0xeeee:
    return "GOSTR34102012_256_GOSTR34112012_256";
    break;
  case 0xefef:
    return "GOSTR34102012_512_GOSTR34112012_512";
    break;
  case 0xeded:
    return "GOSTR34102001_GOSTR3411";
    break;
  }
}


x86 assembly (clang, -O0):
<sigalg_name>:
push   %rbp
mov    %rsp,%rbp
mov    %edi,-0xc(%rbp)
mov    -0xc(%rbp),%eax
mov    %eax,-0x10(%rbp)
sub    $0x101,%eax
je     14fa <sigalg_name+0x3fa>
jmp    111d <sigalg_name+0x1d>
mov    -0x10(%rbp),%eax
sub    $0x103,%eax
je     13ca <sigalg_name+0x2ca>
jmp    1130 <sigalg_name+0x30>
mov    -0x10(%rbp),%eax
sub    $0x201,%eax
je     150a <sigalg_name+0x40a>
jmp    1143 <sigalg_name+0x43>
mov    -0x10(%rbp),%eax
sub    $0x202,%eax
je     155a <sigalg_name+0x45a>
jmp    1156 <sigalg_name+0x56>
mov    -0x10(%rbp),%eax
sub    $0x203,%eax
je     13da <sigalg_name+0x2da>
jmp    1169 <sigalg_name+0x69>
mov    -0x10(%rbp),%eax
sub    $0x301,%eax
je     14ba <sigalg_name+0x3ba>
jmp    117c <sigalg_name+0x7c>
mov    -0x10(%rbp),%eax
sub    $0x302,%eax
je     151a <sigalg_name+0x41a>
jmp    118f <sigalg_name+0x8f>
mov    -0x10(%rbp),%eax
sub    $0x303,%eax
je     138a <sigalg_name+0x28a>
jmp    11a2 <sigalg_name+0xa2>
mov    -0x10(%rbp),%eax
sub    $0x401,%eax
je     14ca <sigalg_name+0x3ca>
jmp    11b5 <sigalg_name+0xb5>
mov    -0x10(%rbp),%eax
sub    $0x402,%eax
je     152a <sigalg_name+0x42a>
jmp    11c8 <sigalg_name+0xc8>
mov    -0x10(%rbp),%eax
sub    $0x403,%eax
je     139a <sigalg_name+0x29a>
jmp    11db <sigalg_name+0xdb>
mov    -0x10(%rbp),%eax
sub    $0x501,%eax
je     14da <sigalg_name+0x3da>
jmp    11ee <sigalg_name+0xee>
mov    -0x10(%rbp),%eax
sub    $0x502,%eax
je     153a <sigalg_name+0x43a>
jmp    1201 <sigalg_name+0x101>
mov    -0x10(%rbp),%eax
sub    $0x503,%eax
je     13aa <sigalg_name+0x2aa>
jmp    1214 <sigalg_name+0x114>
mov    -0x10(%rbp),%eax
sub    $0x601,%eax
je     14ea <sigalg_name+0x3ea>
jmp    1227 <sigalg_name+0x127>
mov    -0x10(%rbp),%eax
sub    $0x602,%eax
je     154a <sigalg_name+0x44a>
jmp    123a <sigalg_name+0x13a>
mov    -0x10(%rbp),%eax
sub    $0x603,%eax
je     13ba <sigalg_name+0x2ba>
jmp    124d <sigalg_name+0x14d>
mov    -0x10(%rbp),%eax
sub    $0x700,%eax
je     13ea <sigalg_name+0x2ea>
jmp    1260 <sigalg_name+0x160>
mov    -0x10(%rbp),%eax
sub    $0x701,%eax
je     13fa <sigalg_name+0x2fa>
jmp    1273 <sigalg_name+0x173>
mov    -0x10(%rbp),%eax
sub    $0x702,%eax
je     140a <sigalg_name+0x30a>
jmp    1286 <sigalg_name+0x186>
mov    -0x10(%rbp),%eax
sub    $0x703,%eax
je     141a <sigalg_name+0x31a>
jmp    1299 <sigalg_name+0x199>
mov    -0x10(%rbp),%eax
sub    $0x704,%eax
je     142a <sigalg_name+0x32a>
jmp    12ac <sigalg_name+0x1ac>
mov    -0x10(%rbp),%eax
sub    $0x804,%eax
je     146a <sigalg_name+0x36a>
jmp    12bf <sigalg_name+0x1bf>
mov    -0x10(%rbp),%eax
sub    $0x805,%eax
je     147a <sigalg_name+0x37a>
jmp    12d2 <sigalg_name+0x1d2>
mov    -0x10(%rbp),%eax
sub    $0x806,%eax
je     148a <sigalg_name+0x38a>
jmp    12e5 <sigalg_name+0x1e5>
mov    -0x10(%rbp),%eax
sub    $0x807,%eax
je     149a <sigalg_name+0x39a>
jmp    12f8 <sigalg_name+0x1f8>
mov    -0x10(%rbp),%eax
sub    $0x808,%eax
je     14aa <sigalg_name+0x3aa>
jmp    130b <sigalg_name+0x20b>
mov    -0x10(%rbp),%eax
sub    $0x809,%eax
je     143a <sigalg_name+0x33a>
jmp    131e <sigalg_name+0x21e>
mov    -0x10(%rbp),%eax
sub    $0x80a,%eax
je     144a <sigalg_name+0x34a>
jmp    1331 <sigalg_name+0x231>
mov    -0x10(%rbp),%eax
sub    $0x80b,%eax
je     145a <sigalg_name+0x35a>
jmp    1344 <sigalg_name+0x244>
mov    -0x10(%rbp),%eax
sub    $0xeded,%eax
je     158a <sigalg_name+0x48a>
jmp    1357 <sigalg_name+0x257>
mov    -0x10(%rbp),%eax
sub    $0xeeee,%eax
je     156a <sigalg_name+0x46a>
jmp    136a <sigalg_name+0x26a>
mov    -0x10(%rbp),%eax
sub    $0xefef,%eax
je     157a <sigalg_name+0x47a>
jmp    137d <sigalg_name+0x27d>
movq   $0x0,-0x8(%rbp)
jmp    1595 <sigalg_name+0x495>
lea    0xc6f(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1595 <sigalg_name+0x495>
lea    0xc76(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1595 <sigalg_name+0x495>
lea    0xc7d(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1595 <sigalg_name+0x495>
lea    0xc84(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1595 <sigalg_name+0x495>
lea    0xc8b(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1595 <sigalg_name+0x495>
lea    0xc85(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1595 <sigalg_name+0x495>
lea    0xc80(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1595 <sigalg_name+0x495>
lea    0xc85(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1595 <sigalg_name+0x495>
lea    0xc8a(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1595 <sigalg_name+0x495>
lea    0xc8f(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1595 <sigalg_name+0x495>
lea    0xc8d(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1595 <sigalg_name+0x495>
lea    0xc89(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1595 <sigalg_name+0x495>
lea    0xc8c(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1595 <sigalg_name+0x495>
lea    0xc8f(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1595 <sigalg_name+0x495>
lea    0xc06(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1595 <sigalg_name+0x495>
lea    0xc0b(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1595 <sigalg_name+0x495>
lea    0xc10(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1595 <sigalg_name+0x495>
lea    0xc15(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1595 <sigalg_name+0x495>
lea    0xc13(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1595 <sigalg_name+0x495>
lea    0xc42(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1595 <sigalg_name+0x495>
lea    0xc43(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1595 <sigalg_name+0x495>
lea    0xc44(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1595 <sigalg_name+0x495>
lea    0xc45(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1595 <sigalg_name+0x495>
lea    0xc46(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1595 <sigalg_name+0x495>
lea    0xc44(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1595 <sigalg_name+0x495>
lea    0xc43(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1595 <sigalg_name+0x495>
lea    0xc3e(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1595 <sigalg_name+0x495>
lea    0xc39(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1595 <sigalg_name+0x495>
lea    0xc34(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1595 <sigalg_name+0x495>
lea    0xb07(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1595 <sigalg_name+0x495>
lea    0xc1f(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1595 <sigalg_name+0x495>
lea    0xc33(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1595 <sigalg_name+0x495>
lea    0xc47(%rip),%rax
mov    %rax,-0x8(%rbp)
mov    -0x8(%rbp),%rax
pop    %rbp
ret

x86 assembly (clang, -O2):
<sigalg_name>:
xor    %eax,%eax
cmp    $0x6ff,%edi
jg     1156 <sigalg_name+0x56>
cmp    $0x400,%edi
jle    118a <sigalg_name+0x8a>
cmp    $0x501,%edi
jle    11e1 <sigalg_name+0xe1>
cmp    $0x600,%edi
jle    1264 <sigalg_name+0x164>
cmp    $0x601,%edi
je     12cc <sigalg_name+0x1cc>
cmp    $0x602,%edi
je     12d4 <sigalg_name+0x1d4>
cmp    $0x603,%edi
jne    1238 <sigalg_name+0x138>
lea    0xf24(%rip),%rax
ret
cmp    $0xedec,%edi
jle    11be <sigalg_name+0xbe>
cmp    $0xeded,%edi
je     1231 <sigalg_name+0x131>
cmp    $0xeeee,%edi
je     1239 <sigalg_name+0x139>
cmp    $0xefef,%edi
jne    1238 <sigalg_name+0x138>
lea    0x105f(%rip),%rax
ret
cmp    $0x202,%edi
jg     1209 <sigalg_name+0x109>
cmp    $0x200,%edi
jg     1280 <sigalg_name+0x180>
cmp    $0x101,%edi
je     12dc <sigalg_name+0x1dc>
cmp    $0x103,%edi
jne    1238 <sigalg_name+0x138>
lea    0xed3(%rip),%rax
ret
lea    -0x804(%rdi),%ecx
cmp    $0x7,%ecx
ja     1241 <sigalg_name+0x141>
lea    0xe44(%rip),%rax
movslq (%rax,%rcx,4),%rcx
add    %rax,%rcx
jmp    *%rcx
lea    0xecb(%rip),%rax
ret
cmp    $0x402,%edi
jg     1298 <sigalg_name+0x198>
cmp    $0x401,%edi
je     12e4 <sigalg_name+0x1e4>
cmp    $0x402,%edi
jne    1238 <sigalg_name+0x138>
lea    0xf9b(%rip),%rax
ret
cmp    $0x301,%edi
jg     12b0 <sigalg_name+0x1b0>
cmp    $0x203,%edi
je     12ec <sigalg_name+0x1ec>
cmp    $0x301,%edi
jne    1238 <sigalg_name+0x138>
lea    0xf07(%rip),%rax
ret
lea    0xfd4(%rip),%rax
ret
lea    0xf84(%rip),%rax
ret
add    $0xfffff900,%edi
cmp    $0x4,%edi
ja     1238 <sigalg_name+0x138>
lea    0xdad(%rip),%rax
movslq (%rax,%rdi,4),%rcx
add    %rax,%rcx
jmp    *%rcx
lea    0xe42(%rip),%rax
ret
cmp    $0x502,%edi
je     12f4 <sigalg_name+0x1f4>
cmp    $0x503,%edi
jne    1238 <sigalg_name+0x138>
lea    0xde3(%rip),%rax
ret
cmp    $0x201,%edi
je     12fc <sigalg_name+0x1fc>
cmp    $0x202,%edi
jne    1238 <sigalg_name+0x138>
lea    0xe05(%rip),%rax
ret
cmp    $0x403,%edi
je     1304 <sigalg_name+0x204>
cmp    $0x501,%edi
jne    1238 <sigalg_name+0x138>
lea    0xeaa(%rip),%rax
ret
cmp    $0x302,%edi
je     130c <sigalg_name+0x20c>
cmp    $0x303,%edi
jne    1238 <sigalg_name+0x138>
lea    0xd69(%rip),%rax
ret
lea    0xe97(%rip),%rax
ret
lea    0xede(%rip),%rax
ret
lea    0xe98(%rip),%rax
ret
lea    0xe5d(%rip),%rax
ret
lea    0xda7(%rip),%rax
ret
lea    0xeb3(%rip),%rax
ret
lea    0xe86(%rip),%rax
ret
lea    0xd40(%rip),%rax
ret
lea    0xe85(%rip),%rax
ret
lea    0xda5(%rip),%rax
ret
lea    0xdb2(%rip),%rax
ret
lea    0xdbf(%rip),%rax
ret
lea    0xdc5(%rip),%rax
ret
lea    0xdc3(%rip),%rax
ret
lea    0xdce(%rip),%rax
ret
lea    0xdd9(%rip),%rax
ret
lea    0xd67(%rip),%rax
ret
lea    0xd74(%rip),%rax
ret
lea    0xd81(%rip),%rax
ret
lea    0xd87(%rip),%rax
ret

LLVM IR (-O0):
@.str = [23 x i8] c"ECDSA_SECP224R1_SHA224\00"
@.str.1 = [23 x i8] c"ECDSA_SECP256R1_SHA256\00"
@.str.2 = [23 x i8] c"ECDSA_SECP384R1_SHA384\00"
@.str.3 = [23 x i8] c"ECDSA_SECP521R1_SHA512\00"
@.str.4 = [10 x i8] c"ECDSA_MD5\00"
@.str.5 = [11 x i8] c"ECDSA_SHA1\00"
@.str.6 = [21 x i8] c"TLS13_RSA_PSS_SHA256\00"
@.str.7 = [21 x i8] c"TLS13_RSA_PSS_SHA384\00"
@.str.8 = [21 x i8] c"TLS13_RSA_PSS_SHA512\00"
@.str.9 = [14 x i8] c"TLS13_ED25519\00"
@.str.10 = [12 x i8] c"TLS13_ED448\00"
@.str.11 = [19 x i8] c"RSA_PSS_PSS_SHA256\00"
@.str.12 = [19 x i8] c"RSA_PSS_PSS_SHA384\00"
@.str.13 = [19 x i8] c"RSA_PSS_PSS_SHA512\00"
@.str.14 = [15 x i8] c"RSA_PSS_SHA256\00"
@.str.15 = [15 x i8] c"RSA_PSS_SHA384\00"
@.str.16 = [15 x i8] c"RSA_PSS_SHA512\00"
@.str.17 = [8 x i8] c"ED25519\00"
@.str.18 = [6 x i8] c"ED448\00"
@.str.19 = [17 x i8] c"RSA_PKCS1_SHA224\00"
@.str.20 = [17 x i8] c"RSA_PKCS1_SHA256\00"
@.str.21 = [17 x i8] c"RSA_PKCS1_SHA384\00"
@.str.22 = [17 x i8] c"RSA_PKCS1_SHA512\00"
@.str.23 = [14 x i8] c"RSA_PKCS1_MD5\00"
@.str.24 = [15 x i8] c"RSA_PKCS1_SHA1\00"
@.str.25 = [11 x i8] c"DSA_SHA224\00"
@.str.26 = [11 x i8] c"DSA_SHA256\00"
@.str.27 = [11 x i8] c"DSA_SHA384\00"
@.str.28 = [11 x i8] c"DSA_SHA512\00"
@.str.29 = [9 x i8] c"DSA_SHA1\00"
@.str.30 = [36 x i8] c"GOSTR34102012_256_GOSTR34112012_256\00"
@.str.31 = [36 x i8] c"GOSTR34102012_512_GOSTR34112012_512\00"
@.str.32 = [24 x i8] c"GOSTR34102001_GOSTR3411\00"
define i8* @sigalg_name(i32 %0) {
%2 = alloca i8*
%3 = alloca i32
store i32 %0, i32* %3
%4 = load i32, i32* %3
switch i32 %4, label %5 [
i32 771, label %6
i32 1027, label %7
i32 1283, label %8
i32 1539, label %9
i32 259, label %10
i32 515, label %11
i32 1792, label %12
i32 1793, label %13
i32 1794, label %14
i32 1795, label %15
i32 1796, label %16
i32 2057, label %17
i32 2058, label %18
i32 2059, label %19
i32 2052, label %20
i32 2053, label %21
i32 2054, label %22
i32 2055, label %23
i32 2056, label %24
i32 769, label %25
i32 1025, label %26
i32 1281, label %27
i32 1537, label %28
i32 257, label %29
i32 513, label %30
i32 770, label %31
i32 1026, label %32
i32 1282, label %33
i32 1538, label %34
i32 514, label %35
i32 61166, label %36
i32 61423, label %37
i32 60909, label %38
]
5: ; preds = %1
store i8* null, i8** %2
br label %39
6: ; preds = %1
store i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0), i8** %2
br label %39
7: ; preds = %1
store i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.1, i64 0, i64 0), i8** %2
br label %39
8: ; preds = %1
store i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.2, i64 0, i64 0), i8** %2
br label %39
9: ; preds = %1
store i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.3, i64 0, i64 0), i8** %2
br label %39
10: ; preds = %1
store i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.4, i64 0, i64 0), i8** %2
br label %39
11: ; preds = %1
store i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.5, i64 0, i64 0), i8** %2
br label %39
12: ; preds = %1
store i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.6, i64 0, i64 0), i8** %2
br label %39
13: ; preds = %1
store i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.7, i64 0, i64 0), i8** %2
br label %39
14: ; preds = %1
store i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.8, i64 0, i64 0), i8** %2
br label %39
15: ; preds = %1
store i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.9, i64 0, i64 0), i8** %2
br label %39
16: ; preds = %1
store i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.10, i64 0, i64 0), i8** %2
br label %39
17: ; preds = %1
store i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.11, i64 0, i64 0), i8** %2
br label %39
18: ; preds = %1
store i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.12, i64 0, i64 0), i8** %2
br label %39
19: ; preds = %1
store i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.13, i64 0, i64 0), i8** %2
br label %39
20: ; preds = %1
store i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.14, i64 0, i64 0), i8** %2
br label %39
21: ; preds = %1
store i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.15, i64 0, i64 0), i8** %2
br label %39
22: ; preds = %1
store i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.16, i64 0, i64 0), i8** %2
br label %39
23: ; preds = %1
store i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.17, i64 0, i64 0), i8** %2
br label %39
24: ; preds = %1
store i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.18, i64 0, i64 0), i8** %2
br label %39
25: ; preds = %1
store i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.19, i64 0, i64 0), i8** %2
br label %39
26: ; preds = %1
store i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.20, i64 0, i64 0), i8** %2
br label %39
27: ; preds = %1
store i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.21, i64 0, i64 0), i8** %2
br label %39
28: ; preds = %1
store i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.22, i64 0, i64 0), i8** %2
br label %39
29: ; preds = %1
store i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.23, i64 0, i64 0), i8** %2
br label %39
30: ; preds = %1
store i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.24, i64 0, i64 0), i8** %2
br label %39
31: ; preds = %1
store i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.25, i64 0, i64 0), i8** %2
br label %39
32: ; preds = %1
store i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.26, i64 0, i64 0), i8** %2
br label %39
33: ; preds = %1
store i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.27, i64 0, i64 0), i8** %2
br label %39
34: ; preds = %1
store i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.28, i64 0, i64 0), i8** %2
br label %39
35: ; preds = %1
store i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.29, i64 0, i64 0), i8** %2
br label %39
36: ; preds = %1
store i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str.30, i64 0, i64 0), i8** %2
br label %39
37: ; preds = %1
store i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str.31, i64 0, i64 0), i8** %2
br label %39
38: ; preds = %1
store i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.32, i64 0, i64 0), i8** %2
br label %39
39: ; preds = %38, %37, %36, %35, %34, %33, %32, %31, %30, %29, %28, %27, %26, %25, %24, %23, %22, %21, %20, %19, %18, %17, %16, %15, %14, %13, %12, %11, %10, %9, %8, %7, %6, %5
%40 = load i8*, i8** %2
ret i8* %40
}

LLVM IR (-O2):
@.str = [23 x i8] c"ECDSA_SECP224R1_SHA224\00"
@.str.1 = [23 x i8] c"ECDSA_SECP256R1_SHA256\00"
@.str.2 = [23 x i8] c"ECDSA_SECP384R1_SHA384\00"
@.str.3 = [23 x i8] c"ECDSA_SECP521R1_SHA512\00"
@.str.4 = [10 x i8] c"ECDSA_MD5\00"
@.str.5 = [11 x i8] c"ECDSA_SHA1\00"
@.str.6 = [21 x i8] c"TLS13_RSA_PSS_SHA256\00"
@.str.7 = [21 x i8] c"TLS13_RSA_PSS_SHA384\00"
@.str.8 = [21 x i8] c"TLS13_RSA_PSS_SHA512\00"
@.str.9 = [14 x i8] c"TLS13_ED25519\00"
@.str.10 = [12 x i8] c"TLS13_ED448\00"
@.str.11 = [19 x i8] c"RSA_PSS_PSS_SHA256\00"
@.str.12 = [19 x i8] c"RSA_PSS_PSS_SHA384\00"
@.str.13 = [19 x i8] c"RSA_PSS_PSS_SHA512\00"
@.str.14 = [15 x i8] c"RSA_PSS_SHA256\00"
@.str.15 = [15 x i8] c"RSA_PSS_SHA384\00"
@.str.16 = [15 x i8] c"RSA_PSS_SHA512\00"
@.str.17 = [8 x i8] c"ED25519\00"
@.str.18 = [6 x i8] c"ED448\00"
@.str.19 = [17 x i8] c"RSA_PKCS1_SHA224\00"
@.str.20 = [17 x i8] c"RSA_PKCS1_SHA256\00"
@.str.21 = [17 x i8] c"RSA_PKCS1_SHA384\00"
@.str.22 = [17 x i8] c"RSA_PKCS1_SHA512\00"
@.str.23 = [14 x i8] c"RSA_PKCS1_MD5\00"
@.str.24 = [15 x i8] c"RSA_PKCS1_SHA1\00"
@.str.25 = [11 x i8] c"DSA_SHA224\00"
@.str.26 = [11 x i8] c"DSA_SHA256\00"
@.str.27 = [11 x i8] c"DSA_SHA384\00"
@.str.28 = [11 x i8] c"DSA_SHA512\00"
@.str.29 = [9 x i8] c"DSA_SHA1\00"
@.str.30 = [36 x i8] c"GOSTR34102012_256_GOSTR34112012_256\00"
@.str.31 = [36 x i8] c"GOSTR34102012_512_GOSTR34112012_512\00"
@.str.32 = [24 x i8] c"GOSTR34102001_GOSTR3411\00"
define i8* @sigalg_name(i32 %0) {
switch i32 %0, label %35 [
i32 771, label %2
i32 1027, label %3
i32 1283, label %4
i32 1539, label %5
i32 259, label %6
i32 515, label %7
i32 1792, label %8
i32 1793, label %9
i32 1794, label %10
i32 1795, label %11
i32 1796, label %12
i32 2057, label %13
i32 2058, label %14
i32 2059, label %15
i32 2052, label %16
i32 2053, label %17
i32 2054, label %18
i32 2055, label %19
i32 2056, label %20
i32 769, label %21
i32 1025, label %22
i32 1281, label %23
i32 1537, label %24
i32 257, label %25
i32 513, label %26
i32 770, label %27
i32 1026, label %28
i32 1282, label %29
i32 1538, label %30
i32 514, label %31
i32 61166, label %32
i32 61423, label %33
i32 60909, label %34
]
2: ; preds = %1
br label %35
3: ; preds = %1
br label %35
4: ; preds = %1
br label %35
5: ; preds = %1
br label %35
6: ; preds = %1
br label %35
7: ; preds = %1
br label %35
8: ; preds = %1
br label %35
9: ; preds = %1
br label %35
10: ; preds = %1
br label %35
11: ; preds = %1
br label %35
12: ; preds = %1
br label %35
13: ; preds = %1
br label %35
14: ; preds = %1
br label %35
15: ; preds = %1
br label %35
16: ; preds = %1
br label %35
17: ; preds = %1
br label %35
18: ; preds = %1
br label %35
19: ; preds = %1
br label %35
20: ; preds = %1
br label %35
21: ; preds = %1
br label %35
22: ; preds = %1
br label %35
23: ; preds = %1
br label %35
24: ; preds = %1
br label %35
25: ; preds = %1
br label %35
26: ; preds = %1
br label %35
27: ; preds = %1
br label %35
28: ; preds = %1
br label %35
29: ; preds = %1
br label %35
30: ; preds = %1
br label %35
31: ; preds = %1
br label %35
32: ; preds = %1
br label %35
33: ; preds = %1
br label %35
34: ; preds = %1
br label %35
35: ; preds = %1, %34, %33, %32, %31, %30, %29, %28, %27, %26, %25, %24, %23, %22, %21, %20, %19, %18, %17, %16, %15, %14, %13, %12, %11, %10, %9, %8, %7, %6, %5, %4, %3, %2
%36 = phi i8* [ getelementptr inbounds ([24 x i8], [24 x i8]* @.str.32, i64 0, i64 0), %34 ], [ getelementptr inbounds ([36 x i8], [36 x i8]* @.str.31, i64 0, i64 0), %33 ], [ getelementptr inbounds ([36 x i8], [36 x i8]* @.str.30, i64 0, i64 0), %32 ], [ getelementptr inbounds ([9 x i8], [9 x i8]* @.str.29, i64 0, i64 0), %31 ], [ getelementptr inbounds ([11 x i8], [11 x i8]* @.str.28, i64 0, i64 0), %30 ], [ getelementptr inbounds ([11 x i8], [11 x i8]* @.str.27, i64 0, i64 0), %29 ], [ getelementptr inbounds ([11 x i8], [11 x i8]* @.str.26, i64 0, i64 0), %28 ], [ getelementptr inbounds ([11 x i8], [11 x i8]* @.str.25, i64 0, i64 0), %27 ], [ getelementptr inbounds ([15 x i8], [15 x i8]* @.str.24, i64 0, i64 0), %26 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @.str.23, i64 0, i64 0), %25 ], [ getelementptr inbounds ([17 x i8], [17 x i8]* @.str.22, i64 0, i64 0), %24 ], [ getelementptr inbounds ([17 x i8], [17 x i8]* @.str.21, i64 0, i64 0), %23 ], [ getelementptr inbounds ([17 x i8], [17 x i8]* @.str.20, i64 0, i64 0), %22 ], [ getelementptr inbounds ([17 x i8], [17 x i8]* @.str.19, i64 0, i64 0), %21 ], [ getelementptr inbounds ([6 x i8], [6 x i8]* @.str.18, i64 0, i64 0), %20 ], [ getelementptr inbounds ([8 x i8], [8 x i8]* @.str.17, i64 0, i64 0), %19 ], [ getelementptr inbounds ([15 x i8], [15 x i8]* @.str.16, i64 0, i64 0), %18 ], [ getelementptr inbounds ([15 x i8], [15 x i8]* @.str.15, i64 0, i64 0), %17 ], [ getelementptr inbounds ([15 x i8], [15 x i8]* @.str.14, i64 0, i64 0), %16 ], [ getelementptr inbounds ([19 x i8], [19 x i8]* @.str.13, i64 0, i64 0), %15 ], [ getelementptr inbounds ([19 x i8], [19 x i8]* @.str.12, i64 0, i64 0), %14 ], [ getelementptr inbounds ([19 x i8], [19 x i8]* @.str.11, i64 0, i64 0), %13 ], [ getelementptr inbounds ([12 x i8], [12 x i8]* @.str.10, i64 0, i64 0), %12 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @.str.9, i64 0, i64 0), %11 ], [ getelementptr inbounds ([21 x i8], [21 x i8]* @.str.8, i64 0, i64 0), %10 ], [ getelementptr inbounds ([21 x i8], [21 x i8]* @.str.7, i64 0, i64 0), %9 ], [ getelementptr inbounds ([21 x i8], [21 x i8]* @.str.6, i64 0, i64 0), %8 ], [ getelementptr inbounds ([11 x i8], [11 x i8]* @.str.5, i64 0, i64 0), %7 ], [ getelementptr inbounds ([10 x i8], [10 x i8]* @.str.4, i64 0, i64 0), %6 ], [ getelementptr inbounds ([23 x i8], [23 x i8]* @.str.3, i64 0, i64 0), %5 ], [ getelementptr inbounds ([23 x i8], [23 x i8]* @.str.2, i64 0, i64 0), %4 ], [ getelementptr inbounds ([23 x i8], [23 x i8]* @.str.1, i64 0, i64 0), %3 ], [ getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0), %2 ], [ null, %1 ]
ret i8* %36
}