#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*/ box_apeak_xy(int, int, int, int, int, int,
                                int /*<<< orphan*/, int);
int /*<<< orphan*/ delay_ms(int);
void flash_5() {
  int delay = 75;
  int i = 8, j, an[4];
  for (j = 7; j < 11; j++)
    an[j - 7] = j;
  while (i--) {
    for (j = 0; j < 4; j++) {
      if (an[j] < 8)
        box_apeak_xy(j, an[j], j, 7 - j, an[j], 7 - j, 0, 1);
      if (an[j] < 7)
        box_apeak_xy(j, an[j] + 1, j, 7 - j, an[j] + 1, 7 - j, 0, 0);
    }
    for (j = 0; j < 4; j++) {
      if (an[j] > 3)
        an[j]--;
    }
    delay_ms(delay);
  }
  i = 3;
  for (j = 0; j < 4; j++)
    an[j] = 5 - j;
  while (i--) {
    for (j = 1; j < 4; j++) {
      if (an[j] < 4)
        box_apeak_xy(j, an[j], j, 7 - j, an[j], 7 - j, 0, 1);
      if (an[j] < 3)
        box_apeak_xy(j, an[j] + 1, j, 7 - j, an[j] + 1, 7 - j, 0, 0);
    }
    for (j = 0; j < 4; j++) {
      if (an[j] > 0)
        an[j]--;
    }
    delay_ms(delay);
  }
  i = 3;
  for (j = 1; j < 4; j++)
    an[j] = 4 - j;
  while (i--) {
    for (j = 1; j < 4; j++) {
      if (an[j] >= 0)
        box_apeak_xy(j, an[j], j, 7 - j, an[j], 7 - j, 0, 1);
      if (an[j] > 0)
        box_apeak_xy(j, an[j] - 1, j, 7 - j, an[j] - 1, 7 - j, 0, 0);
    }
    for (j = 1; j < 4; j++) {
      if (an[j] < 3)
        an[j]++;
    }
    delay_ms(delay);
  }
  i = 3;
  for (j = 0; j < 4; j++)
    an[j] = j + 1;
  while (i--) {
    for (j = 1; j < 4; j++) {
      if (an[j] > 3)
        box_apeak_xy(j, an[j], j, 7 - j, an[j], 7 - j, 0, 1);
      if (an[j] > 3)
        box_apeak_xy(j, an[j] - 1, j, 7 - j, an[j] - 1, 7 - j, 0, 0);
    }
    for (j = 0; j < 4; j++)
      an[j]++;
    delay_ms(delay);
  }
  i = 3;
  for (j = 3; j < 6; j++)
    an[j - 2] = j;
  while (i--) {
    for (j = 1; j < 4; j++) {
      box_apeak_xy(j, an[j], j, 7 - j, an[j], 7 - j, 0, 1);
      box_apeak_xy(j, an[j] + 1, j, 7 - j, an[j] + 1, 7 - j, 0, 0);
    }
    for (j = 0; j < 4; j++) {
      if (an[j] > 3)
        an[j]--;
    }
    delay_ms(delay);
  }
  i = 3;
  for (j = 0; j < 4; j++)
    an[j] = 5 - j;
  while (i--) {
    for (j = 1; j < 4; j++) {
      if (an[j] < 4)
        box_apeak_xy(j, an[j], j, 7 - j, an[j], 7 - j, 0, 1);
      if (an[j] < 3)
        box_apeak_xy(j, an[j] + 1, j, 7 - j, an[j] + 1, 7 - j, 0, 0);
    }
    for (j = 0; j < 4; j++) {
      if (an[j] > 0)
        an[j]--;
    }
    delay_ms(delay);
  }
  i = 3;
  for (j = 0; j < 4; j++)
    an[j] = 3 - j;
  an[0] = 2;
  while (i--) {
    for (j = 0; j < 3; j++) {
      if (an[j] >= 0)
        box_apeak_xy(j, an[j], j, 7 - j, an[j], 7 - j, 0, 1);
      if (an[j] >= 0)
        box_apeak_xy(j, an[j] + 1, j, 7 - j, an[j] + 1, 7 - j, 0, 0);
    }
    for (j = 0; j < 4; j++) {
      if (j < 5 - i)
        an[j]--;
    }
    delay_ms(delay);
  }
  i = 10;
  for (j = 0; j < 4; j++)
    an[j] = j - 2;
  while (i--) {
    for (j = 0; j < 4; j++) {
      if (an[j] >= 0)
        box_apeak_xy(j, an[j], j, 7 - j, an[j], 7 - j, 0, 1);
      if (an[j] >= 0)
        box_apeak_xy(j, an[j] - 1, j, 7 - j, an[j] - 1, 7 - j, 0, 0);
    }
    for (j = 0; j < 4; j++) {
      if (an[j] < 7)
        an[j]++;
    }
    delay_ms(delay);
  }
}


