// File: /workspace/github_cpp_makefile_star2_O3/Rubenmp[P]Rubik/src/defineRubik.cpp
// Function: Rubik::permutationFinalCorners(std::vector<char, std::allocator<char>>&)
void Rubik::permutationFinalCorners(vector<char>& solution){
	bool repeat = true;
   while (repeat){
      if (searchCorner('y', 'o', 'g') == 4){
      	if (searchCorner('y', 'r', 'l') == 5) // rDLdRDld
            sequence("rDLdRDld", solution);
      	else if(searchCorner('y', 'r', 'l') == 7) // BdfDbdFD
            sequence("BdfDbdFD", solution);

      	repeat = false;
      }
      else if (searchCorner('y', 'g', 'r') == 5){
      	if (searchCorner('y', 'r', 'l') == 4) // bDFdBDfd
            sequence("bDFdBDfd", solution);
      	else if (searchCorner('y', 'r', 'l') == 7) // LdrDldRD
            sequence("LdrDldRD", solution);

      	repeat = false;
      }
      else if (searchCorner('y', 'l', 'o') == 7){
      	if (searchCorner('y', 'r', 'l') == 4) // RdlDrdLD
            sequence("RdlDrdLD", solution);
      	else if (searchCorner('y', 'r', 'l') == 5) // fDBdFDbd
            sequence("fDBdFDbd", solution);

      	repeat = false;
      }
      else if (searchCorner('y', 'r', 'l') == 6){
      	if (searchCorner('y', 'o', 'g') == 5) // FdbDfdBD
            sequence("FdbDfdBD", solution);
      	else if (searchCorner('y', 'o', 'g') == 7) // lDRdLDrd
            sequence("lDRdLDrd", solution);

      	repeat = false;
      }
      else // LdrDldRD
         sequence("LdrDldRD", solution);
   }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rsi, 0x30(%rsp)
movq %rdi, %r14
leaq 0x20(%rsp), %rax
movb $0x79, -0x10(%rax)
leaq 0xf(%rsp), %rdx
movb $0x6f, (%rdx)
leaq 0xe(%rsp), %rcx
movb $0x67, (%rcx)
leaq 0x10(%rsp), %rsi
callq 0x37f6
cmpl $0x4, %eax
jne 0x87ec
leaq 0x10(%rsp), %rsi
movb $0x79, (%rsi)
leaq 0xf(%rsp), %rdx
movb $0x72, (%rdx)
leaq 0xe(%rsp), %rcx
movb $0x6c, (%rcx)
movq %r14, %rdi
callq 0x37f6
cmpl $0x5, %eax
jne 0x88f6
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
movq %rax, (%rdi)
leaq 0x5337(%rip), %rsi      # 0xdb00
leaq 0x5338(%rip), %rdx      # 0xdb08
callq 0x3310
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
movq 0x30(%rsp), %rdx
callq 0x3d0a
jmp 0x8b8a
leaq 0x10(%rsp), %r15
leaq 0xf(%rsp), %r12
leaq 0xe(%rsp), %r13
leaq 0x5319(%rip), %rbp      # 0xdb1b
leaq 0x531a(%rip), %rbx      # 0xdb23
movb $0x79, 0x10(%rsp)
movb $0x67, 0xf(%rsp)
movb $0x72, 0xe(%rsp)
movq %r14, %rdi
movq %r15, %rsi
movq %r12, %rdx
movq %r13, %rcx
callq 0x37f6
cmpl $0x5, %eax
je 0x8956
movb $0x79, 0x10(%rsp)
movb $0x6c, 0xf(%rsp)
movb $0x6f, 0xe(%rsp)
movq %r14, %rdi
movq %r15, %rsi
movq %r12, %rdx
movq %r13, %rcx
callq 0x37f6
cmpl $0x7, %eax
je 0x89b6
movb $0x79, 0x10(%rsp)
movb $0x72, 0xf(%rsp)
movb $0x6c, 0xe(%rsp)
movq %r14, %rdi
movq %r15, %rsi
movq %r12, %rdx
movq %r13, %rcx
callq 0x37f6
cmpl $0x6, %eax
je 0x8a16
leaq 0x20(%rsp), %rax
movq %rax, 0x10(%rsp)
movq %r15, %rdi
movq %rbp, %rsi
movq %rbx, %rdx
callq 0x3310
movq %r14, %rdi
movq %r15, %rsi
movq 0x30(%rsp), %rdx
callq 0x3d0a
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x88c8
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x21a0
movb $0x79, 0x10(%rsp)
movb $0x6f, 0xf(%rsp)
movb $0x67, 0xe(%rsp)
movq %r14, %rdi
movq %r15, %rsi
movq %r12, %rdx
movq %r13, %rcx
callq 0x37f6
cmpl $0x4, %eax
jne 0x8809
jmp 0x878c
leaq 0x10(%rsp), %rsi
movb $0x79, (%rsi)
leaq 0xf(%rsp), %rdx
movb $0x72, (%rdx)
leaq 0xe(%rsp), %rcx
movb $0x6c, (%rcx)
movq %r14, %rdi
callq 0x37f6
cmpl $0x7, %eax
jne 0x8ba6
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
movq %rax, (%rdi)
leaq 0x51d6(%rip), %rsi      # 0xdb09
leaq 0x51d7(%rip), %rdx      # 0xdb11
callq 0x3310
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
movq 0x30(%rsp), %rdx
callq 0x3d0a
jmp 0x8b8a
leaq 0x10(%rsp), %rsi
movb $0x79, (%rsi)
leaq 0xf(%rsp), %rdx
movb $0x72, (%rdx)
leaq 0xe(%rsp), %rcx
movb $0x6c, (%rcx)
movq %r14, %rdi
callq 0x37f6
cmpl $0x4, %eax
jne 0x8a76
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
movq %rax, (%rdi)
leaq 0x517f(%rip), %rsi      # 0xdb12
leaq 0x5180(%rip), %rdx      # 0xdb1a
callq 0x3310
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
movq 0x30(%rsp), %rdx
callq 0x3d0a
jmp 0x8b8a
leaq 0x10(%rsp), %rsi
movb $0x79, (%rsi)
leaq 0xf(%rsp), %rdx
movb $0x72, (%rdx)
leaq 0xe(%rsp), %rcx
movb $0x6c, (%rcx)
movq %r14, %rdi
callq 0x37f6
cmpl $0x4, %eax
jne 0x8ad6
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
movq %rax, (%rdi)
leaq 0x5131(%rip), %rsi      # 0xdb24
leaq 0x5132(%rip), %rdx      # 0xdb2c
callq 0x3310
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
movq 0x30(%rsp), %rdx
callq 0x3d0a
jmp 0x8b8a
leaq 0x10(%rsp), %rsi
movb $0x79, (%rsi)
leaq 0xf(%rsp), %rdx
movb $0x6f, (%rdx)
leaq 0xe(%rsp), %rcx
movb $0x67, (%rcx)
movq %r14, %rdi
callq 0x37f6
cmpl $0x5, %eax
jne 0x8b33
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
movq %rax, (%rdi)
leaq 0x50e3(%rip), %rsi      # 0xdb36
leaq 0x50e4(%rip), %rdx      # 0xdb3e
callq 0x3310
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
movq 0x30(%rsp), %rdx
callq 0x3d0a
jmp 0x8b8a
leaq 0x10(%rsp), %rsi
movb $0x79, (%rsi)
leaq 0xf(%rsp), %rdx
movb $0x72, (%rdx)
leaq 0xe(%rsp), %rcx
movb $0x6c, (%rcx)
movq %r14, %rdi
callq 0x37f6
cmpl $0x7, %eax
jne 0x8ba6
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
movq %rax, (%rdi)
leaq 0x5068(%rip), %rsi      # 0xdb1b
leaq 0x5069(%rip), %rdx      # 0xdb23
callq 0x3310
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
movq 0x30(%rsp), %rdx
callq 0x3d0a
jmp 0x8b8a
leaq 0x10(%rsp), %rsi
movb $0x79, (%rsi)
leaq 0xf(%rsp), %rdx
movb $0x72, (%rdx)
leaq 0xe(%rsp), %rcx
movb $0x6c, (%rcx)
movq %r14, %rdi
callq 0x37f6
cmpl $0x5, %eax
jne 0x8ba6
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
movq %rax, (%rdi)
leaq 0x501a(%rip), %rsi      # 0xdb2d
leaq 0x501b(%rip), %rdx      # 0xdb35
callq 0x3310
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
movq 0x30(%rsp), %rdx
callq 0x3d0a
jmp 0x8b8a
leaq 0x10(%rsp), %rsi
movb $0x79, (%rsi)
leaq 0xf(%rsp), %rdx
movb $0x6f, (%rdx)
leaq 0xe(%rsp), %rcx
movb $0x67, (%rcx)
movq %r14, %rdi
callq 0x37f6
cmpl $0x7, %eax
jne 0x8ba6
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
movq %rax, (%rdi)
leaq 0x4fd3(%rip), %rsi      # 0xdb3f
leaq 0x4fd4(%rip), %rdx      # 0xdb47
callq 0x3310
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
movq 0x30(%rsp), %rdx
callq 0x3d0a
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x8ba6
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x21a0
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x8bda
jmp 0x8bd5
jmp 0x8bda
jmp 0x8bd5
jmp 0x8bda
jmp 0x8bd5
jmp 0x8bda
jmp 0x8bd5
jmp 0x8bda
jmp 0x8bd5
jmp 0x8bda
jmp 0x8bd5
jmp 0x8bda
jmp 0x8bd5
jmp 0x8bda
jmp 0x8bd5
movq %rax, %rbx
jmp 0x8bf9
movq %rax, %rbx
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x8bf9
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x21a0
movq %rbx, %rdi
callq 0x2280
nop