// File: /workspace/github_cpp_makefile_star2_O2/chuckwolber[P]Cube/test/test_cube.cpp
// Function: getExpected(CubieColor, unsigned int)
std::vector<CubieColor> getExpected(CubieColor referenceColor,
                                    unsigned int cubeSize) {
   if (cubeSize < 2)
      cubeSize = 2;

   std::vector<CubieColor> colorList;
   std::vector<CubieColor> tmp;
   for (unsigned int i = 0; i < cubeSize*4*cubeSize*3; i++)
      tmp.push_back(CubieColor::NOCOLOR);

   switch (referenceColor) {
      case CubieColor::BLUE:
         colorList.push_back(CubieColor::WHITE);
         colorList.push_back(CubieColor::RED);
         colorList.push_back(CubieColor::BLUE);
         colorList.push_back(CubieColor::ORANGE);
         colorList.push_back(CubieColor::GREEN);
         colorList.push_back(CubieColor::YELLOW);
         break;
      case CubieColor::GREEN:
         colorList.push_back(CubieColor::WHITE);
         colorList.push_back(CubieColor::ORANGE);
         colorList.push_back(CubieColor::GREEN);
         colorList.push_back(CubieColor::RED);
         colorList.push_back(CubieColor::BLUE);
         colorList.push_back(CubieColor::YELLOW);
         break;
      case CubieColor::ORANGE:
         colorList.push_back(CubieColor::WHITE);
         colorList.push_back(CubieColor::BLUE);
         colorList.push_back(CubieColor::ORANGE);
         colorList.push_back(CubieColor::GREEN);
         colorList.push_back(CubieColor::RED);
         colorList.push_back(CubieColor::YELLOW);
         break;
      case CubieColor::RED:
         colorList.push_back(CubieColor::WHITE);
         colorList.push_back(CubieColor::GREEN);
         colorList.push_back(CubieColor::RED);
         colorList.push_back(CubieColor::BLUE);
         colorList.push_back(CubieColor::ORANGE);
         colorList.push_back(CubieColor::YELLOW);
         break;
      case CubieColor::WHITE:
         colorList.push_back(CubieColor::GREEN);
         colorList.push_back(CubieColor::RED);
         colorList.push_back(CubieColor::WHITE);
         colorList.push_back(CubieColor::ORANGE);
         colorList.push_back(CubieColor::YELLOW);
         colorList.push_back(CubieColor::BLUE);
         break;
      case CubieColor::YELLOW:
         colorList.push_back(CubieColor::GREEN);
         colorList.push_back(CubieColor::ORANGE);
         colorList.push_back(CubieColor::YELLOW);
         colorList.push_back(CubieColor::RED);
         colorList.push_back(CubieColor::WHITE);
         colorList.push_back(CubieColor::BLUE);
         break;
      default:
         break;
   }
   setColors(tmp, colorList, cubeSize);

   return tmp;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x40, %rsp
movl %esi, %r14d
movq %rdi, %rbx
cmpl $0x3, %edx
pushq $0x2
popq %rbp
cmovael %edx, %ebp
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
andq $0x0, 0x20(%rsp)
movups %xmm0, (%rdi)
andq $0x0, 0x10(%rdi)
movl %ebp, %eax
imull %ebp, %eax
imull $0xc, %eax, %r12d
leaq 0xf(%rsp), %r15
subl $0x1, %r12d
jb 0x70d1
movb $0x20, 0xf(%rsp)
movq %rbx, %rdi
movq %r15, %rsi
callq 0x8648
jmp 0x70b9
movsbl %r14b, %eax
cmpl $0x62, %eax
je 0x733d
cmpl $0x67, %eax
je 0x72cf
cmpl $0x6f, %eax
je 0x717c
cmpl $0x72, %eax
je 0x725e
cmpl $0x77, %eax
je 0x71ed
cmpl $0x79, %eax
jne 0x73a9
leaq 0xf(%rsp), %rsi
movb $0x67, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x8648
leaq 0xf(%rsp), %rsi
movb $0x6f, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x8648
leaq 0xf(%rsp), %rsi
movb $0x79, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x8648
leaq 0xf(%rsp), %rsi
movb $0x72, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x8648
leaq 0xf(%rsp), %rsi
movb $0x77, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x8648
leaq 0xf(%rsp), %rsi
movb $0x62, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x8648
jmp 0x73a9
leaq 0xf(%rsp), %rsi
movb $0x77, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x8648
leaq 0xf(%rsp), %rsi
movb $0x62, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x8648
leaq 0xf(%rsp), %rsi
movb $0x6f, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x8648
leaq 0xf(%rsp), %rsi
movb $0x67, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x8648
leaq 0xf(%rsp), %rsi
movb $0x72, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x8648
leaq 0xf(%rsp), %rsi
movb $0x79, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x8648
jmp 0x73a9
leaq 0xf(%rsp), %rsi
movb $0x67, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x8648
leaq 0xf(%rsp), %rsi
movb $0x72, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x8648
leaq 0xf(%rsp), %rsi
movb $0x77, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x8648
leaq 0xf(%rsp), %rsi
movb $0x6f, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x8648
leaq 0xf(%rsp), %rsi
movb $0x79, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x8648
leaq 0xf(%rsp), %rsi
movb $0x62, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x8648
jmp 0x73a9
leaq 0xf(%rsp), %rsi
movb $0x77, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x8648
leaq 0xf(%rsp), %rsi
movb $0x67, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x8648
leaq 0xf(%rsp), %rsi
movb $0x72, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x8648
leaq 0xf(%rsp), %rsi
movb $0x62, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x8648
leaq 0xf(%rsp), %rsi
movb $0x6f, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x8648
leaq 0xf(%rsp), %rsi
movb $0x79, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x8648
jmp 0x73a9
leaq 0xf(%rsp), %rsi
movb $0x77, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x8648
leaq 0xf(%rsp), %rsi
movb $0x6f, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x8648
leaq 0xf(%rsp), %rsi
movb $0x67, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x8648
leaq 0xf(%rsp), %rsi
movb $0x72, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x8648
leaq 0xf(%rsp), %rsi
movb $0x62, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x8648
leaq 0xf(%rsp), %rsi
movb $0x79, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x8648
jmp 0x73a9
leaq 0xf(%rsp), %rsi
movb $0x77, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x8648
leaq 0xf(%rsp), %rsi
movb $0x72, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x8648
leaq 0xf(%rsp), %rsi
movb $0x62, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x8648
leaq 0xf(%rsp), %rsi
movb $0x6f, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x8648
leaq 0xf(%rsp), %rsi
movb $0x67, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x8648
leaq 0xf(%rsp), %rsi
movb $0x79, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x8648
leaq 0x28(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x85fe
leaq 0x28(%rsp), %rsi
movq %rbx, %rdi
movl %ebp, %edx
callq 0x844c
leaq 0x28(%rsp), %rdi
callq 0x48ec
leaq 0x10(%rsp), %rdi
callq 0x48ec
movq %rbx, %rax
addq $0x40, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
jmp 0x7444
jmp 0x7444
jmp 0x7444
jmp 0x7444
jmp 0x7444
jmp 0x7444
jmp 0x7444
jmp 0x7444
jmp 0x7444
jmp 0x7444
jmp 0x7444
jmp 0x7444
jmp 0x7444
jmp 0x7444
jmp 0x7444
jmp 0x7444
jmp 0x7444
jmp 0x7444
jmp 0x7444
jmp 0x7444
jmp 0x7444
jmp 0x7444
jmp 0x7444
jmp 0x7444
jmp 0x7444
jmp 0x7444
jmp 0x7444
jmp 0x7444
jmp 0x7444
jmp 0x7444
jmp 0x7444
jmp 0x7444
jmp 0x7444
jmp 0x7444
jmp 0x7444
jmp 0x7444
movq %rax, %r14
leaq 0x28(%rsp), %rdi
callq 0x48ec
jmp 0x7447
jmp 0x7444
movq %rax, %r14
movq %rbx, %rdi
callq 0x48ec
leaq 0x10(%rsp), %rdi
callq 0x48ec
movq %r14, %rdi
callq 0x21a0