char *ipprotocol(unsigned char id) {
  switch (id) {
  case 0:
    return ("HOPOPT");
  case 1:
    return ("ICMP");
  case 2:
    return ("IGMP");
  case 3:
    return ("GGP");
  case 4:
    return ("IPv4");
  case 5:
    return ("ST");
  case 6:
    return ("TCP");
  case 7:
    return ("CBT");
  case 8:
    return ("EGP");
  case 9:
    return ("IGP");
  case 10:
    return ("BBN-RCC-MON");
  case 11:
    return ("NVP-II");
  case 12:
    return ("PUP");
  case 13:
    return ("ARGUS");
  case 14:
    return ("EMCON");
  case 15:
    return ("XNET");
  case 16:
    return ("CHAOS");
  case 17:
    return ("UDP");
  case 18:
    return ("MUX");
  case 19:
    return ("DCN-MEAS");
  case 20:
    return ("HMP");
  case 21:
    return ("PRM");
  case 22:
    return ("XNS-IDP");
  case 23:
    return ("TRUNK-1");
  case 24:
    return ("TRUNK-2");
  case 25:
    return ("LEAF-1");
  case 26:
    return ("LEAF-2");
  case 27:
    return ("RDP");
  case 28:
    return ("IRTP");
  case 29:
    return ("ISO-TP4");
  case 30:
    return ("NETBLT");
  case 31:
    return ("MFE-NSP");
  case 32:
    return ("MERIT-INP");
  case 33:
    return ("DCCP");
  case 34:
    return ("3PC");
  case 35:
    return ("IDPR");
  case 36:
    return ("XTP");
  case 37:
    return ("DDP");
  case 38:
    return ("IDPR-CMTP");
  case 39:
    return ("TP++");
  case 40:
    return ("IL");
  case 41:
    return ("IPv6");
  case 42:
    return ("SDRP");
  case 43:
    return ("IPv6-Route");
  case 44:
    return ("IPv6-Frag");
  case 45:
    return ("IDRP");
  case 46:
    return ("RSVP");
  case 47:
    return ("GRE");
  case 48:
    return ("MHRP");
  case 49:
    return ("BNA");
  case 50:
    return ("ESP");
  case 51:
    return ("AH");
  case 52:
    return ("I-NLSP");
  case 53:
    return ("SWIPE");
  case 54:
    return ("NARP");
  case 55:
    return ("MOBILE");
  case 56:
    return ("TLSP");
  case 57:
    return ("SKIP");
  case 58:
    return ("IPv6-ICMP");
  case 59:
    return ("IPv6-NoNxt");
  case 60:
    return ("IPv6-Opts");
  case 61:
    return ("Any host internal protocol");
  case 62:
    return ("CFTP");
  case 63:
    return ("Any local network");
  case 64:
    return ("SAT-EXPAK");
  case 65:
    return ("KRYPTOLAN");
  case 66:
    return ("RVD");
  case 67:
    return ("IPPC");
  case 68:
    return ("Any distributed file system");
  case 69:
    return ("SAT-MON");
  case 70:
    return ("VISA");
  case 71:
    return ("IPCV");
  case 72:
    return ("CPNX");
  case 73:
    return ("CPHB");
  case 74:
    return ("WSN");
  case 75:
    return ("PVP");
  case 76:
    return ("BR-SAT-MON");
  case 77:
    return ("SUN-ND");
  case 78:
    return ("WB-MON");
  case 79:
    return ("WB-EXPAK");
  case 80:
    return ("ISO-IP");
  case 81:
    return ("VMTP");
  case 82:
    return ("SECURE-VMTP");
  case 83:
    return ("VINES");
  case 84:
    return ("TTP");
  case 85:
    return ("NSFNET-IGP");
  case 86:
    return ("DGP");
  case 87:
    return ("TCF");
  case 88:
    return ("EIGRP");
  case 89:
    return ("OSPF");
  case 90:
    return ("Sprite-RPC");
  case 91:
    return ("LARP");
  case 92:
    return ("MTP");
  case 93:
    return ("AX.25");
  case 94:
    return ("IPIP");
  case 95:
    return ("MICP");
  case 96:
    return ("SCC-SP");
  case 97:
    return ("ETHERIP");
  case 98:
    return ("ENCAP");
  case 99:
    return ("Any private encryption scheme");
  case 100:
    return ("GMTP");
  case 101:
    return ("IFMP");
  case 102:
    return ("PNNI");
  case 103:
    return ("PIM");
  case 104:
    return ("ARIS");
  case 105:
    return ("SCPS");
  case 106:
    return ("QNX");
  case 107:
    return ("A/N");
  case 108:
    return ("IPComp");
  case 109:
    return ("SNP");
  case 110:
    return ("Compaq-Peer");
  case 111:
    return ("IPX-in-IP");
  case 112:
    return ("VRRP");
  case 113:
    return ("PGM");
  case 114:
    return ("Any 0-hop protocol");
  case 115:
    return ("L2TP");
  case 116:
    return ("DDX");
  case 117:
    return ("IATP");
  case 118:
    return ("STP");
  case 119:
    return ("SRP");
  case 120:
    return ("UTI");
  case 121:
    return ("SMP");
  case 122:
    return ("SM");
  case 123:
    return ("PTP");
  case 124:
    return ("IS-IS over IPv4");
  case 125:
    return ("FIRE");
  case 126:
    return ("CRTP");
  case 127:
    return ("CRUDP");
  case 128:
    return ("SSCOPMCE");
  case 129:
    return ("IPLT");
  case 130:
    return ("SPS");
  case 131:
    return ("PIPE");
  case 132:
    return ("SCTP");
  case 133:
    return ("FC");
  case 134:
    return ("RSVP-E2E-IGNORE");
  case 135:
    return ("Mobility Header");
  case 136:
    return ("UDPLite");
  case 137:
    return ("MPLS-in-IP");
  case 138:
    return ("manet");
  case 139:
    return ("HIP");
  case 140:
    return ("Shim6");
  case 141:
    return ("WESP");
  case 142:
    return ("ROHC");
  case 253:
    return ("experimentation and testing");
  case 254:
    return ("experimentation and testing");
  case 255:
    return ("Reserved");
  }
  return ("UNKNOWN");
}


