#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 *ec_named_curve_name(unsigned code) {
  switch (code) {
  default:
    return NULL;
    break;
  case 1:
    return "EC_NAMED_CURVE_SECT163K1";
    break;
  case 2:
    return "EC_NAMED_CURVE_SECT163R1";
    break;
  case 3:
    return "EC_NAMED_CURVE_SECT163R2";
    break;
  case 4:
    return "EC_NAMED_CURVE_SECT193R1";
    break;
  case 5:
    return "EC_NAMED_CURVE_SECT193R2";
    break;
  case 6:
    return "EC_NAMED_CURVE_SECT233K1";
    break;
  case 7:
    return "EC_NAMED_CURVE_SECT233R1";
    break;
  case 8:
    return "EC_NAMED_CURVE_SECT239K1";
    break;
  case 9:
    return "EC_NAMED_CURVE_SECT283K1";
    break;
  case 10:
    return "EC_NAMED_CURVE_SECT283R1";
    break;
  case 11:
    return "EC_NAMED_CURVE_SECT409K1";
    break;
  case 12:
    return "EC_NAMED_CURVE_SECT409R1";
    break;
  case 13:
    return "EC_NAMED_CURVE_SECT571K1";
    break;
  case 14:
    return "EC_NAMED_CURVE_SECT571R1";
    break;
  case 15:
    return "EC_NAMED_CURVE_SECP160K1";
    break;
  case 16:
    return "EC_NAMED_CURVE_SECP160R1";
    break;
  case 17:
    return "EC_NAMED_CURVE_SECP160R2";
    break;
  case 18:
    return "EC_NAMED_CURVE_SECP192K1";
    break;
  case 19:
    return "EC_NAMED_CURVE_SECP192R1";
    break;
  case 20:
    return "EC_NAMED_CURVE_SECP224K1";
    break;
  case 21:
    return "EC_NAMED_CURVE_SECP224R1";
    break;
  case 22:
    return "EC_NAMED_CURVE_SECP256K1";
    break;
  case 23:
    return "EC_NAMED_CURVE_SECP256R1";
    break;
  case 24:
    return "EC_NAMED_CURVE_SECP384R1";
    break;
  case 25:
    return "EC_NAMED_CURVE_SECP521R1";
    break;
  case 26:
    return "EC_NAMED_CURVE_BRAINPOOLP256R1";
    break;
  case 27:
    return "EC_NAMED_CURVE_BRAINPOOLP384R1";
    break;
  case 28:
    return "EC_NAMED_CURVE_BRAINPOOLP512R1";
    break;
  case 29:
    return "EC_NAMED_CURVE_ECDH_X25519";
    break;
  case 30:
    return "EC_NAMED_CURVE_ECDH_X448";
    break;
  case 256:
    return "EC_NAMED_CURVE_FFDHE2048";
    break;
  case 257:
    return "EC_NAMED_CURVE_FFDHE3072";
    break;
  case 258:
    return "EC_NAMED_CURVE_FFDHE4096";
    break;
  case 259:
    return "EC_NAMED_CURVE_FFDHE6144";
    break;
  case 260:
    return "EC_NAMED_CURVE_FFDHE8192";
    break;
  case 0xff01:
    return "EC_NAMED_CURVE_ARBITRARY_EXPLICIT_PRIME_CURVES";
    break;
  case 0xff02:
    return "EC_NAMED_CURVE_ARBITRARY_EXPLICIT_CHAR2_CURVES";
    break;
  case 0x0a0a:
  case 0x1a1a:
  case 0x2a2a:
  case 0x3a3a:
  case 0x4a4a:
  case 0x5a5a:
  case 0x6a6a:
  case 0x7a7a:
  case 0x8a8a:
  case 0x9a9a:
  case 0xaaaa:
  case 0xbaba:
  case 0xcaca:
  case 0xdada:
  case 0xeaea:
  case 0xfafa:
    return "GOOGLE_GREASE";
  }
}


