// File: 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:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x28(%rbp)
movsbl 0x6(%rax), %eax
movq -0x10(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x42fa
movq -0x28(%rbp), %rax
movsbl 0x7(%rax), %eax
movq -0x18(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x4320
movq -0x28(%rbp), %rax
movsbl 0x6(%rax), %eax
movq -0x18(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x432c
movq -0x28(%rbp), %rax
movsbl 0x7(%rax), %eax
movq -0x10(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x432c
movl $0x0, -0x1c(%rbp)
jmp 0x4702
movq -0x28(%rbp), %rax
movsbl 0x8(%rax), %eax
movq -0x10(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x4352
movq -0x28(%rbp), %rax
movsbl 0x9(%rax), %eax
movq -0x18(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x4378
movq -0x28(%rbp), %rax
movsbl 0x8(%rax), %eax
movq -0x18(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x4384
movq -0x28(%rbp), %rax
movsbl 0x9(%rax), %eax
movq -0x10(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x4384
movl $0x1, -0x1c(%rbp)
jmp 0x4700
movq -0x28(%rbp), %rax
movsbl 0xa(%rax), %eax
movq -0x10(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x43aa
movq -0x28(%rbp), %rax
movsbl 0xb(%rax), %eax
movq -0x18(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x43d0
movq -0x28(%rbp), %rax
movsbl 0xa(%rax), %eax
movq -0x18(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x43dc
movq -0x28(%rbp), %rax
movsbl 0xb(%rax), %eax
movq -0x10(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x43dc
movl $0x2, -0x1c(%rbp)
jmp 0x46fe
movq -0x28(%rbp), %rax
movsbl 0xc(%rax), %eax
movq -0x10(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x4402
movq -0x28(%rbp), %rax
movsbl 0xd(%rax), %eax
movq -0x18(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x4428
movq -0x28(%rbp), %rax
movsbl 0xc(%rax), %eax
movq -0x18(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x4434
movq -0x28(%rbp), %rax
movsbl 0xd(%rax), %eax
movq -0x10(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x4434
movl $0x3, -0x1c(%rbp)
jmp 0x46fc
movq -0x28(%rbp), %rax
movsbl 0xe(%rax), %eax
movq -0x10(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x445a
movq -0x28(%rbp), %rax
movsbl 0xf(%rax), %eax
movq -0x18(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x4480
movq -0x28(%rbp), %rax
movsbl 0xe(%rax), %eax
movq -0x18(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x448c
movq -0x28(%rbp), %rax
movsbl 0xf(%rax), %eax
movq -0x10(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x448c
movl $0x4, -0x1c(%rbp)
jmp 0x46fa
movq -0x28(%rbp), %rax
movsbl 0x10(%rax), %eax
movq -0x10(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x44b2
movq -0x28(%rbp), %rax
movsbl 0x11(%rax), %eax
movq -0x18(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x44d8
movq -0x28(%rbp), %rax
movsbl 0x10(%rax), %eax
movq -0x18(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x44e4
movq -0x28(%rbp), %rax
movsbl 0x11(%rax), %eax
movq -0x10(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x44e4
movl $0x5, -0x1c(%rbp)
jmp 0x46f8
movq -0x28(%rbp), %rax
movsbl 0x12(%rax), %eax
movq -0x10(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x450a
movq -0x28(%rbp), %rax
movsbl 0x13(%rax), %eax
movq -0x18(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x4530
movq -0x28(%rbp), %rax
movsbl 0x12(%rax), %eax
movq -0x18(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x453c
movq -0x28(%rbp), %rax
movsbl 0x13(%rax), %eax
movq -0x10(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x453c
movl $0x6, -0x1c(%rbp)
jmp 0x46f6
movq -0x28(%rbp), %rax
movsbl 0x14(%rax), %eax
movq -0x10(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x4562
movq -0x28(%rbp), %rax
movsbl 0x15(%rax), %eax
movq -0x18(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x4588
movq -0x28(%rbp), %rax
movsbl 0x14(%rax), %eax
movq -0x18(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x4594
movq -0x28(%rbp), %rax
movsbl 0x15(%rax), %eax
movq -0x10(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x4594
movl $0x7, -0x1c(%rbp)
jmp 0x46f4
movq -0x28(%rbp), %rax
movsbl 0x16(%rax), %eax
movq -0x10(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x45ba
movq -0x28(%rbp), %rax
movsbl 0x17(%rax), %eax
movq -0x18(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x45e0
movq -0x28(%rbp), %rax
movsbl 0x16(%rax), %eax
movq -0x18(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x45ec
movq -0x28(%rbp), %rax
movsbl 0x17(%rax), %eax
movq -0x10(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x45ec
movl $0x8, -0x1c(%rbp)
jmp 0x46f2
movq -0x28(%rbp), %rax
movsbl 0x18(%rax), %eax
movq -0x10(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x4612
movq -0x28(%rbp), %rax
movsbl 0x19(%rax), %eax
movq -0x18(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x4638
movq -0x28(%rbp), %rax
movsbl 0x18(%rax), %eax
movq -0x18(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x4644
movq -0x28(%rbp), %rax
movsbl 0x19(%rax), %eax
movq -0x10(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x4644
movl $0x9, -0x1c(%rbp)
jmp 0x46f0
movq -0x28(%rbp), %rax
movsbl 0x1a(%rax), %eax
movq -0x10(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x466a
movq -0x28(%rbp), %rax
movsbl 0x1b(%rax), %eax
movq -0x18(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x4690
movq -0x28(%rbp), %rax
movsbl 0x1a(%rax), %eax
movq -0x18(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x4699
movq -0x28(%rbp), %rax
movsbl 0x1b(%rax), %eax
movq -0x10(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x4699
movl $0xa, -0x1c(%rbp)
jmp 0x46ee
movq -0x28(%rbp), %rax
movsbl 0x1c(%rax), %eax
movq -0x10(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x46bf
movq -0x28(%rbp), %rax
movsbl 0x1d(%rax), %eax
movq -0x18(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x46e5
movq -0x28(%rbp), %rax
movsbl 0x1c(%rax), %eax
movq -0x18(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x46ec
movq -0x28(%rbp), %rax
movsbl 0x1d(%rax), %eax
movq -0x10(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0x46ec
movl $0xb, -0x1c(%rbp)
jmp 0x46ee
jmp 0x46f0
jmp 0x46f2
jmp 0x46f4
jmp 0x46f6
jmp 0x46f8
jmp 0x46fa
jmp 0x46fc
jmp 0x46fe
jmp 0x4700
jmp 0x4702
movl -0x1c(%rbp), %eax
popq %rbp
retq
nopw (%rax,%rax)