x86 assembly (clang, -O0):
<flash_5>:
push   %rbp
mov    %rsp,%rbp
sub    $0x30,%rsp
movl   $0x4b,-0x4(%rbp)
movl   $0x8,-0x8(%rbp)
movl   $0x7,-0xc(%rbp)
cmpl   $0xb,-0xc(%rbp)
jge    1164 <flash_5+0x44>
mov    -0xc(%rbp),%ecx
mov    -0xc(%rbp),%eax
sub    $0x7,%eax
cltq
mov    %ecx,-0x20(%rbp,%rax,4)
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    113d <flash_5+0x1d>
jmp    1169 <flash_5+0x49>
mov    -0x8(%rbp),%eax
mov    %eax,%ecx
add    $0xffffffff,%ecx
mov    %ecx,-0x8(%rbp)
cmp    $0x0,%eax
je     1293 <flash_5+0x173>
movl   $0x0,-0xc(%rbp)
cmpl   $0x4,-0xc(%rbp)
jge    1244 <flash_5+0x124>
movslq -0xc(%rbp),%rax
cmpl   $0x8,-0x20(%rbp,%rax,4)
jge    11dc <flash_5+0xbc>
mov    -0xc(%rbp),%edi
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%esi
mov    -0xc(%rbp),%edx
mov    $0x7,%ecx
sub    -0xc(%rbp),%ecx
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%r8d
mov    $0x7,%r9d
sub    -0xc(%rbp),%r9d
xor    %eax,%eax
movl   $0x0,(%rsp)
movl   $0x1,0x8(%rsp)
call   1030 <box_apeak_xy@plt>
movslq -0xc(%rbp),%rax
cmpl   $0x7,-0x20(%rbp,%rax,4)
jge    1231 <flash_5+0x111>
mov    -0xc(%rbp),%edi
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%esi
add    $0x1,%esi
mov    -0xc(%rbp),%edx
mov    $0x7,%ecx
sub    -0xc(%rbp),%ecx
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%r8d
add    $0x1,%r8d
mov    $0x7,%r9d
sub    -0xc(%rbp),%r9d
xor    %eax,%eax
movl   $0x0,(%rsp)
movl   $0x0,0x8(%rsp)
call   1030 <box_apeak_xy@plt>
jmp    1236 <flash_5+0x116>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    1184 <flash_5+0x64>
movl   $0x0,-0xc(%rbp)
cmpl   $0x4,-0xc(%rbp)
jge    1286 <flash_5+0x166>
movslq -0xc(%rbp),%rax
cmpl   $0x3,-0x20(%rbp,%rax,4)
jle    1273 <flash_5+0x153>
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%ecx
add    $0xffffffff,%ecx
mov    %ecx,-0x20(%rbp,%rax,4)
jmp    1278 <flash_5+0x158>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    124b <flash_5+0x12b>
mov    -0x4(%rbp),%edi
call   1040 <delay_ms@plt>
jmp    1169 <flash_5+0x49>
movl   $0x3,-0x8(%rbp)
movl   $0x0,-0xc(%rbp)
cmpl   $0x4,-0xc(%rbp)
jge    12c9 <flash_5+0x1a9>
mov    $0x5,%ecx
sub    -0xc(%rbp),%ecx
movslq -0xc(%rbp),%rax
mov    %ecx,-0x20(%rbp,%rax,4)
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    12a1 <flash_5+0x181>
jmp    12ce <flash_5+0x1ae>
mov    -0x8(%rbp),%eax
mov    %eax,%ecx
add    $0xffffffff,%ecx
mov    %ecx,-0x8(%rbp)
cmp    $0x0,%eax
je     13f8 <flash_5+0x2d8>
movl   $0x1,-0xc(%rbp)
cmpl   $0x4,-0xc(%rbp)
jge    13a9 <flash_5+0x289>
movslq -0xc(%rbp),%rax
cmpl   $0x4,-0x20(%rbp,%rax,4)
jge    1341 <flash_5+0x221>
mov    -0xc(%rbp),%edi
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%esi
mov    -0xc(%rbp),%edx
mov    $0x7,%ecx
sub    -0xc(%rbp),%ecx
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%r8d
mov    $0x7,%r9d
sub    -0xc(%rbp),%r9d
xor    %eax,%eax
movl   $0x0,(%rsp)
movl   $0x1,0x8(%rsp)
call   1030 <box_apeak_xy@plt>
movslq -0xc(%rbp),%rax
cmpl   $0x3,-0x20(%rbp,%rax,4)
jge    1396 <flash_5+0x276>
mov    -0xc(%rbp),%edi
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%esi
add    $0x1,%esi
mov    -0xc(%rbp),%edx
mov    $0x7,%ecx
sub    -0xc(%rbp),%ecx
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%r8d
add    $0x1,%r8d
mov    $0x7,%r9d
sub    -0xc(%rbp),%r9d
xor    %eax,%eax
movl   $0x0,(%rsp)
movl   $0x0,0x8(%rsp)
call   1030 <box_apeak_xy@plt>
jmp    139b <flash_5+0x27b>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    12e9 <flash_5+0x1c9>
movl   $0x0,-0xc(%rbp)
cmpl   $0x4,-0xc(%rbp)
jge    13eb <flash_5+0x2cb>
movslq -0xc(%rbp),%rax
cmpl   $0x0,-0x20(%rbp,%rax,4)
jle    13d8 <flash_5+0x2b8>
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%ecx
add    $0xffffffff,%ecx
mov    %ecx,-0x20(%rbp,%rax,4)
jmp    13dd <flash_5+0x2bd>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    13b0 <flash_5+0x290>
mov    -0x4(%rbp),%edi
call   1040 <delay_ms@plt>
jmp    12ce <flash_5+0x1ae>
movl   $0x3,-0x8(%rbp)
movl   $0x1,-0xc(%rbp)
cmpl   $0x4,-0xc(%rbp)
jge    142e <flash_5+0x30e>
mov    $0x4,%ecx
sub    -0xc(%rbp),%ecx
movslq -0xc(%rbp),%rax
mov    %ecx,-0x20(%rbp,%rax,4)
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    1406 <flash_5+0x2e6>
jmp    1433 <flash_5+0x313>
mov    -0x8(%rbp),%eax
mov    %eax,%ecx
add    $0xffffffff,%ecx
mov    %ecx,-0x8(%rbp)
cmp    $0x0,%eax
je     155d <flash_5+0x43d>
movl   $0x1,-0xc(%rbp)
cmpl   $0x4,-0xc(%rbp)
jge    150e <flash_5+0x3ee>
movslq -0xc(%rbp),%rax
cmpl   $0x0,-0x20(%rbp,%rax,4)
jl     14a6 <flash_5+0x386>
mov    -0xc(%rbp),%edi
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%esi
mov    -0xc(%rbp),%edx
mov    $0x7,%ecx
sub    -0xc(%rbp),%ecx
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%r8d
mov    $0x7,%r9d
sub    -0xc(%rbp),%r9d
xor    %eax,%eax
movl   $0x0,(%rsp)
movl   $0x1,0x8(%rsp)
call   1030 <box_apeak_xy@plt>
movslq -0xc(%rbp),%rax
cmpl   $0x0,-0x20(%rbp,%rax,4)
jle    14fb <flash_5+0x3db>
mov    -0xc(%rbp),%edi
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%esi
sub    $0x1,%esi
mov    -0xc(%rbp),%edx
mov    $0x7,%ecx
sub    -0xc(%rbp),%ecx
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%r8d
sub    $0x1,%r8d
mov    $0x7,%r9d
sub    -0xc(%rbp),%r9d
xor    %eax,%eax
movl   $0x0,(%rsp)
movl   $0x0,0x8(%rsp)
call   1030 <box_apeak_xy@plt>
jmp    1500 <flash_5+0x3e0>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    144e <flash_5+0x32e>
movl   $0x1,-0xc(%rbp)
cmpl   $0x4,-0xc(%rbp)
jge    1550 <flash_5+0x430>
movslq -0xc(%rbp),%rax
cmpl   $0x3,-0x20(%rbp,%rax,4)
jge    153d <flash_5+0x41d>
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%ecx
add    $0x1,%ecx
mov    %ecx,-0x20(%rbp,%rax,4)
jmp    1542 <flash_5+0x422>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    1515 <flash_5+0x3f5>
mov    -0x4(%rbp),%edi
call   1040 <delay_ms@plt>
jmp    1433 <flash_5+0x313>
movl   $0x3,-0x8(%rbp)
movl   $0x0,-0xc(%rbp)
cmpl   $0x4,-0xc(%rbp)
jge    1591 <flash_5+0x471>
mov    -0xc(%rbp),%ecx
add    $0x1,%ecx
movslq -0xc(%rbp),%rax
mov    %ecx,-0x20(%rbp,%rax,4)
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    156b <flash_5+0x44b>
jmp    1596 <flash_5+0x476>
mov    -0x8(%rbp),%eax
mov    %eax,%ecx
add    $0xffffffff,%ecx
mov    %ecx,-0x8(%rbp)
cmp    $0x0,%eax
je     16ac <flash_5+0x58c>
movl   $0x1,-0xc(%rbp)
cmpl   $0x4,-0xc(%rbp)
jge    1671 <flash_5+0x551>
movslq -0xc(%rbp),%rax
cmpl   $0x3,-0x20(%rbp,%rax,4)
jle    1609 <flash_5+0x4e9>
mov    -0xc(%rbp),%edi
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%esi
mov    -0xc(%rbp),%edx
mov    $0x7,%ecx
sub    -0xc(%rbp),%ecx
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%r8d
mov    $0x7,%r9d
sub    -0xc(%rbp),%r9d
xor    %eax,%eax
movl   $0x0,(%rsp)
movl   $0x1,0x8(%rsp)
call   1030 <box_apeak_xy@plt>
movslq -0xc(%rbp),%rax
cmpl   $0x3,-0x20(%rbp,%rax,4)
jle    165e <flash_5+0x53e>
mov    -0xc(%rbp),%edi
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%esi
sub    $0x1,%esi
mov    -0xc(%rbp),%edx
mov    $0x7,%ecx
sub    -0xc(%rbp),%ecx
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%r8d
sub    $0x1,%r8d
mov    $0x7,%r9d
sub    -0xc(%rbp),%r9d
xor    %eax,%eax
movl   $0x0,(%rsp)
movl   $0x0,0x8(%rsp)
call   1030 <box_apeak_xy@plt>
jmp    1663 <flash_5+0x543>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    15b1 <flash_5+0x491>
movl   $0x0,-0xc(%rbp)
cmpl   $0x4,-0xc(%rbp)
jge    169f <flash_5+0x57f>
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%ecx
add    $0x1,%ecx
mov    %ecx,-0x20(%rbp,%rax,4)
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    1678 <flash_5+0x558>
mov    -0x4(%rbp),%edi
call   1040 <delay_ms@plt>
jmp    1596 <flash_5+0x476>
movl   $0x3,-0x8(%rbp)
movl   $0x3,-0xc(%rbp)
cmpl   $0x6,-0xc(%rbp)
jge    16e1 <flash_5+0x5c1>
mov    -0xc(%rbp),%ecx
mov    -0xc(%rbp),%eax
sub    $0x2,%eax
cltq
mov    %ecx,-0x20(%rbp,%rax,4)
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    16ba <flash_5+0x59a>
jmp    16e6 <flash_5+0x5c6>
mov    -0x8(%rbp),%eax
mov    %eax,%ecx
add    $0xffffffff,%ecx
mov    %ecx,-0x8(%rbp)
cmp    $0x0,%eax
je     17ed <flash_5+0x6cd>
movl   $0x1,-0xc(%rbp)
cmpl   $0x4,-0xc(%rbp)
jge    179e <flash_5+0x67e>
mov    -0xc(%rbp),%edi
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%esi
mov    -0xc(%rbp),%edx
mov    $0x7,%ecx
sub    -0xc(%rbp),%ecx
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%r8d
mov    $0x7,%r9d
sub    -0xc(%rbp),%r9d
xor    %eax,%eax
movl   $0x0,(%rsp)
movl   $0x1,0x8(%rsp)
call   1030 <box_apeak_xy@plt>
mov    -0xc(%rbp),%edi
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%esi
add    $0x1,%esi
mov    -0xc(%rbp),%edx
mov    $0x7,%ecx
sub    -0xc(%rbp),%ecx
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%r8d
add    $0x1,%r8d
mov    $0x7,%r9d
sub    -0xc(%rbp),%r9d
xor    %eax,%eax
movl   $0x0,(%rsp)
movl   $0x0,0x8(%rsp)
call   1030 <box_apeak_xy@plt>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    1701 <flash_5+0x5e1>
movl   $0x0,-0xc(%rbp)
cmpl   $0x4,-0xc(%rbp)
jge    17e0 <flash_5+0x6c0>
movslq -0xc(%rbp),%rax
cmpl   $0x3,-0x20(%rbp,%rax,4)
jle    17cd <flash_5+0x6ad>
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%ecx
add    $0xffffffff,%ecx
mov    %ecx,-0x20(%rbp,%rax,4)
jmp    17d2 <flash_5+0x6b2>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    17a5 <flash_5+0x685>
mov    -0x4(%rbp),%edi
call   1040 <delay_ms@plt>
jmp    16e6 <flash_5+0x5c6>
movl   $0x3,-0x8(%rbp)
movl   $0x0,-0xc(%rbp)
cmpl   $0x4,-0xc(%rbp)
jge    1823 <flash_5+0x703>
mov    $0x5,%ecx
sub    -0xc(%rbp),%ecx
movslq -0xc(%rbp),%rax
mov    %ecx,-0x20(%rbp,%rax,4)
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    17fb <flash_5+0x6db>
jmp    1828 <flash_5+0x708>
mov    -0x8(%rbp),%eax
mov    %eax,%ecx
add    $0xffffffff,%ecx
mov    %ecx,-0x8(%rbp)
cmp    $0x0,%eax
je     1952 <flash_5+0x832>
movl   $0x1,-0xc(%rbp)
cmpl   $0x4,-0xc(%rbp)
jge    1903 <flash_5+0x7e3>
movslq -0xc(%rbp),%rax
cmpl   $0x4,-0x20(%rbp,%rax,4)
jge    189b <flash_5+0x77b>
mov    -0xc(%rbp),%edi
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%esi
mov    -0xc(%rbp),%edx
mov    $0x7,%ecx
sub    -0xc(%rbp),%ecx
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%r8d
mov    $0x7,%r9d
sub    -0xc(%rbp),%r9d
xor    %eax,%eax
movl   $0x0,(%rsp)
movl   $0x1,0x8(%rsp)
call   1030 <box_apeak_xy@plt>
movslq -0xc(%rbp),%rax
cmpl   $0x3,-0x20(%rbp,%rax,4)
jge    18f0 <flash_5+0x7d0>
mov    -0xc(%rbp),%edi
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%esi
add    $0x1,%esi
mov    -0xc(%rbp),%edx
mov    $0x7,%ecx
sub    -0xc(%rbp),%ecx
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%r8d
add    $0x1,%r8d
mov    $0x7,%r9d
sub    -0xc(%rbp),%r9d
xor    %eax,%eax
movl   $0x0,(%rsp)
movl   $0x0,0x8(%rsp)
call   1030 <box_apeak_xy@plt>
jmp    18f5 <flash_5+0x7d5>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    1843 <flash_5+0x723>
movl   $0x0,-0xc(%rbp)
cmpl   $0x4,-0xc(%rbp)
jge    1945 <flash_5+0x825>
movslq -0xc(%rbp),%rax
cmpl   $0x0,-0x20(%rbp,%rax,4)
jle    1932 <flash_5+0x812>
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%ecx
add    $0xffffffff,%ecx
mov    %ecx,-0x20(%rbp,%rax,4)
jmp    1937 <flash_5+0x817>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    190a <flash_5+0x7ea>
mov    -0x4(%rbp),%edi
call   1040 <delay_ms@plt>
jmp    1828 <flash_5+0x708>
movl   $0x3,-0x8(%rbp)
movl   $0x0,-0xc(%rbp)
cmpl   $0x4,-0xc(%rbp)
jge    1988 <flash_5+0x868>
mov    $0x3,%ecx
sub    -0xc(%rbp),%ecx
movslq -0xc(%rbp),%rax
mov    %ecx,-0x20(%rbp,%rax,4)
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    1960 <flash_5+0x840>
movl   $0x2,-0x20(%rbp)
mov    -0x8(%rbp),%eax
mov    %eax,%ecx
add    $0xffffffff,%ecx
mov    %ecx,-0x8(%rbp)
cmp    $0x0,%eax
je     1abd <flash_5+0x99d>
movl   $0x0,-0xc(%rbp)
cmpl   $0x3,-0xc(%rbp)
jge    1a6a <flash_5+0x94a>
movslq -0xc(%rbp),%rax
cmpl   $0x0,-0x20(%rbp,%rax,4)
jl     1a02 <flash_5+0x8e2>
mov    -0xc(%rbp),%edi
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%esi
mov    -0xc(%rbp),%edx
mov    $0x7,%ecx
sub    -0xc(%rbp),%ecx
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%r8d
mov    $0x7,%r9d
sub    -0xc(%rbp),%r9d
xor    %eax,%eax
movl   $0x0,(%rsp)
movl   $0x1,0x8(%rsp)
call   1030 <box_apeak_xy@plt>
movslq -0xc(%rbp),%rax
cmpl   $0x0,-0x20(%rbp,%rax,4)
jl     1a57 <flash_5+0x937>
mov    -0xc(%rbp),%edi
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%esi
add    $0x1,%esi
mov    -0xc(%rbp),%edx
mov    $0x7,%ecx
sub    -0xc(%rbp),%ecx
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%r8d
add    $0x1,%r8d
mov    $0x7,%r9d
sub    -0xc(%rbp),%r9d
xor    %eax,%eax
movl   $0x0,(%rsp)
movl   $0x0,0x8(%rsp)
call   1030 <box_apeak_xy@plt>
jmp    1a5c <flash_5+0x93c>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    19aa <flash_5+0x88a>
movl   $0x0,-0xc(%rbp)
cmpl   $0x4,-0xc(%rbp)
jge    1ab0 <flash_5+0x990>
mov    -0xc(%rbp),%eax
mov    $0x5,%ecx
sub    -0x8(%rbp),%ecx
cmp    %ecx,%eax
jge    1a9d <flash_5+0x97d>
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%ecx
add    $0xffffffff,%ecx
mov    %ecx,-0x20(%rbp,%rax,4)
jmp    1aa2 <flash_5+0x982>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    1a71 <flash_5+0x951>
mov    -0x4(%rbp),%edi
call   1040 <delay_ms@plt>
jmp    198f <flash_5+0x86f>
movl   $0xa,-0x8(%rbp)
movl   $0x0,-0xc(%rbp)
cmpl   $0x4,-0xc(%rbp)
jge    1af1 <flash_5+0x9d1>
mov    -0xc(%rbp),%ecx
sub    $0x2,%ecx
movslq -0xc(%rbp),%rax
mov    %ecx,-0x20(%rbp,%rax,4)
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    1acb <flash_5+0x9ab>
jmp    1af6 <flash_5+0x9d6>
mov    -0x8(%rbp),%eax
mov    %eax,%ecx
add    $0xffffffff,%ecx
mov    %ecx,-0x8(%rbp)
cmp    $0x0,%eax
je     1c20 <flash_5+0xb00>
movl   $0x0,-0xc(%rbp)
cmpl   $0x4,-0xc(%rbp)
jge    1bd1 <flash_5+0xab1>
movslq -0xc(%rbp),%rax
cmpl   $0x0,-0x20(%rbp,%rax,4)
jl     1b69 <flash_5+0xa49>
mov    -0xc(%rbp),%edi
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%esi
mov    -0xc(%rbp),%edx
mov    $0x7,%ecx
sub    -0xc(%rbp),%ecx
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%r8d
mov    $0x7,%r9d
sub    -0xc(%rbp),%r9d
xor    %eax,%eax
movl   $0x0,(%rsp)
movl   $0x1,0x8(%rsp)
call   1030 <box_apeak_xy@plt>
movslq -0xc(%rbp),%rax
cmpl   $0x0,-0x20(%rbp,%rax,4)
jl     1bbe <flash_5+0xa9e>
mov    -0xc(%rbp),%edi
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%esi
sub    $0x1,%esi
mov    -0xc(%rbp),%edx
mov    $0x7,%ecx
sub    -0xc(%rbp),%ecx
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%r8d
sub    $0x1,%r8d
mov    $0x7,%r9d
sub    -0xc(%rbp),%r9d
xor    %eax,%eax
movl   $0x0,(%rsp)
movl   $0x0,0x8(%rsp)
call   1030 <box_apeak_xy@plt>
jmp    1bc3 <flash_5+0xaa3>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    1b11 <flash_5+0x9f1>
movl   $0x0,-0xc(%rbp)
cmpl   $0x4,-0xc(%rbp)
jge    1c13 <flash_5+0xaf3>
movslq -0xc(%rbp),%rax
cmpl   $0x7,-0x20(%rbp,%rax,4)
jge    1c00 <flash_5+0xae0>
movslq -0xc(%rbp),%rax
mov    -0x20(%rbp,%rax,4),%ecx
add    $0x1,%ecx
mov    %ecx,-0x20(%rbp,%rax,4)
jmp    1c05 <flash_5+0xae5>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    1bd8 <flash_5+0xab8>
mov    -0x4(%rbp),%edi
call   1040 <delay_ms@plt>
jmp    1af6 <flash_5+0x9d6>
add    $0x30,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<flash_5>:
push   %rbp
push   %r15
push   %r14
push   %r12
push   %rbx
sub    $0x10,%rsp
movdqa 0xecc(%rip),%xmm1
mov    $0xfffffff8,%ebp
jmp    116c <flash_5+0x4c>
nopl   0x0(%rax,%rax,1)
movdqa %xmm1,%xmm0
pcmpgtd 0xec4(%rip),%xmm0
paddd  %xmm0,%xmm1
movdqa %xmm1,(%rsp)
mov    $0x4b,%edi
call   1040 <delay_ms@plt>
movdqa (%rsp),%xmm1
inc    %ebp
je     132d <flash_5+0x20d>
pshufd $0xff,%xmm1,%xmm0
movd   %xmm0,%ebx
cmp    $0x7,%ebx
movdqa %xmm1,(%rsp)
jg     11d5 <flash_5+0xb5>
xor    %edi,%edi
mov    %ebx,%esi
xor    %edx,%edx
mov    $0x7,%ecx
mov    %ebx,%r8d
mov    $0x7,%r9d
push   $0x1
push   $0x0
call   1030 <box_apeak_xy@plt>
movdqa 0x10(%rsp),%xmm1
add    $0x10,%rsp
cmp    $0x7,%ebx
je     11d5 <flash_5+0xb5>
add    $0x1,%ebx
xor    %edi,%edi
mov    %ebx,%esi
xor    %edx,%edx
mov    $0x7,%ecx
mov    %ebx,%r8d
mov    $0x7,%r9d
push   $0x0
push   $0x0
call   1030 <box_apeak_xy@plt>
movdqa 0x10(%rsp),%xmm1
add    $0x10,%rsp
pshufd $0xee,%xmm1,%xmm0
movd   %xmm0,%ebx
cmp    $0x7,%ebx
jg     1245 <flash_5+0x125>
mov    $0x1,%edi
mov    %ebx,%esi
mov    $0x1,%edx
mov    $0x6,%ecx
mov    %ebx,%r8d
mov    $0x6,%r9d
push   $0x1
push   $0x0
call   1030 <box_apeak_xy@plt>
movdqa 0x10(%rsp),%xmm1
add    $0x10,%rsp
cmp    $0x7,%ebx
je     1245 <flash_5+0x125>
add    $0x1,%ebx
mov    $0x1,%edi
mov    %ebx,%esi
mov    $0x1,%edx
mov    $0x6,%ecx
mov    %ebx,%r8d
mov    $0x6,%r9d
push   $0x0
push   $0x0
call   1030 <box_apeak_xy@plt>
movdqa 0x10(%rsp),%xmm1
add    $0x10,%rsp
pshufd $0x55,%xmm1,%xmm0
movd   %xmm0,%ebx
cmp    $0x7,%ebx
jg     12b5 <flash_5+0x195>
mov    $0x2,%edi
mov    %ebx,%esi
mov    $0x2,%edx
mov    $0x5,%ecx
mov    %ebx,%r8d
mov    $0x5,%r9d
push   $0x1
push   $0x0
call   1030 <box_apeak_xy@plt>
movdqa 0x10(%rsp),%xmm1
add    $0x10,%rsp
cmp    $0x7,%ebx
je     12b5 <flash_5+0x195>
add    $0x1,%ebx
mov    $0x2,%edi
mov    %ebx,%esi
mov    $0x2,%edx
mov    $0x5,%ecx
mov    %ebx,%r8d
mov    $0x5,%r9d
push   $0x0
push   $0x0
call   1030 <box_apeak_xy@plt>
movdqa 0x10(%rsp),%xmm1
add    $0x10,%rsp
movd   %xmm1,%ebx
cmp    $0x7,%ebx
jg     1140 <flash_5+0x20>
mov    $0x3,%edi
mov    %ebx,%esi
mov    $0x3,%edx
mov    $0x4,%ecx
mov    %ebx,%r8d
mov    $0x4,%r9d
push   $0x1
push   $0x0
call   1030 <box_apeak_xy@plt>
movdqa 0x10(%rsp),%xmm1
add    $0x10,%rsp
cmp    $0x7,%ebx
je     1140 <flash_5+0x20>
add    $0x1,%ebx
mov    $0x3,%edi
mov    %ebx,%esi
mov    $0x3,%edx
mov    $0x4,%ecx
mov    %ebx,%r8d
mov    $0x4,%r9d
push   $0x0
push   $0x0
call   1030 <box_apeak_xy@plt>
movdqa 0x10(%rsp),%xmm1
add    $0x10,%rsp
jmp    1140 <flash_5+0x20>
mov    $0x4,%r14d
mov    $0x3,%r15d
mov    $0x2,%ebx
mov    $0xfffffffd,%ebp
jmp    1381 <flash_5+0x261>
cs nopw 0x0(%rax,%rax,1)
nop
xor    %eax,%eax
test   %r14d,%r14d
setg   %al
sub    %eax,%r14d
xor    %eax,%eax
test   %r15d,%r15d
setg   %al
sub    %eax,%r15d
xor    %eax,%eax
test   %ebx,%ebx
setg   %al
sub    %eax,%ebx
mov    $0x4b,%edi
call   1040 <delay_ms@plt>
inc    %ebp
je     14a1 <flash_5+0x381>
cmp    $0x3,%r14d
jg     13de <flash_5+0x2be>
mov    $0x1,%edi
mov    %r14d,%esi
mov    $0x1,%edx
mov    $0x6,%ecx
mov    %r14d,%r8d
mov    $0x6,%r9d
push   $0x1
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
cmp    $0x3,%r14d
je     13de <flash_5+0x2be>
lea    0x1(%r14),%esi
mov    $0x1,%edi
mov    $0x1,%edx
mov    $0x6,%ecx
mov    %esi,%r8d
mov    $0x6,%r9d
push   $0x0
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
cmp    $0x3,%r15d
jg     143b <flash_5+0x31b>
mov    $0x2,%edi
mov    %r15d,%esi
mov    $0x2,%edx
mov    $0x5,%ecx
mov    %r15d,%r8d
mov    $0x5,%r9d
push   $0x1
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
cmp    $0x3,%r15d
je     143b <flash_5+0x31b>
lea    0x1(%r15),%esi
mov    $0x2,%edi
mov    $0x2,%edx
mov    $0x5,%ecx
mov    %esi,%r8d
mov    $0x5,%r9d
push   $0x0
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
cmp    $0x3,%ebx
jg     1350 <flash_5+0x230>
mov    $0x3,%edi
mov    %ebx,%esi
mov    $0x3,%edx
mov    $0x4,%ecx
mov    %ebx,%r8d
mov    $0x4,%r9d
push   $0x1
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
cmp    $0x3,%ebx
je     1350 <flash_5+0x230>
lea    0x1(%rbx),%esi
mov    $0x3,%edi
mov    $0x3,%edx
mov    $0x4,%ecx
mov    %esi,%r8d
mov    $0x4,%r9d
push   $0x0
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
jmp    1350 <flash_5+0x230>
mov    $0x2,%r14d
mov    $0x1,%ebx
mov    $0xfffffffd,%ebp
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
mov    $0x1,%edi
mov    $0x3,%esi
mov    $0x1,%edx
mov    $0x6,%ecx
mov    $0x3,%r8d
mov    $0x6,%r9d
push   $0x1
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
mov    $0x1,%edi
mov    $0x2,%esi
mov    $0x1,%edx
mov    $0x6,%ecx
mov    $0x2,%r8d
mov    $0x6,%r9d
push   $0x0
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
mov    $0x2,%edi
mov    %r14d,%esi
mov    $0x2,%edx
mov    $0x5,%ecx
mov    %r14d,%r8d
mov    $0x5,%r9d
push   $0x1
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
lea    -0x1(%r14),%esi
mov    $0x2,%edi
mov    $0x2,%edx
mov    $0x5,%ecx
mov    %esi,%r8d
mov    $0x5,%r9d
push   $0x0
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
mov    $0x3,%edi
mov    %ebx,%esi
mov    $0x3,%edx
mov    $0x4,%ecx
mov    %ebx,%r8d
mov    $0x4,%r9d
push   $0x1
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
lea    -0x1(%rbx),%esi
mov    $0x3,%edi
mov    $0x3,%edx
mov    $0x4,%ecx
mov    %esi,%r8d
mov    $0x4,%r9d
push   $0x0
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
cmp    $0x3,%r14d
adc    $0x0,%r14d
cmp    $0x3,%ebx
adc    $0x0,%ebx
mov    $0x4b,%edi
call   1040 <delay_ms@plt>
inc    %ebp
jne    14c0 <flash_5+0x3a0>
mov    $0x3,%edi
mov    $0x4,%esi
mov    $0x3,%edx
mov    $0x4,%ecx
mov    $0x4,%r8d
mov    $0x4,%r9d
push   $0x1
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
mov    $0x3,%edi
mov    $0x3,%esi
mov    $0x3,%edx
mov    $0x4,%ecx
mov    $0x3,%r8d
mov    $0x4,%r9d
push   $0x0
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
mov    $0x4b,%edi
call   1040 <delay_ms@plt>
mov    $0x2,%ebp
jmp    1700 <flash_5+0x5e0>
nopl   0x0(%rax,%rax,1)
mov    $0x2,%edi
mov    %r15d,%esi
mov    $0x2,%edx
mov    $0x5,%ecx
mov    %r15d,%r8d
mov    $0x5,%r9d
push   $0x1
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
mov    $0x2,%edi
mov    %ebx,%esi
mov    $0x2,%edx
mov    $0x5,%ecx
mov    %ebx,%r8d
mov    $0x5,%r9d
push   $0x0
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
mov    $0x3,%edi
mov    %r14d,%esi
mov    $0x3,%edx
mov    $0x4,%ecx
mov    %r14d,%r8d
mov    $0x4,%r9d
push   $0x1
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
mov    $0x3,%edi
mov    %r15d,%esi
mov    $0x3,%edx
mov    $0x4,%ecx
mov    %r15d,%r8d
mov    $0x4,%r9d
push   $0x0
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
mov    $0x4b,%edi
call   1040 <delay_ms@plt>
mov    %ebx,%ebp
cmp    $0x4,%ebx
je     1767 <flash_5+0x647>
lea    0x2(%rbp),%r15d
lea    0x3(%rbp),%r14d
lea    0x1(%rbp),%ebx
cmp    $0x4,%ebx
jb     1650 <flash_5+0x530>
mov    $0x1,%edi
mov    %ebx,%esi
mov    $0x1,%edx
mov    $0x6,%ecx
mov    %ebx,%r8d
mov    $0x6,%r9d
push   $0x1
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
mov    $0x1,%edi
mov    %ebp,%esi
mov    $0x1,%edx
mov    $0x6,%ecx
mov    %ebp,%r8d
mov    $0x6,%r9d
push   $0x0
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
jmp    1650 <flash_5+0x530>
mov    $0x4,%r14d
mov    $0x5,%ebx
mov    $0xfffffffd,%ebp
nopw   0x0(%rax,%rax,1)
mov    $0x1,%edi
mov    $0x3,%esi
mov    $0x1,%edx
mov    $0x6,%ecx
mov    $0x3,%r8d
mov    $0x6,%r9d
push   $0x1
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
mov    $0x1,%edi
mov    $0x4,%esi
mov    $0x1,%edx
mov    $0x6,%ecx
mov    $0x4,%r8d
mov    $0x6,%r9d
push   $0x0
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
mov    $0x2,%edi
mov    %r14d,%esi
mov    $0x2,%edx
mov    $0x5,%ecx
mov    %r14d,%r8d
mov    $0x5,%r9d
push   $0x1
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
lea    0x1(%r14),%esi
mov    $0x2,%edi
mov    $0x2,%edx
mov    $0x5,%ecx
mov    %esi,%r8d
mov    $0x5,%r9d
push   $0x0
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
mov    $0x3,%edi
mov    %ebx,%esi
mov    $0x3,%edx
mov    $0x4,%ecx
mov    %ebx,%r8d
mov    $0x4,%r9d
push   $0x1
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
lea    0x1(%rbx),%esi
mov    $0x3,%edi
mov    $0x3,%edx
mov    $0x4,%ecx
mov    %esi,%r8d
mov    $0x4,%r9d
push   $0x0
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
xor    %eax,%eax
cmp    $0x4,%r14d
setge  %al
sub    %eax,%r14d
xor    %eax,%eax
cmp    $0x4,%ebx
setge  %al
sub    %eax,%ebx
mov    $0x4b,%edi
call   1040 <delay_ms@plt>
inc    %ebp
jne    1780 <flash_5+0x660>
mov    $0x4,%r14d
mov    $0x3,%r15d
mov    $0x2,%ebx
mov    $0xfffffffd,%ebp
jmp    18f1 <flash_5+0x7d1>
nopw   0x0(%rax,%rax,1)
xor    %eax,%eax
test   %r14d,%r14d
setg   %al
sub    %eax,%r14d
xor    %eax,%eax
test   %r15d,%r15d
setg   %al
sub    %eax,%r15d
xor    %eax,%eax
test   %ebx,%ebx
setg   %al
sub    %eax,%ebx
mov    $0x4b,%edi
call   1040 <delay_ms@plt>
inc    %ebp
je     1a11 <flash_5+0x8f1>
cmp    $0x3,%r14d
jg     194e <flash_5+0x82e>
mov    $0x1,%edi
mov    %r14d,%esi
mov    $0x1,%edx
mov    $0x6,%ecx
mov    %r14d,%r8d
mov    $0x6,%r9d
push   $0x1
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
cmp    $0x3,%r14d
je     194e <flash_5+0x82e>
lea    0x1(%r14),%esi
mov    $0x1,%edi
mov    $0x1,%edx
mov    $0x6,%ecx
mov    %esi,%r8d
mov    $0x6,%r9d
push   $0x0
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
cmp    $0x3,%r15d
jg     19ab <flash_5+0x88b>
mov    $0x2,%edi
mov    %r15d,%esi
mov    $0x2,%edx
mov    $0x5,%ecx
mov    %r15d,%r8d
mov    $0x5,%r9d
push   $0x1
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
cmp    $0x3,%r15d
je     19ab <flash_5+0x88b>
lea    0x1(%r15),%esi
mov    $0x2,%edi
mov    $0x2,%edx
mov    $0x5,%ecx
mov    %esi,%r8d
mov    $0x5,%r9d
push   $0x0
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
cmp    $0x3,%ebx
jg     18c0 <flash_5+0x7a0>
mov    $0x3,%edi
mov    %ebx,%esi
mov    $0x3,%edx
mov    $0x4,%ecx
mov    %ebx,%r8d
mov    $0x4,%r9d
push   $0x1
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
cmp    $0x3,%ebx
je     18c0 <flash_5+0x7a0>
lea    0x1(%rbx),%esi
mov    $0x3,%edi
mov    $0x3,%edx
mov    $0x4,%ecx
mov    %esi,%r8d
mov    $0x4,%r9d
push   $0x0
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
jmp    18c0 <flash_5+0x7a0>
xor    %ebp,%ebp
jmp    1a38 <flash_5+0x918>
cs nopw 0x0(%rax,%rax,1)
nop
mov    $0x4b,%edi
call   1040 <delay_ms@plt>
add    $0xffffffffffffffff,%rbp
cmp    $0xfffffffffffffffd,%rbp
je     1b38 <flash_5+0xa18>
lea    0x2(%rbp),%rbx
test   %ebx,%ebx
js     1a83 <flash_5+0x963>
xor    %edi,%edi
mov    %ebx,%esi
xor    %edx,%edx
mov    $0x7,%ecx
mov    %ebx,%r8d
mov    $0x7,%r9d
push   $0x1
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
lea    0x3(%rbp),%esi
xor    %edi,%edi
xor    %edx,%edx
mov    $0x7,%ecx
mov    %esi,%r8d
mov    $0x7,%r9d
push   $0x0
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
lea    0x1(%rbp),%r14
test   %ebx,%ebx
js     1ada <flash_5+0x9ba>
mov    $0x1,%edi
mov    %ebx,%esi
mov    $0x1,%edx
mov    $0x6,%ecx
mov    %ebx,%r8d
mov    $0x6,%r9d
push   $0x1
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
lea    0x3(%rbp),%esi
mov    $0x1,%edi
mov    $0x1,%edx
mov    $0x6,%ecx
mov    %esi,%r8d
mov    $0x6,%r9d
push   $0x0
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
test   %r14d,%r14d
js     1a20 <flash_5+0x900>
mov    $0x2,%edi
mov    %r14d,%esi
mov    $0x2,%edx
mov    $0x5,%ecx
mov    %r14d,%r8d
mov    $0x5,%r9d
push   $0x1
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
lea    0x2(%rbp),%esi
mov    $0x2,%edi
mov    $0x2,%edx
mov    $0x5,%ecx
mov    %esi,%r8d
mov    $0x5,%r9d
push   $0x0
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
jmp    1a20 <flash_5+0x900>
mov    $0xfffffffe,%r14d
mov    $0xffffffff,%r15d
xor    %r12d,%r12d
mov    $0x1,%ebx
mov    $0xfffffff6,%ebp
jmp    1c39 <flash_5+0xb19>
cs nopw 0x0(%rax,%rax,1)
mov    $0x2,%edi
mov    %r12d,%esi
mov    $0x2,%edx
mov    $0x5,%ecx
mov    %r12d,%r8d
mov    $0x5,%r9d
push   $0x1
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
lea    -0x1(%r12),%esi
mov    $0x2,%edi
mov    $0x2,%edx
mov    $0x5,%ecx
mov    %esi,%r8d
mov    $0x5,%r9d
push   $0x0
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
mov    $0x3,%edi
mov    %ebx,%esi
mov    $0x3,%edx
mov    $0x4,%ecx
mov    %ebx,%r8d
mov    $0x4,%r9d
push   $0x1
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
lea    -0x1(%rbx),%esi
mov    $0x3,%edi
mov    $0x3,%edx
mov    $0x4,%ecx
mov    %esi,%r8d
mov    $0x4,%r9d
push   $0x0
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
xor    %eax,%eax
cmp    $0x7,%r14d
setl   %al
add    %eax,%r14d
xor    %eax,%eax
cmp    $0x7,%r15d
setl   %al
add    %eax,%r15d
cmp    $0x7,%r12d
adc    $0x0,%r12d
cmp    $0x7,%ebx
adc    $0x0,%ebx
mov    $0x4b,%edi
call   1040 <delay_ms@plt>
inc    %ebp
je     1ce2 <flash_5+0xbc2>
test   %r14d,%r14d
js     1c83 <flash_5+0xb63>
xor    %edi,%edi
mov    %r14d,%esi
xor    %edx,%edx
mov    $0x7,%ecx
mov    %r14d,%r8d
mov    $0x7,%r9d
push   $0x1
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
lea    -0x1(%r14),%esi
xor    %edi,%edi
xor    %edx,%edx
mov    $0x7,%ecx
mov    %esi,%r8d
mov    $0x7,%r9d
push   $0x0
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
test   %r15d,%r15d
js     1b60 <flash_5+0xa40>
mov    $0x1,%edi
mov    %r15d,%esi
mov    $0x1,%edx
mov    $0x6,%ecx
mov    %r15d,%r8d
mov    $0x6,%r9d
push   $0x1
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
lea    -0x1(%r15),%esi
mov    $0x1,%edi
mov    $0x1,%edx
mov    $0x6,%ecx
mov    %esi,%r8d
mov    $0x6,%r9d
push   $0x0
push   $0x0
call   1030 <box_apeak_xy@plt>
add    $0x10,%rsp
jmp    1b60 <flash_5+0xa40>
add    $0x10,%rsp
pop    %rbx
pop    %r12
pop    %r14
pop    %r15
pop    %rbp
ret

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

