// File: 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
movq %rsp, %rbp
subq $0x70, %rsp
movq %rsi, -0x60(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movl $0x0, -0x18(%rbp)
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
cmpl -0x14(%rbp), %eax
jae 0xf193
movl $0x0, -0x20(%rbp)
movl -0x20(%rbp), %eax
cmpl -0x14(%rbp), %eax
jae 0xf0f4
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0xf0d8
movl $0x0, -0x24(%rbp)
movl -0x24(%rbp), %eax
cmpl -0x14(%rbp), %eax
jae 0xf13d
movq -0x60(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xf3f0
movb (%rax), %al
movb %al, -0x61(%rbp)
movq -0x8(%rbp), %rdi
movl -0x18(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x18(%rbp)
movl %eax, %eax
movl %eax, %esi
callq 0xf3f0
movb -0x61(%rbp), %cl
movb %cl, (%rax)
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0xf0fb
movl $0x0, -0x28(%rbp)
movl -0x28(%rbp), %eax
cmpl -0x14(%rbp), %eax
jae 0xf160
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0xf144
movl $0x0, -0x2c(%rbp)
movl -0x2c(%rbp), %eax
cmpl -0x14(%rbp), %eax
jae 0xf183
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0xf167
jmp 0xf185
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0xf0c5
movl $0x0, -0x30(%rbp)
movl -0x30(%rbp), %eax
cmpl -0x14(%rbp), %eax
jae 0xf2de
movl $0x0, -0x34(%rbp)
movl -0x34(%rbp), %eax
cmpl -0x14(%rbp), %eax
jae 0xf1f0
movq -0x60(%rbp), %rdi
movl $0x1, %esi
callq 0xf3f0
movb (%rax), %al
movb %al, -0x62(%rbp)
movq -0x8(%rbp), %rdi
movl -0x18(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x18(%rbp)
movl %eax, %eax
movl %eax, %esi
callq 0xf3f0
movb -0x62(%rbp), %cl
movb %cl, (%rax)
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0xf1ad
movl $0x0, -0x38(%rbp)
movl -0x38(%rbp), %eax
cmpl -0x14(%rbp), %eax
jae 0xf23a
movq -0x60(%rbp), %rdi
movl $0x2, %esi
callq 0xf3f0
movb (%rax), %al
movb %al, -0x63(%rbp)
movq -0x8(%rbp), %rdi
movl -0x18(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x18(%rbp)
movl %eax, %eax
movl %eax, %esi
callq 0xf3f0
movb -0x63(%rbp), %cl
movb %cl, (%rax)
movl -0x38(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x38(%rbp)
jmp 0xf1f7
movl $0x0, -0x3c(%rbp)
movl -0x3c(%rbp), %eax
cmpl -0x14(%rbp), %eax
jae 0xf284
movq -0x60(%rbp), %rdi
movl $0x3, %esi
callq 0xf3f0
movb (%rax), %al
movb %al, -0x64(%rbp)
movq -0x8(%rbp), %rdi
movl -0x18(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x18(%rbp)
movl %eax, %eax
movl %eax, %esi
callq 0xf3f0
movb -0x64(%rbp), %cl
movb %cl, (%rax)
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0xf241
movl $0x0, -0x40(%rbp)
movl -0x40(%rbp), %eax
cmpl -0x14(%rbp), %eax
jae 0xf2ce
movq -0x60(%rbp), %rdi
movl $0x4, %esi
callq 0xf3f0
movb (%rax), %al
movb %al, -0x65(%rbp)
movq -0x8(%rbp), %rdi
movl -0x18(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x18(%rbp)
movl %eax, %eax
movl %eax, %esi
callq 0xf3f0
movb -0x65(%rbp), %cl
movb %cl, (%rax)
movl -0x40(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x40(%rbp)
jmp 0xf28b
jmp 0xf2d0
movl -0x30(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30(%rbp)
jmp 0xf19a
movl $0x0, -0x44(%rbp)
movl -0x44(%rbp), %eax
cmpl -0x14(%rbp), %eax
jae 0xf3b4
movl $0x0, -0x48(%rbp)
movl -0x48(%rbp), %eax
cmpl -0x14(%rbp), %eax
jae 0xf314
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
movl -0x48(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x48(%rbp)
jmp 0xf2f8
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
cmpl -0x14(%rbp), %eax
jae 0xf35e
movq -0x60(%rbp), %rdi
movl $0x5, %esi
callq 0xf3f0
movb (%rax), %al
movb %al, -0x66(%rbp)
movq -0x8(%rbp), %rdi
movl -0x18(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x18(%rbp)
movl %eax, %eax
movl %eax, %esi
callq 0xf3f0
movb -0x66(%rbp), %cl
movb %cl, (%rax)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0xf31b
movl $0x0, -0x50(%rbp)
movl -0x50(%rbp), %eax
cmpl -0x14(%rbp), %eax
jae 0xf381
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0xf365
movl $0x0, -0x54(%rbp)
movl -0x54(%rbp), %eax
cmpl -0x14(%rbp), %eax
jae 0xf3a4
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0xf388
jmp 0xf3a6
movl -0x44(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x44(%rbp)
jmp 0xf2e5
addq $0x70, %rsp
popq %rbp
retq
nopw (%rax,%rax)