// File: /workspace/github_cpp_makefile_star2_O2/DaCasBe[P]Gestion-de-asignaturas-mediante-listas-doblemente-enlazadas-ordenadas/funcionesAuxiliares.cpp
// Function: ed::modificarAsignatura(ed::Asignatura&)
void ed::modificarAsignatura(ed::Asignatura &asignatura){
   int codigo;
   std::string nombre;
   int opcion;

   do{
	std::cout << IYELLOW << "Datos actuales de la asignatura:" << std::endl;
   	std::cout << "Codigo: " << asignatura.getCodigo() << std::endl;
   	std::cout << "Nombre: " << asignatura.getNombre() << RESET << std::endl << std::endl;

	//Pedimos al usuario que nos diga que dato quiere modificar
   	std::cout << BYELLOW << "Indique que dato desea modificar:" << std::endl;
   	std::cout << "(1) codigo" << std::endl;
   	std::cout << "(2) nombre" << std::endl;
  	std::cout << "(0) salir" << RESET << std::endl;
   	std::cin >> opcion;

   	switch(opcion){
		case 0: //Salimos
			break;

		case 1: //Modificamos el codigo de la asignatura
			//Pedimos al usuario el nuevo codigo
			std::cout << std::endl << URED << "Nuevo codigo" << RED << ": " << RESET;
			std::cin >> codigo;

			asignatura.setCodigo(codigo);

			std::cout << std::endl;

			break;

		case 2: //Modificamos el nombre de la asignatura
			//Pedimos al usuario el nuevo nombre
			std::cout << std::endl << URED << "Nuevo nombre" << RED << ": " << RESET;
			std::cin.ignore();
			getline(std::cin,nombre);

			asignatura.setNombre(nombre);

			std::cout << std::endl;

			break;

		default: //Opcion incorrecta
			std::cout << std::endl << ONIRED << "Error: opcion incorrecta" << RESET << std::endl << std::endl;

   	}
   }while(opcion!=0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq %rdi, %rbx
leaq -0x40(%rbp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
movq 0x57ec(%rip), %r14      # 0x9fd0
leaq -0x70(%rbp), %r12
leaq 0x1837(%rip), %r13      # 0x6026
movq %r14, %rdi
leaq 0x188c(%rip), %rsi      # 0x6085
callq 0x2160
movq %rax, %rdi
leaq 0x2822(%rip), %rsi      # 0x702a
callq 0x2160
movq %rax, %rdi
callq 0x20d0
movq %r14, %rdi
leaq 0x282c(%rip), %rsi      # 0x704b
callq 0x2160
movq %rax, %r15
movq (%rbx), %rax
movq %rbx, %rdi
callq *(%rax)
movq %r15, %rdi
movl %eax, %esi
callq 0x2220
movq %rax, %rdi
callq 0x20d0
movq %r14, %rdi
leaq 0x2809(%rip), %rsi      # 0x7054
callq 0x2160
movq %rax, %r15
movq (%rbx), %rax
movq %r12, %rdi
movq %rbx, %rsi
callq *0x8(%rax)
movq %r15, %rdi
movq %r12, %rsi
callq 0x2140
movq %rax, %rdi
movq %r13, %rsi
callq 0x2160
movq %rax, %rdi
callq 0x20d0
movq %rax, %rdi
callq 0x20d0
movq %r12, %rdi
callq 0x2190
movq %r14, %rdi
leaq 0x27c6(%rip), %rsi      # 0x705d
callq 0x2160
movq %rax, %rdi
leaq 0x27bf(%rip), %rsi      # 0x7065
callq 0x2160
movq %rax, %rdi
callq 0x20d0
movq %r14, %rdi
leaq 0x27ca(%rip), %rsi      # 0x7087
callq 0x2160
movq %rax, %rdi
callq 0x20d0
movq %r14, %rdi
leaq 0x27be(%rip), %rsi      # 0x7092
callq 0x2160
movq %rax, %rdi
callq 0x20d0
movq %r14, %rdi
leaq 0x27b2(%rip), %rsi      # 0x709d
callq 0x2160
movq %rax, %rdi
movq %r13, %rsi
callq 0x2160
movq %rax, %rdi
callq 0x20d0
movq 0x56d6(%rip), %rdi      # 0x9fe0
leaq -0x2c(%rbp), %rsi
callq 0x20f0
movl -0x2c(%rbp), %eax
cmpl $0x1, %eax
je 0x49e7
cmpl $0x2, %eax
je 0x496a
testl %eax, %eax
je 0x4a67
movq %r14, %rdi
callq 0x20d0
movq %rax, %rdi
leaq 0x228a(%rip), %rsi      # 0x6bc8
callq 0x2160
movq %rax, %rdi
leaq 0x2784(%rip), %rsi      # 0x70d1
callq 0x2160
movq %rax, %rdi
movq %r13, %rsi
callq 0x2160
movq %rax, %rdi
callq 0x20d0
jmp 0x4a55
movq %r14, %rdi
callq 0x20d0
movq %rax, %rdi
leaq 0x272b(%rip), %rsi      # 0x70a7
callq 0x2160
movq %rax, %rdi
leaq 0x2739(%rip), %rsi      # 0x70c4
callq 0x2160
movq %rax, %rdi
leaq 0x2722(%rip), %rsi      # 0x70bc
callq 0x2160
movq %rax, %rdi
leaq 0x257f(%rip), %rsi      # 0x6f28
callq 0x2160
movq %rax, %rdi
movq %r13, %rsi
callq 0x2160
movq 0x5620(%rip), %rdi      # 0x9fe0
callq 0x2240
movq 0x5614(%rip), %rdi      # 0x9fe0
leaq -0x50(%rbp), %rsi
callq 0x2060
movq (%rbx), %rax
movq %rbx, %rdi
leaq -0x50(%rbp), %rsi
callq *0x40(%rax)
movq %r14, %rax
jmp 0x4a55
movq %r14, %rdi
callq 0x20d0
movq %rax, %rdi
leaq 0x26ae(%rip), %rsi      # 0x70a7
callq 0x2160
movq %rax, %rdi
leaq 0x26a7(%rip), %rsi      # 0x70af
callq 0x2160
movq %rax, %rdi
leaq 0x26a5(%rip), %rsi      # 0x70bc
callq 0x2160
movq %rax, %rdi
leaq 0x2502(%rip), %rsi      # 0x6f28
callq 0x2160
movq %rax, %rdi
movq %r13, %rsi
callq 0x2160
movq 0x55a3(%rip), %rdi      # 0x9fe0
leaq -0x30(%rbp), %rsi
callq 0x20f0
movl -0x30(%rbp), %esi
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x38(%rax)
movq %r14, %rax
movq %rax, %rdi
callq 0x20d0
cmpl $0x0, -0x2c(%rbp)
jne 0x47ef
leaq -0x50(%rbp), %rdi
callq 0x2190
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x4a8f
movq %rax, %rbx
leaq -0x70(%rbp), %rdi
callq 0x2190
jmp 0x4a92
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x2190
movq %rbx, %rdi
callq 0x2230
movq %rax, %rdi
callq 0x336e