// File: /workspace/github_cpp_makefile_star2_O1/Rubenmp[P]Rubik/src/defineRubik.cpp
// Function: Rubik::searchEdge(char const&, char const&) const
int Rubik::searchEdge(const char& ar, const char& ab) const{
   int position;
   if( (edge[0].up == ar && edge[0].down == ab) || (edge[0].up == ab && edge[0].down == ar) )
      position = 0;
   else if( (edge[1].up == ar && edge[1].down == ab) || (edge[1].up == ab && edge[1].down == ar) )
      position = 1;
   else if( (edge[2].up == ar && edge[2].down == ab) || (edge[2].up == ab && edge[2].down == ar) )
      position = 2;
   else if( (edge[3].up == ar && edge[3].down == ab) || (edge[3].up == ab && edge[3].down == ar) )
      position = 3;
   else if( (edge[4].up == ar && edge[4].down == ab) || (edge[4].up == ab && edge[4].down == ar) )
      position = 4;
   else if( (edge[5].up == ar && edge[5].down == ab) || (edge[5].up == ab && edge[5].down == ar) )
      position = 5;
   else if( (edge[6].up == ar && edge[6].down == ab) || (edge[6].up == ab && edge[6].down == ar) )
      position = 6;
   else if( (edge[7].up == ar && edge[7].down == ab) || (edge[7].up == ab && edge[7].down == ar) )
      position = 7;
   else if( (edge[8].up == ar && edge[8].down == ab) || (edge[8].up == ab && edge[8].down == ar) )
      position = 8;
   else if( (edge[9].up == ar && edge[9].down == ab) || (edge[9].up == ab && edge[9].down == ar) )
      position = 9;
   else if( (edge[10].up == ar && edge[10].down == ab) || (edge[10].up == ab && edge[10].down == ar) )
      position = 10;
   else if( (edge[11].up == ar && edge[11].down == ab) || (edge[11].up == ab && edge[11].down == ar) )
      position = 11;

   return position;
}

// Assembly:
movb 0x6(%rdi), %al
movb (%rsi), %cl
cmpb %cl, %al
jne 0x3616
movb 0x7(%rdi), %sil
cmpb (%rdx), %sil
je 0x3621
movb (%rdx), %dl
cmpb %dl, %al
jne 0x3624
cmpb %cl, 0x7(%rdi)
jne 0x3624
xorl %eax, %eax
retq
movb 0x8(%rdi), %sil
movl $0x1, %eax
cmpb %cl, %sil
jne 0x3638
cmpb %dl, 0x9(%rdi)
jne 0x3638
retq
cmpb %dl, %sil
jne 0x3642
cmpb %cl, 0x9(%rdi)
je 0x3637
movb 0xa(%rdi), %sil
movl $0x2, %eax
cmpb %cl, %sil
jne 0x3655
cmpb %dl, 0xb(%rdi)
je 0x3637
cmpb %dl, %sil
jne 0x365f
cmpb %cl, 0xb(%rdi)
je 0x3637
movb 0xc(%rdi), %sil
movl $0x3, %eax
cmpb %cl, %sil
jne 0x3672
cmpb %dl, 0xd(%rdi)
je 0x3637
cmpb %dl, %sil
jne 0x367c
cmpb %cl, 0xd(%rdi)
je 0x3637
movb 0xe(%rdi), %sil
movl $0x4, %eax
cmpb %cl, %sil
jne 0x368f
cmpb %dl, 0xf(%rdi)
je 0x3637
cmpb %dl, %sil
jne 0x3699
cmpb %cl, 0xf(%rdi)
je 0x3637
movb 0x10(%rdi), %sil
movl $0x5, %eax
cmpb %cl, %sil
jne 0x36ac
cmpb %dl, 0x11(%rdi)
je 0x3637
cmpb %dl, %sil
jne 0x36b6
cmpb %cl, 0x11(%rdi)
je 0x3637
movb 0x12(%rdi), %sil
movl $0x6, %eax
cmpb %cl, %sil
jne 0x36cd
cmpb %dl, 0x13(%rdi)
je 0x3637
cmpb %dl, %sil
jne 0x36db
cmpb %cl, 0x13(%rdi)
je 0x3637
movb 0x14(%rdi), %sil
movl $0x7, %eax
cmpb %cl, %sil
jne 0x36f2
cmpb %dl, 0x15(%rdi)
je 0x3637
cmpb %dl, %sil
jne 0x3700
cmpb %cl, 0x15(%rdi)
je 0x3637
movb 0x16(%rdi), %sil
movl $0x8, %eax
cmpb %cl, %sil
jne 0x3717
cmpb %dl, 0x17(%rdi)
je 0x3637
cmpb %dl, %sil
jne 0x3725
cmpb %cl, 0x17(%rdi)
je 0x3637
movb 0x18(%rdi), %sil
movl $0x9, %eax
cmpb %cl, %sil
jne 0x373c
cmpb %dl, 0x19(%rdi)
je 0x3637
cmpb %dl, %sil
jne 0x374a
cmpb %cl, 0x19(%rdi)
je 0x3637
movb 0x1a(%rdi), %sil
movl $0xa, %eax
cmpb %cl, %sil
jne 0x3761
cmpb %dl, 0x1b(%rdi)
je 0x3637
cmpb %dl, %sil
jne 0x376f
cmpb %cl, 0x1b(%rdi)
je 0x3637
movl $0xb, %eax
retq
nop