// File: 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
subq $0x1b0, %rsp            # imm = 0x1B0
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq (%rdi), %rax
callq *0x10(%rax)
testb $0x1, %al
jne 0x930f
jmp 0x9363
movq 0x6cba(%rip), %rdi      # 0xffd0
movq 0x6ca3(%rip), %rsi      # 0xffc0
callq 0x31c0
movq %rax, %rdi
leaq 0x29d8(%rip), %rsi      # 0xbd04
callq 0x31a0
movq %rax, %rdi
leaq 0x2ddb(%rip), %rsi      # 0xc116
callq 0x31a0
movq %rax, %rdi
leaq 0x1ce4(%rip), %rsi      # 0xb02e
callq 0x31a0
movq %rax, %rdi
movq 0x6c67(%rip), %rsi      # 0xffc0
callq 0x31c0
jmp 0x9853
leaq -0x30(%rbp), %rdi
callq 0x3220
leaq -0x50(%rbp), %rdi
callq 0x3220
jmp 0x9377
leaq -0xd1(%rbp), %rdi
movq %rdi, -0x108(%rbp)
callq 0x32c0
movq -0x108(%rbp), %rdx
leaq 0x2ae1(%rip), %rsi      # 0xbe79
leaq -0xd0(%rbp), %rdi
callq 0x3210
jmp 0x93a6
leaq -0xf9(%rbp), %rdi
movq %rdi, -0x110(%rbp)
callq 0x32c0
movq -0x110(%rbp), %rdx
leaq 0x2ab2(%rip), %rsi      # 0xbe79
leaq -0xf8(%rbp), %rdi
callq 0x3210
jmp 0x93d5
leaq -0xb0(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
leaq -0xf8(%rbp), %rdx
xorps %xmm1, %xmm1
movaps %xmm1, %xmm0
callq 0x53c0
jmp 0x93f7
leaq -0xf8(%rbp), %rdi
callq 0x3120
jmp 0x9405
leaq -0xf9(%rbp), %rdi
callq 0x31d0
leaq -0xd0(%rbp), %rdi
callq 0x3120
jmp 0x941f
leaq -0xd1(%rbp), %rdi
callq 0x31d0
movq 0x6b9e(%rip), %rdi      # 0xffd0
leaq 0x30f0(%rip), %rsi      # 0xc529
callq 0x31a0
movq %rax, -0x118(%rbp)
jmp 0x9447
movq -0x118(%rbp), %rdi
leaq 0x2d77(%rip), %rsi      # 0xc1cc
callq 0x31a0
movq %rax, -0x120(%rbp)
jmp 0x9463
movq -0x120(%rbp), %rdi
leaq 0x1bbd(%rip), %rsi      # 0xb02e
callq 0x31a0
jmp 0x9478
movq 0x6b61(%rip), %rdi      # 0xffe0
leaq -0x30(%rbp), %rsi
callq 0x3070
jmp 0x948a
movq 0x6b3f(%rip), %rdi      # 0xffd0
leaq 0x3091(%rip), %rsi      # 0xc529
callq 0x31a0
movq %rax, -0x128(%rbp)
jmp 0x94a6
movq -0x128(%rbp), %rdi
leaq 0x2e02(%rip), %rsi      # 0xc2b6
callq 0x31a0
movq %rax, -0x130(%rbp)
jmp 0x94c2
movq -0x130(%rbp), %rdi
leaq 0x1b5e(%rip), %rsi      # 0xb02e
callq 0x31a0
jmp 0x94d7
movq 0x6b02(%rip), %rdi      # 0xffe0
leaq -0x50(%rbp), %rsi
callq 0x3070
jmp 0x94e9
movq -0x8(%rbp), %rdi
movq (%rdi), %rax
movq 0x20(%rax), %rax
leaq -0x30(%rbp), %rsi
leaq -0x50(%rbp), %rdx
callq *%rax
movb %al, -0x131(%rbp)
jmp 0x9506
movb -0x131(%rbp), %al
andb $0x1, %al
movb %al, -0x9(%rbp)
movb -0x9(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x971b
movq -0x8(%rbp), %rdi
movq (%rdi), %rax
movq 0x50(%rax), %rax
leaq -0x30(%rbp), %rsi
leaq -0x50(%rbp), %rdx
callq *%rax
jmp 0x9539
movq -0x8(%rbp), %rdi
movq (%rdi), %rax
movq 0x20(%rax), %rax
leaq -0x30(%rbp), %rsi
leaq -0x50(%rbp), %rdx
callq *%rax
movb %al, -0x132(%rbp)
jmp 0x9556
movb -0x132(%rbp), %al
andb $0x1, %al
movb %al, -0x9(%rbp)
movb -0x9(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x968f
movq 0x6a57(%rip), %rdi      # 0xffd0
movq 0x6a40(%rip), %rsi      # 0xffc0
callq 0x31c0
movq %rax, -0x140(%rbp)
jmp 0x958e
movq -0x140(%rbp), %rdi
leaq 0x2768(%rip), %rsi      # 0xbd04
callq 0x31a0
movq %rax, -0x148(%rbp)
jmp 0x95aa
movq -0x148(%rbp), %rdi
leaq 0x2f79(%rip), %rsi      # 0xc531
callq 0x31a0
movq %rax, -0x150(%rbp)
jmp 0x95c6
movq -0x150(%rbp), %rdi
leaq 0x1a5a(%rip), %rsi      # 0xb02e
callq 0x31a0
movq %rax, -0x158(%rbp)
jmp 0x95e2
movq -0x158(%rbp), %rdi
movq 0x69d0(%rip), %rsi      # 0xffc0
callq 0x31c0
jmp 0x95f7
jmp 0x9716
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x9846
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x9661
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x9645
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xf8(%rbp), %rdi
callq 0x3120
jmp 0x9643
jmp 0x9645
leaq -0xf9(%rbp), %rdi
callq 0x31d0
leaq -0xd0(%rbp), %rdi
callq 0x3120
jmp 0x965f
jmp 0x9661
leaq -0xd1(%rbp), %rdi
callq 0x31d0
jmp 0x9839
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0x4fd0
jmp 0x9837
movq 0x693a(%rip), %rdi      # 0xffd0
movq 0x6923(%rip), %rsi      # 0xffc0
callq 0x31c0
movq %rax, -0x160(%rbp)
jmp 0x96ab
movq -0x160(%rbp), %rdi
leaq 0x29ea(%rip), %rsi      # 0xc0a3
callq 0x31a0
movq %rax, -0x168(%rbp)
jmp 0x96c7
movq -0x168(%rbp), %rdi
leaq 0x2e8a(%rip), %rsi      # 0xc55f
callq 0x31a0
movq %rax, -0x170(%rbp)
jmp 0x96e3
movq -0x170(%rbp), %rdi
leaq 0x193d(%rip), %rsi      # 0xb02e
callq 0x31a0
movq %rax, -0x178(%rbp)
jmp 0x96ff
movq -0x178(%rbp), %rdi
movq 0x68b3(%rip), %rsi      # 0xffc0
callq 0x31c0
jmp 0x9714
jmp 0x9716
jmp 0x9805
movq 0x68ae(%rip), %rdi      # 0xffd0
movq 0x6897(%rip), %rsi      # 0xffc0
callq 0x31c0
movq %rax, -0x180(%rbp)
jmp 0x9737
movq -0x180(%rbp), %rdi
leaq 0x25bf(%rip), %rsi      # 0xbd04
callq 0x31a0
movq %rax, -0x188(%rbp)
jmp 0x9753
movq -0x188(%rbp), %rdi
leaq 0x2d95(%rip), %rsi      # 0xc4f6
callq 0x31a0
movq %rax, -0x190(%rbp)
jmp 0x976f
movq -0x190(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x3180
movq %rax, -0x198(%rbp)
jmp 0x9788
movq -0x198(%rbp), %rdi
leaq 0x26e2(%rip), %rsi      # 0xbe78
callq 0x31a0
movq %rax, -0x1a0(%rbp)
jmp 0x97a4
movq -0x1a0(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x3180
movq %rax, -0x1a8(%rbp)
jmp 0x97bd
movq -0x1a8(%rbp), %rdi
leaq 0x26ad(%rip), %rsi      # 0xbe78
callq 0x31a0
jmp 0x97d2
movq 0x67f7(%rip), %rdi      # 0xffd0
leaq 0x2d2c(%rip), %rsi      # 0xc50c
callq 0x31a0
movq %rax, -0x1b0(%rbp)
jmp 0x97ee
movq -0x1b0(%rbp), %rdi
leaq 0x1832(%rip), %rsi      # 0xb02e
callq 0x31a0
jmp 0x9803
jmp 0x9805
leaq -0xb0(%rbp), %rdi
callq 0x4fd0
jmp 0x9813
leaq -0x50(%rbp), %rdi
callq 0x3120
jmp 0x981e
leaq -0x30(%rbp), %rdi
callq 0x3120
jmp 0x9853
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x9839
jmp 0x9839
leaq -0x50(%rbp), %rdi
callq 0x3120
jmp 0x9844
jmp 0x9846
leaq -0x30(%rbp), %rdi
callq 0x3120
jmp 0x9851
jmp 0x985c
addq $0x1b0, %rsp            # imm = 0x1B0
popq %rbp
retq
movq -0x58(%rbp), %rdi
callq 0x32b0
movq %rax, %rdi
callq 0x5040
nopl (%rax)