int Deplacement(int (*m)[25], int *pos, char direction) {
  int retour = 0;
  if (direction == 'G') {
    if (((m[pos[1]][pos[0] - 1] == 0) || (m[pos[1]][pos[0] - 1] == 3)) ||
        (((m[pos[1]][pos[0] - 1] == 2) || (m[pos[1]][pos[0] - 1] == 6)) &&
         ((m[pos[1]][pos[0] - 2] == 0) || (m[pos[1]][pos[0] - 2] == 3)))) {
      if ((m[pos[1]][pos[0] - 1] == 2) || (m[pos[1]][pos[0] - 1] == 6)) {
        if (m[pos[1]][pos[0] - 2] == 3)
          m[pos[1]][pos[0] - 2] = 6;
        else
          m[pos[1]][pos[0] - 2] = 2;
      }
      if ((m[pos[1]][pos[0] - 1] == 3) || (m[pos[1]][pos[0] - 1] == 6))
        m[pos[1]][pos[0] - 1] = 5;
      else
        m[pos[1]][pos[0] - 1] = 4;
      if (m[pos[1]][pos[0]] == 5)
        m[pos[1]][pos[0]] = 3;
      else
        m[pos[1]][pos[0]] = 0;
      retour = 1;
    }
  }
  if (direction == 'D') {
    if (((m[pos[1]][pos[0] + 1] == 0) || (m[pos[1]][pos[0] + 1] == 3)) ||
        (((m[pos[1]][pos[0] + 1] == 2) || (m[pos[1]][pos[0] + 1] == 6)) &&
         ((m[pos[1]][pos[0] + 2] == 0) || (m[pos[1]][pos[0] + 2] == 3)))) {
      if ((m[pos[1]][pos[0] + 1] == 2) || (m[pos[1]][pos[0] + 1] == 6)) {
        if (m[pos[1]][pos[0] + 2] == 3)
          m[pos[1]][pos[0] + 2] = 6;
        else
          m[pos[1]][pos[0] + 2] = 2;
      }
      if ((m[pos[1]][pos[0] + 1] == 3) || (m[pos[1]][pos[0] + 1] == 6))
        m[pos[1]][pos[0] + 1] = 5;
      else
        m[pos[1]][pos[0] + 1] = 4;
      if (m[pos[1]][pos[0]] == 5)
        m[pos[1]][pos[0]] = 3;
      else
        m[pos[1]][pos[0]] = 0;
      retour = 1;
    }
  }
  if (direction == 'H') {
    if (((m[pos[1] - 1][pos[0]] == 0) || (m[pos[1] - 1][pos[0]] == 3)) ||
        (((m[pos[1] - 1][pos[0]] == 2) || (m[pos[1] - 1][pos[0]] == 6)) &&
         ((m[pos[1] - 2][pos[0]] == 0) || (m[pos[1] - 2][pos[0]] == 3)))) {
      if ((m[pos[1] - 1][pos[0]] == 2) || (m[pos[1] - 1][pos[0]] == 6)) {
        if (m[pos[1] - 2][pos[0]] == 3)
          m[pos[1] - 2][pos[0]] = 6;
        else
          m[pos[1] - 2][pos[0]] = 2;
      }
      if ((m[pos[1] - 1][pos[0]] == 3) || (m[pos[1] - 1][pos[0]] == 6))
        m[pos[1] - 1][pos[0]] = 5;
      else
        m[pos[1] - 1][pos[0]] = 4;
      if (m[pos[1]][pos[0]] == 5)
        m[pos[1]][pos[0]] = 3;
      else
        m[pos[1]][pos[0]] = 0;
      retour = 1;
    }
  }
  if (direction == 'B') {
    if (((m[pos[1] + 1][pos[0]] == 0) || (m[pos[1] + 1][pos[0]] == 3)) ||
        (((m[pos[1] + 1][pos[0]] == 2) || (m[pos[1] + 1][pos[0]] == 6)) &&
         ((m[pos[1] + 2][pos[0]] == 0) || (m[pos[1] + 2][pos[0]] == 3)))) {
      if ((m[pos[1] + 1][pos[0]] == 2) || (m[pos[1] + 1][pos[0]] == 6)) {
        if (m[pos[1] + 2][pos[0]] == 3)
          m[pos[1] + 2][pos[0]] = 6;
        else
          m[pos[1] + 2][pos[0]] = 2;
      }
      if ((m[pos[1] + 1][pos[0]] == 3) || (m[pos[1] + 1][pos[0]] == 6))
        m[pos[1] + 1][pos[0]] = 5;
      else
        m[pos[1] + 1][pos[0]] = 4;
      if (m[pos[1]][pos[0]] == 5)
        m[pos[1]][pos[0]] = 3;
      else
        m[pos[1]][pos[0]] = 0;
      retour = 1;
    }
  }
  return retour;
}


