// File: /workspace/github_cpp_makefile_star2_O2/chuckwolber[P]Cube/test/test_cube.cpp
// Function: setColors(std::vector<CubieColor, std::allocator<CubieColor>>&, std::vector<CubieColor, std::allocator<CubieColor>>, unsigned int)
void setColors(std::vector<CubieColor>& cube,
               std::vector<CubieColor>colorList,
               unsigned int cubeSize) {
   unsigned int i = 0;

   /* Up Face */
   for (unsigned int j = 0; j < cubeSize; j++) {
      for (unsigned int k = 0; k < cubeSize; k++)
         i++;
      for (unsigned int k = 0; k < cubeSize; k++)
         cube.at(i++) = colorList.at(0);
      for (unsigned int k = 0; k < cubeSize; k++)
         i++;
      for (unsigned int k = 0; k < cubeSize; k++)
         i++;
   }

   /* Left, Front, Right, Back Faces */
   for (unsigned int j = 0; j < cubeSize; j++) {
      for (unsigned int k = 0; k < cubeSize; k++)
         cube.at(i++) = colorList.at(1);
      for (unsigned int k = 0; k < cubeSize; k++)
         cube.at(i++) = colorList.at(2);
      for (unsigned int k = 0; k < cubeSize; k++)
         cube.at(i++) = colorList.at(3);
      for (unsigned int k = 0; k < cubeSize; k++)
         cube.at(i++) = colorList.at(4);
   }

   /* Down Face */
   for (unsigned int j = 0; j < cubeSize; j++) {
      for (unsigned int k = 0; k < cubeSize; k++)
         i++;
      for (unsigned int k = 0; k < cubeSize; k++)
         cube.at(i++) = colorList.at(5);
      for (unsigned int k = 0; k < cubeSize; k++)
         i++;
      for (unsigned int k = 0; k < cubeSize; k++)
         i++;
   }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movl %edx, %r12d
movq %rsi, %r14
movq %rdi, %r15
leal (,%r12,4), %eax
movl %eax, 0x14(%rsp)
xorl %r13d, %r13d
xorl %eax, %eax
movq %r12, 0x8(%rsp)
cmpl %r12d, %eax
je 0x84bf
movl %eax, 0x4(%rsp)
movq %r12, %rax
addl %r13d, %r12d
movl %eax, %ebp
subl $0x1, %ebp
jb 0x84ad
movq %r14, %rdi
xorl %esi, %esi
callq 0x85e0
movb (%rax), %bl
movl %r12d, %esi
incl %r12d
movq %r15, %rdi
callq 0x85e0
movb %bl, (%rax)
jmp 0x848a
addl 0x14(%rsp), %r13d
movl 0x4(%rsp), %eax
incl %eax
movq 0x8(%rsp), %r12
jmp 0x8479
xorl %eax, %eax
cmpl %r12d, %eax
je 0x858d
movl %eax, 0x4(%rsp)
xorl %r12d, %r12d
leal (%r12,%r13), %ebp
cmpl %r12d, 0x8(%rsp)
je 0x84fa
movq %r14, %rdi
pushq $0x1
popq %rsi
callq 0x85e0
movb (%rax), %bl
movl %ebp, %esi
movq %r15, %rdi
callq 0x85e0
movb %bl, (%rax)
incl %r12d
jmp 0x84d1
movq 0x8(%rsp), %rax
movl %eax, %r13d
pushq $0x2
popq %r12
subl $0x1, %r13d
jb 0x8529
movq %r14, %rdi
movq %r12, %rsi
callq 0x85e0
movb (%rax), %bl
movl %ebp, %esi
incl %ebp
movq %r15, %rdi
callq 0x85e0
movb %bl, (%rax)
jmp 0x8506
xorl %r12d, %r12d
leal (%r12,%rbp), %r13d
cmpl %r12d, 0x8(%rsp)
je 0x8556
movq %r14, %rdi
pushq $0x3
popq %rsi
callq 0x85e0
movb (%rax), %bl
movl %r13d, %esi
movq %r15, %rdi
callq 0x85e0
movb %bl, (%rax)
incl %r12d
jmp 0x852c
movq 0x8(%rsp), %r12
movl %r12d, %ebp
subl $0x1, %ebp
jb 0x8582
movq %r14, %rdi
pushq $0x4
popq %rsi
callq 0x85e0
movb (%rax), %bl
movl %r13d, %esi
incl %r13d
movq %r15, %rdi
callq 0x85e0
movb %bl, (%rax)
jmp 0x855e
movl 0x4(%rsp), %eax
incl %eax
jmp 0x84c1
xorl %eax, %eax
cmpl %r12d, %eax
je 0x85d1
movl %eax, 0x4(%rsp)
leal (%r12,%r13), %ebp
subl $0x1, %r12d
jb 0x85bf
movq %r14, %rdi
pushq $0x5
popq %rsi
callq 0x85e0
movb (%rax), %bl
movl %ebp, %esi
incl %ebp
movq %r15, %rdi
callq 0x85e0
movb %bl, (%rax)
jmp 0x859c
addl 0x14(%rsp), %r13d
movl 0x4(%rsp), %eax
incl %eax
movq 0x8(%rsp), %r12
jmp 0x858f
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq