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

	do{
		//Mostramos los datos de la asignatura
		std::cout << std::endl << BIBLUE << "Datos actuales de la asignatura: " << RESET << std::endl;
		std::cout << BBLUE << "Código: " << BLUE << asignatura.getCodigo() << RESET << std::endl;
		std::cout << BBLUE << "Nombre: " << BLUE << asignatura.getNombre() << RESET << std::endl << std::endl;

		//Preguntamos al usuario qué desea modificar
		std::cout << BGREEN << "Indique qué dato desea modificar: " << RESET << std::endl;
		std::cout << IGREEN << "(1) código" << std::endl;
		std::cout << "(2) nombre" << std::endl;
		std::cout << GREEN << "(0) salir" << RESET << std::endl;
		std::cout << IYELLOW << "Opción: " << RESET;
		std::cin >> opcion;

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

			case 1: //Modificar código
				//Pedimos al usuario el nuevo código de la asignatura
				std::cout << std::endl << IPURPLE "Nuevo código: " << RESET;
				std::cin >> codigo;

				asignatura.setCodigo(codigo); //Modificamos el código de la asignatura

				break;

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

				asignatura.setNombre(nombre); //Modificamos el nombre de la asignatura

				break;

			default: //Opción incorrecta
				std::cout << std::endl << BIRED << "Error: opción incorrecta" << RESET << std::endl << std::endl;

				break;
		}
	}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 0x6ddf(%rip), %r14      # 0xafd0
leaq 0x3ba7(%rip), %r13      # 0x7d9f
leaq -0x70(%rbp), %r15
movq %r14, %rdi
callq 0x20d0
movq %rax, %rdi
leaq 0x3946(%rip), %rsi      # 0x7b54
callq 0x2160
movq %rax, %rdi
leaq 0x393f(%rip), %rsi      # 0x7b5c
callq 0x2160
movq %rax, %rdi
movq %r13, %rsi
callq 0x2160
movq %rax, %rdi
callq 0x20d0
movq %r14, %rdi
leaq 0x2e41(%rip), %rsi      # 0x7080
callq 0x2160
movq %rax, %rdi
leaq 0x3930(%rip), %rsi      # 0x7b7e
callq 0x2160
movq %rax, %rdi
leaq 0x2e34(%rip), %rsi      # 0x7091
callq 0x2160
movq %rax, %r12
movq (%rbx), %rax
movq %rbx, %rdi
callq *(%rax)
movq %r12, %rdi
movl %eax, %esi
callq 0x2220
movq %rax, %rdi
movq %r13, %rsi
callq 0x2160
movq %rax, %rdi
callq 0x20d0
movq %r14, %rdi
leaq 0x2dec(%rip), %rsi      # 0x7080
callq 0x2160
movq %rax, %rdi
leaq 0x2de5(%rip), %rsi      # 0x7088
callq 0x2160
movq %rax, %rdi
leaq 0x2ddf(%rip), %rsi      # 0x7091
callq 0x2160
movq %rax, %r12
movq (%rbx), %rax
movq %r15, %rdi
movq %rbx, %rsi
callq *0x8(%rax)
movq %r12, %rdi
movq %r15, %rsi
callq 0x2140
movq %rax, %rdi
movq %r13, %rsi
callq 0x2160
movq %rax, %rdi
callq 0x20d0
movq %rax, %rdi
callq 0x20d0
movq %r15, %rdi
callq 0x2190
movq %r14, %rdi
leaq 0x388a(%rip), %rsi      # 0x7b88
callq 0x2160
movq %rax, %rdi
leaq 0x3883(%rip), %rsi      # 0x7b90
callq 0x2160
movq %rax, %rdi
movq %r13, %rsi
callq 0x2160
movq %rax, %rdi
callq 0x20d0
movq %r14, %rdi
leaq 0x34e3(%rip), %rsi      # 0x7812
callq 0x2160
movq %rax, %rdi
leaq 0x3876(%rip), %rsi      # 0x7bb4
callq 0x2160
movq %rax, %rdi
callq 0x20d0
movq %r14, %rdi
leaq 0x386b(%rip), %rsi      # 0x7bc0
callq 0x2160
movq %rax, %rdi
callq 0x20d0
movq %r14, %rdi
leaq 0x3632(%rip), %rsi      # 0x799e
callq 0x2160
movq %rax, %rdi
leaq 0x3850(%rip), %rsi      # 0x7bcb
callq 0x2160
movq %rax, %rdi
movq %r13, %rsi
callq 0x2160
movq %rax, %rdi
callq 0x20d0
movq %r14, %rdi
leaq 0x2c6b(%rip), %rsi      # 0x7008
callq 0x2160
movq %rax, %rdi
leaq 0x3a62(%rip), %rsi      # 0x7e0e
callq 0x2160
movq %rax, %rdi
movq %r13, %rsi
callq 0x2160
movq 0x6c1d(%rip), %rdi      # 0xafe0
leaq -0x2c(%rbp), %rsi
callq 0x20f0
movl -0x2c(%rbp), %eax
cmpl $0x1, %eax
je 0x4487
cmpl $0x2, %eax
je 0x442b
testl %eax, %eax
je 0x44cf
movq %r14, %rdi
callq 0x20d0
movq %rax, %rdi
leaq 0x3621(%rip), %rsi      # 0x7a18
callq 0x2160
movq %rax, %rdi
leaq 0x37fd(%rip), %rsi      # 0x7c03
callq 0x2160
movq %rax, %rdi
movq %r13, %rsi
callq 0x2160
movq %rax, %rdi
callq 0x20d0
movq %rax, %rdi
callq 0x20d0
jmp 0x44c5
movq 0x6bae(%rip), %rdi      # 0xafe0
callq 0x2240
movq %r14, %rdi
callq 0x20d0
movq %rax, %rdi
leaq 0x37a3(%rip), %rsi      # 0x7bec
callq 0x2160
movq %rax, %rdi
leaq 0x379c(%rip), %rsi      # 0x7bf4
callq 0x2160
movq %rax, %rdi
movq %r13, %rsi
callq 0x2160
movq 0x6b71(%rip), %rdi      # 0xafe0
leaq -0x50(%rbp), %rsi
callq 0x2060
movq (%rbx), %rax
movq %rbx, %rdi
leaq -0x50(%rbp), %rsi
callq *0x40(%rax)
jmp 0x44c5
movq %r14, %rdi
callq 0x20d0
movq %rax, %rdi
leaq 0x373c(%rip), %rsi      # 0x7bd5
callq 0x2160
movq %rax, %rdi
movq %r13, %rsi
callq 0x2160
movq 0x6b30(%rip), %rdi      # 0xafe0
leaq -0x30(%rbp), %rsi
callq 0x20f0
movl -0x30(%rbp), %esi
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x38(%rax)
cmpl $0x0, -0x2c(%rbp)
jne 0x41fc
leaq -0x50(%rbp), %rdi
callq 0x2190
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x44f7
movq %rax, %rbx
leaq -0x70(%rbp), %rdi
callq 0x2190
jmp 0x44fa
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x2190
movq %rbx, %rdi
callq 0x2230
movq %rax, %rdi
callq 0x3298