// File: DaCasBe[P]Gestion-de-asignaturas-mediante-arboles-binarios-ordenados/funcionesAuxiliares.cpp
// Function: ed::borrarEstudianteDeAsignatura(ed::Asignatura&)
void ed::borrarEstudianteDeAsignatura(ed::Asignatura &asignatura){
	if(asignatura.estaVacia()){ //La asignatura está vacía
		std::cout << std::endl << BIRED << "Error: no hay ningún estudiante cargado" << RESET << std::endl;
	}
	
	else{ //La asignatura no está vacía
		bool control;
		std::string nombre;
		std::string apellidos;
		ed::Estudiante estudiante;

		//Pedimos al usuario el nombre y los apellidos del estudiante a borrar
		std::cout << BIYELLOW << "Introduzca el nombre y los apellidos del estudiante" << RESET << std::endl;
		std::cout << IYELLOW << "Nombre: " << RESET;
		std::getline(std::cin,nombre);
		std::cout << IYELLOW << "Apellidos: " << RESET;
		std::getline(std::cin,apellidos);

		control=asignatura.existeEstudiante(nombre,apellidos);	

		if(control){ //Existe el estudiante indicado por el usuario
			asignatura.borrarEstudiante(nombre,apellidos); //Borramos el estudiante indicado

			control=asignatura.existeEstudiante(nombre,apellidos);	

			if(control){ //No se ha borrado el estudiante indicado
				std::cout << std::endl << BIRED << "Error: el estudiante no ha podido ser borrado" << RESET << std::endl;
			}

			else{ //Se ha borrado el estudiante indicado
				std::cout << std::endl << CYAN << "El estudiante ha sido borrado correctamente" << RESET << std::endl;
			}
		}	

		else{ //No existe el estudiante indicado por el usuario
			std::cout << std::endl << BIRED "Error: el estudiante "<< nombre << " " << apellidos << " no pertenece a la asignatura" << RESET;
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1c0, %rsp            # imm = 0x1C0
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq (%rdi), %rax
callq *0x10(%rax)
testb $0x1, %al
jne 0x7e0f
jmp 0x7e63
movq 0x71ba(%rip), %rdi      # 0xefd0
movq 0x71a3(%rip), %rsi      # 0xefc0
callq 0x21c0
movq %rax, %rdi
leaq 0x2e08(%rip), %rsi      # 0xac34
callq 0x21a0
movq %rax, %rdi
leaq 0x2e4d(%rip), %rsi      # 0xac88
callq 0x21a0
movq %rax, %rdi
leaq 0x3171(%rip), %rsi      # 0xafbb
callq 0x21a0
movq %rax, %rdi
movq 0x7167(%rip), %rsi      # 0xefc0
callq 0x21c0
jmp 0x837d
leaq -0x30(%rbp), %rdi
callq 0x2220
leaq -0x50(%rbp), %rdi
callq 0x2220
jmp 0x7e77
leaq -0xd1(%rbp), %rdi
movq %rdi, -0x108(%rbp)
callq 0x22c0
movq -0x108(%rbp), %rdx
leaq 0x2b95(%rip), %rsi      # 0xaa2d
leaq -0xd0(%rbp), %rdi
callq 0x2210
jmp 0x7ea6
leaq -0xf9(%rbp), %rdi
movq %rdi, -0x110(%rbp)
callq 0x22c0
movq -0x110(%rbp), %rdx
leaq 0x2b66(%rip), %rsi      # 0xaa2d
leaq -0xf8(%rbp), %rdi
callq 0x2210
jmp 0x7ed5
leaq -0xb0(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
leaq -0xf8(%rbp), %rdx
xorps %xmm1, %xmm1
movaps %xmm1, %xmm0
callq 0x50d0
jmp 0x7ef7
leaq -0xf8(%rbp), %rdi
callq 0x2120
jmp 0x7f05
leaq -0xf9(%rbp), %rdi
callq 0x21d0
leaq -0xd0(%rbp), %rdi
callq 0x2120
jmp 0x7f1f
leaq -0xd1(%rbp), %rdi
callq 0x21d0
movq 0x709e(%rip), %rdi      # 0xefd0
leaq 0x2cf3(%rip), %rsi      # 0xac2c
callq 0x21a0
movq %rax, -0x118(%rbp)
jmp 0x7f47
movq -0x118(%rbp), %rdi
leaq 0x2f05(%rip), %rsi      # 0xae5a
callq 0x21a0
movq %rax, -0x120(%rbp)
jmp 0x7f63
movq -0x120(%rbp), %rdi
leaq 0x304a(%rip), %rsi      # 0xafbb
callq 0x21a0
movq %rax, -0x128(%rbp)
jmp 0x7f7f
movq -0x128(%rbp), %rdi
movq 0x7033(%rip), %rsi      # 0xefc0
callq 0x21c0
jmp 0x7f94
movq 0x7035(%rip), %rdi      # 0xefd0
leaq 0x206e(%rip), %rsi      # 0xa010
callq 0x21a0
movq %rax, -0x130(%rbp)
jmp 0x7fb0
movq -0x130(%rbp), %rdi
leaq 0x20d2(%rip), %rsi      # 0xa090
callq 0x21a0
movq %rax, -0x138(%rbp)
jmp 0x7fcc
movq -0x138(%rbp), %rdi
leaq 0x2fe1(%rip), %rsi      # 0xafbb
callq 0x21a0
jmp 0x7fe1
movq 0x6ff8(%rip), %rdi      # 0xefe0
leaq -0x30(%rbp), %rsi
callq 0x2070
jmp 0x7ff3
movq 0x6fd6(%rip), %rdi      # 0xefd0
leaq 0x200f(%rip), %rsi      # 0xa010
callq 0x21a0
movq %rax, -0x140(%rbp)
jmp 0x800f
movq -0x140(%rbp), %rdi
leaq 0x2084(%rip), %rsi      # 0xa0a1
callq 0x21a0
movq %rax, -0x148(%rbp)
jmp 0x802b
movq -0x148(%rbp), %rdi
leaq 0x2f82(%rip), %rsi      # 0xafbb
callq 0x21a0
jmp 0x8040
movq 0x6f99(%rip), %rdi      # 0xefe0
leaq -0x50(%rbp), %rsi
callq 0x2070
jmp 0x8052
movq -0x8(%rbp), %rdi
movq (%rdi), %rax
movq 0x20(%rax), %rax
leaq -0x30(%rbp), %rsi
leaq -0x50(%rbp), %rdx
callq *%rax
movb %al, -0x149(%rbp)
jmp 0x806f
movb -0x149(%rbp), %al
andb $0x1, %al
movb %al, -0x9(%rbp)
testb $0x1, -0x9(%rbp)
je 0x8276
movq -0x8(%rbp), %rdi
movq (%rdi), %rax
movq 0x50(%rax), %rax
leaq -0x30(%rbp), %rsi
leaq -0x50(%rbp), %rdx
callq *%rax
jmp 0x809b
movq -0x8(%rbp), %rdi
movq (%rdi), %rax
movq 0x20(%rax), %rax
leaq -0x30(%rbp), %rsi
leaq -0x50(%rbp), %rdx
callq *%rax
movb %al, -0x14a(%rbp)
jmp 0x80b8
movb -0x14a(%rbp), %al
andb $0x1, %al
movb %al, -0x9(%rbp)
testb $0x1, -0x9(%rbp)
je 0x81ea
movq 0x6efc(%rip), %rdi      # 0xefd0
movq 0x6ee5(%rip), %rsi      # 0xefc0
callq 0x21c0
movq %rax, -0x158(%rbp)
jmp 0x80e9
movq -0x158(%rbp), %rdi
leaq 0x2b3d(%rip), %rsi      # 0xac34
callq 0x21a0
movq %rax, -0x160(%rbp)
jmp 0x8105
movq -0x160(%rbp), %rdi
leaq 0x2fc1(%rip), %rsi      # 0xb0d4
callq 0x21a0
movq %rax, -0x168(%rbp)
jmp 0x8121
movq -0x168(%rbp), %rdi
leaq 0x2e8c(%rip), %rsi      # 0xafbb
callq 0x21a0
movq %rax, -0x170(%rbp)
jmp 0x813d
movq -0x170(%rbp), %rdi
movq 0x6e75(%rip), %rsi      # 0xefc0
callq 0x21c0
jmp 0x8152
jmp 0x8271
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x8370
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x81bc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x81a0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xf8(%rbp), %rdi
callq 0x2120
jmp 0x819e
jmp 0x81a0
leaq -0xf9(%rbp), %rdi
callq 0x21d0
leaq -0xd0(%rbp), %rdi
callq 0x2120
jmp 0x81ba
jmp 0x81bc
leaq -0xd1(%rbp), %rdi
callq 0x21d0
jmp 0x8363
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0x43d0
jmp 0x8361
movq 0x6ddf(%rip), %rdi      # 0xefd0
movq 0x6dc8(%rip), %rsi      # 0xefc0
callq 0x21c0
movq %rax, -0x178(%rbp)
jmp 0x8206
movq -0x178(%rbp), %rdi
leaq 0x2a4b(%rip), %rsi      # 0xac5f
callq 0x21a0
movq %rax, -0x180(%rbp)
jmp 0x8222
movq -0x180(%rbp), %rdi
leaq 0x2ed2(%rip), %rsi      # 0xb102
callq 0x21a0
movq %rax, -0x188(%rbp)
jmp 0x823e
movq -0x188(%rbp), %rdi
leaq 0x2d6f(%rip), %rsi      # 0xafbb
callq 0x21a0
movq %rax, -0x190(%rbp)
jmp 0x825a
movq -0x190(%rbp), %rdi
movq 0x6d58(%rip), %rsi      # 0xefc0
callq 0x21c0
jmp 0x826f
jmp 0x8271
jmp 0x832f
movq 0x6d53(%rip), %rdi      # 0xefd0
movq 0x6d3c(%rip), %rsi      # 0xefc0
callq 0x21c0
movq %rax, -0x198(%rbp)
jmp 0x8292
movq -0x198(%rbp), %rdi
leaq 0x2e8e(%rip), %rsi      # 0xb12e
callq 0x21a0
movq %rax, -0x1a0(%rbp)
jmp 0x82ae
movq -0x1a0(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x2180
movq %rax, -0x1a8(%rbp)
jmp 0x82c7
movq -0x1a8(%rbp), %rdi
leaq 0x2757(%rip), %rsi      # 0xaa2c
callq 0x21a0
movq %rax, -0x1b0(%rbp)
jmp 0x82e3
movq -0x1b0(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x2180
movq %rax, -0x1b8(%rbp)
jmp 0x82fc
movq -0x1b8(%rbp), %rdi
leaq 0x2b84(%rip), %rsi      # 0xae8e
callq 0x21a0
movq %rax, -0x1c0(%rbp)
jmp 0x8318
movq -0x1c0(%rbp), %rdi
leaq 0x2c95(%rip), %rsi      # 0xafbb
callq 0x21a0
jmp 0x832d
jmp 0x832f
leaq -0xb0(%rbp), %rdi
callq 0x43d0
jmp 0x833d
leaq -0x50(%rbp), %rdi
callq 0x2120
jmp 0x8348
leaq -0x30(%rbp), %rdi
callq 0x2120
jmp 0x837d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x8363
jmp 0x8363
leaq -0x50(%rbp), %rdi
callq 0x2120
jmp 0x836e
jmp 0x8370
leaq -0x30(%rbp), %rdi
callq 0x2120
jmp 0x837b
jmp 0x8386
addq $0x1c0, %rsp            # imm = 0x1C0
popq %rbp
retq
movq -0x58(%rbp), %rdi
callq 0x22b0
movq %rax, %rdi
callq 0x45c0
nopw (%rax,%rax)