x86 assembly (clang, -O0):
<ec_named_curve_name>:
push   %rbp
mov    %rsp,%rbp
mov    %edi,-0xc(%rbp)
mov    -0xc(%rbp),%eax
mov    %eax,-0x10(%rbp)
sub    $0x1,%eax
je     14ca <ec_named_curve_name+0x3ca>
jmp    111b <ec_named_curve_name+0x1b>
mov    -0x10(%rbp),%eax
sub    $0x2,%eax
je     14da <ec_named_curve_name+0x3da>
jmp    112c <ec_named_curve_name+0x2c>
mov    -0x10(%rbp),%eax
sub    $0x3,%eax
je     14ea <ec_named_curve_name+0x3ea>
jmp    113d <ec_named_curve_name+0x3d>
mov    -0x10(%rbp),%eax
sub    $0x4,%eax
je     14fa <ec_named_curve_name+0x3fa>
jmp    114e <ec_named_curve_name+0x4e>
mov    -0x10(%rbp),%eax
sub    $0x5,%eax
je     150a <ec_named_curve_name+0x40a>
jmp    115f <ec_named_curve_name+0x5f>
mov    -0x10(%rbp),%eax
sub    $0x6,%eax
je     151a <ec_named_curve_name+0x41a>
jmp    1170 <ec_named_curve_name+0x70>
mov    -0x10(%rbp),%eax
sub    $0x7,%eax
je     152a <ec_named_curve_name+0x42a>
jmp    1181 <ec_named_curve_name+0x81>
mov    -0x10(%rbp),%eax
sub    $0x8,%eax
je     153a <ec_named_curve_name+0x43a>
jmp    1192 <ec_named_curve_name+0x92>
mov    -0x10(%rbp),%eax
sub    $0x9,%eax
je     154a <ec_named_curve_name+0x44a>
jmp    11a3 <ec_named_curve_name+0xa3>
mov    -0x10(%rbp),%eax
sub    $0xa,%eax
je     155a <ec_named_curve_name+0x45a>
jmp    11b4 <ec_named_curve_name+0xb4>
mov    -0x10(%rbp),%eax
sub    $0xb,%eax
je     156a <ec_named_curve_name+0x46a>
jmp    11c5 <ec_named_curve_name+0xc5>
mov    -0x10(%rbp),%eax
sub    $0xc,%eax
je     157a <ec_named_curve_name+0x47a>
jmp    11d6 <ec_named_curve_name+0xd6>
mov    -0x10(%rbp),%eax
sub    $0xd,%eax
je     158a <ec_named_curve_name+0x48a>
jmp    11e7 <ec_named_curve_name+0xe7>
mov    -0x10(%rbp),%eax
sub    $0xe,%eax
je     159a <ec_named_curve_name+0x49a>
jmp    11f8 <ec_named_curve_name+0xf8>
mov    -0x10(%rbp),%eax
sub    $0xf,%eax
je     15aa <ec_named_curve_name+0x4aa>
jmp    1209 <ec_named_curve_name+0x109>
mov    -0x10(%rbp),%eax
sub    $0x10,%eax
je     15ba <ec_named_curve_name+0x4ba>
jmp    121a <ec_named_curve_name+0x11a>
mov    -0x10(%rbp),%eax
sub    $0x11,%eax
je     15ca <ec_named_curve_name+0x4ca>
jmp    122b <ec_named_curve_name+0x12b>
mov    -0x10(%rbp),%eax
sub    $0x12,%eax
je     15da <ec_named_curve_name+0x4da>
jmp    123c <ec_named_curve_name+0x13c>
mov    -0x10(%rbp),%eax
sub    $0x13,%eax
je     15ea <ec_named_curve_name+0x4ea>
jmp    124d <ec_named_curve_name+0x14d>
mov    -0x10(%rbp),%eax
sub    $0x14,%eax
je     15fa <ec_named_curve_name+0x4fa>
jmp    125e <ec_named_curve_name+0x15e>
mov    -0x10(%rbp),%eax
sub    $0x15,%eax
je     160a <ec_named_curve_name+0x50a>
jmp    126f <ec_named_curve_name+0x16f>
mov    -0x10(%rbp),%eax
sub    $0x16,%eax
je     161a <ec_named_curve_name+0x51a>
jmp    1280 <ec_named_curve_name+0x180>
mov    -0x10(%rbp),%eax
sub    $0x17,%eax
je     162a <ec_named_curve_name+0x52a>
jmp    1291 <ec_named_curve_name+0x191>
mov    -0x10(%rbp),%eax
sub    $0x18,%eax
je     163a <ec_named_curve_name+0x53a>
jmp    12a2 <ec_named_curve_name+0x1a2>
mov    -0x10(%rbp),%eax
sub    $0x19,%eax
je     164a <ec_named_curve_name+0x54a>
jmp    12b3 <ec_named_curve_name+0x1b3>
mov    -0x10(%rbp),%eax
sub    $0x1a,%eax
je     165a <ec_named_curve_name+0x55a>
jmp    12c4 <ec_named_curve_name+0x1c4>
mov    -0x10(%rbp),%eax
sub    $0x1b,%eax
je     166a <ec_named_curve_name+0x56a>
jmp    12d5 <ec_named_curve_name+0x1d5>
mov    -0x10(%rbp),%eax
sub    $0x1c,%eax
je     167a <ec_named_curve_name+0x57a>
jmp    12e6 <ec_named_curve_name+0x1e6>
mov    -0x10(%rbp),%eax
sub    $0x1d,%eax
je     168a <ec_named_curve_name+0x58a>
jmp    12f7 <ec_named_curve_name+0x1f7>
mov    -0x10(%rbp),%eax
sub    $0x1e,%eax
je     169a <ec_named_curve_name+0x59a>
jmp    1308 <ec_named_curve_name+0x208>
mov    -0x10(%rbp),%eax
sub    $0x100,%eax
je     16aa <ec_named_curve_name+0x5aa>
jmp    131b <ec_named_curve_name+0x21b>
mov    -0x10(%rbp),%eax
sub    $0x101,%eax
je     16ba <ec_named_curve_name+0x5ba>
jmp    132e <ec_named_curve_name+0x22e>
mov    -0x10(%rbp),%eax
sub    $0x102,%eax
je     16ca <ec_named_curve_name+0x5ca>
jmp    1341 <ec_named_curve_name+0x241>
mov    -0x10(%rbp),%eax
sub    $0x103,%eax
je     16da <ec_named_curve_name+0x5da>
jmp    1354 <ec_named_curve_name+0x254>
mov    -0x10(%rbp),%eax
sub    $0x104,%eax
je     16ea <ec_named_curve_name+0x5ea>
jmp    1367 <ec_named_curve_name+0x267>
mov    -0x10(%rbp),%eax
sub    $0xa0a,%eax
je     171a <ec_named_curve_name+0x61a>
jmp    137a <ec_named_curve_name+0x27a>
mov    -0x10(%rbp),%eax
sub    $0x1a1a,%eax
je     171a <ec_named_curve_name+0x61a>
jmp    138d <ec_named_curve_name+0x28d>
mov    -0x10(%rbp),%eax
sub    $0x2a2a,%eax
je     171a <ec_named_curve_name+0x61a>
jmp    13a0 <ec_named_curve_name+0x2a0>
mov    -0x10(%rbp),%eax
sub    $0x3a3a,%eax
je     171a <ec_named_curve_name+0x61a>
jmp    13b3 <ec_named_curve_name+0x2b3>
mov    -0x10(%rbp),%eax
sub    $0x4a4a,%eax
je     171a <ec_named_curve_name+0x61a>
jmp    13c6 <ec_named_curve_name+0x2c6>
mov    -0x10(%rbp),%eax
sub    $0x5a5a,%eax
je     171a <ec_named_curve_name+0x61a>
jmp    13d9 <ec_named_curve_name+0x2d9>
mov    -0x10(%rbp),%eax
sub    $0x6a6a,%eax
je     171a <ec_named_curve_name+0x61a>
jmp    13ec <ec_named_curve_name+0x2ec>
mov    -0x10(%rbp),%eax
sub    $0x7a7a,%eax
je     171a <ec_named_curve_name+0x61a>
jmp    13ff <ec_named_curve_name+0x2ff>
mov    -0x10(%rbp),%eax
sub    $0x8a8a,%eax
je     171a <ec_named_curve_name+0x61a>
jmp    1412 <ec_named_curve_name+0x312>
mov    -0x10(%rbp),%eax
sub    $0x9a9a,%eax
je     171a <ec_named_curve_name+0x61a>
jmp    1425 <ec_named_curve_name+0x325>
mov    -0x10(%rbp),%eax
sub    $0xaaaa,%eax
je     171a <ec_named_curve_name+0x61a>
jmp    1438 <ec_named_curve_name+0x338>
mov    -0x10(%rbp),%eax
sub    $0xbaba,%eax
je     171a <ec_named_curve_name+0x61a>
jmp    144b <ec_named_curve_name+0x34b>
mov    -0x10(%rbp),%eax
sub    $0xcaca,%eax
je     171a <ec_named_curve_name+0x61a>
jmp    145e <ec_named_curve_name+0x35e>
mov    -0x10(%rbp),%eax
sub    $0xdada,%eax
je     171a <ec_named_curve_name+0x61a>
jmp    1471 <ec_named_curve_name+0x371>
mov    -0x10(%rbp),%eax
sub    $0xeaea,%eax
je     171a <ec_named_curve_name+0x61a>
jmp    1484 <ec_named_curve_name+0x384>
mov    -0x10(%rbp),%eax
sub    $0xfafa,%eax
je     171a <ec_named_curve_name+0x61a>
jmp    1497 <ec_named_curve_name+0x397>
mov    -0x10(%rbp),%eax
sub    $0xff01,%eax
je     16fa <ec_named_curve_name+0x5fa>
jmp    14aa <ec_named_curve_name+0x3aa>
mov    -0x10(%rbp),%eax
sub    $0xff02,%eax
je     170a <ec_named_curve_name+0x60a>
jmp    14bd <ec_named_curve_name+0x3bd>
movq   $0x0,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xb2f(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xb38(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xb41(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xb4a(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xb53(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xb5c(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xb65(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xb6e(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xb77(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xb80(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xb89(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xb92(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xb9b(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xba4(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xbad(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xbb6(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xbbf(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xbc8(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xbd1(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xbda(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xbe3(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xbec(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xbf5(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xbfe(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xc07(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xc10(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xc1f(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xc2e(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xc3d(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xc48(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xc51(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xc5a(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xc63(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xc6c(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xc75(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xc7e(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xc9d(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1725 <ec_named_curve_name+0x625>
lea    0xcbc(%rip),%rax
mov    %rax,-0x8(%rbp)
mov    -0x8(%rbp),%rax
pop    %rbp
ret

x86 assembly (clang, -O2):
<ec_named_curve_name>:
xor    %eax,%eax
cmp    $0xa09,%edi
jg     1131 <ec_named_curve_name+0x31>
add    $0xffffffff,%edi
cmp    $0x103,%edi
ja     135e <ec_named_curve_name+0x25e>
lea    0xee0(%rip),%rcx
movslq (%rcx,%rdi,4),%rdx
add    %rcx,%rdx
jmp    *%rdx
lea    0x12e0(%rip),%rax
ret
cmp    $0x9a99,%edi
jg     1176 <ec_named_curve_name+0x76>
cmp    $0x4a49,%edi
jle    11b2 <ec_named_curve_name+0xb2>
cmp    $0x6a69,%edi
jle    11ec <ec_named_curve_name+0xec>
cmp    $0x6a6a,%edi
je     123f <ec_named_curve_name+0x13f>
cmp    $0x7a7a,%edi
je     123f <ec_named_curve_name+0x13f>
cmp    $0x8a8a,%edi
je     123f <ec_named_curve_name+0x13f>
jmp    135e <ec_named_curve_name+0x25e>
cmp    $0xdad9,%edi
jle    11cf <ec_named_curve_name+0xcf>
cmp    $0xfaf9,%edi
jle    1201 <ec_named_curve_name+0x101>
cmp    $0xfafa,%edi
je     123f <ec_named_curve_name+0x13f>
cmp    $0xff01,%edi
je     1357 <ec_named_curve_name+0x257>
cmp    $0xff02,%edi
jne    135e <ec_named_curve_name+0x25e>
lea    0x160d(%rip),%rax
ret
cmp    $0x2a29,%edi
jg     1216 <ec_named_curve_name+0x116>
cmp    $0xa0a,%edi
je     123f <ec_named_curve_name+0x13f>
cmp    $0x1a1a,%edi
je     123f <ec_named_curve_name+0x13f>
jmp    135e <ec_named_curve_name+0x25e>
cmp    $0xbab9,%edi
jg     122b <ec_named_curve_name+0x12b>
cmp    $0x9a9a,%edi
je     123f <ec_named_curve_name+0x13f>
cmp    $0xaaaa,%edi
je     123f <ec_named_curve_name+0x13f>
jmp    135e <ec_named_curve_name+0x25e>
cmp    $0x4a4a,%edi
je     123f <ec_named_curve_name+0x13f>
cmp    $0x5a5a,%edi
je     123f <ec_named_curve_name+0x13f>
jmp    135e <ec_named_curve_name+0x25e>
cmp    $0xdada,%edi
je     123f <ec_named_curve_name+0x13f>
cmp    $0xeaea,%edi
je     123f <ec_named_curve_name+0x13f>
jmp    135e <ec_named_curve_name+0x25e>
cmp    $0x2a2a,%edi
je     123f <ec_named_curve_name+0x13f>
cmp    $0x3a3a,%edi
je     123f <ec_named_curve_name+0x13f>
jmp    135e <ec_named_curve_name+0x25e>
cmp    $0xbaba,%edi
je     123f <ec_named_curve_name+0x13f>
cmp    $0xcaca,%edi
jne    135e <ec_named_curve_name+0x25e>
lea    0x15a7(%rip),%rax
ret
lea    0x11db(%rip),%rax
ret
lea    0x11ec(%rip),%rax
ret
lea    0x11fd(%rip),%rax
ret
lea    0x120e(%rip),%rax
ret
lea    0x121f(%rip),%rax
ret
lea    0x1230(%rip),%rax
ret
lea    0x1241(%rip),%rax
ret
lea    0x1252(%rip),%rax
ret
lea    0x1263(%rip),%rax
ret
lea    0x1274(%rip),%rax
ret
lea    0x1285(%rip),%rax
ret
lea    0x1296(%rip),%rax
ret
lea    0x12a7(%rip),%rax
ret
lea    0x12b8(%rip),%rax
ret
lea    0x12c9(%rip),%rax
ret
lea    0x12da(%rip),%rax
ret
lea    0x12eb(%rip),%rax
ret
lea    0x12fc(%rip),%rax
ret
lea    0x130d(%rip),%rax
ret
lea    0x131e(%rip),%rax
ret
lea    0x132f(%rip),%rax
ret
lea    0x1340(%rip),%rax
ret
lea    0x1351(%rip),%rax
ret
lea    0x1362(%rip),%rax
ret
lea    0x1373(%rip),%rax
ret
lea    0x138a(%rip),%rax
ret
lea    0x13a1(%rip),%rax
ret
lea    0x13b8(%rip),%rax
ret
lea    0x13cb(%rip),%rax
ret
lea    0x13dc(%rip),%rax
ret
lea    0x13ed(%rip),%rax
ret
lea    0x13fe(%rip),%rax
ret
lea    0x140f(%rip),%rax
ret
lea    0x1420(%rip),%rax
ret
lea    0x1431(%rip),%rax
ret

LLVM IR (-O0):
@.str = [25 x i8] c"EC_NAMED_CURVE_SECT163K1\00"
@.str.1 = [25 x i8] c"EC_NAMED_CURVE_SECT163R1\00"
@.str.2 = [25 x i8] c"EC_NAMED_CURVE_SECT163R2\00"
@.str.3 = [25 x i8] c"EC_NAMED_CURVE_SECT193R1\00"
@.str.4 = [25 x i8] c"EC_NAMED_CURVE_SECT193R2\00"
@.str.5 = [25 x i8] c"EC_NAMED_CURVE_SECT233K1\00"
@.str.6 = [25 x i8] c"EC_NAMED_CURVE_SECT233R1\00"
@.str.7 = [25 x i8] c"EC_NAMED_CURVE_SECT239K1\00"
@.str.8 = [25 x i8] c"EC_NAMED_CURVE_SECT283K1\00"
@.str.9 = [25 x i8] c"EC_NAMED_CURVE_SECT283R1\00"
@.str.10 = [25 x i8] c"EC_NAMED_CURVE_SECT409K1\00"
@.str.11 = [25 x i8] c"EC_NAMED_CURVE_SECT409R1\00"
@.str.12 = [25 x i8] c"EC_NAMED_CURVE_SECT571K1\00"
@.str.13 = [25 x i8] c"EC_NAMED_CURVE_SECT571R1\00"
@.str.14 = [25 x i8] c"EC_NAMED_CURVE_SECP160K1\00"
@.str.15 = [25 x i8] c"EC_NAMED_CURVE_SECP160R1\00"
@.str.16 = [25 x i8] c"EC_NAMED_CURVE_SECP160R2\00"
@.str.17 = [25 x i8] c"EC_NAMED_CURVE_SECP192K1\00"
@.str.18 = [25 x i8] c"EC_NAMED_CURVE_SECP192R1\00"
@.str.19 = [25 x i8] c"EC_NAMED_CURVE_SECP224K1\00"
@.str.20 = [25 x i8] c"EC_NAMED_CURVE_SECP224R1\00"
@.str.21 = [25 x i8] c"EC_NAMED_CURVE_SECP256K1\00"
@.str.22 = [25 x i8] c"EC_NAMED_CURVE_SECP256R1\00"
@.str.23 = [25 x i8] c"EC_NAMED_CURVE_SECP384R1\00"
@.str.24 = [25 x i8] c"EC_NAMED_CURVE_SECP521R1\00"
@.str.25 = [31 x i8] c"EC_NAMED_CURVE_BRAINPOOLP256R1\00"
@.str.26 = [31 x i8] c"EC_NAMED_CURVE_BRAINPOOLP384R1\00"
@.str.27 = [31 x i8] c"EC_NAMED_CURVE_BRAINPOOLP512R1\00"
@.str.28 = [27 x i8] c"EC_NAMED_CURVE_ECDH_X25519\00"
@.str.29 = [25 x i8] c"EC_NAMED_CURVE_ECDH_X448\00"
@.str.30 = [25 x i8] c"EC_NAMED_CURVE_FFDHE2048\00"
@.str.31 = [25 x i8] c"EC_NAMED_CURVE_FFDHE3072\00"
@.str.32 = [25 x i8] c"EC_NAMED_CURVE_FFDHE4096\00"
@.str.33 = [25 x i8] c"EC_NAMED_CURVE_FFDHE6144\00"
@.str.34 = [25 x i8] c"EC_NAMED_CURVE_FFDHE8192\00"
@.str.35 = [47 x i8] c"EC_NAMED_CURVE_ARBITRARY_EXPLICIT_PRIME_CURVES\00"
@.str.36 = [47 x i8] c"EC_NAMED_CURVE_ARBITRARY_EXPLICIT_CHAR2_CURVES\00"
@.str.37 = [14 x i8] c"GOOGLE_GREASE\00"
define i8* @ec_named_curve_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 1, label %6
i32 2, label %7
i32 3, label %8
i32 4, label %9
i32 5, label %10
i32 6, label %11
i32 7, label %12
i32 8, label %13
i32 9, label %14
i32 10, label %15
i32 11, label %16
i32 12, label %17
i32 13, label %18
i32 14, label %19
i32 15, label %20
i32 16, label %21
i32 17, label %22
i32 18, label %23
i32 19, label %24
i32 20, label %25
i32 21, label %26
i32 22, label %27
i32 23, label %28
i32 24, label %29
i32 25, label %30
i32 26, label %31
i32 27, label %32
i32 28, label %33
i32 29, label %34
i32 30, label %35
i32 256, label %36
i32 257, label %37
i32 258, label %38
i32 259, label %39
i32 260, label %40
i32 65281, label %41
i32 65282, label %42
i32 2570, label %43
i32 6682, label %43
i32 10794, label %43
i32 14906, label %43
i32 19018, label %43
i32 23130, label %43
i32 27242, label %43
i32 31354, label %43
i32 35466, label %43
i32 39578, label %43
i32 43690, label %43
i32 47802, label %43
i32 51914, label %43
i32 56026, label %43
i32 60138, label %43
i32 64250, label %43
]
5: ; preds = %1
store i8* null, i8** %2
br label %44
6: ; preds = %1
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str, i64 0, i64 0), i8** %2
br label %44
7: ; preds = %1
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.1, i64 0, i64 0), i8** %2
br label %44
8: ; preds = %1
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.2, i64 0, i64 0), i8** %2
br label %44
9: ; preds = %1
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.3, i64 0, i64 0), i8** %2
br label %44
10: ; preds = %1
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.4, i64 0, i64 0), i8** %2
br label %44
11: ; preds = %1
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.5, i64 0, i64 0), i8** %2
br label %44
12: ; preds = %1
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.6, i64 0, i64 0), i8** %2
br label %44
13: ; preds = %1
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.7, i64 0, i64 0), i8** %2
br label %44
14: ; preds = %1
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.8, i64 0, i64 0), i8** %2
br label %44
15: ; preds = %1
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.9, i64 0, i64 0), i8** %2
br label %44
16: ; preds = %1
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.10, i64 0, i64 0), i8** %2
br label %44
17: ; preds = %1
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.11, i64 0, i64 0), i8** %2
br label %44
18: ; preds = %1
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.12, i64 0, i64 0), i8** %2
br label %44
19: ; preds = %1
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.13, i64 0, i64 0), i8** %2
br label %44
20: ; preds = %1
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.14, i64 0, i64 0), i8** %2
br label %44
21: ; preds = %1
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.15, i64 0, i64 0), i8** %2
br label %44
22: ; preds = %1
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.16, i64 0, i64 0), i8** %2
br label %44
23: ; preds = %1
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.17, i64 0, i64 0), i8** %2
br label %44
24: ; preds = %1
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.18, i64 0, i64 0), i8** %2
br label %44
25: ; preds = %1
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.19, i64 0, i64 0), i8** %2
br label %44
26: ; preds = %1
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.20, i64 0, i64 0), i8** %2
br label %44
27: ; preds = %1
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.21, i64 0, i64 0), i8** %2
br label %44
28: ; preds = %1
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.22, i64 0, i64 0), i8** %2
br label %44
29: ; preds = %1
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.23, i64 0, i64 0), i8** %2
br label %44
30: ; preds = %1
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.24, i64 0, i64 0), i8** %2
br label %44
31: ; preds = %1
store i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.25, i64 0, i64 0), i8** %2
br label %44
32: ; preds = %1
store i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.26, i64 0, i64 0), i8** %2
br label %44
33: ; preds = %1
store i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.27, i64 0, i64 0), i8** %2
br label %44
34: ; preds = %1
store i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.28, i64 0, i64 0), i8** %2
br label %44
35: ; preds = %1
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.29, i64 0, i64 0), i8** %2
br label %44
36: ; preds = %1
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.30, i64 0, i64 0), i8** %2
br label %44
37: ; preds = %1
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.31, i64 0, i64 0), i8** %2
br label %44
38: ; preds = %1
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.32, i64 0, i64 0), i8** %2
br label %44
39: ; preds = %1
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.33, i64 0, i64 0), i8** %2
br label %44
40: ; preds = %1
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.34, i64 0, i64 0), i8** %2
br label %44
41: ; preds = %1
store i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.35, i64 0, i64 0), i8** %2
br label %44
42: ; preds = %1
store i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.36, i64 0, i64 0), i8** %2
br label %44
43: ; preds = %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1
store i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.37, i64 0, i64 0), i8** %2
br label %44
44: ; preds = %43, %42, %41, %40, %39, %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
%45 = load i8*, i8** %2
ret i8* %45
}