LLVM IR (-O2):
define void @flash_5() {
br label %1
1: ; preds = %0, %39
%2 = phi i32 [ 7, %0 ], [ %44, %39 ]
%3 = phi <4 x i32> [ <i32 10, i32 9, i32 8, i32 7>, %0 ], [ %42, %39 ]
%4 = extractelement <4 x i32> %3, i64 3
%5 = icmp slt i32 %4, 8
br i1 %5, label %6, label %12
6: ; preds = %1
%7 = tail call i32 @box_apeak_xy(i32 0, i32 %4, i32 0, i32 7, i32 %4, i32 7, i32 0, i32 1)
%8 = icmp eq i32 %4, 7
br i1 %8, label %12, label %9
9: ; preds = %6
%10 = add nsw i32 %4, 1
%11 = tail call i32 @box_apeak_xy(i32 0, i32 %10, i32 0, i32 7, i32 %10, i32 7, i32 0, i32 0)
br label %12
12: ; preds = %1, %6, %9
%13 = extractelement <4 x i32> %3, i64 2
%14 = icmp slt i32 %13, 8
br i1 %14, label %15, label %21
15: ; preds = %12
%16 = tail call i32 @box_apeak_xy(i32 1, i32 %13, i32 1, i32 6, i32 %13, i32 6, i32 0, i32 1)
%17 = icmp eq i32 %13, 7
br i1 %17, label %21, label %18
18: ; preds = %15
%19 = add nsw i32 %13, 1
%20 = tail call i32 @box_apeak_xy(i32 1, i32 %19, i32 1, i32 6, i32 %19, i32 6, i32 0, i32 0)
br label %21
21: ; preds = %18, %15, %12
%22 = extractelement <4 x i32> %3, i64 1
%23 = icmp slt i32 %22, 8
br i1 %23, label %24, label %30
24: ; preds = %21
%25 = tail call i32 @box_apeak_xy(i32 2, i32 %22, i32 2, i32 5, i32 %22, i32 5, i32 0, i32 1)
%26 = icmp eq i32 %22, 7
br i1 %26, label %30, label %27
27: ; preds = %24
%28 = add nsw i32 %22, 1
%29 = tail call i32 @box_apeak_xy(i32 2, i32 %28, i32 2, i32 5, i32 %28, i32 5, i32 0, i32 0)
br label %30
30: ; preds = %27, %24, %21
%31 = extractelement <4 x i32> %3, i64 0
%32 = icmp slt i32 %31, 8
br i1 %32, label %33, label %39
33: ; preds = %30
%34 = tail call i32 @box_apeak_xy(i32 3, i32 %31, i32 3, i32 4, i32 %31, i32 4, i32 0, i32 1)
%35 = icmp eq i32 %31, 7
br i1 %35, label %39, label %36
36: ; preds = %33
%37 = add nsw i32 %31, 1
%38 = tail call i32 @box_apeak_xy(i32 3, i32 %37, i32 3, i32 4, i32 %37, i32 4, i32 0, i32 0)
br label %39
39: ; preds = %36, %33, %30
%40 = icmp sgt <4 x i32> %3, <i32 3, i32 3, i32 3, i32 3>
%41 = sext <4 x i1> %40 to <4 x i32>
%42 = add nsw <4 x i32> %3, %41
%43 = tail call i32 @delay_ms(i32 75)
%44 = add nsw i32 %2, -1
%45 = icmp eq i32 %2, 0
br i1 %45, label %46, label %1
46: ; preds = %39, %74
%47 = phi i32 [ %83, %74 ], [ 2, %39 ]
%48 = phi i32 [ %80, %74 ], [ 3, %39 ]
%49 = phi i32 [ %77, %74 ], [ 4, %39 ]
%50 = phi i32 [ %85, %74 ], [ 2, %39 ]
%51 = icmp slt i32 %49, 4
br i1 %51, label %52, label %58
52: ; preds = %46
%53 = tail call i32 @box_apeak_xy(i32 1, i32 %49, i32 1, i32 6, i32 %49, i32 6, i32 0, i32 1)
%54 = icmp eq i32 %49, 3
br i1 %54, label %58, label %55
55: ; preds = %52
%56 = add nsw i32 %49, 1
%57 = tail call i32 @box_apeak_xy(i32 1, i32 %56, i32 1, i32 6, i32 %56, i32 6, i32 0, i32 0)
br label %58
58: ; preds = %46, %52, %55
%59 = icmp slt i32 %48, 4
br i1 %59, label %60, label %66
60: ; preds = %58
%61 = tail call i32 @box_apeak_xy(i32 2, i32 %48, i32 2, i32 5, i32 %48, i32 5, i32 0, i32 1)
%62 = icmp eq i32 %48, 3
br i1 %62, label %66, label %63
63: ; preds = %60
%64 = add nsw i32 %48, 1
%65 = tail call i32 @box_apeak_xy(i32 2, i32 %64, i32 2, i32 5, i32 %64, i32 5, i32 0, i32 0)
br label %66
66: ; preds = %63, %60, %58
%67 = icmp slt i32 %47, 4
br i1 %67, label %68, label %74
68: ; preds = %66
%69 = tail call i32 @box_apeak_xy(i32 3, i32 %47, i32 3, i32 4, i32 %47, i32 4, i32 0, i32 1)
%70 = icmp eq i32 %47, 3
br i1 %70, label %74, label %71
71: ; preds = %68
%72 = add nsw i32 %47, 1
%73 = tail call i32 @box_apeak_xy(i32 3, i32 %72, i32 3, i32 4, i32 %72, i32 4, i32 0, i32 0)
br label %74
74: ; preds = %66, %68, %71
%75 = icmp sgt i32 %49, 0
%76 = sext i1 %75 to i32
%77 = add nsw i32 %49, %76
%78 = icmp sgt i32 %48, 0
%79 = sext i1 %78 to i32
%80 = add nsw i32 %48, %79
%81 = icmp sgt i32 %47, 0
%82 = sext i1 %81 to i32
%83 = add nsw i32 %47, %82
%84 = tail call i32 @delay_ms(i32 75)
%85 = add nsw i32 %50, -1
%86 = icmp eq i32 %50, 0
br i1 %86, label %87, label %46
87: ; preds = %74, %87
%88 = phi i32 [ %104, %87 ], [ 1, %74 ]
%89 = phi i32 [ %101, %87 ], [ 2, %74 ]
%90 = phi i32 [ %106, %87 ], [ 2, %74 ]
%91 = tail call i32 @box_apeak_xy(i32 1, i32 3, i32 1, i32 6, i32 3, i32 6, i32 0, i32 1)
%92 = tail call i32 @box_apeak_xy(i32 1, i32 2, i32 1, i32 6, i32 2, i32 6, i32 0, i32 0)
%93 = tail call i32 @box_apeak_xy(i32 2, i32 %89, i32 2, i32 5, i32 %89, i32 5, i32 0, i32 1)
%94 = add nsw i32 %89, -1
%95 = tail call i32 @box_apeak_xy(i32 2, i32 %94, i32 2, i32 5, i32 %94, i32 5, i32 0, i32 0)
%96 = tail call i32 @box_apeak_xy(i32 3, i32 %88, i32 3, i32 4, i32 %88, i32 4, i32 0, i32 1)
%97 = add nsw i32 %88, -1
%98 = tail call i32 @box_apeak_xy(i32 3, i32 %97, i32 3, i32 4, i32 %97, i32 4, i32 0, i32 0)
%99 = icmp ult i32 %89, 3
%100 = zext i1 %99 to i32
%101 = add nuw nsw i32 %89, %100
%102 = icmp ult i32 %88, 3
%103 = zext i1 %102 to i32
%104 = add nuw nsw i32 %88, %103
%105 = tail call i32 @delay_ms(i32 75)
%106 = add nsw i32 %90, -1
%107 = icmp eq i32 %90, 0
br i1 %107, label %108, label %87
108: ; preds = %87
%109 = tail call i32 @box_apeak_xy(i32 3, i32 4, i32 3, i32 4, i32 4, i32 4, i32 0, i32 1)
%110 = tail call i32 @box_apeak_xy(i32 3, i32 3, i32 3, i32 4, i32 3, i32 4, i32 0, i32 0)
%111 = tail call i32 @delay_ms(i32 75)
br label %112
112: ; preds = %108, %122
%113 = phi i32 [ %131, %122 ], [ 5, %108 ]
%114 = phi i32 [ %130, %122 ], [ 4, %108 ]
%115 = phi i32 [ %129, %122 ], [ 3, %108 ]
%116 = phi i32 [ %133, %122 ], [ 1, %108 ]
%117 = icmp ugt i32 %115, 3
br i1 %117, label %118, label %122
118: ; preds = %112
%119 = tail call i32 @box_apeak_xy(i32 1, i32 %115, i32 1, i32 6, i32 %115, i32 6, i32 0, i32 1)
%120 = add nsw i32 %115, -1
%121 = tail call i32 @box_apeak_xy(i32 1, i32 %120, i32 1, i32 6, i32 %120, i32 6, i32 0, i32 0)
br label %122
122: ; preds = %118, %112
%123 = tail call i32 @box_apeak_xy(i32 2, i32 %114, i32 2, i32 5, i32 %114, i32 5, i32 0, i32 1)
%124 = add nsw i32 %114, -1
%125 = tail call i32 @box_apeak_xy(i32 2, i32 %124, i32 2, i32 5, i32 %124, i32 5, i32 0, i32 0)
%126 = tail call i32 @box_apeak_xy(i32 3, i32 %113, i32 3, i32 4, i32 %113, i32 4, i32 0, i32 1)
%127 = add nsw i32 %113, -1
%128 = tail call i32 @box_apeak_xy(i32 3, i32 %127, i32 3, i32 4, i32 %127, i32 4, i32 0, i32 0)
%129 = add nuw nsw i32 %115, 1
%130 = add nuw nsw i32 %114, 1
%131 = add nuw nsw i32 %113, 1
%132 = tail call i32 @delay_ms(i32 75)
%133 = add nsw i32 %116, -1
%134 = icmp eq i32 %116, 0
br i1 %134, label %135, label %112
135: ; preds = %122, %135
%136 = phi i32 [ %152, %135 ], [ 5, %122 ]
%137 = phi i32 [ %149, %135 ], [ 4, %122 ]
%138 = phi i32 [ %154, %135 ], [ 2, %122 ]
%139 = tail call i32 @box_apeak_xy(i32 1, i32 3, i32 1, i32 6, i32 3, i32 6, i32 0, i32 1)
%140 = tail call i32 @box_apeak_xy(i32 1, i32 4, i32 1, i32 6, i32 4, i32 6, i32 0, i32 0)
%141 = tail call i32 @box_apeak_xy(i32 2, i32 %137, i32 2, i32 5, i32 %137, i32 5, i32 0, i32 1)
%142 = add nsw i32 %137, 1
%143 = tail call i32 @box_apeak_xy(i32 2, i32 %142, i32 2, i32 5, i32 %142, i32 5, i32 0, i32 0)
%144 = tail call i32 @box_apeak_xy(i32 3, i32 %136, i32 3, i32 4, i32 %136, i32 4, i32 0, i32 1)
%145 = add nsw i32 %136, 1
%146 = tail call i32 @box_apeak_xy(i32 3, i32 %145, i32 3, i32 4, i32 %145, i32 4, i32 0, i32 0)
%147 = icmp sgt i32 %137, 3
%148 = sext i1 %147 to i32
%149 = add nsw i32 %137, %148
%150 = icmp sgt i32 %136, 3
%151 = sext i1 %150 to i32
%152 = add nsw i32 %136, %151
%153 = tail call i32 @delay_ms(i32 75)
%154 = add nsw i32 %138, -1
%155 = icmp eq i32 %138, 0
br i1 %155, label %156, label %135
156: ; preds = %135, %184
%157 = phi i32 [ %193, %184 ], [ 2, %135 ]
%158 = phi i32 [ %190, %184 ], [ 3, %135 ]
%159 = phi i32 [ %187, %184 ], [ 4, %135 ]
%160 = phi i32 [ %195, %184 ], [ 2, %135 ]
%161 = icmp slt i32 %159, 4
br i1 %161, label %162, label %168
162: ; preds = %156
%163 = tail call i32 @box_apeak_xy(i32 1, i32 %159, i32 1, i32 6, i32 %159, i32 6, i32 0, i32 1)
%164 = icmp eq i32 %159, 3
br i1 %164, label %168, label %165
165: ; preds = %162
%166 = add nsw i32 %159, 1
%167 = tail call i32 @box_apeak_xy(i32 1, i32 %166, i32 1, i32 6, i32 %166, i32 6, i32 0, i32 0)
br label %168
168: ; preds = %156, %162, %165
%169 = icmp slt i32 %158, 4
br i1 %169, label %170, label %176
170: ; preds = %168
%171 = tail call i32 @box_apeak_xy(i32 2, i32 %158, i32 2, i32 5, i32 %158, i32 5, i32 0, i32 1)
%172 = icmp eq i32 %158, 3
br i1 %172, label %176, label %173
173: ; preds = %170
%174 = add nsw i32 %158, 1
%175 = tail call i32 @box_apeak_xy(i32 2, i32 %174, i32 2, i32 5, i32 %174, i32 5, i32 0, i32 0)
br label %176
176: ; preds = %173, %170, %168
%177 = icmp slt i32 %157, 4
br i1 %177, label %178, label %184
178: ; preds = %176
%179 = tail call i32 @box_apeak_xy(i32 3, i32 %157, i32 3, i32 4, i32 %157, i32 4, i32 0, i32 1)
%180 = icmp eq i32 %157, 3
br i1 %180, label %184, label %181
181: ; preds = %178
%182 = add nsw i32 %157, 1
%183 = tail call i32 @box_apeak_xy(i32 3, i32 %182, i32 3, i32 4, i32 %182, i32 4, i32 0, i32 0)
br label %184
184: ; preds = %176, %178, %181
%185 = icmp sgt i32 %159, 0
%186 = sext i1 %185 to i32
%187 = add nsw i32 %159, %186
%188 = icmp sgt i32 %158, 0
%189 = sext i1 %188 to i32
%190 = add nsw i32 %158, %189
%191 = icmp sgt i32 %157, 0
%192 = sext i1 %191 to i32
%193 = add nsw i32 %157, %192
%194 = tail call i32 @delay_ms(i32 75)
%195 = add nsw i32 %160, -1
%196 = icmp eq i32 %160, 0
br i1 %196, label %197, label %156
197: ; preds = %184, %219
%198 = phi i32 [ %222, %219 ], [ 1, %184 ]
%199 = phi i32 [ %221, %219 ], [ 2, %184 ]
%200 = phi i32 [ %220, %219 ], [ 2, %184 ]
%201 = phi i64 [ %224, %219 ], [ 2, %184 ]
%202 = icmp sgt i32 %200, -1
br i1 %202, label %203, label %207
203: ; preds = %197
%204 = tail call i32 @box_apeak_xy(i32 0, i32 %200, i32 0, i32 7, i32 %200, i32 7, i32 0, i32 1)
%205 = add nuw nsw i32 %200, 1
%206 = tail call i32 @box_apeak_xy(i32 0, i32 %205, i32 0, i32 7, i32 %205, i32 7, i32 0, i32 0)
br label %207
207: ; preds = %197, %203
%208 = icmp sgt i32 %199, -1
br i1 %208, label %209, label %213
209: ; preds = %207
%210 = tail call i32 @box_apeak_xy(i32 1, i32 %199, i32 1, i32 6, i32 %199, i32 6, i32 0, i32 1)
%211 = add nuw nsw i32 %199, 1
%212 = tail call i32 @box_apeak_xy(i32 1, i32 %211, i32 1, i32 6, i32 %211, i32 6, i32 0, i32 0)
br label %213
213: ; preds = %209, %207
%214 = icmp sgt i32 %198, -1
br i1 %214, label %215, label %219
215: ; preds = %213
%216 = tail call i32 @box_apeak_xy(i32 2, i32 %198, i32 2, i32 5, i32 %198, i32 5, i32 0, i32 1)
%217 = add nuw nsw i32 %198, 1
%218 = tail call i32 @box_apeak_xy(i32 2, i32 %217, i32 2, i32 5, i32 %217, i32 5, i32 0, i32 0)
br label %219
219: ; preds = %215, %213
%220 = add nsw i32 %200, -1
%221 = add nsw i32 %199, -1
%222 = add nsw i32 %198, -1
%223 = tail call i32 @delay_ms(i32 75)
%224 = add nsw i64 %201, -1
%225 = icmp eq i64 %201, 0
br i1 %225, label %226, label %197
226: ; preds = %219, %243
%227 = phi i32 [ %261, %243 ], [ 1, %219 ]
%228 = phi i32 [ %258, %243 ], [ 0, %219 ]
%229 = phi i32 [ %255, %243 ], [ -1, %219 ]
%230 = phi i32 [ %252, %243 ], [ -2, %219 ]
%231 = phi i32 [ %263, %243 ], [ 9, %219 ]
%232 = icmp sgt i32 %230, -1
br i1 %232, label %233, label %237
233: ; preds = %226
%234 = tail call i32 @box_apeak_xy(i32 0, i32 %230, i32 0, i32 7, i32 %230, i32 7, i32 0, i32 1)
%235 = add nsw i32 %230, -1
%236 = tail call i32 @box_apeak_xy(i32 0, i32 %235, i32 0, i32 7, i32 %235, i32 7, i32 0, i32 0)
br label %237
237: ; preds = %226, %233
%238 = icmp sgt i32 %229, -1
br i1 %238, label %239, label %243
239: ; preds = %237
%240 = tail call i32 @box_apeak_xy(i32 1, i32 %229, i32 1, i32 6, i32 %229, i32 6, i32 0, i32 1)
%241 = add nsw i32 %229, -1
%242 = tail call i32 @box_apeak_xy(i32 1, i32 %241, i32 1, i32 6, i32 %241, i32 6, i32 0, i32 0)
br label %243
243: ; preds = %237, %239
%244 = tail call i32 @box_apeak_xy(i32 2, i32 %228, i32 2, i32 5, i32 %228, i32 5, i32 0, i32 1)
%245 = add nsw i32 %228, -1
%246 = tail call i32 @box_apeak_xy(i32 2, i32 %245, i32 2, i32 5, i32 %245, i32 5, i32 0, i32 0)
%247 = tail call i32 @box_apeak_xy(i32 3, i32 %227, i32 3, i32 4, i32 %227, i32 4, i32 0, i32 1)
%248 = add nsw i32 %227, -1
%249 = tail call i32 @box_apeak_xy(i32 3, i32 %248, i32 3, i32 4, i32 %248, i32 4, i32 0, i32 0)
%250 = icmp slt i32 %230, 7
%251 = zext i1 %250 to i32
%252 = add nsw i32 %230, %251
%253 = icmp slt i32 %229, 7
%254 = zext i1 %253 to i32
%255 = add nsw i32 %229, %254
%256 = icmp ult i32 %228, 7
%257 = zext i1 %256 to i32
%258 = add nuw nsw i32 %228, %257
%259 = icmp ult i32 %227, 7
%260 = zext i1 %259 to i32
%261 = add nuw nsw i32 %227, %260
%262 = tail call i32 @delay_ms(i32 75)
%263 = add nsw i32 %231, -1
%264 = icmp eq i32 %231, 0
br i1 %264, label %265, label %226
265: ; preds = %243
ret void
}