#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */
typedef int uint8_t;
typedef int uint16_t;

/* Variables and functions */
int scsi_error_code(int *);
const char *kvss905c_strerror(uint8_t *requestsense) {
  const uint16_t error = scsi_error_code(requestsense);
  const uint8_t sense = requestsense[2] & 0x0f;
  switch (error) {
  case 0x2400:
    return "Invalid field in CDB";
  case 0x3a00:
    return "Out of paper";
  case 0x0480:
    return "Document lead door open";
  case 0x0481:
    return "Document discharge door open";
  case 0x0482:
    return "Post imprinter door open";
  case 0x8001:
    if (sense == 2)
      return "Scanner stopped";
    else if (sense == 3)
      return "Jammed at document lead";
    else if (sense == 4)
      return "Lamp failure with regular temperature";
    else
      return NULL;
  case 0x8002:
    if (sense == 2)
      return "Document feeder stopped";
    else if (sense == 3)
      return "Jammed at document discharge 1";
    else if (sense == 4)
      return "Document size detect error";
    else
      return NULL;
  case 0x8003:
    return "Jammed at document discharge 2";
  case 0x8004:
    if (sense == 3)
      return "Document internal rest";
    else if (sense == 4)
      return "Document hopper error";
    else
      return NULL;
  case 0x8005:
    if (sense == 3)
      return "Jammed at document feed 1";
    if (sense == 4)
      return "Document sensor adjust error";
    else
      return NULL;
  case 0x8006:
    return "Jammed at document feed 2";
  case 0x8007:
    return "Jammed at document feed 3";
  case 0x8008:
    return "Jammed at document feed 4";
  case 0x800a:
    return "Skew error";
  case 0x800b:
    return "Minimum media error";
  case 0x800c:
    return "Media length error";
  case 0x800d:
    return "Double feed error";
  case 0x800e:
    return "Barcode error";
  case 0x0880:
    return "Internal parameter error";
  case 0x0881:
    return "Internal DMA error";
  case 0x0882:
    return "Internal command error";
  case 0x8083:
    return "Internal communication error";
  case 0x4480:
    return "Internal RAM error";
  case 0x4481:
    return "Internal EEPROM error";
  case 0x4482:
    return "FPGA error";
  case 0x4700:
    return "SCSI parity error";
  case 0x1a00:
    return "Parameter list length error";
  case 0x2000:
    return "Invalid command op code";
  case 0x2500:
    return "Logical unit not supported";
  case 0x2600:
    return "Invalid field in parameter list";
  case 0x2c01:
    return "Too many windows";
  case 0x2c02:
    return "Invalid window combination";
  case 0x2c80:
    return "Out of memory";
  case 0x2c81:
    return "No back scanning unit";
  case 0x2c82:
    return "No imprinter unit";
  case 0x2c83:
    return "Pointer position error";
  case 0x2c84:
    return "Out of scanning page limit";
  case 0x2c85:
    return "Out of scanning length limit";
  case 0x2c86:
    return "Out of scanning resolution limit";
  case 0x2c87:
    return "Out of scanning line cycle limit";
  case 0x3d00:
    return "Invalid bits in identity message";
  case 0x2900:
    return "Unit attention";
  case 0x1b00:
    return "Sync data transfer error";
  case 0x4300:
    return "Message error";
  case 0x4900:
    return "Invalid message error";
  default:
    return NULL;
  }
}


