// File: 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
subq $0x190, %rsp            # imm = 0x190
movq %rdi, -0x8(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x2220
movq 0x9041(%rip), %rdi      # 0xefd0
movq 0x902a(%rip), %rsi      # 0xefc0
callq 0x21c0
movq %rax, -0x68(%rbp)
jmp 0x5fa1
movq -0x68(%rbp), %rdi
leaq 0x4dc4(%rip), %rsi      # 0xad70
callq 0x21a0
movq %rax, -0x70(%rbp)
jmp 0x5fb7
movq -0x70(%rbp), %rdi
leaq 0x4db6(%rip), %rsi      # 0xad78
callq 0x21a0
movq %rax, -0x78(%rbp)
jmp 0x5fcd
movq -0x78(%rbp), %rdi
leaq 0x4fe3(%rip), %rsi      # 0xafbb
callq 0x21a0
movq %rax, -0x80(%rbp)
jmp 0x5fe3
movq -0x80(%rbp), %rdi
movq 0x8fd2(%rip), %rsi      # 0xefc0
callq 0x21c0
jmp 0x5ff5
movq 0x8fd4(%rip), %rdi      # 0xefd0
leaq 0x4085(%rip), %rsi      # 0xa088
callq 0x21a0
movq %rax, -0x88(%rbp)
jmp 0x6011
movq -0x88(%rbp), %rdi
leaq 0x4d7b(%rip), %rsi      # 0xad9a
callq 0x21a0
movq %rax, -0x90(%rbp)
jmp 0x602d
movq -0x90(%rbp), %rdi
leaq 0x405e(%rip), %rsi      # 0xa099
callq 0x21a0
movq %rax, -0x98(%rbp)
jmp 0x6049
movq -0x8(%rbp), %rdi
movq (%rdi), %rax
movq (%rax), %rax
callq *%rax
movl %eax, -0x9c(%rbp)
jmp 0x605d
movl -0x9c(%rbp), %esi
movq -0x98(%rbp), %rdi
callq 0x22a0
movq %rax, -0xa8(%rbp)
jmp 0x6078
movq -0xa8(%rbp), %rdi
leaq 0x4f35(%rip), %rsi      # 0xafbb
callq 0x21a0
movq %rax, -0xb0(%rbp)
jmp 0x6094
movq -0xb0(%rbp), %rdi
movq 0x8f1e(%rip), %rsi      # 0xefc0
callq 0x21c0
jmp 0x60a9
movq 0x8f20(%rip), %rdi      # 0xefd0
leaq 0x3fd1(%rip), %rsi      # 0xa088
callq 0x21a0
movq %rax, -0xb8(%rbp)
jmp 0x60c5
movq -0xb8(%rbp), %rdi
leaq 0x3fbd(%rip), %rsi      # 0xa090
callq 0x21a0
movq %rax, -0xc0(%rbp)
jmp 0x60e1
movq -0xc0(%rbp), %rdi
leaq 0x3faa(%rip), %rsi      # 0xa099
callq 0x21a0
movq %rax, -0xc8(%rbp)
jmp 0x60fd
movq -0x8(%rbp), %rsi
movq (%rsi), %rax
movq 0x8(%rax), %rax
leaq -0x60(%rbp), %rdi
callq *%rax
jmp 0x6110
movq -0xc8(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x2180
movq %rax, -0xd0(%rbp)
jmp 0x6129
movq -0xd0(%rbp), %rdi
leaq 0x4e84(%rip), %rsi      # 0xafbb
callq 0x21a0
movq %rax, -0xd8(%rbp)
jmp 0x6145
movq -0xd8(%rbp), %rdi
movq 0x8e6d(%rip), %rsi      # 0xefc0
callq 0x21c0
movq %rax, -0xe0(%rbp)
jmp 0x6161
movq -0xe0(%rbp), %rdi
movq 0x8e51(%rip), %rsi      # 0xefc0
callq 0x21c0
jmp 0x6176
leaq -0x60(%rbp), %rdi
callq 0x2120
jmp 0x6181
movq 0x8e48(%rip), %rdi      # 0xefd0
leaq 0x4c15(%rip), %rsi      # 0xada4
callq 0x21a0
movq %rax, -0xe8(%rbp)
jmp 0x619d
movq -0xe8(%rbp), %rdi
leaq 0x4c01(%rip), %rsi      # 0xadac
callq 0x21a0
movq %rax, -0xf0(%rbp)
jmp 0x61b9
movq -0xf0(%rbp), %rdi
leaq 0x4df4(%rip), %rsi      # 0xafbb
callq 0x21a0
movq %rax, -0xf8(%rbp)
jmp 0x61d5
movq -0xf8(%rbp), %rdi
movq 0x8ddd(%rip), %rsi      # 0xefc0
callq 0x21c0
jmp 0x61ea
movq 0x8ddf(%rip), %rdi      # 0xefd0
leaq 0x4836(%rip), %rsi      # 0xaa2e
callq 0x21a0
movq %rax, -0x100(%rbp)
jmp 0x6206
movq -0x100(%rbp), %rdi
leaq 0x4bbc(%rip), %rsi      # 0xadd0
callq 0x21a0
movq %rax, -0x108(%rbp)
jmp 0x6222
movq -0x108(%rbp), %rdi
movq 0x8d90(%rip), %rsi      # 0xefc0
callq 0x21c0
jmp 0x6237
movq 0x8d92(%rip), %rdi      # 0xefd0
leaq 0x4b97(%rip), %rsi      # 0xaddc
callq 0x21a0
movq %rax, -0x110(%rbp)
jmp 0x6253
movq -0x110(%rbp), %rdi
movq 0x8d5f(%rip), %rsi      # 0xefc0
callq 0x21c0
jmp 0x6268
movq 0x8d61(%rip), %rdi      # 0xefd0
leaq 0x4944(%rip), %rsi      # 0xabba
callq 0x21a0
movq %rax, -0x118(%rbp)
jmp 0x6284
movq -0x118(%rbp), %rdi
leaq 0x4b55(%rip), %rsi      # 0xade7
callq 0x21a0
movq %rax, -0x120(%rbp)
jmp 0x62a0
movq -0x120(%rbp), %rdi
leaq 0x4d0d(%rip), %rsi      # 0xafbb
callq 0x21a0
movq %rax, -0x128(%rbp)
jmp 0x62bc
movq -0x128(%rbp), %rdi
movq 0x8cf6(%rip), %rsi      # 0xefc0
callq 0x21c0
jmp 0x62d1
movq 0x8cf8(%rip), %rdi      # 0xefd0
leaq 0x3d31(%rip), %rsi      # 0xa010
callq 0x21a0
movq %rax, -0x130(%rbp)
jmp 0x62ed
movq -0x130(%rbp), %rdi
leaq 0x4d2f(%rip), %rsi      # 0xb02a
callq 0x21a0
movq %rax, -0x138(%rbp)
jmp 0x6309
movq -0x138(%rbp), %rdi
leaq 0x4ca4(%rip), %rsi      # 0xafbb
callq 0x21a0
jmp 0x631e
movq 0x8cbb(%rip), %rdi      # 0xefe0
leaq -0xc(%rbp), %rsi
callq 0x2110
jmp 0x6330
movl -0xc(%rbp), %eax
movl %eax, -0x13c(%rbp)
testl %eax, %eax
je 0x638d
jmp 0x633f
movl -0x13c(%rbp), %eax
subl $0x1, %eax
je 0x6392
jmp 0x634c
movl -0x13c(%rbp), %eax
subl $0x2, %eax
je 0x6408
jmp 0x64a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x656a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x2120
jmp 0x6388
jmp 0x656a
jmp 0x654c
movq 0x8c37(%rip), %rdi      # 0xefd0
movq 0x8c20(%rip), %rsi      # 0xefc0
callq 0x21c0
movq %rax, -0x148(%rbp)
jmp 0x63ae
movq -0x148(%rbp), %rdi
leaq 0x4a35(%rip), %rsi      # 0xadf1
callq 0x21a0
movq %rax, -0x150(%rbp)
jmp 0x63ca
movq -0x150(%rbp), %rdi
leaq 0x4be3(%rip), %rsi      # 0xafbb
callq 0x21a0
jmp 0x63df
movq 0x8bfa(%rip), %rdi      # 0xefe0
leaq -0x10(%rbp), %rsi
callq 0x2110
jmp 0x63f1
movq -0x8(%rbp), %rdi
movl -0x10(%rbp), %esi
movq (%rdi), %rax
movq 0x38(%rax), %rax
callq *%rax
jmp 0x6403
jmp 0x654c
movq 0x8bd1(%rip), %rdi      # 0xefe0
callq 0x22d0
jmp 0x6416
movq 0x8bb3(%rip), %rdi      # 0xefd0
movq 0x8b9c(%rip), %rsi      # 0xefc0
callq 0x21c0
movq %rax, -0x158(%rbp)
jmp 0x6432
movq -0x158(%rbp), %rdi
leaq 0x49c8(%rip), %rsi      # 0xae08
callq 0x21a0
movq %rax, -0x160(%rbp)
jmp 0x644e
movq -0x160(%rbp), %rdi
leaq 0x49b4(%rip), %rsi      # 0xae10
callq 0x21a0
movq %rax, -0x168(%rbp)
jmp 0x646a
movq -0x168(%rbp), %rdi
leaq 0x4b43(%rip), %rsi      # 0xafbb
callq 0x21a0
jmp 0x647f
movq 0x8b5a(%rip), %rdi      # 0xefe0
leaq -0x30(%rbp), %rsi
callq 0x2070
jmp 0x6491
movq -0x8(%rbp), %rdi
movq (%rdi), %rax
movq 0x40(%rax), %rax
leaq -0x30(%rbp), %rsi
callq *%rax
jmp 0x64a4
jmp 0x654c
movq 0x8b20(%rip), %rdi      # 0xefd0
movq 0x8b09(%rip), %rsi      # 0xefc0
callq 0x21c0
movq %rax, -0x170(%rbp)
jmp 0x64c5
movq -0x170(%rbp), %rdi
leaq 0x4761(%rip), %rsi      # 0xac34
callq 0x21a0
movq %rax, -0x178(%rbp)
jmp 0x64e1
movq -0x178(%rbp), %rdi
leaq 0x4930(%rip), %rsi      # 0xae1f
callq 0x21a0
movq %rax, -0x180(%rbp)
jmp 0x64fd
movq -0x180(%rbp), %rdi
leaq 0x4ab0(%rip), %rsi      # 0xafbb
callq 0x21a0
movq %rax, -0x188(%rbp)
jmp 0x6519
movq -0x188(%rbp), %rdi
movq 0x8a99(%rip), %rsi      # 0xefc0
callq 0x21c0
movq %rax, -0x190(%rbp)
jmp 0x6535
movq -0x190(%rbp), %rdi
movq 0x8a7d(%rip), %rsi      # 0xefc0
callq 0x21c0
jmp 0x654a
jmp 0x654c
jmp 0x654e
cmpl $0x0, -0xc(%rbp)
jne 0x5f88
leaq -0x30(%rbp), %rdi
callq 0x2120
addq $0x190, %rsp            # imm = 0x190
popq %rbp
retq
leaq -0x30(%rbp), %rdi
callq 0x2120
jmp 0x6575
jmp 0x6577
movq -0x38(%rbp), %rdi
callq 0x22b0
movq %rax, %rdi
callq 0x45c0
nopl (%rax,%rax)