// File: /workspace/github_cpp_makefile_star2_O2/Rubenmp[P]Rubik/src/defineRubik.cpp
// Function: Rubik::searchCorner(char const&, char const&, char const&) const
int Rubik::searchCorner(const char& a, const char& iz, const char& de) const{
   int position;
   if ( ( (corner[0].up == a) && (corner[0].left == iz) && (corner[0].right == de) ) ||
        ( (corner[0].up == a) && (corner[0].left == de) && (corner[0].right == iz) ) ||
        ( (corner[0].up == iz) && (corner[0].left == a) && (corner[0].right == de) ) ||
        ( (corner[0].up == de) && (corner[0].left == iz) && (corner[0].right == a) ) ||
        ( (corner[0].up == de) && (corner[0].left == a) && (corner[0].right == iz) ) ||
        ( (corner[0].up == iz) && (corner[0].left == de) && (corner[0].right == a) ) )
      position = 0;
   else if ( ( (corner[1].up == a) && (corner[1].left == iz) && (corner[1].right == de) ) ||
             ( (corner[1].up == a) && (corner[1].left == de) && (corner[1].right == iz) ) ||
             ( (corner[1].up == iz) && (corner[1].left == a) && (corner[1].right == de) ) ||
             ( (corner[1].up == de) && (corner[1].left == iz) && (corner[1].right == a) ) ||
             ( (corner[1].up == de) && (corner[1].left == a) && (corner[1].right == iz) ) ||
             ( (corner[1].up == iz) && (corner[1].left == de) && (corner[1].right == a) ) )
      position = 1;
   else if ( ( (corner[2].up == a) && (corner[2].left == iz) && (corner[2].right == de) ) ||
             ( (corner[2].up == a) && (corner[2].left == de) && (corner[2].right == iz) ) ||
             ( (corner[2].up == iz) && (corner[2].left == a) && (corner[2].right == de) ) ||
             ( (corner[2].up == de) && (corner[2].left == iz) && (corner[2].right == a) ) ||
             ( (corner[2].up == de) && (corner[2].left == a) && (corner[2].right == iz) ) ||
             ( (corner[2].up == iz) && (corner[2].left == de) && (corner[2].right == a) ) )
      position = 2;
   else if ( ( (corner[3].up == a) && (corner[3].left == iz) && (corner[3].right == de) ) ||
             ( (corner[3].up == a) && (corner[3].left == de) && (corner[3].right == iz) ) ||
             ( (corner[3].up == iz) && (corner[3].left == a) && (corner[3].right == de) ) ||
             ( (corner[3].up == de) && (corner[3].left == iz) && (corner[3].right == a) ) ||
             ( (corner[3].up == de) && (corner[3].left == a) && (corner[3].right == iz) ) ||
             ( (corner[3].up == iz) && (corner[3].left == de) && (corner[3].right == a) ) )
      position = 3;
   else if ( ( (corner[4].up == a) && (corner[4].left == iz) && (corner[4].right == de) ) ||
             ( (corner[4].up == a) && (corner[4].left == de) && (corner[4].right == iz) ) ||
             ( (corner[4].up == iz) && (corner[4].left == a) && (corner[4].right == de) ) ||
             ( (corner[4].up == de) && (corner[4].left == iz) && (corner[4].right == a) ) ||
             ( (corner[4].up == de) && (corner[4].left == a) && (corner[4].right == iz) ) ||
             ( (corner[4].up == iz) && (corner[4].left == de) && (corner[4].right == a) ) )
      position = 4;
   else if ( ( (corner[5].up == a) && (corner[5].left == iz) && (corner[5].right == de) ) ||
             ( (corner[5].up == a) && (corner[5].left == de) && (corner[5].right == iz) ) ||
             ( (corner[5].up == iz) && (corner[5].left == a) && (corner[5].right == de) ) ||
             ( (corner[5].up == de) && (corner[5].left == iz) && (corner[5].right == a) ) ||
             ( (corner[5].up == de) && (corner[5].left == a) && (corner[5].right == iz) ) ||
             ( (corner[5].up == iz) && (corner[5].left == de) && (corner[5].right == a) ) )
      position = 5;
   else if ( ( (corner[6].up == a) && (corner[6].left == iz) && (corner[6].right == de) ) ||
             ( (corner[6].up == a) && (corner[6].left == de) && (corner[6].right == iz) ) ||
             ( (corner[6].up == iz) && (corner[6].left == a) && (corner[6].right == de) ) ||
             ( (corner[6].up == de) && (corner[6].left == iz) && (corner[6].right == a) ) ||
             ( (corner[6].up == de) && (corner[6].left == a) && (corner[6].right == iz) ) ||
             ( (corner[6].up == iz) && (corner[6].left == de) && (corner[6].right == a) ) )
      position = 6;
   else if ( ( (corner[7].up == a) && (corner[7].left == iz) && (corner[7].right == de) ) ||
             ( (corner[7].up == a) && (corner[7].left == de) && (corner[7].right == iz) ) ||
             ( (corner[7].up == iz) && (corner[7].left == a) && (corner[7].right == de) ) ||
             ( (corner[7].up == de) && (corner[7].left == iz) && (corner[7].right == a) ) ||
             ( (corner[7].up == de) && (corner[7].left == a) && (corner[7].right == iz) ) ||
             ( (corner[7].up == iz) && (corner[7].left == de) && (corner[7].right == a) ) )
      position = 7;
   else
      cout << "Problem with corner (" << a << "," << iz << "," << de << ").\n";

   return position;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rcx, %rbx
movq %rdx, %r14
movq %rsi, %r15
movb 0x1e(%rdi), %r9b
movb 0x1f(%rdi), %r8b
movb (%rsi), %cl
movb (%rdx), %dl
cmpb %cl, %r9b
jne 0x340d
xorl %eax, %eax
movb (%rbx), %sil
cmpb %dl, %r8b
jne 0x33fb
cmpb %sil, 0x20(%rdi)
je 0x3894
cmpb %sil, %r8b
jne 0x3410
movl %r8d, %esi
cmpb %dl, 0x20(%rdi)
jne 0x3410
jmp 0x3894
movb (%rbx), %sil
xorl %eax, %eax
cmpb %dl, %r9b
jne 0x3426
cmpb %cl, %r8b
jne 0x3426
cmpb %sil, 0x20(%rdi)
je 0x3894
cmpb %sil, %r9b
jne 0x3461
movl %r8d, %r11d
xorb %cl, %r11b
movl %r8d, %ebp
xorb %dl, %bpl
movb 0x20(%rdi), %r10b
movl %r10d, %r12d
xorb %cl, %r12b
movl %r10d, %r13d
xorb %dl, %r13b
orb %r11b, %r13b
sete %r11b
orb %bpl, %r12b
je 0x3894
testb %r11b, %r11b
je 0x3465
jmp 0x3894
movb 0x20(%rdi), %r10b
cmpb %dl, %r9b
jne 0x3478
cmpb %sil, %r8b
jne 0x3478
cmpb %cl, %r10b
je 0x3894
movb 0x21(%rdi), %r9b
movb 0x22(%rdi), %r8b
pushq $0x1
popq %rax
cmpb %cl, %r9b
jne 0x34b0
movb 0x23(%rdi), %r10b
cmpb %dl, %r8b
jne 0x349a
cmpb %sil, %r10b
je 0x3894
movl %r8d, %r11d
xorb %sil, %r11b
movl %r10d, %ebp
xorb %dl, %bpl
orb %r11b, %bpl
jne 0x34b4
jmp 0x3894
movb 0x23(%rdi), %r10b
cmpb %dl, %r9b
jne 0x34c7
cmpb %cl, %r8b
jne 0x34c7
cmpb %sil, %r10b
je 0x3894
cmpb %sil, %r9b
jne 0x34fd
movl %r8d, %r11d
xorb %cl, %r11b
movl %r8d, %ebp
xorb %dl, %bpl
movl %r10d, %r12d
xorb %cl, %r12b
movl %r10d, %r13d
xorb %dl, %r13b
orb %r11b, %r13b
sete %r11b
orb %bpl, %r12b
je 0x3894
testb %r11b, %r11b
jne 0x3894
xorb %dl, %r9b
xorb %sil, %r8b
orb %r9b, %r8b
xorb %cl, %r10b
orb %r8b, %r10b
je 0x3894
movb 0x24(%rdi), %r9b
movb 0x25(%rdi), %r8b
pushq $0x2
popq %rax
cmpb %cl, %r9b
jne 0x354a
movb 0x26(%rdi), %r10b
cmpb %dl, %r8b
jne 0x3534
cmpb %sil, %r10b
je 0x3894
movl %r8d, %r11d
xorb %sil, %r11b
movl %r10d, %ebp
xorb %dl, %bpl
orb %r11b, %bpl
jne 0x354e
jmp 0x3894
movb 0x26(%rdi), %r10b
cmpb %dl, %r9b
jne 0x3561
cmpb %cl, %r8b
jne 0x3561
cmpb %sil, %r10b
je 0x3894
cmpb %sil, %r9b
jne 0x3597
movl %r8d, %r11d
xorb %cl, %r11b
movl %r8d, %ebp
xorb %dl, %bpl
movl %r10d, %r12d
xorb %cl, %r12b
movl %r10d, %r13d
xorb %dl, %r13b
orb %r11b, %r13b
sete %r11b
orb %bpl, %r12b
je 0x3894
testb %r11b, %r11b
jne 0x3894
xorb %dl, %r9b
xorb %sil, %r8b
orb %r9b, %r8b
xorb %cl, %r10b
orb %r8b, %r10b
je 0x3894
movb 0x27(%rdi), %r9b
movb 0x28(%rdi), %r8b
pushq $0x3
popq %rax
cmpb %cl, %r9b
jne 0x35e4
movb 0x29(%rdi), %r10b
cmpb %dl, %r8b
jne 0x35ce
cmpb %sil, %r10b
je 0x3894
movl %r8d, %r11d
xorb %sil, %r11b
movl %r10d, %ebp
xorb %dl, %bpl
orb %r11b, %bpl
jne 0x35e8
jmp 0x3894
movb 0x29(%rdi), %r10b
cmpb %dl, %r9b
jne 0x35fb
cmpb %cl, %r8b
jne 0x35fb
cmpb %sil, %r10b
je 0x3894
cmpb %sil, %r9b
jne 0x3631
movl %r8d, %r11d
xorb %cl, %r11b
movl %r8d, %ebp
xorb %dl, %bpl
movl %r10d, %r12d
xorb %cl, %r12b
movl %r10d, %r13d
xorb %dl, %r13b
orb %r11b, %r13b
sete %r11b
orb %bpl, %r12b
je 0x3894
testb %r11b, %r11b
jne 0x3894
xorb %dl, %r9b
xorb %sil, %r8b
orb %r9b, %r8b
xorb %cl, %r10b
orb %r8b, %r10b
je 0x3894
movb 0x2a(%rdi), %r9b
movb 0x2b(%rdi), %r8b
pushq $0x4
popq %rax
cmpb %cl, %r9b
jne 0x367e
movb 0x2c(%rdi), %r10b
cmpb %dl, %r8b
jne 0x3668
cmpb %sil, %r10b
je 0x3894
movl %r8d, %r11d
xorb %sil, %r11b
movl %r10d, %ebp
xorb %dl, %bpl
orb %r11b, %bpl
jne 0x3682
jmp 0x3894
movb 0x2c(%rdi), %r10b
cmpb %dl, %r9b
jne 0x3695
cmpb %cl, %r8b
jne 0x3695
cmpb %sil, %r10b
je 0x3894
cmpb %sil, %r9b
jne 0x36cb
movl %r8d, %r11d
xorb %cl, %r11b
movl %r8d, %ebp
xorb %dl, %bpl
movl %r10d, %r12d
xorb %cl, %r12b
movl %r10d, %r13d
xorb %dl, %r13b
orb %r11b, %r13b
sete %r11b
orb %bpl, %r12b
je 0x3894
testb %r11b, %r11b
jne 0x3894
xorb %dl, %r9b
xorb %sil, %r8b
orb %r9b, %r8b
xorb %cl, %r10b
orb %r8b, %r10b
je 0x3894
movb 0x2d(%rdi), %r9b
movb 0x2e(%rdi), %r8b
pushq $0x5
popq %rax
cmpb %cl, %r9b
jne 0x3718
movb 0x2f(%rdi), %r10b
cmpb %dl, %r8b
jne 0x3702
cmpb %sil, %r10b
je 0x3894
movl %r8d, %r11d
xorb %sil, %r11b
movl %r10d, %ebp
xorb %dl, %bpl
orb %r11b, %bpl
jne 0x371c
jmp 0x3894
movb 0x2f(%rdi), %r10b
cmpb %dl, %r9b
jne 0x372f
cmpb %cl, %r8b
jne 0x372f
cmpb %sil, %r10b
je 0x3894
cmpb %sil, %r9b
jne 0x3765
movl %r8d, %r11d
xorb %cl, %r11b
movl %r8d, %ebp
xorb %dl, %bpl
movl %r10d, %r12d
xorb %cl, %r12b
movl %r10d, %r13d
xorb %dl, %r13b
orb %r11b, %r13b
sete %r11b
orb %bpl, %r12b
je 0x3894
testb %r11b, %r11b
jne 0x3894
xorb %dl, %r9b
xorb %sil, %r8b
orb %r9b, %r8b
xorb %cl, %r10b
orb %r8b, %r10b
je 0x3894
movb 0x30(%rdi), %r9b
movb 0x31(%rdi), %r8b
pushq $0x6
popq %rax
cmpb %cl, %r9b
jne 0x37b2
movb 0x32(%rdi), %r10b
cmpb %dl, %r8b
jne 0x379c
cmpb %sil, %r10b
je 0x3894
movl %r8d, %r11d
xorb %sil, %r11b
movl %r10d, %ebp
xorb %dl, %bpl
orb %r11b, %bpl
jne 0x37b6
jmp 0x3894
movb 0x32(%rdi), %r10b
cmpb %dl, %r9b
jne 0x37c9
cmpb %cl, %r8b
jne 0x37c9
cmpb %sil, %r10b
je 0x3894
cmpb %sil, %r9b
jne 0x37ff
movl %r8d, %r11d
xorb %cl, %r11b
movl %r8d, %ebp
xorb %dl, %bpl
movl %r10d, %r12d
xorb %cl, %r12b
movl %r10d, %r13d
xorb %dl, %r13b
orb %r11b, %r13b
sete %r11b
orb %bpl, %r12b
je 0x3894
testb %r11b, %r11b
jne 0x3894
xorb %dl, %r9b
xorb %sil, %r8b
orb %r9b, %r8b
xorb %cl, %r10b
orb %r8b, %r10b
je 0x3894
movb 0x33(%rdi), %r9b
movb 0x34(%rdi), %r8b
pushq $0x7
popq %rax
cmpb %cl, %r9b
jne 0x3845
movb 0x35(%rdi), %dil
cmpb %dl, %r8b
jne 0x3832
cmpb %sil, %dil
je 0x3894
movl %r8d, %r10d
xorb %sil, %r10b
movl %edi, %r11d
xorb %dl, %r11b
orb %r10b, %r11b
jne 0x3849
jmp 0x3894
movb 0x35(%rdi), %dil
cmpb %dl, %r9b
jne 0x3858
cmpb %cl, %r8b
jne 0x3858
cmpb %sil, %dil
je 0x3894
cmpb %sil, %r9b
jne 0x3885
movl %r8d, %r10d
xorb %cl, %r10b
movl %r8d, %r11d
xorb %dl, %r11b
movl %edi, %ebp
xorb %cl, %bpl
movl %edi, %r12d
xorb %dl, %r12b
orb %r10b, %r12b
sete %r10b
orb %r11b, %bpl
je 0x3894
testb %r10b, %r10b
jne 0x3894
cmpb %dl, %r9b
jne 0x38a3
cmpb %sil, %r8b
jne 0x38a3
cmpb %cl, %dil
jne 0x38a3
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0xc71e(%rip), %rdi      # 0xffc8
leaq 0x7e5c(%rip), %rsi      # 0xb70d
callq 0x21b0
movsbl (%r15), %esi
movq %rax, %rdi
callq 0x2200
leaq 0x7e5a(%rip), %r15      # 0xb723
movq %rax, %rdi
movq %r15, %rsi
callq 0x21b0
movsbl (%r14), %esi
movq %rax, %rdi
callq 0x2200
movq %rax, %rdi
movq %r15, %rsi
callq 0x21b0
movsbl (%rbx), %esi
movq %rax, %rdi
callq 0x2200
leaq 0x7e28(%rip), %rsi      # 0xb725
movq %rax, %rdi
callq 0x21b0
nop