#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 /*<<< orphan*/ printf(char *);
int add_bound_box(int *pnV, double *vertex, int *pnF, int *face, int *facemat,
                  int color, int cube, double size, int nnV, int nnF) {
  int i = 0, nV = *pnV, nF = *pnF;
  double xmin, xmax, ymin, ymax, zmin, zmax, r, x, y, z;
  if (nV + 8 > nnV) {
    printf("Increase nnV\n");
    return 1;
  }
  if (nF + 12 > nnF) {
    printf("Increase nnF\n");
    return 1;
  }
  if (nV == 0)
    return 0;
  x = vertex[3 * i + 0], y = vertex[3 * i + 1], z = vertex[3 * i + 2];
  xmin = xmax = x;
  ymin = ymax = y;
  zmin = zmax = z;
  for (i = 1; i < nV; i++) {
    x = vertex[3 * i + 0], y = vertex[3 * i + 1], z = vertex[3 * i + 2];
    if (xmin > x)
      xmin = x;
    if (xmax < x)
      xmax = x;
    if (ymin > y)
      ymin = y;
    if (ymax < y)
      ymax = y;
    if (zmin > z)
      zmin = z;
    if (zmax < z)
      zmax = z;
  }
  x = xmax + xmin, y = ymax + ymin, z = zmax + zmin;
  if (cube) {
    r = xmax - xmin;
    if (r < ymax - ymin)
      r = ymax - ymin;
    if (r < zmax - zmin)
      r = zmax - zmin;
    r *= size;
    xmin = (x - r) / 2.0;
    xmax = (x + r) / 2.0;
    ymin = (y - r) / 2.0;
    ymax = (y + r) / 2.0;
    zmin = (z - r) / 2.0;
    zmax = (z + r) / 2.0;
  } else {
    r = (xmax - xmin) * size;
    xmin = (x - r) / 2.0;
    xmax = (x + r) / 2.0;
    r = (ymax - ymin) * size;
    ymin = (y - r) / 2.0;
    ymax = (y + r) / 2.0;
    r = (zmax - zmin) * size;
    zmin = (z - r) / 2.0;
    zmax = (z + r) / 2.0;
  }
  vertex[3 * (nV + 0) + 0] = xmin, vertex[3 * (nV + 0) + 1] = ymin,
                        vertex[3 * (nV + 0) + 2] = zmin;
  vertex[3 * (nV + 1) + 0] = xmax, vertex[3 * (nV + 1) + 1] = ymin,
                        vertex[3 * (nV + 1) + 2] = zmin;
  vertex[3 * (nV + 2) + 0] = xmin, vertex[3 * (nV + 2) + 1] = ymax,
                        vertex[3 * (nV + 2) + 2] = zmin;
  vertex[3 * (nV + 3) + 0] = xmax, vertex[3 * (nV + 3) + 1] = ymax,
                        vertex[3 * (nV + 3) + 2] = zmin;
  vertex[3 * (nV + 4) + 0] = xmin, vertex[3 * (nV + 4) + 1] = ymin,
                        vertex[3 * (nV + 4) + 2] = zmax;
  vertex[3 * (nV + 5) + 0] = xmax, vertex[3 * (nV + 5) + 1] = ymin,
                        vertex[3 * (nV + 5) + 2] = zmax;
  vertex[3 * (nV + 6) + 0] = xmin, vertex[3 * (nV + 6) + 1] = ymax,
                        vertex[3 * (nV + 6) + 2] = zmax;
  vertex[3 * (nV + 7) + 0] = xmax, vertex[3 * (nV + 7) + 1] = ymax,
                        vertex[3 * (nV + 7) + 2] = zmax;
  face[3 * (nF + 0) + 0] = nV + 1, face[3 * (nF + 0) + 1] = nV + 3,
                      face[3 * (nF + 0) + 2] = nV + 4;
  facemat[nF + 0] = color;
  face[3 * (nF + 1) + 0] = nV + 4, face[3 * (nF + 1) + 1] = nV + 2,
                      face[3 * (nF + 1) + 2] = nV + 1;
  facemat[nF + 1] = color;
  face[3 * (nF + 2) + 0] = nV + 7, face[3 * (nF + 2) + 1] = nV + 5,
                      face[3 * (nF + 2) + 2] = nV + 6;
  facemat[nF + 2] = color;
  face[3 * (nF + 3) + 0] = nV + 6, face[3 * (nF + 3) + 1] = nV + 8,
                      face[3 * (nF + 3) + 2] = nV + 7;
  facemat[nF + 3] = color;
  face[3 * (nF + 4) + 0] = nV + 6, face[3 * (nF + 4) + 1] = nV + 2,
                      face[3 * (nF + 4) + 2] = nV + 4;
  facemat[nF + 4] = color;
  face[3 * (nF + 5) + 0] = nV + 4, face[3 * (nF + 5) + 1] = nV + 8,
                      face[3 * (nF + 5) + 2] = nV + 6;
  facemat[nF + 5] = color;
  face[3 * (nF + 6) + 0] = nV + 5, face[3 * (nF + 6) + 1] = nV + 1,
                      face[3 * (nF + 6) + 2] = nV + 2;
  facemat[nF + 6] = color;
  face[3 * (nF + 7) + 0] = nV + 2, face[3 * (nF + 7) + 1] = nV + 6,
                      face[3 * (nF + 7) + 2] = nV + 5;
  facemat[nF + 7] = color;
  face[3 * (nF + 8) + 0] = nV + 7, face[3 * (nF + 8) + 1] = nV + 3,
                      face[3 * (nF + 8) + 2] = nV + 1;
  facemat[nF + 8] = color;
  face[3 * (nF + 9) + 0] = nV + 1, face[3 * (nF + 9) + 1] = nV + 5,
                      face[3 * (nF + 9) + 2] = nV + 7;
  facemat[nF + 9] = color;
  face[3 * (nF + 10) + 0] = nV + 8, face[3 * (nF + 10) + 1] = nV + 4,
                       face[3 * (nF + 10) + 2] = nV + 3;
  facemat[nF + 10] = color;
  face[3 * (nF + 11) + 0] = nV + 3, face[3 * (nF + 11) + 1] = nV + 7,
                       face[3 * (nF + 11) + 2] = nV + 8;
  facemat[nF + 11] = color;
  *pnV = nV + 8;
  *pnF = nF + 12;
  return 0;
}


