// File: /workspace/github_cpp_makefile_star2_O3/Rubenmp[P]Rubik/src/defineRubik.cpp
// Function: Rubik::correctMistakes()
void Rubik::correctMistakes(){
   char letter;
   int number;
   do{
      Rubik::printNumbers(cout);
      do{
         cout << "Choose the position with the wrong colour [1,54]\n";
         cin >> number;
      }while(number < 1 || number > 54);

      cout << "And the new colour is... [w, o, g, r, l, y]\n";
      if (number == 1)
         readSticker(corner[3].up);
      else if (number == 2)
         readSticker(edge[2].up);
      else if (number == 3)
         readSticker(corner[2].up);
      else if (number == 4)
         readSticker(edge[3].up);
      else if (number == 5)
         readSticker(center[0].center);
      else if (number == 6)
         readSticker(edge[1].up);
      else if (number == 7)
         readSticker(corner[0].up);
      else if (number == 8)
         readSticker(edge[0].up);
      else if (number == 9)
         readSticker(corner[1].up);

      else if (number == 10)
         readSticker(corner[3].right);
      else if (number == 11)
         readSticker(edge[3].down);
      else if (number == 12)
         readSticker(corner[0].left);
      else if (number == 13)
         readSticker(edge[10].down);
      else if (number == 14)
         readSticker(center[4].center);
      else if (number == 15)
         readSticker(edge[11].down);
      else if (number == 16)
         readSticker(corner[7].right);
      else if (number == 17)
         readSticker(edge[7].down);
      else if (number == 18)
         readSticker(corner[4].left);

      else if (number == 19)
         readSticker(corner[0].right);
      else if (number == 20)
         readSticker(edge[0].down);
      else if (number == 21)
         readSticker(corner[1].left);
      else if (number == 22)
         readSticker(edge[11].up);
      else if (number == 23)
         readSticker(center[1].center);
      else if (number == 24)
         readSticker(edge[8].up);
      else if (number == 25)
         readSticker(corner[4].right);
      else if (number == 26)
         readSticker(edge[4].down);
      else if (number == 27)
         readSticker(corner[5].left);

      else if (number == 28)
         readSticker(corner[1].right);
      else if (number == 29)
         readSticker(edge[1].down);
      else if (number == 30)
         readSticker(corner[2].left);
      else if (number == 31)
         readSticker(edge[8].down);
      else if (number == 32)
         readSticker(center[2].center);
      else if (number == 33)
         readSticker(edge[9].down);
      else if (number == 34)
         readSticker(corner[5].right);
      else if (number == 35)
         readSticker(edge[5].down);
      else if (number == 36)
         readSticker(corner[6].left);

      else if (number == 37)
         readSticker(corner[2].right);
      else if (number == 38)
         readSticker(edge[2].down);
      else if (number == 39)
         readSticker(corner[3].left);
      else if (number == 40)
         readSticker(edge[9].up);
      else if (number == 41)
         readSticker(center[3].center);
      else if (number == 42)
         readSticker(edge[10].up);
      else if (number == 43)
         readSticker(corner[6].right);
      else if (number == 44)
         readSticker(edge[6].down);
      else if (number == 45)
         readSticker(corner[7].left);

      else if (number == 46)
         readSticker(corner[4].up);
      else if (number == 47)
         readSticker(edge[4].up);
      else if (number == 48)
         readSticker(corner[5].up);
      else if (number == 49)
         readSticker(edge[7].up);
      else if (number == 50)
         readSticker(center[5].center);
      else if (number == 51)
         readSticker(edge[5].up);
      else if (number == 52)
         readSticker(corner[7].up);
      else if (number == 53)
         readSticker(edge[6].up);
      else if (number == 54)
         readSticker(corner[6].up);

      printAll();
      cout << "Do you want to change other colour? [y/n]\n";
      cin >> letter;
   }while (letter == 'y' || letter == 'Y');
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1b8, %rsp            # imm = 0x1B8
movq %rdi, %rbx
leaq 0x30(%rdi), %rax
movq %rax, 0x1a8(%rsp)
leaq 0x12(%rdi), %rax
movq %rax, 0x1a0(%rsp)
leaq 0x33(%rdi), %rax
movq %rax, 0x198(%rsp)
leaq 0x10(%rdi), %rax
movq %rax, 0x190(%rsp)
leaq 0x5(%rdi), %rax
movq %rax, 0x188(%rsp)
leaq 0x14(%rdi), %rax
movq %rax, 0x180(%rsp)
leaq 0x2d(%rdi), %rax
movq %rax, 0x178(%rsp)
leaq 0xe(%rdi), %rax
movq %rax, 0x170(%rsp)
leaq 0x2a(%rdi), %rax
movq %rax, 0x168(%rsp)
leaq 0x34(%rdi), %rax
movq %rax, 0x160(%rsp)
leaq 0x13(%rdi), %rax
movq %rax, 0x158(%rsp)
leaq 0x32(%rdi), %rax
movq %rax, 0x150(%rsp)
leaq 0x1a(%rdi), %rax
movq %rax, 0x148(%rsp)
leaq 0x3(%rdi), %rax
movq %rax, 0x140(%rsp)
leaq 0x18(%rdi), %rax
movq %rax, 0x138(%rsp)
leaq 0x28(%rdi), %rax
movq %rax, 0x130(%rsp)
leaq 0xb(%rdi), %rax
movq %rax, 0x128(%rsp)
leaq 0x26(%rdi), %rax
movq %rax, 0x120(%rsp)
leaq 0x31(%rdi), %rax
movq %rax, 0x118(%rsp)
leaq 0x11(%rdi), %rax
movq %rax, 0x110(%rsp)
leaq 0x2f(%rdi), %rax
movq %rax, 0x108(%rsp)
leaq 0x19(%rdi), %rax
movq %rax, 0x100(%rsp)
leaq 0x2(%rdi), %rax
movq %rax, 0xf8(%rsp)
leaq 0x17(%rdi), %rax
movq %rax, 0xf0(%rsp)
leaq 0x25(%rdi), %rax
movq %rax, 0xe8(%rsp)
leaq 0x9(%rdi), %rax
movq %rax, 0xe0(%rsp)
leaq 0x23(%rdi), %rax
movq %rax, 0xd8(%rsp)
leaq 0x2e(%rdi), %rax
movq %rax, 0xd0(%rsp)
leaq 0xf(%rdi), %rax
movq %rax, 0xc8(%rsp)
leaq 0x2c(%rdi), %rax
movq %rax, 0xc0(%rsp)
leaq 0x16(%rdi), %rax
movq %rax, 0xb8(%rsp)
leaq 0x1(%rdi), %rax
movq %rax, 0xb0(%rsp)
leaq 0x1c(%rdi), %rax
movq %rax, 0xa8(%rsp)
leaq 0x22(%rdi), %rax
movq %rax, 0xa0(%rsp)
leaq 0x7(%rdi), %rax
movq %rax, 0x98(%rsp)
leaq 0x20(%rdi), %rax
movq %rax, 0x90(%rsp)
leaq 0x2b(%rdi), %rax
movq %rax, 0x88(%rsp)
leaq 0x15(%rdi), %rax
movq %rax, 0x80(%rsp)
leaq 0x35(%rdi), %rax
movq %rax, 0x78(%rsp)
leaq 0x1d(%rdi), %rax
movq %rax, 0x70(%rsp)
leaq 0x4(%rdi), %rax
movq %rax, 0x68(%rsp)
leaq 0x1b(%rdi), %rax
movq %rax, 0x60(%rsp)
leaq 0x1f(%rdi), %rax
movq %rax, 0x58(%rsp)
leaq 0xd(%rdi), %rax
movq %rax, 0x50(%rsp)
leaq 0x29(%rdi), %rax
movq %rax, 0x48(%rsp)
leaq 0x21(%rdi), %rax
movq %rax, 0x40(%rsp)
leaq 0x6(%rdi), %rax
movq %rax, 0x38(%rsp)
leaq 0x1e(%rdi), %rax
movq %rax, 0x30(%rsp)
leaq 0x8(%rdi), %rax
movq %rax, 0x28(%rsp)
leaq 0xc(%rdi), %rax
movq %rax, 0x20(%rsp)
leaq 0x24(%rdi), %rax
movq %rax, 0x18(%rsp)
leaq 0xa(%rdi), %rax
movq %rax, 0x10(%rsp)
leaq 0x27(%rdi), %rax
movq %rax, 0x1b0(%rsp)
movq 0x8095(%rip), %r14      # 0x11fc8
leaq 0x3e64(%rip), %r15      # 0xdd9e
movq 0x8097(%rip), %r12      # 0x11fd8
leaq 0xc(%rsp), %r13
leaq 0x351f(%rip), %rbp      # 0xd46c
movq %r14, %rdi
callq 0xa260
movl $0x31, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x21d0
movq %r12, %rdi
movq %r13, %rsi
callq 0x20d0
movl 0xc(%rsp), %eax
addl $-0x37, %eax
cmpl $-0x36, %eax
jb 0x9f55
movl $0x2c, %edx
movq %r14, %rdi
leaq 0x3e45(%rip), %rsi      # 0xddd0
callq 0x21d0
movl 0xc(%rsp), %eax
decl %eax
cmpl $0x35, %eax
ja 0xa216
movslq (%rbp,%rax,4), %rax
addq %rbp, %rax
movq 0x1b0(%rsp), %rsi
jmpq *%rax
movq 0x10(%rsp), %rsi
jmp 0xa20a
movq 0x190(%rsp), %rsi
jmp 0xa20a
movq 0x158(%rsp), %rsi
jmp 0xa20a
movq 0x128(%rsp), %rsi
jmp 0xa20a
movq 0x1a8(%rsp), %rsi
jmp 0xa20a
movq 0x178(%rsp), %rsi
jmp 0xa20a
movq 0x118(%rsp), %rsi
jmp 0xa20a
movq 0x120(%rsp), %rsi
jmp 0xa20a
movq 0xd8(%rsp), %rsi
jmp 0xa20a
movq 0x110(%rsp), %rsi
jmp 0xa20a
movq 0x80(%rsp), %rsi
jmp 0xa20a
movq 0x160(%rsp), %rsi
jmp 0xa20a
movq 0x70(%rsp), %rsi
jmp 0xa20a
movq 0x108(%rsp), %rsi
jmp 0xa20a
movq 0x180(%rsp), %rsi
jmp 0xa20a
movq 0x58(%rsp), %rsi
jmp 0xa20a
movq 0x188(%rsp), %rsi
jmp 0xa20a
movq %rbx, %rsi
jmp 0xa20a
movq 0x140(%rsp), %rsi
jmp 0xa20a
movq 0x60(%rsp), %rsi
jmp 0xa20a
movq 0x48(%rsp), %rsi
jmp 0xa20a
movq 0xc8(%rsp), %rsi
jmp 0xa20a
movq 0xc0(%rsp), %rsi
jmp 0xa20a
movq 0x18(%rsp), %rsi
jmp 0xa20a
movq 0x78(%rsp), %rsi
jmp 0xa20a
movq 0x20(%rsp), %rsi
jmp 0xa20a
movq 0x38(%rsp), %rsi
jmp 0xa20a
movq 0xf8(%rsp), %rsi
jmp 0xa20a
movq 0x88(%rsp), %rsi
jmp 0xa20a
movq 0x148(%rsp), %rsi
jmp 0xa20a
movq 0xa0(%rsp), %rsi
jmp 0xa20a
movq 0x28(%rsp), %rsi
jmp 0xa20a
movq 0xa8(%rsp), %rsi
jmp 0xa20a
movq 0x68(%rsp), %rsi
jmp 0xa20a
movq 0x30(%rsp), %rsi
jmp 0xa20a
movq 0x90(%rsp), %rsi
jmp 0xa20a
movq 0x50(%rsp), %rsi
jmp 0xa20a
movq 0x40(%rsp), %rsi
jmp 0xa20a
movq 0xf0(%rsp), %rsi
jmp 0xa20a
movq 0x100(%rsp), %rsi
jmp 0xa20a
movq 0x168(%rsp), %rsi
jmp 0xa20a
movq 0xb0(%rsp), %rsi
jmp 0xa20a
movq 0x138(%rsp), %rsi
jmp 0xa20a
movq 0x98(%rsp), %rsi
jmp 0xa20a
movq 0x150(%rsp), %rsi
jmp 0xa20a
movq 0xb8(%rsp), %rsi
jmp 0xa20a
movq 0xe0(%rsp), %rsi
jmp 0xa20a
movq 0xe8(%rsp), %rsi
jmp 0xa20a
movq 0x130(%rsp), %rsi
jmp 0xa20a
movq 0xd0(%rsp), %rsi
jmp 0xa20a
movq 0x1a0(%rsp), %rsi
jmp 0xa20a
movq 0x170(%rsp), %rsi
jmp 0xa20a
movq 0x198(%rsp), %rsi
movq 0x7dc7(%rip), %rdx      # 0x11fd8
callq 0xa3f8
movq %rbx, %rdi
callq 0xa4ac
movl $0x2a, %edx
movq %r14, %rdi
leaq 0x3bd0(%rip), %rsi      # 0xddfd
callq 0x21d0
movq %r12, %rdi
leaq 0xb(%rsp), %rsi
callq 0x21f0
movb 0xb(%rsp), %al
andb $-0x21, %al
cmpb $0x59, %al
je 0x9f4d
addq $0x1b8, %rsp            # imm = 0x1B8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop