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

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int response_type2(int, int, int, int);
int response_type3(int, int, int, int, char **, int);
int response_type4(int, int, int, int, int, int);
int response_type5(int, int, int, int);
int response_type6(int, int, int, int, char **, int);
int response_type7(int, int, int, int, char **, int);
int response_type9(int, int, int, int);
int canna_response(int id, int *major, int *minor, int *cxt, int *aux0,
                   int *aux1, int *aux2, char **buf2) {
  int maj = *major, min = *minor;
  if (maj == 0x02 && min == 0) {
    return response_type2(id, maj, min, *aux0);
  } else if (maj == 0x03 && min == 0) {
    return response_type5(id, maj, min, *aux0);
  } else if (maj == 0x03 && min == 1) {
    return response_type2(id, maj, min, *aux0);
  } else if (maj == 0x04 && min == 0) {
    return response_type5(id, maj, min, *aux0);
  } else if (maj == 0x05 && min == 0) {
    return response_type2(id, maj, min, *aux0);
  } else if (maj == 0x06 && min == 0) {
    return response_type6(id, maj, min, *aux0, buf2, *aux1);
  } else if (maj == 0x07 && min == 0) {
    return response_type6(id, maj, min, *aux0, buf2, *aux1);
  } else if (maj == 0x08 && min == 0) {
    return response_type2(id, maj, min, *aux0);
  } else if (maj == 0x08 && min == 1) {
    return response_type2(id, maj, min, *aux0);
  } else if (maj == 0x09 && min == 0) {
    return response_type2(id, maj, min, *aux0);
  } else if (maj == 0x0b && min == 0) {
    return response_type6(id, maj, min, *aux0, buf2, *aux1);
  } else if (maj == 0x0d && min == 0) {
    return response_type2(id, maj, min, *aux0);
  } else if (maj == 0x0e && min == 0) {
    return response_type2(id, maj, min, *aux0);
  } else if (maj == 0x0f && min == 0) {
    return response_type7(id, maj, min, *aux0, buf2, *aux1);
  } else if (maj == 0x10 && min == 0) {
    return response_type2(id, maj, min, *aux0);
  } else if (maj == 0x11 && min == 0) {
    return response_type7(id, maj, min, *aux0, buf2, *aux1);
  } else if (maj == 0x12 && min == 0) {
    return response_type7(id, maj, min, *aux0, buf2, *aux1);
  } else if (maj == 0x1a && min == 0) {
    return response_type7(id, maj, min, *aux0, buf2, *aux1);
  } else if (maj == 0x1b && min == 0) {
    return response_type3(id, maj, min, *aux0, buf2, *aux1);
  } else if (maj == 0x1c && min == 0) {
    return response_type9(id, maj, min, *aux0);
  } else if (maj == 0x1d && min == 0) {
    return response_type4(id, maj, min, *aux0, *aux1, *aux2);
  } else if (maj == 0x21 && min == 0) {
    return response_type2(id, maj, min, *aux0);
  } else if (maj == 0x22 && min == 0) {
    return response_type2(id, maj, min, *aux0);
  } else {
    return -1;
  }
}


