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

/* Forward declarations */

/* Type definitions */
typedef int uint32_t;
typedef char int32_t;

/* Variables and functions */
char checkDiagonalWin(char board[5 + 1][5 + 1]) {
  uint32_t countPlayer1 = 0;
  uint32_t countPlayer2 = 0;
  char column;
  char row;
  int32_t columnOffset;
  int32_t rowOffset;
  char win = 0;
  column = 0;
  for (row = 0; row <= (5 - 3); row++) {
    rowOffset = 0;
    columnOffset = 0;
    while (((row + rowOffset) <= 5) && ((column + columnOffset) <= 5)) {
      if ((board[row + rowOffset][column + columnOffset]) == 1) {
        countPlayer1++;
        countPlayer2 = 0;
      } else if ((board[row + rowOffset][column + columnOffset]) == 2) {
        countPlayer2++;
        countPlayer1 = 0;
      } else {
        countPlayer1 = 0;
        countPlayer2 = 0;
      }
      if (countPlayer1 >= 4) {
        win = 1;
        goto won;
      } else if (countPlayer2 >= 4) {
        win = 2;
        goto won;
      }
      rowOffset++;
      columnOffset++;
    }
  }
  row = 0;
  for (column = 1; column <= (5 - 3); column++) {
    rowOffset = 0;
    columnOffset = 0;
    while (((row + rowOffset) <= 5) && ((column + columnOffset) <= 5)) {
      if ((board[row + rowOffset][column + columnOffset]) == 1) {
        countPlayer1++;
        countPlayer2 = 0;
      } else if ((board[row + rowOffset][column + columnOffset]) == 2) {
        countPlayer2++;
        countPlayer1 = 0;
      } else {
        countPlayer1 = 0;
        countPlayer2 = 0;
      }
      if (countPlayer1 >= 4) {
        win = 1;
        goto won;
      } else if (countPlayer2 >= 4) {
        win = 2;
        goto won;
      }
      rowOffset++;
      columnOffset++;
    }
  }
  column = 0;
  for (row = 5; row >= 3; row--) {
    rowOffset = 0;
    columnOffset = 0;
    while (((row + rowOffset) >= 0) && ((column + columnOffset) <= 5)) {
      if ((board[row + rowOffset][column + columnOffset]) == 1) {
        countPlayer1++;
        countPlayer2 = 0;
      } else if ((board[row + rowOffset][column + columnOffset]) == 2) {
        countPlayer2++;
        countPlayer1 = 0;
      } else {
        countPlayer1 = 0;
        countPlayer2 = 0;
      }
      if (countPlayer1 >= 4) {
        win = 1;
        goto won;
      } else if (countPlayer2 >= 4) {
        win = 2;
        goto won;
      }
      rowOffset--;
      columnOffset++;
    }
  }
  row = 5;
  for (column = 1; column <= (5 - 3); column++) {
    rowOffset = 0;
    columnOffset = 0;
    while (((row + rowOffset) >= 0) && ((column + columnOffset) <= 5)) {
      if ((board[row + rowOffset][column + columnOffset]) == 1) {
        countPlayer1++;
        countPlayer2 = 0;
      } else if ((board[row + rowOffset][column + columnOffset]) == 2) {
        countPlayer2++;
        countPlayer1 = 0;
      } else {
        countPlayer1 = 0;
        countPlayer2 = 0;
      }
      if (countPlayer1 >= 4) {
        win = 1;
        goto won;
      } else if (countPlayer2 >= 4) {
        win = 2;
        goto won;
      }
      rowOffset--;
      columnOffset++;
    }
  }
won:
  return (win);
}


