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