// File: Rubenmp[P]Rubik/src/defineRubik.cpp
// Function: Rubik::isSolved() const
bool Rubik::isSolved() const{
   bool success;
   if((corner[3].up == 'w')     &&
      (edge[2].up == 'w')       &&
      (corner[2].up == 'w')     &&
      (edge[3].up == 'w')       &&
      (center[0].center == 'w') &&
      (edge[1].up == 'w')       &&
      (corner[0].up == 'w')     &&
      (edge[0].up == 'w')       &&
      (corner[1].up == 'w')     &&

      (corner[3].right == 'o')  &&
      (edge[3].down == 'o')     &&
      (corner[0].left == 'o')   &&
      (edge[10].down == 'o')    &&
      (center[4].center == 'o') &&
      (edge[11].down == 'o')    &&
      (corner[7].right == 'o')  &&
      (edge[7].down == 'o')     &&
      (corner[4].left == 'o')   &&

      (corner[0].right == 'g')  &&
      (edge[0].down == 'g')     &&
      (corner[1].left == 'g')   &&
      (edge[11].up == 'g')      &&
      (center[1].center == 'g') &&
      (edge[8].up == 'g')       &&
      (corner[4].right == 'g')  &&
      (edge[4].down == 'g')     &&
      (corner[5].left == 'g')   &&

      (corner[1].right == 'r')  &&
      (edge[1].down == 'r')     &&
      (corner[2].left == 'r')   &&
      (edge[8].down == 'r')     &&
      (center[2].center == 'r') &&
      (edge[9].down == 'r')     &&
      (corner[5].right == 'r')  &&
      (edge[5].down == 'r')     &&
      (corner[6].left == 'r')   &&

      (corner[2].right == 'l')  &&
      (edge[2].down == 'l')     &&
      (corner[3].left == 'l')   &&
      (edge[9].up == 'l')       &&
      (center[3].center == 'l') &&
      (edge[10].up == 'l')      &&
      (corner[6].right == 'l')  &&
      (edge[6].down == 'l')     &&
      (corner[7].left == 'l')   &&

      (corner[4].up == 'y')     &&
      (edge[4].up == 'y')       &&
      (corner[5].up == 'y')     &&
      (edge[7].up == 'y')       &&
      (center[5].center == 'y') &&
      (edge[5].up == 'y')       &&
      (corner[7].up == 'y')     &&
      (edge[6].up == 'y')       &&
      (corner[6].up == 'y') )
	      success = true;
   else
	   success = false;

   return success;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
movsbl 0x27(%rax), %eax
cmpl $0x77, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0xa(%rax), %eax
cmpl $0x77, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x24(%rax), %eax
cmpl $0x77, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0xc(%rax), %eax
cmpl $0x77, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x77, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x8(%rax), %eax
cmpl $0x77, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x1e(%rax), %eax
cmpl $0x77, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x6(%rax), %eax
cmpl $0x77, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x21(%rax), %eax
cmpl $0x77, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x29(%rax), %eax
cmpl $0x6f, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0xd(%rax), %eax
cmpl $0x6f, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x1f(%rax), %eax
cmpl $0x6f, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x1b(%rax), %eax
cmpl $0x6f, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x4(%rax), %eax
cmpl $0x6f, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x1d(%rax), %eax
cmpl $0x6f, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x35(%rax), %eax
cmpl $0x6f, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x15(%rax), %eax
cmpl $0x6f, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x2b(%rax), %eax
cmpl $0x6f, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x20(%rax), %eax
cmpl $0x67, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x7(%rax), %eax
cmpl $0x67, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x22(%rax), %eax
cmpl $0x67, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x1c(%rax), %eax
cmpl $0x67, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x67, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x16(%rax), %eax
cmpl $0x67, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x2c(%rax), %eax
cmpl $0x67, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0xf(%rax), %eax
cmpl $0x67, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x2e(%rax), %eax
cmpl $0x67, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x23(%rax), %eax
cmpl $0x72, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x9(%rax), %eax
cmpl $0x72, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x25(%rax), %eax
cmpl $0x72, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x17(%rax), %eax
cmpl $0x72, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x2(%rax), %eax
cmpl $0x72, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x19(%rax), %eax
cmpl $0x72, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x2f(%rax), %eax
cmpl $0x72, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x11(%rax), %eax
cmpl $0x72, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x31(%rax), %eax
cmpl $0x72, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x26(%rax), %eax
cmpl $0x6c, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0xb(%rax), %eax
cmpl $0x6c, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x28(%rax), %eax
cmpl $0x6c, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x18(%rax), %eax
cmpl $0x6c, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x3(%rax), %eax
cmpl $0x6c, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x1a(%rax), %eax
cmpl $0x6c, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x32(%rax), %eax
cmpl $0x6c, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x13(%rax), %eax
cmpl $0x6c, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x34(%rax), %eax
cmpl $0x6c, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x2a(%rax), %eax
cmpl $0x79, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0xe(%rax), %eax
cmpl $0x79, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x2d(%rax), %eax
cmpl $0x79, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x14(%rax), %eax
cmpl $0x79, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x5(%rax), %eax
cmpl $0x79, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x10(%rax), %eax
cmpl $0x79, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x33(%rax), %eax
cmpl $0x79, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x12(%rax), %eax
cmpl $0x79, %eax
jne 0x1227f
movq -0x18(%rbp), %rax
movsbl 0x30(%rax), %eax
cmpl $0x79, %eax
jne 0x1227f
movb $0x1, -0x9(%rbp)
jmp 0x12283
movb $0x0, -0x9(%rbp)
movb -0x9(%rbp), %al
andb $0x1, %al
popq %rbp
retq
nopw (%rax,%rax)