x86 assembly (clang, -O0):
<Deplacement>:
push   %rbp
mov    %rsp,%rbp
mov    %dl,%al
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %al,-0x11(%rbp)
movl   $0x0,-0x18(%rbp)
movsbl -0x11(%rbp),%eax
cmp    $0x47,%eax
jne    1406 <Deplacement+0x306>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
cmpl   $0x0,(%rax,%rcx,4)
je     121b <Deplacement+0x11b>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
cmpl   $0x3,(%rax,%rcx,4)
je     121b <Deplacement+0x11b>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
cmpl   $0x2,(%rax,%rcx,4)
je     11c9 <Deplacement+0xc9>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
cmpl   $0x6,(%rax,%rcx,4)
jne    1401 <Deplacement+0x301>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x2,%ecx
movslq %ecx,%rcx
cmpl   $0x0,(%rax,%rcx,4)
je     121b <Deplacement+0x11b>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x2,%ecx
movslq %ecx,%rcx
cmpl   $0x3,(%rax,%rcx,4)
jne    1401 <Deplacement+0x301>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
cmpl   $0x2,(%rax,%rcx,4)
je     126d <Deplacement+0x16d>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
cmpl   $0x6,(%rax,%rcx,4)
jne    12ec <Deplacement+0x1ec>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x2,%ecx
movslq %ecx,%rcx
cmpl   $0x3,(%rax,%rcx,4)
jne    12c1 <Deplacement+0x1c1>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x2,%ecx
movslq %ecx,%rcx
movl   $0x6,(%rax,%rcx,4)
jmp    12e7 <Deplacement+0x1e7>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x2,%ecx
movslq %ecx,%rcx
movl   $0x2,(%rax,%rcx,4)
jmp    12ec <Deplacement+0x1ec>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
cmpl   $0x3,(%rax,%rcx,4)
je     133e <Deplacement+0x23e>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
cmpl   $0x6,(%rax,%rcx,4)
jne    1369 <Deplacement+0x269>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movl   $0x5,(%rax,%rcx,4)
jmp    138f <Deplacement+0x28f>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movl   $0x4,(%rax,%rcx,4)
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
cmpl   $0x5,(%rax,%rcx,4)
jne    13d9 <Deplacement+0x2d9>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
movl   $0x3,(%rax,%rcx,4)
jmp    13fa <Deplacement+0x2fa>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
movl   $0x0,(%rax,%rcx,4)
movl   $0x1,-0x18(%rbp)
jmp    1406 <Deplacement+0x306>
movsbl -0x11(%rbp),%eax
cmp    $0x44,%eax
jne    16f4 <Deplacement+0x5f4>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
mov    (%rcx),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
cmpl   $0x0,(%rax,%rcx,4)
je     1509 <Deplacement+0x409>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
mov    (%rcx),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
cmpl   $0x3,(%rax,%rcx,4)
je     1509 <Deplacement+0x409>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
mov    (%rcx),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
cmpl   $0x2,(%rax,%rcx,4)
je     14b7 <Deplacement+0x3b7>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
mov    (%rcx),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
cmpl   $0x6,(%rax,%rcx,4)
jne    16ef <Deplacement+0x5ef>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
mov    (%rcx),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
cmpl   $0x0,(%rax,%rcx,4)
je     1509 <Deplacement+0x409>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
mov    (%rcx),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
cmpl   $0x3,(%rax,%rcx,4)
jne    16ef <Deplacement+0x5ef>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
mov    (%rcx),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
cmpl   $0x2,(%rax,%rcx,4)
je     155b <Deplacement+0x45b>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
mov    (%rcx),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
cmpl   $0x6,(%rax,%rcx,4)
jne    15da <Deplacement+0x4da>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
mov    (%rcx),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
cmpl   $0x3,(%rax,%rcx,4)
jne    15af <Deplacement+0x4af>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
mov    (%rcx),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movl   $0x6,(%rax,%rcx,4)
jmp    15d5 <Deplacement+0x4d5>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
mov    (%rcx),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movl   $0x2,(%rax,%rcx,4)
jmp    15da <Deplacement+0x4da>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
mov    (%rcx),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
cmpl   $0x3,(%rax,%rcx,4)
je     162c <Deplacement+0x52c>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
mov    (%rcx),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
cmpl   $0x6,(%rax,%rcx,4)
jne    1657 <Deplacement+0x557>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
mov    (%rcx),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movl   $0x5,(%rax,%rcx,4)
jmp    167d <Deplacement+0x57d>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
mov    (%rcx),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movl   $0x4,(%rax,%rcx,4)
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
cmpl   $0x5,(%rax,%rcx,4)
jne    16c7 <Deplacement+0x5c7>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
movl   $0x3,(%rax,%rcx,4)
jmp    16e8 <Deplacement+0x5e8>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
movl   $0x0,(%rax,%rcx,4)
movl   $0x1,-0x18(%rbp)
jmp    16f4 <Deplacement+0x5f4>
movsbl -0x11(%rbp),%eax
cmp    $0x48,%eax
jne    19e2 <Deplacement+0x8e2>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    0x4(%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
cmpl   $0x0,(%rax,%rcx,4)
je     17f7 <Deplacement+0x6f7>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    0x4(%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
cmpl   $0x3,(%rax,%rcx,4)
je     17f7 <Deplacement+0x6f7>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    0x4(%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
cmpl   $0x2,(%rax,%rcx,4)
je     17a5 <Deplacement+0x6a5>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    0x4(%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
cmpl   $0x6,(%rax,%rcx,4)
jne    19dd <Deplacement+0x8dd>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    0x4(%rcx),%ecx
sub    $0x2,%ecx
movslq %ecx,%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
cmpl   $0x0,(%rax,%rcx,4)
je     17f7 <Deplacement+0x6f7>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    0x4(%rcx),%ecx
sub    $0x2,%ecx
movslq %ecx,%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
cmpl   $0x3,(%rax,%rcx,4)
jne    19dd <Deplacement+0x8dd>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    0x4(%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
cmpl   $0x2,(%rax,%rcx,4)
je     1849 <Deplacement+0x749>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    0x4(%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
cmpl   $0x6,(%rax,%rcx,4)
jne    18c8 <Deplacement+0x7c8>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    0x4(%rcx),%ecx
sub    $0x2,%ecx
movslq %ecx,%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
cmpl   $0x3,(%rax,%rcx,4)
jne    189d <Deplacement+0x79d>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    0x4(%rcx),%ecx
sub    $0x2,%ecx
movslq %ecx,%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
movl   $0x6,(%rax,%rcx,4)
jmp    18c3 <Deplacement+0x7c3>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    0x4(%rcx),%ecx
sub    $0x2,%ecx
movslq %ecx,%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
movl   $0x2,(%rax,%rcx,4)
jmp    18c8 <Deplacement+0x7c8>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    0x4(%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
cmpl   $0x3,(%rax,%rcx,4)
je     191a <Deplacement+0x81a>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    0x4(%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
cmpl   $0x6,(%rax,%rcx,4)
jne    1945 <Deplacement+0x845>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    0x4(%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
movl   $0x5,(%rax,%rcx,4)
jmp    196b <Deplacement+0x86b>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    0x4(%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
movl   $0x4,(%rax,%rcx,4)
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
cmpl   $0x5,(%rax,%rcx,4)
jne    19b5 <Deplacement+0x8b5>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
movl   $0x3,(%rax,%rcx,4)
jmp    19d6 <Deplacement+0x8d6>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
movl   $0x0,(%rax,%rcx,4)
movl   $0x1,-0x18(%rbp)
jmp    19e2 <Deplacement+0x8e2>
movsbl -0x11(%rbp),%eax
cmp    $0x42,%eax
jne    1cd0 <Deplacement+0xbd0>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    0x4(%rcx),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
cmpl   $0x0,(%rax,%rcx,4)
je     1ae5 <Deplacement+0x9e5>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    0x4(%rcx),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
cmpl   $0x3,(%rax,%rcx,4)
je     1ae5 <Deplacement+0x9e5>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    0x4(%rcx),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
cmpl   $0x2,(%rax,%rcx,4)
je     1a93 <Deplacement+0x993>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    0x4(%rcx),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
cmpl   $0x6,(%rax,%rcx,4)
jne    1ccb <Deplacement+0xbcb>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    0x4(%rcx),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
cmpl   $0x0,(%rax,%rcx,4)
je     1ae5 <Deplacement+0x9e5>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    0x4(%rcx),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
cmpl   $0x3,(%rax,%rcx,4)
jne    1ccb <Deplacement+0xbcb>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    0x4(%rcx),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
cmpl   $0x2,(%rax,%rcx,4)
je     1b37 <Deplacement+0xa37>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    0x4(%rcx),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
cmpl   $0x6,(%rax,%rcx,4)
jne    1bb6 <Deplacement+0xab6>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    0x4(%rcx),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
cmpl   $0x3,(%rax,%rcx,4)
jne    1b8b <Deplacement+0xa8b>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    0x4(%rcx),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
movl   $0x6,(%rax,%rcx,4)
jmp    1bb1 <Deplacement+0xab1>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    0x4(%rcx),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
movl   $0x2,(%rax,%rcx,4)
jmp    1bb6 <Deplacement+0xab6>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    0x4(%rcx),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
cmpl   $0x3,(%rax,%rcx,4)
je     1c08 <Deplacement+0xb08>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    0x4(%rcx),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
cmpl   $0x6,(%rax,%rcx,4)
jne    1c33 <Deplacement+0xb33>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    0x4(%rcx),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
movl   $0x5,(%rax,%rcx,4)
jmp    1c59 <Deplacement+0xb59>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
mov    0x4(%rcx),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
movl   $0x4,(%rax,%rcx,4)
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
cmpl   $0x5,(%rax,%rcx,4)
jne    1ca3 <Deplacement+0xba3>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
movl   $0x3,(%rax,%rcx,4)
jmp    1cc4 <Deplacement+0xbc4>
mov    -0x8(%rbp),%rax
mov    -0x10(%rbp),%rcx
movslq 0x4(%rcx),%rcx
imul   $0x64,%rcx,%rcx
add    %rcx,%rax
mov    -0x10(%rbp),%rcx
movslq (%rcx),%rcx
movl   $0x0,(%rax,%rcx,4)
movl   $0x1,-0x18(%rbp)
jmp    1cd0 <Deplacement+0xbd0>
mov    -0x18(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<Deplacement>:
xor    %eax,%eax
add    $0xbe,%dl
cmp    $0x6,%dl
ja     1331 <Deplacement+0x231>
movzbl %dl,%ecx
lea    0xee8(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
movslq 0x4(%rsi),%rcx
imul   $0x64,%rcx,%rcx
movslq (%rsi),%r8
add    %rdi,%rcx
mov    0x64(%rcx,%r8,4),%r10d
cmp    $0x6,%r10
ja     1331 <Deplacement+0x231>
lea    0xed7(%rip),%r9
movslq (%r9,%r10,4),%rdx
add    %r9,%rdx
jmp    *%rdx
mov    0xc8(%rcx,%r8,4),%r9d
cmp    $0x3,%r9d
je     1165 <Deplacement+0x65>
test   %r9d,%r9d
jne    1331 <Deplacement+0x231>
or     $0x4,%r10d
cmp    $0x6,%r10d
jne    118b <Deplacement+0x8b>
lea    (%rcx,%r8,4),%rax
add    $0xc8,%rax
xor    %ecx,%ecx
cmp    $0x3,%r9d
sete   %cl
lea    0x2(,%rcx,4),%ecx
mov    %ecx,(%rax)
mov    (%rsi),%eax
mov    0x4(%rsi),%ecx
add    $0x1,%ecx
jmp    12e7 <Deplacement+0x1e7>
movslq 0x4(%rsi),%rcx
movslq (%rsi),%r8
imul   $0x64,%rcx,%rdx
add    %rdi,%rdx
mov    -0x4(%rdx,%r8,4),%r10d
cmp    $0x6,%r10
ja     1331 <Deplacement+0x231>
lea    0xeb4(%rip),%r9
movslq (%r9,%r10,4),%rcx
add    %r9,%rcx
jmp    *%rcx
mov    -0x8(%rdx,%r8,4),%r9d
cmp    $0x3,%r9d
je     11d9 <Deplacement+0xd9>
test   %r9d,%r9d
jne    1331 <Deplacement+0x231>
or     $0x4,%r10d
cmp    $0x6,%r10d
jne    11fd <Deplacement+0xfd>
lea    (%rdx,%r8,4),%rax
add    $0xfffffffffffffff8,%rax
xor    %ecx,%ecx
cmp    $0x3,%r9d
sete   %cl
lea    0x2(,%rcx,4),%ecx
mov    %ecx,(%rax)
mov    (%rsi),%eax
mov    0x4(%rsi),%ecx
add    $0xffffffff,%eax
jmp    12e7 <Deplacement+0x1e7>
movslq 0x4(%rsi),%rcx
movslq (%rsi),%r8
imul   $0x64,%rcx,%rdx
add    %rdi,%rdx
mov    0x4(%rdx,%r8,4),%r10d
cmp    $0x6,%r10
ja     1331 <Deplacement+0x231>
lea    0xe26(%rip),%r9
movslq (%r9,%r10,4),%rcx
add    %r9,%rcx
jmp    *%rcx
mov    0x8(%rdx,%r8,4),%r9d
cmp    $0x3,%r9d
je     124b <Deplacement+0x14b>
test   %r9d,%r9d
jne    1331 <Deplacement+0x231>
or     $0x4,%r10d
cmp    $0x6,%r10d
jne    126f <Deplacement+0x16f>
lea    (%rdx,%r8,4),%rax
add    $0x8,%rax
xor    %ecx,%ecx
cmp    $0x3,%r9d
sete   %cl
lea    0x2(,%rcx,4),%ecx
mov    %ecx,(%rax)
mov    (%rsi),%eax
mov    0x4(%rsi),%ecx
add    $0x1,%eax
jmp    12e7 <Deplacement+0x1e7>
movslq 0x4(%rsi),%rcx
imul   $0x64,%rcx,%rcx
movslq (%rsi),%r8
add    %rdi,%rcx
mov    -0x64(%rcx,%r8,4),%r10d
cmp    $0x6,%r10
ja     1331 <Deplacement+0x231>
lea    0xd9b(%rip),%r9
movslq (%r9,%r10,4),%rdx
add    %r9,%rdx
jmp    *%rdx
mov    -0xc8(%rcx,%r8,4),%r9d
ff
cmp    $0x3,%r9d
je     12b9 <Deplacement+0x1b9>
test   %r9d,%r9d
jne    1331 <Deplacement+0x231>
or     $0x4,%r10d
cmp    $0x6,%r10d
jne    12df <Deplacement+0x1df>
lea    (%rcx,%r8,4),%rax
add    $0xffffffffffffff38,%rax
xor    %ecx,%ecx
cmp    $0x3,%r9d
sete   %cl
lea    0x2(,%rcx,4),%ecx
mov    %ecx,(%rax)
mov    (%rsi),%eax
mov    0x4(%rsi),%ecx
add    $0xffffffff,%ecx
movslq %ecx,%rcx
cltq
imul   $0x64,%rcx,%rcx
add    %rdi,%rcx
mov    (%rcx,%rax,4),%edx
cmp    $0x3,%edx
sete   %r8b
cmp    $0x6,%edx
sete   %dl
or     %r8b,%dl
movzbl %dl,%edx
or     $0x4,%edx
mov    %edx,(%rcx,%rax,4)
movslq 0x4(%rsi),%rax
movslq (%rsi),%rcx
imul   $0x64,%rax,%rax
add    %rdi,%rax
xor    %edx,%edx
cmpl   $0x5,(%rax,%rcx,4)
sete   %dl
lea    (%rdx,%rdx,2),%edx
mov    %edx,(%rax,%rcx,4)
mov    $0x1,%eax
ret

LLVM IR (-O0):
define i32 @Deplacement([25 x i32]* %0, i32* %1, i8 signext %2) {
%4 = alloca [25 x i32]*
%5 = alloca i32*
%6 = alloca i8
%7 = alloca i32
store [25 x i32]* %0, [25 x i32]** %4
store i32* %1, i32** %5
store i8 %2, i8* %6
store i32 0, i32* %7
%8 = load i8, i8* %6
%9 = sext i8 %8 to i32
%10 = icmp eq i32 %9, 71
br i1 %10, label %11, label %269
11: ; preds = %3
%12 = load [25 x i32]*, [25 x i32]** %4
%13 = load i32*, i32** %5
%14 = getelementptr inbounds i32, i32* %13, i64 1
%15 = load i32, i32* %14
%16 = sext i32 %15 to i64
%17 = getelementptr inbounds [25 x i32], [25 x i32]* %12, i64 %16
%18 = load i32*, i32** %5
%19 = getelementptr inbounds i32, i32* %18, i64 0
%20 = load i32, i32* %19
%21 = sub nsw i32 %20, 1
%22 = sext i32 %21 to i64
%23 = getelementptr inbounds [25 x i32], [25 x i32]* %17, i64 0, i64 %22
%24 = load i32, i32* %23
%25 = icmp eq i32 %24, 0
br i1 %25, label %101, label %26
26: ; preds = %11
%27 = load [25 x i32]*, [25 x i32]** %4
%28 = load i32*, i32** %5
%29 = getelementptr inbounds i32, i32* %28, i64 1
%30 = load i32, i32* %29
%31 = sext i32 %30 to i64
%32 = getelementptr inbounds [25 x i32], [25 x i32]* %27, i64 %31
%33 = load i32*, i32** %5
%34 = getelementptr inbounds i32, i32* %33, i64 0
%35 = load i32, i32* %34
%36 = sub nsw i32 %35, 1
%37 = sext i32 %36 to i64
%38 = getelementptr inbounds [25 x i32], [25 x i32]* %32, i64 0, i64 %37
%39 = load i32, i32* %38
%40 = icmp eq i32 %39, 3
br i1 %40, label %101, label %41
41: ; preds = %26
%42 = load [25 x i32]*, [25 x i32]** %4
%43 = load i32*, i32** %5
%44 = getelementptr inbounds i32, i32* %43, i64 1
%45 = load i32, i32* %44
%46 = sext i32 %45 to i64
%47 = getelementptr inbounds [25 x i32], [25 x i32]* %42, i64 %46
%48 = load i32*, i32** %5
%49 = getelementptr inbounds i32, i32* %48, i64 0
%50 = load i32, i32* %49
%51 = sub nsw i32 %50, 1
%52 = sext i32 %51 to i64
%53 = getelementptr inbounds [25 x i32], [25 x i32]* %47, i64 0, i64 %52
%54 = load i32, i32* %53
%55 = icmp eq i32 %54, 2
br i1 %55, label %71, label %56
56: ; preds = %41
%57 = load [25 x i32]*, [25 x i32]** %4
%58 = load i32*, i32** %5
%59 = getelementptr inbounds i32, i32* %58, i64 1
%60 = load i32, i32* %59
%61 = sext i32 %60 to i64
%62 = getelementptr inbounds [25 x i32], [25 x i32]* %57, i64 %61
%63 = load i32*, i32** %5
%64 = getelementptr inbounds i32, i32* %63, i64 0
%65 = load i32, i32* %64
%66 = sub nsw i32 %65, 1
%67 = sext i32 %66 to i64
%68 = getelementptr inbounds [25 x i32], [25 x i32]* %62, i64 0, i64 %67
%69 = load i32, i32* %68
%70 = icmp eq i32 %69, 6
br i1 %70, label %71, label %268
71: ; preds = %56, %41
%72 = load [25 x i32]*, [25 x i32]** %4
%73 = load i32*, i32** %5
%74 = getelementptr inbounds i32, i32* %73, i64 1
%75 = load i32, i32* %74
%76 = sext i32 %75 to i64
%77 = getelementptr inbounds [25 x i32], [25 x i32]* %72, i64 %76
%78 = load i32*, i32** %5
%79 = getelementptr inbounds i32, i32* %78, i64 0
%80 = load i32, i32* %79
%81 = sub nsw i32 %80, 2
%82 = sext i32 %81 to i64
%83 = getelementptr inbounds [25 x i32], [25 x i32]* %77, i64 0, i64 %82
%84 = load i32, i32* %83
%85 = icmp eq i32 %84, 0
br i1 %85, label %101, label %86
86: ; preds = %71
%87 = load [25 x i32]*, [25 x i32]** %4
%88 = load i32*, i32** %5
%89 = getelementptr inbounds i32, i32* %88, i64 1
%90 = load i32, i32* %89
%91 = sext i32 %90 to i64
%92 = getelementptr inbounds [25 x i32], [25 x i32]* %87, i64 %91
%93 = load i32*, i32** %5
%94 = getelementptr inbounds i32, i32* %93, i64 0
%95 = load i32, i32* %94
%96 = sub nsw i32 %95, 2
%97 = sext i32 %96 to i64
%98 = getelementptr inbounds [25 x i32], [25 x i32]* %92, i64 0, i64 %97
%99 = load i32, i32* %98
%100 = icmp eq i32 %99, 3
br i1 %100, label %101, label %268
101: ; preds = %86, %71, %26, %11
%102 = load [25 x i32]*, [25 x i32]** %4
%103 = load i32*, i32** %5
%104 = getelementptr inbounds i32, i32* %103, i64 1
%105 = load i32, i32* %104
%106 = sext i32 %105 to i64
%107 = getelementptr inbounds [25 x i32], [25 x i32]* %102, i64 %106
%108 = load i32*, i32** %5
%109 = getelementptr inbounds i32, i32* %108, i64 0
%110 = load i32, i32* %109
%111 = sub nsw i32 %110, 1
%112 = sext i32 %111 to i64
%113 = getelementptr inbounds [25 x i32], [25 x i32]* %107, i64 0, i64 %112
%114 = load i32, i32* %113
%115 = icmp eq i32 %114, 2
br i1 %115, label %131, label %116
116: ; preds = %101
%117 = load [25 x i32]*, [25 x i32]** %4
%118 = load i32*, i32** %5
%119 = getelementptr inbounds i32, i32* %118, i64 1
%120 = load i32, i32* %119
%121 = sext i32 %120 to i64
%122 = getelementptr inbounds [25 x i32], [25 x i32]* %117, i64 %121
%123 = load i32*, i32** %5
%124 = getelementptr inbounds i32, i32* %123, i64 0
%125 = load i32, i32* %124
%126 = sub nsw i32 %125, 1
%127 = sext i32 %126 to i64
%128 = getelementptr inbounds [25 x i32], [25 x i32]* %122, i64 0, i64 %127
%129 = load i32, i32* %128
%130 = icmp eq i32 %129, 6
br i1 %130, label %131, label %173
131: ; preds = %116, %101
%132 = load [25 x i32]*, [25 x i32]** %4
%133 = load i32*, i32** %5
%134 = getelementptr inbounds i32, i32* %133, i64 1
%135 = load i32, i32* %134
%136 = sext i32 %135 to i64
%137 = getelementptr inbounds [25 x i32], [25 x i32]* %132, i64 %136
%138 = load i32*, i32** %5
%139 = getelementptr inbounds i32, i32* %138, i64 0
%140 = load i32, i32* %139
%141 = sub nsw i32 %140, 2
%142 = sext i32 %141 to i64
%143 = getelementptr inbounds [25 x i32], [25 x i32]* %137, i64 0, i64 %142
%144 = load i32, i32* %143
%145 = icmp eq i32 %144, 3
br i1 %145, label %146, label %159
146: ; preds = %131
%147 = load [25 x i32]*, [25 x i32]** %4
%148 = load i32*, i32** %5
%149 = getelementptr inbounds i32, i32* %148, i64 1
%150 = load i32, i32* %149
%151 = sext i32 %150 to i64
%152 = getelementptr inbounds [25 x i32], [25 x i32]* %147, i64 %151
%153 = load i32*, i32** %5
%154 = getelementptr inbounds i32, i32* %153, i64 0
%155 = load i32, i32* %154
%156 = sub nsw i32 %155, 2
%157 = sext i32 %156 to i64
%158 = getelementptr inbounds [25 x i32], [25 x i32]* %152, i64 0, i64 %157
store i32 6, i32* %158
br label %172
159: ; preds = %131
%160 = load [25 x i32]*, [25 x i32]** %4
%161 = load i32*, i32** %5
%162 = getelementptr inbounds i32, i32* %161, i64 1
%163 = load i32, i32* %162
%164 = sext i32 %163 to i64
%165 = getelementptr inbounds [25 x i32], [25 x i32]* %160, i64 %164
%166 = load i32*, i32** %5
%167 = getelementptr inbounds i32, i32* %166, i64 0
%168 = load i32, i32* %167
%169 = sub nsw i32 %168, 2
%170 = sext i32 %169 to i64
%171 = getelementptr inbounds [25 x i32], [25 x i32]* %165, i64 0, i64 %170
store i32 2, i32* %171
br label %172
172: ; preds = %159, %146
br label %173
173: ; preds = %172, %116
%174 = load [25 x i32]*, [25 x i32]** %4
%175 = load i32*, i32** %5
%176 = getelementptr inbounds i32, i32* %175, i64 1
%177 = load i32, i32* %176
%178 = sext i32 %177 to i64
%179 = getelementptr inbounds [25 x i32], [25 x i32]* %174, i64 %178
%180 = load i32*, i32** %5
%181 = getelementptr inbounds i32, i32* %180, i64 0
%182 = load i32, i32* %181
%183 = sub nsw i32 %182, 1
%184 = sext i32 %183 to i64
%185 = getelementptr inbounds [25 x i32], [25 x i32]* %179, i64 0, i64 %184
%186 = load i32, i32* %185
%187 = icmp eq i32 %186, 3
br i1 %187, label %203, label %188
188: ; preds = %173
%189 = load [25 x i32]*, [25 x i32]** %4
%190 = load i32*, i32** %5
%191 = getelementptr inbounds i32, i32* %190, i64 1
%192 = load i32, i32* %191
%193 = sext i32 %192 to i64
%194 = getelementptr inbounds [25 x i32], [25 x i32]* %189, i64 %193
%195 = load i32*, i32** %5
%196 = getelementptr inbounds i32, i32* %195, i64 0
%197 = load i32, i32* %196
%198 = sub nsw i32 %197, 1
%199 = sext i32 %198 to i64
%200 = getelementptr inbounds [25 x i32], [25 x i32]* %194, i64 0, i64 %199
%201 = load i32, i32* %200
%202 = icmp eq i32 %201, 6
br i1 %202, label %203, label %216
203: ; preds = %188, %173
%204 = load [25 x i32]*, [25 x i32]** %4
%205 = load i32*, i32** %5
%206 = getelementptr inbounds i32, i32* %205, i64 1
%207 = load i32, i32* %206
%208 = sext i32 %207 to i64
%209 = getelementptr inbounds [25 x i32], [25 x i32]* %204, i64 %208
%210 = load i32*, i32** %5
%211 = getelementptr inbounds i32, i32* %210, i64 0
%212 = load i32, i32* %211
%213 = sub nsw i32 %212, 1
%214 = sext i32 %213 to i64
%215 = getelementptr inbounds [25 x i32], [25 x i32]* %209, i64 0, i64 %214
store i32 5, i32* %215
br label %229
216: ; preds = %188
%217 = load [25 x i32]*, [25 x i32]** %4
%218 = load i32*, i32** %5
%219 = getelementptr inbounds i32, i32* %218, i64 1
%220 = load i32, i32* %219
%221 = sext i32 %220 to i64
%222 = getelementptr inbounds [25 x i32], [25 x i32]* %217, i64 %221
%223 = load i32*, i32** %5
%224 = getelementptr inbounds i32, i32* %223, i64 0
%225 = load i32, i32* %224
%226 = sub nsw i32 %225, 1
%227 = sext i32 %226 to i64
%228 = getelementptr inbounds [25 x i32], [25 x i32]* %222, i64 0, i64 %227
store i32 4, i32* %228
br label %229
229: ; preds = %216, %203
%230 = load [25 x i32]*, [25 x i32]** %4
%231 = load i32*, i32** %5
%232 = getelementptr inbounds i32, i32* %231, i64 1
%233 = load i32, i32* %232
%234 = sext i32 %233 to i64
%235 = getelementptr inbounds [25 x i32], [25 x i32]* %230, i64 %234
%236 = load i32*, i32** %5
%237 = getelementptr inbounds i32, i32* %236, i64 0
%238 = load i32, i32* %237
%239 = sext i32 %238 to i64
%240 = getelementptr inbounds [25 x i32], [25 x i32]* %235, i64 0, i64 %239
%241 = load i32, i32* %240
%242 = icmp eq i32 %241, 5
br i1 %242, label %243, label %255
243: ; preds = %229
%244 = load [25 x i32]*, [25 x i32]** %4
%245 = load i32*, i32** %5
%246 = getelementptr inbounds i32, i32* %245, i64 1
%247 = load i32, i32* %246
%248 = sext i32 %247 to i64
%249 = getelementptr inbounds [25 x i32], [25 x i32]* %244, i64 %248
%250 = load i32*, i32** %5
%251 = getelementptr inbounds i32, i32* %250, i64 0
%252 = load i32, i32* %251
%253 = sext i32 %252 to i64
%254 = getelementptr inbounds [25 x i32], [25 x i32]* %249, i64 0, i64 %253
store i32 3, i32* %254
br label %267
255: ; preds = %229
%256 = load [25 x i32]*, [25 x i32]** %4
%257 = load i32*, i32** %5
%258 = getelementptr inbounds i32, i32* %257, i64 1
%259 = load i32, i32* %258
%260 = sext i32 %259 to i64
%261 = getelementptr inbounds [25 x i32], [25 x i32]* %256, i64 %260
%262 = load i32*, i32** %5
%263 = getelementptr inbounds i32, i32* %262, i64 0
%264 = load i32, i32* %263
%265 = sext i32 %264 to i64
%266 = getelementptr inbounds [25 x i32], [25 x i32]* %261, i64 0, i64 %265
store i32 0, i32* %266
br label %267
267: ; preds = %255, %243
store i32 1, i32* %7
br label %268
268: ; preds = %267, %86, %56
br label %269
269: ; preds = %268, %3
%270 = load i8, i8* %6
%271 = sext i8 %270 to i32
%272 = icmp eq i32 %271, 68
br i1 %272, label %273, label %531
273: ; preds = %269
%274 = load [25 x i32]*, [25 x i32]** %4
%275 = load i32*, i32** %5
%276 = getelementptr inbounds i32, i32* %275, i64 1
%277 = load i32, i32* %276
%278 = sext i32 %277 to i64
%279 = getelementptr inbounds [25 x i32], [25 x i32]* %274, i64 %278
%280 = load i32*, i32** %5
%281 = getelementptr inbounds i32, i32* %280, i64 0
%282 = load i32, i32* %281
%283 = add nsw i32 %282, 1
%284 = sext i32 %283 to i64
%285 = getelementptr inbounds [25 x i32], [25 x i32]* %279, i64 0, i64 %284
%286 = load i32, i32* %285
%287 = icmp eq i32 %286, 0
br i1 %287, label %363, label %288
288: ; preds = %273
%289 = load [25 x i32]*, [25 x i32]** %4
%290 = load i32*, i32** %5
%291 = getelementptr inbounds i32, i32* %290, i64 1
%292 = load i32, i32* %291
%293 = sext i32 %292 to i64
%294 = getelementptr inbounds [25 x i32], [25 x i32]* %289, i64 %293
%295 = load i32*, i32** %5
%296 = getelementptr inbounds i32, i32* %295, i64 0
%297 = load i32, i32* %296
%298 = add nsw i32 %297, 1
%299 = sext i32 %298 to i64
%300 = getelementptr inbounds [25 x i32], [25 x i32]* %294, i64 0, i64 %299
%301 = load i32, i32* %300
%302 = icmp eq i32 %301, 3
br i1 %302, label %363, label %303
303: ; preds = %288
%304 = load [25 x i32]*, [25 x i32]** %4
%305 = load i32*, i32** %5
%306 = getelementptr inbounds i32, i32* %305, i64 1
%307 = load i32, i32* %306
%308 = sext i32 %307 to i64
%309 = getelementptr inbounds [25 x i32], [25 x i32]* %304, i64 %308
%310 = load i32*, i32** %5
%311 = getelementptr inbounds i32, i32* %310, i64 0
%312 = load i32, i32* %311
%313 = add nsw i32 %312, 1
%314 = sext i32 %313 to i64
%315 = getelementptr inbounds [25 x i32], [25 x i32]* %309, i64 0, i64 %314
%316 = load i32, i32* %315
%317 = icmp eq i32 %316, 2
br i1 %317, label %333, label %318
318: ; preds = %303
%319 = load [25 x i32]*, [25 x i32]** %4
%320 = load i32*, i32** %5
%321 = getelementptr inbounds i32, i32* %320, i64 1
%322 = load i32, i32* %321
%323 = sext i32 %322 to i64
%324 = getelementptr inbounds [25 x i32], [25 x i32]* %319, i64 %323
%325 = load i32*, i32** %5
%326 = getelementptr inbounds i32, i32* %325, i64 0
%327 = load i32, i32* %326
%328 = add nsw i32 %327, 1
%329 = sext i32 %328 to i64
%330 = getelementptr inbounds [25 x i32], [25 x i32]* %324, i64 0, i64 %329
%331 = load i32, i32* %330
%332 = icmp eq i32 %331, 6
br i1 %332, label %333, label %530
333: ; preds = %318, %303
%334 = load [25 x i32]*, [25 x i32]** %4
%335 = load i32*, i32** %5
%336 = getelementptr inbounds i32, i32* %335, i64 1
%337 = load i32, i32* %336
%338 = sext i32 %337 to i64
%339 = getelementptr inbounds [25 x i32], [25 x i32]* %334, i64 %338
%340 = load i32*, i32** %5
%341 = getelementptr inbounds i32, i32* %340, i64 0
%342 = load i32, i32* %341
%343 = add nsw i32 %342, 2
%344 = sext i32 %343 to i64
%345 = getelementptr inbounds [25 x i32], [25 x i32]* %339, i64 0, i64 %344
%346 = load i32, i32* %345
%347 = icmp eq i32 %346, 0
br i1 %347, label %363, label %348
348: ; preds = %333
%349 = load [25 x i32]*, [25 x i32]** %4
%350 = load i32*, i32** %5
%351 = getelementptr inbounds i32, i32* %350, i64 1
%352 = load i32, i32* %351
%353 = sext i32 %352 to i64
%354 = getelementptr inbounds [25 x i32], [25 x i32]* %349, i64 %353
%355 = load i32*, i32** %5
%356 = getelementptr inbounds i32, i32* %355, i64 0
%357 = load i32, i32* %356
%358 = add nsw i32 %357, 2
%359 = sext i32 %358 to i64
%360 = getelementptr inbounds [25 x i32], [25 x i32]* %354, i64 0, i64 %359
%361 = load i32, i32* %360
%362 = icmp eq i32 %361, 3
br i1 %362, label %363, label %530
363: ; preds = %348, %333, %288, %273
%364 = load [25 x i32]*, [25 x i32]** %4
%365 = load i32*, i32** %5
%366 = getelementptr inbounds i32, i32* %365, i64 1
%367 = load i32, i32* %366
%368 = sext i32 %367 to i64
%369 = getelementptr inbounds [25 x i32], [25 x i32]* %364, i64 %368
%370 = load i32*, i32** %5
%371 = getelementptr inbounds i32, i32* %370, i64 0
%372 = load i32, i32* %371
%373 = add nsw i32 %372, 1
%374 = sext i32 %373 to i64
%375 = getelementptr inbounds [25 x i32], [25 x i32]* %369, i64 0, i64 %374
%376 = load i32, i32* %375
%377 = icmp eq i32 %376, 2
br i1 %377, label %393, label %378
378: ; preds = %363
%379 = load [25 x i32]*, [25 x i32]** %4
%380 = load i32*, i32** %5
%381 = getelementptr inbounds i32, i32* %380, i64 1
%382 = load i32, i32* %381
%383 = sext i32 %382 to i64
%384 = getelementptr inbounds [25 x i32], [25 x i32]* %379, i64 %383
%385 = load i32*, i32** %5
%386 = getelementptr inbounds i32, i32* %385, i64 0
%387 = load i32, i32* %386
%388 = add nsw i32 %387, 1
%389 = sext i32 %388 to i64
%390 = getelementptr inbounds [25 x i32], [25 x i32]* %384, i64 0, i64 %389
%391 = load i32, i32* %390
%392 = icmp eq i32 %391, 6
br i1 %392, label %393, label %435
393: ; preds = %378, %363
%394 = load [25 x i32]*, [25 x i32]** %4
%395 = load i32*, i32** %5
%396 = getelementptr inbounds i32, i32* %395, i64 1
%397 = load i32, i32* %396
%398 = sext i32 %397 to i64
%399 = getelementptr inbounds [25 x i32], [25 x i32]* %394, i64 %398
%400 = load i32*, i32** %5
%401 = getelementptr inbounds i32, i32* %400, i64 0
%402 = load i32, i32* %401
%403 = add nsw i32 %402, 2
%404 = sext i32 %403 to i64
%405 = getelementptr inbounds [25 x i32], [25 x i32]* %399, i64 0, i64 %404
%406 = load i32, i32* %405
%407 = icmp eq i32 %406, 3
br i1 %407, label %408, label %421
408: ; preds = %393
%409 = load [25 x i32]*, [25 x i32]** %4
%410 = load i32*, i32** %5
%411 = getelementptr inbounds i32, i32* %410, i64 1
%412 = load i32, i32* %411
%413 = sext i32 %412 to i64
%414 = getelementptr inbounds [25 x i32], [25 x i32]* %409, i64 %413
%415 = load i32*, i32** %5
%416 = getelementptr inbounds i32, i32* %415, i64 0
%417 = load i32, i32* %416
%418 = add nsw i32 %417, 2
%419 = sext i32 %418 to i64
%420 = getelementptr inbounds [25 x i32], [25 x i32]* %414, i64 0, i64 %419
store i32 6, i32* %420
br label %434
421: ; preds = %393
%422 = load [25 x i32]*, [25 x i32]** %4
%423 = load i32*, i32** %5
%424 = getelementptr inbounds i32, i32* %423, i64 1
%425 = load i32, i32* %424
%426 = sext i32 %425 to i64
%427 = getelementptr inbounds [25 x i32], [25 x i32]* %422, i64 %426
%428 = load i32*, i32** %5
%429 = getelementptr inbounds i32, i32* %428, i64 0
%430 = load i32, i32* %429
%431 = add nsw i32 %430, 2
%432 = sext i32 %431 to i64
%433 = getelementptr inbounds [25 x i32], [25 x i32]* %427, i64 0, i64 %432
store i32 2, i32* %433
br label %434
434: ; preds = %421, %408
br label %435
435: ; preds = %434, %378
%436 = load [25 x i32]*, [25 x i32]** %4
%437 = load i32*, i32** %5
%438 = getelementptr inbounds i32, i32* %437, i64 1
%439 = load i32, i32* %438
%440 = sext i32 %439 to i64
%441 = getelementptr inbounds [25 x i32], [25 x i32]* %436, i64 %440
%442 = load i32*, i32** %5
%443 = getelementptr inbounds i32, i32* %442, i64 0
%444 = load i32, i32* %443
%445 = add nsw i32 %444, 1
%446 = sext i32 %445 to i64
%447 = getelementptr inbounds [25 x i32], [25 x i32]* %441, i64 0, i64 %446
%448 = load i32, i32* %447
%449 = icmp eq i32 %448, 3
br i1 %449, label %465, label %450
450: ; preds = %435
%451 = load [25 x i32]*, [25 x i32]** %4
%452 = load i32*, i32** %5
%453 = getelementptr inbounds i32, i32* %452, i64 1
%454 = load i32, i32* %453
%455 = sext i32 %454 to i64
%456 = getelementptr inbounds [25 x i32], [25 x i32]* %451, i64 %455
%457 = load i32*, i32** %5
%458 = getelementptr inbounds i32, i32* %457, i64 0
%459 = load i32, i32* %458
%460 = add nsw i32 %459, 1
%461 = sext i32 %460 to i64
%462 = getelementptr inbounds [25 x i32], [25 x i32]* %456, i64 0, i64 %461
%463 = load i32, i32* %462
%464 = icmp eq i32 %463, 6
br i1 %464, label %465, label %478
465: ; preds = %450, %435
%466 = load [25 x i32]*, [25 x i32]** %4
%467 = load i32*, i32** %5
%468 = getelementptr inbounds i32, i32* %467, i64 1
%469 = load i32, i32* %468
%470 = sext i32 %469 to i64
%471 = getelementptr inbounds [25 x i32], [25 x i32]* %466, i64 %470
%472 = load i32*, i32** %5
%473 = getelementptr inbounds i32, i32* %472, i64 0
%474 = load i32, i32* %473
%475 = add nsw i32 %474, 1
%476 = sext i32 %475 to i64
%477 = getelementptr inbounds [25 x i32], [25 x i32]* %471, i64 0, i64 %476
store i32 5, i32* %477
br label %491
478: ; preds = %450
%479 = load [25 x i32]*, [25 x i32]** %4
%480 = load i32*, i32** %5
%481 = getelementptr inbounds i32, i32* %480, i64 1
%482 = load i32, i32* %481
%483 = sext i32 %482 to i64
%484 = getelementptr inbounds [25 x i32], [25 x i32]* %479, i64 %483
%485 = load i32*, i32** %5
%486 = getelementptr inbounds i32, i32* %485, i64 0
%487 = load i32, i32* %486
%488 = add nsw i32 %487, 1
%489 = sext i32 %488 to i64
%490 = getelementptr inbounds [25 x i32], [25 x i32]* %484, i64 0, i64 %489
store i32 4, i32* %490
br label %491
491: ; preds = %478, %465
%492 = load [25 x i32]*, [25 x i32]** %4
%493 = load i32*, i32** %5
%494 = getelementptr inbounds i32, i32* %493, i64 1
%495 = load i32, i32* %494
%496 = sext i32 %495 to i64
%497 = getelementptr inbounds [25 x i32], [25 x i32]* %492, i64 %496
%498 = load i32*, i32** %5
%499 = getelementptr inbounds i32, i32* %498, i64 0
%500 = load i32, i32* %499
%501 = sext i32 %500 to i64
%502 = getelementptr inbounds [25 x i32], [25 x i32]* %497, i64 0, i64 %501
%503 = load i32, i32* %502
%504 = icmp eq i32 %503, 5
br i1 %504, label %505, label %517
505: ; preds = %491
%506 = load [25 x i32]*, [25 x i32]** %4
%507 = load i32*, i32** %5
%508 = getelementptr inbounds i32, i32* %507, i64 1
%509 = load i32, i32* %508
%510 = sext i32 %509 to i64
%511 = getelementptr inbounds [25 x i32], [25 x i32]* %506, i64 %510
%512 = load i32*, i32** %5
%513 = getelementptr inbounds i32, i32* %512, i64 0
%514 = load i32, i32* %513
%515 = sext i32 %514 to i64
%516 = getelementptr inbounds [25 x i32], [25 x i32]* %511, i64 0, i64 %515
store i32 3, i32* %516
br label %529
517: ; preds = %491
%518 = load [25 x i32]*, [25 x i32]** %4
%519 = load i32*, i32** %5
%520 = getelementptr inbounds i32, i32* %519, i64 1
%521 = load i32, i32* %520
%522 = sext i32 %521 to i64
%523 = getelementptr inbounds [25 x i32], [25 x i32]* %518, i64 %522
%524 = load i32*, i32** %5
%525 = getelementptr inbounds i32, i32* %524, i64 0
%526 = load i32, i32* %525
%527 = sext i32 %526 to i64
%528 = getelementptr inbounds [25 x i32], [25 x i32]* %523, i64 0, i64 %527
store i32 0, i32* %528
br label %529
529: ; preds = %517, %505
store i32 1, i32* %7
br label %530
530: ; preds = %529, %348, %318
br label %531
531: ; preds = %530, %269
%532 = load i8, i8* %6
%533 = sext i8 %532 to i32
%534 = icmp eq i32 %533, 72
br i1 %534, label %535, label %793
535: ; preds = %531
%536 = load [25 x i32]*, [25 x i32]** %4
%537 = load i32*, i32** %5
%538 = getelementptr inbounds i32, i32* %537, i64 1
%539 = load i32, i32* %538
%540 = sub nsw i32 %539, 1
%541 = sext i32 %540 to i64
%542 = getelementptr inbounds [25 x i32], [25 x i32]* %536, i64 %541
%543 = load i32*, i32** %5
%544 = getelementptr inbounds i32, i32* %543, i64 0
%545 = load i32, i32* %544
%546 = sext i32 %545 to i64
%547 = getelementptr inbounds [25 x i32], [25 x i32]* %542, i64 0, i64 %546
%548 = load i32, i32* %547
%549 = icmp eq i32 %548, 0
br i1 %549, label %625, label %550
550: ; preds = %535
%551 = load [25 x i32]*, [25 x i32]** %4
%552 = load i32*, i32** %5
%553 = getelementptr inbounds i32, i32* %552, i64 1
%554 = load i32, i32* %553
%555 = sub nsw i32 %554, 1
%556 = sext i32 %555 to i64
%557 = getelementptr inbounds [25 x i32], [25 x i32]* %551, i64 %556
%558 = load i32*, i32** %5
%559 = getelementptr inbounds i32, i32* %558, i64 0
%560 = load i32, i32* %559
%561 = sext i32 %560 to i64
%562 = getelementptr inbounds [25 x i32], [25 x i32]* %557, i64 0, i64 %561
%563 = load i32, i32* %562
%564 = icmp eq i32 %563, 3
br i1 %564, label %625, label %565
565: ; preds = %550
%566 = load [25 x i32]*, [25 x i32]** %4
%567 = load i32*, i32** %5
%568 = getelementptr inbounds i32, i32* %567, i64 1
%569 = load i32, i32* %568
%570 = sub nsw i32 %569, 1
%571 = sext i32 %570 to i64
%572 = getelementptr inbounds [25 x i32], [25 x i32]* %566, i64 %571
%573 = load i32*, i32** %5
%574 = getelementptr inbounds i32, i32* %573, i64 0
%575 = load i32, i32* %574
%576 = sext i32 %575 to i64
%577 = getelementptr inbounds [25 x i32], [25 x i32]* %572, i64 0, i64 %576
%578 = load i32, i32* %577
%579 = icmp eq i32 %578, 2
br i1 %579, label %595, label %580
580: ; preds = %565
%581 = load [25 x i32]*, [25 x i32]** %4
%582 = load i32*, i32** %5
%583 = getelementptr inbounds i32, i32* %582, i64 1
%584 = load i32, i32* %583
%585 = sub nsw i32 %584, 1
%586 = sext i32 %585 to i64
%587 = getelementptr inbounds [25 x i32], [25 x i32]* %581, i64 %586
%588 = load i32*, i32** %5
%589 = getelementptr inbounds i32, i32* %588, i64 0
%590 = load i32, i32* %589
%591 = sext i32 %590 to i64
%592 = getelementptr inbounds [25 x i32], [25 x i32]* %587, i64 0, i64 %591
%593 = load i32, i32* %592
%594 = icmp eq i32 %593, 6
br i1 %594, label %595, label %792
595: ; preds = %580, %565
%596 = load [25 x i32]*, [25 x i32]** %4
%597 = load i32*, i32** %5
%598 = getelementptr inbounds i32, i32* %597, i64 1
%599 = load i32, i32* %598
%600 = sub nsw i32 %599, 2
%601 = sext i32 %600 to i64
%602 = getelementptr inbounds [25 x i32], [25 x i32]* %596, i64 %601
%603 = load i32*, i32** %5
%604 = getelementptr inbounds i32, i32* %603, i64 0
%605 = load i32, i32* %604
%606 = sext i32 %605 to i64
%607 = getelementptr inbounds [25 x i32], [25 x i32]* %602, i64 0, i64 %606
%608 = load i32, i32* %607
%609 = icmp eq i32 %608, 0
br i1 %609, label %625, label %610
610: ; preds = %595
%611 = load [25 x i32]*, [25 x i32]** %4
%612 = load i32*, i32** %5
%613 = getelementptr inbounds i32, i32* %612, i64 1
%614 = load i32, i32* %613
%615 = sub nsw i32 %614, 2
%616 = sext i32 %615 to i64
%617 = getelementptr inbounds [25 x i32], [25 x i32]* %611, i64 %616
%618 = load i32*, i32** %5
%619 = getelementptr inbounds i32, i32* %618, i64 0
%620 = load i32, i32* %619
%621 = sext i32 %620 to i64
%622 = getelementptr inbounds [25 x i32], [25 x i32]* %617, i64 0, i64 %621
%623 = load i32, i32* %622
%624 = icmp eq i32 %623, 3
br i1 %624, label %625, label %792
625: ; preds = %610, %595, %550, %535
%626 = load [25 x i32]*, [25 x i32]** %4
%627 = load i32*, i32** %5
%628 = getelementptr inbounds i32, i32* %627, i64 1
%629 = load i32, i32* %628
%630 = sub nsw i32 %629, 1
%631 = sext i32 %630 to i64
%632 = getelementptr inbounds [25 x i32], [25 x i32]* %626, i64 %631
%633 = load i32*, i32** %5
%634 = getelementptr inbounds i32, i32* %633, i64 0
%635 = load i32, i32* %634
%636 = sext i32 %635 to i64
%637 = getelementptr inbounds [25 x i32], [25 x i32]* %632, i64 0, i64 %636
%638 = load i32, i32* %637
%639 = icmp eq i32 %638, 2
br i1 %639, label %655, label %640
640: ; preds = %625
%641 = load [25 x i32]*, [25 x i32]** %4
%642 = load i32*, i32** %5
%643 = getelementptr inbounds i32, i32* %642, i64 1
%644 = load i32, i32* %643
%645 = sub nsw i32 %644, 1
%646 = sext i32 %645 to i64
%647 = getelementptr inbounds [25 x i32], [25 x i32]* %641, i64 %646
%648 = load i32*, i32** %5
%649 = getelementptr inbounds i32, i32* %648, i64 0
%650 = load i32, i32* %649
%651 = sext i32 %650 to i64
%652 = getelementptr inbounds [25 x i32], [25 x i32]* %647, i64 0, i64 %651
%653 = load i32, i32* %652
%654 = icmp eq i32 %653, 6
br i1 %654, label %655, label %697
655: ; preds = %640, %625
%656 = load [25 x i32]*, [25 x i32]** %4
%657 = load i32*, i32** %5
%658 = getelementptr inbounds i32, i32* %657, i64 1
%659 = load i32, i32* %658
%660 = sub nsw i32 %659, 2
%661 = sext i32 %660 to i64
%662 = getelementptr inbounds [25 x i32], [25 x i32]* %656, i64 %661
%663 = load i32*, i32** %5
%664 = getelementptr inbounds i32, i32* %663, i64 0
%665 = load i32, i32* %664
%666 = sext i32 %665 to i64
%667 = getelementptr inbounds [25 x i32], [25 x i32]* %662, i64 0, i64 %666
%668 = load i32, i32* %667
%669 = icmp eq i32 %668, 3
br i1 %669, label %670, label %683
670: ; preds = %655
%671 = load [25 x i32]*, [25 x i32]** %4
%672 = load i32*, i32** %5
%673 = getelementptr inbounds i32, i32* %672, i64 1
%674 = load i32, i32* %673
%675 = sub nsw i32 %674, 2
%676 = sext i32 %675 to i64
%677 = getelementptr inbounds [25 x i32], [25 x i32]* %671, i64 %676
%678 = load i32*, i32** %5
%679 = getelementptr inbounds i32, i32* %678, i64 0
%680 = load i32, i32* %679
%681 = sext i32 %680 to i64
%682 = getelementptr inbounds [25 x i32], [25 x i32]* %677, i64 0, i64 %681
store i32 6, i32* %682
br label %696
683: ; preds = %655
%684 = load [25 x i32]*, [25 x i32]** %4
%685 = load i32*, i32** %5
%686 = getelementptr inbounds i32, i32* %685, i64 1
%687 = load i32, i32* %686
%688 = sub nsw i32 %687, 2
%689 = sext i32 %688 to i64
%690 = getelementptr inbounds [25 x i32], [25 x i32]* %684, i64 %689
%691 = load i32*, i32** %5
%692 = getelementptr inbounds i32, i32* %691, i64 0
%693 = load i32, i32* %692
%694 = sext i32 %693 to i64
%695 = getelementptr inbounds [25 x i32], [25 x i32]* %690, i64 0, i64 %694
store i32 2, i32* %695
br label %696
696: ; preds = %683, %670
br label %697
697: ; preds = %696, %640
%698 = load [25 x i32]*, [25 x i32]** %4
%699 = load i32*, i32** %5
%700 = getelementptr inbounds i32, i32* %699, i64 1
%701 = load i32, i32* %700
%702 = sub nsw i32 %701, 1
%703 = sext i32 %702 to i64
%704 = getelementptr inbounds [25 x i32], [25 x i32]* %698, i64 %703
%705 = load i32*, i32** %5
%706 = getelementptr inbounds i32, i32* %705, i64 0
%707 = load i32, i32* %706
%708 = sext i32 %707 to i64
%709 = getelementptr inbounds [25 x i32], [25 x i32]* %704, i64 0, i64 %708
%710 = load i32, i32* %709
%711 = icmp eq i32 %710, 3
br i1 %711, label %727, label %712
712: ; preds = %697
%713 = load [25 x i32]*, [25 x i32]** %4
%714 = load i32*, i32** %5
%715 = getelementptr inbounds i32, i32* %714, i64 1
%716 = load i32, i32* %715
%717 = sub nsw i32 %716, 1
%718 = sext i32 %717 to i64
%719 = getelementptr inbounds [25 x i32], [25 x i32]* %713, i64 %718
%720 = load i32*, i32** %5
%721 = getelementptr inbounds i32, i32* %720, i64 0
%722 = load i32, i32* %721
%723 = sext i32 %722 to i64
%724 = getelementptr inbounds [25 x i32], [25 x i32]* %719, i64 0, i64 %723
%725 = load i32, i32* %724
%726 = icmp eq i32 %725, 6
br i1 %726, label %727, label %740
727: ; preds = %712, %697
%728 = load [25 x i32]*, [25 x i32]** %4
%729 = load i32*, i32** %5
%730 = getelementptr inbounds i32, i32* %729, i64 1
%731 = load i32, i32* %730
%732 = sub nsw i32 %731, 1
%733 = sext i32 %732 to i64
%734 = getelementptr inbounds [25 x i32], [25 x i32]* %728, i64 %733
%735 = load i32*, i32** %5
%736 = getelementptr inbounds i32, i32* %735, i64 0
%737 = load i32, i32* %736
%738 = sext i32 %737 to i64
%739 = getelementptr inbounds [25 x i32], [25 x i32]* %734, i64 0, i64 %738
store i32 5, i32* %739
br label %753
740: ; preds = %712
%741 = load [25 x i32]*, [25 x i32]** %4
%742 = load i32*, i32** %5
%743 = getelementptr inbounds i32, i32* %742, i64 1
%744 = load i32, i32* %743
%745 = sub nsw i32 %744, 1
%746 = sext i32 %745 to i64
%747 = getelementptr inbounds [25 x i32], [25 x i32]* %741, i64 %746
%748 = load i32*, i32** %5
%749 = getelementptr inbounds i32, i32* %748, i64 0
%750 = load i32, i32* %749
%751 = sext i32 %750 to i64
%752 = getelementptr inbounds [25 x i32], [25 x i32]* %747, i64 0, i64 %751
store i32 4, i32* %752
br label %753
753: ; preds = %740, %727
%754 = load [25 x i32]*, [25 x i32]** %4
%755 = load i32*, i32** %5
%756 = getelementptr inbounds i32, i32* %755, i64 1
%757 = load i32, i32* %756
%758 = sext i32 %757 to i64
%759 = getelementptr inbounds [25 x i32], [25 x i32]* %754, i64 %758
%760 = load i32*, i32** %5
%761 = getelementptr inbounds i32, i32* %760, i64 0
%762 = load i32, i32* %761
%763 = sext i32 %762 to i64
%764 = getelementptr inbounds [25 x i32], [25 x i32]* %759, i64 0, i64 %763
%765 = load i32, i32* %764
%766 = icmp eq i32 %765, 5
br i1 %766, label %767, label %779
767: ; preds = %753
%768 = load [25 x i32]*, [25 x i32]** %4
%769 = load i32*, i32** %5
%770 = getelementptr inbounds i32, i32* %769, i64 1
%771 = load i32, i32* %770
%772 = sext i32 %771 to i64
%773 = getelementptr inbounds [25 x i32], [25 x i32]* %768, i64 %772
%774 = load i32*, i32** %5
%775 = getelementptr inbounds i32, i32* %774, i64 0
%776 = load i32, i32* %775
%777 = sext i32 %776 to i64
%778 = getelementptr inbounds [25 x i32], [25 x i32]* %773, i64 0, i64 %777
store i32 3, i32* %778
br label %791
779: ; preds = %753
%780 = load [25 x i32]*, [25 x i32]** %4
%781 = load i32*, i32** %5
%782 = getelementptr inbounds i32, i32* %781, i64 1
%783 = load i32, i32* %782
%784 = sext i32 %783 to i64
%785 = getelementptr inbounds [25 x i32], [25 x i32]* %780, i64 %784
%786 = load i32*, i32** %5
%787 = getelementptr inbounds i32, i32* %786, i64 0
%788 = load i32, i32* %787
%789 = sext i32 %788 to i64
%790 = getelementptr inbounds [25 x i32], [25 x i32]* %785, i64 0, i64 %789
store i32 0, i32* %790
br label %791
791: ; preds = %779, %767
store i32 1, i32* %7
br label %792
792: ; preds = %791, %610, %580
br label %793
793: ; preds = %792, %531
%794 = load i8, i8* %6
%795 = sext i8 %794 to i32
%796 = icmp eq i32 %795, 66
br i1 %796, label %797, label %1055
797: ; preds = %793
%798 = load [25 x i32]*, [25 x i32]** %4
%799 = load i32*, i32** %5
%800 = getelementptr inbounds i32, i32* %799, i64 1
%801 = load i32, i32* %800
%802 = add nsw i32 %801, 1
%803 = sext i32 %802 to i64
%804 = getelementptr inbounds [25 x i32], [25 x i32]* %798, i64 %803
%805 = load i32*, i32** %5
%806 = getelementptr inbounds i32, i32* %805, i64 0
%807 = load i32, i32* %806
%808 = sext i32 %807 to i64
%809 = getelementptr inbounds [25 x i32], [25 x i32]* %804, i64 0, i64 %808
%810 = load i32, i32* %809
%811 = icmp eq i32 %810, 0
br i1 %811, label %887, label %812
812: ; preds = %797
%813 = load [25 x i32]*, [25 x i32]** %4
%814 = load i32*, i32** %5
%815 = getelementptr inbounds i32, i32* %814, i64 1
%816 = load i32, i32* %815
%817 = add nsw i32 %816, 1
%818 = sext i32 %817 to i64
%819 = getelementptr inbounds [25 x i32], [25 x i32]* %813, i64 %818
%820 = load i32*, i32** %5
%821 = getelementptr inbounds i32, i32* %820, i64 0
%822 = load i32, i32* %821
%823 = sext i32 %822 to i64
%824 = getelementptr inbounds [25 x i32], [25 x i32]* %819, i64 0, i64 %823
%825 = load i32, i32* %824
%826 = icmp eq i32 %825, 3
br i1 %826, label %887, label %827
827: ; preds = %812
%828 = load [25 x i32]*, [25 x i32]** %4
%829 = load i32*, i32** %5
%830 = getelementptr inbounds i32, i32* %829, i64 1
%831 = load i32, i32* %830
%832 = add nsw i32 %831, 1
%833 = sext i32 %832 to i64
%834 = getelementptr inbounds [25 x i32], [25 x i32]* %828, i64 %833
%835 = load i32*, i32** %5
%836 = getelementptr inbounds i32, i32* %835, i64 0
%837 = load i32, i32* %836
%838 = sext i32 %837 to i64
%839 = getelementptr inbounds [25 x i32], [25 x i32]* %834, i64 0, i64 %838
%840 = load i32, i32* %839
%841 = icmp eq i32 %840, 2
br i1 %841, label %857, label %842
842: ; preds = %827
%843 = load [25 x i32]*, [25 x i32]** %4
%844 = load i32*, i32** %5
%845 = getelementptr inbounds i32, i32* %844, i64 1
%846 = load i32, i32* %845
%847 = add nsw i32 %846, 1
%848 = sext i32 %847 to i64
%849 = getelementptr inbounds [25 x i32], [25 x i32]* %843, i64 %848
%850 = load i32*, i32** %5
%851 = getelementptr inbounds i32, i32* %850, i64 0
%852 = load i32, i32* %851
%853 = sext i32 %852 to i64
%854 = getelementptr inbounds [25 x i32], [25 x i32]* %849, i64 0, i64 %853
%855 = load i32, i32* %854
%856 = icmp eq i32 %855, 6
br i1 %856, label %857, label %1054
857: ; preds = %842, %827
%858 = load [25 x i32]*, [25 x i32]** %4
%859 = load i32*, i32** %5
%860 = getelementptr inbounds i32, i32* %859, i64 1
%861 = load i32, i32* %860
%862 = add nsw i32 %861, 2
%863 = sext i32 %862 to i64
%864 = getelementptr inbounds [25 x i32], [25 x i32]* %858, i64 %863
%865 = load i32*, i32** %5
%866 = getelementptr inbounds i32, i32* %865, i64 0
%867 = load i32, i32* %866
%868 = sext i32 %867 to i64
%869 = getelementptr inbounds [25 x i32], [25 x i32]* %864, i64 0, i64 %868
%870 = load i32, i32* %869
%871 = icmp eq i32 %870, 0
br i1 %871, label %887, label %872
872: ; preds = %857
%873 = load [25 x i32]*, [25 x i32]** %4
%874 = load i32*, i32** %5
%875 = getelementptr inbounds i32, i32* %874, i64 1
%876 = load i32, i32* %875
%877 = add nsw i32 %876, 2
%878 = sext i32 %877 to i64
%879 = getelementptr inbounds [25 x i32], [25 x i32]* %873, i64 %878
%880 = load i32*, i32** %5
%881 = getelementptr inbounds i32, i32* %880, i64 0
%882 = load i32, i32* %881
%883 = sext i32 %882 to i64
%884 = getelementptr inbounds [25 x i32], [25 x i32]* %879, i64 0, i64 %883
%885 = load i32, i32* %884
%886 = icmp eq i32 %885, 3
br i1 %886, label %887, label %1054
887: ; preds = %872, %857, %812, %797
%888 = load [25 x i32]*, [25 x i32]** %4
%889 = load i32*, i32** %5
%890 = getelementptr inbounds i32, i32* %889, i64 1
%891 = load i32, i32* %890
%892 = add nsw i32 %891, 1
%893 = sext i32 %892 to i64
%894 = getelementptr inbounds [25 x i32], [25 x i32]* %888, i64 %893
%895 = load i32*, i32** %5
%896 = getelementptr inbounds i32, i32* %895, i64 0
%897 = load i32, i32* %896
%898 = sext i32 %897 to i64
%899 = getelementptr inbounds [25 x i32], [25 x i32]* %894, i64 0, i64 %898
%900 = load i32, i32* %899
%901 = icmp eq i32 %900, 2
br i1 %901, label %917, label %902
902: ; preds = %887
%903 = load [25 x i32]*, [25 x i32]** %4
%904 = load i32*, i32** %5
%905 = getelementptr inbounds i32, i32* %904, i64 1
%906 = load i32, i32* %905
%907 = add nsw i32 %906, 1
%908 = sext i32 %907 to i64
%909 = getelementptr inbounds [25 x i32], [25 x i32]* %903, i64 %908
%910 = load i32*, i32** %5
%911 = getelementptr inbounds i32, i32* %910, i64 0
%912 = load i32, i32* %911
%913 = sext i32 %912 to i64
%914 = getelementptr inbounds [25 x i32], [25 x i32]* %909, i64 0, i64 %913
%915 = load i32, i32* %914
%916 = icmp eq i32 %915, 6
br i1 %916, label %917, label %959
917: ; preds = %902, %887
%918 = load [25 x i32]*, [25 x i32]** %4
%919 = load i32*, i32** %5
%920 = getelementptr inbounds i32, i32* %919, i64 1
%921 = load i32, i32* %920
%922 = add nsw i32 %921, 2
%923 = sext i32 %922 to i64
%924 = getelementptr inbounds [25 x i32], [25 x i32]* %918, i64 %923
%925 = load i32*, i32** %5
%926 = getelementptr inbounds i32, i32* %925, i64 0
%927 = load i32, i32* %926
%928 = sext i32 %927 to i64
%929 = getelementptr inbounds [25 x i32], [25 x i32]* %924, i64 0, i64 %928
%930 = load i32, i32* %929
%931 = icmp eq i32 %930, 3
br i1 %931, label %932, label %945
932: ; preds = %917
%933 = load [25 x i32]*, [25 x i32]** %4
%934 = load i32*, i32** %5
%935 = getelementptr inbounds i32, i32* %934, i64 1
%936 = load i32, i32* %935
%937 = add nsw i32 %936, 2
%938 = sext i32 %937 to i64
%939 = getelementptr inbounds [25 x i32], [25 x i32]* %933, i64 %938
%940 = load i32*, i32** %5
%941 = getelementptr inbounds i32, i32* %940, i64 0
%942 = load i32, i32* %941
%943 = sext i32 %942 to i64
%944 = getelementptr inbounds [25 x i32], [25 x i32]* %939, i64 0, i64 %943
store i32 6, i32* %944
br label %958
945: ; preds = %917
%946 = load [25 x i32]*, [25 x i32]** %4
%947 = load i32*, i32** %5
%948 = getelementptr inbounds i32, i32* %947, i64 1
%949 = load i32, i32* %948
%950 = add nsw i32 %949, 2
%951 = sext i32 %950 to i64
%952 = getelementptr inbounds [25 x i32], [25 x i32]* %946, i64 %951
%953 = load i32*, i32** %5
%954 = getelementptr inbounds i32, i32* %953, i64 0
%955 = load i32, i32* %954
%956 = sext i32 %955 to i64
%957 = getelementptr inbounds [25 x i32], [25 x i32]* %952, i64 0, i64 %956
store i32 2, i32* %957
br label %958
958: ; preds = %945, %932
br label %959
959: ; preds = %958, %902
%960 = load [25 x i32]*, [25 x i32]** %4
%961 = load i32*, i32** %5
%962 = getelementptr inbounds i32, i32* %961, i64 1
%963 = load i32, i32* %962
%964 = add nsw i32 %963, 1
%965 = sext i32 %964 to i64
%966 = getelementptr inbounds [25 x i32], [25 x i32]* %960, i64 %965
%967 = load i32*, i32** %5
%968 = getelementptr inbounds i32, i32* %967, i64 0
%969 = load i32, i32* %968
%970 = sext i32 %969 to i64
%971 = getelementptr inbounds [25 x i32], [25 x i32]* %966, i64 0, i64 %970
%972 = load i32, i32* %971
%973 = icmp eq i32 %972, 3
br i1 %973, label %989, label %974
974: ; preds = %959
%975 = load [25 x i32]*, [25 x i32]** %4
%976 = load i32*, i32** %5
%977 = getelementptr inbounds i32, i32* %976, i64 1
%978 = load i32, i32* %977
%979 = add nsw i32 %978, 1
%980 = sext i32 %979 to i64
%981 = getelementptr inbounds [25 x i32], [25 x i32]* %975, i64 %980
%982 = load i32*, i32** %5
%983 = getelementptr inbounds i32, i32* %982, i64 0
%984 = load i32, i32* %983
%985 = sext i32 %984 to i64
%986 = getelementptr inbounds [25 x i32], [25 x i32]* %981, i64 0, i64 %985
%987 = load i32, i32* %986
%988 = icmp eq i32 %987, 6
br i1 %988, label %989, label %1002
989: ; preds = %974, %959
%990 = load [25 x i32]*, [25 x i32]** %4
%991 = load i32*, i32** %5
%992 = getelementptr inbounds i32, i32* %991, i64 1
%993 = load i32, i32* %992
%994 = add nsw i32 %993, 1
%995 = sext i32 %994 to i64
%996 = getelementptr inbounds [25 x i32], [25 x i32]* %990, i64 %995
%997 = load i32*, i32** %5
%998 = getelementptr inbounds i32, i32* %997, i64 0
%999 = load i32, i32* %998
%1000 = sext i32 %999 to i64
%1001 = getelementptr inbounds [25 x i32], [25 x i32]* %996, i64 0, i64 %1000
store i32 5, i32* %1001
br label %1015
1002: ; preds = %974
%1003 = load [25 x i32]*, [25 x i32]** %4
%1004 = load i32*, i32** %5
%1005 = getelementptr inbounds i32, i32* %1004, i64 1
%1006 = load i32, i32* %1005
%1007 = add nsw i32 %1006, 1
%1008 = sext i32 %1007 to i64
%1009 = getelementptr inbounds [25 x i32], [25 x i32]* %1003, i64 %1008
%1010 = load i32*, i32** %5
%1011 = getelementptr inbounds i32, i32* %1010, i64 0
%1012 = load i32, i32* %1011
%1013 = sext i32 %1012 to i64
%1014 = getelementptr inbounds [25 x i32], [25 x i32]* %1009, i64 0, i64 %1013
store i32 4, i32* %1014
br label %1015
1015: ; preds = %1002, %989
%1016 = load [25 x i32]*, [25 x i32]** %4
%1017 = load i32*, i32** %5
%1018 = getelementptr inbounds i32, i32* %1017, i64 1
%1019 = load i32, i32* %1018
%1020 = sext i32 %1019 to i64
%1021 = getelementptr inbounds [25 x i32], [25 x i32]* %1016, i64 %1020
%1022 = load i32*, i32** %5
%1023 = getelementptr inbounds i32, i32* %1022, i64 0
%1024 = load i32, i32* %1023
%1025 = sext i32 %1024 to i64
%1026 = getelementptr inbounds [25 x i32], [25 x i32]* %1021, i64 0, i64 %1025
%1027 = load i32, i32* %1026
%1028 = icmp eq i32 %1027, 5
br i1 %1028, label %1029, label %1041
1029: ; preds = %1015
%1030 = load [25 x i32]*, [25 x i32]** %4
%1031 = load i32*, i32** %5
%1032 = getelementptr inbounds i32, i32* %1031, i64 1
%1033 = load i32, i32* %1032
%1034 = sext i32 %1033 to i64
%1035 = getelementptr inbounds [25 x i32], [25 x i32]* %1030, i64 %1034
%1036 = load i32*, i32** %5
%1037 = getelementptr inbounds i32, i32* %1036, i64 0
%1038 = load i32, i32* %1037
%1039 = sext i32 %1038 to i64
%1040 = getelementptr inbounds [25 x i32], [25 x i32]* %1035, i64 0, i64 %1039
store i32 3, i32* %1040
br label %1053
1041: ; preds = %1015
%1042 = load [25 x i32]*, [25 x i32]** %4
%1043 = load i32*, i32** %5
%1044 = getelementptr inbounds i32, i32* %1043, i64 1
%1045 = load i32, i32* %1044
%1046 = sext i32 %1045 to i64
%1047 = getelementptr inbounds [25 x i32], [25 x i32]* %1042, i64 %1046
%1048 = load i32*, i32** %5
%1049 = getelementptr inbounds i32, i32* %1048, i64 0
%1050 = load i32, i32* %1049
%1051 = sext i32 %1050 to i64
%1052 = getelementptr inbounds [25 x i32], [25 x i32]* %1047, i64 0, i64 %1051
store i32 0, i32* %1052
br label %1053
1053: ; preds = %1041, %1029
store i32 1, i32* %7
br label %1054
1054: ; preds = %1053, %872, %842
br label %1055
1055: ; preds = %1054, %793
%1056 = load i32, i32* %7
ret i32 %1056
}

LLVM IR (-O2):
define i32 @Deplacement([25 x i32]* %0, i32* %1, i8 signext %2) {
switch i8 %2, label %112 [
i8 71, label %4
i8 68, label %26
i8 72, label %48
i8 66, label %70
]
4: ; preds = %3
%5 = getelementptr inbounds i32, i32* %1, i64 1
%6 = load i32, i32* %5
%7 = sext i32 %6 to i64
%8 = load i32, i32* %1
%9 = add nsw i32 %8, -1
%10 = sext i32 %9 to i64
%11 = getelementptr inbounds [25 x i32], [25 x i32]* %0, i64 %7, i64 %10
%12 = load i32, i32* %11
switch i32 %12, label %112 [
i32 6, label %13
i32 2, label %13
i32 0, label %22
i32 3, label %22
]
13: ; preds = %4, %4
%14 = add nsw i32 %8, -2
%15 = sext i32 %14 to i64
%16 = getelementptr inbounds [25 x i32], [25 x i32]* %0, i64 %7, i64 %15
%17 = load i32, i32* %16
switch i32 %17, label %112 [
i32 0, label %18
i32 3, label %18
]
18: ; preds = %13, %13
switch i32 %12, label %22 [
i32 2, label %19
i32 6, label %19
]
19: ; preds = %18, %18
%20 = icmp eq i32 %17, 3
%21 = select i1 %20, i32 6, i32 2
store i32 %21, i32* %16
br label %22
22: ; preds = %19, %4, %4, %18
%23 = load i32, i32* %5
%24 = load i32, i32* %1
%25 = add nsw i32 %24, -1
br label %92
26: ; preds = %3
%27 = getelementptr inbounds i32, i32* %1, i64 1
%28 = load i32, i32* %27
%29 = sext i32 %28 to i64
%30 = load i32, i32* %1
%31 = add nsw i32 %30, 1
%32 = sext i32 %31 to i64
%33 = getelementptr inbounds [25 x i32], [25 x i32]* %0, i64 %29, i64 %32
%34 = load i32, i32* %33
switch i32 %34, label %112 [
i32 6, label %35
i32 2, label %35
i32 0, label %44
i32 3, label %44
]
35: ; preds = %26, %26
%36 = add nsw i32 %30, 2
%37 = sext i32 %36 to i64
%38 = getelementptr inbounds [25 x i32], [25 x i32]* %0, i64 %29, i64 %37
%39 = load i32, i32* %38
switch i32 %39, label %112 [
i32 0, label %40
i32 3, label %40
]
40: ; preds = %35, %35
switch i32 %34, label %44 [
i32 2, label %41
i32 6, label %41
]
41: ; preds = %40, %40
%42 = icmp eq i32 %39, 3
%43 = select i1 %42, i32 6, i32 2
store i32 %43, i32* %38
br label %44
44: ; preds = %41, %26, %26, %40
%45 = load i32, i32* %27
%46 = load i32, i32* %1
%47 = add nsw i32 %46, 1
br label %92
48: ; preds = %3
%49 = getelementptr inbounds i32, i32* %1, i64 1
%50 = load i32, i32* %49
%51 = add nsw i32 %50, -1
%52 = sext i32 %51 to i64
%53 = load i32, i32* %1
%54 = sext i32 %53 to i64
%55 = getelementptr inbounds [25 x i32], [25 x i32]* %0, i64 %52, i64 %54
%56 = load i32, i32* %55
switch i32 %56, label %112 [
i32 6, label %57
i32 2, label %57
i32 0, label %66
i32 3, label %66
]
57: ; preds = %48, %48
%58 = add nsw i32 %50, -2
%59 = sext i32 %58 to i64
%60 = getelementptr inbounds [25 x i32], [25 x i32]* %0, i64 %59, i64 %54
%61 = load i32, i32* %60
switch i32 %61, label %112 [
i32 0, label %62
i32 3, label %62
]
62: ; preds = %57, %57
switch i32 %56, label %66 [
i32 2, label %63
i32 6, label %63
]
63: ; preds = %62, %62
%64 = icmp eq i32 %61, 3
%65 = select i1 %64, i32 6, i32 2
store i32 %65, i32* %60
br label %66
66: ; preds = %63, %48, %48, %62
%67 = load i32, i32* %49
%68 = add nsw i32 %67, -1
%69 = load i32, i32* %1
br label %92
70: ; preds = %3
%71 = getelementptr inbounds i32, i32* %1, i64 1
%72 = load i32, i32* %71
%73 = add nsw i32 %72, 1
%74 = sext i32 %73 to i64
%75 = load i32, i32* %1
%76 = sext i32 %75 to i64
%77 = getelementptr inbounds [25 x i32], [25 x i32]* %0, i64 %74, i64 %76
%78 = load i32, i32* %77
switch i32 %78, label %112 [
i32 6, label %79
i32 2, label %79
i32 0, label %88
i32 3, label %88
]
79: ; preds = %70, %70
%80 = add nsw i32 %72, 2
%81 = sext i32 %80 to i64
%82 = getelementptr inbounds [25 x i32], [25 x i32]* %0, i64 %81, i64 %76
%83 = load i32, i32* %82
switch i32 %83, label %112 [
i32 0, label %84
i32 3, label %84
]
84: ; preds = %79, %79
switch i32 %78, label %88 [
i32 2, label %85
i32 6, label %85
]
85: ; preds = %84, %84
%86 = icmp eq i32 %83, 3
%87 = select i1 %86, i32 6, i32 2
store i32 %87, i32* %82
br label %88
88: ; preds = %85, %70, %70, %84
%89 = load i32, i32* %71
%90 = add nsw i32 %89, 1
%91 = load i32, i32* %1
br label %92
92: ; preds = %88, %66, %44, %22
%93 = phi i32 [ %91, %88 ], [ %69, %66 ], [ %47, %44 ], [ %25, %22 ]
%94 = phi i32 [ %90, %88 ], [ %68, %66 ], [ %45, %44 ], [ %23, %22 ]
%95 = phi i32* [ %71, %88 ], [ %49, %66 ], [ %27, %44 ], [ %5, %22 ]
%96 = sext i32 %94 to i64
%97 = sext i32 %93 to i64
%98 = getelementptr inbounds [25 x i32], [25 x i32]* %0, i64 %96, i64 %97
%99 = load i32, i32* %98
%100 = icmp eq i32 %99, 3
%101 = icmp eq i32 %99, 6
%102 = or i1 %100, %101
%103 = select i1 %102, i32 5, i32 4
store i32 %103, i32* %98
%104 = load i32, i32* %95
%105 = sext i32 %104 to i64
%106 = load i32, i32* %1
%107 = sext i32 %106 to i64
%108 = getelementptr inbounds [25 x i32], [25 x i32]* %0, i64 %105, i64 %107
%109 = load i32, i32* %108
%110 = icmp eq i32 %109, 5
%111 = select i1 %110, i32 3, i32 0
store i32 %111, i32* %108
br label %112
112: ; preds = %92, %70, %3, %48, %26, %4, %13, %35, %57, %79
%113 = phi i32 [ 0, %70 ], [ 0, %79 ], [ 0, %57 ], [ 0, %48 ], [ 0, %35 ], [ 0, %26 ], [ 0, %13 ], [ 0, %4 ], [ 0, %3 ], [ 1, %92 ]
ret i32 %113
}