// File: /workspace/github_cpp_makefile_star2_O3/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
pushq %rax
testl %edx, %edx
je 0x8356
movq (%rsi), %r8
movq 0x8(%rsi), %r11
leal (%rdx,%rdx,2), %ebx
movl %edx, %r9d
negl %r9d
xorl %ebp, %ebp
xorl %r14d, %r14d
cmpq %r8, %r11
je 0x8391
movq (%rdi), %r10
movq 0x8(%rdi), %rax
subq %r10, %rax
leal (%r14,%rdx), %r12d
xorl %r15d, %r15d
movl %r12d, %ecx
cmpq %rcx, %rax
jbe 0x8379
leal 0x1(%rcx), %r12d
movb (%r8), %r13b
movb %r13b, (%r10,%rcx)
decl %r15d
cmpl %r15d, %r9d
jne 0x81f2
incl %ebp
movl %r14d, %r10d
addl %ebx, %r10d
movl %r10d, %r14d
subl %r15d, %r14d
cmpl %edx, %ebp
jne 0x81d8
movq (%rsi), %r11
movq 0x8(%rsi), %rax
subq %r11, %rax
cmpq $0x2, %rax
jb 0x83d6
subl %r15d, %r10d
xorl %ebx, %ebx
movq (%rdi), %r15
movq 0x8(%rdi), %rcx
subq %r15, %rcx
xorl %r14d, %r14d
leal (%r10,%r14), %r8d
cmpq %r8, %rcx
jbe 0x8365
movb 0x1(%r11), %bpl
movb %bpl, (%r15,%r8)
incl %r14d
cmpl %r14d, %edx
jne 0x8249
cmpq $0x2, %rax
je 0x839e
movq (%rdi), %r15
movq 0x8(%rdi), %rcx
subq %r15, %rcx
addl %r14d, %r10d
movl %edx, %ebp
movl %r10d, %r8d
cmpq %r8, %rcx
jbe 0x8365
leal 0x1(%r8), %r10d
movb 0x2(%r11), %r14b
movb %r14b, (%r15,%r8)
decl %ebp
jne 0x827f
cmpq $0x4, %rax
jb 0x83ac
movq (%rdi), %r14
movq 0x8(%rdi), %rcx
subq %r14, %rcx
movl %edx, %ebp
movl %r10d, %r8d
cmpq %r8, %rcx
jbe 0x8365
leal 0x1(%r8), %r10d
movb 0x3(%r11), %r15b
movb %r15b, (%r14,%r8)
decl %ebp
jne 0x82b1
cmpq $0x4, %rax
je 0x83ba
movq (%rdi), %r14
movq 0x8(%rdi), %rcx
subq %r14, %rcx
movl %edx, %ebp
movl %r10d, %r8d
cmpq %r8, %rcx
jbe 0x8365
leal 0x1(%r8), %r10d
movb 0x4(%r11), %r15b
movb %r15b, (%r14,%r8)
decl %ebp
jne 0x82e3
incl %ebx
cmpl %edx, %ebx
jne 0x823c
movq (%rsi), %r8
movq 0x8(%rsi), %rax
subq %r8, %rax
leal (%rdx,%rdx,2), %r11d
xorl %ebx, %ebx
cmpq $0x5, %rax
jbe 0x83c8
movq (%rdi), %r14
movq 0x8(%rdi), %rcx
subq %r14, %rcx
leal (%r10,%rdx), %r15d
xorl %ebp, %ebp
movl %r15d, %esi
cmpq %rsi, %rcx
jbe 0x8388
leal 0x1(%rsi), %r15d
movb 0x5(%r8), %r12b
movb %r12b, (%r14,%rsi)
decl %ebp
cmpl %ebp, %r9d
jne 0x832f
incl %ebx
addl %r11d, %r10d
subl %ebp, %r10d
cmpl %edx, %ebx
jne 0x8315
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xe9e(%rip), %rdi       # 0x920a
movq %r8, %rsi
movq %rcx, %rdx
xorl %eax, %eax
callq 0x1160
leaq 0xe8a(%rip), %rdi       # 0x920a
movq %rcx, %rsi
movq %rax, %rdx
jmp 0x8372
leaq 0xe7b(%rip), %rdi       # 0x920a
jmp 0x836f
leaq 0xe72(%rip), %rdi       # 0x920a
xorl %esi, %esi
xorl %edx, %edx
jmp 0x8372
leaq 0xe65(%rip), %rdi       # 0x920a
movl $0x2, %esi
jmp 0x8383
leaq 0xe57(%rip), %rdi       # 0x920a
movl $0x3, %esi
jmp 0x8383
leaq 0xe49(%rip), %rdi       # 0x920a
movl $0x4, %esi
jmp 0x8383
leaq 0xe3b(%rip), %rdi       # 0x920a
movl $0x5, %esi
jmp 0x8383
leaq 0xe2d(%rip), %rdi       # 0x920a
movl $0x1, %esi
jmp 0x8383