const char *prism2_pdr_name(int pdr) {
  switch (pdr) {
  case 0x0000:
    return "PDA End Record";
  case 0x0001:
    return "Platform name / Manufacturing part number";
  case 0x0002:
    return "PDA Version Record";
  case 0x0003:
    return "NIC Serial Number";
  case 0x0005:
    return "NIC RAM Size";
  case 0x0006:
    return "RF Modem Supplier Range";
  case 0x0007:
    return "MAC Controller Supplier Range";
  case 0x0008:
    return "NIC ID (component ID)";
  case 0x0101:
    return "MAC Address";
  case 0x0103:
    return "Regulatory Domain List";
  case 0x0104:
    return "Allowed Channel Set/Active Channel List";
  case 0x0105:
    return "Default Channel";
  case 0x0107:
    return "Temperature Type";
  case 0x0200:
    return "IFR Setting";
  case 0x0201:
    return "RFR Setting";
  case 0x0202:
    return "3861 Baseline Register Settings";
  case 0x0203:
    return "3861 Shadow Register Settings";
  case 0x0204:
    return "3861 IF/RF Register Settings";
  case 0x0300:
    return "3861 Channel Calibration Set Point";
  case 0x0301:
    return "3861 Channel Calibration Integrator";
  case 0x0302:
    return "Maximum Radio TX Power";
  case 0x0303:
    return "Scannable/Master Channel List";
  case 0x0400:
    return "3842 PRISM II NIC Configuration";
  case 0x0401:
    return "PRISM USB Identifier";
  case 0x0402:
    return "PRISM PCI Identifier";
  case 0x0403:
    return "PRISM PCI Interface Configuration";
  case 0x0404:
    return "PRISM PCI PM Configuration";
  case 0x0405:
    return "ZIF Synthesizer Settings";
  case 0x0406:
    return "RSSI-to-dBm Conversion Constant";
  case 0x0407:
    return "USB Power Type";
  case 0x0409:
    return "PRISM USB Max Power";
  case 0x0410:
    return "USB Manufacture String";
  case 0x0411:
    return "USB Product String";
  case 0x0412:
    return "SW Diversity Control";
  case 0x0413:
    return "HFO Delay";
  case 0x0900:
    return "3861 Manufacturing Test Channel Set Points";
  case 0x0901:
    return "Manufacturing Test Channel Integrators";
  }
  return "";
}


