// File: /workspace/github_cpp_makefile_star2_O3/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
movb 0x1e(%rdi), %bl
movb 0x1f(%rdi), %r11b
movb (%rsi), %r8b
movb (%rdx), %r9b
cmpb %r8b, %bl
jne 0x383a
xorl %eax, %eax
movb (%rcx), %r10b
cmpb %r9b, %r11b
jne 0x3827
cmpb %r10b, 0x20(%rdi)
je 0x3cec
cmpb %r10b, %r11b
jne 0x383d
movl %r11d, %r10d
cmpb %r9b, 0x20(%rdi)
jne 0x383d
jmp 0x3cec
movb (%rcx), %r10b
xorl %eax, %eax
cmpb %r9b, %bl
jne 0x3853
cmpb %r8b, %r11b
jne 0x3853
cmpb %r10b, 0x20(%rdi)
je 0x3cec
cmpb %r10b, %bl
jne 0x388e
movl %r11d, %r14d
xorb %r8b, %r14b
movl %r11d, %r15d
xorb %r9b, %r15b
movb 0x20(%rdi), %bpl
movl %ebp, %r12d
xorb %r8b, %r12b
movl %ebp, %r13d
xorb %r9b, %r13b
orb %r14b, %r13b
sete %r14b
orb %r15b, %r12b
je 0x3cec
testb %r14b, %r14b
je 0x3892
jmp 0x3cec
movb 0x20(%rdi), %bpl
cmpb %r9b, %bl
jne 0x38a5
cmpb %r10b, %r11b
jne 0x38a5
cmpb %r8b, %bpl
je 0x3cec
movb 0x21(%rdi), %bl
movb 0x22(%rdi), %r11b
cmpb %r8b, %bl
jne 0x38de
movb 0x23(%rdi), %bpl
movl $0x1, %eax
cmpb %r9b, %r11b
jne 0x38c8
cmpb %r10b, %bpl
je 0x3cec
movl %r11d, %r14d
xorb %r10b, %r14b
movl %ebp, %r15d
xorb %r9b, %r15b
orb %r14b, %r15b
jne 0x38e2
jmp 0x3cec
movb 0x23(%rdi), %bpl
movl $0x1, %eax
cmpb %r9b, %bl
jne 0x38fa
cmpb %r8b, %r11b
jne 0x38fa
cmpb %r10b, %bpl
je 0x3cec
cmpb %r10b, %bl
jne 0x3930
movl %r11d, %r14d
xorb %r8b, %r14b
movl %r11d, %r15d
xorb %r9b, %r15b
movl %ebp, %r12d
xorb %r8b, %r12b
movl %ebp, %r13d
xorb %r9b, %r13b
orb %r14b, %r13b
sete %r14b
orb %r15b, %r12b
je 0x3cec
testb %r14b, %r14b
jne 0x3cec
xorb %r9b, %bl
xorb %r10b, %r11b
orb %bl, %r11b
xorb %r8b, %bpl
orb %r11b, %bpl
je 0x3cec
movb 0x24(%rdi), %bl
movb 0x25(%rdi), %r11b
cmpb %r8b, %bl
jne 0x397e
movb 0x26(%rdi), %bpl
movl $0x2, %eax
cmpb %r9b, %r11b
jne 0x3968
cmpb %r10b, %bpl
je 0x3cec
movl %r11d, %r14d
xorb %r10b, %r14b
movl %ebp, %r15d
xorb %r9b, %r15b
orb %r14b, %r15b
jne 0x3982
jmp 0x3cec
movb 0x26(%rdi), %bpl
movl $0x2, %eax
cmpb %r9b, %bl
jne 0x399a
cmpb %r8b, %r11b
jne 0x399a
cmpb %r10b, %bpl
je 0x3cec
cmpb %r10b, %bl
jne 0x39d0
movl %r11d, %r14d
xorb %r8b, %r14b
movl %r11d, %r15d
xorb %r9b, %r15b
movl %ebp, %r12d
xorb %r8b, %r12b
movl %ebp, %r13d
xorb %r9b, %r13b
orb %r14b, %r13b
sete %r14b
orb %r15b, %r12b
je 0x3cec
testb %r14b, %r14b
jne 0x3cec
xorb %r9b, %bl
xorb %r10b, %r11b
orb %bl, %r11b
xorb %r8b, %bpl
orb %r11b, %bpl
je 0x3cec
movb 0x27(%rdi), %bl
movb 0x28(%rdi), %r11b
cmpb %r8b, %bl
jne 0x3a1e
movb 0x29(%rdi), %bpl
movl $0x3, %eax
cmpb %r9b, %r11b
jne 0x3a08
cmpb %r10b, %bpl
je 0x3cec
movl %r11d, %r14d
xorb %r10b, %r14b
movl %ebp, %r15d
xorb %r9b, %r15b
orb %r14b, %r15b
jne 0x3a22
jmp 0x3cec
movb 0x29(%rdi), %bpl
movl $0x3, %eax
cmpb %r9b, %bl
jne 0x3a3a
cmpb %r8b, %r11b
jne 0x3a3a
cmpb %r10b, %bpl
je 0x3cec
cmpb %r10b, %bl
jne 0x3a70
movl %r11d, %r14d
xorb %r8b, %r14b
movl %r11d, %r15d
xorb %r9b, %r15b
movl %ebp, %r12d
xorb %r8b, %r12b
movl %ebp, %r13d
xorb %r9b, %r13b
orb %r14b, %r13b
sete %r14b
orb %r15b, %r12b
je 0x3cec
testb %r14b, %r14b
jne 0x3cec
xorb %r9b, %bl
xorb %r10b, %r11b
orb %bl, %r11b
xorb %r8b, %bpl
orb %r11b, %bpl
je 0x3cec
movb 0x2a(%rdi), %bl
movb 0x2b(%rdi), %r11b
cmpb %r8b, %bl
jne 0x3abe
movb 0x2c(%rdi), %bpl
movl $0x4, %eax
cmpb %r9b, %r11b
jne 0x3aa8
cmpb %r10b, %bpl
je 0x3cec
movl %r11d, %r14d
xorb %r10b, %r14b
movl %ebp, %r15d
xorb %r9b, %r15b
orb %r14b, %r15b
jne 0x3ac2
jmp 0x3cec
movb 0x2c(%rdi), %bpl
movl $0x4, %eax
cmpb %r9b, %bl
jne 0x3ada
cmpb %r8b, %r11b
jne 0x3ada
cmpb %r10b, %bpl
je 0x3cec
cmpb %r10b, %bl
jne 0x3b10
movl %r11d, %r14d
xorb %r8b, %r14b
movl %r11d, %r15d
xorb %r9b, %r15b
movl %ebp, %r12d
xorb %r8b, %r12b
movl %ebp, %r13d
xorb %r9b, %r13b
orb %r14b, %r13b
sete %r14b
orb %r15b, %r12b
je 0x3cec
testb %r14b, %r14b
jne 0x3cec
xorb %r9b, %bl
xorb %r10b, %r11b
orb %bl, %r11b
xorb %r8b, %bpl
orb %r11b, %bpl
je 0x3cec
movb 0x2d(%rdi), %bl
movb 0x2e(%rdi), %r11b
cmpb %r8b, %bl
jne 0x3b5e
movb 0x2f(%rdi), %bpl
movl $0x5, %eax
cmpb %r9b, %r11b
jne 0x3b48
cmpb %r10b, %bpl
je 0x3cec
movl %r11d, %r14d
xorb %r10b, %r14b
movl %ebp, %r15d
xorb %r9b, %r15b
orb %r14b, %r15b
jne 0x3b62
jmp 0x3cec
movb 0x2f(%rdi), %bpl
movl $0x5, %eax
cmpb %r9b, %bl
jne 0x3b7a
cmpb %r8b, %r11b
jne 0x3b7a
cmpb %r10b, %bpl
je 0x3cec
cmpb %r10b, %bl
jne 0x3bb0
movl %r11d, %r14d
xorb %r8b, %r14b
movl %r11d, %r15d
xorb %r9b, %r15b
movl %ebp, %r12d
xorb %r8b, %r12b
movl %ebp, %r13d
xorb %r9b, %r13b
orb %r14b, %r13b
sete %r14b
orb %r15b, %r12b
je 0x3cec
testb %r14b, %r14b
jne 0x3cec
xorb %r9b, %bl
xorb %r10b, %r11b
orb %bl, %r11b
xorb %r8b, %bpl
orb %r11b, %bpl
je 0x3cec
movb 0x30(%rdi), %bl
movb 0x31(%rdi), %r11b
cmpb %r8b, %bl
jne 0x3bfe
movb 0x32(%rdi), %bpl
movl $0x6, %eax
cmpb %r9b, %r11b
jne 0x3be8
cmpb %r10b, %bpl
je 0x3cec
movl %r11d, %r14d
xorb %r10b, %r14b
movl %ebp, %r15d
xorb %r9b, %r15b
orb %r14b, %r15b
jne 0x3c02
jmp 0x3cec
movb 0x32(%rdi), %bpl
movl $0x6, %eax
cmpb %r9b, %bl
jne 0x3c1a
cmpb %r8b, %r11b
jne 0x3c1a
cmpb %r10b, %bpl
je 0x3cec
cmpb %r10b, %bl
jne 0x3c50
movl %r11d, %r14d
xorb %r8b, %r14b
movl %r11d, %r15d
xorb %r9b, %r15b
movl %ebp, %r12d
xorb %r8b, %r12b
movl %ebp, %r13d
xorb %r9b, %r13b
orb %r14b, %r13b
sete %r14b
orb %r15b, %r12b
je 0x3cec
testb %r14b, %r14b
jne 0x3cec
xorb %r9b, %bl
xorb %r10b, %r11b
orb %bl, %r11b
xorb %r8b, %bpl
orb %r11b, %bpl
je 0x3cec
movb 0x33(%rdi), %bl
movb 0x34(%rdi), %r11b
cmpb %r8b, %bl
jne 0x3c97
movb 0x35(%rdi), %dil
movl $0x7, %eax
cmpb %r9b, %r11b
jne 0x3c84
cmpb %r10b, %dil
je 0x3cec
movl %r11d, %ebp
xorb %r10b, %bpl
movl %edi, %r14d
xorb %r9b, %r14b
orb %bpl, %r14b
jne 0x3c9b
jmp 0x3cec
movb 0x35(%rdi), %dil
movl $0x7, %eax
cmpb %r9b, %bl
jne 0x3caf
cmpb %r8b, %r11b
jne 0x3caf
cmpb %r10b, %dil
je 0x3cec
cmpb %r10b, %bl
jne 0x3cdd
movl %r11d, %ebp
xorb %r8b, %bpl
movl %r11d, %r14d
xorb %r9b, %r14b
movl %edi, %r15d
xorb %r8b, %r15b
movl %edi, %r12d
xorb %r9b, %r12b
orb %bpl, %r12b
sete %bpl
orb %r14b, %r15b
je 0x3cec
testb %bpl, %bpl
jne 0x3cec
cmpb %r9b, %bl
jne 0x3cfb
cmpb %r10b, %r11b
jne 0x3cfb
cmpb %r8b, %dil
jne 0x3cfb
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rsi, %rdi
movq %rdx, %rsi
movq %rcx, %rdx
callq 0x22c0
nop