// File: DaCasBe[P]Gestion-de-asignaturas-mediante-listas-doblemente-enlazadas-ordenadas/funcionesAuxiliares.cpp
// Function: ed::consultarEstudianteDeAsignatura(ed::Asignatura&)
void ed::consultarEstudianteDeAsignatura(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
  	std::string nombre;
  	std::string apellidos;
  	ed::Estudiante estudiante;

	//Pedimos al usuario el nombre y los apellidos del estudiante a consultar
  	std::cout << IGREEN << "Introduce el nombre y los apellidos del estudiante" << std::endl;
  	std::cout << "Nombre: " << RESET;
  	getline(std::cin,nombre);
  	std::cout << IGREEN << "Apellidos: " << RESET;
  	getline(std::cin,apellidos);

  	if(!asignatura.existeEstudiante(nombre,apellidos)){ //No existe el estudiante especificado por el usuario
		std::cout << std::endl << ONIRED << "Error: no existe el estudiante indicado" << RESET << std::endl;
		std::cin.ignore();
  	}

  	else{ //Si existe el estudiante especificado por el usuario
  		estudiante=asignatura.getEstudiante(nombre,apellidos);

		//Mostramos las notas del estudiante
  		std::cout << std::endl << GREEN << "Notas de " << BGREEN << estudiante.getNombre() << " " << estudiante.getApellidos() << std::endl;
  		std::cout << GREEN << "Teoria: " << RESET << estudiante.getTeoria() << std::endl;
  		std::cout << GREEN << "Practica: " << RESET << estudiante.getPractica() << std::endl;
  		std::cout << GREEN << "Final: " << RESET << estudiante.getFinal() << std::endl;
  	}
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x220, %rsp            # imm = 0x220
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq (%rdi), %rax
callq *0x10(%rax)
testb $0x1, %al
jne 0x793f
jmp 0x7993
movq 0x868a(%rip), %rdi      # 0xffd0
movq 0x8673(%rip), %rsi      # 0xffc0
callq 0x31c0
movq %rax, %rdi
leaq 0x43a8(%rip), %rsi      # 0xbd04
callq 0x31a0
movq %rax, %rdi
leaq 0x47ab(%rip), %rsi      # 0xc116
callq 0x31a0
movq %rax, %rdi
leaq 0x36b4(%rip), %rsi      # 0xb02e
callq 0x31a0
movq %rax, %rdi
movq 0x8637(%rip), %rsi      # 0xffc0
callq 0x31c0
jmp 0x7ffc
leaq -0x28(%rbp), %rdi
callq 0x3220
leaq -0x48(%rbp), %rdi
callq 0x3220
jmp 0x79a7
leaq -0xc9(%rbp), %rdi
movq %rdi, -0x100(%rbp)
callq 0x32c0
movq -0x100(%rbp), %rdx
leaq 0x44b1(%rip), %rsi      # 0xbe79
leaq -0xc8(%rbp), %rdi
callq 0x3210
jmp 0x79d6
leaq -0xf1(%rbp), %rdi
movq %rdi, -0x108(%rbp)
callq 0x32c0
movq -0x108(%rbp), %rdx
leaq 0x4482(%rip), %rsi      # 0xbe79
leaq -0xf0(%rbp), %rdi
callq 0x3210
jmp 0x7a05
leaq -0xa8(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
leaq -0xf0(%rbp), %rdx
xorps %xmm1, %xmm1
movaps %xmm1, %xmm0
callq 0x53c0
jmp 0x7a27
leaq -0xf0(%rbp), %rdi
callq 0x3120
jmp 0x7a35
leaq -0xf1(%rbp), %rdi
callq 0x31d0
leaq -0xc8(%rbp), %rdi
callq 0x3120
jmp 0x7a4f
leaq -0xc9(%rbp), %rdi
callq 0x31d0
movq 0x856e(%rip), %rdi      # 0xffd0
leaq 0x35a7(%rip), %rsi      # 0xb010
callq 0x31a0
movq %rax, -0x110(%rbp)
jmp 0x7a77
movq -0x110(%rbp), %rdi
leaq 0x47fe(%rip), %rsi      # 0xc283
callq 0x31a0
movq %rax, -0x118(%rbp)
jmp 0x7a93
movq -0x118(%rbp), %rdi
movq 0x851f(%rip), %rsi      # 0xffc0
callq 0x31c0
jmp 0x7aa8
movq 0x8521(%rip), %rdi      # 0xffd0
leaq 0x4716(%rip), %rsi      # 0xc1cc
callq 0x31a0
movq %rax, -0x120(%rbp)
jmp 0x7ac4
movq -0x120(%rbp), %rdi
leaq 0x355c(%rip), %rsi      # 0xb02e
callq 0x31a0
jmp 0x7ad9
movq 0x8500(%rip), %rdi      # 0xffe0
leaq -0x28(%rbp), %rsi
callq 0x3070
jmp 0x7aeb
movq 0x84de(%rip), %rdi      # 0xffd0
leaq 0x3517(%rip), %rsi      # 0xb010
callq 0x31a0
movq %rax, -0x128(%rbp)
jmp 0x7b07
movq -0x128(%rbp), %rdi
leaq 0x47a1(%rip), %rsi      # 0xc2b6
callq 0x31a0
movq %rax, -0x130(%rbp)
jmp 0x7b23
movq -0x130(%rbp), %rdi
leaq 0x34fd(%rip), %rsi      # 0xb02e
callq 0x31a0
jmp 0x7b38
movq 0x84a1(%rip), %rdi      # 0xffe0
leaq -0x48(%rbp), %rsi
callq 0x3070
jmp 0x7b4a
movq -0x8(%rbp), %rdi
movq (%rdi), %rax
movq 0x20(%rax), %rax
leaq -0x28(%rbp), %rsi
leaq -0x48(%rbp), %rdx
callq *%rax
movb %al, -0x131(%rbp)
jmp 0x7b67
movb -0x131(%rbp), %al
testb $0x1, %al
jne 0x7ca2
jmp 0x7b77
movq 0x8452(%rip), %rdi      # 0xffd0
movq 0x843b(%rip), %rsi      # 0xffc0
callq 0x31c0
movq %rax, -0x140(%rbp)
jmp 0x7b93
movq -0x140(%rbp), %rdi
leaq 0x4163(%rip), %rsi      # 0xbd04
callq 0x31a0
movq %rax, -0x148(%rbp)
jmp 0x7baf
movq -0x148(%rbp), %rdi
leaq 0x4705(%rip), %rsi      # 0xc2c2
callq 0x31a0
movq %rax, -0x150(%rbp)
jmp 0x7bcb
movq -0x150(%rbp), %rdi
leaq 0x3455(%rip), %rsi      # 0xb02e
callq 0x31a0
movq %rax, -0x158(%rbp)
jmp 0x7be7
movq -0x158(%rbp), %rdi
movq 0x83cb(%rip), %rsi      # 0xffc0
callq 0x31c0
jmp 0x7bfc
movq 0x83dd(%rip), %rdi      # 0xffe0
callq 0x32d0
jmp 0x7c0a
jmp 0x7fae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x7fef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x7c74
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x7c58
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x3120
jmp 0x7c56
jmp 0x7c58
leaq -0xf1(%rbp), %rdi
callq 0x31d0
leaq -0xc8(%rbp), %rdi
callq 0x3120
jmp 0x7c72
jmp 0x7c74
leaq -0xc9(%rbp), %rdi
callq 0x31d0
jmp 0x7fe2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x4fd0
jmp 0x7fe0
movq -0x8(%rbp), %rdi
movq (%rdi), %rax
movq 0x28(%rax), %rax
leaq -0x28(%rbp), %rsi
leaq -0x48(%rbp), %rdx
callq *%rax
movq %rax, -0x160(%rbp)
jmp 0x7cc0
movq -0x160(%rbp), %rsi
leaq -0xa8(%rbp), %rdi
callq 0x3840
jmp 0x7cd5
movq 0x82f4(%rip), %rdi      # 0xffd0
movq 0x82dd(%rip), %rsi      # 0xffc0
callq 0x31c0
movq %rax, -0x168(%rbp)
jmp 0x7cf1
movq -0x168(%rbp), %rdi
leaq 0x42ff(%rip), %rsi      # 0xbffe
callq 0x31a0
movq %rax, -0x170(%rbp)
jmp 0x7d0d
movq -0x170(%rbp), %rdi
leaq 0x45cf(%rip), %rsi      # 0xc2ea
callq 0x31a0
movq %rax, -0x178(%rbp)
jmp 0x7d29
movq -0x178(%rbp), %rdi
leaq 0x45bd(%rip), %rsi      # 0xc2f4
callq 0x31a0
movq %rax, -0x180(%rbp)
jmp 0x7d45
leaq -0xa8(%rbp), %rdi
callq 0x4f90
movq %rax, -0x188(%rbp)
jmp 0x7d5a
movq -0x188(%rbp), %rsi
movq -0x180(%rbp), %rdi
callq 0x3180
movq %rax, -0x190(%rbp)
jmp 0x7d76
movq -0x190(%rbp), %rdi
leaq 0x40f4(%rip), %rsi      # 0xbe78
callq 0x31a0
movq %rax, -0x198(%rbp)
jmp 0x7d92
leaq -0xa8(%rbp), %rdi
callq 0x4fb0
movq %rax, -0x1a0(%rbp)
jmp 0x7da7
movq -0x1a0(%rbp), %rsi
movq -0x198(%rbp), %rdi
callq 0x3180
movq %rax, -0x1a8(%rbp)
jmp 0x7dc3
movq -0x1a8(%rbp), %rdi
movq 0x81ef(%rip), %rsi      # 0xffc0
callq 0x31c0
jmp 0x7dd8
movq 0x81f1(%rip), %rdi      # 0xffd0
leaq 0x4218(%rip), %rsi      # 0xbffe
callq 0x31a0
movq %rax, -0x1b0(%rbp)
jmp 0x7df4
movq -0x1b0(%rbp), %rdi
leaq 0x44fa(%rip), %rsi      # 0xc2fc
callq 0x31a0
movq %rax, -0x1b8(%rbp)
jmp 0x7e10
movq -0x1b8(%rbp), %rdi
leaq 0x3210(%rip), %rsi      # 0xb02e
callq 0x31a0
movq %rax, -0x1c0(%rbp)
jmp 0x7e2c
leaq -0xa8(%rbp), %rdi
callq 0x52c0
movss %xmm0, -0x1c4(%rbp)
jmp 0x7e42
movss -0x1c4(%rbp), %xmm0
movq -0x1c0(%rbp), %rdi
callq 0x3160
movq %rax, -0x1d0(%rbp)
jmp 0x7e5f
movq -0x1d0(%rbp), %rdi
movq 0x8153(%rip), %rsi      # 0xffc0
callq 0x31c0
jmp 0x7e74
movq 0x8155(%rip), %rdi      # 0xffd0
leaq 0x417c(%rip), %rsi      # 0xbffe
callq 0x31a0
movq %rax, -0x1d8(%rbp)
jmp 0x7e90
movq -0x1d8(%rbp), %rdi
leaq 0x4467(%rip), %rsi      # 0xc305
callq 0x31a0
movq %rax, -0x1e0(%rbp)
jmp 0x7eac
movq -0x1e0(%rbp), %rdi
leaq 0x3174(%rip), %rsi      # 0xb02e
callq 0x31a0
movq %rax, -0x1e8(%rbp)
jmp 0x7ec8
leaq -0xa8(%rbp), %rdi
callq 0x52e0
movss %xmm0, -0x1ec(%rbp)
jmp 0x7ede
movss -0x1ec(%rbp), %xmm0
movq -0x1e8(%rbp), %rdi
callq 0x3160
movq %rax, -0x1f8(%rbp)
jmp 0x7efb
movq -0x1f8(%rbp), %rdi
movq 0x80b7(%rip), %rsi      # 0xffc0
callq 0x31c0
jmp 0x7f10
movq 0x80b9(%rip), %rdi      # 0xffd0
leaq 0x40e0(%rip), %rsi      # 0xbffe
callq 0x31a0
movq %rax, -0x200(%rbp)
jmp 0x7f2c
movq -0x200(%rbp), %rdi
leaq 0x43d6(%rip), %rsi      # 0xc310
callq 0x31a0
movq %rax, -0x208(%rbp)
jmp 0x7f48
movq -0x208(%rbp), %rdi
leaq 0x30d8(%rip), %rsi      # 0xb02e
callq 0x31a0
movq %rax, -0x210(%rbp)
jmp 0x7f64
leaq -0xa8(%rbp), %rdi
callq 0x3b10
movss %xmm0, -0x214(%rbp)
jmp 0x7f7a
movss -0x214(%rbp), %xmm0
movq -0x210(%rbp), %rdi
callq 0x3160
movq %rax, -0x220(%rbp)
jmp 0x7f97
movq -0x220(%rbp), %rdi
movq 0x801b(%rip), %rsi      # 0xffc0
callq 0x31c0
jmp 0x7fac
jmp 0x7fae
leaq -0xa8(%rbp), %rdi
callq 0x4fd0
jmp 0x7fbc
leaq -0x48(%rbp), %rdi
callq 0x3120
jmp 0x7fc7
leaq -0x28(%rbp), %rdi
callq 0x3120
jmp 0x7ffc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x7fe2
jmp 0x7fe2
leaq -0x48(%rbp), %rdi
callq 0x3120
jmp 0x7fed
jmp 0x7fef
leaq -0x28(%rbp), %rdi
callq 0x3120
jmp 0x7ffa
jmp 0x8005
addq $0x220, %rsp            # imm = 0x220
popq %rbp
retq
movq -0x50(%rbp), %rdi
callq 0x32b0
movq %rax, %rdi
callq 0x5040
nopw %cs:(%rax,%rax)