x86 assembly (clang, -O0):
<canna_response>:
push   %rbp
mov    %rsp,%rbp
sub    $0x40,%rsp
mov    0x18(%rbp),%rax
mov    0x10(%rbp),%rax
mov    %edi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %rcx,-0x20(%rbp)
mov    %r8,-0x28(%rbp)
mov    %r9,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x34(%rbp)
mov    -0x18(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x38(%rbp)
cmpl   $0x2,-0x34(%rbp)
jne    11d9 <canna_response+0x69>
cmpl   $0x0,-0x38(%rbp)
jne    11d9 <canna_response+0x69>
mov    -0x8(%rbp),%edi
mov    -0x34(%rbp),%esi
mov    -0x38(%rbp),%edx
mov    -0x28(%rbp),%rax
mov    (%rax),%ecx
call   1040 <response_type2@plt>
mov    %eax,-0x4(%rbp)
jmp    1666 <canna_response+0x4f6>
cmpl   $0x3,-0x34(%rbp)
jne    1209 <canna_response+0x99>
cmpl   $0x0,-0x38(%rbp)
jne    1209 <canna_response+0x99>
mov    -0x8(%rbp),%edi
mov    -0x34(%rbp),%esi
mov    -0x38(%rbp),%edx
mov    -0x28(%rbp),%rax
mov    (%rax),%ecx
call   1050 <response_type5@plt>
mov    %eax,-0x4(%rbp)
jmp    1666 <canna_response+0x4f6>
cmpl   $0x3,-0x34(%rbp)
jne    1239 <canna_response+0xc9>
cmpl   $0x1,-0x38(%rbp)
jne    1239 <canna_response+0xc9>
mov    -0x8(%rbp),%edi
mov    -0x34(%rbp),%esi
mov    -0x38(%rbp),%edx
mov    -0x28(%rbp),%rax
mov    (%rax),%ecx
call   1040 <response_type2@plt>
mov    %eax,-0x4(%rbp)
jmp    1666 <canna_response+0x4f6>
cmpl   $0x4,-0x34(%rbp)
jne    1269 <canna_response+0xf9>
cmpl   $0x0,-0x38(%rbp)
jne    1269 <canna_response+0xf9>
mov    -0x8(%rbp),%edi
mov    -0x34(%rbp),%esi
mov    -0x38(%rbp),%edx
mov    -0x28(%rbp),%rax
mov    (%rax),%ecx
call   1050 <response_type5@plt>
mov    %eax,-0x4(%rbp)
jmp    1666 <canna_response+0x4f6>
cmpl   $0x5,-0x34(%rbp)
jne    1299 <canna_response+0x129>
cmpl   $0x0,-0x38(%rbp)
jne    1299 <canna_response+0x129>
mov    -0x8(%rbp),%edi
mov    -0x34(%rbp),%esi
mov    -0x38(%rbp),%edx
mov    -0x28(%rbp),%rax
mov    (%rax),%ecx
call   1040 <response_type2@plt>
mov    %eax,-0x4(%rbp)
jmp    1666 <canna_response+0x4f6>
cmpl   $0x6,-0x34(%rbp)
jne    12d4 <canna_response+0x164>
cmpl   $0x0,-0x38(%rbp)
jne    12d4 <canna_response+0x164>
mov    -0x8(%rbp),%edi
mov    -0x34(%rbp),%esi
mov    -0x38(%rbp),%edx
mov    -0x28(%rbp),%rax
mov    (%rax),%ecx
mov    0x18(%rbp),%r8
mov    -0x30(%rbp),%rax
mov    (%rax),%r9d
call   1090 <response_type6@plt>
mov    %eax,-0x4(%rbp)
jmp    1666 <canna_response+0x4f6>
cmpl   $0x7,-0x34(%rbp)
jne    130f <canna_response+0x19f>
cmpl   $0x0,-0x38(%rbp)
jne    130f <canna_response+0x19f>
mov    -0x8(%rbp),%edi
mov    -0x34(%rbp),%esi
mov    -0x38(%rbp),%edx
mov    -0x28(%rbp),%rax
mov    (%rax),%ecx
mov    0x18(%rbp),%r8
mov    -0x30(%rbp),%rax
mov    (%rax),%r9d
call   1090 <response_type6@plt>
mov    %eax,-0x4(%rbp)
jmp    1666 <canna_response+0x4f6>
cmpl   $0x8,-0x34(%rbp)
jne    133f <canna_response+0x1cf>
cmpl   $0x0,-0x38(%rbp)
jne    133f <canna_response+0x1cf>
mov    -0x8(%rbp),%edi
mov    -0x34(%rbp),%esi
mov    -0x38(%rbp),%edx
mov    -0x28(%rbp),%rax
mov    (%rax),%ecx
call   1040 <response_type2@plt>
mov    %eax,-0x4(%rbp)
jmp    1666 <canna_response+0x4f6>
cmpl   $0x8,-0x34(%rbp)
jne    136f <canna_response+0x1ff>
cmpl   $0x1,-0x38(%rbp)
jne    136f <canna_response+0x1ff>
mov    -0x8(%rbp),%edi
mov    -0x34(%rbp),%esi
mov    -0x38(%rbp),%edx
mov    -0x28(%rbp),%rax
mov    (%rax),%ecx
call   1040 <response_type2@plt>
mov    %eax,-0x4(%rbp)
jmp    1666 <canna_response+0x4f6>
cmpl   $0x9,-0x34(%rbp)
jne    139f <canna_response+0x22f>
cmpl   $0x0,-0x38(%rbp)
jne    139f <canna_response+0x22f>
mov    -0x8(%rbp),%edi
mov    -0x34(%rbp),%esi
mov    -0x38(%rbp),%edx
mov    -0x28(%rbp),%rax
mov    (%rax),%ecx
call   1040 <response_type2@plt>
mov    %eax,-0x4(%rbp)
jmp    1666 <canna_response+0x4f6>
cmpl   $0xb,-0x34(%rbp)
jne    13da <canna_response+0x26a>
cmpl   $0x0,-0x38(%rbp)
jne    13da <canna_response+0x26a>
mov    -0x8(%rbp),%edi
mov    -0x34(%rbp),%esi
mov    -0x38(%rbp),%edx
mov    -0x28(%rbp),%rax
mov    (%rax),%ecx
mov    0x18(%rbp),%r8
mov    -0x30(%rbp),%rax
mov    (%rax),%r9d
call   1090 <response_type6@plt>
mov    %eax,-0x4(%rbp)
jmp    1666 <canna_response+0x4f6>
cmpl   $0xd,-0x34(%rbp)
jne    140a <canna_response+0x29a>
cmpl   $0x0,-0x38(%rbp)
jne    140a <canna_response+0x29a>
mov    -0x8(%rbp),%edi
mov    -0x34(%rbp),%esi
mov    -0x38(%rbp),%edx
mov    -0x28(%rbp),%rax
mov    (%rax),%ecx
call   1040 <response_type2@plt>
mov    %eax,-0x4(%rbp)
jmp    1666 <canna_response+0x4f6>
cmpl   $0xe,-0x34(%rbp)
jne    143a <canna_response+0x2ca>
cmpl   $0x0,-0x38(%rbp)
jne    143a <canna_response+0x2ca>
mov    -0x8(%rbp),%edi
mov    -0x34(%rbp),%esi
mov    -0x38(%rbp),%edx
mov    -0x28(%rbp),%rax
mov    (%rax),%ecx
call   1040 <response_type2@plt>
mov    %eax,-0x4(%rbp)
jmp    1666 <canna_response+0x4f6>
cmpl   $0xf,-0x34(%rbp)
jne    1475 <canna_response+0x305>
cmpl   $0x0,-0x38(%rbp)
jne    1475 <canna_response+0x305>
mov    -0x8(%rbp),%edi
mov    -0x34(%rbp),%esi
mov    -0x38(%rbp),%edx
mov    -0x28(%rbp),%rax
mov    (%rax),%ecx
mov    0x18(%rbp),%r8
mov    -0x30(%rbp),%rax
mov    (%rax),%r9d
call   1070 <response_type7@plt>
mov    %eax,-0x4(%rbp)
jmp    1666 <canna_response+0x4f6>
cmpl   $0x10,-0x34(%rbp)
jne    14a5 <canna_response+0x335>
cmpl   $0x0,-0x38(%rbp)
jne    14a5 <canna_response+0x335>
mov    -0x8(%rbp),%edi
mov    -0x34(%rbp),%esi
mov    -0x38(%rbp),%edx
mov    -0x28(%rbp),%rax
mov    (%rax),%ecx
call   1040 <response_type2@plt>
mov    %eax,-0x4(%rbp)
jmp    1666 <canna_response+0x4f6>
cmpl   $0x11,-0x34(%rbp)
jne    14e0 <canna_response+0x370>
cmpl   $0x0,-0x38(%rbp)
jne    14e0 <canna_response+0x370>
mov    -0x8(%rbp),%edi
mov    -0x34(%rbp),%esi
mov    -0x38(%rbp),%edx
mov    -0x28(%rbp),%rax
mov    (%rax),%ecx
mov    0x18(%rbp),%r8
mov    -0x30(%rbp),%rax
mov    (%rax),%r9d
call   1070 <response_type7@plt>
mov    %eax,-0x4(%rbp)
jmp    1666 <canna_response+0x4f6>
cmpl   $0x12,-0x34(%rbp)
jne    151b <canna_response+0x3ab>
cmpl   $0x0,-0x38(%rbp)
jne    151b <canna_response+0x3ab>
mov    -0x8(%rbp),%edi
mov    -0x34(%rbp),%esi
mov    -0x38(%rbp),%edx
mov    -0x28(%rbp),%rax
mov    (%rax),%ecx
mov    0x18(%rbp),%r8
mov    -0x30(%rbp),%rax
mov    (%rax),%r9d
call   1070 <response_type7@plt>
mov    %eax,-0x4(%rbp)
jmp    1666 <canna_response+0x4f6>
cmpl   $0x1a,-0x34(%rbp)
jne    1556 <canna_response+0x3e6>
cmpl   $0x0,-0x38(%rbp)
jne    1556 <canna_response+0x3e6>
mov    -0x8(%rbp),%edi
mov    -0x34(%rbp),%esi
mov    -0x38(%rbp),%edx
mov    -0x28(%rbp),%rax
mov    (%rax),%ecx
mov    0x18(%rbp),%r8
mov    -0x30(%rbp),%rax
mov    (%rax),%r9d
call   1070 <response_type7@plt>
mov    %eax,-0x4(%rbp)
jmp    1666 <canna_response+0x4f6>
cmpl   $0x1b,-0x34(%rbp)
jne    1591 <canna_response+0x421>
cmpl   $0x0,-0x38(%rbp)
jne    1591 <canna_response+0x421>
mov    -0x8(%rbp),%edi
mov    -0x34(%rbp),%esi
mov    -0x38(%rbp),%edx
mov    -0x28(%rbp),%rax
mov    (%rax),%ecx
mov    0x18(%rbp),%r8
mov    -0x30(%rbp),%rax
mov    (%rax),%r9d
call   1080 <response_type3@plt>
mov    %eax,-0x4(%rbp)
jmp    1666 <canna_response+0x4f6>
cmpl   $0x1c,-0x34(%rbp)
jne    15c1 <canna_response+0x451>
cmpl   $0x0,-0x38(%rbp)
jne    15c1 <canna_response+0x451>
mov    -0x8(%rbp),%edi
mov    -0x34(%rbp),%esi
mov    -0x38(%rbp),%edx
mov    -0x28(%rbp),%rax
mov    (%rax),%ecx
call   1060 <response_type9@plt>
mov    %eax,-0x4(%rbp)
jmp    1666 <canna_response+0x4f6>
cmpl   $0x1d,-0x34(%rbp)
jne    15ff <canna_response+0x48f>
cmpl   $0x0,-0x38(%rbp)
jne    15ff <canna_response+0x48f>
mov    -0x8(%rbp),%edi
mov    -0x34(%rbp),%esi
mov    -0x38(%rbp),%edx
mov    -0x28(%rbp),%rax
mov    (%rax),%ecx
mov    -0x30(%rbp),%rax
mov    (%rax),%r8d
mov    0x10(%rbp),%rax
mov    (%rax),%r9d
call   1030 <response_type4@plt>
mov    %eax,-0x4(%rbp)
jmp    1666 <canna_response+0x4f6>
cmpl   $0x21,-0x34(%rbp)
jne    162f <canna_response+0x4bf>
cmpl   $0x0,-0x38(%rbp)
jne    162f <canna_response+0x4bf>
mov    -0x8(%rbp),%edi
mov    -0x34(%rbp),%esi
mov    -0x38(%rbp),%edx
mov    -0x28(%rbp),%rax
mov    (%rax),%ecx
call   1040 <response_type2@plt>
mov    %eax,-0x4(%rbp)
jmp    1666 <canna_response+0x4f6>
cmpl   $0x22,-0x34(%rbp)
jne    165f <canna_response+0x4ef>
cmpl   $0x0,-0x38(%rbp)
jne    165f <canna_response+0x4ef>
mov    -0x8(%rbp),%edi
mov    -0x34(%rbp),%esi
mov    -0x38(%rbp),%edx
mov    -0x28(%rbp),%rax
mov    (%rax),%ecx
call   1040 <response_type2@plt>
mov    %eax,-0x4(%rbp)
jmp    1666 <canna_response+0x4f6>
movl   $0xffffffff,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x40,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<canna_response>:
mov    %r8,%rax
mov    0x10(%rsp),%r8
mov    0x8(%rsp),%r10
mov    (%rsi),%esi
mov    (%rdx),%ecx
cmp    $0x2,%esi
jne    1198 <canna_response+0x28>
test   %ecx,%ecx
jne    1198 <canna_response+0x28>
mov    (%rax),%ecx
mov    $0x2,%esi
xor    %edx,%edx
jmp    1040 <response_type2@plt>
cmp    $0x3,%esi
jne    11af <canna_response+0x3f>
test   %ecx,%ecx
jne    11af <canna_response+0x3f>
mov    (%rax),%ecx
mov    $0x3,%esi
xor    %edx,%edx
jmp    1050 <response_type5@plt>
cmp    $0x3,%esi
jne    11ca <canna_response+0x5a>
cmp    $0x1,%ecx
jne    11ca <canna_response+0x5a>
mov    (%rax),%ecx
mov    $0x3,%esi
mov    $0x1,%edx
jmp    1040 <response_type2@plt>
cmp    $0x4,%esi
jne    11e1 <canna_response+0x71>
test   %ecx,%ecx
jne    11e1 <canna_response+0x71>
mov    (%rax),%ecx
mov    $0x4,%esi
xor    %edx,%edx
jmp    1050 <response_type5@plt>
cmp    $0x5,%esi
jne    11f8 <canna_response+0x88>
test   %ecx,%ecx
jne    11f8 <canna_response+0x88>
mov    (%rax),%ecx
mov    $0x5,%esi
xor    %edx,%edx
jmp    1040 <response_type2@plt>
cmp    $0x6,%esi
jne    1212 <canna_response+0xa2>
test   %ecx,%ecx
jne    1212 <canna_response+0xa2>
mov    (%rax),%ecx
mov    (%r9),%r9d
mov    $0x6,%esi
xor    %edx,%edx
jmp    1090 <response_type6@plt>
cmp    $0x7,%esi
jne    122c <canna_response+0xbc>
test   %ecx,%ecx
jne    122c <canna_response+0xbc>
mov    (%rax),%ecx
mov    (%r9),%r9d
mov    $0x7,%esi
xor    %edx,%edx
jmp    1090 <response_type6@plt>
cmp    $0x8,%esi
jne    1243 <canna_response+0xd3>
test   %ecx,%ecx
jne    1243 <canna_response+0xd3>
mov    (%rax),%ecx
mov    $0x8,%esi
xor    %edx,%edx
jmp    1040 <response_type2@plt>
cmp    $0x8,%esi
jne    125e <canna_response+0xee>
cmp    $0x1,%ecx
jne    125e <canna_response+0xee>
mov    (%rax),%ecx
mov    $0x8,%esi
mov    $0x1,%edx
jmp    1040 <response_type2@plt>
cmp    $0x9,%esi
jne    1275 <canna_response+0x105>
test   %ecx,%ecx
jne    1275 <canna_response+0x105>
mov    (%rax),%ecx
mov    $0x9,%esi
xor    %edx,%edx
jmp    1040 <response_type2@plt>
cmp    $0xb,%esi
jne    128f <canna_response+0x11f>
test   %ecx,%ecx
jne    128f <canna_response+0x11f>
mov    (%rax),%ecx
mov    (%r9),%r9d
mov    $0xb,%esi
xor    %edx,%edx
jmp    1090 <response_type6@plt>
cmp    $0xd,%esi
jne    12a6 <canna_response+0x136>
test   %ecx,%ecx
jne    12a6 <canna_response+0x136>
mov    (%rax),%ecx
mov    $0xd,%esi
xor    %edx,%edx
jmp    1040 <response_type2@plt>
cmp    $0xe,%esi
jne    12bd <canna_response+0x14d>
test   %ecx,%ecx
jne    12bd <canna_response+0x14d>
mov    (%rax),%ecx
mov    $0xe,%esi
xor    %edx,%edx
jmp    1040 <response_type2@plt>
cmp    $0xf,%esi
jne    12d7 <canna_response+0x167>
test   %ecx,%ecx
jne    12d7 <canna_response+0x167>
mov    (%rax),%ecx
mov    (%r9),%r9d
mov    $0xf,%esi
xor    %edx,%edx
jmp    1070 <response_type7@plt>
cmp    $0x10,%esi
jne    12ee <canna_response+0x17e>
test   %ecx,%ecx
jne    12ee <canna_response+0x17e>
mov    (%rax),%ecx
mov    $0x10,%esi
xor    %edx,%edx
jmp    1040 <response_type2@plt>
cmp    $0x11,%esi
jne    1308 <canna_response+0x198>
test   %ecx,%ecx
jne    1308 <canna_response+0x198>
mov    (%rax),%ecx
mov    (%r9),%r9d
mov    $0x11,%esi
xor    %edx,%edx
jmp    1070 <response_type7@plt>
cmp    $0x12,%esi
jne    1322 <canna_response+0x1b2>
test   %ecx,%ecx
jne    1322 <canna_response+0x1b2>
mov    (%rax),%ecx
mov    (%r9),%r9d
mov    $0x12,%esi
xor    %edx,%edx
jmp    1070 <response_type7@plt>
cmp    $0x1a,%esi
jne    133c <canna_response+0x1cc>
test   %ecx,%ecx
jne    133c <canna_response+0x1cc>
mov    (%rax),%ecx
mov    (%r9),%r9d
mov    $0x1a,%esi
xor    %edx,%edx
jmp    1070 <response_type7@plt>
cmp    $0x1b,%esi
jne    1356 <canna_response+0x1e6>
test   %ecx,%ecx
jne    1356 <canna_response+0x1e6>
mov    (%rax),%ecx
mov    (%r9),%r9d
mov    $0x1b,%esi
xor    %edx,%edx
jmp    1080 <response_type3@plt>
cmp    $0x1c,%esi
jne    136d <canna_response+0x1fd>
test   %ecx,%ecx
jne    136d <canna_response+0x1fd>
mov    (%rax),%ecx
mov    $0x1c,%esi
xor    %edx,%edx
jmp    1060 <response_type9@plt>
cmp    $0x1d,%esi
jne    138a <canna_response+0x21a>
test   %ecx,%ecx
jne    138a <canna_response+0x21a>
mov    (%rax),%ecx
mov    (%r9),%r8d
mov    (%r10),%r9d
mov    $0x1d,%esi
xor    %edx,%edx
jmp    1030 <response_type4@plt>
cmp    $0x21,%esi
jne    13a1 <canna_response+0x231>
test   %ecx,%ecx
jne    13a1 <canna_response+0x231>
mov    (%rax),%ecx
mov    $0x21,%esi
xor    %edx,%edx
jmp    1040 <response_type2@plt>
cmp    $0x22,%esi
jne    13b8 <canna_response+0x248>
test   %ecx,%ecx
jne    13b8 <canna_response+0x248>
mov    (%rax),%ecx
mov    $0x22,%esi
xor    %edx,%edx
jmp    1040 <response_type2@plt>
mov    $0xffffffff,%eax
ret

LLVM IR (-O0):
define i32 @canna_response(i32 %0, i32* %1, i32* %2, i32* %3, i32* %4, i32* %5, i32* %6, i8** %7) {
%9 = alloca i32
%10 = alloca i32
%11 = alloca i32*
%12 = alloca i32*
%13 = alloca i32*
%14 = alloca i32*
%15 = alloca i32*
%16 = alloca i32*
%17 = alloca i8**
%18 = alloca i32
%19 = alloca i32
store i32 %0, i32* %10
store i32* %1, i32** %11
store i32* %2, i32** %12
store i32* %3, i32** %13
store i32* %4, i32** %14
store i32* %5, i32** %15
store i32* %6, i32** %16
store i8** %7, i8*** %17
%20 = load i32*, i32** %11
%21 = load i32, i32* %20
store i32 %21, i32* %18
%22 = load i32*, i32** %12
%23 = load i32, i32* %22
store i32 %23, i32* %19
%24 = load i32, i32* %18
%25 = icmp eq i32 %24, 2
br i1 %25, label %26, label %36
26: ; preds = %8
%27 = load i32, i32* %19
%28 = icmp eq i32 %27, 0
br i1 %28, label %29, label %36
29: ; preds = %26
%30 = load i32, i32* %10
%31 = load i32, i32* %18
%32 = load i32, i32* %19
%33 = load i32*, i32** %14
%34 = load i32, i32* %33
%35 = call i32 @response_type2(i32 %30, i32 %31, i32 %32, i32 %34)
store i32 %35, i32* %9
br label %351
36: ; preds = %26, %8
%37 = load i32, i32* %18
%38 = icmp eq i32 %37, 3
br i1 %38, label %39, label %49
39: ; preds = %36
%40 = load i32, i32* %19
%41 = icmp eq i32 %40, 0
br i1 %41, label %42, label %49
42: ; preds = %39
%43 = load i32, i32* %10
%44 = load i32, i32* %18
%45 = load i32, i32* %19
%46 = load i32*, i32** %14
%47 = load i32, i32* %46
%48 = call i32 @response_type5(i32 %43, i32 %44, i32 %45, i32 %47)
store i32 %48, i32* %9
br label %351
49: ; preds = %39, %36
%50 = load i32, i32* %18
%51 = icmp eq i32 %50, 3
br i1 %51, label %52, label %62
52: ; preds = %49
%53 = load i32, i32* %19
%54 = icmp eq i32 %53, 1
br i1 %54, label %55, label %62
55: ; preds = %52
%56 = load i32, i32* %10
%57 = load i32, i32* %18
%58 = load i32, i32* %19
%59 = load i32*, i32** %14
%60 = load i32, i32* %59
%61 = call i32 @response_type2(i32 %56, i32 %57, i32 %58, i32 %60)
store i32 %61, i32* %9
br label %351
62: ; preds = %52, %49
%63 = load i32, i32* %18
%64 = icmp eq i32 %63, 4
br i1 %64, label %65, label %75
65: ; preds = %62
%66 = load i32, i32* %19
%67 = icmp eq i32 %66, 0
br i1 %67, label %68, label %75
68: ; preds = %65
%69 = load i32, i32* %10
%70 = load i32, i32* %18
%71 = load i32, i32* %19
%72 = load i32*, i32** %14
%73 = load i32, i32* %72
%74 = call i32 @response_type5(i32 %69, i32 %70, i32 %71, i32 %73)
store i32 %74, i32* %9
br label %351
75: ; preds = %65, %62
%76 = load i32, i32* %18
%77 = icmp eq i32 %76, 5
br i1 %77, label %78, label %88
78: ; preds = %75
%79 = load i32, i32* %19
%80 = icmp eq i32 %79, 0
br i1 %80, label %81, label %88
81: ; preds = %78
%82 = load i32, i32* %10
%83 = load i32, i32* %18
%84 = load i32, i32* %19
%85 = load i32*, i32** %14
%86 = load i32, i32* %85
%87 = call i32 @response_type2(i32 %82, i32 %83, i32 %84, i32 %86)
store i32 %87, i32* %9
br label %351
88: ; preds = %78, %75
%89 = load i32, i32* %18
%90 = icmp eq i32 %89, 6
br i1 %90, label %91, label %104
91: ; preds = %88
%92 = load i32, i32* %19
%93 = icmp eq i32 %92, 0
br i1 %93, label %94, label %104
94: ; preds = %91
%95 = load i32, i32* %10
%96 = load i32, i32* %18
%97 = load i32, i32* %19
%98 = load i32*, i32** %14
%99 = load i32, i32* %98
%100 = load i8**, i8*** %17
%101 = load i32*, i32** %15
%102 = load i32, i32* %101
%103 = call i32 @response_type6(i32 %95, i32 %96, i32 %97, i32 %99, i8** %100, i32 %102)
store i32 %103, i32* %9
br label %351
104: ; preds = %91, %88
%105 = load i32, i32* %18
%106 = icmp eq i32 %105, 7
br i1 %106, label %107, label %120
107: ; preds = %104
%108 = load i32, i32* %19
%109 = icmp eq i32 %108, 0
br i1 %109, label %110, label %120
110: ; preds = %107
%111 = load i32, i32* %10
%112 = load i32, i32* %18
%113 = load i32, i32* %19
%114 = load i32*, i32** %14
%115 = load i32, i32* %114
%116 = load i8**, i8*** %17
%117 = load i32*, i32** %15
%118 = load i32, i32* %117
%119 = call i32 @response_type6(i32 %111, i32 %112, i32 %113, i32 %115, i8** %116, i32 %118)
store i32 %119, i32* %9
br label %351
120: ; preds = %107, %104
%121 = load i32, i32* %18
%122 = icmp eq i32 %121, 8
br i1 %122, label %123, label %133
123: ; preds = %120
%124 = load i32, i32* %19
%125 = icmp eq i32 %124, 0
br i1 %125, label %126, label %133
126: ; preds = %123
%127 = load i32, i32* %10
%128 = load i32, i32* %18
%129 = load i32, i32* %19
%130 = load i32*, i32** %14
%131 = load i32, i32* %130
%132 = call i32 @response_type2(i32 %127, i32 %128, i32 %129, i32 %131)
store i32 %132, i32* %9
br label %351
133: ; preds = %123, %120
%134 = load i32, i32* %18
%135 = icmp eq i32 %134, 8
br i1 %135, label %136, label %146
136: ; preds = %133
%137 = load i32, i32* %19
%138 = icmp eq i32 %137, 1
br i1 %138, label %139, label %146
139: ; preds = %136
%140 = load i32, i32* %10
%141 = load i32, i32* %18
%142 = load i32, i32* %19
%143 = load i32*, i32** %14
%144 = load i32, i32* %143
%145 = call i32 @response_type2(i32 %140, i32 %141, i32 %142, i32 %144)
store i32 %145, i32* %9
br label %351
146: ; preds = %136, %133
%147 = load i32, i32* %18
%148 = icmp eq i32 %147, 9
br i1 %148, label %149, label %159
149: ; preds = %146
%150 = load i32, i32* %19
%151 = icmp eq i32 %150, 0
br i1 %151, label %152, label %159
152: ; preds = %149
%153 = load i32, i32* %10
%154 = load i32, i32* %18
%155 = load i32, i32* %19
%156 = load i32*, i32** %14
%157 = load i32, i32* %156
%158 = call i32 @response_type2(i32 %153, i32 %154, i32 %155, i32 %157)
store i32 %158, i32* %9
br label %351
159: ; preds = %149, %146
%160 = load i32, i32* %18
%161 = icmp eq i32 %160, 11
br i1 %161, label %162, label %175
162: ; preds = %159
%163 = load i32, i32* %19
%164 = icmp eq i32 %163, 0
br i1 %164, label %165, label %175
165: ; preds = %162
%166 = load i32, i32* %10
%167 = load i32, i32* %18
%168 = load i32, i32* %19
%169 = load i32*, i32** %14
%170 = load i32, i32* %169
%171 = load i8**, i8*** %17
%172 = load i32*, i32** %15
%173 = load i32, i32* %172
%174 = call i32 @response_type6(i32 %166, i32 %167, i32 %168, i32 %170, i8** %171, i32 %173)
store i32 %174, i32* %9
br label %351
175: ; preds = %162, %159
%176 = load i32, i32* %18
%177 = icmp eq i32 %176, 13
br i1 %177, label %178, label %188
178: ; preds = %175
%179 = load i32, i32* %19
%180 = icmp eq i32 %179, 0
br i1 %180, label %181, label %188
181: ; preds = %178
%182 = load i32, i32* %10
%183 = load i32, i32* %18
%184 = load i32, i32* %19
%185 = load i32*, i32** %14
%186 = load i32, i32* %185
%187 = call i32 @response_type2(i32 %182, i32 %183, i32 %184, i32 %186)
store i32 %187, i32* %9
br label %351
188: ; preds = %178, %175
%189 = load i32, i32* %18
%190 = icmp eq i32 %189, 14
br i1 %190, label %191, label %201
191: ; preds = %188
%192 = load i32, i32* %19
%193 = icmp eq i32 %192, 0
br i1 %193, label %194, label %201
194: ; preds = %191
%195 = load i32, i32* %10
%196 = load i32, i32* %18
%197 = load i32, i32* %19
%198 = load i32*, i32** %14
%199 = load i32, i32* %198
%200 = call i32 @response_type2(i32 %195, i32 %196, i32 %197, i32 %199)
store i32 %200, i32* %9
br label %351
201: ; preds = %191, %188
%202 = load i32, i32* %18
%203 = icmp eq i32 %202, 15
br i1 %203, label %204, label %217
204: ; preds = %201
%205 = load i32, i32* %19
%206 = icmp eq i32 %205, 0
br i1 %206, label %207, label %217
207: ; preds = %204
%208 = load i32, i32* %10
%209 = load i32, i32* %18
%210 = load i32, i32* %19
%211 = load i32*, i32** %14
%212 = load i32, i32* %211
%213 = load i8**, i8*** %17
%214 = load i32*, i32** %15
%215 = load i32, i32* %214
%216 = call i32 @response_type7(i32 %208, i32 %209, i32 %210, i32 %212, i8** %213, i32 %215)
store i32 %216, i32* %9
br label %351
217: ; preds = %204, %201
%218 = load i32, i32* %18
%219 = icmp eq i32 %218, 16
br i1 %219, label %220, label %230
220: ; preds = %217
%221 = load i32, i32* %19
%222 = icmp eq i32 %221, 0
br i1 %222, label %223, label %230
223: ; preds = %220
%224 = load i32, i32* %10
%225 = load i32, i32* %18
%226 = load i32, i32* %19
%227 = load i32*, i32** %14
%228 = load i32, i32* %227
%229 = call i32 @response_type2(i32 %224, i32 %225, i32 %226, i32 %228)
store i32 %229, i32* %9
br label %351
230: ; preds = %220, %217
%231 = load i32, i32* %18
%232 = icmp eq i32 %231, 17
br i1 %232, label %233, label %246
233: ; preds = %230
%234 = load i32, i32* %19
%235 = icmp eq i32 %234, 0
br i1 %235, label %236, label %246
236: ; preds = %233
%237 = load i32, i32* %10
%238 = load i32, i32* %18
%239 = load i32, i32* %19
%240 = load i32*, i32** %14
%241 = load i32, i32* %240
%242 = load i8**, i8*** %17
%243 = load i32*, i32** %15
%244 = load i32, i32* %243
%245 = call i32 @response_type7(i32 %237, i32 %238, i32 %239, i32 %241, i8** %242, i32 %244)
store i32 %245, i32* %9
br label %351
246: ; preds = %233, %230
%247 = load i32, i32* %18
%248 = icmp eq i32 %247, 18
br i1 %248, label %249, label %262
249: ; preds = %246
%250 = load i32, i32* %19
%251 = icmp eq i32 %250, 0
br i1 %251, label %252, label %262
252: ; preds = %249
%253 = load i32, i32* %10
%254 = load i32, i32* %18
%255 = load i32, i32* %19
%256 = load i32*, i32** %14
%257 = load i32, i32* %256
%258 = load i8**, i8*** %17
%259 = load i32*, i32** %15
%260 = load i32, i32* %259
%261 = call i32 @response_type7(i32 %253, i32 %254, i32 %255, i32 %257, i8** %258, i32 %260)
store i32 %261, i32* %9
br label %351
262: ; preds = %249, %246
%263 = load i32, i32* %18
%264 = icmp eq i32 %263, 26
br i1 %264, label %265, label %278
265: ; preds = %262
%266 = load i32, i32* %19
%267 = icmp eq i32 %266, 0
br i1 %267, label %268, label %278
268: ; preds = %265
%269 = load i32, i32* %10
%270 = load i32, i32* %18
%271 = load i32, i32* %19
%272 = load i32*, i32** %14
%273 = load i32, i32* %272
%274 = load i8**, i8*** %17
%275 = load i32*, i32** %15
%276 = load i32, i32* %275
%277 = call i32 @response_type7(i32 %269, i32 %270, i32 %271, i32 %273, i8** %274, i32 %276)
store i32 %277, i32* %9
br label %351
278: ; preds = %265, %262
%279 = load i32, i32* %18
%280 = icmp eq i32 %279, 27
br i1 %280, label %281, label %294
281: ; preds = %278
%282 = load i32, i32* %19
%283 = icmp eq i32 %282, 0
br i1 %283, label %284, label %294
284: ; preds = %281
%285 = load i32, i32* %10
%286 = load i32, i32* %18
%287 = load i32, i32* %19
%288 = load i32*, i32** %14
%289 = load i32, i32* %288
%290 = load i8**, i8*** %17
%291 = load i32*, i32** %15
%292 = load i32, i32* %291
%293 = call i32 @response_type3(i32 %285, i32 %286, i32 %287, i32 %289, i8** %290, i32 %292)
store i32 %293, i32* %9
br label %351
294: ; preds = %281, %278
%295 = load i32, i32* %18
%296 = icmp eq i32 %295, 28
br i1 %296, label %297, label %307
297: ; preds = %294
%298 = load i32, i32* %19
%299 = icmp eq i32 %298, 0
br i1 %299, label %300, label %307
300: ; preds = %297
%301 = load i32, i32* %10
%302 = load i32, i32* %18
%303 = load i32, i32* %19
%304 = load i32*, i32** %14
%305 = load i32, i32* %304
%306 = call i32 @response_type9(i32 %301, i32 %302, i32 %303, i32 %305)
store i32 %306, i32* %9
br label %351
307: ; preds = %297, %294
%308 = load i32, i32* %18
%309 = icmp eq i32 %308, 29
br i1 %309, label %310, label %324
310: ; preds = %307
%311 = load i32, i32* %19
%312 = icmp eq i32 %311, 0
br i1 %312, label %313, label %324
313: ; preds = %310
%314 = load i32, i32* %10
%315 = load i32, i32* %18
%316 = load i32, i32* %19
%317 = load i32*, i32** %14
%318 = load i32, i32* %317
%319 = load i32*, i32** %15
%320 = load i32, i32* %319
%321 = load i32*, i32** %16
%322 = load i32, i32* %321
%323 = call i32 @response_type4(i32 %314, i32 %315, i32 %316, i32 %318, i32 %320, i32 %322)
store i32 %323, i32* %9
br label %351
324: ; preds = %310, %307
%325 = load i32, i32* %18
%326 = icmp eq i32 %325, 33
br i1 %326, label %327, label %337
327: ; preds = %324
%328 = load i32, i32* %19
%329 = icmp eq i32 %328, 0
br i1 %329, label %330, label %337
330: ; preds = %327
%331 = load i32, i32* %10
%332 = load i32, i32* %18
%333 = load i32, i32* %19
%334 = load i32*, i32** %14
%335 = load i32, i32* %334
%336 = call i32 @response_type2(i32 %331, i32 %332, i32 %333, i32 %335)
store i32 %336, i32* %9
br label %351
337: ; preds = %327, %324
%338 = load i32, i32* %18
%339 = icmp eq i32 %338, 34
br i1 %339, label %340, label %350
340: ; preds = %337
%341 = load i32, i32* %19
%342 = icmp eq i32 %341, 0
br i1 %342, label %343, label %350
343: ; preds = %340
%344 = load i32, i32* %10
%345 = load i32, i32* %18
%346 = load i32, i32* %19
%347 = load i32*, i32** %14
%348 = load i32, i32* %347
%349 = call i32 @response_type2(i32 %344, i32 %345, i32 %346, i32 %348)
store i32 %349, i32* %9
br label %351
350: ; preds = %340, %337
store i32 -1, i32* %9
br label %351
351: ; preds = %350, %343, %330, %313, %300, %284, %268, %252, %236, %223, %207, %194, %181, %165, %152, %139, %126, %110, %94, %81, %68, %55, %42, %29
%352 = load i32, i32* %9
ret i32 %352
}

LLVM IR (-O2):
define i32 @canna_response(i32 %0, i32* nocapture %1, i32* nocapture %2, i32* nocapture readnone %3, i32* %4, i32* nocapture %5, i32* nocapture %6, i8** %7) {
%9 = load i32, i32* %1
%10 = load i32, i32* %2
%11 = icmp eq i32 %9, 2
%12 = icmp eq i32 %10, 0
%13 = select i1 %11, i1 %12, i1 false
br i1 %13, label %14, label %17
14: ; preds = %8
%15 = load i32, i32* %4
%16 = tail call i32 @response_type2(i32 %0, i32 2, i32 0, i32 %15)
br label %158
17: ; preds = %8
%18 = icmp eq i32 %9, 3
%19 = select i1 %18, i1 %12, i1 false
br i1 %19, label %20, label %23
20: ; preds = %17
%21 = load i32, i32* %4
%22 = tail call i32 @response_type5(i32 %0, i32 3, i32 0, i32 %21)
br label %158
23: ; preds = %17
%24 = icmp eq i32 %10, 1
%25 = select i1 %18, i1 %24, i1 false
br i1 %25, label %26, label %29
26: ; preds = %23
%27 = load i32, i32* %4
%28 = tail call i32 @response_type2(i32 %0, i32 3, i32 1, i32 %27)
br label %158
29: ; preds = %23
%30 = icmp eq i32 %9, 4
%31 = select i1 %30, i1 %12, i1 false
br i1 %31, label %32, label %35
32: ; preds = %29
%33 = load i32, i32* %4
%34 = tail call i32 @response_type5(i32 %0, i32 4, i32 0, i32 %33)
br label %158
35: ; preds = %29
%36 = icmp eq i32 %9, 5
%37 = select i1 %36, i1 %12, i1 false
br i1 %37, label %38, label %41
38: ; preds = %35
%39 = load i32, i32* %4
%40 = tail call i32 @response_type2(i32 %0, i32 5, i32 0, i32 %39)
br label %158
41: ; preds = %35
%42 = icmp eq i32 %9, 6
%43 = select i1 %42, i1 %12, i1 false
br i1 %43, label %44, label %48
44: ; preds = %41
%45 = load i32, i32* %4
%46 = load i32, i32* %5
%47 = tail call i32 @response_type6(i32 %0, i32 6, i32 0, i32 %45, i8** %7, i32 %46)
br label %158
48: ; preds = %41
%49 = icmp eq i32 %9, 7
%50 = select i1 %49, i1 %12, i1 false
br i1 %50, label %51, label %55
51: ; preds = %48
%52 = load i32, i32* %4
%53 = load i32, i32* %5
%54 = tail call i32 @response_type6(i32 %0, i32 7, i32 0, i32 %52, i8** %7, i32 %53)
br label %158
55: ; preds = %48
%56 = icmp eq i32 %9, 8
%57 = select i1 %56, i1 %12, i1 false
br i1 %57, label %58, label %61
58: ; preds = %55
%59 = load i32, i32* %4
%60 = tail call i32 @response_type2(i32 %0, i32 8, i32 0, i32 %59)
br label %158
61: ; preds = %55
%62 = select i1 %56, i1 %24, i1 false
br i1 %62, label %63, label %66
63: ; preds = %61
%64 = load i32, i32* %4
%65 = tail call i32 @response_type2(i32 %0, i32 8, i32 1, i32 %64)
br label %158
66: ; preds = %61
%67 = icmp eq i32 %9, 9
%68 = select i1 %67, i1 %12, i1 false
br i1 %68, label %69, label %72
69: ; preds = %66
%70 = load i32, i32* %4
%71 = tail call i32 @response_type2(i32 %0, i32 9, i32 0, i32 %70)
br label %158
72: ; preds = %66
%73 = icmp eq i32 %9, 11
%74 = select i1 %73, i1 %12, i1 false
br i1 %74, label %75, label %79
75: ; preds = %72
%76 = load i32, i32* %4
%77 = load i32, i32* %5
%78 = tail call i32 @response_type6(i32 %0, i32 11, i32 0, i32 %76, i8** %7, i32 %77)
br label %158
79: ; preds = %72
%80 = icmp eq i32 %9, 13
%81 = select i1 %80, i1 %12, i1 false
br i1 %81, label %82, label %85
82: ; preds = %79
%83 = load i32, i32* %4
%84 = tail call i32 @response_type2(i32 %0, i32 13, i32 0, i32 %83)
br label %158
85: ; preds = %79
%86 = icmp eq i32 %9, 14
%87 = select i1 %86, i1 %12, i1 false
br i1 %87, label %88, label %91
88: ; preds = %85
%89 = load i32, i32* %4
%90 = tail call i32 @response_type2(i32 %0, i32 14, i32 0, i32 %89)
br label %158
91: ; preds = %85
%92 = icmp eq i32 %9, 15
%93 = select i1 %92, i1 %12, i1 false
br i1 %93, label %94, label %98
94: ; preds = %91
%95 = load i32, i32* %4
%96 = load i32, i32* %5
%97 = tail call i32 @response_type7(i32 %0, i32 15, i32 0, i32 %95, i8** %7, i32 %96)
br label %158
98: ; preds = %91
%99 = icmp eq i32 %9, 16
%100 = select i1 %99, i1 %12, i1 false
br i1 %100, label %101, label %104
101: ; preds = %98
%102 = load i32, i32* %4
%103 = tail call i32 @response_type2(i32 %0, i32 16, i32 0, i32 %102)
br label %158
104: ; preds = %98
%105 = icmp eq i32 %9, 17
%106 = select i1 %105, i1 %12, i1 false
br i1 %106, label %107, label %111
107: ; preds = %104
%108 = load i32, i32* %4
%109 = load i32, i32* %5
%110 = tail call i32 @response_type7(i32 %0, i32 17, i32 0, i32 %108, i8** %7, i32 %109)
br label %158
111: ; preds = %104
%112 = icmp eq i32 %9, 18
%113 = select i1 %112, i1 %12, i1 false
br i1 %113, label %114, label %118
114: ; preds = %111
%115 = load i32, i32* %4
%116 = load i32, i32* %5
%117 = tail call i32 @response_type7(i32 %0, i32 18, i32 0, i32 %115, i8** %7, i32 %116)
br label %158
118: ; preds = %111
%119 = icmp eq i32 %9, 26
%120 = select i1 %119, i1 %12, i1 false
br i1 %120, label %121, label %125
121: ; preds = %118
%122 = load i32, i32* %4
%123 = load i32, i32* %5
%124 = tail call i32 @response_type7(i32 %0, i32 26, i32 0, i32 %122, i8** %7, i32 %123)
br label %158
125: ; preds = %118
%126 = icmp eq i32 %9, 27
%127 = select i1 %126, i1 %12, i1 false
br i1 %127, label %128, label %132
128: ; preds = %125
%129 = load i32, i32* %4
%130 = load i32, i32* %5
%131 = tail call i32 @response_type3(i32 %0, i32 27, i32 0, i32 %129, i8** %7, i32 %130)
br label %158
132: ; preds = %125
%133 = icmp eq i32 %9, 28
%134 = select i1 %133, i1 %12, i1 false
br i1 %134, label %135, label %138
135: ; preds = %132
%136 = load i32, i32* %4
%137 = tail call i32 @response_type9(i32 %0, i32 28, i32 0, i32 %136)
br label %158
138: ; preds = %132
%139 = icmp eq i32 %9, 29
%140 = select i1 %139, i1 %12, i1 false
br i1 %140, label %141, label %146
141: ; preds = %138
%142 = load i32, i32* %4
%143 = load i32, i32* %5
%144 = load i32, i32* %6
%145 = tail call i32 @response_type4(i32 %0, i32 29, i32 0, i32 %142, i32 %143, i32 %144)
br label %158
146: ; preds = %138
%147 = icmp eq i32 %9, 33
%148 = select i1 %147, i1 %12, i1 false
br i1 %148, label %149, label %152
149: ; preds = %146
%150 = load i32, i32* %4
%151 = tail call i32 @response_type2(i32 %0, i32 33, i32 0, i32 %150)
br label %158
152: ; preds = %146
%153 = icmp eq i32 %9, 34
%154 = select i1 %153, i1 %12, i1 false
br i1 %154, label %155, label %158
155: ; preds = %152
%156 = load i32, i32* %4
%157 = tail call i32 @response_type2(i32 %0, i32 34, i32 0, i32 %156)
br label %158
158: ; preds = %152, %155, %149, %141, %135, %128, %121, %114, %107, %101, %94, %88, %82, %75, %69, %63, %58, %51, %44, %38, %32, %26, %20, %14
%159 = phi i32 [ %16, %14 ], [ %22, %20 ], [ %28, %26 ], [ %34, %32 ], [ %40, %38 ], [ %47, %44 ], [ %54, %51 ], [ %60, %58 ], [ %65, %63 ], [ %71, %69 ], [ %78, %75 ], [ %84, %82 ], [ %90, %88 ], [ %97, %94 ], [ %103, %101 ], [ %110, %107 ], [ %117, %114 ], [ %124, %121 ], [ %131, %128 ], [ %137, %135 ], [ %145, %141 ], [ %151, %149 ], [ %157, %155 ], [ -1, %152 ]
ret i32 %159
}