// File: /workspace/github_cpp_makefile_star2_O2/DaCasBe[P]Gestion-de-asignaturas-mediante-listas-doblemente-enlazadas-ordenadas/funcionesAuxiliares.cpp
// Function: ed::borrarEstudianteDeAsignatura(ed::Asignatura&)
void ed::borrarEstudianteDeAsignatura(ed::Asignatura &asignatura){
	if(asignatura.estaVacia()){ //La asignatura esta vacia
		std::cout << std::endl << ONIRED << "Error: no hay ningun estudiante cargado" << RESET << std::endl;
	}
	
	else{ //La asignatura no esta vacia
		bool control;
		std::string nombre, apellidos;
		ed::Estudiante estudiante;

		//Pedimos al usuario la informacion del estudiante a borrar
		std::cout << IRED << "Nombre: " << RESET;
		std::getline(std::cin,nombre);

		std::cout << IRED << "Apellidos: " << RESET;
		std::getline(std::cin,apellidos);

		control = asignatura.existeEstudiante(nombre,apellidos);

		if (control == true){ //Existe el estudiante
			asignatura.borrarEstudiante(nombre,apellidos); //Borramos el estudiante

			control = asignatura.existeEstudiante(nombre,apellidos);	

			if (control == true){ //El estudiante sigue existiendo
				std::cout << std::endl << ONIRED << "Error: el estudiante no ha podido ser borrado" << RESET << std::endl;
			}

			else{ //El estudiante se ha borrado correctamente
				std::cout << std::endl << ICYAN << "Estudiante borrado correctamente" << RESET << std::endl;
			}
		}
	
		else{ //No existe el estudiante
			std::cout << std::endl << ONIRED << "Error: el estudiante "<< nombre << " " << apellidos << " ";
			std::cout << "no pertenece a la asignatura" << RESET;
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
subq $0xd8, %rsp
movq %rdi, %rbx
movq (%rdi), %rax
callq *0x10(%rax)
testb %al, %al
je 0x575d
movq 0x48b6(%rip), %rdi      # 0x9fd0
callq 0x20d0
leaq 0x14a2(%rip), %rsi      # 0x6bc8
movq %rax, %rdi
callq 0x2160
leaq 0x1869(%rip), %rsi      # 0x6f9e
movq %rax, %rdi
callq 0x2160
leaq 0x8e2(%rip), %rsi       # 0x6026
movq %rax, %rdi
callq 0x2160
movq %rax, %rdi
addq $0xd8, %rsp
popq %rbx
popq %rbp
jmp 0x20d0
leaq -0x40(%rbp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
xorl %ecx, %ecx
movb %cl, (%rax)
leaq -0x20(%rbp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb %cl, (%rax)
leaq 0x157d(%rip), %rsi      # 0x6d01
leaq -0x90(%rbp), %rdi
leaq -0xa(%rbp), %rdx
callq 0x20a0
leaq 0x1566(%rip), %rsi      # 0x6d01
leaq -0x70(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x20a0
leaq -0xe0(%rbp), %rdi
leaq -0x90(%rbp), %rsi
leaq -0x70(%rbp), %rdx
xorps %xmm0, %xmm0
xorps %xmm1, %xmm1
callq 0x34aa
leaq -0x70(%rbp), %rdi
callq 0x2190
leaq -0x90(%rbp), %rdi
callq 0x2190
movq 0x47ef(%rip), %rdi      # 0x9fd0
leaq 0x1bc9(%rip), %rsi      # 0x73b1
callq 0x2160
leaq 0x1860(%rip), %rsi      # 0x7054
movq %rax, %rdi
callq 0x2160
leaq 0x823(%rip), %rsi       # 0x6026
movq %rax, %rdi
callq 0x2160
movq 0x47ce(%rip), %rdi      # 0x9fe0
leaq -0x50(%rbp), %rsi
callq 0x2060
movq 0x47ae(%rip), %rdi      # 0x9fd0
leaq 0x1b88(%rip), %rsi      # 0x73b1
callq 0x2160
leaq 0x1909(%rip), %rsi      # 0x713e
movq %rax, %rdi
callq 0x2160
leaq 0x7e2(%rip), %rsi       # 0x6026
movq %rax, %rdi
callq 0x2160
movq 0x478d(%rip), %rdi      # 0x9fe0
leaq -0x30(%rbp), %rsi
callq 0x2060
movq (%rbx), %rax
leaq -0x50(%rbp), %rsi
leaq -0x30(%rbp), %rdx
movq %rbx, %rdi
callq *0x20(%rax)
testb %al, %al
je 0x58c2
movq (%rbx), %rax
leaq -0x50(%rbp), %rsi
leaq -0x30(%rbp), %rdx
movq %rbx, %rdi
callq *0x50(%rax)
movq (%rbx), %rax
leaq -0x50(%rbp), %rsi
leaq -0x30(%rbp), %rdx
movq %rbx, %rdi
callq *0x20(%rax)
testb %al, %al
je 0x5946
movq 0x472e(%rip), %rdi      # 0x9fd0
callq 0x20d0
leaq 0x131a(%rip), %rsi      # 0x6bc8
movq %rax, %rdi
callq 0x2160
leaq 0x1afc(%rip), %rsi      # 0x73b9
jmp 0x5968
movq 0x4707(%rip), %rdi      # 0x9fd0
callq 0x20d0
leaq 0x12f3(%rip), %rsi      # 0x6bc8
movq %rax, %rdi
callq 0x2160
leaq 0x1a9a(%rip), %rsi      # 0x737e
movq %rax, %rdi
callq 0x2160
leaq -0x50(%rbp), %rsi
movq %rax, %rdi
callq 0x2140
leaq 0x1401(%rip), %rsi      # 0x6d00
movq %rax, %rdi
callq 0x2160
leaq -0x30(%rbp), %rsi
movq %rax, %rdi
callq 0x2140
leaq 0x13e6(%rip), %rsi      # 0x6d00
movq %rax, %rdi
callq 0x2160
movq 0x46a7(%rip), %rdi      # 0x9fd0
leaq 0x1a64(%rip), %rsi      # 0x7394
callq 0x2160
leaq 0x6ea(%rip), %rsi       # 0x6026
movq %rax, %rdi
callq 0x2160
jmp 0x5987
movq 0x4683(%rip), %rdi      # 0x9fd0
callq 0x20d0
leaq 0x15d2(%rip), %rsi      # 0x6f2b
movq %rax, %rdi
callq 0x2160
leaq 0x1a7f(%rip), %rsi      # 0x73e7
movq %rax, %rdi
callq 0x2160
leaq 0x6af(%rip), %rsi       # 0x6026
movq %rax, %rdi
callq 0x2160
movq %rax, %rdi
callq 0x20d0
leaq -0xe0(%rbp), %rdi
callq 0x3322
leaq -0x30(%rbp), %rdi
callq 0x2190
leaq -0x50(%rbp), %rdi
callq 0x2190
addq $0xd8, %rsp
popq %rbx
popq %rbp
retq
movq %rax, %rbx
jmp 0x59f2
jmp 0x59c4
movq %rax, %rbx
leaq -0x70(%rbp), %rdi
callq 0x2190
jmp 0x59cc
movq %rax, %rbx
jmp 0x59e9
movq %rax, %rbx
leaq -0x90(%rbp), %rdi
callq 0x2190
jmp 0x59e9
movq %rax, %rbx
leaq -0xe0(%rbp), %rdi
callq 0x3322
leaq -0x30(%rbp), %rdi
callq 0x2190
leaq -0x50(%rbp), %rdi
callq 0x2190
movq %rbx, %rdi
callq 0x2230
movq %rax, %rdi
callq 0x336e
nop