x86 assembly (clang, -O0):
<prism2_pdr_name>:
push   %rbp
mov    %rsp,%rbp
mov    %edi,-0xc(%rbp)
mov    -0xc(%rbp),%eax
mov    %eax,-0x10(%rbp)
test   %eax,%eax
je     13b8 <prism2_pdr_name+0x2b8>
jmp    111a <prism2_pdr_name+0x1a>
mov    -0x10(%rbp),%eax
sub    $0x1,%eax
je     13c8 <prism2_pdr_name+0x2c8>
jmp    112b <prism2_pdr_name+0x2b>
mov    -0x10(%rbp),%eax
sub    $0x2,%eax
je     13d8 <prism2_pdr_name+0x2d8>
jmp    113c <prism2_pdr_name+0x3c>
mov    -0x10(%rbp),%eax
sub    $0x3,%eax
je     13e8 <prism2_pdr_name+0x2e8>
jmp    114d <prism2_pdr_name+0x4d>
mov    -0x10(%rbp),%eax
sub    $0x5,%eax
je     13f8 <prism2_pdr_name+0x2f8>
jmp    115e <prism2_pdr_name+0x5e>
mov    -0x10(%rbp),%eax
sub    $0x6,%eax
je     1408 <prism2_pdr_name+0x308>
jmp    116f <prism2_pdr_name+0x6f>
mov    -0x10(%rbp),%eax
sub    $0x7,%eax
je     1418 <prism2_pdr_name+0x318>
jmp    1180 <prism2_pdr_name+0x80>
mov    -0x10(%rbp),%eax
sub    $0x8,%eax
je     1428 <prism2_pdr_name+0x328>
jmp    1191 <prism2_pdr_name+0x91>
mov    -0x10(%rbp),%eax
sub    $0x101,%eax
je     1438 <prism2_pdr_name+0x338>
jmp    11a4 <prism2_pdr_name+0xa4>
mov    -0x10(%rbp),%eax
sub    $0x103,%eax
je     1448 <prism2_pdr_name+0x348>
jmp    11b7 <prism2_pdr_name+0xb7>
mov    -0x10(%rbp),%eax
sub    $0x104,%eax
je     1458 <prism2_pdr_name+0x358>
jmp    11ca <prism2_pdr_name+0xca>
mov    -0x10(%rbp),%eax
sub    $0x105,%eax
je     1468 <prism2_pdr_name+0x368>
jmp    11dd <prism2_pdr_name+0xdd>
mov    -0x10(%rbp),%eax
sub    $0x107,%eax
je     1478 <prism2_pdr_name+0x378>
jmp    11f0 <prism2_pdr_name+0xf0>
mov    -0x10(%rbp),%eax
sub    $0x200,%eax
je     1488 <prism2_pdr_name+0x388>
jmp    1203 <prism2_pdr_name+0x103>
mov    -0x10(%rbp),%eax
sub    $0x201,%eax
je     1498 <prism2_pdr_name+0x398>
jmp    1216 <prism2_pdr_name+0x116>
mov    -0x10(%rbp),%eax
sub    $0x202,%eax
je     14a8 <prism2_pdr_name+0x3a8>
jmp    1229 <prism2_pdr_name+0x129>
mov    -0x10(%rbp),%eax
sub    $0x203,%eax
je     14b8 <prism2_pdr_name+0x3b8>
jmp    123c <prism2_pdr_name+0x13c>
mov    -0x10(%rbp),%eax
sub    $0x204,%eax
je     14c8 <prism2_pdr_name+0x3c8>
jmp    124f <prism2_pdr_name+0x14f>
mov    -0x10(%rbp),%eax
sub    $0x300,%eax
je     14d8 <prism2_pdr_name+0x3d8>
jmp    1262 <prism2_pdr_name+0x162>
mov    -0x10(%rbp),%eax
sub    $0x301,%eax
je     14e8 <prism2_pdr_name+0x3e8>
jmp    1275 <prism2_pdr_name+0x175>
mov    -0x10(%rbp),%eax
sub    $0x302,%eax
je     14f8 <prism2_pdr_name+0x3f8>
jmp    1288 <prism2_pdr_name+0x188>
mov    -0x10(%rbp),%eax
sub    $0x303,%eax
je     1508 <prism2_pdr_name+0x408>
jmp    129b <prism2_pdr_name+0x19b>
mov    -0x10(%rbp),%eax
sub    $0x400,%eax
je     1518 <prism2_pdr_name+0x418>
jmp    12ae <prism2_pdr_name+0x1ae>
mov    -0x10(%rbp),%eax
sub    $0x401,%eax
je     1528 <prism2_pdr_name+0x428>
jmp    12c1 <prism2_pdr_name+0x1c1>
mov    -0x10(%rbp),%eax
sub    $0x402,%eax
je     1538 <prism2_pdr_name+0x438>
jmp    12d4 <prism2_pdr_name+0x1d4>
mov    -0x10(%rbp),%eax
sub    $0x403,%eax
je     1548 <prism2_pdr_name+0x448>
jmp    12e7 <prism2_pdr_name+0x1e7>
mov    -0x10(%rbp),%eax
sub    $0x404,%eax
je     1558 <prism2_pdr_name+0x458>
jmp    12fa <prism2_pdr_name+0x1fa>
mov    -0x10(%rbp),%eax
sub    $0x405,%eax
je     1568 <prism2_pdr_name+0x468>
jmp    130d <prism2_pdr_name+0x20d>
mov    -0x10(%rbp),%eax
sub    $0x406,%eax
je     1578 <prism2_pdr_name+0x478>
jmp    1320 <prism2_pdr_name+0x220>
mov    -0x10(%rbp),%eax
sub    $0x407,%eax
je     1588 <prism2_pdr_name+0x488>
jmp    1333 <prism2_pdr_name+0x233>
mov    -0x10(%rbp),%eax
sub    $0x409,%eax
je     1598 <prism2_pdr_name+0x498>
jmp    1346 <prism2_pdr_name+0x246>
mov    -0x10(%rbp),%eax
sub    $0x410,%eax
je     15a8 <prism2_pdr_name+0x4a8>
jmp    1359 <prism2_pdr_name+0x259>
mov    -0x10(%rbp),%eax
sub    $0x411,%eax
je     15b8 <prism2_pdr_name+0x4b8>
jmp    136c <prism2_pdr_name+0x26c>
mov    -0x10(%rbp),%eax
sub    $0x412,%eax
je     15c8 <prism2_pdr_name+0x4c8>
jmp    137f <prism2_pdr_name+0x27f>
mov    -0x10(%rbp),%eax
sub    $0x413,%eax
je     15d8 <prism2_pdr_name+0x4d8>
jmp    1392 <prism2_pdr_name+0x292>
mov    -0x10(%rbp),%eax
sub    $0x900,%eax
je     15e8 <prism2_pdr_name+0x4e8>
jmp    13a5 <prism2_pdr_name+0x2a5>
mov    -0x10(%rbp),%eax
sub    $0x901,%eax
je     15f8 <prism2_pdr_name+0x4f8>
jmp    1608 <prism2_pdr_name+0x508>
lea    0xc41(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1613 <prism2_pdr_name+0x513>
lea    0xc40(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1613 <prism2_pdr_name+0x513>
lea    0xc5a(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1613 <prism2_pdr_name+0x513>
lea    0xc5d(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1613 <prism2_pdr_name+0x513>
lea    0xc5f(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1613 <prism2_pdr_name+0x513>
lea    0xc5c(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1613 <prism2_pdr_name+0x513>
lea    0xc64(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1613 <prism2_pdr_name+0x513>
lea    0xc72(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1613 <prism2_pdr_name+0x513>
lea    0xc78(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1613 <prism2_pdr_name+0x513>
lea    0xc74(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1613 <prism2_pdr_name+0x513>
lea    0xc7b(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1613 <prism2_pdr_name+0x513>
lea    0xc93(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1613 <prism2_pdr_name+0x513>
lea    0xc93(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1613 <prism2_pdr_name+0x513>
lea    0xc94(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1613 <prism2_pdr_name+0x513>
lea    0xc90(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1613 <prism2_pdr_name+0x513>
lea    0xc8c(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1613 <prism2_pdr_name+0x513>
lea    0xc9c(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1613 <prism2_pdr_name+0x513>
lea    0xcaa(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1613 <prism2_pdr_name+0x513>
lea    0xcb7(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1613 <prism2_pdr_name+0x513>
lea    0xcca(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1613 <prism2_pdr_name+0x513>
lea    0xcde(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1613 <prism2_pdr_name+0x513>
lea    0xce5(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1613 <prism2_pdr_name+0x513>
lea    0xcf3(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1613 <prism2_pdr_name+0x513>
lea    0xd03(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1613 <prism2_pdr_name+0x513>
lea    0xd08(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1613 <prism2_pdr_name+0x513>
lea    0xd0d(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1613 <prism2_pdr_name+0x513>
lea    0xd1f(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1613 <prism2_pdr_name+0x513>
lea    0xd2a(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1613 <prism2_pdr_name+0x513>
lea    0xd33(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1613 <prism2_pdr_name+0x513>
lea    0xd43(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1613 <prism2_pdr_name+0x513>
lea    0xd42(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1613 <prism2_pdr_name+0x513>
lea    0xd46(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1613 <prism2_pdr_name+0x513>
lea    0xd4d(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1613 <prism2_pdr_name+0x513>
lea    0xd50(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1613 <prism2_pdr_name+0x513>
lea    0xd55(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1613 <prism2_pdr_name+0x513>
lea    0xd4f(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1613 <prism2_pdr_name+0x513>
lea    0xd6a(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1613 <prism2_pdr_name+0x513>
lea    0xaa7(%rip),%rax
mov    %rax,-0x8(%rbp)
mov    -0x8(%rbp),%rax
pop    %rbp
ret

x86 assembly (clang, -O2):
<prism2_pdr_name>:
cmp    $0x2ff,%edi
jle    113b <prism2_pdr_name+0x3b>
cmp    $0x3ff,%edi
jle    11ab <prism2_pdr_name+0xab>
lea    -0x400(%rdi),%eax
cmp    $0x13,%eax
ja     11ce <prism2_pdr_name+0xce>
lea    0xf3a(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x118c(%rip),%rax
ret
cmp    $0x8,%edi
jbe    1172 <prism2_pdr_name+0x72>
lea    -0x101(%rdi),%eax
cmp    $0x6,%eax
jbe    1193 <prism2_pdr_name+0x93>
add    $0xfffffe00,%edi
cmp    $0x4,%edi
ja     11ea <prism2_pdr_name+0xea>
lea    0xedf(%rip),%rax
movslq (%rax,%rdi,4),%rcx
add    %rax,%rcx
jmp    *%rcx
lea    0x1066(%rip),%rax
ret
lea    0xf3b(%rip),%rax
mov    %edi,%ecx
lea    0xe7e(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
lea    0xf31(%rip),%rax
ret
lea    0xe8a(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0xfc1(%rip),%rax
ret
add    $0xfffffd00,%edi
cmp    $0x3,%edi
ja     11ea <prism2_pdr_name+0xea>
lea    0xe97(%rip),%rax
movslq (%rax,%rdi,4),%rcx
add    %rax,%rcx
jmp    *%rcx
lea    0x107d(%rip),%rax
ret
cmp    $0x900,%edi
je     12da <prism2_pdr_name+0x1da>
cmp    $0x901,%edi
jne    11ea <prism2_pdr_name+0xea>
lea    0x1234(%rip),%rax
ret
lea    0xf79(%rip),%rax
ret
lea    0x10ed(%rip),%rax
ret
lea    0x10fa(%rip),%rax
ret
lea    0x1107(%rip),%rax
ret
lea    0x1121(%rip),%rax
ret
lea    0x1134(%rip),%rax
ret
lea    0x1145(%rip),%rax
ret
lea    0x115d(%rip),%rax
ret
lea    0x1164(%rip),%rax
ret
lea    0x1170(%rip),%rax
ret
lea    0x117f(%rip),%rax
ret
lea    0x118a(%rip),%rax
ret
lea    0x1197(%rip),%rax
ret
lea    0xf8a(%rip),%rax
ret
lea    0xf8e(%rip),%rax
ret
lea    0xfa6(%rip),%rax
ret
lea    0xfbc(%rip),%rax
ret
lea    0xe74(%rip),%rax
ret
lea    0xe7f(%rip),%rax
ret
lea    0xe89(%rip),%rax
ret
lea    0xe8e(%rip),%rax
ret
lea    0xe9e(%rip),%rax
ret
lea    0xeb4(%rip),%rax
ret
lea    0xece(%rip),%rax
ret
lea    0xedd(%rip),%rax
ret
lea    0xefd(%rip),%rax
ret
lea    0xf05(%rip),%rax
ret
lea    0xfa4(%rip),%rax
ret
lea    0xfc0(%rip),%rax
ret
lea    0xfcf(%rip),%rax
ret
lea    0x1111(%rip),%rax
ret

LLVM IR (-O0):
@.str = [15 x i8] c"PDA End Record\00"
@.str.1 = [42 x i8] c"Platform name / Manufacturing part number\00"
@.str.2 = [19 x i8] c"PDA Version Record\00"
@.str.3 = [18 x i8] c"NIC Serial Number\00"
@.str.4 = [13 x i8] c"NIC RAM Size\00"
@.str.5 = [24 x i8] c"RF Modem Supplier Range\00"
@.str.6 = [30 x i8] c"MAC Controller Supplier Range\00"
@.str.7 = [22 x i8] c"NIC ID (component ID)\00"
@.str.8 = [12 x i8] c"MAC Address\00"
@.str.9 = [23 x i8] c"Regulatory Domain List\00"
@.str.10 = [40 x i8] c"Allowed Channel Set/Active Channel List\00"
@.str.11 = [16 x i8] c"Default Channel\00"
@.str.12 = [17 x i8] c"Temperature Type\00"
@.str.13 = [12 x i8] c"IFR Setting\00"
@.str.14 = [12 x i8] c"RFR Setting\00"
@.str.15 = [32 x i8] c"3861 Baseline Register Settings\00"
@.str.16 = [30 x i8] c"3861 Shadow Register Settings\00"
@.str.17 = [29 x i8] c"3861 IF/RF Register Settings\00"
@.str.18 = [35 x i8] c"3861 Channel Calibration Set Point\00"
@.str.19 = [36 x i8] c"3861 Channel Calibration Integrator\00"
@.str.20 = [23 x i8] c"Maximum Radio TX Power\00"
@.str.21 = [30 x i8] c"Scannable/Master Channel List\00"
@.str.22 = [32 x i8] c"3842 PRISM II NIC Configuration\00"
@.str.23 = [21 x i8] c"PRISM USB Identifier\00"
@.str.24 = [21 x i8] c"PRISM PCI Identifier\00"
@.str.25 = [34 x i8] c"PRISM PCI Interface Configuration\00"
@.str.26 = [27 x i8] c"PRISM PCI PM Configuration\00"
@.str.27 = [25 x i8] c"ZIF Synthesizer Settings\00"
@.str.28 = [32 x i8] c"RSSI-to-dBm Conversion Constant\00"
@.str.29 = [15 x i8] c"USB Power Type\00"
@.str.30 = [20 x i8] c"PRISM USB Max Power\00"
@.str.31 = [23 x i8] c"USB Manufacture String\00"
@.str.32 = [19 x i8] c"USB Product String\00"
@.str.33 = [21 x i8] c"SW Diversity Control\00"
@.str.34 = [10 x i8] c"HFO Delay\00"
@.str.35 = [43 x i8] c"3861 Manufacturing Test Channel Set Points\00"
@.str.36 = [39 x i8] c"Manufacturing Test Channel Integrators\00"
@.str.37 = [1 x i8] zeroinitializer
define i8* @prism2_pdr_name(i32 %0) {
%2 = alloca i8*
%3 = alloca i32
store i32 %0, i32* %3
%4 = load i32, i32* %3
switch i32 %4, label %42 [
i32 0, label %5
i32 1, label %6
i32 2, label %7
i32 3, label %8
i32 5, label %9
i32 6, label %10
i32 7, label %11
i32 8, label %12
i32 257, label %13
i32 259, label %14
i32 260, label %15
i32 261, label %16
i32 263, label %17
i32 512, label %18
i32 513, label %19
i32 514, label %20
i32 515, label %21
i32 516, label %22
i32 768, label %23
i32 769, label %24
i32 770, label %25
i32 771, label %26
i32 1024, label %27
i32 1025, label %28
i32 1026, label %29
i32 1027, label %30
i32 1028, label %31
i32 1029, label %32
i32 1030, label %33
i32 1031, label %34
i32 1033, label %35
i32 1040, label %36
i32 1041, label %37
i32 1042, label %38
i32 1043, label %39
i32 2304, label %40
i32 2305, label %41
]
5: ; preds = %1
store i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), i8** %2
br label %43
6: ; preds = %1
store i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.1, i64 0, i64 0), i8** %2
br label %43
7: ; preds = %1
store i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2, i64 0, i64 0), i8** %2
br label %43
8: ; preds = %1
store i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.3, i64 0, i64 0), i8** %2
br label %43
9: ; preds = %1
store i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.4, i64 0, i64 0), i8** %2
br label %43
10: ; preds = %1
store i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.5, i64 0, i64 0), i8** %2
br label %43
11: ; preds = %1
store i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.6, i64 0, i64 0), i8** %2
br label %43
12: ; preds = %1
store i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.7, i64 0, i64 0), i8** %2
br label %43
13: ; preds = %1
store i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.8, i64 0, i64 0), i8** %2
br label %43
14: ; preds = %1
store i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.9, i64 0, i64 0), i8** %2
br label %43
15: ; preds = %1
store i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.10, i64 0, i64 0), i8** %2
br label %43
16: ; preds = %1
store i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.11, i64 0, i64 0), i8** %2
br label %43
17: ; preds = %1
store i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.12, i64 0, i64 0), i8** %2
br label %43
18: ; preds = %1
store i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.13, i64 0, i64 0), i8** %2
br label %43
19: ; preds = %1
store i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.14, i64 0, i64 0), i8** %2
br label %43
20: ; preds = %1
store i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.15, i64 0, i64 0), i8** %2
br label %43
21: ; preds = %1
store i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.16, i64 0, i64 0), i8** %2
br label %43
22: ; preds = %1
store i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.17, i64 0, i64 0), i8** %2
br label %43
23: ; preds = %1
store i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.18, i64 0, i64 0), i8** %2
br label %43
24: ; preds = %1
store i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str.19, i64 0, i64 0), i8** %2
br label %43
25: ; preds = %1
store i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.20, i64 0, i64 0), i8** %2
br label %43
26: ; preds = %1
store i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.21, i64 0, i64 0), i8** %2
br label %43
27: ; preds = %1
store i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.22, i64 0, i64 0), i8** %2
br label %43
28: ; preds = %1
store i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.23, i64 0, i64 0), i8** %2
br label %43
29: ; preds = %1
store i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.24, i64 0, i64 0), i8** %2
br label %43
30: ; preds = %1
store i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.25, i64 0, i64 0), i8** %2
br label %43
31: ; preds = %1
store i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.26, i64 0, i64 0), i8** %2
br label %43
32: ; preds = %1
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.27, i64 0, i64 0), i8** %2
br label %43
33: ; preds = %1
store i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.28, i64 0, i64 0), i8** %2
br label %43
34: ; preds = %1
store i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.29, i64 0, i64 0), i8** %2
br label %43
35: ; preds = %1
store i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.30, i64 0, i64 0), i8** %2
br label %43
36: ; preds = %1
store i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.31, i64 0, i64 0), i8** %2
br label %43
37: ; preds = %1
store i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.32, i64 0, i64 0), i8** %2
br label %43
38: ; preds = %1
store i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.33, i64 0, i64 0), i8** %2
br label %43
39: ; preds = %1
store i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.34, i64 0, i64 0), i8** %2
br label %43
40: ; preds = %1
store i8* getelementptr inbounds ([43 x i8], [43 x i8]* @.str.35, i64 0, i64 0), i8** %2
br label %43
41: ; preds = %1
store i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.36, i64 0, i64 0), i8** %2
br label %43
42: ; preds = %1
store i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.37, i64 0, i64 0), i8** %2
br label %43
43: ; preds = %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
%44 = load i8*, i8** %2
ret i8* %44
}

LLVM IR (-O2):
@.str = [15 x i8] c"PDA End Record\00"
@.str.1 = [42 x i8] c"Platform name / Manufacturing part number\00"
@.str.2 = [19 x i8] c"PDA Version Record\00"
@.str.3 = [18 x i8] c"NIC Serial Number\00"
@.str.4 = [13 x i8] c"NIC RAM Size\00"
@.str.5 = [24 x i8] c"RF Modem Supplier Range\00"
@.str.6 = [30 x i8] c"MAC Controller Supplier Range\00"
@.str.7 = [22 x i8] c"NIC ID (component ID)\00"
@.str.8 = [12 x i8] c"MAC Address\00"
@.str.9 = [23 x i8] c"Regulatory Domain List\00"
@.str.10 = [40 x i8] c"Allowed Channel Set/Active Channel List\00"
@.str.11 = [16 x i8] c"Default Channel\00"
@.str.12 = [17 x i8] c"Temperature Type\00"
@.str.13 = [12 x i8] c"IFR Setting\00"
@.str.14 = [12 x i8] c"RFR Setting\00"
@.str.15 = [32 x i8] c"3861 Baseline Register Settings\00"
@.str.16 = [30 x i8] c"3861 Shadow Register Settings\00"
@.str.17 = [29 x i8] c"3861 IF/RF Register Settings\00"
@.str.18 = [35 x i8] c"3861 Channel Calibration Set Point\00"
@.str.19 = [36 x i8] c"3861 Channel Calibration Integrator\00"
@.str.20 = [23 x i8] c"Maximum Radio TX Power\00"
@.str.21 = [30 x i8] c"Scannable/Master Channel List\00"
@.str.22 = [32 x i8] c"3842 PRISM II NIC Configuration\00"
@.str.23 = [21 x i8] c"PRISM USB Identifier\00"
@.str.24 = [21 x i8] c"PRISM PCI Identifier\00"
@.str.25 = [34 x i8] c"PRISM PCI Interface Configuration\00"
@.str.26 = [27 x i8] c"PRISM PCI PM Configuration\00"
@.str.27 = [25 x i8] c"ZIF Synthesizer Settings\00"
@.str.28 = [32 x i8] c"RSSI-to-dBm Conversion Constant\00"
@.str.29 = [15 x i8] c"USB Power Type\00"
@.str.30 = [20 x i8] c"PRISM USB Max Power\00"
@.str.31 = [23 x i8] c"USB Manufacture String\00"
@.str.32 = [19 x i8] c"USB Product String\00"
@.str.33 = [21 x i8] c"SW Diversity Control\00"
@.str.34 = [10 x i8] c"HFO Delay\00"
@.str.35 = [43 x i8] c"3861 Manufacturing Test Channel Set Points\00"
@.str.36 = [39 x i8] c"Manufacturing Test Channel Integrators\00"
@.str.37 = [1 x i8] zeroinitializer
define i8* @prism2_pdr_name(i32 %0) {
switch i32 %0, label %38 [
i32 0, label %39
i32 1, label %2
i32 2, label %3
i32 3, label %4
i32 5, label %5
i32 6, label %6
i32 7, label %7
i32 8, label %8
i32 257, label %9
i32 259, label %10
i32 260, label %11
i32 261, label %12
i32 263, label %13
i32 512, label %14
i32 513, label %15
i32 514, label %16
i32 515, label %17
i32 516, label %18
i32 768, label %19
i32 769, label %20
i32 770, label %21
i32 771, label %22
i32 1024, label %23
i32 1025, label %24
i32 1026, label %25
i32 1027, label %26
i32 1028, label %27
i32 1029, label %28
i32 1030, label %29
i32 1031, label %30
i32 1033, label %31
i32 1040, label %32
i32 1041, label %33
i32 1042, label %34
i32 1043, label %35
i32 2304, label %36
i32 2305, label %37
]
2: ; preds = %1
br label %39
3: ; preds = %1
br label %39
4: ; preds = %1
br label %39
5: ; preds = %1
br label %39
6: ; preds = %1
br label %39
7: ; preds = %1
br label %39
8: ; preds = %1
br label %39
9: ; preds = %1
br label %39
10: ; preds = %1
br label %39
11: ; preds = %1
br label %39
12: ; preds = %1
br label %39
13: ; preds = %1
br label %39
14: ; preds = %1
br label %39
15: ; preds = %1
br label %39
16: ; preds = %1
br label %39
17: ; preds = %1
br label %39
18: ; preds = %1
br label %39
19: ; preds = %1
br label %39
20: ; preds = %1
br label %39
21: ; preds = %1
br label %39
22: ; preds = %1
br label %39
23: ; preds = %1
br label %39
24: ; preds = %1
br label %39
25: ; preds = %1
br label %39
26: ; preds = %1
br label %39
27: ; preds = %1
br label %39
28: ; preds = %1
br label %39
29: ; preds = %1
br label %39
30: ; preds = %1
br label %39
31: ; preds = %1
br label %39
32: ; preds = %1
br label %39
33: ; preds = %1
br label %39
34: ; preds = %1
br label %39
35: ; preds = %1
br label %39
36: ; preds = %1
br label %39
37: ; preds = %1
br label %39
38: ; preds = %1
br label %39
39: ; preds = %1, %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
%40 = phi i8* [ getelementptr inbounds ([1 x i8], [1 x i8]* @.str.37, i64 0, i64 0), %38 ], [ getelementptr inbounds ([39 x i8], [39 x i8]* @.str.36, i64 0, i64 0), %37 ], [ getelementptr inbounds ([43 x i8], [43 x i8]* @.str.35, i64 0, i64 0), %36 ], [ getelementptr inbounds ([10 x i8], [10 x i8]* @.str.34, i64 0, i64 0), %35 ], [ getelementptr inbounds ([21 x i8], [21 x i8]* @.str.33, i64 0, i64 0), %34 ], [ getelementptr inbounds ([19 x i8], [19 x i8]* @.str.32, i64 0, i64 0), %33 ], [ getelementptr inbounds ([23 x i8], [23 x i8]* @.str.31, i64 0, i64 0), %32 ], [ getelementptr inbounds ([20 x i8], [20 x i8]* @.str.30, i64 0, i64 0), %31 ], [ getelementptr inbounds ([15 x i8], [15 x i8]* @.str.29, i64 0, i64 0), %30 ], [ getelementptr inbounds ([32 x i8], [32 x i8]* @.str.28, i64 0, i64 0), %29 ], [ getelementptr inbounds ([25 x i8], [25 x i8]* @.str.27, i64 0, i64 0), %28 ], [ getelementptr inbounds ([27 x i8], [27 x i8]* @.str.26, i64 0, i64 0), %27 ], [ getelementptr inbounds ([34 x i8], [34 x i8]* @.str.25, i64 0, i64 0), %26 ], [ getelementptr inbounds ([21 x i8], [21 x i8]* @.str.24, i64 0, i64 0), %25 ], [ getelementptr inbounds ([21 x i8], [21 x i8]* @.str.23, i64 0, i64 0), %24 ], [ getelementptr inbounds ([32 x i8], [32 x i8]* @.str.22, i64 0, i64 0), %23 ], [ getelementptr inbounds ([30 x i8], [30 x i8]* @.str.21, i64 0, i64 0), %22 ], [ getelementptr inbounds ([23 x i8], [23 x i8]* @.str.20, i64 0, i64 0), %21 ], [ getelementptr inbounds ([36 x i8], [36 x i8]* @.str.19, i64 0, i64 0), %20 ], [ getelementptr inbounds ([35 x i8], [35 x i8]* @.str.18, i64 0, i64 0), %19 ], [ getelementptr inbounds ([29 x i8], [29 x i8]* @.str.17, i64 0, i64 0), %18 ], [ getelementptr inbounds ([30 x i8], [30 x i8]* @.str.16, i64 0, i64 0), %17 ], [ getelementptr inbounds ([32 x i8], [32 x i8]* @.str.15, i64 0, i64 0), %16 ], [ getelementptr inbounds ([12 x i8], [12 x i8]* @.str.14, i64 0, i64 0), %15 ], [ getelementptr inbounds ([12 x i8], [12 x i8]* @.str.13, i64 0, i64 0), %14 ], [ getelementptr inbounds ([17 x i8], [17 x i8]* @.str.12, i64 0, i64 0), %13 ], [ getelementptr inbounds ([16 x i8], [16 x i8]* @.str.11, i64 0, i64 0), %12 ], [ getelementptr inbounds ([40 x i8], [40 x i8]* @.str.10, i64 0, i64 0), %11 ], [ getelementptr inbounds ([23 x i8], [23 x i8]* @.str.9, i64 0, i64 0), %10 ], [ getelementptr inbounds ([12 x i8], [12 x i8]* @.str.8, i64 0, i64 0), %9 ], [ getelementptr inbounds ([22 x i8], [22 x i8]* @.str.7, i64 0, i64 0), %8 ], [ getelementptr inbounds ([30 x i8], [30 x i8]* @.str.6, i64 0, i64 0), %7 ], [ getelementptr inbounds ([24 x i8], [24 x i8]* @.str.5, i64 0, i64 0), %6 ], [ getelementptr inbounds ([13 x i8], [13 x i8]* @.str.4, i64 0, i64 0), %5 ], [ getelementptr inbounds ([18 x i8], [18 x i8]* @.str.3, i64 0, i64 0), %4 ], [ getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2, i64 0, i64 0), %3 ], [ getelementptr inbounds ([42 x i8], [42 x i8]* @.str.1, i64 0, i64 0), %2 ], [ getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), %1 ]
ret i8* %40
}