// File: /workspace/github_cpp_makefile_star2_O3/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 -0x60(%rbp), %rax
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
movq 0x8316(%rip), %r14      # 0xcfd0
leaq 0x50ee(%rip), %r13      # 0x9daf
movq 0x8318(%rip), %r15      # 0xcfe0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
movq %rax, %r12
movl $0x7, %edx
movq %rax, %rdi
leaq 0x4e63(%rip), %rsi      # 0x9b64
callq 0x2190
movl $0x21, %edx
movq %r12, %rdi
leaq 0x4e57(%rip), %rsi      # 0x9b6c
callq 0x2190
movl $0x4, %edx
movq %r12, %rdi
movq %r13, %rsi
callq 0x2190
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
movq %r12, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
movl $0x7, %edx
movq %r14, %rdi
leaq 0x431f(%rip), %rsi      # 0x9080
callq 0x2190
movl $0x9, %edx
movq %r14, %rdi
leaq 0x4e19(%rip), %rsi      # 0x9b8e
callq 0x2190
movl $0x7, %edx
movq %r14, %rdi
leaq 0x4308(%rip), %rsi      # 0x9091
callq 0x2190
movq (%rbx), %rax
movq %rbx, %rdi
callq *(%rax)
movq %r14, %rdi
movl %eax, %esi
callq 0x2220
movq %rax, %r12
movl $0x4, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x2190
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
movq %r12, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
movl $0x7, %edx
movq %r14, %rdi
leaq 0x4296(%rip), %rsi      # 0x9080
callq 0x2190
movl $0x8, %edx
movq %r14, %rdi
leaq 0x428a(%rip), %rsi      # 0x9088
callq 0x2190
movl $0x7, %edx
movq %r14, %rdi
leaq 0x427f(%rip), %rsi      # 0x9091
callq 0x2190
movq (%rbx), %rax
leaq -0x50(%rbp), %rdi
movq %rbx, %rsi
callq *0x8(%rax)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq %r14, %rdi
callq 0x2190
movq %rax, %r12
movl $0x4, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x2190
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
movq %r12, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
movq %r12, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x4eab
callq 0x2140
movl $0x7, %edx
movq %r14, %rdi
leaq 0x4cde(%rip), %rsi      # 0x9b98
callq 0x2190
movl $0x23, %edx
movq %r14, %rdi
leaq 0x4cd2(%rip), %rsi      # 0x9ba0
callq 0x2190
movl $0x4, %edx
movq %r14, %rdi
movq %r13, %rsi
callq 0x2190
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
movl $0x7, %edx
movq %r14, %rdi
leaq 0x4909(%rip), %rsi      # 0x9822
callq 0x2190
movl $0xb, %edx
movq %r14, %rdi
leaq 0x4c97(%rip), %rsi      # 0x9bc4
callq 0x2190
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
movl $0xa, %edx
movq %r14, %rdi
leaq 0x4c68(%rip), %rsi      # 0x9bd0
callq 0x2190
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
movl $0x7, %edx
movq %r14, %rdi
leaq 0x4a0b(%rip), %rsi      # 0x99ae
callq 0x2190
movl $0x9, %edx
movq %r14, %rdi
leaq 0x4c24(%rip), %rsi      # 0x9bdb
callq 0x2190
movl $0x4, %edx
movq %r14, %rdi
movq %r13, %rsi
callq 0x2190
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
movl $0x7, %edx
movq %r14, %rdi
leaq 0x4006(%rip), %rsi      # 0x9008
callq 0x2190
movl $0x9, %edx
movq %r14, %rdi
leaq 0x4e08(%rip), %rsi      # 0x9e1e
callq 0x2190
movl $0x4, %edx
movq %r14, %rdi
movq %r13, %rsi
callq 0x2190
movq %r15, %rdi
leaq -0x2c(%rbp), %rsi
callq 0x20d0
movl -0x2c(%rbp), %eax
cmpl $0x1, %eax
je 0x51a9
cmpl $0x2, %eax
je 0x510d
testl %eax, %eax
je 0x5219
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
movq %rax, %r12
movl $0x7, %edx
movq %rax, %rdi
leaq 0x499b(%rip), %rsi      # 0x9a28
callq 0x2190
movl $0x19, %edx
movq %r12, %rdi
leaq 0x4b72(%rip), %rsi      # 0x9c13
callq 0x2190
movl $0x4, %edx
movq %r12, %rdi
movq %r13, %rsi
callq 0x2190
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
movq %r12, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
movq %r12, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
jmp 0x520f
movq %r15, %rdi
callq 0x2250
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
movq %rax, %r12
movl $0x7, %edx
movq %rax, %rdi
leaq 0x4aae(%rip), %rsi      # 0x9bfc
callq 0x2190
movl $0xe, %edx
movq %r12, %rdi
leaq 0x4aa2(%rip), %rsi      # 0x9c04
callq 0x2190
movl $0x4, %edx
movq %r12, %rdi
movq %r13, %rsi
callq 0x2190
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %edx
movq %r15, %rdi
leaq -0x70(%rbp), %rsi
callq 0x2260
movq (%rbx), %rax
movq %rbx, %rdi
leaq -0x70(%rbp), %rsi
callq *0x40(%rax)
jmp 0x520f
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2100
movq %rax, %r12
movl $0x16, %edx
movq %rax, %rdi
leaq 0x4a03(%rip), %rsi      # 0x9be5
callq 0x2190
movl $0x4, %edx
movq %r12, %rdi
movq %r13, %rsi
callq 0x2190
movq %r15, %rdi
leaq -0x30(%rbp), %rsi
callq 0x20d0
movl -0x30(%rbp), %esi
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x38(%rax)
cmpl $0x0, -0x2c(%rbp)
jne 0x4cc8
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0x522b
callq 0x2140
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x5253
movq %rax, %rbx
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x5256
callq 0x2140
jmp 0x5256
movq %rax, %rbx
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0x5268
callq 0x2140
movq %rbx, %rdi
callq 0x2230