LLVM IR (-O2):
@.str = [25 x i8] c"EC_NAMED_CURVE_SECT163K1\00"
@.str.1 = [25 x i8] c"EC_NAMED_CURVE_SECT163R1\00"
@.str.2 = [25 x i8] c"EC_NAMED_CURVE_SECT163R2\00"
@.str.3 = [25 x i8] c"EC_NAMED_CURVE_SECT193R1\00"
@.str.4 = [25 x i8] c"EC_NAMED_CURVE_SECT193R2\00"
@.str.5 = [25 x i8] c"EC_NAMED_CURVE_SECT233K1\00"
@.str.6 = [25 x i8] c"EC_NAMED_CURVE_SECT233R1\00"
@.str.7 = [25 x i8] c"EC_NAMED_CURVE_SECT239K1\00"
@.str.8 = [25 x i8] c"EC_NAMED_CURVE_SECT283K1\00"
@.str.9 = [25 x i8] c"EC_NAMED_CURVE_SECT283R1\00"
@.str.10 = [25 x i8] c"EC_NAMED_CURVE_SECT409K1\00"
@.str.11 = [25 x i8] c"EC_NAMED_CURVE_SECT409R1\00"
@.str.12 = [25 x i8] c"EC_NAMED_CURVE_SECT571K1\00"
@.str.13 = [25 x i8] c"EC_NAMED_CURVE_SECT571R1\00"
@.str.14 = [25 x i8] c"EC_NAMED_CURVE_SECP160K1\00"
@.str.15 = [25 x i8] c"EC_NAMED_CURVE_SECP160R1\00"
@.str.16 = [25 x i8] c"EC_NAMED_CURVE_SECP160R2\00"
@.str.17 = [25 x i8] c"EC_NAMED_CURVE_SECP192K1\00"
@.str.18 = [25 x i8] c"EC_NAMED_CURVE_SECP192R1\00"
@.str.19 = [25 x i8] c"EC_NAMED_CURVE_SECP224K1\00"
@.str.20 = [25 x i8] c"EC_NAMED_CURVE_SECP224R1\00"
@.str.21 = [25 x i8] c"EC_NAMED_CURVE_SECP256K1\00"
@.str.22 = [25 x i8] c"EC_NAMED_CURVE_SECP256R1\00"
@.str.23 = [25 x i8] c"EC_NAMED_CURVE_SECP384R1\00"
@.str.24 = [25 x i8] c"EC_NAMED_CURVE_SECP521R1\00"
@.str.25 = [31 x i8] c"EC_NAMED_CURVE_BRAINPOOLP256R1\00"
@.str.26 = [31 x i8] c"EC_NAMED_CURVE_BRAINPOOLP384R1\00"
@.str.27 = [31 x i8] c"EC_NAMED_CURVE_BRAINPOOLP512R1\00"
@.str.28 = [27 x i8] c"EC_NAMED_CURVE_ECDH_X25519\00"
@.str.29 = [25 x i8] c"EC_NAMED_CURVE_ECDH_X448\00"
@.str.30 = [25 x i8] c"EC_NAMED_CURVE_FFDHE2048\00"
@.str.31 = [25 x i8] c"EC_NAMED_CURVE_FFDHE3072\00"
@.str.32 = [25 x i8] c"EC_NAMED_CURVE_FFDHE4096\00"
@.str.33 = [25 x i8] c"EC_NAMED_CURVE_FFDHE6144\00"
@.str.34 = [25 x i8] c"EC_NAMED_CURVE_FFDHE8192\00"
@.str.35 = [47 x i8] c"EC_NAMED_CURVE_ARBITRARY_EXPLICIT_PRIME_CURVES\00"
@.str.36 = [47 x i8] c"EC_NAMED_CURVE_ARBITRARY_EXPLICIT_CHAR2_CURVES\00"
@.str.37 = [14 x i8] c"GOOGLE_GREASE\00"
define i8* @ec_named_curve_name(i32 %0) {
switch i32 %0, label %40 [
i32 1, label %2
i32 2, label %3
i32 3, label %4
i32 4, label %5
i32 5, label %6
i32 6, label %7
i32 7, label %8
i32 8, label %9
i32 9, label %10
i32 10, label %11
i32 11, label %12
i32 12, label %13
i32 13, label %14
i32 14, label %15
i32 15, label %16
i32 16, label %17
i32 17, label %18
i32 18, label %19
i32 19, label %20
i32 20, label %21
i32 21, label %22
i32 22, label %23
i32 23, label %24
i32 24, label %25
i32 25, label %26
i32 26, label %27
i32 27, label %28
i32 28, label %29
i32 29, label %30
i32 30, label %31
i32 256, label %32
i32 257, label %33
i32 258, label %34
i32 259, label %35
i32 260, label %36
i32 65281, label %37
i32 65282, label %38
i32 2570, label %39
i32 6682, label %39
i32 10794, label %39
i32 14906, label %39
i32 19018, label %39
i32 23130, label %39
i32 27242, label %39
i32 31354, label %39
i32 35466, label %39
i32 39578, label %39
i32 43690, label %39
i32 47802, label %39
i32 51914, label %39
i32 56026, label %39
i32 60138, label %39
i32 64250, label %39
]
2: ; preds = %1
br label %40
3: ; preds = %1
br label %40
4: ; preds = %1
br label %40
5: ; preds = %1
br label %40
6: ; preds = %1
br label %40
7: ; preds = %1
br label %40
8: ; preds = %1
br label %40
9: ; preds = %1
br label %40
10: ; preds = %1
br label %40
11: ; preds = %1
br label %40
12: ; preds = %1
br label %40
13: ; preds = %1
br label %40
14: ; preds = %1
br label %40
15: ; preds = %1
br label %40
16: ; preds = %1
br label %40
17: ; preds = %1
br label %40
18: ; preds = %1
br label %40
19: ; preds = %1
br label %40
20: ; preds = %1
br label %40
21: ; preds = %1
br label %40
22: ; preds = %1
br label %40
23: ; preds = %1
br label %40
24: ; preds = %1
br label %40
25: ; preds = %1
br label %40
26: ; preds = %1
br label %40
27: ; preds = %1
br label %40
28: ; preds = %1
br label %40
29: ; preds = %1
br label %40
30: ; preds = %1
br label %40
31: ; preds = %1
br label %40
32: ; preds = %1
br label %40
33: ; preds = %1
br label %40
34: ; preds = %1
br label %40
35: ; preds = %1
br label %40
36: ; preds = %1
br label %40
37: ; preds = %1
br label %40
38: ; preds = %1
br label %40
39: ; preds = %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1
br label %40
40: ; preds = %1, %39, %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, %4, %3, %2
%41 = phi i8* [ getelementptr inbounds ([14 x i8], [14 x i8]* @.str.37, i64 0, i64 0), %39 ], [ getelementptr inbounds ([47 x i8], [47 x i8]* @.str.36, i64 0, i64 0), %38 ], [ getelementptr inbounds ([47 x i8], [47 x i8]* @.str.35, i64 0, i64 0), %37 ], [ getelementptr inbounds ([25 x i8], [25 x i8]* @.str.34, i64 0, i64 0), %36 ], [ getelementptr inbounds ([25 x i8], [25 x i8]* @.str.33, i64 0, i64 0), %35 ], [ getelementptr inbounds ([25 x i8], [25 x i8]* @.str.32, i64 0, i64 0), %34 ], [ getelementptr inbounds ([25 x i8], [25 x i8]* @.str.31, i64 0, i64 0), %33 ], [ getelementptr inbounds ([25 x i8], [25 x i8]* @.str.30, i64 0, i64 0), %32 ], [ getelementptr inbounds ([25 x i8], [25 x i8]* @.str.29, i64 0, i64 0), %31 ], [ getelementptr inbounds ([27 x i8], [27 x i8]* @.str.28, i64 0, i64 0), %30 ], [ getelementptr inbounds ([31 x i8], [31 x i8]* @.str.27, i64 0, i64 0), %29 ], [ getelementptr inbounds ([31 x i8], [31 x i8]* @.str.26, i64 0, i64 0), %28 ], [ getelementptr inbounds ([31 x i8], [31 x i8]* @.str.25, i64 0, i64 0), %27 ], [ getelementptr inbounds ([25 x i8], [25 x i8]* @.str.24, i64 0, i64 0), %26 ], [ getelementptr inbounds ([25 x i8], [25 x i8]* @.str.23, i64 0, i64 0), %25 ], [ getelementptr inbounds ([25 x i8], [25 x i8]* @.str.22, i64 0, i64 0), %24 ], [ getelementptr inbounds ([25 x i8], [25 x i8]* @.str.21, i64 0, i64 0), %23 ], [ getelementptr inbounds ([25 x i8], [25 x i8]* @.str.20, i64 0, i64 0), %22 ], [ getelementptr inbounds ([25 x i8], [25 x i8]* @.str.19, i64 0, i64 0), %21 ], [ getelementptr inbounds ([25 x i8], [25 x i8]* @.str.18, i64 0, i64 0), %20 ], [ getelementptr inbounds ([25 x i8], [25 x i8]* @.str.17, i64 0, i64 0), %19 ], [ getelementptr inbounds ([25 x i8], [25 x i8]* @.str.16, i64 0, i64 0), %18 ], [ getelementptr inbounds ([25 x i8], [25 x i8]* @.str.15, i64 0, i64 0), %17 ], [ getelementptr inbounds ([25 x i8], [25 x i8]* @.str.14, i64 0, i64 0), %16 ], [ getelementptr inbounds ([25 x i8], [25 x i8]* @.str.13, i64 0, i64 0), %15 ], [ getelementptr inbounds ([25 x i8], [25 x i8]* @.str.12, i64 0, i64 0), %14 ], [ getelementptr inbounds ([25 x i8], [25 x i8]* @.str.11, i64 0, i64 0), %13 ], [ getelementptr inbounds ([25 x i8], [25 x i8]* @.str.10, i64 0, i64 0), %12 ], [ getelementptr inbounds ([25 x i8], [25 x i8]* @.str.9, i64 0, i64 0), %11 ], [ getelementptr inbounds ([25 x i8], [25 x i8]* @.str.8, i64 0, i64 0), %10 ], [ getelementptr inbounds ([25 x i8], [25 x i8]* @.str.7, i64 0, i64 0), %9 ], [ getelementptr inbounds ([25 x i8], [25 x i8]* @.str.6, i64 0, i64 0), %8 ], [ getelementptr inbounds ([25 x i8], [25 x i8]* @.str.5, i64 0, i64 0), %7 ], [ getelementptr inbounds ([25 x i8], [25 x i8]* @.str.4, i64 0, i64 0), %6 ], [ getelementptr inbounds ([25 x i8], [25 x i8]* @.str.3, i64 0, i64 0), %5 ], [ getelementptr inbounds ([25 x i8], [25 x i8]* @.str.2, i64 0, i64 0), %4 ], [ getelementptr inbounds ([25 x i8], [25 x i8]* @.str.1, i64 0, i64 0), %3 ], [ getelementptr inbounds ([25 x i8], [25 x i8]* @.str, i64 0, i64 0), %2 ], [ null, %1 ]
ret i8* %41
}