// File: DaCasBe[P]Gestion-de-asignaturas-mediante-listas-doblemente-enlazadas-ordenadas/funcionesAuxiliares.cpp
// Function: ed::insertarEstudianteEnAsignatura(ed::Asignatura&)
void ed::insertarEstudianteEnAsignatura(ed::Asignatura &asignatura){
	Estudiante estudiante;
	
	estudiante.leerEstudiante(); //Pedimos al usuario toda la informacion del estudiante a insertar

	if(!asignatura.existeEstudiante(estudiante.getNombre(),estudiante.getApellidos())){
		if(asignatura.insertarEstudiante(estudiante.getNombre(),estudiante.getApellidos(),estudiante.getTeoria(),estudiante.getPractica())){ //Insertamos al estudiante
			std::cout << std::endl << ICYAN << "Estudiante insertado correctamente" << RESET << std::endl;
		}
		
		else{
			std::cout << std::endl << ONIRED << "Error: no ha podido insertarse el estudiante" << RESET << std::endl;
		}
	}
	
	else{
		std::cout << std::endl << ONIRED << "Error: ya existe el estudiante indicado" << RESET << std::endl;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x170, %rsp            # imm = 0x170
movq %rdi, -0x8(%rbp)
leaq -0x79(%rbp), %rdi
movq %rdi, -0xc0(%rbp)
callq 0x32c0
movq -0xc0(%rbp), %rdx
leaq 0x3e2c(%rip), %rsi      # 0xbe79
leaq -0x78(%rbp), %rdi
callq 0x3210
jmp 0x8058
leaq -0xb1(%rbp), %rdi
movq %rdi, -0xc8(%rbp)
callq 0x32c0
movq -0xc8(%rbp), %rdx
leaq 0x3e00(%rip), %rsi      # 0xbe79
leaq -0xb0(%rbp), %rdi
callq 0x3210
jmp 0x8087
leaq -0x58(%rbp), %rdi
leaq -0x78(%rbp), %rsi
leaq -0xb0(%rbp), %rdx
xorps %xmm1, %xmm1
movaps %xmm1, %xmm0
callq 0x53c0
jmp 0x80a3
leaq -0xb0(%rbp), %rdi
callq 0x3120
jmp 0x80b1
leaq -0xb1(%rbp), %rdi
callq 0x31d0
leaq -0x78(%rbp), %rdi
callq 0x3120
jmp 0x80c8
leaq -0x79(%rbp), %rdi
callq 0x31d0
leaq -0x58(%rbp), %rdi
callq 0x3520
jmp 0x80dc
movq -0x8(%rbp), %rax
movq %rax, -0xd8(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x4f90
movq %rax, -0xd0(%rbp)
jmp 0x80f9
leaq -0x58(%rbp), %rdi
callq 0x4fb0
movq %rax, -0xe0(%rbp)
jmp 0x810b
movq -0xe0(%rbp), %rdx
movq -0xd0(%rbp), %rsi
movq -0xd8(%rbp), %rdi
movq (%rdi), %rax
movq 0x20(%rax), %rax
callq *%rax
movb %al, -0xe1(%rbp)
jmp 0x8131
movb -0xe1(%rbp), %al
testb $0x1, %al
jne 0x8382
jmp 0x8141
movq -0x8(%rbp), %rax
movq %rax, -0xf8(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x4f90
movq %rax, -0xf0(%rbp)
jmp 0x815e
leaq -0x58(%rbp), %rdi
callq 0x4fb0
movq %rax, -0x100(%rbp)
jmp 0x8170
leaq -0x58(%rbp), %rdi
callq 0x52c0
movss %xmm0, -0x104(%rbp)
jmp 0x8183
leaq -0x58(%rbp), %rdi
callq 0x52e0
movss %xmm0, -0x108(%rbp)
jmp 0x8196
movss -0x108(%rbp), %xmm1
movss -0x104(%rbp), %xmm0
movq -0x100(%rbp), %rdx
movq -0xf0(%rbp), %rsi
movq -0xf8(%rbp), %rdi
movq (%rdi), %rax
movq 0x48(%rax), %rax
callq *%rax
movb %al, -0x109(%rbp)
jmp 0x81cc
movb -0x109(%rbp), %al
testb $0x1, %al
jne 0x81db
jmp 0x82f6
movq 0x7dee(%rip), %rdi      # 0xffd0
movq 0x7dd7(%rip), %rsi      # 0xffc0
callq 0x31c0
movq %rax, -0x118(%rbp)
jmp 0x81f7
movq -0x118(%rbp), %rdi
leaq 0x3e9e(%rip), %rsi      # 0xc0a3
callq 0x31a0
movq %rax, -0x120(%rbp)
jmp 0x8213
movq -0x120(%rbp), %rdi
leaq 0x40f7(%rip), %rsi      # 0xc318
callq 0x31a0
movq %rax, -0x128(%rbp)
jmp 0x822f
movq -0x128(%rbp), %rdi
leaq 0x2df1(%rip), %rsi      # 0xb02e
callq 0x31a0
movq %rax, -0x130(%rbp)
jmp 0x824b
movq -0x130(%rbp), %rdi
movq 0x7d67(%rip), %rsi      # 0xffc0
callq 0x31c0
jmp 0x8260
jmp 0x837d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x82c8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x82af
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0x3120
jmp 0x82ad
jmp 0x82af
leaq -0xb1(%rbp), %rdi
callq 0x31d0
leaq -0x78(%rbp), %rdi
callq 0x3120
jmp 0x82c6
jmp 0x82c8
leaq -0x79(%rbp), %rdi
callq 0x31d0
jmp 0x841d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x4fd0
jmp 0x841b
movq 0x7cd3(%rip), %rdi      # 0xffd0
movq 0x7cbc(%rip), %rsi      # 0xffc0
callq 0x31c0
movq %rax, -0x138(%rbp)
jmp 0x8312
movq -0x138(%rbp), %rdi
leaq 0x39e4(%rip), %rsi      # 0xbd04
callq 0x31a0
movq %rax, -0x140(%rbp)
jmp 0x832e
movq -0x140(%rbp), %rdi
leaq 0x3fff(%rip), %rsi      # 0xc33b
callq 0x31a0
movq %rax, -0x148(%rbp)
jmp 0x834a
movq -0x148(%rbp), %rdi
leaq 0x2cd6(%rip), %rsi      # 0xb02e
callq 0x31a0
movq %rax, -0x150(%rbp)
jmp 0x8366
movq -0x150(%rbp), %rdi
movq 0x7c4c(%rip), %rsi      # 0xffc0
callq 0x31c0
jmp 0x837b
jmp 0x837d
jmp 0x8409
movq 0x7c47(%rip), %rdi      # 0xffd0
movq 0x7c30(%rip), %rsi      # 0xffc0
callq 0x31c0
movq %rax, -0x158(%rbp)
jmp 0x839e
movq -0x158(%rbp), %rdi
leaq 0x3958(%rip), %rsi      # 0xbd04
callq 0x31a0
movq %rax, -0x160(%rbp)
jmp 0x83ba
movq -0x160(%rbp), %rdi
leaq 0x3fa0(%rip), %rsi      # 0xc368
callq 0x31a0
movq %rax, -0x168(%rbp)
jmp 0x83d6
movq -0x168(%rbp), %rdi
leaq 0x2c4a(%rip), %rsi      # 0xb02e
callq 0x31a0
movq %rax, -0x170(%rbp)
jmp 0x83f2
movq -0x170(%rbp), %rdi
movq 0x7bc0(%rip), %rsi      # 0xffc0
callq 0x31c0
jmp 0x8407
jmp 0x8409
leaq -0x58(%rbp), %rdi
callq 0x4fd0
addq $0x170, %rsp            # imm = 0x170
popq %rbp
retq
jmp 0x841d
movq -0x88(%rbp), %rdi
callq 0x32b0
movq %rax, %rdi
callq 0x5040
nopw %cs:(%rax,%rax)