// File: Rubenmp[P]Rubik/src/defineRubik.cpp
// Function: Rubik::explainMovements(std::vector<char, std::allocator<char>>&, unsigned int&) const
void Rubik::explainMovements(vector<char>& solution, unsigned int& movement) const{
   while (movement <= (solution.size()-1)){
      cout << "- (" << movement + 1 << ") ";
      if (solution[movement] == 'F')
	      cout << "F --> Move frontal side in clockwise.\n\n";
      else if (solution[movement] == 'f')
	      cout << "f --> Move frontal side, not in clockwise.\n\n";
      else if (solution[movement] == 'W')
	      cout << "B --> Move back side left.\n\n";
      else if (solution[movement] == 'w')
	      cout << "b --> Move back side right.\n\n";
      else if (solution[movement] == 'R')
	      cout << "R --> Move right side backward.\n\n";
      else if (solution[movement] == 'r')
	      cout << "r --> Move right side to you.\n\n";
      else if (solution[movement] == 'L')
	      cout << "L --> Move left side to you.\n\n";
      else if (solution[movement] == 'l')
	      cout << "l --> Move left side backward.\n\n";
      else if (solution[movement] == 'U')
	      cout << "U --> Move top side left.\n\n";
      else if (solution[movement] == 'u')
         cout << "u --> Move top side right.\n\n";
      else if (solution[movement] == 'D')
	      cout << "D --> Move down side right.\n\n";
      else if (solution[movement] == 'd')
	      cout << "d --> Move down side left.\n\n";

	   ++movement;
   }

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x18(%rbp), %rax
movl (%rax), %eax
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rdi
callq 0x39d0
movq %rax, %rcx
movq -0x20(%rbp), %rax
subq $0x1, %rcx
cmpq %rcx, %rax
ja 0x41e5
movq 0x19076(%rip), %rdi     # 0x1cfc8
leaq 0x13356(%rip), %rsi     # 0x172af
callq 0x2230
movq %rax, %rdi
movq -0x18(%rbp), %rax
movl (%rax), %esi
addl $0x1, %esi
callq 0x2320
movq %rax, %rdi
leaq 0x1333a(%rip), %rsi     # 0x172b3
callq 0x2230
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movl (%rax), %eax
movl %eax, %esi
callq 0x39f0
movsbl (%rax), %eax
cmpl $0x46, %eax
jne 0x3faf
movq 0x1902a(%rip), %rdi     # 0x1cfc8
leaq 0x13311(%rip), %rsi     # 0x172b6
callq 0x2230
jmp 0x41d5
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movl (%rax), %eax
movl %eax, %esi
callq 0x39f0
movsbl (%rax), %eax
cmpl $0x66, %eax
jne 0x3fe0
movq 0x18ff9(%rip), %rdi     # 0x1cfc8
leaq 0x13308(%rip), %rsi     # 0x172de
callq 0x2230
jmp 0x41d3
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movl (%rax), %eax
movl %eax, %esi
callq 0x39f0
movsbl (%rax), %eax
cmpl $0x57, %eax
jne 0x4011
movq 0x18fc8(%rip), %rdi     # 0x1cfc8
leaq 0x13304(%rip), %rsi     # 0x1730b
callq 0x2230
jmp 0x41d1
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movl (%rax), %eax
movl %eax, %esi
callq 0x39f0
movsbl (%rax), %eax
cmpl $0x77, %eax
jne 0x4042
movq 0x18f97(%rip), %rdi     # 0x1cfc8
leaq 0x132f0(%rip), %rsi     # 0x17328
callq 0x2230
jmp 0x41cf
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movl (%rax), %eax
movl %eax, %esi
callq 0x39f0
movsbl (%rax), %eax
cmpl $0x52, %eax
jne 0x4073
movq 0x18f66(%rip), %rdi     # 0x1cfc8
leaq 0x132dd(%rip), %rsi     # 0x17346
callq 0x2230
jmp 0x41cd
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movl (%rax), %eax
movl %eax, %esi
callq 0x39f0
movsbl (%rax), %eax
cmpl $0x72, %eax
jne 0x40a4
movq 0x18f35(%rip), %rdi     # 0x1cfc8
leaq 0x132ce(%rip), %rsi     # 0x17368
callq 0x2230
jmp 0x41cb
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movl (%rax), %eax
movl %eax, %esi
callq 0x39f0
movsbl (%rax), %eax
cmpl $0x4c, %eax
jne 0x40d5
movq 0x18f04(%rip), %rdi     # 0x1cfc8
leaq 0x132bd(%rip), %rsi     # 0x17388
callq 0x2230
jmp 0x41c9
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movl (%rax), %eax
movl %eax, %esi
callq 0x39f0
movsbl (%rax), %eax
cmpl $0x6c, %eax
jne 0x4106
movq 0x18ed3(%rip), %rdi     # 0x1cfc8
leaq 0x132ab(%rip), %rsi     # 0x173a7
callq 0x2230
jmp 0x41c7
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movl (%rax), %eax
movl %eax, %esi
callq 0x39f0
movsbl (%rax), %eax
cmpl $0x55, %eax
jne 0x4137
movq 0x18ea2(%rip), %rdi     # 0x1cfc8
leaq 0x1329b(%rip), %rsi     # 0x173c8
callq 0x2230
jmp 0x41c5
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movl (%rax), %eax
movl %eax, %esi
callq 0x39f0
movsbl (%rax), %eax
cmpl $0x75, %eax
jne 0x4165
movq 0x18e71(%rip), %rdi     # 0x1cfc8
leaq 0x13286(%rip), %rsi     # 0x173e4
callq 0x2230
jmp 0x41c3
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movl (%rax), %eax
movl %eax, %esi
callq 0x39f0
movsbl (%rax), %eax
cmpl $0x44, %eax
jne 0x4193
movq 0x18e43(%rip), %rdi     # 0x1cfc8
leaq 0x13275(%rip), %rsi     # 0x17401
callq 0x2230
jmp 0x41c1
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movl (%rax), %eax
movl %eax, %esi
callq 0x39f0
movsbl (%rax), %eax
cmpl $0x64, %eax
jne 0x41bf
movq 0x18e15(%rip), %rdi     # 0x1cfc8
leaq 0x13265(%rip), %rsi     # 0x1741f
callq 0x2230
jmp 0x41c1
jmp 0x41c3
jmp 0x41c5
jmp 0x41c7
jmp 0x41c9
jmp 0x41cb
jmp 0x41cd
jmp 0x41cf
jmp 0x41d1
jmp 0x41d3
jmp 0x41d5
movq -0x18(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x3f24
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)