x86 assembly (clang, -O0):
<ipprotocol>:
push   %rbp
mov    %rsp,%rbp
mov    %dil,%al
mov    %al,-0x9(%rbp)
movzbl -0x9(%rbp),%eax
mov    %rax,-0x18(%rbp)
xor    %eax,%eax
test   %al,%al
jne    1a50 <ipprotocol+0x950>
mov    -0x18(%rbp),%rax
lea    0xed9(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x12c9(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x13f4(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x12b0(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x12a5(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x15a7(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x1289(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x127c(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x1270(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x1264(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x145b(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x1248(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x1244(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x123b(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x122f(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x1225(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x121b(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x1210(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x14e8(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x11f6(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x11ea(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x11e3(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x11d7(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x11cb(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x11c3(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x11bb(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x11b3(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x11aa(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x11a1(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x1195(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x118a(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x1182(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x1179(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x1171(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x116b(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x1160(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x1154(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x1149(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x113d(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x1131(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x112b(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x1120(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x1113(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x1108(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x10fd(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x10f8(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x10f2(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x10e7(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x10dc(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x10d0(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x10c5(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x133f(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x10a9(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x109c(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x1093(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x1089(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x107e(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x1075(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x106a(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x105f(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x1059(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x1054(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x104e(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x1059(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x104e(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x1050(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x104a(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x1044(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x1038(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x102d(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x1058(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x1029(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x101e(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x1013(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0x1008(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xffd(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xff1(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xfe5(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xfe0(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xfd7(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xfce(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xfc7(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xfc5(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xfae(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xfaa(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xfa0(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xf94(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xf8f(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xf83(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xf77(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xf6d(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xf62(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xf5d(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xdd7(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xf42(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xf38(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xf2d(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xf22(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xf19(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xf11(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xf07(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xf15(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xf0a(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xeff(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xef4(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xee8(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xedd(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xed2(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xec6(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xeba(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xeb1(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xea5(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xea1(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xe9b(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xe90(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xe84(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xe87(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xe7c(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xe70(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xe65(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xe59(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xe4d(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xe41(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xe35(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xe28(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xe1c(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xe1c(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xe11(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xe06(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xdfc(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xdf5(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xdea(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xdde(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xdd3(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xdc8(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xdbb(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xdbb(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xdbb(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xdb3(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xdae(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xda4(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xd98(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xd8e(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xd83(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xd78(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xd68(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xd74(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1a5b <ipprotocol+0x95b>
lea    0xd6d(%rip),%rax
mov    %rax,-0x8(%rbp)
mov    -0x8(%rbp),%rax
pop    %rbp
ret

x86 assembly (clang, -O2):
<ipprotocol>:
xor    $0x80,%dil
movzbl %dil,%eax
lea    0x12bd(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
ret

LLVM IR (-O0):
@.str = [7 x i8] c"HOPOPT\00"
@.str.1 = [5 x i8] c"ICMP\00"
@.str.2 = [5 x i8] c"IGMP\00"
@.str.3 = [4 x i8] c"GGP\00"
@.str.4 = [5 x i8] c"IPv4\00"
@.str.5 = [3 x i8] c"ST\00"
@.str.6 = [4 x i8] c"TCP\00"
@.str.7 = [4 x i8] c"CBT\00"
@.str.8 = [4 x i8] c"EGP\00"
@.str.9 = [4 x i8] c"IGP\00"
@.str.10 = [12 x i8] c"BBN-RCC-MON\00"
@.str.11 = [7 x i8] c"NVP-II\00"
@.str.12 = [4 x i8] c"PUP\00"
@.str.13 = [6 x i8] c"ARGUS\00"
@.str.14 = [6 x i8] c"EMCON\00"
@.str.15 = [5 x i8] c"XNET\00"
@.str.16 = [6 x i8] c"CHAOS\00"
@.str.17 = [4 x i8] c"UDP\00"
@.str.18 = [4 x i8] c"MUX\00"
@.str.19 = [9 x i8] c"DCN-MEAS\00"
@.str.20 = [4 x i8] c"HMP\00"
@.str.21 = [4 x i8] c"PRM\00"
@.str.22 = [8 x i8] c"XNS-IDP\00"
@.str.23 = [8 x i8] c"TRUNK-1\00"
@.str.24 = [8 x i8] c"TRUNK-2\00"
@.str.25 = [7 x i8] c"LEAF-1\00"
@.str.26 = [7 x i8] c"LEAF-2\00"
@.str.27 = [4 x i8] c"RDP\00"
@.str.28 = [5 x i8] c"IRTP\00"
@.str.29 = [8 x i8] c"ISO-TP4\00"
@.str.30 = [7 x i8] c"NETBLT\00"
@.str.31 = [8 x i8] c"MFE-NSP\00"
@.str.32 = [10 x i8] c"MERIT-INP\00"
@.str.33 = [5 x i8] c"DCCP\00"
@.str.34 = [4 x i8] c"3PC\00"
@.str.35 = [5 x i8] c"IDPR\00"
@.str.36 = [4 x i8] c"XTP\00"
@.str.37 = [4 x i8] c"DDP\00"
@.str.38 = [10 x i8] c"IDPR-CMTP\00"
@.str.39 = [5 x i8] c"TP++\00"
@.str.40 = [3 x i8] c"IL\00"
@.str.41 = [5 x i8] c"IPv6\00"
@.str.42 = [5 x i8] c"SDRP\00"
@.str.43 = [11 x i8] c"IPv6-Route\00"
@.str.44 = [10 x i8] c"IPv6-Frag\00"
@.str.45 = [5 x i8] c"IDRP\00"
@.str.46 = [5 x i8] c"RSVP\00"
@.str.47 = [4 x i8] c"GRE\00"
@.str.48 = [5 x i8] c"MHRP\00"
@.str.49 = [4 x i8] c"BNA\00"
@.str.50 = [4 x i8] c"ESP\00"
@.str.51 = [3 x i8] c"AH\00"
@.str.52 = [7 x i8] c"I-NLSP\00"
@.str.53 = [6 x i8] c"SWIPE\00"
@.str.54 = [5 x i8] c"NARP\00"
@.str.55 = [7 x i8] c"MOBILE\00"
@.str.56 = [5 x i8] c"TLSP\00"
@.str.57 = [5 x i8] c"SKIP\00"
@.str.58 = [10 x i8] c"IPv6-ICMP\00"
@.str.59 = [11 x i8] c"IPv6-NoNxt\00"
@.str.60 = [10 x i8] c"IPv6-Opts\00"
@.str.61 = [27 x i8] c"Any host internal protocol\00"
@.str.62 = [5 x i8] c"CFTP\00"
@.str.63 = [18 x i8] c"Any local network\00"
@.str.64 = [10 x i8] c"SAT-EXPAK\00"
@.str.65 = [10 x i8] c"KRYPTOLAN\00"
@.str.66 = [4 x i8] c"RVD\00"
@.str.67 = [5 x i8] c"IPPC\00"
@.str.68 = [28 x i8] c"Any distributed file system\00"
@.str.69 = [8 x i8] c"SAT-MON\00"
@.str.70 = [5 x i8] c"VISA\00"
@.str.71 = [5 x i8] c"IPCV\00"
@.str.72 = [5 x i8] c"CPNX\00"
@.str.73 = [5 x i8] c"CPHB\00"
@.str.74 = [4 x i8] c"WSN\00"
@.str.75 = [4 x i8] c"PVP\00"
@.str.76 = [11 x i8] c"BR-SAT-MON\00"
@.str.77 = [7 x i8] c"SUN-ND\00"
@.str.78 = [7 x i8] c"WB-MON\00"
@.str.79 = [9 x i8] c"WB-EXPAK\00"
@.str.80 = [7 x i8] c"ISO-IP\00"
@.str.81 = [5 x i8] c"VMTP\00"
@.str.82 = [12 x i8] c"SECURE-VMTP\00"
@.str.83 = [6 x i8] c"VINES\00"
@.str.84 = [4 x i8] c"TTP\00"
@.str.85 = [11 x i8] c"NSFNET-IGP\00"
@.str.86 = [4 x i8] c"DGP\00"
@.str.87 = [4 x i8] c"TCF\00"
@.str.88 = [6 x i8] c"EIGRP\00"
@.str.89 = [5 x i8] c"OSPF\00"
@.str.90 = [11 x i8] c"Sprite-RPC\00"
@.str.91 = [5 x i8] c"LARP\00"
@.str.92 = [4 x i8] c"MTP\00"
@.str.93 = [6 x i8] c"AX.25\00"
@.str.94 = [5 x i8] c"IPIP\00"
@.str.95 = [5 x i8] c"MICP\00"
@.str.96 = [7 x i8] c"SCC-SP\00"
@.str.97 = [8 x i8] c"ETHERIP\00"
@.str.98 = [6 x i8] c"ENCAP\00"
@.str.99 = [30 x i8] c"Any private encryption scheme\00"
@.str.100 = [5 x i8] c"GMTP\00"
@.str.101 = [5 x i8] c"IFMP\00"
@.str.102 = [5 x i8] c"PNNI\00"
@.str.103 = [4 x i8] c"PIM\00"
@.str.104 = [5 x i8] c"ARIS\00"
@.str.105 = [5 x i8] c"SCPS\00"
@.str.106 = [4 x i8] c"QNX\00"
@.str.107 = [4 x i8] c"A/N\00"
@.str.108 = [7 x i8] c"IPComp\00"
@.str.109 = [4 x i8] c"SNP\00"
@.str.110 = [12 x i8] c"Compaq-Peer\00"
@.str.111 = [10 x i8] c"IPX-in-IP\00"
@.str.112 = [5 x i8] c"VRRP\00"
@.str.113 = [4 x i8] c"PGM\00"
@.str.114 = [19 x i8] c"Any 0-hop protocol\00"
@.str.115 = [5 x i8] c"L2TP\00"
@.str.116 = [4 x i8] c"DDX\00"
@.str.117 = [5 x i8] c"IATP\00"
@.str.118 = [4 x i8] c"STP\00"
@.str.119 = [4 x i8] c"SRP\00"
@.str.120 = [4 x i8] c"UTI\00"
@.str.121 = [4 x i8] c"SMP\00"
@.str.122 = [3 x i8] c"SM\00"
@.str.123 = [4 x i8] c"PTP\00"
@.str.124 = [16 x i8] c"IS-IS over IPv4\00"
@.str.125 = [5 x i8] c"FIRE\00"
@.str.126 = [5 x i8] c"CRTP\00"
@.str.127 = [6 x i8] c"CRUDP\00"
@.str.128 = [9 x i8] c"SSCOPMCE\00"
@.str.129 = [5 x i8] c"IPLT\00"
@.str.130 = [4 x i8] c"SPS\00"
@.str.131 = [5 x i8] c"PIPE\00"
@.str.132 = [5 x i8] c"SCTP\00"
@.str.133 = [3 x i8] c"FC\00"
@.str.134 = [16 x i8] c"RSVP-E2E-IGNORE\00"
@.str.135 = [16 x i8] c"Mobility Header\00"
@.str.136 = [8 x i8] c"UDPLite\00"
@.str.137 = [11 x i8] c"MPLS-in-IP\00"
@.str.138 = [6 x i8] c"manet\00"
@.str.139 = [4 x i8] c"HIP\00"
@.str.140 = [6 x i8] c"Shim6\00"
@.str.141 = [5 x i8] c"WESP\00"
@.str.142 = [5 x i8] c"ROHC\00"
@.str.143 = [28 x i8] c"experimentation and testing\00"
@.str.144 = [9 x i8] c"Reserved\00"
@.str.145 = [8 x i8] c"UNKNOWN\00"
define i8* @ipprotocol(i8 zeroext %0) {
%2 = alloca i8*
%3 = alloca i8
store i8 %0, i8* %3
%4 = load i8, i8* %3
%5 = zext i8 %4 to i32
switch i32 %5, label %152 [
i32 0, label %6
i32 1, label %7
i32 2, label %8
i32 3, label %9
i32 4, label %10
i32 5, label %11
i32 6, label %12
i32 7, label %13
i32 8, label %14
i32 9, label %15
i32 10, label %16
i32 11, label %17
i32 12, label %18
i32 13, label %19
i32 14, label %20
i32 15, label %21
i32 16, label %22
i32 17, label %23
i32 18, label %24
i32 19, label %25
i32 20, label %26
i32 21, label %27
i32 22, label %28
i32 23, label %29
i32 24, label %30
i32 25, label %31
i32 26, label %32
i32 27, label %33
i32 28, label %34
i32 29, label %35
i32 30, label %36
i32 31, label %37
i32 32, label %38
i32 33, label %39
i32 34, label %40
i32 35, label %41
i32 36, label %42
i32 37, label %43
i32 38, label %44
i32 39, label %45
i32 40, label %46
i32 41, label %47
i32 42, label %48
i32 43, label %49
i32 44, label %50
i32 45, label %51
i32 46, label %52
i32 47, label %53
i32 48, label %54
i32 49, label %55
i32 50, label %56
i32 51, label %57
i32 52, label %58
i32 53, label %59
i32 54, label %60
i32 55, label %61
i32 56, label %62
i32 57, label %63
i32 58, label %64
i32 59, label %65
i32 60, label %66
i32 61, label %67
i32 62, label %68
i32 63, label %69
i32 64, label %70
i32 65, label %71
i32 66, label %72
i32 67, label %73
i32 68, label %74
i32 69, label %75
i32 70, label %76
i32 71, label %77
i32 72, label %78
i32 73, label %79
i32 74, label %80
i32 75, label %81
i32 76, label %82
i32 77, label %83
i32 78, label %84
i32 79, label %85
i32 80, label %86
i32 81, label %87
i32 82, label %88
i32 83, label %89
i32 84, label %90
i32 85, label %91
i32 86, label %92
i32 87, label %93
i32 88, label %94
i32 89, label %95
i32 90, label %96
i32 91, label %97
i32 92, label %98
i32 93, label %99
i32 94, label %100
i32 95, label %101
i32 96, label %102
i32 97, label %103
i32 98, label %104
i32 99, label %105
i32 100, label %106
i32 101, label %107
i32 102, label %108
i32 103, label %109
i32 104, label %110
i32 105, label %111
i32 106, label %112
i32 107, label %113
i32 108, label %114
i32 109, label %115
i32 110, label %116
i32 111, label %117
i32 112, label %118
i32 113, label %119
i32 114, label %120
i32 115, label %121
i32 116, label %122
i32 117, label %123
i32 118, label %124
i32 119, label %125
i32 120, label %126
i32 121, label %127
i32 122, label %128
i32 123, label %129
i32 124, label %130
i32 125, label %131
i32 126, label %132
i32 127, label %133
i32 128, label %134
i32 129, label %135
i32 130, label %136
i32 131, label %137
i32 132, label %138
i32 133, label %139
i32 134, label %140
i32 135, label %141
i32 136, label %142
i32 137, label %143
i32 138, label %144
i32 139, label %145
i32 140, label %146
i32 141, label %147
i32 142, label %148
i32 253, label %149
i32 254, label %150
i32 255, label %151
]
6: ; preds = %1
store i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str, i64 0, i64 0), i8** %2
br label %153
7: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0), i8** %2
br label %153
8: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i8** %2
br label %153
9: ; preds = %1
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.3, i64 0, i64 0), i8** %2
br label %153
10: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.4, i64 0, i64 0), i8** %2
br label %153
11: ; preds = %1
store i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.5, i64 0, i64 0), i8** %2
br label %153
12: ; preds = %1
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.6, i64 0, i64 0), i8** %2
br label %153
13: ; preds = %1
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.7, i64 0, i64 0), i8** %2
br label %153
14: ; preds = %1
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.8, i64 0, i64 0), i8** %2
br label %153
15: ; preds = %1
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.9, i64 0, i64 0), i8** %2
br label %153
16: ; preds = %1
store i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.10, i64 0, i64 0), i8** %2
br label %153
17: ; preds = %1
store i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.11, i64 0, i64 0), i8** %2
br label %153
18: ; preds = %1
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.12, i64 0, i64 0), i8** %2
br label %153
19: ; preds = %1
store i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.13, i64 0, i64 0), i8** %2
br label %153
20: ; preds = %1
store i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.14, i64 0, i64 0), i8** %2
br label %153
21: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0), i8** %2
br label %153
22: ; preds = %1
store i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.16, i64 0, i64 0), i8** %2
br label %153
23: ; preds = %1
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.17, i64 0, i64 0), i8** %2
br label %153
24: ; preds = %1
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.18, i64 0, i64 0), i8** %2
br label %153
25: ; preds = %1
store i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.19, i64 0, i64 0), i8** %2
br label %153
26: ; preds = %1
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.20, i64 0, i64 0), i8** %2
br label %153
27: ; preds = %1
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.21, i64 0, i64 0), i8** %2
br label %153
28: ; preds = %1
store i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.22, i64 0, i64 0), i8** %2
br label %153
29: ; preds = %1
store i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.23, i64 0, i64 0), i8** %2
br label %153
30: ; preds = %1
store i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.24, i64 0, i64 0), i8** %2
br label %153
31: ; preds = %1
store i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.25, i64 0, i64 0), i8** %2
br label %153
32: ; preds = %1
store i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.26, i64 0, i64 0), i8** %2
br label %153
33: ; preds = %1
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.27, i64 0, i64 0), i8** %2
br label %153
34: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.28, i64 0, i64 0), i8** %2
br label %153
35: ; preds = %1
store i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.29, i64 0, i64 0), i8** %2
br label %153
36: ; preds = %1
store i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.30, i64 0, i64 0), i8** %2
br label %153
37: ; preds = %1
store i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.31, i64 0, i64 0), i8** %2
br label %153
38: ; preds = %1
store i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.32, i64 0, i64 0), i8** %2
br label %153
39: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.33, i64 0, i64 0), i8** %2
br label %153
40: ; preds = %1
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.34, i64 0, i64 0), i8** %2
br label %153
41: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.35, i64 0, i64 0), i8** %2
br label %153
42: ; preds = %1
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.36, i64 0, i64 0), i8** %2
br label %153
43: ; preds = %1
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.37, i64 0, i64 0), i8** %2
br label %153
44: ; preds = %1
store i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.38, i64 0, i64 0), i8** %2
br label %153
45: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.39, i64 0, i64 0), i8** %2
br label %153
46: ; preds = %1
store i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.40, i64 0, i64 0), i8** %2
br label %153
47: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.41, i64 0, i64 0), i8** %2
br label %153
48: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.42, i64 0, i64 0), i8** %2
br label %153
49: ; preds = %1
store i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.43, i64 0, i64 0), i8** %2
br label %153
50: ; preds = %1
store i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.44, i64 0, i64 0), i8** %2
br label %153
51: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.45, i64 0, i64 0), i8** %2
br label %153
52: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.46, i64 0, i64 0), i8** %2
br label %153
53: ; preds = %1
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.47, i64 0, i64 0), i8** %2
br label %153
54: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.48, i64 0, i64 0), i8** %2
br label %153
55: ; preds = %1
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.49, i64 0, i64 0), i8** %2
br label %153
56: ; preds = %1
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.50, i64 0, i64 0), i8** %2
br label %153
57: ; preds = %1
store i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.51, i64 0, i64 0), i8** %2
br label %153
58: ; preds = %1
store i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.52, i64 0, i64 0), i8** %2
br label %153
59: ; preds = %1
store i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.53, i64 0, i64 0), i8** %2
br label %153
60: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.54, i64 0, i64 0), i8** %2
br label %153
61: ; preds = %1
store i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.55, i64 0, i64 0), i8** %2
br label %153
62: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.56, i64 0, i64 0), i8** %2
br label %153
63: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.57, i64 0, i64 0), i8** %2
br label %153
64: ; preds = %1
store i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.58, i64 0, i64 0), i8** %2
br label %153
65: ; preds = %1
store i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.59, i64 0, i64 0), i8** %2
br label %153
66: ; preds = %1
store i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.60, i64 0, i64 0), i8** %2
br label %153
67: ; preds = %1
store i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.61, i64 0, i64 0), i8** %2
br label %153
68: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.62, i64 0, i64 0), i8** %2
br label %153
69: ; preds = %1
store i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.63, i64 0, i64 0), i8** %2
br label %153
70: ; preds = %1
store i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.64, i64 0, i64 0), i8** %2
br label %153
71: ; preds = %1
store i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.65, i64 0, i64 0), i8** %2
br label %153
72: ; preds = %1
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.66, i64 0, i64 0), i8** %2
br label %153
73: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.67, i64 0, i64 0), i8** %2
br label %153
74: ; preds = %1
store i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.68, i64 0, i64 0), i8** %2
br label %153
75: ; preds = %1
store i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.69, i64 0, i64 0), i8** %2
br label %153
76: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.70, i64 0, i64 0), i8** %2
br label %153
77: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.71, i64 0, i64 0), i8** %2
br label %153
78: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.72, i64 0, i64 0), i8** %2
br label %153
79: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.73, i64 0, i64 0), i8** %2
br label %153
80: ; preds = %1
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.74, i64 0, i64 0), i8** %2
br label %153
81: ; preds = %1
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.75, i64 0, i64 0), i8** %2
br label %153
82: ; preds = %1
store i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.76, i64 0, i64 0), i8** %2
br label %153
83: ; preds = %1
store i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.77, i64 0, i64 0), i8** %2
br label %153
84: ; preds = %1
store i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.78, i64 0, i64 0), i8** %2
br label %153
85: ; preds = %1
store i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.79, i64 0, i64 0), i8** %2
br label %153
86: ; preds = %1
store i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.80, i64 0, i64 0), i8** %2
br label %153
87: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.81, i64 0, i64 0), i8** %2
br label %153
88: ; preds = %1
store i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.82, i64 0, i64 0), i8** %2
br label %153
89: ; preds = %1
store i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.83, i64 0, i64 0), i8** %2
br label %153
90: ; preds = %1
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.84, i64 0, i64 0), i8** %2
br label %153
91: ; preds = %1
store i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.85, i64 0, i64 0), i8** %2
br label %153
92: ; preds = %1
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.86, i64 0, i64 0), i8** %2
br label %153
93: ; preds = %1
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.87, i64 0, i64 0), i8** %2
br label %153
94: ; preds = %1
store i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.88, i64 0, i64 0), i8** %2
br label %153
95: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.89, i64 0, i64 0), i8** %2
br label %153
96: ; preds = %1
store i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.90, i64 0, i64 0), i8** %2
br label %153
97: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.91, i64 0, i64 0), i8** %2
br label %153
98: ; preds = %1
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.92, i64 0, i64 0), i8** %2
br label %153
99: ; preds = %1
store i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.93, i64 0, i64 0), i8** %2
br label %153
100: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.94, i64 0, i64 0), i8** %2
br label %153
101: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.95, i64 0, i64 0), i8** %2
br label %153
102: ; preds = %1
store i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.96, i64 0, i64 0), i8** %2
br label %153
103: ; preds = %1
store i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.97, i64 0, i64 0), i8** %2
br label %153
104: ; preds = %1
store i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.98, i64 0, i64 0), i8** %2
br label %153
105: ; preds = %1
store i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.99, i64 0, i64 0), i8** %2
br label %153
106: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.100, i64 0, i64 0), i8** %2
br label %153
107: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.101, i64 0, i64 0), i8** %2
br label %153
108: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.102, i64 0, i64 0), i8** %2
br label %153
109: ; preds = %1
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.103, i64 0, i64 0), i8** %2
br label %153
110: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.104, i64 0, i64 0), i8** %2
br label %153
111: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.105, i64 0, i64 0), i8** %2
br label %153
112: ; preds = %1
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.106, i64 0, i64 0), i8** %2
br label %153
113: ; preds = %1
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.107, i64 0, i64 0), i8** %2
br label %153
114: ; preds = %1
store i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.108, i64 0, i64 0), i8** %2
br label %153
115: ; preds = %1
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.109, i64 0, i64 0), i8** %2
br label %153
116: ; preds = %1
store i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.110, i64 0, i64 0), i8** %2
br label %153
117: ; preds = %1
store i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.111, i64 0, i64 0), i8** %2
br label %153
118: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.112, i64 0, i64 0), i8** %2
br label %153
119: ; preds = %1
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.113, i64 0, i64 0), i8** %2
br label %153
120: ; preds = %1
store i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.114, i64 0, i64 0), i8** %2
br label %153
121: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.115, i64 0, i64 0), i8** %2
br label %153
122: ; preds = %1
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.116, i64 0, i64 0), i8** %2
br label %153
123: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.117, i64 0, i64 0), i8** %2
br label %153
124: ; preds = %1
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.118, i64 0, i64 0), i8** %2
br label %153
125: ; preds = %1
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.119, i64 0, i64 0), i8** %2
br label %153
126: ; preds = %1
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.120, i64 0, i64 0), i8** %2
br label %153
127: ; preds = %1
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.121, i64 0, i64 0), i8** %2
br label %153
128: ; preds = %1
store i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.122, i64 0, i64 0), i8** %2
br label %153
129: ; preds = %1
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.123, i64 0, i64 0), i8** %2
br label %153
130: ; preds = %1
store i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.124, i64 0, i64 0), i8** %2
br label %153
131: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.125, i64 0, i64 0), i8** %2
br label %153
132: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.126, i64 0, i64 0), i8** %2
br label %153
133: ; preds = %1
store i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.127, i64 0, i64 0), i8** %2
br label %153
134: ; preds = %1
store i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.128, i64 0, i64 0), i8** %2
br label %153
135: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.129, i64 0, i64 0), i8** %2
br label %153
136: ; preds = %1
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.130, i64 0, i64 0), i8** %2
br label %153
137: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.131, i64 0, i64 0), i8** %2
br label %153
138: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.132, i64 0, i64 0), i8** %2
br label %153
139: ; preds = %1
store i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.133, i64 0, i64 0), i8** %2
br label %153
140: ; preds = %1
store i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.134, i64 0, i64 0), i8** %2
br label %153
141: ; preds = %1
store i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.135, i64 0, i64 0), i8** %2
br label %153
142: ; preds = %1
store i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.136, i64 0, i64 0), i8** %2
br label %153
143: ; preds = %1
store i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.137, i64 0, i64 0), i8** %2
br label %153
144: ; preds = %1
store i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.138, i64 0, i64 0), i8** %2
br label %153
145: ; preds = %1
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.139, i64 0, i64 0), i8** %2
br label %153
146: ; preds = %1
store i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.140, i64 0, i64 0), i8** %2
br label %153
147: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.141, i64 0, i64 0), i8** %2
br label %153
148: ; preds = %1
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.142, i64 0, i64 0), i8** %2
br label %153
149: ; preds = %1
store i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.143, i64 0, i64 0), i8** %2
br label %153
150: ; preds = %1
store i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.143, i64 0, i64 0), i8** %2
br label %153
151: ; preds = %1
store i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.144, i64 0, i64 0), i8** %2
br label %153
152: ; preds = %1
store i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.145, i64 0, i64 0), i8** %2
br label %153
153: ; preds = %152, %151, %150, %149, %148, %147, %146, %145, %144, %143, %142, %141, %140, %139, %138, %137, %136, %135, %134, %133, %132, %131, %130, %129, %128, %127, %126, %125, %124, %123, %122, %121, %120, %119, %118, %117, %116, %115, %114, %113, %112, %111, %110, %109, %108, %107, %106, %105, %104, %103, %102, %101, %100, %99, %98, %97, %96, %95, %94, %93, %92, %91, %90, %89, %88, %87, %86, %85, %84, %83, %82, %81, %80, %79, %78, %77, %76, %75, %74, %73, %72, %71, %70, %69, %68, %67, %66, %65, %64, %63, %62, %61, %60, %59, %58, %57, %56, %55, %54, %53, %52, %51, %50, %49, %48, %47, %46, %45, %44, %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
%154 = load i8*, i8** %2
ret i8* %154
}

LLVM IR (-O2):
@.str = [7 x i8] c"HOPOPT\00"
@.str.1 = [5 x i8] c"ICMP\00"
@.str.2 = [5 x i8] c"IGMP\00"
@.str.3 = [4 x i8] c"GGP\00"
@.str.4 = [5 x i8] c"IPv4\00"
@.str.5 = [3 x i8] c"ST\00"
@.str.6 = [4 x i8] c"TCP\00"
@.str.7 = [4 x i8] c"CBT\00"
@.str.8 = [4 x i8] c"EGP\00"
@.str.9 = [4 x i8] c"IGP\00"
@.str.10 = [12 x i8] c"BBN-RCC-MON\00"
@.str.11 = [7 x i8] c"NVP-II\00"
@.str.12 = [4 x i8] c"PUP\00"
@.str.13 = [6 x i8] c"ARGUS\00"
@.str.14 = [6 x i8] c"EMCON\00"
@.str.15 = [5 x i8] c"XNET\00"
@.str.16 = [6 x i8] c"CHAOS\00"
@.str.17 = [4 x i8] c"UDP\00"
@.str.18 = [4 x i8] c"MUX\00"
@.str.19 = [9 x i8] c"DCN-MEAS\00"
@.str.20 = [4 x i8] c"HMP\00"
@.str.21 = [4 x i8] c"PRM\00"
@.str.22 = [8 x i8] c"XNS-IDP\00"
@.str.23 = [8 x i8] c"TRUNK-1\00"
@.str.24 = [8 x i8] c"TRUNK-2\00"
@.str.25 = [7 x i8] c"LEAF-1\00"
@.str.26 = [7 x i8] c"LEAF-2\00"
@.str.27 = [4 x i8] c"RDP\00"
@.str.28 = [5 x i8] c"IRTP\00"
@.str.29 = [8 x i8] c"ISO-TP4\00"
@.str.30 = [7 x i8] c"NETBLT\00"
@.str.31 = [8 x i8] c"MFE-NSP\00"
@.str.32 = [10 x i8] c"MERIT-INP\00"
@.str.33 = [5 x i8] c"DCCP\00"
@.str.34 = [4 x i8] c"3PC\00"
@.str.35 = [5 x i8] c"IDPR\00"
@.str.36 = [4 x i8] c"XTP\00"
@.str.37 = [4 x i8] c"DDP\00"
@.str.38 = [10 x i8] c"IDPR-CMTP\00"
@.str.39 = [5 x i8] c"TP++\00"
@.str.40 = [3 x i8] c"IL\00"
@.str.41 = [5 x i8] c"IPv6\00"
@.str.42 = [5 x i8] c"SDRP\00"
@.str.43 = [11 x i8] c"IPv6-Route\00"
@.str.44 = [10 x i8] c"IPv6-Frag\00"
@.str.45 = [5 x i8] c"IDRP\00"
@.str.46 = [5 x i8] c"RSVP\00"
@.str.47 = [4 x i8] c"GRE\00"
@.str.48 = [5 x i8] c"MHRP\00"
@.str.49 = [4 x i8] c"BNA\00"
@.str.50 = [4 x i8] c"ESP\00"
@.str.51 = [3 x i8] c"AH\00"
@.str.52 = [7 x i8] c"I-NLSP\00"
@.str.53 = [6 x i8] c"SWIPE\00"
@.str.54 = [5 x i8] c"NARP\00"
@.str.55 = [7 x i8] c"MOBILE\00"
@.str.56 = [5 x i8] c"TLSP\00"
@.str.57 = [5 x i8] c"SKIP\00"
@.str.58 = [10 x i8] c"IPv6-ICMP\00"
@.str.59 = [11 x i8] c"IPv6-NoNxt\00"
@.str.60 = [10 x i8] c"IPv6-Opts\00"
@.str.61 = [27 x i8] c"Any host internal protocol\00"
@.str.62 = [5 x i8] c"CFTP\00"
@.str.63 = [18 x i8] c"Any local network\00"
@.str.64 = [10 x i8] c"SAT-EXPAK\00"
@.str.65 = [10 x i8] c"KRYPTOLAN\00"
@.str.66 = [4 x i8] c"RVD\00"
@.str.67 = [5 x i8] c"IPPC\00"
@.str.68 = [28 x i8] c"Any distributed file system\00"
@.str.69 = [8 x i8] c"SAT-MON\00"
@.str.70 = [5 x i8] c"VISA\00"
@.str.71 = [5 x i8] c"IPCV\00"
@.str.72 = [5 x i8] c"CPNX\00"
@.str.73 = [5 x i8] c"CPHB\00"
@.str.74 = [4 x i8] c"WSN\00"
@.str.75 = [4 x i8] c"PVP\00"
@.str.76 = [11 x i8] c"BR-SAT-MON\00"
@.str.77 = [7 x i8] c"SUN-ND\00"
@.str.78 = [7 x i8] c"WB-MON\00"
@.str.79 = [9 x i8] c"WB-EXPAK\00"
@.str.80 = [7 x i8] c"ISO-IP\00"
@.str.81 = [5 x i8] c"VMTP\00"
@.str.82 = [12 x i8] c"SECURE-VMTP\00"
@.str.83 = [6 x i8] c"VINES\00"
@.str.84 = [4 x i8] c"TTP\00"
@.str.85 = [11 x i8] c"NSFNET-IGP\00"
@.str.86 = [4 x i8] c"DGP\00"
@.str.87 = [4 x i8] c"TCF\00"
@.str.88 = [6 x i8] c"EIGRP\00"
@.str.89 = [5 x i8] c"OSPF\00"
@.str.90 = [11 x i8] c"Sprite-RPC\00"
@.str.91 = [5 x i8] c"LARP\00"
@.str.92 = [4 x i8] c"MTP\00"
@.str.93 = [6 x i8] c"AX.25\00"
@.str.94 = [5 x i8] c"IPIP\00"
@.str.95 = [5 x i8] c"MICP\00"
@.str.96 = [7 x i8] c"SCC-SP\00"
@.str.97 = [8 x i8] c"ETHERIP\00"
@.str.98 = [6 x i8] c"ENCAP\00"
@.str.99 = [30 x i8] c"Any private encryption scheme\00"
@.str.100 = [5 x i8] c"GMTP\00"
@.str.101 = [5 x i8] c"IFMP\00"
@.str.102 = [5 x i8] c"PNNI\00"
@.str.103 = [4 x i8] c"PIM\00"
@.str.104 = [5 x i8] c"ARIS\00"
@.str.105 = [5 x i8] c"SCPS\00"
@.str.106 = [4 x i8] c"QNX\00"
@.str.107 = [4 x i8] c"A/N\00"
@.str.108 = [7 x i8] c"IPComp\00"
@.str.109 = [4 x i8] c"SNP\00"
@.str.110 = [12 x i8] c"Compaq-Peer\00"
@.str.111 = [10 x i8] c"IPX-in-IP\00"
@.str.112 = [5 x i8] c"VRRP\00"
@.str.113 = [4 x i8] c"PGM\00"
@.str.114 = [19 x i8] c"Any 0-hop protocol\00"
@.str.115 = [5 x i8] c"L2TP\00"
@.str.116 = [4 x i8] c"DDX\00"
@.str.117 = [5 x i8] c"IATP\00"
@.str.118 = [4 x i8] c"STP\00"
@.str.119 = [4 x i8] c"SRP\00"
@.str.120 = [4 x i8] c"UTI\00"
@.str.121 = [4 x i8] c"SMP\00"
@.str.122 = [3 x i8] c"SM\00"
@.str.123 = [4 x i8] c"PTP\00"
@.str.124 = [16 x i8] c"IS-IS over IPv4\00"
@.str.125 = [5 x i8] c"FIRE\00"
@.str.126 = [5 x i8] c"CRTP\00"
@.str.127 = [6 x i8] c"CRUDP\00"
@.str.128 = [9 x i8] c"SSCOPMCE\00"
@.str.129 = [5 x i8] c"IPLT\00"
@.str.130 = [4 x i8] c"SPS\00"
@.str.131 = [5 x i8] c"PIPE\00"
@.str.132 = [5 x i8] c"SCTP\00"
@.str.133 = [3 x i8] c"FC\00"
@.str.134 = [16 x i8] c"RSVP-E2E-IGNORE\00"
@.str.135 = [16 x i8] c"Mobility Header\00"
@.str.136 = [8 x i8] c"UDPLite\00"
@.str.137 = [11 x i8] c"MPLS-in-IP\00"
@.str.138 = [6 x i8] c"manet\00"
@.str.139 = [4 x i8] c"HIP\00"
@.str.140 = [6 x i8] c"Shim6\00"
@.str.141 = [5 x i8] c"WESP\00"
@.str.142 = [5 x i8] c"ROHC\00"
@.str.143 = [28 x i8] c"experimentation and testing\00"
@.str.144 = [9 x i8] c"Reserved\00"
@.str.145 = [8 x i8] c"UNKNOWN\00"
@reltable.ipprotocol = [256 x i32] [i32 trunc (i64 sub (i64 ptrtoint ([9 x i8]* @.str.128 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.129 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.130 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.131 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.132 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.133 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([16 x i8]* @.str.134 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([16 x i8]* @.str.135 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.136 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([11 x i8]* @.str.137 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([6 x i8]* @.str.138 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.139 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([6 x i8]* @.str.140 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.141 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.142 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.145 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([28 x i8]* @.str.143 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([28 x i8]* @.str.143 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([9 x i8]* @.str.144 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([7 x i8]* @.str to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.1 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.2 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.3 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.4 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.5 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.6 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.7 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.8 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.9 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([12 x i8]* @.str.10 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([7 x i8]* @.str.11 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.12 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([6 x i8]* @.str.13 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([6 x i8]* @.str.14 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.15 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([6 x i8]* @.str.16 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.17 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.18 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([9 x i8]* @.str.19 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.20 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.21 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.22 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.23 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.24 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([7 x i8]* @.str.25 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([7 x i8]* @.str.26 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.27 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.28 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.29 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([7 x i8]* @.str.30 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.31 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([10 x i8]* @.str.32 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.33 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.34 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.35 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.36 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.37 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([10 x i8]* @.str.38 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.39 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.40 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.41 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.42 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([11 x i8]* @.str.43 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([10 x i8]* @.str.44 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.45 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.46 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.47 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.48 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.49 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.50 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.51 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([7 x i8]* @.str.52 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([6 x i8]* @.str.53 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.54 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([7 x i8]* @.str.55 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.56 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.57 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([10 x i8]* @.str.58 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([11 x i8]* @.str.59 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([10 x i8]* @.str.60 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([27 x i8]* @.str.61 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.62 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([18 x i8]* @.str.63 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([10 x i8]* @.str.64 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([10 x i8]* @.str.65 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.66 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.67 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([28 x i8]* @.str.68 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.69 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.70 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.71 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.72 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.73 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.74 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.75 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([11 x i8]* @.str.76 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([7 x i8]* @.str.77 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([7 x i8]* @.str.78 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([9 x i8]* @.str.79 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([7 x i8]* @.str.80 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.81 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([12 x i8]* @.str.82 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([6 x i8]* @.str.83 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.84 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([11 x i8]* @.str.85 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.86 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.87 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([6 x i8]* @.str.88 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.89 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([11 x i8]* @.str.90 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.91 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.92 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([6 x i8]* @.str.93 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.94 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.95 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([7 x i8]* @.str.96 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.97 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([6 x i8]* @.str.98 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([30 x i8]* @.str.99 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.100 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.101 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.102 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.103 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.104 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.105 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.106 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.107 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([7 x i8]* @.str.108 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.109 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([12 x i8]* @.str.110 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([10 x i8]* @.str.111 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.112 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.113 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([19 x i8]* @.str.114 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.115 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.116 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.117 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.118 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.119 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.120 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.121 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.122 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.123 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([16 x i8]* @.str.124 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.125 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.126 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([6 x i8]* @.str.127 to i64), i64 ptrtoint ([256 x i32]* @reltable.ipprotocol to i64)) to i32)]
define i8* @ipprotocol(i8 zeroext %0) {
%2 = xor i8 %0, -128
%3 = zext i8 %2 to i64
%4 = shl i64 %3, 2
%5 = call i8* @llvm.load.relative.i64(i8* bitcast ([256 x i32]* @reltable.ipprotocol to i8*), i64 %4)
ret i8* %5
}