// File: /workspace/github_cpp_makefile_star2_O2/Rubenmp[P]Rubik/src/defineRubik.cpp
// Function: Rubik::positionFinalCorners(std::vector<char, std::allocator<char>>&)
void Rubik::positionFinalCorners(vector<char>& solution){
	// Orientate final corners

   if ((corner[4].up == 'y') && (corner[5].right == 'y') &&
      (corner[7].up == 'y') && (corner[6].left == 'y')) // RD2rdRdrlD2LDlDL
      sequence("RDDrdRdrlDDLDlDL", solution);
   else if ((corner[4].left == 'y') && (corner[5].up == 'y') &&
           (corner[7].right == 'y') && (corner[6].up == 'y')) // LD2ldLdlrD2RDrDR
      sequence("LDDldLdlrDDRDrDR", solution);
   else if ((corner[4].left == 'y') && (corner[5].right == 'y') &&
           (corner[7].right == 'y') && (corner[6].left == 'y')) // RD2rdRdrlD2LDlDL LD2ldLdlrD2RDrDR
      sequence("RDDrdRdrlDDLDlDLLDDldLdlrDDRDrDR", solution);
   else if ((corner[4].right == 'y') && (corner[5].left == 'y') &&
           (corner[7].up == 'y') && (corner[6].up == 'y')) // FD2fdFdfbD2BDbDB
      sequence("FDDfdFdfbDDBDbDB", solution);
   else if ((corner[4].up == 'y') && (corner[5].up == 'y') &&
           (corner[7].left == 'y') && (corner[6].right == 'y')) // BD2bdBdbfD2FDfDF
      sequence("BDDbdBdbfDDFDfDF", solution);
   else if ((corner[4].right == 'y') && (corner[5].left == 'y') && //
           (corner[7].left == 'y') && (corner[6].right == 'y')) // FD2fdFdfbD2BDbDB BD2bdBdbfD2FDfDF
      sequence("FDDfdFdfbDDBDbDBBDDbdBdbfDDFDfDF", solution);
   else if ((corner[4].up == 'y') && (corner[5].left == 'y') &&
           (corner[7].up == 'y') && (corner[6].right == 'y')) // ldLdlD2LRDrDRD2r
      sequence("ldLdlDDLRDrDRDDr", solution);
   else if ((corner[4].right == 'y') && (corner[5].up == 'y') &&
           (corner[7].left == 'y') && (corner[6].up == 'y')) // rdRdrD2RLDlDLD2l
      sequence("rdRdrDDRLDlDLDDl", solution);
   else if ((corner[4].up == 'y') && (corner[5].up == 'y') &&
           (corner[7].right == 'y') && (corner[6].left == 'y')) // fdFdfD2FBDbDBD2b
      sequence("fdFdfDDFBDbDBDDb", solution);
   else if ((corner[4].left == 'y') && (corner[5].right == 'y') &&
           (corner[7].up == 'y') && (corner[6].up == 'y')) // bdBdbD2BFDfDFD2f
      sequence("bdBdbDDBFDfDFDDf", solution);
   else if ((corner[4].left == 'y') && (corner[5].right == 'y') &&
           (corner[7].right == 'y') && (corner[6].left == 'y')) // fdFdfD2FBDbDBD2b bdBdbD2BFDfDFD2f
      sequence("fdFdfDDFBDbDBDDbbdBdbDDBFDfDFDDf", solution);
   else if ((corner[4].right == 'y') && (corner[5].left == 'y') &&
           (corner[7].right == 'y') && (corner[6].left == 'y')) // FD2fdFdfbD2BDbDB fdFdfD2FBDbDBD2b
      sequence("FDDfdFdfbDDBDbDBfdFdfDDFBDbDBDDb", solution);
   else if ((corner[4].left == 'y') && (corner[5].right == 'y') &&
           (corner[7].left == 'y') && (corner[6].right == 'y')) // bdBdbD2BFDfDFD2f BD2bdBdbfD2FDfDF
      sequence("bdBdbDDBFDfDFDDfBDDbdBdbfDDFDfDF", solution);
   else if ((corner[4].right == 'y') && (corner[5].right == 'y') &&
           (corner[7].left == 'y') && (corner[6].left == 'y')) // rdRdrD2RLDlDLD2l RD2rdRdrlD2LDlDL
      sequence("rdRdrDDRLDlDLDDlRDDrdRdrlDDLDlDL", solution);
   else if ((corner[4].left == 'y') && (corner[5].left == 'y') &&
           (corner[7].right == 'y') && (corner[6].right == 'y')) // LD2ldLdlrD2RDrDR ldLdlD2LRDrDRD2r
      sequence("LDDldLdlrDDRDrDRldLdlDDLRDrDRDDr", solution);

   //
   int yellows = 0;
   for (int i=0;i<4;i++){
      if (corner[4+i].up == 'y')
	      ++yellows;
   }
   if (yellows == 1){
      if (corner[4].up == 'y'){
         if (corner[5].right == 'y') // RUruRUrudRUruRUrudRUruRUruD2
            sequence("RUruRUrudRUruRUrudRUruRUruDD", solution);
   	   else if (corner[5].left == 'y') // fuFUfuFUdfuFUfuFUdfuFUfuFUD2
            sequence("fuFUfuFUdfuFUfuFUd fuFUfuFUDD", solution);
      }
      else if (corner[5].up == 'y'){
         if (corner[4].right == 'y') // FUfuFUfuDFUfuFUfuDFUfuFUfuD2
            sequence("FUfuFUfuDFUfuFUfuDFUfuFUfuDD", solution);
	      else if (corner[4].left == 'y') // luLUluLUDluLUluLUDluLUluLUD2
            sequence("luLUluLUDluLUluLUDluLUluLUDD", solution);
      }
      else if (corner[6].up == 'y'){
         if (corner[5].right == 'y') // RUruRUruDRUruRUruDRUruRUruD2
            sequence("RUruRUruDRUruRUruDRUruRUruDD", solution);
	      else if (corner[5].left == 'y') // fuFUfuFUDfuFUfuF UDfuFUfuFUD2
            sequence("fuFUfuFUDfuFUfuFUDfuFUfuFUDD", solution);
      }
      else if (corner[7].up == 'y'){
         if (corner[5].right == 'y') // RUruRUruDRUruRUruD2RUruRUruD
            sequence("RUruRUruDRUruRUruDDRUruRUruD", solution);
	      else if (corner[5].left == 'y') // fuFUfuFUDfuFUfuFUD2fuFUfuFUD
            sequence("fuFUfuFUDfuFUfuFUDDfuFUfuFUD", solution);
      }
   }
   else if (yellows == 2){
      if ((corner[4].up != 'y') && (corner[6].up != 'y')){
	      if (corner[4].left == 'y') // luLUluLUD2luLUluLUluLUluLUD2
            sequence("luLUluLUDDluLUluLUluLUluLUDD", solution);
	      else if (corner[4].right == 'y') // luLUluLUluLUluLUD2 luLUluLUD2
            sequence("luLUluLUluLUluLUDDluLUluLUDD", solution);
      }
	   else if ((corner[5].up != 'y') && (corner[7].up != 'y')){
	      if (corner[5].left == 'y') // fuFUfuFUD2fuFUfuFUfuFUfuFUD2
            sequence("fuFUfuFUDDfuFUfuFUfuFUfuFUDD", solution);
	      else if (corner[5].right == 'y') // fuFUfuFUfuFUf uFUD2fuFUfuFUD2
            sequence("fuFUfuFUfuFUfuFUDDfuFUfuFUDD", solution);
      }
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rsi, %rbp
movq %rdi, %r14
movb 0x2a(%rdi), %r15b
movb 0x2f(%rdi), %al
xorb $0x79, %r15b
xorb $0x79, %al
movl %r15d, %ecx
orb %al, %cl
movb 0x33(%rdi), %bl
movl %ebx, %r8d
xorb $0x79, %r8b
orb %r8b, %cl
movb 0x31(%rdi), %dil
movl %edi, %edx
xorb $0x79, %dl
orb %dl, %cl
jne 0x7cff
leaq 0x3f34(%rip), %rsi      # 0xbc0f
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x2f4a
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
movq %rbp, %rdx
callq 0x3906
jmp 0x80cf
movb 0x2b(%r14), %r11b
movb 0x2d(%r14), %r13b
xorb $0x79, %r11b
xorb $0x79, %r13b
movl %r11d, %r10d
orb %r13b, %r10b
movb 0x35(%r14), %cl
movl %ecx, %esi
xorb $0x79, %sil
orb %sil, %r10b
movb 0x30(%r14), %r9b
movl %r9d, %r12d
xorb $0x79, %r12b
orb %r12b, %r10b
jne 0x7d5d
leaq 0x3e1f(%rip), %rsi      # 0xbb58
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x2f4a
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
movq %rbp, %rdx
callq 0x3906
jmp 0x80cf
movq %rbp, 0x30(%rsp)
movb %cl, 0x2e(%rsp)
cmpb $0x79, %cl
sete %r10b
cmpb $0x79, %dil
sete %bpl
movl %r11d, %ecx
orb %al, %cl
sete %cl
andb %r10b, %bpl
andb %cl, %bpl
cmpb $0x1, %bpl
jne 0x7db9
leaq 0x3db8(%rip), %rsi      # 0xbb48
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x2f4a
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
movq 0x30(%rsp), %rbp
movq %rbp, %rdx
callq 0x3906
jmp 0x80cf
movb %cl, 0x2c(%rsp)
cmpb $0x79, %r9b
sete 0x7(%rsp)
cmpb $0x79, %bl
sete %r10b
movb 0x2c(%r14), %bpl
movb 0x2e(%r14), %cl
xorb $0x79, %bpl
xorb $0x79, %cl
movb %bpl, 0x2f(%rsp)
movb %cl, 0x2d(%rsp)
orb %cl, %bpl
sete %cl
andb 0x7(%rsp), %r10b
andb %cl, %r10b
cmpb $0x1, %r10b
jne 0x7e29
leaq 0x3d69(%rip), %rsi      # 0xbb69
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x2f4a
movq 0x30(%rsp), %rbp
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
movq %rbp, %rdx
callq 0x3906
jmp 0x80cf
movb %cl, 0x2a(%rsp)
movl %r15d, %ecx
orb %r13b, %cl
sete %cl
movb 0x32(%r14), %r10b
movb 0x34(%r14), %bpl
cmpb $0x79, %bpl
sete 0x7(%rsp)
movb %r10b, 0x2b(%rsp)
cmpb $0x79, %r10b
sete %r10b
andb 0x7(%rsp), %r10b
movb %cl, 0x7(%rsp)
andb %cl, %r10b
cmpb $0x1, %r10b
jne 0x7e96
leaq 0x3d1d(%rip), %rsi      # 0xbb8a
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x2f4a
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
movq 0x30(%rsp), %rbp
movq %rbp, %rdx
callq 0x3906
jmp 0x80cf
cmpb $0x79, 0x2b(%rsp)
sete %cl
movb %bpl, 0x29(%rsp)
cmpb $0x79, %bpl
sete %r10b
andb %cl, %r10b
andb 0x2a(%rsp), %r10b
cmpb $0x1, %r10b
jne 0x7ee9
leaq 0x3cba(%rip), %rsi      # 0xbb7a
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x2f4a
movq 0x30(%rsp), %rbp
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
movq %rbp, %rdx
callq 0x3906
jmp 0x80cf
movb 0x2b(%rsp), %cl
movl %ecx, %r10d
xorb $0x79, %r10b
orb 0x2d(%rsp), %r15b
orb %r8b, %r15b
orb %r10b, %r15b
movq 0x30(%rsp), %rbp
jne 0x7f31
leaq 0x3d23(%rip), %rsi      # 0xbc30
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x2f4a
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
movq %rbp, %rdx
callq 0x3906
jmp 0x80cf
movb 0x29(%rsp), %r8b
xorb $0x79, %r8b
movb 0x2f(%rsp), %r15b
orb %r15b, %r13b
orb %r8b, %r13b
orb %r12b, %r13b
jne 0x7f75
leaq 0x3c4a(%rip), %rsi      # 0xbb9b
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x2f4a
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
movq %rbp, %rdx
callq 0x3906
jmp 0x80cf
movl %r10d, %r13d
movl %ecx, %r12d
cmpb $0x79, 0x2e(%rsp)
sete %cl
cmpb $0x79, %dil
sete %r10b
andb %cl, %r10b
movb 0x7(%rsp), %cl
andb %r10b, %cl
cmpb $0x1, %cl
jne 0x7fc5
leaq 0x3c2c(%rip), %rsi      # 0xbbcd
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x2f4a
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
movq %rbp, %rdx
callq 0x3906
jmp 0x80cf
cmpb $0x79, %r9b
sete %cl
cmpb $0x79, %bl
sete %r9b
andb %cl, %r9b
andb 0x2c(%rsp), %r9b
cmpb $0x1, %r9b
jne 0x800c
leaq 0x3bc4(%rip), %rsi      # 0xbbac
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x2f4a
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
movq %rbp, %rdx
callq 0x3906
jmp 0x80cf
cmpb $0x79, 0x2e(%rsp)
sete %cl
cmpb $0x79, %dil
sete %dil
andb %cl, %dil
movb 0x2a(%rsp), %cl
andb %dil, %cl
cmpb $0x1, %cl
jne 0x8053
leaq 0x3b8b(%rip), %rsi      # 0xbbbd
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x2f4a
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
movq %rbp, %rdx
callq 0x3906
jmp 0x80cf
cmpb $0x79, %r12b
sete %cl
cmpb $0x79, 0x29(%rsp)
sete %dil
andb %cl, %dil
movb 0x2c(%rsp), %cl
andb %dil, %cl
cmpb $0x1, %cl
jne 0x809a
leaq 0x3b65(%rip), %rsi      # 0xbbde
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x2f4a
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
movq %rbp, %rdx
callq 0x3906
jmp 0x80cf
orb %al, %r15b
orb %r8b, %r15b
orb %dl, %r15b
jne 0x83de
leaq 0x3b4f(%rip), %rsi      # 0xbbff
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x2f4a
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
movq %rbp, %rdx
callq 0x3906
leaq 0x8(%rsp), %rdi
callq 0x20e0
xorl %eax, %eax
pushq $0x2a
popq %rcx
cmpq $0x36, %rcx
je 0x80f6
xorl %edx, %edx
cmpb $0x79, (%r14,%rcx)
sete %dl
addl %edx, %eax
addq $0x3, %rcx
jmp 0x80de
cmpl $0x1, %eax
je 0x8148
cmpl $0x2, %eax
jne 0x83cf
cmpb $0x79, 0x2a(%r14)
je 0x8189
cmpb $0x79, 0x30(%r14)
je 0x8189
cmpb $0x79, 0x2b(%r14)
jne 0x8216
leaq 0x3c06(%rip), %rsi      # 0xbd2a
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x2f4a
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
movq %rbp, %rdx
callq 0x3906
jmp 0x83c5
cmpb $0x79, 0x2a(%r14)
jne 0x81d5
cmpb $0x79, 0x2f(%r14)
jne 0x824c
leaq 0x3adc(%rip), %rsi      # 0xbc41
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x2f4a
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
movq %rbp, %rdx
callq 0x3906
jmp 0x83c5
cmpb $0x79, 0x2d(%r14)
je 0x83cf
cmpb $0x79, 0x33(%r14)
je 0x83cf
cmpb $0x79, 0x2e(%r14)
jne 0x82c3
leaq 0x3bb3(%rip), %rsi      # 0xbd64
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x2f4a
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
movq %rbp, %rdx
callq 0x3906
jmp 0x83c5
cmpb $0x79, 0x2d(%r14)
jne 0x8282
cmpb $0x79, 0x2c(%r14)
jne 0x82f9
leaq 0x3a8a(%rip), %rsi      # 0xbc7c
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x2f4a
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
movq %rbp, %rdx
callq 0x3906
jmp 0x83c5
cmpb $0x79, 0x2c(%r14)
jne 0x83cf
leaq 0x3b1f(%rip), %rsi      # 0xbd47
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x2f4a
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
movq %rbp, %rdx
callq 0x3906
jmp 0x83c5
cmpb $0x79, 0x2e(%r14)
jne 0x83cf
leaq 0x3a00(%rip), %rsi      # 0xbc5e
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x2f4a
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
movq %rbp, %rdx
callq 0x3906
jmp 0x83c5
cmpb $0x79, 0x30(%r14)
jne 0x832f
cmpb $0x79, 0x2f(%r14)
jne 0x8369
leaq 0x3a17(%rip), %rsi      # 0xbcb6
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x2f4a
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
movq %rbp, %rdx
callq 0x3906
jmp 0x83c5
cmpb $0x79, 0x2f(%r14)
jne 0x83cf
leaq 0x3aac(%rip), %rsi      # 0xbd81
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x2f4a
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
movq %rbp, %rdx
callq 0x3906
jmp 0x83c5
cmpb $0x79, 0x2b(%r14)
jne 0x83cf
leaq 0x398e(%rip), %rsi      # 0xbc99
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x2f4a
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
movq %rbp, %rdx
callq 0x3906
jmp 0x83c5
cmpb $0x79, 0x33(%r14)
jne 0x83cf
cmpb $0x79, 0x2f(%r14)
jne 0x8398
leaq 0x39a8(%rip), %rsi      # 0xbcf0
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x2f4a
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
movq %rbp, %rdx
callq 0x3906
jmp 0x83c5
cmpb $0x79, 0x2e(%r14)
jne 0x83cf
leaq 0x395c(%rip), %rsi      # 0xbcd3
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x2f4a
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
movq %rbp, %rdx
callq 0x3906
jmp 0x83c5
cmpb $0x79, 0x2e(%r14)
jne 0x83cf
leaq 0x3967(%rip), %rsi      # 0xbd0d
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x2f4a
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
movq %rbp, %rdx
callq 0x3906
leaq 0x8(%rsp), %rdi
callq 0x20e0
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
orb 0x2d(%rsp), %r11b
orb %sil, %r11b
orb %r13b, %r11b
jne 0x80d9
leaq 0x382a(%rip), %rsi      # 0xbc20
leaq 0x8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x2f4a
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
movq 0x30(%rsp), %rdx
callq 0x3906
leaq 0x8(%rsp), %rdi
callq 0x20e0
movq 0x30(%rsp), %rbp
jmp 0x80d9
jmp 0x848f
jmp 0x849e
jmp 0x848f
jmp 0x849e
jmp 0x848f
jmp 0x849e
jmp 0x848f
jmp 0x849e
jmp 0x848f
jmp 0x849e
jmp 0x848f
jmp 0x849e
jmp 0x848f
jmp 0x849e
jmp 0x848f
jmp 0x849e
jmp 0x848f
jmp 0x849e
jmp 0x848f
jmp 0x848f
jmp 0x849e
jmp 0x849e
jmp 0x848f
jmp 0x849e
jmp 0x848f
jmp 0x848f
jmp 0x848f
jmp 0x849e
jmp 0x849e
jmp 0x849e
jmp 0x848f
jmp 0x849e
jmp 0x848f
jmp 0x848f
jmp 0x848f
jmp 0x848f
jmp 0x849e
jmp 0x849e
jmp 0x849e
jmp 0x849e
jmp 0x848f
jmp 0x849e
jmp 0x848f
jmp 0x848f
jmp 0x849e
jmp 0x849e
jmp 0x848f
jmp 0x849e
jmp 0x848f
jmp 0x849e
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x20e0
jmp 0x84a1
movq %rax, %rbx
movq %rbx, %rdi
callq 0x2290
nop