x86 assembly (clang, -O0):
<checkDiagonalWin>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x8(%rbp)
movl   $0x0,-0xc(%rbp)
movl   $0x0,-0x10(%rbp)
movb   $0x0,-0x15(%rbp)
movb   $0x0,-0x11(%rbp)
movb   $0x0,-0x12(%rbp)
movsbl -0x12(%rbp),%eax
cmp    $0x2,%eax
jg     1265 <checkDiagonalWin+0x165>
movb   $0x0,-0x14(%rbp)
movb   $0x0,-0x13(%rbp)
movsbl -0x12(%rbp),%ecx
movsbl -0x14(%rbp),%eax
add    %eax,%ecx
xor    %eax,%eax
cmp    $0x5,%ecx
mov    %al,-0x16(%rbp)
jg     1162 <checkDiagonalWin+0x62>
movsbl -0x11(%rbp),%eax
movsbl -0x13(%rbp),%ecx
add    %ecx,%eax
cmp    $0x5,%eax
setle  %al
mov    %al,-0x16(%rbp)
mov    -0x16(%rbp),%al
test   $0x1,%al
jne    1172 <checkDiagonalWin+0x72>
jmp    1253 <checkDiagonalWin+0x153>
mov    -0x8(%rbp),%rax
movsbl -0x12(%rbp),%ecx
movsbl -0x14(%rbp),%edx
add    %edx,%ecx
movslq %ecx,%rcx
imul   $0x6,%rcx,%rcx
add    %rcx,%rax
movsbl -0x11(%rbp),%ecx
movsbl -0x13(%rbp),%edx
add    %edx,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x1,%eax
jne    11b9 <checkDiagonalWin+0xb9>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
movl   $0x0,-0x10(%rbp)
jmp    1213 <checkDiagonalWin+0x113>
mov    -0x8(%rbp),%rax
movsbl -0x12(%rbp),%ecx
movsbl -0x14(%rbp),%edx
add    %edx,%ecx
movslq %ecx,%rcx
imul   $0x6,%rcx,%rcx
add    %rcx,%rax
movsbl -0x11(%rbp),%ecx
movsbl -0x13(%rbp),%edx
add    %edx,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x2,%eax
jne    1200 <checkDiagonalWin+0x100>
mov    -0x10(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
movl   $0x0,-0xc(%rbp)
jmp    120e <checkDiagonalWin+0x10e>
movl   $0x0,-0xc(%rbp)
movl   $0x0,-0x10(%rbp)
jmp    1213 <checkDiagonalWin+0x113>
cmpl   $0x4,-0xc(%rbp)
jl     1226 <checkDiagonalWin+0x126>
movb   $0x1,-0x15(%rbp)
jmp    164b <checkDiagonalWin+0x54b>
cmpl   $0x4,-0x10(%rbp)
jl     1239 <checkDiagonalWin+0x139>
movb   $0x2,-0x15(%rbp)
jmp    164b <checkDiagonalWin+0x54b>
jmp    123e <checkDiagonalWin+0x13e>
mov    -0x14(%rbp),%al
add    $0x1,%al
mov    %al,-0x14(%rbp)
mov    -0x13(%rbp),%al
add    $0x1,%al
mov    %al,-0x13(%rbp)
jmp    1137 <checkDiagonalWin+0x37>
jmp    1258 <checkDiagonalWin+0x158>
mov    -0x12(%rbp),%al
add    $0x1,%al
mov    %al,-0x12(%rbp)
jmp    1122 <checkDiagonalWin+0x22>
movb   $0x0,-0x12(%rbp)
movb   $0x1,-0x11(%rbp)
movsbl -0x11(%rbp),%eax
cmp    $0x2,%eax
jg     13b0 <checkDiagonalWin+0x2b0>
movb   $0x0,-0x14(%rbp)
movb   $0x0,-0x13(%rbp)
movsbl -0x12(%rbp),%ecx
movsbl -0x14(%rbp),%eax
add    %eax,%ecx
xor    %eax,%eax
cmp    $0x5,%ecx
mov    %al,-0x17(%rbp)
jg     12ad <checkDiagonalWin+0x1ad>
movsbl -0x11(%rbp),%eax
movsbl -0x13(%rbp),%ecx
add    %ecx,%eax
cmp    $0x5,%eax
setle  %al
mov    %al,-0x17(%rbp)
mov    -0x17(%rbp),%al
test   $0x1,%al
jne    12bd <checkDiagonalWin+0x1bd>
jmp    139e <checkDiagonalWin+0x29e>
mov    -0x8(%rbp),%rax
movsbl -0x12(%rbp),%ecx
movsbl -0x14(%rbp),%edx
add    %edx,%ecx
movslq %ecx,%rcx
imul   $0x6,%rcx,%rcx
add    %rcx,%rax
movsbl -0x11(%rbp),%ecx
movsbl -0x13(%rbp),%edx
add    %edx,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x1,%eax
jne    1304 <checkDiagonalWin+0x204>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
movl   $0x0,-0x10(%rbp)
jmp    135e <checkDiagonalWin+0x25e>
mov    -0x8(%rbp),%rax
movsbl -0x12(%rbp),%ecx
movsbl -0x14(%rbp),%edx
add    %edx,%ecx
movslq %ecx,%rcx
imul   $0x6,%rcx,%rcx
add    %rcx,%rax
movsbl -0x11(%rbp),%ecx
movsbl -0x13(%rbp),%edx
add    %edx,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x2,%eax
jne    134b <checkDiagonalWin+0x24b>
mov    -0x10(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
movl   $0x0,-0xc(%rbp)
jmp    1359 <checkDiagonalWin+0x259>
movl   $0x0,-0xc(%rbp)
movl   $0x0,-0x10(%rbp)
jmp    135e <checkDiagonalWin+0x25e>
cmpl   $0x4,-0xc(%rbp)
jl     1371 <checkDiagonalWin+0x271>
movb   $0x1,-0x15(%rbp)
jmp    164b <checkDiagonalWin+0x54b>
cmpl   $0x4,-0x10(%rbp)
jl     1384 <checkDiagonalWin+0x284>
movb   $0x2,-0x15(%rbp)
jmp    164b <checkDiagonalWin+0x54b>
jmp    1389 <checkDiagonalWin+0x289>
mov    -0x14(%rbp),%al
add    $0x1,%al
mov    %al,-0x14(%rbp)
mov    -0x13(%rbp),%al
add    $0x1,%al
mov    %al,-0x13(%rbp)
jmp    1282 <checkDiagonalWin+0x182>
jmp    13a3 <checkDiagonalWin+0x2a3>
mov    -0x11(%rbp),%al
add    $0x1,%al
mov    %al,-0x11(%rbp)
jmp    126d <checkDiagonalWin+0x16d>
movb   $0x0,-0x11(%rbp)
movb   $0x5,-0x12(%rbp)
movsbl -0x12(%rbp),%eax
cmp    $0x3,%eax
jl     14fb <checkDiagonalWin+0x3fb>
movb   $0x0,-0x14(%rbp)
movb   $0x0,-0x13(%rbp)
movsbl -0x12(%rbp),%ecx
movsbl -0x14(%rbp),%eax
add    %eax,%ecx
xor    %eax,%eax
cmp    $0x0,%ecx
mov    %al,-0x18(%rbp)
jl     13f8 <checkDiagonalWin+0x2f8>
movsbl -0x11(%rbp),%eax
movsbl -0x13(%rbp),%ecx
add    %ecx,%eax
cmp    $0x5,%eax
setle  %al
mov    %al,-0x18(%rbp)
mov    -0x18(%rbp),%al
test   $0x1,%al
jne    1408 <checkDiagonalWin+0x308>
jmp    14e9 <checkDiagonalWin+0x3e9>
mov    -0x8(%rbp),%rax
movsbl -0x12(%rbp),%ecx
movsbl -0x14(%rbp),%edx
add    %edx,%ecx
movslq %ecx,%rcx
imul   $0x6,%rcx,%rcx
add    %rcx,%rax
movsbl -0x11(%rbp),%ecx
movsbl -0x13(%rbp),%edx
add    %edx,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x1,%eax
jne    144f <checkDiagonalWin+0x34f>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
movl   $0x0,-0x10(%rbp)
jmp    14a9 <checkDiagonalWin+0x3a9>
mov    -0x8(%rbp),%rax
movsbl -0x12(%rbp),%ecx
movsbl -0x14(%rbp),%edx
add    %edx,%ecx
movslq %ecx,%rcx
imul   $0x6,%rcx,%rcx
add    %rcx,%rax
movsbl -0x11(%rbp),%ecx
movsbl -0x13(%rbp),%edx
add    %edx,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x2,%eax
jne    1496 <checkDiagonalWin+0x396>
mov    -0x10(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
movl   $0x0,-0xc(%rbp)
jmp    14a4 <checkDiagonalWin+0x3a4>
movl   $0x0,-0xc(%rbp)
movl   $0x0,-0x10(%rbp)
jmp    14a9 <checkDiagonalWin+0x3a9>
cmpl   $0x4,-0xc(%rbp)
jl     14bc <checkDiagonalWin+0x3bc>
movb   $0x1,-0x15(%rbp)
jmp    164b <checkDiagonalWin+0x54b>
cmpl   $0x4,-0x10(%rbp)
jl     14cf <checkDiagonalWin+0x3cf>
movb   $0x2,-0x15(%rbp)
jmp    164b <checkDiagonalWin+0x54b>
jmp    14d4 <checkDiagonalWin+0x3d4>
mov    -0x14(%rbp),%al
add    $0xff,%al
mov    %al,-0x14(%rbp)
mov    -0x13(%rbp),%al
add    $0x1,%al
mov    %al,-0x13(%rbp)
jmp    13cd <checkDiagonalWin+0x2cd>
jmp    14ee <checkDiagonalWin+0x3ee>
mov    -0x12(%rbp),%al
add    $0xff,%al
mov    %al,-0x12(%rbp)
jmp    13b8 <checkDiagonalWin+0x2b8>
movb   $0x5,-0x12(%rbp)
movb   $0x1,-0x11(%rbp)
movsbl -0x11(%rbp),%eax
cmp    $0x2,%eax
jg     1646 <checkDiagonalWin+0x546>
movb   $0x0,-0x14(%rbp)
movb   $0x0,-0x13(%rbp)
movsbl -0x12(%rbp),%ecx
movsbl -0x14(%rbp),%eax
add    %eax,%ecx
xor    %eax,%eax
cmp    $0x0,%ecx
mov    %al,-0x19(%rbp)
jl     1543 <checkDiagonalWin+0x443>
movsbl -0x11(%rbp),%eax
movsbl -0x13(%rbp),%ecx
add    %ecx,%eax
cmp    $0x5,%eax
setle  %al
mov    %al,-0x19(%rbp)
mov    -0x19(%rbp),%al
test   $0x1,%al
jne    1553 <checkDiagonalWin+0x453>
jmp    1634 <checkDiagonalWin+0x534>
mov    -0x8(%rbp),%rax
movsbl -0x12(%rbp),%ecx
movsbl -0x14(%rbp),%edx
add    %edx,%ecx
movslq %ecx,%rcx
imul   $0x6,%rcx,%rcx
add    %rcx,%rax
movsbl -0x11(%rbp),%ecx
movsbl -0x13(%rbp),%edx
add    %edx,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x1,%eax
jne    159a <checkDiagonalWin+0x49a>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
movl   $0x0,-0x10(%rbp)
jmp    15f4 <checkDiagonalWin+0x4f4>
mov    -0x8(%rbp),%rax
movsbl -0x12(%rbp),%ecx
movsbl -0x14(%rbp),%edx
add    %edx,%ecx
movslq %ecx,%rcx
imul   $0x6,%rcx,%rcx
add    %rcx,%rax
movsbl -0x11(%rbp),%ecx
movsbl -0x13(%rbp),%edx
add    %edx,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x2,%eax
jne    15e1 <checkDiagonalWin+0x4e1>
mov    -0x10(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
movl   $0x0,-0xc(%rbp)
jmp    15ef <checkDiagonalWin+0x4ef>
movl   $0x0,-0xc(%rbp)
movl   $0x0,-0x10(%rbp)
jmp    15f4 <checkDiagonalWin+0x4f4>
cmpl   $0x4,-0xc(%rbp)
jl     1607 <checkDiagonalWin+0x507>
movb   $0x1,-0x15(%rbp)
jmp    164b <checkDiagonalWin+0x54b>
cmpl   $0x4,-0x10(%rbp)
jl     161a <checkDiagonalWin+0x51a>
movb   $0x2,-0x15(%rbp)
jmp    164b <checkDiagonalWin+0x54b>
jmp    161f <checkDiagonalWin+0x51f>
mov    -0x14(%rbp),%al
add    $0xff,%al
mov    %al,-0x14(%rbp)
mov    -0x13(%rbp),%al
add    $0x1,%al
mov    %al,-0x13(%rbp)
jmp    1518 <checkDiagonalWin+0x418>
jmp    1639 <checkDiagonalWin+0x539>
mov    -0x11(%rbp),%al
add    $0x1,%al
mov    %al,-0x11(%rbp)
jmp    1503 <checkDiagonalWin+0x403>
jmp    164b <checkDiagonalWin+0x54b>
movsbl -0x15(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<checkDiagonalWin>:
mov    (%rdi),%cl
mov    $0x1,%eax
cmp    $0x2,%cl
je     1118 <checkDiagonalWin+0x18>
cmp    $0x1,%cl
jne    111d <checkDiagonalWin+0x1d>
mov    $0x2,%ecx
jmp    1122 <checkDiagonalWin+0x22>
mov    $0x2,%eax
mov    $0x1,%ecx
mov    0x7(%rdi),%dl
cmp    $0x1,%dl
je     1131 <checkDiagonalWin+0x31>
xor    %ecx,%ecx
cmp    $0x2,%dl
je     1133 <checkDiagonalWin+0x33>
xor    %eax,%eax
mov    0xe(%rdi),%dl
xor    %esi,%esi
cmp    $0x1,%dl
je     114b <checkDiagonalWin+0x4b>
cmp    $0x2,%dl
jne    1150 <checkDiagonalWin+0x50>
add    $0x1,%eax
xor    %ecx,%ecx
mov    %eax,%esi
jmp    1152 <checkDiagonalWin+0x52>
add    $0x1,%ecx
jmp    1152 <checkDiagonalWin+0x52>
xor    %ecx,%ecx
mov    0x15(%rdi),%al
xor    %edx,%edx
cmp    $0x1,%al
je     1173 <checkDiagonalWin+0x73>
cmp    $0x2,%al
jne    1183 <checkDiagonalWin+0x83>
mov    $0x2,%al
cmp    $0x2,%esi
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%esi
xor    %ecx,%ecx
mov    %esi,%edx
jmp    1185 <checkDiagonalWin+0x85>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    1185 <checkDiagonalWin+0x85>
xor    %ecx,%ecx
mov    0x1c(%rdi),%al
xor    %esi,%esi
cmp    $0x1,%al
je     11a6 <checkDiagonalWin+0xa6>
cmp    $0x2,%al
jne    11b6 <checkDiagonalWin+0xb6>
mov    $0x2,%al
cmp    $0x2,%edx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%edx
xor    %ecx,%ecx
mov    %edx,%esi
jmp    11b8 <checkDiagonalWin+0xb8>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    11b8 <checkDiagonalWin+0xb8>
xor    %ecx,%ecx
mov    0x23(%rdi),%al
xor    %edx,%edx
cmp    $0x1,%al
je     11d9 <checkDiagonalWin+0xd9>
cmp    $0x2,%al
jne    11e9 <checkDiagonalWin+0xe9>
mov    $0x2,%al
cmp    $0x2,%esi
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%esi
xor    %ecx,%ecx
mov    %esi,%edx
jmp    11eb <checkDiagonalWin+0xeb>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    11eb <checkDiagonalWin+0xeb>
xor    %ecx,%ecx
mov    0x6(%rdi),%al
xor    %esi,%esi
cmp    $0x1,%al
je     120c <checkDiagonalWin+0x10c>
cmp    $0x2,%al
jne    121c <checkDiagonalWin+0x11c>
mov    $0x2,%al
cmp    $0x2,%edx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%edx
xor    %ecx,%ecx
mov    %edx,%esi
jmp    121e <checkDiagonalWin+0x11e>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    121e <checkDiagonalWin+0x11e>
xor    %ecx,%ecx
mov    0xd(%rdi),%al
xor    %edx,%edx
cmp    $0x1,%al
je     123f <checkDiagonalWin+0x13f>
cmp    $0x2,%al
jne    124f <checkDiagonalWin+0x14f>
mov    $0x2,%al
cmp    $0x2,%esi
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%esi
xor    %ecx,%ecx
mov    %esi,%edx
jmp    1251 <checkDiagonalWin+0x151>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    1251 <checkDiagonalWin+0x151>
xor    %ecx,%ecx
mov    0x14(%rdi),%al
xor    %esi,%esi
cmp    $0x1,%al
je     1272 <checkDiagonalWin+0x172>
cmp    $0x2,%al
jne    1282 <checkDiagonalWin+0x182>
mov    $0x2,%al
cmp    $0x2,%edx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%edx
xor    %ecx,%ecx
mov    %edx,%esi
jmp    1284 <checkDiagonalWin+0x184>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    1284 <checkDiagonalWin+0x184>
xor    %ecx,%ecx
mov    0x1b(%rdi),%al
xor    %edx,%edx
cmp    $0x1,%al
je     12a5 <checkDiagonalWin+0x1a5>
cmp    $0x2,%al
jne    12b5 <checkDiagonalWin+0x1b5>
mov    $0x2,%al
cmp    $0x2,%esi
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%esi
xor    %ecx,%ecx
mov    %esi,%edx
jmp    12b7 <checkDiagonalWin+0x1b7>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    12b7 <checkDiagonalWin+0x1b7>
xor    %ecx,%ecx
mov    0x22(%rdi),%al
xor    %esi,%esi
cmp    $0x1,%al
je     12d8 <checkDiagonalWin+0x1d8>
cmp    $0x2,%al
jne    12e8 <checkDiagonalWin+0x1e8>
mov    $0x2,%al
cmp    $0x2,%edx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%edx
xor    %ecx,%ecx
mov    %edx,%esi
jmp    12ea <checkDiagonalWin+0x1ea>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    12ea <checkDiagonalWin+0x1ea>
xor    %ecx,%ecx
mov    0xc(%rdi),%al
xor    %edx,%edx
cmp    $0x1,%al
je     130b <checkDiagonalWin+0x20b>
cmp    $0x2,%al
jne    131b <checkDiagonalWin+0x21b>
mov    $0x2,%al
cmp    $0x2,%esi
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%esi
xor    %ecx,%ecx
mov    %esi,%edx
jmp    131d <checkDiagonalWin+0x21d>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    131d <checkDiagonalWin+0x21d>
xor    %ecx,%ecx
mov    0x13(%rdi),%al
xor    %esi,%esi
cmp    $0x1,%al
je     133e <checkDiagonalWin+0x23e>
cmp    $0x2,%al
jne    134e <checkDiagonalWin+0x24e>
mov    $0x2,%al
cmp    $0x2,%edx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%edx
xor    %ecx,%ecx
mov    %edx,%esi
jmp    1350 <checkDiagonalWin+0x250>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    1350 <checkDiagonalWin+0x250>
xor    %ecx,%ecx
mov    0x1a(%rdi),%al
xor    %edx,%edx
cmp    $0x1,%al
je     1371 <checkDiagonalWin+0x271>
cmp    $0x2,%al
jne    1381 <checkDiagonalWin+0x281>
mov    $0x2,%al
cmp    $0x2,%esi
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%esi
xor    %ecx,%ecx
mov    %esi,%edx
jmp    1383 <checkDiagonalWin+0x283>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    1383 <checkDiagonalWin+0x283>
xor    %ecx,%ecx
mov    0x21(%rdi),%al
xor    %esi,%esi
cmp    $0x1,%al
je     13a4 <checkDiagonalWin+0x2a4>
cmp    $0x2,%al
jne    13b4 <checkDiagonalWin+0x2b4>
mov    $0x2,%al
cmp    $0x2,%edx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%edx
xor    %ecx,%ecx
mov    %edx,%esi
jmp    13b6 <checkDiagonalWin+0x2b6>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    13b6 <checkDiagonalWin+0x2b6>
xor    %ecx,%ecx
mov    0x1(%rdi),%al
xor    %edx,%edx
cmp    $0x2,%al
je     13d3 <checkDiagonalWin+0x2d3>
cmp    $0x1,%al
jne    13e7 <checkDiagonalWin+0x2e7>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    13e9 <checkDiagonalWin+0x2e9>
mov    $0x2,%al
cmp    $0x2,%esi
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%esi
xor    %ecx,%ecx
mov    %esi,%edx
jmp    13e9 <checkDiagonalWin+0x2e9>
xor    %ecx,%ecx
mov    0x8(%rdi),%al
xor    %esi,%esi
cmp    $0x1,%al
je     140a <checkDiagonalWin+0x30a>
cmp    $0x2,%al
jne    141a <checkDiagonalWin+0x31a>
mov    $0x2,%al
cmp    $0x2,%edx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%edx
xor    %ecx,%ecx
mov    %edx,%esi
jmp    141c <checkDiagonalWin+0x31c>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    141c <checkDiagonalWin+0x31c>
xor    %ecx,%ecx
mov    0xf(%rdi),%al
xor    %edx,%edx
cmp    $0x1,%al
je     143d <checkDiagonalWin+0x33d>
cmp    $0x2,%al
jne    144d <checkDiagonalWin+0x34d>
mov    $0x2,%al
cmp    $0x2,%esi
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%esi
xor    %ecx,%ecx
mov    %esi,%edx
jmp    144f <checkDiagonalWin+0x34f>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    144f <checkDiagonalWin+0x34f>
xor    %ecx,%ecx
mov    0x16(%rdi),%al
xor    %esi,%esi
cmp    $0x1,%al
je     1470 <checkDiagonalWin+0x370>
cmp    $0x2,%al
jne    1480 <checkDiagonalWin+0x380>
mov    $0x2,%al
cmp    $0x2,%edx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%edx
xor    %ecx,%ecx
mov    %edx,%esi
jmp    1482 <checkDiagonalWin+0x382>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    1482 <checkDiagonalWin+0x382>
xor    %ecx,%ecx
mov    0x1d(%rdi),%al
xor    %edx,%edx
cmp    $0x1,%al
je     14a3 <checkDiagonalWin+0x3a3>
cmp    $0x2,%al
jne    14b3 <checkDiagonalWin+0x3b3>
mov    $0x2,%al
cmp    $0x2,%esi
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%esi
xor    %ecx,%ecx
mov    %esi,%edx
jmp    14b5 <checkDiagonalWin+0x3b5>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    14b5 <checkDiagonalWin+0x3b5>
xor    %ecx,%ecx
mov    0x2(%rdi),%al
xor    %esi,%esi
cmp    $0x1,%al
je     14d6 <checkDiagonalWin+0x3d6>
cmp    $0x2,%al
jne    14e6 <checkDiagonalWin+0x3e6>
mov    $0x2,%al
cmp    $0x2,%edx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%edx
xor    %ecx,%ecx
mov    %edx,%esi
jmp    14e8 <checkDiagonalWin+0x3e8>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    14e8 <checkDiagonalWin+0x3e8>
xor    %ecx,%ecx
mov    0x9(%rdi),%al
xor    %edx,%edx
cmp    $0x1,%al
je     1509 <checkDiagonalWin+0x409>
cmp    $0x2,%al
jne    1519 <checkDiagonalWin+0x419>
mov    $0x2,%al
cmp    $0x2,%esi
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%esi
xor    %ecx,%ecx
mov    %esi,%edx
jmp    151b <checkDiagonalWin+0x41b>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    151b <checkDiagonalWin+0x41b>
xor    %ecx,%ecx
mov    0x10(%rdi),%al
xor    %esi,%esi
cmp    $0x1,%al
je     153c <checkDiagonalWin+0x43c>
cmp    $0x2,%al
jne    154c <checkDiagonalWin+0x44c>
mov    $0x2,%al
cmp    $0x2,%edx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%edx
xor    %ecx,%ecx
mov    %edx,%esi
jmp    154e <checkDiagonalWin+0x44e>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    154e <checkDiagonalWin+0x44e>
xor    %ecx,%ecx
mov    0x17(%rdi),%al
xor    %edx,%edx
cmp    $0x1,%al
je     156f <checkDiagonalWin+0x46f>
cmp    $0x2,%al
jne    157f <checkDiagonalWin+0x47f>
mov    $0x2,%al
cmp    $0x2,%esi
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%esi
xor    %ecx,%ecx
mov    %esi,%edx
jmp    1581 <checkDiagonalWin+0x481>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    1581 <checkDiagonalWin+0x481>
xor    %ecx,%ecx
mov    0x1e(%rdi),%al
xor    %esi,%esi
cmp    $0x2,%al
je     159e <checkDiagonalWin+0x49e>
cmp    $0x1,%al
jne    15b2 <checkDiagonalWin+0x4b2>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    15b4 <checkDiagonalWin+0x4b4>
mov    $0x2,%al
cmp    $0x2,%edx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%edx
xor    %ecx,%ecx
mov    %edx,%esi
jmp    15b4 <checkDiagonalWin+0x4b4>
xor    %ecx,%ecx
mov    0x19(%rdi),%al
xor    %edx,%edx
cmp    $0x1,%al
je     15d5 <checkDiagonalWin+0x4d5>
cmp    $0x2,%al
jne    15e5 <checkDiagonalWin+0x4e5>
mov    $0x2,%al
cmp    $0x2,%esi
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%esi
xor    %ecx,%ecx
mov    %esi,%edx
jmp    15e7 <checkDiagonalWin+0x4e7>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    15e7 <checkDiagonalWin+0x4e7>
xor    %ecx,%ecx
mov    0x14(%rdi),%al
xor    %esi,%esi
cmp    $0x1,%al
je     1608 <checkDiagonalWin+0x508>
cmp    $0x2,%al
jne    1618 <checkDiagonalWin+0x518>
mov    $0x2,%al
cmp    $0x2,%edx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%edx
xor    %ecx,%ecx
mov    %edx,%esi
jmp    161a <checkDiagonalWin+0x51a>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    161a <checkDiagonalWin+0x51a>
xor    %ecx,%ecx
mov    0xf(%rdi),%al
xor    %edx,%edx
cmp    $0x1,%al
je     163b <checkDiagonalWin+0x53b>
cmp    $0x2,%al
jne    164b <checkDiagonalWin+0x54b>
mov    $0x2,%al
cmp    $0x2,%esi
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%esi
xor    %ecx,%ecx
mov    %esi,%edx
jmp    164d <checkDiagonalWin+0x54d>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    164d <checkDiagonalWin+0x54d>
xor    %ecx,%ecx
mov    0xa(%rdi),%al
xor    %esi,%esi
cmp    $0x1,%al
je     166e <checkDiagonalWin+0x56e>
cmp    $0x2,%al
jne    167e <checkDiagonalWin+0x57e>
mov    $0x2,%al
cmp    $0x2,%edx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%edx
xor    %ecx,%ecx
mov    %edx,%esi
jmp    1680 <checkDiagonalWin+0x580>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    1680 <checkDiagonalWin+0x580>
xor    %ecx,%ecx
mov    0x5(%rdi),%al
xor    %edx,%edx
cmp    $0x1,%al
je     16a1 <checkDiagonalWin+0x5a1>
cmp    $0x2,%al
jne    16b1 <checkDiagonalWin+0x5b1>
mov    $0x2,%al
cmp    $0x2,%esi
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%esi
xor    %ecx,%ecx
mov    %esi,%edx
jmp    16b3 <checkDiagonalWin+0x5b3>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    16b3 <checkDiagonalWin+0x5b3>
xor    %ecx,%ecx
mov    0x18(%rdi),%al
xor    %esi,%esi
cmp    $0x1,%al
je     16d4 <checkDiagonalWin+0x5d4>
cmp    $0x2,%al
jne    16e4 <checkDiagonalWin+0x5e4>
mov    $0x2,%al
cmp    $0x2,%edx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%edx
xor    %ecx,%ecx
mov    %edx,%esi
jmp    16e6 <checkDiagonalWin+0x5e6>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    16e6 <checkDiagonalWin+0x5e6>
xor    %ecx,%ecx
mov    0x13(%rdi),%al
xor    %edx,%edx
cmp    $0x1,%al
je     1707 <checkDiagonalWin+0x607>
cmp    $0x2,%al
jne    1717 <checkDiagonalWin+0x617>
mov    $0x2,%al
cmp    $0x2,%esi
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%esi
xor    %ecx,%ecx
mov    %esi,%edx
jmp    1719 <checkDiagonalWin+0x619>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    1719 <checkDiagonalWin+0x619>
xor    %ecx,%ecx
mov    0xe(%rdi),%al
xor    %esi,%esi
cmp    $0x1,%al
je     173a <checkDiagonalWin+0x63a>
cmp    $0x2,%al
jne    174a <checkDiagonalWin+0x64a>
mov    $0x2,%al
cmp    $0x2,%edx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%edx
xor    %ecx,%ecx
mov    %edx,%esi
jmp    174c <checkDiagonalWin+0x64c>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    174c <checkDiagonalWin+0x64c>
xor    %ecx,%ecx
mov    0x9(%rdi),%al
xor    %edx,%edx
cmp    $0x1,%al
je     176d <checkDiagonalWin+0x66d>
cmp    $0x2,%al
jne    177d <checkDiagonalWin+0x67d>
mov    $0x2,%al
cmp    $0x2,%esi
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%esi
xor    %ecx,%ecx
mov    %esi,%edx
jmp    177f <checkDiagonalWin+0x67f>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    177f <checkDiagonalWin+0x67f>
xor    %ecx,%ecx
mov    0x4(%rdi),%al
xor    %esi,%esi
cmp    $0x1,%al
je     17a0 <checkDiagonalWin+0x6a0>
cmp    $0x2,%al
jne    17b0 <checkDiagonalWin+0x6b0>
mov    $0x2,%al
cmp    $0x2,%edx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%edx
xor    %ecx,%ecx
mov    %edx,%esi
jmp    17b2 <checkDiagonalWin+0x6b2>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    17b2 <checkDiagonalWin+0x6b2>
xor    %ecx,%ecx
mov    0x12(%rdi),%al
xor    %edx,%edx
cmp    $0x1,%al
je     17d3 <checkDiagonalWin+0x6d3>
cmp    $0x2,%al
jne    17e3 <checkDiagonalWin+0x6e3>
mov    $0x2,%al
cmp    $0x2,%esi
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%esi
xor    %ecx,%ecx
mov    %esi,%edx
jmp    17e5 <checkDiagonalWin+0x6e5>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    17e5 <checkDiagonalWin+0x6e5>
xor    %ecx,%ecx
mov    0xd(%rdi),%al
xor    %esi,%esi
cmp    $0x1,%al
je     1806 <checkDiagonalWin+0x706>
cmp    $0x2,%al
jne    1816 <checkDiagonalWin+0x716>
mov    $0x2,%al
cmp    $0x2,%edx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%edx
xor    %ecx,%ecx
mov    %edx,%esi
jmp    1818 <checkDiagonalWin+0x718>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    1818 <checkDiagonalWin+0x718>
xor    %ecx,%ecx
mov    0x8(%rdi),%al
xor    %edx,%edx
cmp    $0x1,%al
je     1839 <checkDiagonalWin+0x739>
cmp    $0x2,%al
jne    1849 <checkDiagonalWin+0x749>
mov    $0x2,%al
cmp    $0x2,%esi
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%esi
xor    %ecx,%ecx
mov    %esi,%edx
jmp    184b <checkDiagonalWin+0x74b>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    184b <checkDiagonalWin+0x74b>
xor    %ecx,%ecx
mov    0x3(%rdi),%al
xor    %esi,%esi
cmp    $0x1,%al
je     186c <checkDiagonalWin+0x76c>
cmp    $0x2,%al
jne    187c <checkDiagonalWin+0x77c>
mov    $0x2,%al
cmp    $0x2,%edx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%edx
xor    %ecx,%ecx
mov    %edx,%esi
jmp    187e <checkDiagonalWin+0x77e>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    187e <checkDiagonalWin+0x77e>
xor    %ecx,%ecx
mov    0x1f(%rdi),%al
xor    %edx,%edx
cmp    $0x2,%al
je     189b <checkDiagonalWin+0x79b>
cmp    $0x1,%al
jne    18af <checkDiagonalWin+0x7af>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    18b1 <checkDiagonalWin+0x7b1>
mov    $0x2,%al
cmp    $0x2,%esi
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%esi
xor    %ecx,%ecx
mov    %esi,%edx
jmp    18b1 <checkDiagonalWin+0x7b1>
xor    %ecx,%ecx
mov    0x1a(%rdi),%al
xor    %esi,%esi
cmp    $0x1,%al
je     18d2 <checkDiagonalWin+0x7d2>
cmp    $0x2,%al
jne    18e2 <checkDiagonalWin+0x7e2>
mov    $0x2,%al
cmp    $0x2,%edx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%edx
xor    %ecx,%ecx
mov    %edx,%esi
jmp    18e4 <checkDiagonalWin+0x7e4>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    18e4 <checkDiagonalWin+0x7e4>
xor    %ecx,%ecx
mov    0x15(%rdi),%al
xor    %edx,%edx
cmp    $0x1,%al
je     1905 <checkDiagonalWin+0x805>
cmp    $0x2,%al
jne    1915 <checkDiagonalWin+0x815>
mov    $0x2,%al
cmp    $0x2,%esi
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%esi
xor    %ecx,%ecx
mov    %esi,%edx
jmp    1917 <checkDiagonalWin+0x817>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    1917 <checkDiagonalWin+0x817>
xor    %ecx,%ecx
mov    0x10(%rdi),%al
xor    %esi,%esi
cmp    $0x1,%al
je     1938 <checkDiagonalWin+0x838>
cmp    $0x2,%al
jne    1948 <checkDiagonalWin+0x848>
mov    $0x2,%al
cmp    $0x2,%edx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%edx
xor    %ecx,%ecx
mov    %edx,%esi
jmp    194a <checkDiagonalWin+0x84a>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    194a <checkDiagonalWin+0x84a>
xor    %ecx,%ecx
mov    0xb(%rdi),%al
xor    %edx,%edx
cmp    $0x1,%al
je     196b <checkDiagonalWin+0x86b>
cmp    $0x2,%al
jne    197b <checkDiagonalWin+0x87b>
mov    $0x2,%al
cmp    $0x2,%esi
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%esi
xor    %ecx,%ecx
mov    %esi,%edx
jmp    197d <checkDiagonalWin+0x87d>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    197d <checkDiagonalWin+0x87d>
xor    %ecx,%ecx
mov    0x20(%rdi),%al
xor    %esi,%esi
cmp    $0x1,%al
je     199e <checkDiagonalWin+0x89e>
cmp    $0x2,%al
jne    19aa <checkDiagonalWin+0x8aa>
mov    $0x2,%al
cmp    $0x2,%edx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%edx
xor    %ecx,%ecx
mov    %edx,%esi
jmp    19ac <checkDiagonalWin+0x8ac>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    19ac <checkDiagonalWin+0x8ac>
xor    %ecx,%ecx
mov    0x1b(%rdi),%al
xor    %edx,%edx
cmp    $0x1,%al
je     19c9 <checkDiagonalWin+0x8c9>
cmp    $0x2,%al
jne    19d5 <checkDiagonalWin+0x8d5>
mov    $0x2,%al
cmp    $0x2,%esi
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%esi
xor    %ecx,%ecx
mov    %esi,%edx
jmp    19d7 <checkDiagonalWin+0x8d7>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    19d7 <checkDiagonalWin+0x8d7>
xor    %ecx,%ecx
mov    0x16(%rdi),%al
xor    %esi,%esi
cmp    $0x1,%al
je     19f4 <checkDiagonalWin+0x8f4>
cmp    $0x2,%al
jne    1a00 <checkDiagonalWin+0x900>
mov    $0x2,%al
cmp    $0x2,%edx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%edx
xor    %ecx,%ecx
mov    %edx,%esi
jmp    1a02 <checkDiagonalWin+0x902>
mov    $0x1,%al
cmp    $0x2,%ecx
ja     1a1f <checkDiagonalWin+0x91f>
add    $0x1,%ecx
jmp    1a02 <checkDiagonalWin+0x902>
xor    %ecx,%ecx
mov    0x11(%rdi),%al
cmp    $0x1,%al
je     1a16 <checkDiagonalWin+0x916>
cmp    $0x2,%al
jne    1a1d <checkDiagonalWin+0x91d>
mov    $0x2,%al
cmp    $0x2,%esi
jbe    1a1d <checkDiagonalWin+0x91d>
jmp    1a1f <checkDiagonalWin+0x91f>
mov    $0x1,%al
cmp    $0x3,%ecx
jae    1a1f <checkDiagonalWin+0x91f>
xor    %eax,%eax
ret

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

LLVM IR (-O2):
define signext i8 @checkDiagonalWin([6 x i8]* nocapture %0) {
%2 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 0, i64 0
%3 = load i8, i8* %2
switch i8 %3, label %6 [
i8 1, label %4
i8 2, label %5
]
4: ; preds = %1
br label %6
5: ; preds = %1
br label %6
6: ; preds = %5, %4, %1
%7 = phi i32 [ 1, %5 ], [ 1, %1 ], [ 2, %4 ]
%8 = phi i32 [ 2, %5 ], [ 1, %1 ], [ 1, %4 ]
%9 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 1, i64 1
%10 = load i8, i8* %9
switch i8 %10, label %13 [
i8 1, label %12
i8 2, label %11
]
11: ; preds = %6
br label %13
12: ; preds = %6
br label %13
13: ; preds = %12, %11, %6
%14 = phi i32 [ 0, %11 ], [ 0, %6 ], [ %7, %12 ]
%15 = phi i32 [ %8, %11 ], [ 0, %6 ], [ 0, %12 ]
%16 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 2, i64 2
%17 = load i8, i8* %16
switch i8 %17, label %22 [
i8 1, label %20
i8 2, label %18
]
18: ; preds = %13
%19 = add nuw nsw i32 %15, 1
br label %22
20: ; preds = %13
%21 = add nuw nsw i32 %14, 1
br label %22
22: ; preds = %20, %18, %13
%23 = phi i32 [ 0, %18 ], [ 0, %13 ], [ %21, %20 ]
%24 = phi i32 [ %19, %18 ], [ 0, %13 ], [ 0, %20 ]
%25 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 3, i64 3
%26 = load i8, i8* %25
switch i8 %26, label %33 [
i8 1, label %30
i8 2, label %27
]
27: ; preds = %22
%28 = add nuw nsw i32 %24, 1
%29 = icmp ugt i32 %24, 2
br i1 %29, label %517, label %33
30: ; preds = %22
%31 = add nuw nsw i32 %23, 1
%32 = icmp ugt i32 %23, 2
br i1 %32, label %517, label %33
33: ; preds = %30, %27, %22
%34 = phi i32 [ 0, %27 ], [ 0, %22 ], [ %31, %30 ]
%35 = phi i32 [ %28, %27 ], [ 0, %22 ], [ 0, %30 ]
%36 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 4, i64 4
%37 = load i8, i8* %36
switch i8 %37, label %44 [
i8 1, label %41
i8 2, label %38
]
38: ; preds = %33
%39 = add nuw nsw i32 %35, 1
%40 = icmp ugt i32 %35, 2
br i1 %40, label %517, label %44
41: ; preds = %33
%42 = add nuw nsw i32 %34, 1
%43 = icmp ugt i32 %34, 2
br i1 %43, label %517, label %44
44: ; preds = %41, %38, %33
%45 = phi i32 [ 0, %38 ], [ 0, %33 ], [ %42, %41 ]
%46 = phi i32 [ %39, %38 ], [ 0, %33 ], [ 0, %41 ]
%47 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 5, i64 5
%48 = load i8, i8* %47
switch i8 %48, label %55 [
i8 1, label %52
i8 2, label %49
]
49: ; preds = %44
%50 = add nuw nsw i32 %46, 1
%51 = icmp ugt i32 %46, 2
br i1 %51, label %517, label %55
52: ; preds = %44
%53 = add nuw nsw i32 %45, 1
%54 = icmp ugt i32 %45, 2
br i1 %54, label %517, label %55
55: ; preds = %52, %49, %44
%56 = phi i32 [ 0, %49 ], [ 0, %44 ], [ %53, %52 ]
%57 = phi i32 [ %50, %49 ], [ 0, %44 ], [ 0, %52 ]
%58 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 1, i64 0
%59 = load i8, i8* %58
switch i8 %59, label %66 [
i8 1, label %63
i8 2, label %60
]
60: ; preds = %55
%61 = add nuw nsw i32 %57, 1
%62 = icmp ugt i32 %57, 2
br i1 %62, label %517, label %66
63: ; preds = %55
%64 = add nuw nsw i32 %56, 1
%65 = icmp ugt i32 %56, 2
br i1 %65, label %517, label %66
66: ; preds = %63, %60, %55
%67 = phi i32 [ 0, %60 ], [ 0, %55 ], [ %64, %63 ]
%68 = phi i32 [ %61, %60 ], [ 0, %55 ], [ 0, %63 ]
%69 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 2, i64 1
%70 = load i8, i8* %69
switch i8 %70, label %77 [
i8 1, label %74
i8 2, label %71
]
71: ; preds = %66
%72 = add nuw nsw i32 %68, 1
%73 = icmp ugt i32 %68, 2
br i1 %73, label %517, label %77
74: ; preds = %66
%75 = add nuw nsw i32 %67, 1
%76 = icmp ugt i32 %67, 2
br i1 %76, label %517, label %77
77: ; preds = %74, %71, %66
%78 = phi i32 [ 0, %71 ], [ 0, %66 ], [ %75, %74 ]
%79 = phi i32 [ %72, %71 ], [ 0, %66 ], [ 0, %74 ]
%80 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 3, i64 2
%81 = load i8, i8* %80
switch i8 %81, label %88 [
i8 1, label %85
i8 2, label %82
]
82: ; preds = %77
%83 = add nuw nsw i32 %79, 1
%84 = icmp ugt i32 %79, 2
br i1 %84, label %517, label %88
85: ; preds = %77
%86 = add nuw nsw i32 %78, 1
%87 = icmp ugt i32 %78, 2
br i1 %87, label %517, label %88
88: ; preds = %85, %82, %77
%89 = phi i32 [ 0, %82 ], [ 0, %77 ], [ %86, %85 ]
%90 = phi i32 [ %83, %82 ], [ 0, %77 ], [ 0, %85 ]
%91 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 4, i64 3
%92 = load i8, i8* %91
switch i8 %92, label %99 [
i8 1, label %96
i8 2, label %93
]
93: ; preds = %88
%94 = add nuw nsw i32 %90, 1
%95 = icmp ugt i32 %90, 2
br i1 %95, label %517, label %99
96: ; preds = %88
%97 = add nuw nsw i32 %89, 1
%98 = icmp ugt i32 %89, 2
br i1 %98, label %517, label %99
99: ; preds = %96, %93, %88
%100 = phi i32 [ 0, %93 ], [ 0, %88 ], [ %97, %96 ]
%101 = phi i32 [ %94, %93 ], [ 0, %88 ], [ 0, %96 ]
%102 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 5, i64 4
%103 = load i8, i8* %102
switch i8 %103, label %110 [
i8 1, label %107
i8 2, label %104
]
104: ; preds = %99
%105 = add nuw nsw i32 %101, 1
%106 = icmp ugt i32 %101, 2
br i1 %106, label %517, label %110
107: ; preds = %99
%108 = add nuw nsw i32 %100, 1
%109 = icmp ugt i32 %100, 2
br i1 %109, label %517, label %110
110: ; preds = %107, %104, %99
%111 = phi i32 [ 0, %104 ], [ 0, %99 ], [ %108, %107 ]
%112 = phi i32 [ %105, %104 ], [ 0, %99 ], [ 0, %107 ]
%113 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 2, i64 0
%114 = load i8, i8* %113
switch i8 %114, label %121 [
i8 1, label %118
i8 2, label %115
]
115: ; preds = %110
%116 = add nuw nsw i32 %112, 1
%117 = icmp ugt i32 %112, 2
br i1 %117, label %517, label %121
118: ; preds = %110
%119 = add nuw nsw i32 %111, 1
%120 = icmp ugt i32 %111, 2
br i1 %120, label %517, label %121
121: ; preds = %118, %115, %110
%122 = phi i32 [ 0, %115 ], [ 0, %110 ], [ %119, %118 ]
%123 = phi i32 [ %116, %115 ], [ 0, %110 ], [ 0, %118 ]
%124 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 3, i64 1
%125 = load i8, i8* %124
switch i8 %125, label %132 [
i8 1, label %129
i8 2, label %126
]
126: ; preds = %121
%127 = add nuw nsw i32 %123, 1
%128 = icmp ugt i32 %123, 2
br i1 %128, label %517, label %132
129: ; preds = %121
%130 = add nuw nsw i32 %122, 1
%131 = icmp ugt i32 %122, 2
br i1 %131, label %517, label %132
132: ; preds = %129, %126, %121
%133 = phi i32 [ 0, %126 ], [ 0, %121 ], [ %130, %129 ]
%134 = phi i32 [ %127, %126 ], [ 0, %121 ], [ 0, %129 ]
%135 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 4, i64 2
%136 = load i8, i8* %135
switch i8 %136, label %143 [
i8 1, label %140
i8 2, label %137
]
137: ; preds = %132
%138 = add nuw nsw i32 %134, 1
%139 = icmp ugt i32 %134, 2
br i1 %139, label %517, label %143
140: ; preds = %132
%141 = add nuw nsw i32 %133, 1
%142 = icmp ugt i32 %133, 2
br i1 %142, label %517, label %143
143: ; preds = %140, %137, %132
%144 = phi i32 [ 0, %137 ], [ 0, %132 ], [ %141, %140 ]
%145 = phi i32 [ %138, %137 ], [ 0, %132 ], [ 0, %140 ]
%146 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 5, i64 3
%147 = load i8, i8* %146
switch i8 %147, label %154 [
i8 1, label %151
i8 2, label %148
]
148: ; preds = %143
%149 = add nuw nsw i32 %145, 1
%150 = icmp ugt i32 %145, 2
br i1 %150, label %517, label %154
151: ; preds = %143
%152 = add nuw nsw i32 %144, 1
%153 = icmp ugt i32 %144, 2
br i1 %153, label %517, label %154
154: ; preds = %151, %148, %143
%155 = phi i32 [ 0, %148 ], [ 0, %143 ], [ %152, %151 ]
%156 = phi i32 [ %149, %148 ], [ 0, %143 ], [ 0, %151 ]
%157 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 0, i64 1
%158 = load i8, i8* %157
switch i8 %158, label %165 [
i8 1, label %159
i8 2, label %162
]
159: ; preds = %154
%160 = add nuw nsw i32 %155, 1
%161 = icmp ugt i32 %155, 2
br i1 %161, label %517, label %165
162: ; preds = %154
%163 = add nuw nsw i32 %156, 1
%164 = icmp ugt i32 %156, 2
br i1 %164, label %517, label %165
165: ; preds = %159, %154, %162
%166 = phi i32 [ 0, %162 ], [ 0, %154 ], [ %160, %159 ]
%167 = phi i32 [ %163, %162 ], [ 0, %154 ], [ 0, %159 ]
%168 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 1, i64 2
%169 = load i8, i8* %168
switch i8 %169, label %176 [
i8 1, label %173
i8 2, label %170
]
170: ; preds = %165
%171 = add nuw nsw i32 %167, 1
%172 = icmp ugt i32 %167, 2
br i1 %172, label %517, label %176
173: ; preds = %165
%174 = add nuw nsw i32 %166, 1
%175 = icmp ugt i32 %166, 2
br i1 %175, label %517, label %176
176: ; preds = %173, %170, %165
%177 = phi i32 [ 0, %170 ], [ 0, %165 ], [ %174, %173 ]
%178 = phi i32 [ %171, %170 ], [ 0, %165 ], [ 0, %173 ]
%179 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 2, i64 3
%180 = load i8, i8* %179
switch i8 %180, label %187 [
i8 1, label %184
i8 2, label %181
]
181: ; preds = %176
%182 = add nuw nsw i32 %178, 1
%183 = icmp ugt i32 %178, 2
br i1 %183, label %517, label %187
184: ; preds = %176
%185 = add nuw nsw i32 %177, 1
%186 = icmp ugt i32 %177, 2
br i1 %186, label %517, label %187
187: ; preds = %184, %181, %176
%188 = phi i32 [ 0, %181 ], [ 0, %176 ], [ %185, %184 ]
%189 = phi i32 [ %182, %181 ], [ 0, %176 ], [ 0, %184 ]
%190 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 3, i64 4
%191 = load i8, i8* %190
switch i8 %191, label %198 [
i8 1, label %195
i8 2, label %192
]
192: ; preds = %187
%193 = add nuw nsw i32 %189, 1
%194 = icmp ugt i32 %189, 2
br i1 %194, label %517, label %198
195: ; preds = %187
%196 = add nuw nsw i32 %188, 1
%197 = icmp ugt i32 %188, 2
br i1 %197, label %517, label %198
198: ; preds = %195, %192, %187
%199 = phi i32 [ 0, %192 ], [ 0, %187 ], [ %196, %195 ]
%200 = phi i32 [ %193, %192 ], [ 0, %187 ], [ 0, %195 ]
%201 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 4, i64 5
%202 = load i8, i8* %201
switch i8 %202, label %209 [
i8 1, label %206
i8 2, label %203
]
203: ; preds = %198
%204 = add nuw nsw i32 %200, 1
%205 = icmp ugt i32 %200, 2
br i1 %205, label %517, label %209
206: ; preds = %198
%207 = add nuw nsw i32 %199, 1
%208 = icmp ugt i32 %199, 2
br i1 %208, label %517, label %209
209: ; preds = %206, %203, %198
%210 = phi i32 [ 0, %203 ], [ 0, %198 ], [ %207, %206 ]
%211 = phi i32 [ %204, %203 ], [ 0, %198 ], [ 0, %206 ]
%212 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 0, i64 2
%213 = load i8, i8* %212
switch i8 %213, label %220 [
i8 1, label %217
i8 2, label %214
]
214: ; preds = %209
%215 = add nuw nsw i32 %211, 1
%216 = icmp ugt i32 %211, 2
br i1 %216, label %517, label %220
217: ; preds = %209
%218 = add nuw nsw i32 %210, 1
%219 = icmp ugt i32 %210, 2
br i1 %219, label %517, label %220
220: ; preds = %217, %214, %209
%221 = phi i32 [ 0, %214 ], [ 0, %209 ], [ %218, %217 ]
%222 = phi i32 [ %215, %214 ], [ 0, %209 ], [ 0, %217 ]
%223 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 1, i64 3
%224 = load i8, i8* %223
switch i8 %224, label %231 [
i8 1, label %228
i8 2, label %225
]
225: ; preds = %220
%226 = add nuw nsw i32 %222, 1
%227 = icmp ugt i32 %222, 2
br i1 %227, label %517, label %231
228: ; preds = %220
%229 = add nuw nsw i32 %221, 1
%230 = icmp ugt i32 %221, 2
br i1 %230, label %517, label %231
231: ; preds = %228, %225, %220
%232 = phi i32 [ 0, %225 ], [ 0, %220 ], [ %229, %228 ]
%233 = phi i32 [ %226, %225 ], [ 0, %220 ], [ 0, %228 ]
%234 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 2, i64 4
%235 = load i8, i8* %234
switch i8 %235, label %242 [
i8 1, label %239
i8 2, label %236
]
236: ; preds = %231
%237 = add nuw nsw i32 %233, 1
%238 = icmp ugt i32 %233, 2
br i1 %238, label %517, label %242
239: ; preds = %231
%240 = add nuw nsw i32 %232, 1
%241 = icmp ugt i32 %232, 2
br i1 %241, label %517, label %242
242: ; preds = %239, %236, %231
%243 = phi i32 [ 0, %236 ], [ 0, %231 ], [ %240, %239 ]
%244 = phi i32 [ %237, %236 ], [ 0, %231 ], [ 0, %239 ]
%245 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 3, i64 5
%246 = load i8, i8* %245
switch i8 %246, label %253 [
i8 1, label %250
i8 2, label %247
]
247: ; preds = %242
%248 = add nuw nsw i32 %244, 1
%249 = icmp ugt i32 %244, 2
br i1 %249, label %517, label %253
250: ; preds = %242
%251 = add nuw nsw i32 %243, 1
%252 = icmp ugt i32 %243, 2
br i1 %252, label %517, label %253
253: ; preds = %250, %247, %242
%254 = phi i32 [ 0, %247 ], [ 0, %242 ], [ %251, %250 ]
%255 = phi i32 [ %248, %247 ], [ 0, %242 ], [ 0, %250 ]
%256 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 5, i64 0
%257 = load i8, i8* %256
switch i8 %257, label %264 [
i8 1, label %258
i8 2, label %261
]
258: ; preds = %253
%259 = add nuw nsw i32 %254, 1
%260 = icmp ugt i32 %254, 2
br i1 %260, label %517, label %264
261: ; preds = %253
%262 = add nuw nsw i32 %255, 1
%263 = icmp ugt i32 %255, 2
br i1 %263, label %517, label %264
264: ; preds = %258, %253, %261
%265 = phi i32 [ 0, %261 ], [ 0, %253 ], [ %259, %258 ]
%266 = phi i32 [ %262, %261 ], [ 0, %253 ], [ 0, %258 ]
%267 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 4, i64 1
%268 = load i8, i8* %267
switch i8 %268, label %275 [
i8 1, label %272
i8 2, label %269
]
269: ; preds = %264
%270 = add nuw nsw i32 %266, 1
%271 = icmp ugt i32 %266, 2
br i1 %271, label %517, label %275
272: ; preds = %264
%273 = add nuw nsw i32 %265, 1
%274 = icmp ugt i32 %265, 2
br i1 %274, label %517, label %275
275: ; preds = %272, %269, %264
%276 = phi i32 [ 0, %269 ], [ 0, %264 ], [ %273, %272 ]
%277 = phi i32 [ %270, %269 ], [ 0, %264 ], [ 0, %272 ]
%278 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 3, i64 2
%279 = load i8, i8* %278
switch i8 %279, label %286 [
i8 1, label %283
i8 2, label %280
]
280: ; preds = %275
%281 = add nuw nsw i32 %277, 1
%282 = icmp ugt i32 %277, 2
br i1 %282, label %517, label %286
283: ; preds = %275
%284 = add nuw nsw i32 %276, 1
%285 = icmp ugt i32 %276, 2
br i1 %285, label %517, label %286
286: ; preds = %283, %280, %275
%287 = phi i32 [ 0, %280 ], [ 0, %275 ], [ %284, %283 ]
%288 = phi i32 [ %281, %280 ], [ 0, %275 ], [ 0, %283 ]
%289 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 2, i64 3
%290 = load i8, i8* %289
switch i8 %290, label %297 [
i8 1, label %294
i8 2, label %291
]
291: ; preds = %286
%292 = add nuw nsw i32 %288, 1
%293 = icmp ugt i32 %288, 2
br i1 %293, label %517, label %297
294: ; preds = %286
%295 = add nuw nsw i32 %287, 1
%296 = icmp ugt i32 %287, 2
br i1 %296, label %517, label %297
297: ; preds = %294, %291, %286
%298 = phi i32 [ 0, %291 ], [ 0, %286 ], [ %295, %294 ]
%299 = phi i32 [ %292, %291 ], [ 0, %286 ], [ 0, %294 ]
%300 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 1, i64 4
%301 = load i8, i8* %300
switch i8 %301, label %308 [
i8 1, label %305
i8 2, label %302
]
302: ; preds = %297
%303 = add nuw nsw i32 %299, 1
%304 = icmp ugt i32 %299, 2
br i1 %304, label %517, label %308
305: ; preds = %297
%306 = add nuw nsw i32 %298, 1
%307 = icmp ugt i32 %298, 2
br i1 %307, label %517, label %308
308: ; preds = %305, %302, %297
%309 = phi i32 [ 0, %302 ], [ 0, %297 ], [ %306, %305 ]
%310 = phi i32 [ %303, %302 ], [ 0, %297 ], [ 0, %305 ]
%311 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 0, i64 5
%312 = load i8, i8* %311
switch i8 %312, label %319 [
i8 1, label %316
i8 2, label %313
]
313: ; preds = %308
%314 = add nuw nsw i32 %310, 1
%315 = icmp ugt i32 %310, 2
br i1 %315, label %517, label %319
316: ; preds = %308
%317 = add nuw nsw i32 %309, 1
%318 = icmp ugt i32 %309, 2
br i1 %318, label %517, label %319
319: ; preds = %316, %313, %308
%320 = phi i32 [ 0, %313 ], [ 0, %308 ], [ %317, %316 ]
%321 = phi i32 [ %314, %313 ], [ 0, %308 ], [ 0, %316 ]
%322 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 4, i64 0
%323 = load i8, i8* %322
switch i8 %323, label %330 [
i8 1, label %327
i8 2, label %324
]
324: ; preds = %319
%325 = add nuw nsw i32 %321, 1
%326 = icmp ugt i32 %321, 2
br i1 %326, label %517, label %330
327: ; preds = %319
%328 = add nuw nsw i32 %320, 1
%329 = icmp ugt i32 %320, 2
br i1 %329, label %517, label %330
330: ; preds = %327, %324, %319
%331 = phi i32 [ 0, %324 ], [ 0, %319 ], [ %328, %327 ]
%332 = phi i32 [ %325, %324 ], [ 0, %319 ], [ 0, %327 ]
%333 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 3, i64 1
%334 = load i8, i8* %333
switch i8 %334, label %341 [
i8 1, label %338
i8 2, label %335
]
335: ; preds = %330
%336 = add nuw nsw i32 %332, 1
%337 = icmp ugt i32 %332, 2
br i1 %337, label %517, label %341
338: ; preds = %330
%339 = add nuw nsw i32 %331, 1
%340 = icmp ugt i32 %331, 2
br i1 %340, label %517, label %341
341: ; preds = %338, %335, %330
%342 = phi i32 [ 0, %335 ], [ 0, %330 ], [ %339, %338 ]
%343 = phi i32 [ %336, %335 ], [ 0, %330 ], [ 0, %338 ]
%344 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 2, i64 2
%345 = load i8, i8* %344
switch i8 %345, label %352 [
i8 1, label %349
i8 2, label %346
]
346: ; preds = %341
%347 = add nuw nsw i32 %343, 1
%348 = icmp ugt i32 %343, 2
br i1 %348, label %517, label %352
349: ; preds = %341
%350 = add nuw nsw i32 %342, 1
%351 = icmp ugt i32 %342, 2
br i1 %351, label %517, label %352
352: ; preds = %349, %346, %341
%353 = phi i32 [ 0, %346 ], [ 0, %341 ], [ %350, %349 ]
%354 = phi i32 [ %347, %346 ], [ 0, %341 ], [ 0, %349 ]
%355 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 1, i64 3
%356 = load i8, i8* %355
switch i8 %356, label %363 [
i8 1, label %360
i8 2, label %357
]
357: ; preds = %352
%358 = add nuw nsw i32 %354, 1
%359 = icmp ugt i32 %354, 2
br i1 %359, label %517, label %363
360: ; preds = %352
%361 = add nuw nsw i32 %353, 1
%362 = icmp ugt i32 %353, 2
br i1 %362, label %517, label %363
363: ; preds = %360, %357, %352
%364 = phi i32 [ 0, %357 ], [ 0, %352 ], [ %361, %360 ]
%365 = phi i32 [ %358, %357 ], [ 0, %352 ], [ 0, %360 ]
%366 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 0, i64 4
%367 = load i8, i8* %366
switch i8 %367, label %374 [
i8 1, label %371
i8 2, label %368
]
368: ; preds = %363
%369 = add nuw nsw i32 %365, 1
%370 = icmp ugt i32 %365, 2
br i1 %370, label %517, label %374
371: ; preds = %363
%372 = add nuw nsw i32 %364, 1
%373 = icmp ugt i32 %364, 2
br i1 %373, label %517, label %374
374: ; preds = %371, %368, %363
%375 = phi i32 [ 0, %368 ], [ 0, %363 ], [ %372, %371 ]
%376 = phi i32 [ %369, %368 ], [ 0, %363 ], [ 0, %371 ]
%377 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 3, i64 0
%378 = load i8, i8* %377
switch i8 %378, label %385 [
i8 1, label %382
i8 2, label %379
]
379: ; preds = %374
%380 = add nuw nsw i32 %376, 1
%381 = icmp ugt i32 %376, 2
br i1 %381, label %517, label %385
382: ; preds = %374
%383 = add nuw nsw i32 %375, 1
%384 = icmp ugt i32 %375, 2
br i1 %384, label %517, label %385
385: ; preds = %382, %379, %374
%386 = phi i32 [ 0, %379 ], [ 0, %374 ], [ %383, %382 ]
%387 = phi i32 [ %380, %379 ], [ 0, %374 ], [ 0, %382 ]
%388 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 2, i64 1
%389 = load i8, i8* %388
switch i8 %389, label %396 [
i8 1, label %393
i8 2, label %390
]
390: ; preds = %385
%391 = add nuw nsw i32 %387, 1
%392 = icmp ugt i32 %387, 2
br i1 %392, label %517, label %396
393: ; preds = %385
%394 = add nuw nsw i32 %386, 1
%395 = icmp ugt i32 %386, 2
br i1 %395, label %517, label %396
396: ; preds = %393, %390, %385
%397 = phi i32 [ 0, %390 ], [ 0, %385 ], [ %394, %393 ]
%398 = phi i32 [ %391, %390 ], [ 0, %385 ], [ 0, %393 ]
%399 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 1, i64 2
%400 = load i8, i8* %399
switch i8 %400, label %407 [
i8 1, label %404
i8 2, label %401
]
401: ; preds = %396
%402 = add nuw nsw i32 %398, 1
%403 = icmp ugt i32 %398, 2
br i1 %403, label %517, label %407
404: ; preds = %396
%405 = add nuw nsw i32 %397, 1
%406 = icmp ugt i32 %397, 2
br i1 %406, label %517, label %407
407: ; preds = %404, %401, %396
%408 = phi i32 [ 0, %401 ], [ 0, %396 ], [ %405, %404 ]
%409 = phi i32 [ %402, %401 ], [ 0, %396 ], [ 0, %404 ]
%410 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 0, i64 3
%411 = load i8, i8* %410
switch i8 %411, label %418 [
i8 1, label %415
i8 2, label %412
]
412: ; preds = %407
%413 = add nuw nsw i32 %409, 1
%414 = icmp ugt i32 %409, 2
br i1 %414, label %517, label %418
415: ; preds = %407
%416 = add nuw nsw i32 %408, 1
%417 = icmp ugt i32 %408, 2
br i1 %417, label %517, label %418
418: ; preds = %415, %412, %407
%419 = phi i32 [ 0, %412 ], [ 0, %407 ], [ %416, %415 ]
%420 = phi i32 [ %413, %412 ], [ 0, %407 ], [ 0, %415 ]
%421 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 5, i64 1
%422 = load i8, i8* %421
switch i8 %422, label %429 [
i8 1, label %423
i8 2, label %426
]
423: ; preds = %418
%424 = add nuw nsw i32 %419, 1
%425 = icmp ugt i32 %419, 2
br i1 %425, label %515, label %429
426: ; preds = %418
%427 = add nuw nsw i32 %420, 1
%428 = icmp ugt i32 %420, 2
br i1 %428, label %515, label %429
429: ; preds = %423, %418, %426
%430 = phi i32 [ 0, %426 ], [ 0, %418 ], [ %424, %423 ]
%431 = phi i32 [ %427, %426 ], [ 0, %418 ], [ 0, %423 ]
%432 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 4, i64 2
%433 = load i8, i8* %432
switch i8 %433, label %440 [
i8 1, label %437
i8 2, label %434
]
434: ; preds = %429
%435 = add nuw nsw i32 %431, 1
%436 = icmp ugt i32 %431, 2
br i1 %436, label %515, label %440
437: ; preds = %429
%438 = add nuw nsw i32 %430, 1
%439 = icmp ugt i32 %430, 2
br i1 %439, label %515, label %440
440: ; preds = %437, %434, %429
%441 = phi i32 [ 0, %434 ], [ 0, %429 ], [ %438, %437 ]
%442 = phi i32 [ %435, %434 ], [ 0, %429 ], [ 0, %437 ]
%443 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 3, i64 3
%444 = load i8, i8* %443
switch i8 %444, label %451 [
i8 1, label %448
i8 2, label %445
]
445: ; preds = %440
%446 = add nuw nsw i32 %442, 1
%447 = icmp ugt i32 %442, 2
br i1 %447, label %515, label %451
448: ; preds = %440
%449 = add nuw nsw i32 %441, 1
%450 = icmp ugt i32 %441, 2
br i1 %450, label %515, label %451
451: ; preds = %448, %445, %440
%452 = phi i32 [ 0, %445 ], [ 0, %440 ], [ %449, %448 ]
%453 = phi i32 [ %446, %445 ], [ 0, %440 ], [ 0, %448 ]
%454 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 2, i64 4
%455 = load i8, i8* %454
switch i8 %455, label %462 [
i8 1, label %459
i8 2, label %456
]
456: ; preds = %451
%457 = add nuw nsw i32 %453, 1
%458 = icmp ugt i32 %453, 2
br i1 %458, label %515, label %462
459: ; preds = %451
%460 = add nuw nsw i32 %452, 1
%461 = icmp ugt i32 %452, 2
br i1 %461, label %515, label %462
462: ; preds = %459, %456, %451
%463 = phi i32 [ 0, %456 ], [ 0, %451 ], [ %460, %459 ]
%464 = phi i32 [ %457, %456 ], [ 0, %451 ], [ 0, %459 ]
%465 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 1, i64 5
%466 = load i8, i8* %465
switch i8 %466, label %473 [
i8 1, label %470
i8 2, label %467
]
467: ; preds = %462
%468 = add nuw nsw i32 %464, 1
%469 = icmp ugt i32 %464, 2
br i1 %469, label %515, label %473
470: ; preds = %462
%471 = add nuw nsw i32 %463, 1
%472 = icmp ugt i32 %463, 2
br i1 %472, label %515, label %473
473: ; preds = %470, %467, %462
%474 = phi i32 [ 0, %467 ], [ 0, %462 ], [ %471, %470 ]
%475 = phi i32 [ %468, %467 ], [ 0, %462 ], [ 0, %470 ]
%476 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 5, i64 2
%477 = load i8, i8* %476
switch i8 %477, label %484 [
i8 1, label %481
i8 2, label %478
]
478: ; preds = %473
%479 = add nuw nsw i32 %475, 1
%480 = icmp ugt i32 %475, 2
br i1 %480, label %515, label %484
481: ; preds = %473
%482 = add nuw nsw i32 %474, 1
%483 = icmp ugt i32 %474, 2
br i1 %483, label %515, label %484
484: ; preds = %481, %478, %473
%485 = phi i32 [ 0, %478 ], [ 0, %473 ], [ %482, %481 ]
%486 = phi i32 [ %479, %478 ], [ 0, %473 ], [ 0, %481 ]
%487 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 4, i64 3
%488 = load i8, i8* %487
switch i8 %488, label %495 [
i8 1, label %492
i8 2, label %489
]
489: ; preds = %484
%490 = add nuw nsw i32 %486, 1
%491 = icmp ugt i32 %486, 2
br i1 %491, label %515, label %495
492: ; preds = %484
%493 = add nuw nsw i32 %485, 1
%494 = icmp ugt i32 %485, 2
br i1 %494, label %515, label %495
495: ; preds = %492, %489, %484
%496 = phi i32 [ 0, %489 ], [ 0, %484 ], [ %493, %492 ]
%497 = phi i32 [ %490, %489 ], [ 0, %484 ], [ 0, %492 ]
%498 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 3, i64 4
%499 = load i8, i8* %498
switch i8 %499, label %506 [
i8 1, label %503
i8 2, label %500
]
500: ; preds = %495
%501 = add nuw nsw i32 %497, 1
%502 = icmp ugt i32 %497, 2
br i1 %502, label %515, label %506
503: ; preds = %495
%504 = add nuw nsw i32 %496, 1
%505 = icmp ugt i32 %496, 2
br i1 %505, label %515, label %506
506: ; preds = %503, %500, %495
%507 = phi i32 [ 0, %500 ], [ 0, %495 ], [ %504, %503 ]
%508 = phi i32 [ %501, %500 ], [ 0, %495 ], [ 0, %503 ]
%509 = getelementptr inbounds [6 x i8], [6 x i8]* %0, i64 2, i64 5
%510 = load i8, i8* %509
switch i8 %510, label %517 [
i8 1, label %513
i8 2, label %511
]
511: ; preds = %506
%512 = icmp ugt i32 %508, 2
br i1 %512, label %515, label %517
513: ; preds = %506
%514 = icmp ugt i32 %507, 2
br i1 %514, label %515, label %517
515: ; preds = %481, %478, %489, %492, %500, %503, %511, %513, %423, %426, %434, %437, %445, %448, %456, %459, %467, %470
%516 = phi i8 [ 2, %426 ], [ 1, %423 ], [ 2, %434 ], [ 1, %437 ], [ 2, %445 ], [ 1, %448 ], [ 2, %456 ], [ 1, %459 ], [ 2, %467 ], [ 1, %470 ], [ 1, %481 ], [ 2, %478 ], [ 2, %489 ], [ 1, %492 ], [ 2, %500 ], [ 1, %503 ], [ 2, %511 ], [ 1, %513 ]
br label %517
517: ; preds = %52, %49, %41, %38, %30, %27, %107, %104, %96, %93, %85, %82, %74, %71, %60, %63, %151, %148, %140, %137, %129, %126, %115, %118, %206, %203, %195, %192, %184, %181, %173, %170, %162, %159, %250, %247, %239, %236, %228, %225, %214, %217, %316, %313, %305, %302, %294, %291, %283, %280, %272, %269, %261, %258, %371, %368, %360, %357, %349, %346, %338, %335, %324, %327, %415, %412, %404, %401, %393, %390, %379, %382, %513, %511, %506, %515
%518 = phi i8 [ %516, %515 ], [ 0, %506 ], [ 0, %511 ], [ 0, %513 ], [ 2, %261 ], [ 1, %258 ], [ 2, %269 ], [ 1, %272 ], [ 2, %280 ], [ 1, %283 ], [ 2, %291 ], [ 1, %294 ], [ 2, %302 ], [ 1, %305 ], [ 2, %313 ], [ 1, %316 ], [ 1, %327 ], [ 2, %324 ], [ 2, %335 ], [ 1, %338 ], [ 2, %346 ], [ 1, %349 ], [ 2, %357 ], [ 1, %360 ], [ 2, %368 ], [ 1, %371 ], [ 1, %382 ], [ 2, %379 ], [ 2, %390 ], [ 1, %393 ], [ 2, %401 ], [ 1, %404 ], [ 2, %412 ], [ 1, %415 ], [ 2, %162 ], [ 1, %159 ], [ 2, %170 ], [ 1, %173 ], [ 2, %181 ], [ 1, %184 ], [ 2, %192 ], [ 1, %195 ], [ 2, %203 ], [ 1, %206 ], [ 1, %217 ], [ 2, %214 ], [ 2, %225 ], [ 1, %228 ], [ 2, %236 ], [ 1, %239 ], [ 2, %247 ], [ 1, %250 ], [ 2, %27 ], [ 1, %30 ], [ 2, %38 ], [ 1, %41 ], [ 2, %49 ], [ 1, %52 ], [ 1, %63 ], [ 2, %60 ], [ 2, %71 ], [ 1, %74 ], [ 2, %82 ], [ 1, %85 ], [ 2, %93 ], [ 1, %96 ], [ 2, %104 ], [ 1, %107 ], [ 1, %118 ], [ 2, %115 ], [ 2, %126 ], [ 1, %129 ], [ 2, %137 ], [ 1, %140 ], [ 2, %148 ], [ 1, %151 ]
ret i8 %518
}