// File: /workspace/github_cpp_makefile_star2_O3/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), %r8b
movb 0x7(%rdi), %r9b
movb (%rsi), %cl
movl %r8d, %esi
xorb %cl, %sil
movb (%rdx), %dl
movl %r9d, %r10d
xorb %dl, %r10b
xorl %eax, %eax
orb %sil, %r10b
je 0x37f5
xorb %dl, %r8b
xorb %cl, %r9b
orb %r8b, %r9b
je 0x37f5
movb 0x8(%rdi), %sil
movb 0x9(%rdi), %r8b
movl %esi, %r9d
xorb %cl, %r9b
movl %r8d, %r10d
xorb %dl, %r10b
movl $0x1, %eax
orb %r9b, %r10b
je 0x37f5
xorb %dl, %sil
xorb %cl, %r8b
orb %sil, %r8b
je 0x37f5
movb 0xa(%rdi), %sil
movb 0xb(%rdi), %r8b
movl %esi, %r9d
xorb %cl, %r9b
movl %r8d, %r10d
xorb %dl, %r10b
movl $0x2, %eax
orb %r9b, %r10b
je 0x37f5
xorb %dl, %sil
xorb %cl, %r8b
orb %sil, %r8b
je 0x37f5
movb 0xc(%rdi), %sil
movb 0xd(%rdi), %r8b
movl %esi, %r9d
xorb %cl, %r9b
movl %r8d, %r10d
xorb %dl, %r10b
movl $0x3, %eax
orb %r9b, %r10b
je 0x37f5
xorb %dl, %sil
xorb %cl, %r8b
orb %sil, %r8b
je 0x37f5
movb 0xe(%rdi), %sil
movb 0xf(%rdi), %r8b
movl %esi, %r9d
xorb %cl, %r9b
movl %r8d, %r10d
xorb %dl, %r10b
movl $0x4, %eax
orb %r9b, %r10b
je 0x37f5
xorb %dl, %sil
xorb %cl, %r8b
orb %sil, %r8b
je 0x37f5
movb 0x10(%rdi), %sil
movb 0x11(%rdi), %r8b
movl %esi, %r9d
xorb %cl, %r9b
movl %r8d, %r10d
xorb %dl, %r10b
movl $0x5, %eax
orb %r9b, %r10b
je 0x37f5
xorb %dl, %sil
xorb %cl, %r8b
orb %sil, %r8b
je 0x37f5
movb 0x12(%rdi), %sil
movb 0x13(%rdi), %r8b
movl %esi, %r9d
xorb %cl, %r9b
movl %r8d, %r10d
xorb %dl, %r10b
movl $0x6, %eax
orb %r9b, %r10b
je 0x37f5
xorb %dl, %sil
xorb %cl, %r8b
orb %sil, %r8b
je 0x37f5
movb 0x14(%rdi), %sil
movb 0x15(%rdi), %r8b
movl %esi, %r9d
xorb %cl, %r9b
movl %r8d, %r10d
xorb %dl, %r10b
movl $0x7, %eax
orb %r9b, %r10b
je 0x37f5
xorb %dl, %sil
xorb %cl, %r8b
orb %sil, %r8b
je 0x37f5
movb 0x16(%rdi), %sil
movb 0x17(%rdi), %r8b
movl %esi, %r9d
xorb %cl, %r9b
movl %r8d, %r10d
xorb %dl, %r10b
movl $0x8, %eax
orb %r9b, %r10b
je 0x37f5
xorb %dl, %sil
xorb %cl, %r8b
orb %sil, %r8b
je 0x37f5
movb 0x18(%rdi), %sil
movb 0x19(%rdi), %r8b
movl %esi, %r9d
xorb %cl, %r9b
movl %r8d, %r10d
xorb %dl, %r10b
movl $0x9, %eax
orb %r9b, %r10b
je 0x37f5
xorb %dl, %sil
xorb %cl, %r8b
orb %sil, %r8b
je 0x37f5
movb 0x1a(%rdi), %sil
movb 0x1b(%rdi), %dil
movl %esi, %r8d
xorb %cl, %r8b
movl %edi, %r9d
xorb %dl, %r9b
movl $0xa, %eax
orb %r8b, %r9b
je 0x37f5
xorb %dl, %sil
xorb %cl, %dil
orb %sil, %dil
je 0x37f5
movl $0xb, %eax
retq