// File: 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
subq $0x160, %rsp            # imm = 0x160
movq %rdi, -0x8(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x3220
movq 0x8c01(%rip), %rdi      # 0xffd0
leaq 0x3cb7(%rip), %rsi      # 0xb08d
callq 0x31a0
movq %rax, -0x70(%rbp)
jmp 0x73e1
movq -0x70(%rbp), %rdi
leaq 0x4db6(%rip), %rsi      # 0xc1a2
callq 0x31a0
movq %rax, -0x78(%rbp)
jmp 0x73f7
movq -0x78(%rbp), %rdi
movq 0x8bbe(%rip), %rsi      # 0xffc0
callq 0x31c0
jmp 0x7409
movq 0x8bc0(%rip), %rdi      # 0xffd0
leaq 0x4dac(%rip), %rsi      # 0xc1c3
callq 0x31a0
movq %rax, -0x80(%rbp)
jmp 0x7422
movq -0x8(%rbp), %rdi
movq (%rdi), %rax
movq (%rax), %rax
callq *%rax
movl %eax, -0x84(%rbp)
jmp 0x7436
movl -0x84(%rbp), %esi
movq -0x80(%rbp), %rdi
callq 0x32a0
movq %rax, -0x90(%rbp)
jmp 0x744e
movq -0x90(%rbp), %rdi
movq 0x8b64(%rip), %rsi      # 0xffc0
callq 0x31c0
jmp 0x7463
movq 0x8b66(%rip), %rdi      # 0xffd0
leaq 0x4d5b(%rip), %rsi      # 0xc1cc
callq 0x31a0
movq %rax, -0x98(%rbp)
jmp 0x747f
movq -0x8(%rbp), %rsi
movq (%rsi), %rax
movq 0x8(%rax), %rax
leaq -0x68(%rbp), %rdi
callq *%rax
jmp 0x7492
movq -0x98(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x3180
movq %rax, -0xa0(%rbp)
jmp 0x74ab
movq -0xa0(%rbp), %rdi
leaq 0x3b75(%rip), %rsi      # 0xb02e
callq 0x31a0
movq %rax, -0xa8(%rbp)
jmp 0x74c7
movq -0xa8(%rbp), %rdi
movq 0x8aeb(%rip), %rsi      # 0xffc0
callq 0x31c0
movq %rax, -0xb0(%rbp)
jmp 0x74e3
movq -0xb0(%rbp), %rdi
movq 0x8acf(%rip), %rsi      # 0xffc0
callq 0x31c0
jmp 0x74f8
leaq -0x68(%rbp), %rdi
callq 0x3120
jmp 0x7503
movq 0x8ac6(%rip), %rdi      # 0xffd0
leaq 0x4cc4(%rip), %rsi      # 0xc1d5
callq 0x31a0
movq %rax, -0xb8(%rbp)
jmp 0x751f
movq -0xb8(%rbp), %rdi
leaq 0x4cb0(%rip), %rsi      # 0xc1dd
callq 0x31a0
movq %rax, -0xc0(%rbp)
jmp 0x753b
movq -0xc0(%rbp), %rdi
movq 0x8a77(%rip), %rsi      # 0xffc0
callq 0x31c0
jmp 0x7550
movq 0x8a79(%rip), %rdi      # 0xffd0
leaq 0x4ca1(%rip), %rsi      # 0xc1ff
callq 0x31a0
movq %rax, -0xc8(%rbp)
jmp 0x756c
movq -0xc8(%rbp), %rdi
movq 0x8a46(%rip), %rsi      # 0xffc0
callq 0x31c0
jmp 0x7581
movq 0x8a48(%rip), %rdi      # 0xffd0
leaq 0x4c7b(%rip), %rsi      # 0xc20a
callq 0x31a0
movq %rax, -0xd0(%rbp)
jmp 0x759d
movq -0xd0(%rbp), %rdi
movq 0x8a15(%rip), %rsi      # 0xffc0
callq 0x31c0
jmp 0x75b2
movq 0x8a17(%rip), %rdi      # 0xffd0
leaq 0x4c55(%rip), %rsi      # 0xc215
callq 0x31a0
movq %rax, -0xd8(%rbp)
jmp 0x75ce
movq -0xd8(%rbp), %rdi
leaq 0x3a52(%rip), %rsi      # 0xb02e
callq 0x31a0
movq %rax, -0xe0(%rbp)
jmp 0x75ea
movq -0xe0(%rbp), %rdi
movq 0x89c8(%rip), %rsi      # 0xffc0
callq 0x31c0
jmp 0x75ff
movq 0x89da(%rip), %rdi      # 0xffe0
leaq -0x34(%rbp), %rsi
callq 0x3110
jmp 0x7611
movl -0x34(%rbp), %eax
movl %eax, -0xe4(%rbp)
testl %eax, %eax
je 0x766e
jmp 0x7620
movl -0xe4(%rbp), %eax
subl $0x1, %eax
je 0x7673
jmp 0x762d
movl -0xe4(%rbp), %eax
subl $0x2, %eax
je 0x7752
jmp 0x7840
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x7901
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x3120
jmp 0x7669
jmp 0x7901
jmp 0x78e3
movq 0x8956(%rip), %rdi      # 0xffd0
movq 0x893f(%rip), %rsi      # 0xffc0
callq 0x31c0
movq %rax, -0xf0(%rbp)
jmp 0x768f
movq -0xf0(%rbp), %rdi
leaq 0x4b82(%rip), %rsi      # 0xc21f
callq 0x31a0
movq %rax, -0xf8(%rbp)
jmp 0x76ab
movq -0xf8(%rbp), %rdi
leaq 0x4b6e(%rip), %rsi      # 0xc227
callq 0x31a0
movq %rax, -0x100(%rbp)
jmp 0x76c7
movq -0x100(%rbp), %rdi
leaq 0x4b5f(%rip), %rsi      # 0xc234
callq 0x31a0
movq %rax, -0x108(%rbp)
jmp 0x76e3
movq -0x108(%rbp), %rdi
leaq 0x49af(%rip), %rsi      # 0xc0a0
callq 0x31a0
movq %rax, -0x110(%rbp)
jmp 0x76ff
movq -0x110(%rbp), %rdi
leaq 0x3921(%rip), %rsi      # 0xb02e
callq 0x31a0
jmp 0x7714
movq 0x88c5(%rip), %rdi      # 0xffe0
leaq -0xc(%rbp), %rsi
callq 0x3110
jmp 0x7726
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movq (%rdi), %rax
movq 0x38(%rax), %rax
callq *%rax
jmp 0x7738
movq 0x8891(%rip), %rdi      # 0xffd0
movq 0x887a(%rip), %rsi      # 0xffc0
callq 0x31c0
jmp 0x774d
jmp 0x78e3
movq 0x8877(%rip), %rdi      # 0xffd0
movq 0x8860(%rip), %rsi      # 0xffc0
callq 0x31c0
movq %rax, -0x118(%rbp)
jmp 0x776e
movq -0x118(%rbp), %rdi
leaq 0x4aa3(%rip), %rsi      # 0xc21f
callq 0x31a0
movq %rax, -0x120(%rbp)
jmp 0x778a
movq -0x120(%rbp), %rdi
leaq 0x4aa4(%rip), %rsi      # 0xc23c
callq 0x31a0
movq %rax, -0x128(%rbp)
jmp 0x77a6
movq -0x128(%rbp), %rdi
leaq 0x4a80(%rip), %rsi      # 0xc234
callq 0x31a0
movq %rax, -0x130(%rbp)
jmp 0x77c2
movq -0x130(%rbp), %rdi
leaq 0x48d0(%rip), %rsi      # 0xc0a0
callq 0x31a0
movq %rax, -0x138(%rbp)
jmp 0x77de
movq -0x138(%rbp), %rdi
leaq 0x3842(%rip), %rsi      # 0xb02e
callq 0x31a0
jmp 0x77f3
movq 0x87e6(%rip), %rdi      # 0xffe0
callq 0x32d0
jmp 0x7801
movq 0x87d8(%rip), %rdi      # 0xffe0
leaq -0x30(%rbp), %rsi
callq 0x3070
jmp 0x7813
movq -0x8(%rbp), %rdi
movq (%rdi), %rax
movq 0x40(%rax), %rax
leaq -0x30(%rbp), %rsi
callq *%rax
jmp 0x7826
movq 0x87a3(%rip), %rdi      # 0xffd0
movq 0x878c(%rip), %rsi      # 0xffc0
callq 0x31c0
jmp 0x783b
jmp 0x78e3
movq 0x8789(%rip), %rdi      # 0xffd0
movq 0x8772(%rip), %rsi      # 0xffc0
callq 0x31c0
movq %rax, -0x140(%rbp)
jmp 0x785c
movq -0x140(%rbp), %rdi
leaq 0x449a(%rip), %rsi      # 0xbd04
callq 0x31a0
movq %rax, -0x148(%rbp)
jmp 0x7878
movq -0x148(%rbp), %rdi
leaq 0x49c3(%rip), %rsi      # 0xc249
callq 0x31a0
movq %rax, -0x150(%rbp)
jmp 0x7894
movq -0x150(%rbp), %rdi
leaq 0x378c(%rip), %rsi      # 0xb02e
callq 0x31a0
movq %rax, -0x158(%rbp)
jmp 0x78b0
movq -0x158(%rbp), %rdi
movq 0x8702(%rip), %rsi      # 0xffc0
callq 0x31c0
movq %rax, -0x160(%rbp)
jmp 0x78cc
movq -0x160(%rbp), %rdi
movq 0x86e6(%rip), %rsi      # 0xffc0
callq 0x31c0
jmp 0x78e1
jmp 0x78e3
jmp 0x78e5
cmpl $0x0, -0x34(%rbp)
jne 0x73c8
leaq -0x30(%rbp), %rdi
callq 0x3120
addq $0x160, %rsp            # imm = 0x160
popq %rbp
retq
leaq -0x30(%rbp), %rdi
callq 0x3120
jmp 0x790c
jmp 0x790e
movq -0x40(%rbp), %rdi
callq 0x32b0
movq %rax, %rdi
callq 0x5040
nop