x86 assembly (clang, -O0):
<add_bound_box>:
push   %rbp
mov    %rsp,%rbp
sub    $0xa0,%rsp
mov    0x20(%rbp),%eax
mov    0x18(%rbp),%eax
mov    0x10(%rbp),%eax
mov    %rdi,-0x10(%rbp)
mov    %rsi,-0x18(%rbp)
mov    %rdx,-0x20(%rbp)
mov    %rcx,-0x28(%rbp)
mov    %r8,-0x30(%rbp)
mov    %r9d,-0x34(%rbp)
movsd  %xmm0,-0x40(%rbp)
movl   $0x0,-0x44(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x48(%rbp)
mov    -0x20(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x4c(%rbp)
mov    -0x48(%rbp),%eax
add    $0x8,%eax
cmp    0x18(%rbp),%eax
jle    1181 <add_bound_box+0x71>
lea    0xe98(%rip),%rdi
call   1030 <printf@plt>
movl   $0x1,-0x4(%rbp)
jmp    1dcc <add_bound_box+0xcbc>
mov    -0x4c(%rbp),%eax
add    $0xc,%eax
cmp    0x20(%rbp),%eax
jle    11a8 <add_bound_box+0x98>
lea    0xe7f(%rip),%rdi
call   1030 <printf@plt>
movl   $0x1,-0x4(%rbp)
jmp    1dcc <add_bound_box+0xcbc>
cmpl   $0x0,-0x48(%rbp)
jne    11be <add_bound_box+0xae>
movl   $0x0,-0x4(%rbp)
jmp    1dcc <add_bound_box+0xcbc>
mov    -0x18(%rbp),%rax
imul   $0x3,-0x44(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
mov    -0x18(%rbp),%rax
imul   $0x3,-0x44(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
imul   $0x3,-0x44(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x90(%rbp),%xmm0
ff
movsd  %xmm0,-0x60(%rbp)
movsd  %xmm0,-0x58(%rbp)
movsd  -0x98(%rbp),%xmm0
ff
movsd  %xmm0,-0x70(%rbp)
movsd  %xmm0,-0x68(%rbp)
movsd  -0xa0(%rbp),%xmm0
ff
movsd  %xmm0,-0x80(%rbp)
movsd  %xmm0,-0x78(%rbp)
movl   $0x1,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x48(%rbp),%eax
jge    1388 <add_bound_box+0x278>
mov    -0x18(%rbp),%rax
imul   $0x3,-0x44(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
mov    -0x18(%rbp),%rax
imul   $0x3,-0x44(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
imul   $0x3,-0x44(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
ucomisd -0x90(%rbp),%xmm0
ff
jbe    12c9 <add_bound_box+0x1b9>
movsd  -0x90(%rbp),%xmm0
ff
movsd  %xmm0,-0x58(%rbp)
movsd  -0x60(%rbp),%xmm1
movsd  -0x90(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    12ed <add_bound_box+0x1dd>
movsd  -0x90(%rbp),%xmm0
ff
movsd  %xmm0,-0x60(%rbp)
movsd  -0x68(%rbp),%xmm0
ucomisd -0x98(%rbp),%xmm0
ff
jbe    130d <add_bound_box+0x1fd>
movsd  -0x98(%rbp),%xmm0
ff
movsd  %xmm0,-0x68(%rbp)
movsd  -0x70(%rbp),%xmm1
movsd  -0x98(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    1331 <add_bound_box+0x221>
movsd  -0x98(%rbp),%xmm0
ff
movsd  %xmm0,-0x70(%rbp)
movsd  -0x78(%rbp),%xmm0
ucomisd -0xa0(%rbp),%xmm0
ff
jbe    1351 <add_bound_box+0x241>
movsd  -0xa0(%rbp),%xmm0
ff
movsd  %xmm0,-0x78(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xa0(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    1375 <add_bound_box+0x265>
movsd  -0xa0(%rbp),%xmm0
ff
movsd  %xmm0,-0x80(%rbp)
jmp    137a <add_bound_box+0x26a>
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    124c <add_bound_box+0x13c>
movsd  -0x60(%rbp),%xmm0
addsd  -0x58(%rbp),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
addsd  -0x68(%rbp),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
addsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
cmpl   $0x0,0x10(%rbp)
je     1516 <add_bound_box+0x406>
movsd  -0x60(%rbp),%xmm0
subsd  -0x58(%rbp),%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x88(%rbp),%xmm1
ff
movsd  -0x70(%rbp),%xmm0
subsd  -0x68(%rbp),%xmm0
ucomisd %xmm1,%xmm0
jbe    1408 <add_bound_box+0x2f8>
movsd  -0x70(%rbp),%xmm0
subsd  -0x68(%rbp),%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x88(%rbp),%xmm1
ff
movsd  -0x80(%rbp),%xmm0
subsd  -0x78(%rbp),%xmm0
ucomisd %xmm1,%xmm0
jbe    1436 <add_bound_box+0x326>
movsd  -0x80(%rbp),%xmm0
subsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
mulsd  -0x88(%rbp),%xmm0
ff
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x90(%rbp),%xmm0
ff
subsd  -0x88(%rbp),%xmm0
ff
movsd  0xb9d(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x90(%rbp),%xmm0
ff
addsd  -0x88(%rbp),%xmm0
ff
movsd  0xb7c(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x98(%rbp),%xmm0
ff
subsd  -0x88(%rbp),%xmm0
ff
movsd  0xb5b(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x98(%rbp),%xmm0
ff
addsd  -0x88(%rbp),%xmm0
ff
movsd  0xb3a(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0xa0(%rbp),%xmm0
ff
subsd  -0x88(%rbp),%xmm0
ff
movsd  0xb19(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0xa0(%rbp),%xmm0
ff
addsd  -0x88(%rbp),%xmm0
ff
movsd  0xaf8(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
jmp    1621 <add_bound_box+0x511>
movsd  -0x60(%rbp),%xmm0
subsd  -0x58(%rbp),%xmm0
mulsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x90(%rbp),%xmm0
ff
subsd  -0x88(%rbp),%xmm0
ff
movsd  0xabb(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x90(%rbp),%xmm0
ff
addsd  -0x88(%rbp),%xmm0
ff
movsd  0xa9a(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x70(%rbp),%xmm0
subsd  -0x68(%rbp),%xmm0
mulsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
subsd  -0x88(%rbp),%xmm0
ff
movsd  0xa62(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x98(%rbp),%xmm0
ff
addsd  -0x88(%rbp),%xmm0
ff
movsd  0xa41(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm0
subsd  -0x78(%rbp),%xmm0
mulsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
subsd  -0x88(%rbp),%xmm0
ff
movsd  0xa09(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0xa0(%rbp),%xmm0
ff
addsd  -0x88(%rbp),%xmm0
ff
movsd  0x9e8(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x48(%rbp),%ecx
add    $0x0,%ecx
imul   $0x3,%ecx,%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x68(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x48(%rbp),%ecx
add    $0x0,%ecx
imul   $0x3,%ecx,%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x78(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x48(%rbp),%ecx
add    $0x0,%ecx
imul   $0x3,%ecx,%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x60(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x48(%rbp),%ecx
add    $0x1,%ecx
imul   $0x3,%ecx,%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x68(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x48(%rbp),%ecx
add    $0x1,%ecx
imul   $0x3,%ecx,%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x78(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x48(%rbp),%ecx
add    $0x1,%ecx
imul   $0x3,%ecx,%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x48(%rbp),%ecx
add    $0x2,%ecx
imul   $0x3,%ecx,%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x70(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x48(%rbp),%ecx
add    $0x2,%ecx
imul   $0x3,%ecx,%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x78(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x48(%rbp),%ecx
add    $0x2,%ecx
imul   $0x3,%ecx,%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x60(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x48(%rbp),%ecx
add    $0x3,%ecx
imul   $0x3,%ecx,%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x70(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x48(%rbp),%ecx
add    $0x3,%ecx
imul   $0x3,%ecx,%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x78(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x48(%rbp),%ecx
add    $0x3,%ecx
imul   $0x3,%ecx,%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x48(%rbp),%ecx
add    $0x4,%ecx
imul   $0x3,%ecx,%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x68(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x48(%rbp),%ecx
add    $0x4,%ecx
imul   $0x3,%ecx,%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x80(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x48(%rbp),%ecx
add    $0x4,%ecx
imul   $0x3,%ecx,%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x60(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x48(%rbp),%ecx
add    $0x5,%ecx
imul   $0x3,%ecx,%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x68(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x48(%rbp),%ecx
add    $0x5,%ecx
imul   $0x3,%ecx,%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x80(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x48(%rbp),%ecx
add    $0x5,%ecx
imul   $0x3,%ecx,%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x48(%rbp),%ecx
add    $0x6,%ecx
imul   $0x3,%ecx,%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x70(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x48(%rbp),%ecx
add    $0x6,%ecx
imul   $0x3,%ecx,%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x80(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x48(%rbp),%ecx
add    $0x6,%ecx
imul   $0x3,%ecx,%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x60(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x48(%rbp),%ecx
add    $0x7,%ecx
imul   $0x3,%ecx,%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x70(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x48(%rbp),%ecx
add    $0x7,%ecx
imul   $0x3,%ecx,%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x80(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x48(%rbp),%ecx
add    $0x7,%ecx
imul   $0x3,%ecx,%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x48(%rbp),%edx
add    $0x1,%edx
mov    -0x28(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x0,%ecx
imul   $0x3,%ecx,%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%edx
add    $0x3,%edx
mov    -0x28(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x0,%ecx
imul   $0x3,%ecx,%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%edx
add    $0x4,%edx
mov    -0x28(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x0,%ecx
imul   $0x3,%ecx,%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x34(%rbp),%edx
mov    -0x30(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%edx
add    $0x4,%edx
mov    -0x28(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x1,%ecx
imul   $0x3,%ecx,%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%edx
add    $0x2,%edx
mov    -0x28(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x1,%ecx
imul   $0x3,%ecx,%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%edx
add    $0x1,%edx
mov    -0x28(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x1,%ecx
imul   $0x3,%ecx,%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x34(%rbp),%edx
mov    -0x30(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%edx
add    $0x7,%edx
mov    -0x28(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x2,%ecx
imul   $0x3,%ecx,%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%edx
add    $0x5,%edx
mov    -0x28(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x2,%ecx
imul   $0x3,%ecx,%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%edx
add    $0x6,%edx
mov    -0x28(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x2,%ecx
imul   $0x3,%ecx,%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x34(%rbp),%edx
mov    -0x30(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%edx
add    $0x6,%edx
mov    -0x28(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x3,%ecx
imul   $0x3,%ecx,%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%edx
add    $0x8,%edx
mov    -0x28(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x3,%ecx
imul   $0x3,%ecx,%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%edx
add    $0x7,%edx
mov    -0x28(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x3,%ecx
imul   $0x3,%ecx,%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x34(%rbp),%edx
mov    -0x30(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%edx
add    $0x6,%edx
mov    -0x28(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x4,%ecx
imul   $0x3,%ecx,%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%edx
add    $0x2,%edx
mov    -0x28(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x4,%ecx
imul   $0x3,%ecx,%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%edx
add    $0x4,%edx
mov    -0x28(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x4,%ecx
imul   $0x3,%ecx,%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x34(%rbp),%edx
mov    -0x30(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x4,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%edx
add    $0x4,%edx
mov    -0x28(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x5,%ecx
imul   $0x3,%ecx,%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%edx
add    $0x8,%edx
mov    -0x28(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x5,%ecx
imul   $0x3,%ecx,%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%edx
add    $0x6,%edx
mov    -0x28(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x5,%ecx
imul   $0x3,%ecx,%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x34(%rbp),%edx
mov    -0x30(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x5,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%edx
add    $0x5,%edx
mov    -0x28(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x6,%ecx
imul   $0x3,%ecx,%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%edx
add    $0x1,%edx
mov    -0x28(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x6,%ecx
imul   $0x3,%ecx,%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%edx
add    $0x2,%edx
mov    -0x28(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x6,%ecx
imul   $0x3,%ecx,%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x34(%rbp),%edx
mov    -0x30(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x6,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%edx
add    $0x2,%edx
mov    -0x28(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x7,%ecx
imul   $0x3,%ecx,%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%edx
add    $0x6,%edx
mov    -0x28(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x7,%ecx
imul   $0x3,%ecx,%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%edx
add    $0x5,%edx
mov    -0x28(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x7,%ecx
imul   $0x3,%ecx,%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x34(%rbp),%edx
mov    -0x30(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x7,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%edx
add    $0x7,%edx
mov    -0x28(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x8,%ecx
imul   $0x3,%ecx,%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%edx
add    $0x3,%edx
mov    -0x28(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x8,%ecx
imul   $0x3,%ecx,%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%edx
add    $0x1,%edx
mov    -0x28(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x8,%ecx
imul   $0x3,%ecx,%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x34(%rbp),%edx
mov    -0x30(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x8,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%edx
add    $0x1,%edx
mov    -0x28(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x9,%ecx
imul   $0x3,%ecx,%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%edx
add    $0x5,%edx
mov    -0x28(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x9,%ecx
imul   $0x3,%ecx,%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%edx
add    $0x7,%edx
mov    -0x28(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x9,%ecx
imul   $0x3,%ecx,%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x34(%rbp),%edx
mov    -0x30(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0x9,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%edx
add    $0x8,%edx
mov    -0x28(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0xa,%ecx
imul   $0x3,%ecx,%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%edx
add    $0x4,%edx
mov    -0x28(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0xa,%ecx
imul   $0x3,%ecx,%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%edx
add    $0x3,%edx
mov    -0x28(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0xa,%ecx
imul   $0x3,%ecx,%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x34(%rbp),%edx
mov    -0x30(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0xa,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%edx
add    $0x3,%edx
mov    -0x28(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0xb,%ecx
imul   $0x3,%ecx,%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%edx
add    $0x7,%edx
mov    -0x28(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0xb,%ecx
imul   $0x3,%ecx,%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%edx
add    $0x8,%edx
mov    -0x28(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0xb,%ecx
imul   $0x3,%ecx,%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x34(%rbp),%edx
mov    -0x30(%rbp),%rax
mov    -0x4c(%rbp),%ecx
add    $0xb,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%ecx
add    $0x8,%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x4c(%rbp),%ecx
add    $0xc,%ecx
mov    -0x20(%rbp),%rax
mov    %ecx,(%rax)
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0xa0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<add_bound_box>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x18,%rsp
mov    (%rdi),%ebp
lea    0x8(%rbp),%r10d
cmp    0x58(%rsp),%r10d
jle    1134 <add_bound_box+0x24>
lea    0xee3(%rip),%rdi
jmp    1148 <add_bound_box+0x38>
movslq (%rdx),%r11
lea    0xc(%r11),%ebx
cmp    0x60(%rsp),%ebx
jle    1161 <add_bound_box+0x51>
lea    0xec0(%rip),%rdi
call   1030 <puts@plt>
mov    $0x1,%eax
add    $0x18,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
xor    %eax,%eax
test   %ebp,%ebp
je     1152 <add_bound_box+0x42>
mov    0x50(%rsp),%r14d
movslq %ebp,%r15
movsd  (%rsi),%xmm10
movsd  0x8(%rsi),%xmm9
movsd  0x10(%rsi),%xmm8
cmp    $0x2,%ebp
mov    %rdx,0x10(%rsp)
mov    %ebx,0xc(%rsp)
jl     1223 <add_bound_box+0x113>
lea    0x0(,%rbp,2),%rdx
add    %rbp,%rdx
lea    -0x18(,%rdx,8),%rdx
ff
xor    %ebx,%ebx
movapd %xmm8,%xmm11
movapd %xmm9,%xmm12
movapd %xmm10,%xmm5
cs nopw 0x0(%rax,%rax,1)
movsd  0x18(%rsi,%rbx,1),%xmm1
movsd  0x20(%rsi,%rbx,1),%xmm3
movsd  0x28(%rsi,%rbx,1),%xmm2
movapd %xmm1,%xmm6
minsd  %xmm5,%xmm6
maxsd  %xmm10,%xmm1
movapd %xmm3,%xmm4
minsd  %xmm12,%xmm4
maxsd  %xmm9,%xmm3
movapd %xmm2,%xmm7
minsd  %xmm11,%xmm7
maxsd  %xmm8,%xmm2
add    $0x18,%rbx
movapd %xmm2,%xmm8
movapd %xmm7,%xmm11
movapd %xmm3,%xmm9
movapd %xmm4,%xmm12
movapd %xmm1,%xmm10
movapd %xmm6,%xmm5
cmp    %rbx,%rdx
jne    11c0 <add_bound_box+0xb0>
jmp    1241 <add_bound_box+0x131>
movapd %xmm10,%xmm6
movapd %xmm10,%xmm1
movapd %xmm9,%xmm4
movapd %xmm9,%xmm3
movapd %xmm8,%xmm7
movapd %xmm8,%xmm2
movapd %xmm6,%xmm8
addsd  %xmm1,%xmm8
movapd %xmm4,%xmm9
addsd  %xmm3,%xmm9
movapd %xmm7,%xmm5
addsd  %xmm2,%xmm5
subsd  %xmm6,%xmm1
test   %r14d,%r14d
je     1284 <add_bound_box+0x174>
subsd  %xmm4,%xmm3
maxsd  %xmm1,%xmm3
subsd  %xmm7,%xmm2
maxsd  %xmm3,%xmm2
mulsd  %xmm0,%xmm2
movapd %xmm2,%xmm3
movapd %xmm2,%xmm4
jmp    12a0 <add_bound_box+0x190>
mulsd  %xmm0,%xmm1
subsd  %xmm4,%xmm3
mulsd  %xmm0,%xmm3
subsd  %xmm7,%xmm2
movapd %xmm2,%xmm4
mulsd  %xmm0,%xmm4
movapd %xmm1,%xmm2
movapd %xmm5,%xmm0
addsd  %xmm4,%xmm0
movsd  0xd50(%rip),%xmm1
mulsd  %xmm1,%xmm0
subsd  %xmm4,%xmm5
mulsd  %xmm1,%xmm5
movapd %xmm9,%xmm6
addsd  %xmm3,%xmm6
mulsd  %xmm1,%xmm6
subsd  %xmm3,%xmm9
mulsd  %xmm1,%xmm9
movapd %xmm8,%xmm4
addsd  %xmm2,%xmm4
mulsd  %xmm1,%xmm4
subsd  %xmm2,%xmm8
mulsd  %xmm1,%xmm8
lea    (%r15,%r15,2),%rdx
movsd  %xmm8,(%rsi,%rdx,8)
movslq %edx,%rdx
movsd  %xmm9,0x8(%rsi,%rdx,8)
movsd  %xmm5,0x10(%rsi,%rdx,8)
lea    0x1(%r15),%r12d
lea    (%r12,%r12,2),%edx
movslq %edx,%rdx
movsd  %xmm4,(%rsi,%rdx,8)
movsd  %xmm9,0x8(%rsi,%rdx,8)
movsd  %xmm5,0x10(%rsi,%rdx,8)
lea    0x2(%r15),%r14
lea    (%r14,%r14,2),%rdx
movsd  %xmm8,(%rsi,%rdx,8)
movslq %edx,%rdx
movsd  %xmm6,0x8(%rsi,%rdx,8)
movsd  %xmm5,0x10(%rsi,%rdx,8)
lea    0x3(%r15),%eax
lea    (%rax,%rax,2),%edx
movslq %edx,%rdx
movsd  %xmm4,(%rsi,%rdx,8)
movsd  %xmm6,0x8(%rsi,%rdx,8)
movsd  %xmm5,0x10(%rsi,%rdx,8)
lea    0x4(%r15),%r13
lea    0x0(%r13,%r13,2),%rdx
movsd  %xmm8,(%rsi,%rdx,8)
movslq %edx,%rdx
movsd  %xmm9,0x8(%rsi,%rdx,8)
movsd  %xmm0,0x10(%rsi,%rdx,8)
lea    0x5(%r15),%edx
lea    (%rdx,%rdx,2),%ebx
movslq %ebx,%rbx
movsd  %xmm4,(%rsi,%rbx,8)
movsd  %xmm9,0x8(%rsi,%rbx,8)
movsd  %xmm0,0x10(%rsi,%rbx,8)
add    $0x6,%r15
lea    (%r15,%r15,2),%rbx
movsd  %xmm8,(%rsi,%rbx,8)
movslq %ebx,%rbx
movsd  %xmm6,0x8(%rsi,%rbx,8)
movsd  %xmm0,0x10(%rsi,%rbx,8)
add    $0x7,%ebp
lea    0x0(%rbp,%rbp,2),%ebx
movslq %ebx,%rbx
movsd  %xmm4,(%rsi,%rbx,8)
movsd  %xmm6,0x8(%rsi,%rbx,8)
movsd  %xmm0,0x10(%rsi,%rbx,8)
lea    (%r11,%r11,2),%rsi
mov    %r12d,(%rcx,%rsi,4)
movslq %esi,%rsi
mov    %eax,0x4(%rcx,%rsi,4)
mov    %r13d,0x8(%rcx,%rsi,4)
mov    %r9d,(%r8,%r11,4)
lea    0x1(%r11),%rsi
lea    (%rsi,%rsi,2),%rbx
mov    %r13d,(%rcx,%rbx,4)
movslq %ebx,%rbx
mov    %r14d,0x4(%rcx,%rbx,4)
mov    %r12d,0x8(%rcx,%rbx,4)
movslq %esi,%rsi
mov    %r9d,(%r8,%rsi,4)
lea    0x2(%r11),%rsi
lea    (%rsi,%rsi,2),%rbx
mov    %ebp,(%rcx,%rbx,4)
movslq %ebx,%rbx
mov    %edx,0x4(%rcx,%rbx,4)
mov    %r15d,0x8(%rcx,%rbx,4)
movslq %esi,%rsi
mov    %r9d,(%r8,%rsi,4)
lea    0x9(%r11,%r11,2),%esi
movslq %esi,%rsi
mov    %r15d,(%rcx,%rsi,4)
mov    %r10d,0x4(%rcx,%rsi,4)
mov    %ebp,0x8(%rcx,%rsi,4)
mov    %r9d,0xc(%r8,%r11,4)
lea    0x4(%r11),%rsi
lea    (%rsi,%rsi,2),%rbx
mov    %r15d,(%rcx,%rbx,4)
movslq %ebx,%rbx
mov    %r14d,0x4(%rcx,%rbx,4)
mov    %r13d,0x8(%rcx,%rbx,4)
movslq %esi,%rsi
mov    %r9d,(%r8,%rsi,4)
lea    0xf(%r11,%r11,2),%esi
movslq %esi,%rsi
mov    %r13d,(%rcx,%rsi,4)
mov    %r10d,0x4(%rcx,%rsi,4)
mov    %r15d,0x8(%rcx,%rsi,4)
mov    %r9d,0x14(%r8,%r11,4)
lea    0x6(%r11),%rsi
lea    (%rsi,%rsi,2),%rbx
mov    %edx,(%rcx,%rbx,4)
movslq %ebx,%rbx
mov    %r12d,0x4(%rcx,%rbx,4)
mov    %r14d,0x8(%rcx,%rbx,4)
movslq %esi,%rsi
mov    %r9d,(%r8,%rsi,4)
lea    0x15(%r11,%r11,2),%esi
movslq %esi,%rsi
mov    %r14d,(%rcx,%rsi,4)
mov    %r15d,0x4(%rcx,%rsi,4)
mov    %edx,0x8(%rcx,%rsi,4)
mov    %r9d,0x1c(%r8,%r11,4)
lea    0x8(%r11),%rsi
lea    (%rsi,%rsi,2),%rbx
mov    %ebp,(%rcx,%rbx,4)
movslq %ebx,%rbx
mov    %eax,0x4(%rcx,%rbx,4)
mov    %r12d,0x8(%rcx,%rbx,4)
movslq %esi,%rsi
mov    %r9d,(%r8,%rsi,4)
lea    0x1b(%r11,%r11,2),%esi
movslq %esi,%rsi
mov    %r12d,(%rcx,%rsi,4)
mov    %edx,0x4(%rcx,%rsi,4)
mov    %ebp,0x8(%rcx,%rsi,4)
mov    %r9d,0x24(%r8,%r11,4)
lea    0xa(%r11),%rdx
lea    (%rdx,%rdx,2),%rsi
mov    %r10d,(%rcx,%rsi,4)
movslq %esi,%rsi
mov    %r13d,0x4(%rcx,%rsi,4)
mov    %eax,0x8(%rcx,%rsi,4)
movslq %edx,%rdx
mov    %r9d,(%r8,%rdx,4)
lea    0x21(%r11,%r11,2),%edx
movslq %edx,%rdx
mov    %eax,(%rcx,%rdx,4)
mov    %ebp,0x4(%rcx,%rdx,4)
mov    %r10d,0x8(%rcx,%rdx,4)
mov    %r9d,0x2c(%r8,%r11,4)
mov    %r10d,(%rdi)
mov    0x10(%rsp),%rax
mov    0xc(%rsp),%ecx
mov    %ecx,(%rax)
xor    %eax,%eax
jmp    1152 <add_bound_box+0x42>

LLVM IR (-O0):
@.str = [14 x i8] c"Increase nnV\0A\00"
@.str.1 = [14 x i8] c"Increase nnF\0A\00"
define i32 @add_bound_box(i32* %0, double* %1, i32* %2, i32* %3, i32* %4, i32 %5, i32 %6, double %7, i32 %8, i32 %9) {
%11 = alloca i32
%12 = alloca i32*
%13 = alloca double*
%14 = alloca i32*
%15 = alloca i32*
%16 = alloca i32*
%17 = alloca i32
%18 = alloca i32
%19 = alloca double
%20 = alloca i32
%21 = alloca i32
%22 = alloca i32
%23 = alloca i32
%24 = alloca i32
%25 = alloca double
%26 = alloca double
%27 = alloca double
%28 = alloca double
%29 = alloca double
%30 = alloca double
%31 = alloca double
%32 = alloca double
%33 = alloca double
%34 = alloca double
store i32* %0, i32** %12
store double* %1, double** %13
store i32* %2, i32** %14
store i32* %3, i32** %15
store i32* %4, i32** %16
store i32 %5, i32* %17
store i32 %6, i32* %18
store double %7, double* %19
store i32 %8, i32* %20
store i32 %9, i32* %21
store i32 0, i32* %22
%35 = load i32*, i32** %12
%36 = load i32, i32* %35
store i32 %36, i32* %23
%37 = load i32*, i32** %14
%38 = load i32, i32* %37
store i32 %38, i32* %24
%39 = load i32, i32* %23
%40 = add nsw i32 %39, 8
%41 = load i32, i32* %20
%42 = icmp sgt i32 %40, %41
br i1 %42, label %43, label %45
43: ; preds = %10
%44 = call i32 @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str, i64 0, i64 0))
store i32 1, i32* %11
br label %844
45: ; preds = %10
%46 = load i32, i32* %24
%47 = add nsw i32 %46, 12
%48 = load i32, i32* %21
%49 = icmp sgt i32 %47, %48
br i1 %49, label %50, label %52
50: ; preds = %45
%51 = call i32 @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0))
store i32 1, i32* %11
br label %844
52: ; preds = %45
%53 = load i32, i32* %23
%54 = icmp eq i32 %53, 0
br i1 %54, label %55, label %56
55: ; preds = %52
store i32 0, i32* %11
br label %844
56: ; preds = %52
%57 = load double*, double** %13
%58 = load i32, i32* %22
%59 = mul nsw i32 3, %58
%60 = add nsw i32 %59, 0
%61 = sext i32 %60 to i64
%62 = getelementptr inbounds double, double* %57, i64 %61
%63 = load double, double* %62
store double %63, double* %32
%64 = load double*, double** %13
%65 = load i32, i32* %22
%66 = mul nsw i32 3, %65
%67 = add nsw i32 %66, 1
%68 = sext i32 %67 to i64
%69 = getelementptr inbounds double, double* %64, i64 %68
%70 = load double, double* %69
store double %70, double* %33
%71 = load double*, double** %13
%72 = load i32, i32* %22
%73 = mul nsw i32 3, %72
%74 = add nsw i32 %73, 2
%75 = sext i32 %74 to i64
%76 = getelementptr inbounds double, double* %71, i64 %75
%77 = load double, double* %76
store double %77, double* %34
%78 = load double, double* %32
store double %78, double* %26
store double %78, double* %25
%79 = load double, double* %33
store double %79, double* %28
store double %79, double* %27
%80 = load double, double* %34
store double %80, double* %30
store double %80, double* %29
store i32 1, i32* %22
br label %81
81: ; preds = %143, %56
%82 = load i32, i32* %22
%83 = load i32, i32* %23
%84 = icmp slt i32 %82, %83
br i1 %84, label %85, label %146
85: ; preds = %81
%86 = load double*, double** %13
%87 = load i32, i32* %22
%88 = mul nsw i32 3, %87
%89 = add nsw i32 %88, 0
%90 = sext i32 %89 to i64
%91 = getelementptr inbounds double, double* %86, i64 %90
%92 = load double, double* %91
store double %92, double* %32
%93 = load double*, double** %13
%94 = load i32, i32* %22
%95 = mul nsw i32 3, %94
%96 = add nsw i32 %95, 1
%97 = sext i32 %96 to i64
%98 = getelementptr inbounds double, double* %93, i64 %97
%99 = load double, double* %98
store double %99, double* %33
%100 = load double*, double** %13
%101 = load i32, i32* %22
%102 = mul nsw i32 3, %101
%103 = add nsw i32 %102, 2
%104 = sext i32 %103 to i64
%105 = getelementptr inbounds double, double* %100, i64 %104
%106 = load double, double* %105
store double %106, double* %34
%107 = load double, double* %25
%108 = load double, double* %32
%109 = fcmp ogt double %107, %108
br i1 %109, label %110, label %112
110: ; preds = %85
%111 = load double, double* %32
store double %111, double* %25
br label %112
112: ; preds = %110, %85
%113 = load double, double* %26
%114 = load double, double* %32
%115 = fcmp olt double %113, %114
br i1 %115, label %116, label %118
116: ; preds = %112
%117 = load double, double* %32
store double %117, double* %26
br label %118
118: ; preds = %116, %112
%119 = load double, double* %27
%120 = load double, double* %33
%121 = fcmp ogt double %119, %120
br i1 %121, label %122, label %124
122: ; preds = %118
%123 = load double, double* %33
store double %123, double* %27
br label %124
124: ; preds = %122, %118
%125 = load double, double* %28
%126 = load double, double* %33
%127 = fcmp olt double %125, %126
br i1 %127, label %128, label %130
128: ; preds = %124
%129 = load double, double* %33
store double %129, double* %28
br label %130
130: ; preds = %128, %124
%131 = load double, double* %29
%132 = load double, double* %34
%133 = fcmp ogt double %131, %132
br i1 %133, label %134, label %136
134: ; preds = %130
%135 = load double, double* %34
store double %135, double* %29
br label %136
136: ; preds = %134, %130
%137 = load double, double* %30
%138 = load double, double* %34
%139 = fcmp olt double %137, %138
br i1 %139, label %140, label %142
140: ; preds = %136
%141 = load double, double* %34
store double %141, double* %30
br label %142
142: ; preds = %140, %136
br label %143
143: ; preds = %142
%144 = load i32, i32* %22
%145 = add nsw i32 %144, 1
store i32 %145, i32* %22
br label %81
146: ; preds = %81
%147 = load double, double* %26
%148 = load double, double* %25
%149 = fadd double %147, %148
store double %149, double* %32
%150 = load double, double* %28
%151 = load double, double* %27
%152 = fadd double %150, %151
store double %152, double* %33
%153 = load double, double* %30
%154 = load double, double* %29
%155 = fadd double %153, %154
store double %155, double* %34
%156 = load i32, i32* %18
%157 = icmp ne i32 %156, 0
br i1 %157, label %158, label %209
158: ; preds = %146
%159 = load double, double* %26
%160 = load double, double* %25
%161 = fsub double %159, %160
store double %161, double* %31
%162 = load double, double* %31
%163 = load double, double* %28
%164 = load double, double* %27
%165 = fsub double %163, %164
%166 = fcmp olt double %162, %165
br i1 %166, label %167, label %171
167: ; preds = %158
%168 = load double, double* %28
%169 = load double, double* %27
%170 = fsub double %168, %169
store double %170, double* %31
br label %171
171: ; preds = %167, %158
%172 = load double, double* %31
%173 = load double, double* %30
%174 = load double, double* %29
%175 = fsub double %173, %174
%176 = fcmp olt double %172, %175
br i1 %176, label %177, label %181
177: ; preds = %171
%178 = load double, double* %30
%179 = load double, double* %29
%180 = fsub double %178, %179
store double %180, double* %31
br label %181
181: ; preds = %177, %171
%182 = load double, double* %19
%183 = load double, double* %31
%184 = fmul double %183, %182
store double %184, double* %31
%185 = load double, double* %32
%186 = load double, double* %31
%187 = fsub double %185, %186
%188 = fdiv double %187, 2.000000e+00
store double %188, double* %25
%189 = load double, double* %32
%190 = load double, double* %31
%191 = fadd double %189, %190
%192 = fdiv double %191, 2.000000e+00
store double %192, double* %26
%193 = load double, double* %33
%194 = load double, double* %31
%195 = fsub double %193, %194
%196 = fdiv double %195, 2.000000e+00
store double %196, double* %27
%197 = load double, double* %33
%198 = load double, double* %31
%199 = fadd double %197, %198
%200 = fdiv double %199, 2.000000e+00
store double %200, double* %28
%201 = load double, double* %34
%202 = load double, double* %31
%203 = fsub double %201, %202
%204 = fdiv double %203, 2.000000e+00
store double %204, double* %29
%205 = load double, double* %34
%206 = load double, double* %31
%207 = fadd double %205, %206
%208 = fdiv double %207, 2.000000e+00
store double %208, double* %30
br label %249
209: ; preds = %146
%210 = load double, double* %26
%211 = load double, double* %25
%212 = fsub double %210, %211
%213 = load double, double* %19
%214 = fmul double %212, %213
store double %214, double* %31
%215 = load double, double* %32
%216 = load double, double* %31
%217 = fsub double %215, %216
%218 = fdiv double %217, 2.000000e+00
store double %218, double* %25
%219 = load double, double* %32
%220 = load double, double* %31
%221 = fadd double %219, %220
%222 = fdiv double %221, 2.000000e+00
store double %222, double* %26
%223 = load double, double* %28
%224 = load double, double* %27
%225 = fsub double %223, %224
%226 = load double, double* %19
%227 = fmul double %225, %226
store double %227, double* %31
%228 = load double, double* %33
%229 = load double, double* %31
%230 = fsub double %228, %229
%231 = fdiv double %230, 2.000000e+00
store double %231, double* %27
%232 = load double, double* %33
%233 = load double, double* %31
%234 = fadd double %232, %233
%235 = fdiv double %234, 2.000000e+00
store double %235, double* %28
%236 = load double, double* %30
%237 = load double, double* %29
%238 = fsub double %236, %237
%239 = load double, double* %19
%240 = fmul double %238, %239
store double %240, double* %31
%241 = load double, double* %34
%242 = load double, double* %31
%243 = fsub double %241, %242
%244 = fdiv double %243, 2.000000e+00
store double %244, double* %29
%245 = load double, double* %34
%246 = load double, double* %31
%247 = fadd double %245, %246
%248 = fdiv double %247, 2.000000e+00
store double %248, double* %30
br label %249
249: ; preds = %209, %181
%250 = load double, double* %25
%251 = load double*, double** %13
%252 = load i32, i32* %23
%253 = add nsw i32 %252, 0
%254 = mul nsw i32 3, %253
%255 = add nsw i32 %254, 0
%256 = sext i32 %255 to i64
%257 = getelementptr inbounds double, double* %251, i64 %256
store double %250, double* %257
%258 = load double, double* %27
%259 = load double*, double** %13
%260 = load i32, i32* %23
%261 = add nsw i32 %260, 0
%262 = mul nsw i32 3, %261
%263 = add nsw i32 %262, 1
%264 = sext i32 %263 to i64
%265 = getelementptr inbounds double, double* %259, i64 %264
store double %258, double* %265
%266 = load double, double* %29
%267 = load double*, double** %13
%268 = load i32, i32* %23
%269 = add nsw i32 %268, 0
%270 = mul nsw i32 3, %269
%271 = add nsw i32 %270, 2
%272 = sext i32 %271 to i64
%273 = getelementptr inbounds double, double* %267, i64 %272
store double %266, double* %273
%274 = load double, double* %26
%275 = load double*, double** %13
%276 = load i32, i32* %23
%277 = add nsw i32 %276, 1
%278 = mul nsw i32 3, %277
%279 = add nsw i32 %278, 0
%280 = sext i32 %279 to i64
%281 = getelementptr inbounds double, double* %275, i64 %280
store double %274, double* %281
%282 = load double, double* %27
%283 = load double*, double** %13
%284 = load i32, i32* %23
%285 = add nsw i32 %284, 1
%286 = mul nsw i32 3, %285
%287 = add nsw i32 %286, 1
%288 = sext i32 %287 to i64
%289 = getelementptr inbounds double, double* %283, i64 %288
store double %282, double* %289
%290 = load double, double* %29
%291 = load double*, double** %13
%292 = load i32, i32* %23
%293 = add nsw i32 %292, 1
%294 = mul nsw i32 3, %293
%295 = add nsw i32 %294, 2
%296 = sext i32 %295 to i64
%297 = getelementptr inbounds double, double* %291, i64 %296
store double %290, double* %297
%298 = load double, double* %25
%299 = load double*, double** %13
%300 = load i32, i32* %23
%301 = add nsw i32 %300, 2
%302 = mul nsw i32 3, %301
%303 = add nsw i32 %302, 0
%304 = sext i32 %303 to i64
%305 = getelementptr inbounds double, double* %299, i64 %304
store double %298, double* %305
%306 = load double, double* %28
%307 = load double*, double** %13
%308 = load i32, i32* %23
%309 = add nsw i32 %308, 2
%310 = mul nsw i32 3, %309
%311 = add nsw i32 %310, 1
%312 = sext i32 %311 to i64
%313 = getelementptr inbounds double, double* %307, i64 %312
store double %306, double* %313
%314 = load double, double* %29
%315 = load double*, double** %13
%316 = load i32, i32* %23
%317 = add nsw i32 %316, 2
%318 = mul nsw i32 3, %317
%319 = add nsw i32 %318, 2
%320 = sext i32 %319 to i64
%321 = getelementptr inbounds double, double* %315, i64 %320
store double %314, double* %321
%322 = load double, double* %26
%323 = load double*, double** %13
%324 = load i32, i32* %23
%325 = add nsw i32 %324, 3
%326 = mul nsw i32 3, %325
%327 = add nsw i32 %326, 0
%328 = sext i32 %327 to i64
%329 = getelementptr inbounds double, double* %323, i64 %328
store double %322, double* %329
%330 = load double, double* %28
%331 = load double*, double** %13
%332 = load i32, i32* %23
%333 = add nsw i32 %332, 3
%334 = mul nsw i32 3, %333
%335 = add nsw i32 %334, 1
%336 = sext i32 %335 to i64
%337 = getelementptr inbounds double, double* %331, i64 %336
store double %330, double* %337
%338 = load double, double* %29
%339 = load double*, double** %13
%340 = load i32, i32* %23
%341 = add nsw i32 %340, 3
%342 = mul nsw i32 3, %341
%343 = add nsw i32 %342, 2
%344 = sext i32 %343 to i64
%345 = getelementptr inbounds double, double* %339, i64 %344
store double %338, double* %345
%346 = load double, double* %25
%347 = load double*, double** %13
%348 = load i32, i32* %23
%349 = add nsw i32 %348, 4
%350 = mul nsw i32 3, %349
%351 = add nsw i32 %350, 0
%352 = sext i32 %351 to i64
%353 = getelementptr inbounds double, double* %347, i64 %352
store double %346, double* %353
%354 = load double, double* %27
%355 = load double*, double** %13
%356 = load i32, i32* %23
%357 = add nsw i32 %356, 4
%358 = mul nsw i32 3, %357
%359 = add nsw i32 %358, 1
%360 = sext i32 %359 to i64
%361 = getelementptr inbounds double, double* %355, i64 %360
store double %354, double* %361
%362 = load double, double* %30
%363 = load double*, double** %13
%364 = load i32, i32* %23
%365 = add nsw i32 %364, 4
%366 = mul nsw i32 3, %365
%367 = add nsw i32 %366, 2
%368 = sext i32 %367 to i64
%369 = getelementptr inbounds double, double* %363, i64 %368
store double %362, double* %369
%370 = load double, double* %26
%371 = load double*, double** %13
%372 = load i32, i32* %23
%373 = add nsw i32 %372, 5
%374 = mul nsw i32 3, %373
%375 = add nsw i32 %374, 0
%376 = sext i32 %375 to i64
%377 = getelementptr inbounds double, double* %371, i64 %376
store double %370, double* %377
%378 = load double, double* %27
%379 = load double*, double** %13
%380 = load i32, i32* %23
%381 = add nsw i32 %380, 5
%382 = mul nsw i32 3, %381
%383 = add nsw i32 %382, 1
%384 = sext i32 %383 to i64
%385 = getelementptr inbounds double, double* %379, i64 %384
store double %378, double* %385
%386 = load double, double* %30
%387 = load double*, double** %13
%388 = load i32, i32* %23
%389 = add nsw i32 %388, 5
%390 = mul nsw i32 3, %389
%391 = add nsw i32 %390, 2
%392 = sext i32 %391 to i64
%393 = getelementptr inbounds double, double* %387, i64 %392
store double %386, double* %393
%394 = load double, double* %25
%395 = load double*, double** %13
%396 = load i32, i32* %23
%397 = add nsw i32 %396, 6
%398 = mul nsw i32 3, %397
%399 = add nsw i32 %398, 0
%400 = sext i32 %399 to i64
%401 = getelementptr inbounds double, double* %395, i64 %400
store double %394, double* %401
%402 = load double, double* %28
%403 = load double*, double** %13
%404 = load i32, i32* %23
%405 = add nsw i32 %404, 6
%406 = mul nsw i32 3, %405
%407 = add nsw i32 %406, 1
%408 = sext i32 %407 to i64
%409 = getelementptr inbounds double, double* %403, i64 %408
store double %402, double* %409
%410 = load double, double* %30
%411 = load double*, double** %13
%412 = load i32, i32* %23
%413 = add nsw i32 %412, 6
%414 = mul nsw i32 3, %413
%415 = add nsw i32 %414, 2
%416 = sext i32 %415 to i64
%417 = getelementptr inbounds double, double* %411, i64 %416
store double %410, double* %417
%418 = load double, double* %26
%419 = load double*, double** %13
%420 = load i32, i32* %23
%421 = add nsw i32 %420, 7
%422 = mul nsw i32 3, %421
%423 = add nsw i32 %422, 0
%424 = sext i32 %423 to i64
%425 = getelementptr inbounds double, double* %419, i64 %424
store double %418, double* %425
%426 = load double, double* %28
%427 = load double*, double** %13
%428 = load i32, i32* %23
%429 = add nsw i32 %428, 7
%430 = mul nsw i32 3, %429
%431 = add nsw i32 %430, 1
%432 = sext i32 %431 to i64
%433 = getelementptr inbounds double, double* %427, i64 %432
store double %426, double* %433
%434 = load double, double* %30
%435 = load double*, double** %13
%436 = load i32, i32* %23
%437 = add nsw i32 %436, 7
%438 = mul nsw i32 3, %437
%439 = add nsw i32 %438, 2
%440 = sext i32 %439 to i64
%441 = getelementptr inbounds double, double* %435, i64 %440
store double %434, double* %441
%442 = load i32, i32* %23
%443 = add nsw i32 %442, 1
%444 = load i32*, i32** %15
%445 = load i32, i32* %24
%446 = add nsw i32 %445, 0
%447 = mul nsw i32 3, %446
%448 = add nsw i32 %447, 0
%449 = sext i32 %448 to i64
%450 = getelementptr inbounds i32, i32* %444, i64 %449
store i32 %443, i32* %450
%451 = load i32, i32* %23
%452 = add nsw i32 %451, 3
%453 = load i32*, i32** %15
%454 = load i32, i32* %24
%455 = add nsw i32 %454, 0
%456 = mul nsw i32 3, %455
%457 = add nsw i32 %456, 1
%458 = sext i32 %457 to i64
%459 = getelementptr inbounds i32, i32* %453, i64 %458
store i32 %452, i32* %459
%460 = load i32, i32* %23
%461 = add nsw i32 %460, 4
%462 = load i32*, i32** %15
%463 = load i32, i32* %24
%464 = add nsw i32 %463, 0
%465 = mul nsw i32 3, %464
%466 = add nsw i32 %465, 2
%467 = sext i32 %466 to i64
%468 = getelementptr inbounds i32, i32* %462, i64 %467
store i32 %461, i32* %468
%469 = load i32, i32* %17
%470 = load i32*, i32** %16
%471 = load i32, i32* %24
%472 = add nsw i32 %471, 0
%473 = sext i32 %472 to i64
%474 = getelementptr inbounds i32, i32* %470, i64 %473
store i32 %469, i32* %474
%475 = load i32, i32* %23
%476 = add nsw i32 %475, 4
%477 = load i32*, i32** %15
%478 = load i32, i32* %24
%479 = add nsw i32 %478, 1
%480 = mul nsw i32 3, %479
%481 = add nsw i32 %480, 0
%482 = sext i32 %481 to i64
%483 = getelementptr inbounds i32, i32* %477, i64 %482
store i32 %476, i32* %483
%484 = load i32, i32* %23
%485 = add nsw i32 %484, 2
%486 = load i32*, i32** %15
%487 = load i32, i32* %24
%488 = add nsw i32 %487, 1
%489 = mul nsw i32 3, %488
%490 = add nsw i32 %489, 1
%491 = sext i32 %490 to i64
%492 = getelementptr inbounds i32, i32* %486, i64 %491
store i32 %485, i32* %492
%493 = load i32, i32* %23
%494 = add nsw i32 %493, 1
%495 = load i32*, i32** %15
%496 = load i32, i32* %24
%497 = add nsw i32 %496, 1
%498 = mul nsw i32 3, %497
%499 = add nsw i32 %498, 2
%500 = sext i32 %499 to i64
%501 = getelementptr inbounds i32, i32* %495, i64 %500
store i32 %494, i32* %501
%502 = load i32, i32* %17
%503 = load i32*, i32** %16
%504 = load i32, i32* %24
%505 = add nsw i32 %504, 1
%506 = sext i32 %505 to i64
%507 = getelementptr inbounds i32, i32* %503, i64 %506
store i32 %502, i32* %507
%508 = load i32, i32* %23
%509 = add nsw i32 %508, 7
%510 = load i32*, i32** %15
%511 = load i32, i32* %24
%512 = add nsw i32 %511, 2
%513 = mul nsw i32 3, %512
%514 = add nsw i32 %513, 0
%515 = sext i32 %514 to i64
%516 = getelementptr inbounds i32, i32* %510, i64 %515
store i32 %509, i32* %516
%517 = load i32, i32* %23
%518 = add nsw i32 %517, 5
%519 = load i32*, i32** %15
%520 = load i32, i32* %24
%521 = add nsw i32 %520, 2
%522 = mul nsw i32 3, %521
%523 = add nsw i32 %522, 1
%524 = sext i32 %523 to i64
%525 = getelementptr inbounds i32, i32* %519, i64 %524
store i32 %518, i32* %525
%526 = load i32, i32* %23
%527 = add nsw i32 %526, 6
%528 = load i32*, i32** %15
%529 = load i32, i32* %24
%530 = add nsw i32 %529, 2
%531 = mul nsw i32 3, %530
%532 = add nsw i32 %531, 2
%533 = sext i32 %532 to i64
%534 = getelementptr inbounds i32, i32* %528, i64 %533
store i32 %527, i32* %534
%535 = load i32, i32* %17
%536 = load i32*, i32** %16
%537 = load i32, i32* %24
%538 = add nsw i32 %537, 2
%539 = sext i32 %538 to i64
%540 = getelementptr inbounds i32, i32* %536, i64 %539
store i32 %535, i32* %540
%541 = load i32, i32* %23
%542 = add nsw i32 %541, 6
%543 = load i32*, i32** %15
%544 = load i32, i32* %24
%545 = add nsw i32 %544, 3
%546 = mul nsw i32 3, %545
%547 = add nsw i32 %546, 0
%548 = sext i32 %547 to i64
%549 = getelementptr inbounds i32, i32* %543, i64 %548
store i32 %542, i32* %549
%550 = load i32, i32* %23
%551 = add nsw i32 %550, 8
%552 = load i32*, i32** %15
%553 = load i32, i32* %24
%554 = add nsw i32 %553, 3
%555 = mul nsw i32 3, %554
%556 = add nsw i32 %555, 1
%557 = sext i32 %556 to i64
%558 = getelementptr inbounds i32, i32* %552, i64 %557
store i32 %551, i32* %558
%559 = load i32, i32* %23
%560 = add nsw i32 %559, 7
%561 = load i32*, i32** %15
%562 = load i32, i32* %24
%563 = add nsw i32 %562, 3
%564 = mul nsw i32 3, %563
%565 = add nsw i32 %564, 2
%566 = sext i32 %565 to i64
%567 = getelementptr inbounds i32, i32* %561, i64 %566
store i32 %560, i32* %567
%568 = load i32, i32* %17
%569 = load i32*, i32** %16
%570 = load i32, i32* %24
%571 = add nsw i32 %570, 3
%572 = sext i32 %571 to i64
%573 = getelementptr inbounds i32, i32* %569, i64 %572
store i32 %568, i32* %573
%574 = load i32, i32* %23
%575 = add nsw i32 %574, 6
%576 = load i32*, i32** %15
%577 = load i32, i32* %24
%578 = add nsw i32 %577, 4
%579 = mul nsw i32 3, %578
%580 = add nsw i32 %579, 0
%581 = sext i32 %580 to i64
%582 = getelementptr inbounds i32, i32* %576, i64 %581
store i32 %575, i32* %582
%583 = load i32, i32* %23
%584 = add nsw i32 %583, 2
%585 = load i32*, i32** %15
%586 = load i32, i32* %24
%587 = add nsw i32 %586, 4
%588 = mul nsw i32 3, %587
%589 = add nsw i32 %588, 1
%590 = sext i32 %589 to i64
%591 = getelementptr inbounds i32, i32* %585, i64 %590
store i32 %584, i32* %591
%592 = load i32, i32* %23
%593 = add nsw i32 %592, 4
%594 = load i32*, i32** %15
%595 = load i32, i32* %24
%596 = add nsw i32 %595, 4
%597 = mul nsw i32 3, %596
%598 = add nsw i32 %597, 2
%599 = sext i32 %598 to i64
%600 = getelementptr inbounds i32, i32* %594, i64 %599
store i32 %593, i32* %600
%601 = load i32, i32* %17
%602 = load i32*, i32** %16
%603 = load i32, i32* %24
%604 = add nsw i32 %603, 4
%605 = sext i32 %604 to i64
%606 = getelementptr inbounds i32, i32* %602, i64 %605
store i32 %601, i32* %606
%607 = load i32, i32* %23
%608 = add nsw i32 %607, 4
%609 = load i32*, i32** %15
%610 = load i32, i32* %24
%611 = add nsw i32 %610, 5
%612 = mul nsw i32 3, %611
%613 = add nsw i32 %612, 0
%614 = sext i32 %613 to i64
%615 = getelementptr inbounds i32, i32* %609, i64 %614
store i32 %608, i32* %615
%616 = load i32, i32* %23
%617 = add nsw i32 %616, 8
%618 = load i32*, i32** %15
%619 = load i32, i32* %24
%620 = add nsw i32 %619, 5
%621 = mul nsw i32 3, %620
%622 = add nsw i32 %621, 1
%623 = sext i32 %622 to i64
%624 = getelementptr inbounds i32, i32* %618, i64 %623
store i32 %617, i32* %624
%625 = load i32, i32* %23
%626 = add nsw i32 %625, 6
%627 = load i32*, i32** %15
%628 = load i32, i32* %24
%629 = add nsw i32 %628, 5
%630 = mul nsw i32 3, %629
%631 = add nsw i32 %630, 2
%632 = sext i32 %631 to i64
%633 = getelementptr inbounds i32, i32* %627, i64 %632
store i32 %626, i32* %633
%634 = load i32, i32* %17
%635 = load i32*, i32** %16
%636 = load i32, i32* %24
%637 = add nsw i32 %636, 5
%638 = sext i32 %637 to i64
%639 = getelementptr inbounds i32, i32* %635, i64 %638
store i32 %634, i32* %639
%640 = load i32, i32* %23
%641 = add nsw i32 %640, 5
%642 = load i32*, i32** %15
%643 = load i32, i32* %24
%644 = add nsw i32 %643, 6
%645 = mul nsw i32 3, %644
%646 = add nsw i32 %645, 0
%647 = sext i32 %646 to i64
%648 = getelementptr inbounds i32, i32* %642, i64 %647
store i32 %641, i32* %648
%649 = load i32, i32* %23
%650 = add nsw i32 %649, 1
%651 = load i32*, i32** %15
%652 = load i32, i32* %24
%653 = add nsw i32 %652, 6
%654 = mul nsw i32 3, %653
%655 = add nsw i32 %654, 1
%656 = sext i32 %655 to i64
%657 = getelementptr inbounds i32, i32* %651, i64 %656
store i32 %650, i32* %657
%658 = load i32, i32* %23
%659 = add nsw i32 %658, 2
%660 = load i32*, i32** %15
%661 = load i32, i32* %24
%662 = add nsw i32 %661, 6
%663 = mul nsw i32 3, %662
%664 = add nsw i32 %663, 2
%665 = sext i32 %664 to i64
%666 = getelementptr inbounds i32, i32* %660, i64 %665
store i32 %659, i32* %666
%667 = load i32, i32* %17
%668 = load i32*, i32** %16
%669 = load i32, i32* %24
%670 = add nsw i32 %669, 6
%671 = sext i32 %670 to i64
%672 = getelementptr inbounds i32, i32* %668, i64 %671
store i32 %667, i32* %672
%673 = load i32, i32* %23
%674 = add nsw i32 %673, 2
%675 = load i32*, i32** %15
%676 = load i32, i32* %24
%677 = add nsw i32 %676, 7
%678 = mul nsw i32 3, %677
%679 = add nsw i32 %678, 0
%680 = sext i32 %679 to i64
%681 = getelementptr inbounds i32, i32* %675, i64 %680
store i32 %674, i32* %681
%682 = load i32, i32* %23
%683 = add nsw i32 %682, 6
%684 = load i32*, i32** %15
%685 = load i32, i32* %24
%686 = add nsw i32 %685, 7
%687 = mul nsw i32 3, %686
%688 = add nsw i32 %687, 1
%689 = sext i32 %688 to i64
%690 = getelementptr inbounds i32, i32* %684, i64 %689
store i32 %683, i32* %690
%691 = load i32, i32* %23
%692 = add nsw i32 %691, 5
%693 = load i32*, i32** %15
%694 = load i32, i32* %24
%695 = add nsw i32 %694, 7
%696 = mul nsw i32 3, %695
%697 = add nsw i32 %696, 2
%698 = sext i32 %697 to i64
%699 = getelementptr inbounds i32, i32* %693, i64 %698
store i32 %692, i32* %699
%700 = load i32, i32* %17
%701 = load i32*, i32** %16
%702 = load i32, i32* %24
%703 = add nsw i32 %702, 7
%704 = sext i32 %703 to i64
%705 = getelementptr inbounds i32, i32* %701, i64 %704
store i32 %700, i32* %705
%706 = load i32, i32* %23
%707 = add nsw i32 %706, 7
%708 = load i32*, i32** %15
%709 = load i32, i32* %24
%710 = add nsw i32 %709, 8
%711 = mul nsw i32 3, %710
%712 = add nsw i32 %711, 0
%713 = sext i32 %712 to i64
%714 = getelementptr inbounds i32, i32* %708, i64 %713
store i32 %707, i32* %714
%715 = load i32, i32* %23
%716 = add nsw i32 %715, 3
%717 = load i32*, i32** %15
%718 = load i32, i32* %24
%719 = add nsw i32 %718, 8
%720 = mul nsw i32 3, %719
%721 = add nsw i32 %720, 1
%722 = sext i32 %721 to i64
%723 = getelementptr inbounds i32, i32* %717, i64 %722
store i32 %716, i32* %723
%724 = load i32, i32* %23
%725 = add nsw i32 %724, 1
%726 = load i32*, i32** %15
%727 = load i32, i32* %24
%728 = add nsw i32 %727, 8
%729 = mul nsw i32 3, %728
%730 = add nsw i32 %729, 2
%731 = sext i32 %730 to i64
%732 = getelementptr inbounds i32, i32* %726, i64 %731
store i32 %725, i32* %732
%733 = load i32, i32* %17
%734 = load i32*, i32** %16
%735 = load i32, i32* %24
%736 = add nsw i32 %735, 8
%737 = sext i32 %736 to i64
%738 = getelementptr inbounds i32, i32* %734, i64 %737
store i32 %733, i32* %738
%739 = load i32, i32* %23
%740 = add nsw i32 %739, 1
%741 = load i32*, i32** %15
%742 = load i32, i32* %24
%743 = add nsw i32 %742, 9
%744 = mul nsw i32 3, %743
%745 = add nsw i32 %744, 0
%746 = sext i32 %745 to i64
%747 = getelementptr inbounds i32, i32* %741, i64 %746
store i32 %740, i32* %747
%748 = load i32, i32* %23
%749 = add nsw i32 %748, 5
%750 = load i32*, i32** %15
%751 = load i32, i32* %24
%752 = add nsw i32 %751, 9
%753 = mul nsw i32 3, %752
%754 = add nsw i32 %753, 1
%755 = sext i32 %754 to i64
%756 = getelementptr inbounds i32, i32* %750, i64 %755
store i32 %749, i32* %756
%757 = load i32, i32* %23
%758 = add nsw i32 %757, 7
%759 = load i32*, i32** %15
%760 = load i32, i32* %24
%761 = add nsw i32 %760, 9
%762 = mul nsw i32 3, %761
%763 = add nsw i32 %762, 2
%764 = sext i32 %763 to i64
%765 = getelementptr inbounds i32, i32* %759, i64 %764
store i32 %758, i32* %765
%766 = load i32, i32* %17
%767 = load i32*, i32** %16
%768 = load i32, i32* %24
%769 = add nsw i32 %768, 9
%770 = sext i32 %769 to i64
%771 = getelementptr inbounds i32, i32* %767, i64 %770
store i32 %766, i32* %771
%772 = load i32, i32* %23
%773 = add nsw i32 %772, 8
%774 = load i32*, i32** %15
%775 = load i32, i32* %24
%776 = add nsw i32 %775, 10
%777 = mul nsw i32 3, %776
%778 = add nsw i32 %777, 0
%779 = sext i32 %778 to i64
%780 = getelementptr inbounds i32, i32* %774, i64 %779
store i32 %773, i32* %780
%781 = load i32, i32* %23
%782 = add nsw i32 %781, 4
%783 = load i32*, i32** %15
%784 = load i32, i32* %24
%785 = add nsw i32 %784, 10
%786 = mul nsw i32 3, %785
%787 = add nsw i32 %786, 1
%788 = sext i32 %787 to i64
%789 = getelementptr inbounds i32, i32* %783, i64 %788
store i32 %782, i32* %789
%790 = load i32, i32* %23
%791 = add nsw i32 %790, 3
%792 = load i32*, i32** %15
%793 = load i32, i32* %24
%794 = add nsw i32 %793, 10
%795 = mul nsw i32 3, %794
%796 = add nsw i32 %795, 2
%797 = sext i32 %796 to i64
%798 = getelementptr inbounds i32, i32* %792, i64 %797
store i32 %791, i32* %798
%799 = load i32, i32* %17
%800 = load i32*, i32** %16
%801 = load i32, i32* %24
%802 = add nsw i32 %801, 10
%803 = sext i32 %802 to i64
%804 = getelementptr inbounds i32, i32* %800, i64 %803
store i32 %799, i32* %804
%805 = load i32, i32* %23
%806 = add nsw i32 %805, 3
%807 = load i32*, i32** %15
%808 = load i32, i32* %24
%809 = add nsw i32 %808, 11
%810 = mul nsw i32 3, %809
%811 = add nsw i32 %810, 0
%812 = sext i32 %811 to i64
%813 = getelementptr inbounds i32, i32* %807, i64 %812
store i32 %806, i32* %813
%814 = load i32, i32* %23
%815 = add nsw i32 %814, 7
%816 = load i32*, i32** %15
%817 = load i32, i32* %24
%818 = add nsw i32 %817, 11
%819 = mul nsw i32 3, %818
%820 = add nsw i32 %819, 1
%821 = sext i32 %820 to i64
%822 = getelementptr inbounds i32, i32* %816, i64 %821
store i32 %815, i32* %822
%823 = load i32, i32* %23
%824 = add nsw i32 %823, 8
%825 = load i32*, i32** %15
%826 = load i32, i32* %24
%827 = add nsw i32 %826, 11
%828 = mul nsw i32 3, %827
%829 = add nsw i32 %828, 2
%830 = sext i32 %829 to i64
%831 = getelementptr inbounds i32, i32* %825, i64 %830
store i32 %824, i32* %831
%832 = load i32, i32* %17
%833 = load i32*, i32** %16
%834 = load i32, i32* %24
%835 = add nsw i32 %834, 11
%836 = sext i32 %835 to i64
%837 = getelementptr inbounds i32, i32* %833, i64 %836
store i32 %832, i32* %837
%838 = load i32, i32* %23
%839 = add nsw i32 %838, 8
%840 = load i32*, i32** %12
store i32 %839, i32* %840
%841 = load i32, i32* %24
%842 = add nsw i32 %841, 12
%843 = load i32*, i32** %14
store i32 %842, i32* %843
store i32 0, i32* %11
br label %844
844: ; preds = %249, %55, %50, %43
%845 = load i32, i32* %11
ret i32 %845
}

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