// File: DaCasBe[P]Gestion-de-asignaturas-mediante-arboles-binarios-ordenados/./asignatura.hpp
// Function: ed::Asignatura::insertarEstudiante(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, float, float)
inline bool insertarEstudiante(std::string const &nombre, std::string const &apellidos,float teoria, float practica){
		//Precondición
		#ifndef NDEBUG
			assert(!existeEstudiante(nombre,apellidos));
		#endif

		int old=getNumeroEstudiantes();
		ed::Estudiante estudiante(nombre,apellidos,teoria,practica); //Creamos un estudiante con los datos recibidos

		if(existeEstudiante(estudiante)){ //Ya existe el estudiante
			return false;
		}

		else{ //No existe el estudiante
			_arbol.insert(estudiante); //Insertamos el estudiante

			//Postcondición
			#ifndef NDEBUG
				assert(existeEstudiante(nombre,apellidos) and old==getNumeroEstudiantes()-1);
			#endif

			return true;
		}
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xf0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movss %xmm0, -0x24(%rbp)
movss %xmm1, -0x28(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0xd8(%rbp)
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
movq (%rdi), %rax
callq *0x20(%rax)
xorb $-0x1, %al
testb $0x1, %al
jne 0x9302
jmp 0x9304
jmp 0x9323
leaq 0x21ad(%rip), %rdi      # 0xb4b8
leaq 0x163e(%rip), %rsi      # 0xa950
movl $0x11d, %edx            # imm = 0x11D
leaq 0x21be(%rip), %rcx      # 0xb4dc
callq 0x2140
movq -0xd8(%rbp), %rdi
movq (%rdi), %rax
movq 0x18(%rax), %rax
callq *%rax
movl %eax, -0x2c(%rbp)
movq -0x18(%rbp), %rsi
leaq -0xa0(%rbp), %rdi
callq 0x20e0
movq -0x20(%rbp), %rsi
leaq -0xc0(%rbp), %rdi
callq 0x20e0
jmp 0x9358
movss -0x24(%rbp), %xmm0
movss -0x28(%rbp), %xmm1
leaq -0x80(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
leaq -0xc0(%rbp), %rdx
callq 0x50d0
jmp 0x937b
leaq -0xc0(%rbp), %rdi
callq 0x2120
jmp 0x9389
leaq -0xa0(%rbp), %rdi
callq 0x2120
movq -0xd8(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x52f0
movb %al, -0xd9(%rbp)
jmp 0x93ad
movb -0xd9(%rbp), %al
testb $0x1, %al
jne 0x93b9
jmp 0x9435
movb $0x0, -0x1(%rbp)
movl $0x1, -0xd0(%rbp)
jmp 0x94f6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
jmp 0x9402
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
leaq -0xc0(%rbp), %rdi
callq 0x2120
jmp 0x9400
jmp 0x9402
leaq -0xa0(%rbp), %rdi
callq 0x2120
jmp 0x9410
jmp 0x950f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc8(%rbp)
movl %eax, -0xcc(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x43d0
jmp 0x950d
movq -0xd8(%rbp), %rdi
addq $0x30, %rdi
leaq -0x80(%rbp), %rsi
callq 0x3340
jmp 0x944b
movq -0xd8(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
movq (%rdi), %rax
movq 0x20(%rax), %rax
callq *%rax
movb %al, -0xda(%rbp)
jmp 0x946b
movb -0xda(%rbp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0xdb(%rbp)
jne 0x9480
jmp 0x94bb
movq -0xd8(%rbp), %rdi
movl -0x2c(%rbp), %eax
movl %eax, -0xe4(%rbp)
movq (%rdi), %rax
movq 0x18(%rax), %rax
callq *%rax
movl %eax, -0xe0(%rbp)
jmp 0x94a1
movl -0xe4(%rbp), %eax
movl -0xe0(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
sete %al
movb %al, -0xdb(%rbp)
movb -0xdb(%rbp), %al
testb $0x1, %al
jne 0x94c7
jmp 0x94c9
jmp 0x94e8
leaq 0x2074(%rip), %rdi      # 0xb544
leaq 0x1479(%rip), %rsi      # 0xa950
movl $0x12c, %edx            # imm = 0x12C
leaq 0x1ff9(%rip), %rcx      # 0xb4dc
callq 0x2140
movb $0x1, -0x1(%rbp)
movl $0x1, -0xd0(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x43d0
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0xf0, %rsp
popq %rbp
retq
jmp 0x950f
movq -0xc8(%rbp), %rdi
callq 0x22b0
movq %rax, %rdi
callq 0x45c0
nopw %cs:(%rax,%rax)
nopl (%rax)