// File: /workspace/github_cpp_makefile_star2_O3/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 -0x60(%rbp), %rax
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
movq 0x6c22(%rip), %r14      # 0xbfd0
leaq 0x2c71(%rip), %r13      # 0x8026
movq 0x6c24(%rip), %r12      # 0xbfe0
movl $0x7, %edx
movq %r14, %rdi
leaq 0x2cba(%rip), %rsi      # 0x8085
callq 0x2180
movl $0x20, %edx
movq %r14, %rdi
leaq 0x3c73(%rip), %rsi      # 0x9052
callq 0x2180
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movl $0x8, %edx
movq %r14, %rdi
leaq 0x3c59(%rip), %rsi      # 0x9073
callq 0x2180
movq (%rbx), %rax
movq %rbx, %rdi
callq *(%rax)
movq %r14, %rdi
movl %eax, %esi
callq 0x2210
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq %r15, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movl $0x8, %edx
movq %r14, %rdi
leaq 0x3c12(%rip), %rsi      # 0x907c
callq 0x2180
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 0x2180
movq %rax, %r15
movl $0x4, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x2180
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq %r15, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq %r15, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x5502
callq 0x2130
movl $0x7, %edx
movq %r14, %rdi
leaq 0x3b74(%rip), %rsi      # 0x9085
callq 0x2180
movl $0x21, %edx
movq %r14, %rdi
leaq 0x3b68(%rip), %rsi      # 0x908d
callq 0x2180
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movl $0xa, %edx
movq %r14, %rdi
leaq 0x3b4f(%rip), %rsi      # 0x90af
callq 0x2180
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movl $0xa, %edx
movq %r14, %rdi
leaq 0x3b1f(%rip), %rsi      # 0x90ba
callq 0x2180
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movl $0x9, %edx
movq %r14, %rdi
leaq 0x3aef(%rip), %rsi      # 0x90c5
callq 0x2180
movl $0x4, %edx
movq %r14, %rdi
movq %r13, %rsi
callq 0x2180
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movq %r12, %rdi
leaq -0x2c(%rbp), %rsi
callq 0x20c0
movl -0x2c(%rbp), %eax
cmpl $0x1, %eax
je 0x57a8
cmpl $0x2, %eax
je 0x56e0
testl %eax, %eax
je 0x587e
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movq %rax, %r15
movl $0x8, %edx
movq %rax, %rdi
leaq 0x357e(%rip), %rsi      # 0x8bf2
callq 0x2180
movl $0x18, %edx
movq %r15, %rdi
leaq 0x3a71(%rip), %rsi      # 0x90f9
callq 0x2180
movl $0x4, %edx
movq %r15, %rdi
movq %r13, %rsi
callq 0x2180
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq %r15, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x2140
jmp 0x5861
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movq %rax, %r15
movl $0x7, %edx
movq %rax, %rdi
leaq 0x39b6(%rip), %rsi      # 0x90cf
callq 0x2180
movl $0xc, %edx
movq %r15, %rdi
leaq 0x39bf(%rip), %rsi      # 0x90ec
callq 0x2180
movl $0x7, %edx
movq %r15, %rdi
leaq 0x39a3(%rip), %rsi      # 0x90e4
callq 0x2180
movl $0x2, %edx
movq %r15, %rdi
leaq 0x37fb(%rip), %rsi      # 0x8f50
callq 0x2180
movl $0x4, %edx
movq %r15, %rdi
movq %r13, %rsi
callq 0x2180
movq %r12, %rdi
callq 0x2240
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %edx
movq %r12, %rdi
leaq -0x70(%rbp), %rsi
callq 0x2250
movq (%rbx), %rax
movq %rbx, %rdi
leaq -0x70(%rbp), %rsi
callq *0x40(%rax)
jmp 0x584a
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movq %rax, %r15
movl $0x7, %edx
movq %rax, %rdi
leaq 0x38ee(%rip), %rsi      # 0x90cf
callq 0x2180
movl $0xc, %edx
movq %r15, %rdi
leaq 0x38e2(%rip), %rsi      # 0x90d7
callq 0x2180
movl $0x7, %edx
movq %r15, %rdi
leaq 0x38db(%rip), %rsi      # 0x90e4
callq 0x2180
movl $0x2, %edx
movq %r15, %rdi
leaq 0x3733(%rip), %rsi      # 0x8f50
callq 0x2180
movl $0x4, %edx
movq %r15, %rdi
movq %r13, %rsi
callq 0x2180
movq %r12, %rdi
leaq -0x30(%rbp), %rsi
callq 0x20c0
movl -0x30(%rbp), %esi
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x38(%rax)
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2140
movq %r14, %r15
movsbl %al, %esi
movq %r15, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
cmpl $0x0, -0x2c(%rbp)
jne 0x53bc
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0x5890
callq 0x2130
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x58b8
movq %rax, %rbx
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x58bb
callq 0x2130
jmp 0x58bb
movq %rax, %rbx
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0x58cd
callq 0x2130
movq %rbx, %rdi
callq 0x2220