x86 assembly (clang, -O0):
<kvss905c_strerror>:
push   %rbp
mov    %rsp,%rbp
sub    $0x20,%rsp
mov    %rdi,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
call   1030 <scsi_error_code@plt>
mov    %eax,-0x14(%rbp)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%eax
and    $0xf,%eax
mov    %eax,-0x18(%rbp)
mov    -0x14(%rbp),%eax
mov    %eax,-0x1c(%rbp)
sub    $0x480,%eax
je     14af <kvss905c_strerror+0x39f>
jmp    114b <kvss905c_strerror+0x3b>
mov    -0x1c(%rbp),%eax
sub    $0x481,%eax
je     14bf <kvss905c_strerror+0x3af>
jmp    115e <kvss905c_strerror+0x4e>
mov    -0x1c(%rbp),%eax
sub    $0x482,%eax
je     14cf <kvss905c_strerror+0x3bf>
jmp    1171 <kvss905c_strerror+0x61>
mov    -0x1c(%rbp),%eax
sub    $0x880,%eax
je     16a7 <kvss905c_strerror+0x597>
jmp    1184 <kvss905c_strerror+0x74>
mov    -0x1c(%rbp),%eax
sub    $0x881,%eax
je     16b7 <kvss905c_strerror+0x5a7>
jmp    1197 <kvss905c_strerror+0x87>
mov    -0x1c(%rbp),%eax
sub    $0x882,%eax
je     16c7 <kvss905c_strerror+0x5b7>
jmp    11aa <kvss905c_strerror+0x9a>
mov    -0x1c(%rbp),%eax
sub    $0x1a00,%eax
je     1727 <kvss905c_strerror+0x617>
jmp    11bd <kvss905c_strerror+0xad>
mov    -0x1c(%rbp),%eax
sub    $0x1b00,%eax
je     1827 <kvss905c_strerror+0x717>
jmp    11d0 <kvss905c_strerror+0xc0>
mov    -0x1c(%rbp),%eax
sub    $0x2000,%eax
je     1737 <kvss905c_strerror+0x627>
jmp    11e3 <kvss905c_strerror+0xd3>
mov    -0x1c(%rbp),%eax
sub    $0x2400,%eax
je     148f <kvss905c_strerror+0x37f>
jmp    11f6 <kvss905c_strerror+0xe6>
mov    -0x1c(%rbp),%eax
sub    $0x2500,%eax
je     1747 <kvss905c_strerror+0x637>
jmp    1209 <kvss905c_strerror+0xf9>
mov    -0x1c(%rbp),%eax
sub    $0x2600,%eax
je     1757 <kvss905c_strerror+0x647>
jmp    121c <kvss905c_strerror+0x10c>
mov    -0x1c(%rbp),%eax
sub    $0x2900,%eax
je     1817 <kvss905c_strerror+0x707>
jmp    122f <kvss905c_strerror+0x11f>
mov    -0x1c(%rbp),%eax
sub    $0x2c01,%eax
je     1767 <kvss905c_strerror+0x657>
jmp    1242 <kvss905c_strerror+0x132>
mov    -0x1c(%rbp),%eax
sub    $0x2c02,%eax
je     1777 <kvss905c_strerror+0x667>
jmp    1255 <kvss905c_strerror+0x145>
mov    -0x1c(%rbp),%eax
sub    $0x2c80,%eax
je     1787 <kvss905c_strerror+0x677>
jmp    1268 <kvss905c_strerror+0x158>
mov    -0x1c(%rbp),%eax
sub    $0x2c81,%eax
je     1797 <kvss905c_strerror+0x687>
jmp    127b <kvss905c_strerror+0x16b>
mov    -0x1c(%rbp),%eax
sub    $0x2c82,%eax
je     17a7 <kvss905c_strerror+0x697>
jmp    128e <kvss905c_strerror+0x17e>
mov    -0x1c(%rbp),%eax
sub    $0x2c83,%eax
je     17b7 <kvss905c_strerror+0x6a7>
jmp    12a1 <kvss905c_strerror+0x191>
mov    -0x1c(%rbp),%eax
sub    $0x2c84,%eax
je     17c7 <kvss905c_strerror+0x6b7>
jmp    12b4 <kvss905c_strerror+0x1a4>
mov    -0x1c(%rbp),%eax
sub    $0x2c85,%eax
je     17d7 <kvss905c_strerror+0x6c7>
jmp    12c7 <kvss905c_strerror+0x1b7>
mov    -0x1c(%rbp),%eax
sub    $0x2c86,%eax
je     17e7 <kvss905c_strerror+0x6d7>
jmp    12da <kvss905c_strerror+0x1ca>
mov    -0x1c(%rbp),%eax
sub    $0x2c87,%eax
je     17f7 <kvss905c_strerror+0x6e7>
jmp    12ed <kvss905c_strerror+0x1dd>
mov    -0x1c(%rbp),%eax
sub    $0x3a00,%eax
je     149f <kvss905c_strerror+0x38f>
jmp    1300 <kvss905c_strerror+0x1f0>
mov    -0x1c(%rbp),%eax
sub    $0x3d00,%eax
je     1807 <kvss905c_strerror+0x6f7>
jmp    1313 <kvss905c_strerror+0x203>
mov    -0x1c(%rbp),%eax
sub    $0x4300,%eax
je     1837 <kvss905c_strerror+0x727>
jmp    1326 <kvss905c_strerror+0x216>
mov    -0x1c(%rbp),%eax
sub    $0x4480,%eax
je     16e7 <kvss905c_strerror+0x5d7>
jmp    1339 <kvss905c_strerror+0x229>
mov    -0x1c(%rbp),%eax
sub    $0x4481,%eax
je     16f7 <kvss905c_strerror+0x5e7>
jmp    134c <kvss905c_strerror+0x23c>
mov    -0x1c(%rbp),%eax
sub    $0x4482,%eax
je     1707 <kvss905c_strerror+0x5f7>
jmp    135f <kvss905c_strerror+0x24f>
mov    -0x1c(%rbp),%eax
sub    $0x4700,%eax
je     1717 <kvss905c_strerror+0x607>
jmp    1372 <kvss905c_strerror+0x262>
mov    -0x1c(%rbp),%eax
sub    $0x4900,%eax
je     1847 <kvss905c_strerror+0x737>
jmp    1385 <kvss905c_strerror+0x275>
mov    -0x1c(%rbp),%eax
sub    $0x8001,%eax
je     14df <kvss905c_strerror+0x3cf>
jmp    1398 <kvss905c_strerror+0x288>
mov    -0x1c(%rbp),%eax
sub    $0x8002,%eax
je     153a <kvss905c_strerror+0x42a>
jmp    13ab <kvss905c_strerror+0x29b>
mov    -0x1c(%rbp),%eax
sub    $0x8003,%eax
je     1595 <kvss905c_strerror+0x485>
jmp    13be <kvss905c_strerror+0x2ae>
mov    -0x1c(%rbp),%eax
sub    $0x8004,%eax
je     15a5 <kvss905c_strerror+0x495>
jmp    13d1 <kvss905c_strerror+0x2c1>
mov    -0x1c(%rbp),%eax
sub    $0x8005,%eax
je     15e6 <kvss905c_strerror+0x4d6>
jmp    13e4 <kvss905c_strerror+0x2d4>
mov    -0x1c(%rbp),%eax
sub    $0x8006,%eax
je     1627 <kvss905c_strerror+0x517>
jmp    13f7 <kvss905c_strerror+0x2e7>
mov    -0x1c(%rbp),%eax
sub    $0x8007,%eax
je     1637 <kvss905c_strerror+0x527>
jmp    140a <kvss905c_strerror+0x2fa>
mov    -0x1c(%rbp),%eax
sub    $0x8008,%eax
je     1647 <kvss905c_strerror+0x537>
jmp    141d <kvss905c_strerror+0x30d>
mov    -0x1c(%rbp),%eax
sub    $0x800a,%eax
je     1657 <kvss905c_strerror+0x547>
jmp    1430 <kvss905c_strerror+0x320>
mov    -0x1c(%rbp),%eax
sub    $0x800b,%eax
je     1667 <kvss905c_strerror+0x557>
jmp    1443 <kvss905c_strerror+0x333>
mov    -0x1c(%rbp),%eax
sub    $0x800c,%eax
je     1677 <kvss905c_strerror+0x567>
jmp    1456 <kvss905c_strerror+0x346>
mov    -0x1c(%rbp),%eax
sub    $0x800d,%eax
je     1687 <kvss905c_strerror+0x577>
jmp    1469 <kvss905c_strerror+0x359>
mov    -0x1c(%rbp),%eax
sub    $0x800e,%eax
je     1697 <kvss905c_strerror+0x587>
jmp    147c <kvss905c_strerror+0x36c>
mov    -0x1c(%rbp),%eax
sub    $0x8083,%eax
je     16d7 <kvss905c_strerror+0x5c7>
jmp    1857 <kvss905c_strerror+0x747>
lea    0xb6a(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xb6f(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xb6c(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xb74(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xb81(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
cmpl   $0x2,-0x18(%rbp)
jne    14f9 <kvss905c_strerror+0x3e9>
lea    0xb80(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
cmpl   $0x3,-0x18(%rbp)
jne    1513 <kvss905c_strerror+0x403>
lea    0xb76(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
cmpl   $0x4,-0x18(%rbp)
jne    152d <kvss905c_strerror+0x41d>
lea    0xb74(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
movq   $0x0,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
cmpl   $0x2,-0x18(%rbp)
jne    1554 <kvss905c_strerror+0x444>
lea    0xb73(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
cmpl   $0x3,-0x18(%rbp)
jne    156e <kvss905c_strerror+0x45e>
lea    0xb71(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
cmpl   $0x4,-0x18(%rbp)
jne    1588 <kvss905c_strerror+0x478>
lea    0xb76(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
movq   $0x0,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xb74(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
cmpl   $0x3,-0x18(%rbp)
jne    15bf <kvss905c_strerror+0x4af>
lea    0xb79(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
cmpl   $0x4,-0x18(%rbp)
jne    15d9 <kvss905c_strerror+0x4c9>
lea    0xb76(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
movq   $0x0,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
cmpl   $0x3,-0x18(%rbp)
jne    1600 <kvss905c_strerror+0x4f0>
lea    0xb65(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
cmpl   $0x4,-0x18(%rbp)
jne    161a <kvss905c_strerror+0x50a>
lea    0xb65(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
movq   $0x0,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xb65(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xb6f(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xb79(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xb83(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xb7e(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xb82(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xb85(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xb87(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xb85(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xb8e(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xb91(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xb98(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xba5(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xba8(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xbae(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xba9(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xbab(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xbb7(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xbbf(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xbca(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xbda(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xbdb(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xbe6(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xbe4(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xbea(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xbec(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xbf3(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xbfe(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xc0b(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xc1c(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xc2d(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xc3e(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xc3d(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xc46(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
lea    0xc44(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    185f <kvss905c_strerror+0x74f>
movq   $0x0,-0x8(%rbp)
mov    -0x8(%rbp),%rax
add    $0x20,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<kvss905c_strerror>:
push   %rbx
mov    %rdi,%rbx
call   1030 <scsi_error_code@plt>
cmp    $0x39ff,%eax
jg     116b <kvss905c_strerror+0x5b>
cmp    $0x28ff,%eax
jg     11b3 <kvss905c_strerror+0xa3>
cmp    $0x19ff,%eax
jg     1216 <kvss905c_strerror+0x106>
cmp    $0x87f,%eax
jg     129f <kvss905c_strerror+0x18f>
cmp    $0x480,%eax
je     1336 <kvss905c_strerror+0x226>
cmp    $0x481,%eax
je     133f <kvss905c_strerror+0x22f>
cmp    $0x482,%eax
jne    13e9 <kvss905c_strerror+0x2d9>
lea    0x1132(%rip),%rax
pop    %rbx
ret
cmp    $0x46ff,%eax
jle    11e5 <kvss905c_strerror+0xd5>
lea    -0x8001(%rax),%ecx
cmp    $0x82,%ecx
ja     12f3 <kvss905c_strerror+0x1e3>
mov    0x8(%rbx),%eax
and    $0xf,%eax
lea    0xe8f(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
add    $0xfffffffffffffffe,%rax
cmp    $0x3,%eax
jae    13e9 <kvss905c_strerror+0x2d9>
lea    0x107e(%rip),%rcx
jmp    13e0 <kvss905c_strerror+0x2d0>
cmp    $0x2c7f,%eax
jle    1275 <kvss905c_strerror+0x165>
add    $0xffffd380,%eax
cmp    $0x7,%eax
ja     13e9 <kvss905c_strerror+0x2d9>
lea    0xe2d(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x13d5(%rip),%rax
pop    %rbx
ret
cmp    $0x447f,%eax
jg     124b <kvss905c_strerror+0x13b>
cmp    $0x3a00,%eax
je     1312 <kvss905c_strerror+0x202>
cmp    $0x3d00,%eax
je     131b <kvss905c_strerror+0x20b>
cmp    $0x4300,%eax
jne    13e9 <kvss905c_strerror+0x2d9>
lea    0x14b4(%rip),%rax
pop    %rbx
ret
cmp    $0x23ff,%eax
jg     12c9 <kvss905c_strerror+0x1b9>
cmp    $0x1a00,%eax
je     1387 <kvss905c_strerror+0x277>
cmp    $0x1b00,%eax
je     1390 <kvss905c_strerror+0x280>
cmp    $0x2000,%eax
jne    13e9 <kvss905c_strerror+0x2d9>
lea    0x12f0(%rip),%rax
pop    %rbx
ret
cmp    $0x4480,%eax
je     1324 <kvss905c_strerror+0x214>
cmp    $0x4481,%eax
je     132d <kvss905c_strerror+0x21d>
cmp    $0x4482,%eax
jne    13e9 <kvss905c_strerror+0x2d9>
lea    0x128d(%rip),%rax
pop    %rbx
ret
cmp    $0x2900,%eax
je     1399 <kvss905c_strerror+0x289>
cmp    $0x2c01,%eax
je     13a2 <kvss905c_strerror+0x292>
cmp    $0x2c02,%eax
jne    13e9 <kvss905c_strerror+0x2d9>
lea    0x1300(%rip),%rax
pop    %rbx
ret
cmp    $0x880,%eax
je     13ab <kvss905c_strerror+0x29b>
cmp    $0x881,%eax
je     13b4 <kvss905c_strerror+0x2a4>
cmp    $0x882,%eax
jne    13e9 <kvss905c_strerror+0x2d9>
lea    0x11dc(%rip),%rax
pop    %rbx
ret
cmp    $0x2400,%eax
je     13bd <kvss905c_strerror+0x2ad>
cmp    $0x2500,%eax
je     13c6 <kvss905c_strerror+0x2b6>
cmp    $0x2600,%eax
jne    13e9 <kvss905c_strerror+0x2d9>
lea    0x127b(%rip),%rax
pop    %rbx
ret
cmp    $0x4700,%eax
je     1483 <kvss905c_strerror+0x373>
cmp    $0x4900,%eax
jne    13e9 <kvss905c_strerror+0x2d9>
lea    0x13c6(%rip),%rax
pop    %rbx
ret
lea    0xf40(%rip),%rax
pop    %rbx
ret
lea    0x135d(%rip),%rax
pop    %rbx
ret
lea    0x11ac(%rip),%rax
pop    %rbx
ret
lea    0x11b6(%rip),%rax
pop    %rbx
ret
lea    0xf29(%rip),%rax
pop    %rbx
ret
lea    0xf38(%rip),%rax
pop    %rbx
ret
lea    0x1277(%rip),%rax
pop    %rbx
ret
lea    0x1284(%rip),%rax
pop    %rbx
ret
lea    0x128d(%rip),%rax
pop    %rbx
ret
lea    0x129b(%rip),%rax
pop    %rbx
ret
lea    0x12ad(%rip),%rax
pop    %rbx
ret
lea    0x12c1(%rip),%rax
pop    %rbx
ret
lea    0x12d9(%rip),%rax
pop    %rbx
ret
lea    0x118f(%rip),%rax
pop    %rbx
ret
lea    0x1318(%rip),%rax
pop    %rbx
ret
lea    0x1300(%rip),%rax
pop    %rbx
ret
lea    0x11e3(%rip),%rax
pop    %rbx
ret
lea    0x10c5(%rip),%rax
pop    %rbx
ret
lea    0x10d5(%rip),%rax
pop    %rbx
ret
lea    0xe80(%rip),%rax
pop    %rbx
ret
lea    0x1184(%rip),%rax
pop    %rbx
ret
add    $0xfffffffe,%eax
cmp    $0x3,%eax
jae    13e9 <kvss905c_strerror+0x2d9>
cltq
lea    0xe58(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
pop    %rbx
ret
xor    %eax,%eax
pop    %rbx
ret
lea    0xf60(%rip),%rax
pop    %rbx
ret
xor    %ecx,%ecx
cmp    $0x4,%eax
lea    0xf88(%rip),%rdx
cmove  %rdx,%rcx
cmp    $0x3,%eax
lea    0xf63(%rip),%rax
jmp    142c <kvss905c_strerror+0x31c>
xor    %ecx,%ecx
cmp    $0x4,%eax
lea    0xf9c(%rip),%rdx
cmove  %rdx,%rcx
cmp    $0x3,%eax
lea    0xf74(%rip),%rax
cmovne %rcx,%rax
pop    %rbx
ret
lea    0xf9e(%rip),%rax
pop    %rbx
ret
lea    0xfaf(%rip),%rax
pop    %rbx
ret
lea    0xfc0(%rip),%rax
pop    %rbx
ret
lea    0xfd1(%rip),%rax
pop    %rbx
ret
lea    0xfd3(%rip),%rax
pop    %rbx
ret
lea    0xfde(%rip),%rax
pop    %rbx
ret
lea    0xfe8(%rip),%rax
pop    %rbx
ret
lea    0xff1(%rip),%rax
pop    %rbx
ret
lea    0x1039(%rip),%rax
pop    %rbx
ret
lea    0x1081(%rip),%rax
pop    %rbx
ret

LLVM IR (-O0):
@.str = [21 x i8] c"Invalid field in CDB\00"
@.str.1 = [13 x i8] c"Out of paper\00"
@.str.2 = [24 x i8] c"Document lead door open\00"
@.str.3 = [29 x i8] c"Document discharge door open\00"
@.str.4 = [25 x i8] c"Post imprinter door open\00"
@.str.5 = [16 x i8] c"Scanner stopped\00"
@.str.6 = [24 x i8] c"Jammed at document lead\00"
@.str.7 = [38 x i8] c"Lamp failure with regular temperature\00"
@.str.8 = [24 x i8] c"Document feeder stopped\00"
@.str.9 = [31 x i8] c"Jammed at document discharge 1\00"
@.str.10 = [27 x i8] c"Document size detect error\00"
@.str.11 = [31 x i8] c"Jammed at document discharge 2\00"
@.str.12 = [23 x i8] c"Document internal rest\00"
@.str.13 = [22 x i8] c"Document hopper error\00"
@.str.14 = [26 x i8] c"Jammed at document feed 1\00"
@.str.15 = [29 x i8] c"Document sensor adjust error\00"
@.str.16 = [26 x i8] c"Jammed at document feed 2\00"
@.str.17 = [26 x i8] c"Jammed at document feed 3\00"
@.str.18 = [26 x i8] c"Jammed at document feed 4\00"
@.str.19 = [11 x i8] c"Skew error\00"
@.str.20 = [20 x i8] c"Minimum media error\00"
@.str.21 = [19 x i8] c"Media length error\00"
@.str.22 = [18 x i8] c"Double feed error\00"
@.str.23 = [14 x i8] c"Barcode error\00"
@.str.24 = [25 x i8] c"Internal parameter error\00"
@.str.25 = [19 x i8] c"Internal DMA error\00"
@.str.26 = [23 x i8] c"Internal command error\00"
@.str.27 = [29 x i8] c"Internal communication error\00"
@.str.28 = [19 x i8] c"Internal RAM error\00"
@.str.29 = [22 x i8] c"Internal EEPROM error\00"
@.str.30 = [11 x i8] c"FPGA error\00"
@.str.31 = [18 x i8] c"SCSI parity error\00"
@.str.32 = [28 x i8] c"Parameter list length error\00"
@.str.33 = [24 x i8] c"Invalid command op code\00"
@.str.34 = [27 x i8] c"Logical unit not supported\00"
@.str.35 = [32 x i8] c"Invalid field in parameter list\00"
@.str.36 = [17 x i8] c"Too many windows\00"
@.str.37 = [27 x i8] c"Invalid window combination\00"
@.str.38 = [14 x i8] c"Out of memory\00"
@.str.39 = [22 x i8] c"No back scanning unit\00"
@.str.40 = [18 x i8] c"No imprinter unit\00"
@.str.41 = [23 x i8] c"Pointer position error\00"
@.str.42 = [27 x i8] c"Out of scanning page limit\00"
@.str.43 = [29 x i8] c"Out of scanning length limit\00"
@.str.44 = [33 x i8] c"Out of scanning resolution limit\00"
@.str.45 = [33 x i8] c"Out of scanning line cycle limit\00"
@.str.46 = [33 x i8] c"Invalid bits in identity message\00"
@.str.47 = [15 x i8] c"Unit attention\00"
@.str.48 = [25 x i8] c"Sync data transfer error\00"
@.str.49 = [14 x i8] c"Message error\00"
@.str.50 = [22 x i8] c"Invalid message error\00"
define i8* @kvss905c_strerror(i32* %0) {
%2 = alloca i8*
%3 = alloca i32*
%4 = alloca i32
%5 = alloca i32
store i32* %0, i32** %3
%6 = load i32*, i32** %3
%7 = call i32 @scsi_error_code(i32* %6)
store i32 %7, i32* %4
%8 = load i32*, i32** %3
%9 = getelementptr inbounds i32, i32* %8, i64 2
%10 = load i32, i32* %9
%11 = and i32 %10, 15
store i32 %11, i32* %5
%12 = load i32, i32* %4
switch i32 %12, label %98 [
i32 9216, label %13
i32 14848, label %14
i32 1152, label %15
i32 1153, label %16
i32 1154, label %17
i32 32769, label %18
i32 32770, label %31
i32 32771, label %44
i32 32772, label %45
i32 32773, label %54
i32 32774, label %63
i32 32775, label %64
i32 32776, label %65
i32 32778, label %66
i32 32779, label %67
i32 32780, label %68
i32 32781, label %69
i32 32782, label %70
i32 2176, label %71
i32 2177, label %72
i32 2178, label %73
i32 32899, label %74
i32 17536, label %75
i32 17537, label %76
i32 17538, label %77
i32 18176, label %78
i32 6656, label %79
i32 8192, label %80
i32 9472, label %81
i32 9728, label %82
i32 11265, label %83
i32 11266, label %84
i32 11392, label %85
i32 11393, label %86
i32 11394, label %87
i32 11395, label %88
i32 11396, label %89
i32 11397, label %90
i32 11398, label %91
i32 11399, label %92
i32 15616, label %93
i32 10496, label %94
i32 6912, label %95
i32 17152, label %96
i32 18688, label %97
]
13: ; preds = %1
store i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str, i64 0, i64 0), i8** %2
br label %99
14: ; preds = %1
store i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1, i64 0, i64 0), i8** %2
br label %99
15: ; preds = %1
store i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.2, i64 0, i64 0), i8** %2
br label %99
16: ; preds = %1
store i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.3, i64 0, i64 0), i8** %2
br label %99
17: ; preds = %1
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.4, i64 0, i64 0), i8** %2
br label %99
18: ; preds = %1
%19 = load i32, i32* %5
%20 = icmp eq i32 %19, 2
br i1 %20, label %21, label %22
21: ; preds = %18
store i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.5, i64 0, i64 0), i8** %2
br label %99
22: ; preds = %18
%23 = load i32, i32* %5
%24 = icmp eq i32 %23, 3
br i1 %24, label %25, label %26
25: ; preds = %22
store i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.6, i64 0, i64 0), i8** %2
br label %99
26: ; preds = %22
%27 = load i32, i32* %5
%28 = icmp eq i32 %27, 4
br i1 %28, label %29, label %30
29: ; preds = %26
store i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.7, i64 0, i64 0), i8** %2
br label %99
30: ; preds = %26
store i8* null, i8** %2
br label %99
31: ; preds = %1
%32 = load i32, i32* %5
%33 = icmp eq i32 %32, 2
br i1 %33, label %34, label %35
34: ; preds = %31
store i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.8, i64 0, i64 0), i8** %2
br label %99
35: ; preds = %31
%36 = load i32, i32* %5
%37 = icmp eq i32 %36, 3
br i1 %37, label %38, label %39
38: ; preds = %35
store i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.9, i64 0, i64 0), i8** %2
br label %99
39: ; preds = %35
%40 = load i32, i32* %5
%41 = icmp eq i32 %40, 4
br i1 %41, label %42, label %43
42: ; preds = %39
store i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.10, i64 0, i64 0), i8** %2
br label %99
43: ; preds = %39
store i8* null, i8** %2
br label %99
44: ; preds = %1
store i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.11, i64 0, i64 0), i8** %2
br label %99
45: ; preds = %1
%46 = load i32, i32* %5
%47 = icmp eq i32 %46, 3
br i1 %47, label %48, label %49
48: ; preds = %45
store i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.12, i64 0, i64 0), i8** %2
br label %99
49: ; preds = %45
%50 = load i32, i32* %5
%51 = icmp eq i32 %50, 4
br i1 %51, label %52, label %53
52: ; preds = %49
store i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.13, i64 0, i64 0), i8** %2
br label %99
53: ; preds = %49
store i8* null, i8** %2
br label %99
54: ; preds = %1
%55 = load i32, i32* %5
%56 = icmp eq i32 %55, 3
br i1 %56, label %57, label %58
57: ; preds = %54
store i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.14, i64 0, i64 0), i8** %2
br label %99
58: ; preds = %54
%59 = load i32, i32* %5
%60 = icmp eq i32 %59, 4
br i1 %60, label %61, label %62
61: ; preds = %58
store i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.15, i64 0, i64 0), i8** %2
br label %99
62: ; preds = %58
store i8* null, i8** %2
br label %99
63: ; preds = %1
store i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.16, i64 0, i64 0), i8** %2
br label %99
64: ; preds = %1
store i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.17, i64 0, i64 0), i8** %2
br label %99
65: ; preds = %1
store i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.18, i64 0, i64 0), i8** %2
br label %99
66: ; preds = %1
store i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.19, i64 0, i64 0), i8** %2
br label %99
67: ; preds = %1
store i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.20, i64 0, i64 0), i8** %2
br label %99
68: ; preds = %1
store i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.21, i64 0, i64 0), i8** %2
br label %99
69: ; preds = %1
store i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.22, i64 0, i64 0), i8** %2
br label %99
70: ; preds = %1
store i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.23, i64 0, i64 0), i8** %2
br label %99
71: ; preds = %1
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.24, i64 0, i64 0), i8** %2
br label %99
72: ; preds = %1
store i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.25, i64 0, i64 0), i8** %2
br label %99
73: ; preds = %1
store i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.26, i64 0, i64 0), i8** %2
br label %99
74: ; preds = %1
store i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.27, i64 0, i64 0), i8** %2
br label %99
75: ; preds = %1
store i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.28, i64 0, i64 0), i8** %2
br label %99
76: ; preds = %1
store i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.29, i64 0, i64 0), i8** %2
br label %99
77: ; preds = %1
store i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.30, i64 0, i64 0), i8** %2
br label %99
78: ; preds = %1
store i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.31, i64 0, i64 0), i8** %2
br label %99
79: ; preds = %1
store i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.32, i64 0, i64 0), i8** %2
br label %99
80: ; preds = %1
store i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.33, i64 0, i64 0), i8** %2
br label %99
81: ; preds = %1
store i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.34, i64 0, i64 0), i8** %2
br label %99
82: ; preds = %1
store i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.35, i64 0, i64 0), i8** %2
br label %99
83: ; preds = %1
store i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.36, i64 0, i64 0), i8** %2
br label %99
84: ; preds = %1
store i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.37, i64 0, i64 0), i8** %2
br label %99
85: ; preds = %1
store i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.38, i64 0, i64 0), i8** %2
br label %99
86: ; preds = %1
store i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.39, i64 0, i64 0), i8** %2
br label %99
87: ; preds = %1
store i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.40, i64 0, i64 0), i8** %2
br label %99
88: ; preds = %1
store i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.41, i64 0, i64 0), i8** %2
br label %99
89: ; preds = %1
store i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.42, i64 0, i64 0), i8** %2
br label %99
90: ; preds = %1
store i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.43, i64 0, i64 0), i8** %2
br label %99
91: ; preds = %1
store i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.44, i64 0, i64 0), i8** %2
br label %99
92: ; preds = %1
store i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.45, i64 0, i64 0), i8** %2
br label %99
93: ; preds = %1
store i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.46, i64 0, i64 0), i8** %2
br label %99
94: ; preds = %1
store i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.47, i64 0, i64 0), i8** %2
br label %99
95: ; preds = %1
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.48, i64 0, i64 0), i8** %2
br label %99
96: ; preds = %1
store i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.49, i64 0, i64 0), i8** %2
br label %99
97: ; preds = %1
store i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.50, i64 0, i64 0), i8** %2
br label %99
98: ; preds = %1
store i8* null, i8** %2
br label %99
99: ; preds = %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, %57, %53, %52, %48, %44, %43, %42, %38, %34, %30, %29, %25, %21, %17, %16, %15, %14, %13
%100 = load i8*, i8** %2
ret i8* %100
}

LLVM IR (-O2):
@.str = [21 x i8] c"Invalid field in CDB\00"
@.str.1 = [13 x i8] c"Out of paper\00"
@.str.2 = [24 x i8] c"Document lead door open\00"
@.str.3 = [29 x i8] c"Document discharge door open\00"
@.str.4 = [25 x i8] c"Post imprinter door open\00"
@.str.5 = [16 x i8] c"Scanner stopped\00"
@.str.6 = [24 x i8] c"Jammed at document lead\00"
@.str.7 = [38 x i8] c"Lamp failure with regular temperature\00"
@.str.8 = [24 x i8] c"Document feeder stopped\00"
@.str.9 = [31 x i8] c"Jammed at document discharge 1\00"
@.str.10 = [27 x i8] c"Document size detect error\00"
@.str.11 = [31 x i8] c"Jammed at document discharge 2\00"
@.str.12 = [23 x i8] c"Document internal rest\00"
@.str.13 = [22 x i8] c"Document hopper error\00"
@.str.14 = [26 x i8] c"Jammed at document feed 1\00"
@.str.15 = [29 x i8] c"Document sensor adjust error\00"
@.str.16 = [26 x i8] c"Jammed at document feed 2\00"
@.str.17 = [26 x i8] c"Jammed at document feed 3\00"
@.str.18 = [26 x i8] c"Jammed at document feed 4\00"
@.str.19 = [11 x i8] c"Skew error\00"
@.str.20 = [20 x i8] c"Minimum media error\00"
@.str.21 = [19 x i8] c"Media length error\00"
@.str.22 = [18 x i8] c"Double feed error\00"
@.str.23 = [14 x i8] c"Barcode error\00"
@.str.24 = [25 x i8] c"Internal parameter error\00"
@.str.25 = [19 x i8] c"Internal DMA error\00"
@.str.26 = [23 x i8] c"Internal command error\00"
@.str.27 = [29 x i8] c"Internal communication error\00"
@.str.28 = [19 x i8] c"Internal RAM error\00"
@.str.29 = [22 x i8] c"Internal EEPROM error\00"
@.str.30 = [11 x i8] c"FPGA error\00"
@.str.31 = [18 x i8] c"SCSI parity error\00"
@.str.32 = [28 x i8] c"Parameter list length error\00"
@.str.33 = [24 x i8] c"Invalid command op code\00"
@.str.34 = [27 x i8] c"Logical unit not supported\00"
@.str.35 = [32 x i8] c"Invalid field in parameter list\00"
@.str.36 = [17 x i8] c"Too many windows\00"
@.str.37 = [27 x i8] c"Invalid window combination\00"
@.str.38 = [14 x i8] c"Out of memory\00"
@.str.39 = [22 x i8] c"No back scanning unit\00"
@.str.40 = [18 x i8] c"No imprinter unit\00"
@.str.41 = [23 x i8] c"Pointer position error\00"
@.str.42 = [27 x i8] c"Out of scanning page limit\00"
@.str.43 = [29 x i8] c"Out of scanning length limit\00"
@.str.44 = [33 x i8] c"Out of scanning resolution limit\00"
@.str.45 = [33 x i8] c"Out of scanning line cycle limit\00"
@.str.46 = [33 x i8] c"Invalid bits in identity message\00"
@.str.47 = [15 x i8] c"Unit attention\00"
@.str.48 = [25 x i8] c"Sync data transfer error\00"
@.str.49 = [14 x i8] c"Message error\00"
@.str.50 = [22 x i8] c"Invalid message error\00"
@reltable.kvss905c_strerror = [3 x i32] [i32 trunc (i64 sub (i64 ptrtoint ([16 x i8]* @.str.5 to i64), i64 ptrtoint ([3 x i32]* @reltable.kvss905c_strerror to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([24 x i8]* @.str.6 to i64), i64 ptrtoint ([3 x i32]* @reltable.kvss905c_strerror to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([38 x i8]* @.str.7 to i64), i64 ptrtoint ([3 x i32]* @reltable.kvss905c_strerror to i64)) to i32)]
@reltable.kvss905c_strerror.52 = [3 x i32] [i32 trunc (i64 sub (i64 ptrtoint ([24 x i8]* @.str.8 to i64), i64 ptrtoint ([3 x i32]* @reltable.kvss905c_strerror.52 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([31 x i8]* @.str.9 to i64), i64 ptrtoint ([3 x i32]* @reltable.kvss905c_strerror.52 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([27 x i8]* @.str.10 to i64), i64 ptrtoint ([3 x i32]* @reltable.kvss905c_strerror.52 to i64)) to i32)]
define i8* @kvss905c_strerror(i32* %0) {
%2 = tail call i32 @scsi_error_code(i32* %0)
%3 = getelementptr inbounds i32, i32* %0, i64 2
%4 = load i32, i32* %3
%5 = and i32 %4, 15
switch i32 %2, label %62 [
i32 9216, label %71
i32 14848, label %6
i32 1152, label %7
i32 1153, label %8
i32 1154, label %9
i32 32769, label %10
i32 32770, label %13
i32 32771, label %16
i32 32772, label %17
i32 32773, label %22
i32 32774, label %27
i32 32775, label %28
i32 32776, label %29
i32 32778, label %30
i32 32779, label %31
i32 32780, label %32
i32 32781, label %33
i32 32782, label %34
i32 2176, label %35
i32 2177, label %36
i32 2178, label %37
i32 32899, label %38
i32 17536, label %39
i32 17537, label %40
i32 17538, label %41
i32 18176, label %42
i32 6656, label %43
i32 8192, label %44
i32 9472, label %45
i32 9728, label %46
i32 11265, label %47
i32 11266, label %48
i32 11392, label %49
i32 11393, label %50
i32 11394, label %51
i32 11395, label %52
i32 11396, label %53
i32 11397, label %54
i32 11398, label %55
i32 11399, label %56
i32 15616, label %57
i32 10496, label %58
i32 6912, label %59
i32 17152, label %60
i32 18688, label %61
]
6: ; preds = %1
br label %71
7: ; preds = %1
br label %71
8: ; preds = %1
br label %71
9: ; preds = %1
br label %71
10: ; preds = %1
%11 = add nsw i32 %5, -2
%12 = icmp ult i32 %11, 3
br i1 %12, label %63, label %71
13: ; preds = %1
%14 = add nsw i32 %5, -2
%15 = icmp ult i32 %14, 3
br i1 %15, label %67, label %71
16: ; preds = %1
br label %71
17: ; preds = %1
%18 = icmp eq i32 %5, 4
%19 = select i1 %18, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.13, i64 0, i64 0), i8* null
%20 = icmp eq i32 %5, 3
%21 = select i1 %20, i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.12, i64 0, i64 0), i8* %19
br label %71
22: ; preds = %1
%23 = icmp eq i32 %5, 4
%24 = select i1 %23, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.15, i64 0, i64 0), i8* null
%25 = icmp eq i32 %5, 3
%26 = select i1 %25, i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.14, i64 0, i64 0), i8* %24
br label %71
27: ; preds = %1
br label %71
28: ; preds = %1
br label %71
29: ; preds = %1
br label %71
30: ; preds = %1
br label %71
31: ; preds = %1
br label %71
32: ; preds = %1
br label %71
33: ; preds = %1
br label %71
34: ; preds = %1
br label %71
35: ; preds = %1
br label %71
36: ; preds = %1
br label %71
37: ; preds = %1
br label %71
38: ; preds = %1
br label %71
39: ; preds = %1
br label %71
40: ; preds = %1
br label %71
41: ; preds = %1
br label %71
42: ; preds = %1
br label %71
43: ; preds = %1
br label %71
44: ; preds = %1
br label %71
45: ; preds = %1
br label %71
46: ; preds = %1
br label %71
47: ; preds = %1
br label %71
48: ; preds = %1
br label %71
49: ; preds = %1
br label %71
50: ; preds = %1
br label %71
51: ; preds = %1
br label %71
52: ; preds = %1
br label %71
53: ; preds = %1
br label %71
54: ; preds = %1
br label %71
55: ; preds = %1
br label %71
56: ; preds = %1
br label %71
57: ; preds = %1
br label %71
58: ; preds = %1
br label %71
59: ; preds = %1
br label %71
60: ; preds = %1
br label %71
61: ; preds = %1
br label %71
62: ; preds = %1
br label %71
63: ; preds = %10
%64 = sext i32 %11 to i64
%65 = shl i64 %64, 2
%66 = call i8* @llvm.load.relative.i64(i8* bitcast ([3 x i32]* @reltable.kvss905c_strerror to i8*), i64 %65)
br label %71
67: ; preds = %13
%68 = sext i32 %14 to i64
%69 = shl i64 %68, 2
%70 = call i8* @llvm.load.relative.i64(i8* bitcast ([3 x i32]* @reltable.kvss905c_strerror.52 to i8*), i64 %69)
br label %71
71: ; preds = %13, %67, %10, %63, %22, %17, %1, %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, %16, %9, %8, %7, %6
%72 = phi i8* [ null, %62 ], [ getelementptr inbounds ([22 x i8], [22 x i8]* @.str.50, i64 0, i64 0), %61 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @.str.49, i64 0, i64 0), %60 ], [ getelementptr inbounds ([25 x i8], [25 x i8]* @.str.48, i64 0, i64 0), %59 ], [ getelementptr inbounds ([15 x i8], [15 x i8]* @.str.47, i64 0, i64 0), %58 ], [ getelementptr inbounds ([33 x i8], [33 x i8]* @.str.46, i64 0, i64 0), %57 ], [ getelementptr inbounds ([33 x i8], [33 x i8]* @.str.45, i64 0, i64 0), %56 ], [ getelementptr inbounds ([33 x i8], [33 x i8]* @.str.44, i64 0, i64 0), %55 ], [ getelementptr inbounds ([29 x i8], [29 x i8]* @.str.43, i64 0, i64 0), %54 ], [ getelementptr inbounds ([27 x i8], [27 x i8]* @.str.42, i64 0, i64 0), %53 ], [ getelementptr inbounds ([23 x i8], [23 x i8]* @.str.41, i64 0, i64 0), %52 ], [ getelementptr inbounds ([18 x i8], [18 x i8]* @.str.40, i64 0, i64 0), %51 ], [ getelementptr inbounds ([22 x i8], [22 x i8]* @.str.39, i64 0, i64 0), %50 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @.str.38, i64 0, i64 0), %49 ], [ getelementptr inbounds ([27 x i8], [27 x i8]* @.str.37, i64 0, i64 0), %48 ], [ getelementptr inbounds ([17 x i8], [17 x i8]* @.str.36, i64 0, i64 0), %47 ], [ getelementptr inbounds ([32 x i8], [32 x i8]* @.str.35, i64 0, i64 0), %46 ], [ getelementptr inbounds ([27 x i8], [27 x i8]* @.str.34, i64 0, i64 0), %45 ], [ getelementptr inbounds ([24 x i8], [24 x i8]* @.str.33, i64 0, i64 0), %44 ], [ getelementptr inbounds ([28 x i8], [28 x i8]* @.str.32, i64 0, i64 0), %43 ], [ getelementptr inbounds ([18 x i8], [18 x i8]* @.str.31, i64 0, i64 0), %42 ], [ getelementptr inbounds ([11 x i8], [11 x i8]* @.str.30, i64 0, i64 0), %41 ], [ getelementptr inbounds ([22 x i8], [22 x i8]* @.str.29, i64 0, i64 0), %40 ], [ getelementptr inbounds ([19 x i8], [19 x i8]* @.str.28, i64 0, i64 0), %39 ], [ getelementptr inbounds ([29 x i8], [29 x i8]* @.str.27, i64 0, i64 0), %38 ], [ getelementptr inbounds ([23 x i8], [23 x i8]* @.str.26, i64 0, i64 0), %37 ], [ getelementptr inbounds ([19 x i8], [19 x i8]* @.str.25, i64 0, i64 0), %36 ], [ getelementptr inbounds ([25 x i8], [25 x i8]* @.str.24, i64 0, i64 0), %35 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @.str.23, i64 0, i64 0), %34 ], [ getelementptr inbounds ([18 x i8], [18 x i8]* @.str.22, i64 0, i64 0), %33 ], [ getelementptr inbounds ([19 x i8], [19 x i8]* @.str.21, i64 0, i64 0), %32 ], [ getelementptr inbounds ([20 x i8], [20 x i8]* @.str.20, i64 0, i64 0), %31 ], [ getelementptr inbounds ([11 x i8], [11 x i8]* @.str.19, i64 0, i64 0), %30 ], [ getelementptr inbounds ([26 x i8], [26 x i8]* @.str.18, i64 0, i64 0), %29 ], [ getelementptr inbounds ([26 x i8], [26 x i8]* @.str.17, i64 0, i64 0), %28 ], [ getelementptr inbounds ([26 x i8], [26 x i8]* @.str.16, i64 0, i64 0), %27 ], [ getelementptr inbounds ([31 x i8], [31 x i8]* @.str.11, i64 0, i64 0), %16 ], [ getelementptr inbounds ([25 x i8], [25 x i8]* @.str.4, i64 0, i64 0), %9 ], [ getelementptr inbounds ([29 x i8], [29 x i8]* @.str.3, i64 0, i64 0), %8 ], [ getelementptr inbounds ([24 x i8], [24 x i8]* @.str.2, i64 0, i64 0), %7 ], [ getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1, i64 0, i64 0), %6 ], [ getelementptr inbounds ([21 x i8], [21 x i8]* @.str, i64 0, i64 0), %1 ], [ %21, %17 ], [ %26, %22 ], [ %66, %63 ], [ null, %10 ], [ %70, %67 ], [ null, %13 ]
ret i8* %72
}