// File: /workspace/github_cpp_makefile_star2_O3/DaCasBe[P]Gestion-de-asignaturas-mediante-listas-doblemente-enlazadas-ordenadas/funcionesAuxiliares.cpp
// Function: ed::modificarEstudianteDeAsignatura(ed::Asignatura&)
void ed::modificarEstudianteDeAsignatura(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
		int opcion;
		bool control;

		std::string nombre, apellidos;
		float nota;

		ed::Estudiante estudiante;
  		ed::Estudiante nuevoEstudiante;

		//Pedimos al usuario la informacion del estudiante a modificar
		std::cout << CYAN << "Nombre: " << RESET;
		std::getline(std::cin,nombre);

  		std::cout << CYAN << "Apellidos: " << RESET;
  		std::getline(std::cin,apellidos);

		control = asignatura.existeEstudiante(nombre,apellidos);

		if (control == true){ //Existe el estudiante
			estudiante = asignatura.getEstudiante(nombre,apellidos);

				 do{
					std::cout << std::endl << BLUE << "Datos actuales del estudiante: " << std::endl;
					estudiante.escribirEstudiante();
	
					std::cout << RESET << std::endl;
					std::cout << BBLUE << "Indique qué dato desea modificar: " << std::endl;
					std::cout << "(1) nombre" << std::endl;
					std::cout << "(2) apelllidos" << std::endl;
					std::cout << "(3) nota de teoría " << std::endl;
					std::cout << "(4) nota prácticas" << std::endl;

					std::cout << "(0) salir" << RESET << std::endl << std::endl;
					std::cin >> opcion;	
					// Se elimina el salto de línea del flujo de entrada
					  std::cin.ignore();
			
					switch(opcion){
						case 0: 
							// Fin de las modificaciones
							break;
						case 1:
							nuevoEstudiante = estudiante;

							std::cout << IPURPLE << "Nuevo nombre: " << RESET;
							std::getline(std::cin,nombre);
							nuevoEstudiante.setNombre(nombre);

							// Se comprueba que no existe otro estudiante con la misma clave
							if (not asignatura.existeEstudiante(nuevoEstudiante.getNombre(),nuevoEstudiante.getApellidos())){
								// Como se ha modificado un campo de la clave, se borra el antiguo estudiante 
								// y se inserta el estudiante modficado de forma ordenada
								asignatura.borrarEstudiante(estudiante.getNombre(),estudiante.getApellidos());									
								asignatura.insertarEstudiante(nuevoEstudiante.getNombre(),nuevoEstudiante.getApellidos(),nuevoEstudiante.getTeoria(),nuevoEstudiante.getPractica());	

								estudiante = nuevoEstudiante;
							}
							// Se indica que ya existe un estudiante con la misma clave
							else{
								std::cout << std::endl << ONIRED << "Error: no se puede modificar el nombre porque tendría la misma clave que otro estudiante" << RESET << std::endl;
							}
							break;

						case 2:
							nuevoEstudiante = estudiante;

							std::cout << IPURPLE << "Nuevos apellidos: " << RESET;
							std::getline(std::cin,apellidos);
							nuevoEstudiante.setApellidos(apellidos);

							// Se comprueba que no existe otro estudiante con la misma clave
							if (not asignatura.existeEstudiante(nuevoEstudiante.getNombre(),nuevoEstudiante.getApellidos())){
								// Como se ha modificado un campo de la clave, se borra el antiguo estudiante 
								// y se inserta el estudiante modficado de forma ordenada
								asignatura.borrarEstudiante(estudiante.getNombre(),estudiante.getApellidos());									
								asignatura.insertarEstudiante(nuevoEstudiante.getNombre(),nuevoEstudiante.getApellidos(),nuevoEstudiante.getTeoria(),nuevoEstudiante.getPractica());	

								estudiante = nuevoEstudiante;
							}
							// Se indica que ya existe un estudiante con la misma clave
							else{
								std::cout << std::endl << ONIRED << "Error: no se puede modificar el nombre porque tendría la misma clave que otro estudiante" << RESET << std::endl;
											}
								break;

						case 3:
							std::cout << IPURPLE << "Nueva nota de teoría " << RESET;
							std::cin >> nota;
							estudiante.setTeoria(nota);

							// Se modifica su nota
							asignatura.setEstudiante(estudiante);
							break;

						case 4:
							std::cout << IPURPLE << "Nueva nota de prácticas " << RESET;
							std::cin >> nota;
							estudiante.setPractica(nota);

							// Se modifica su nota
							asignatura.setEstudiante(estudiante);
							break;

						default:
							std::cout<< std::endl << ONIRED << "Error: opción incorrecta" << RESET << std::endl;
					}
				}while (opcion != 0);
		}	
		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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x168, %rsp            # imm = 0x168
movq %rdi, %rbx
movq (%rdi), %rax
callq *0x10(%rax)
testb %al, %al
je 0x6342
movq 0x5d2c(%rip), %rbx      # 0xbfd0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movq %rax, %rbx
leaq 0x291d(%rip), %rsi      # 0x8bf2
movl $0x8, %edx
movq %rax, %rdi
callq 0x2180
leaq 0x2cdd(%rip), %rsi      # 0x8fc6
movl $0x27, %edx
movq %rbx, %rdi
callq 0x2180
leaq 0x1d29(%rip), %rsi      # 0x8026
movl $0x4, %edx
movq %rbx, %rdi
callq 0x2180
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
addq $0x168, %rsp            # imm = 0x168
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x20f0
leaq -0x60(%rbp), %rcx
movq %rcx, -0x10(%rcx)
xorl %eax, %eax
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x40(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x180(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x29b7(%rip), %rdx      # 0x8d29
leaq -0x190(%rbp), %rdi
movq %rdx, %rsi
callq 0x396a
leaq -0x160(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x2996(%rip), %rdx      # 0x8d29
leaq -0x170(%rbp), %rdi
movq %rdx, %rsi
callq 0x396a
leaq -0x110(%rbp), %rdi
leaq -0x190(%rbp), %rsi
leaq -0x170(%rbp), %rdx
xorps %xmm0, %xmm0
xorps %xmm1, %xmm1
callq 0x37f8
movq -0x170(%rbp), %rdi
cmpq %r15, %rdi
je 0x63d3
callq 0x2130
movq -0x190(%rbp), %rdi
cmpq %r14, %rdi
je 0x63e4
callq 0x2130
leaq -0x140(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x2933(%rip), %rdx      # 0x8d29
leaq -0x150(%rbp), %rdi
movq %rdx, %rsi
callq 0x396a
leaq -0x120(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x2912(%rip), %rdx      # 0x8d29
leaq -0x130(%rbp), %rdi
movq %rdx, %rsi
callq 0x396a
leaq -0xc0(%rbp), %rdi
leaq -0x150(%rbp), %rsi
leaq -0x130(%rbp), %rdx
xorps %xmm0, %xmm0
xorps %xmm1, %xmm1
callq 0x37f8
movq -0x130(%rbp), %rdi
cmpq %r15, %rdi
je 0x6457
callq 0x2130
movq -0x150(%rbp), %rdi
cmpq %r14, %rdi
je 0x6468
callq 0x2130
movq 0x5b61(%rip), %rdi      # 0xbfd0
leaq 0x2dca(%rip), %rsi      # 0x9240
movl $0x7, %edx
callq 0x2180
movq 0x5b49(%rip), %rdi      # 0xbfd0
leaq 0x2bee(%rip), %rsi      # 0x907c
movl $0x8, %edx
callq 0x2180
movq 0x5b31(%rip), %rdi      # 0xbfd0
leaq 0x1b80(%rip), %rsi      # 0x8026
movl $0x4, %edx
callq 0x2180
movq 0x5b29(%rip), %rdi      # 0xbfe0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %edx
movq 0x5b0e(%rip), %r15      # 0xbfe0
leaq -0x70(%rbp), %rsi
movq %r15, %rdi
callq 0x2250
movq 0x5aeb(%rip), %rdi      # 0xbfd0
leaq 0x2d54(%rip), %rsi      # 0x9240
movl $0x7, %edx
callq 0x2180
movq 0x5ad3(%rip), %rdi      # 0xbfd0
leaq 0x2c62(%rip), %rsi      # 0x9166
movl $0xb, %edx
callq 0x2180
movq 0x5abb(%rip), %r14      # 0xbfd0
leaq 0x1b0a(%rip), %rsi      # 0x8026
movl $0x4, %edx
movq %r14, %rdi
callq 0x2180
movq (%r15), %rax
addq -0x18(%rax), %r15
movq %r15, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %edx
movq 0x5a99(%rip), %r15      # 0xbfe0
leaq -0x50(%rbp), %rsi
movq %r15, %rdi
callq 0x2250
movq (%rbx), %rax
leaq -0x70(%rbp), %rsi
leaq -0x50(%rbp), %rdx
movq %rbx, %rdi
callq *0x20(%rax)
testb %al, %al
je 0x6bfe
movq (%rbx), %rax
leaq -0x70(%rbp), %rsi
leaq -0x50(%rbp), %rdx
movq %rbx, %rdi
callq *0x28(%rax)
leaq -0x110(%rbp), %rdi
movq %rax, %rsi
callq 0x2878
leaq 0x1a93(%rip), %r13      # 0x8026
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movq %rax, %r12
movl $0x7, %edx
movq %rax, %rdi
leaq 0x2c7c(%rip), %rsi      # 0x9248
callq 0x2180
movl $0x1f, %edx
movq %r12, %rdi
leaq 0x2c70(%rip), %rsi      # 0x9250
callq 0x2180
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq %r12, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
leaq -0x110(%rbp), %rdi
callq 0x25f0
movl $0x4, %edx
movq %r14, %rdi
movq %r13, %rsi
callq 0x2180
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movl $0x7, %edx
movq %r14, %rdi
leaq 0x2697(%rip), %rsi      # 0x8cf6
callq 0x2180
movl $0x23, %edx
movq %r14, %rdi
leaq 0x2bfd(%rip), %rsi      # 0x9270
callq 0x2180
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movl $0xa, %edx
movq %r14, %rdi
leaq 0x2be6(%rip), %rsi      # 0x9294
callq 0x2180
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movl $0xe, %edx
movq %r14, %rdi
leaq 0x2bb6(%rip), %rsi      # 0x929f
callq 0x2180
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movl $0x14, %edx
movq %r14, %rdi
leaq 0x2b8a(%rip), %rsi      # 0x92ae
callq 0x2180
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movl $0x13, %edx
movq %r14, %rdi
leaq 0x2b64(%rip), %rsi      # 0x92c3
callq 0x2180
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movl $0x9, %edx
movq %r14, %rdi
leaq 0x292b(%rip), %rsi      # 0x90c5
callq 0x2180
movl $0x4, %edx
movq %r14, %rdi
movq %r13, %rsi
callq 0x2180
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq %r12, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movq %r15, %rdi
leaq -0x30(%rbp), %rsi
callq 0x20c0
movq %r15, %rdi
callq 0x2240
movl -0x30(%rbp), %eax
cmpq $0x4, %rax
ja 0x6b18
leaq 0x24ac(%rip), %rcx      # 0x8cd4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq -0xc0(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x2878
movl $0x7, %edx
movq %r14, %rdi
leaq 0x2a84(%rip), %rsi      # 0x92d7
callq 0x2180
movl $0xe, %edx
movq %r14, %rdi
leaq 0x2a78(%rip), %rsi      # 0x92df
callq 0x2180
movl $0x4, %edx
movq %r14, %rdi
movq %r13, %rsi
callq 0x2180
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %edx
movq %r15, %rdi
leaq -0x70(%rbp), %rsi
callq 0x2250
leaq -0xb8(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x20b0
movq (%rbx), %rax
movq %rbx, %rdi
leaq -0xb8(%rbp), %rsi
leaq -0x98(%rbp), %rdx
callq *0x20(%rax)
testb %al, %al
je 0x6ba4
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movq %rax, %r12
movl $0x8, %edx
movq %rax, %rdi
leaq 0x22eb(%rip), %rsi      # 0x8bf2
callq 0x2180
movl $0x59, %edx
movq %r12, %rdi
leaq 0x29d3(%rip), %rsi      # 0x92ee
callq 0x2180
movl $0x4, %edx
movq %r12, %rdi
movq %r13, %rsi
callq 0x2180
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x2140
jmp 0x6b8f
movl $0x7, %edx
movq %r14, %rdi
leaq 0x297e(%rip), %rsi      # 0x92d7
callq 0x2180
movl $0x16, %edx
movq %r14, %rdi
leaq 0x29ee(%rip), %rsi      # 0x935b
callq 0x2180
movl $0x4, %edx
movq %r14, %rdi
movq %r13, %rsi
callq 0x2180
movq %r15, %rdi
leaq -0x2c(%rbp), %rsi
callq 0x2260
movss -0x2c(%rbp), %xmm0
movss %xmm0, -0xc8(%rbp)
jmp 0x69ee
movl $0x7, %edx
movq %r14, %rdi
leaq 0x292b(%rip), %rsi      # 0x92d7
callq 0x2180
movl $0x19, %edx
movq %r14, %rdi
leaq 0x29b2(%rip), %rsi      # 0x9372
callq 0x2180
movl $0x4, %edx
movq %r14, %rdi
movq %r13, %rsi
callq 0x2180
movq %r15, %rdi
leaq -0x2c(%rbp), %rsi
callq 0x2260
movss -0x2c(%rbp), %xmm0
movss %xmm0, -0xc4(%rbp)
movq %rbx, %rdi
leaq -0x110(%rbp), %rsi
callq 0x3aae
jmp 0x6bef
leaq -0xc0(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x2878
movl $0x7, %edx
movq %r14, %rdi
leaq 0x28b3(%rip), %rsi      # 0x92d7
callq 0x2180
movl $0x12, %edx
movq %r14, %rdi
leaq 0x2910(%rip), %rsi      # 0x9348
callq 0x2180
movl $0x4, %edx
movq %r14, %rdi
movq %r13, %rsi
callq 0x2180
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %edx
movq %r15, %rdi
leaq -0x50(%rbp), %rsi
callq 0x2250
leaq -0x98(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x20b0
movq (%rbx), %rax
movq %rbx, %rdi
leaq -0xb8(%rbp), %rsi
leaq -0x98(%rbp), %rdx
callq *0x20(%rax)
testb %al, %al
je 0x6ba4
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movq %rax, %r12
movl $0x8, %edx
movq %rax, %rdi
leaq 0x211a(%rip), %rsi      # 0x8bf2
callq 0x2180
movl $0x59, %edx
movq %r12, %rdi
leaq 0x2802(%rip), %rsi      # 0x92ee
callq 0x2180
movl $0x4, %edx
movq %r12, %rdi
movq %r13, %rsi
callq 0x2180
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x2140
jmp 0x6b8f
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movq %rax, %r12
movl $0x8, %edx
movq %rax, %rdi
leaq 0x20a1(%rip), %rsi      # 0x8bf2
callq 0x2180
movl $0x19, %edx
movq %r12, %rdi
leaq 0x2827(%rip), %rsi      # 0x938c
callq 0x2180
movl $0x4, %edx
movq %r12, %rdi
movq %r13, %rsi
callq 0x2180
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq %r12, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
jmp 0x6bef
movq (%rbx), %rax
movq %rbx, %rdi
leaq -0x108(%rbp), %rsi
leaq -0xe8(%rbp), %rdx
callq *0x50(%rax)
movss -0x78(%rbp), %xmm0
movss -0x74(%rbp), %xmm1
movq (%rbx), %rax
movq %rbx, %rdi
leaq -0xb8(%rbp), %rsi
leaq -0x98(%rbp), %rdx
callq *0x48(%rax)
leaq -0x110(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x2878
cmpl $0x0, -0x30(%rbp)
jne 0x6593
jmp 0x6ccf
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq 0x53b4(%rip), %rdi      # 0xbfd0
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movq %rax, %rbx
leaq 0x1fbf(%rip), %rsi      # 0x8bf2
movl $0x8, %edx
movq %rax, %rdi
callq 0x2180
leaq 0x275f(%rip), %rsi      # 0x93a6
movl $0x15, %edx
movq %rbx, %rdi
callq 0x2180
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
movq %rbx, %rdi
callq 0x2180
movq %rax, %rbx
leaq 0x20ba(%rip), %rsi      # 0x8d28
movl $0x1, %edx
movq %rax, %rdi
callq 0x2180
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq %rbx, %rdi
callq 0x2180
leaq 0x2096(%rip), %rsi      # 0x8d28
movl $0x1, %edx
movq %rax, %rdi
callq 0x2180
movq 0x532a(%rip), %rdi      # 0xbfd0
leaq 0x270f(%rip), %rsi      # 0x93bc
movl $0x1c, %edx
callq 0x2180
movq 0x5312(%rip), %rdi      # 0xbfd0
leaq 0x1361(%rip), %rsi      # 0x8026
movl $0x4, %edx
callq 0x2180
leaq 0x4f8a(%rip), %rbx      # 0xbc60
leaq -0x88(%rbp), %rax
movq %rbx, -0x38(%rax)
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6cef
callq 0x2130
leaq -0xa8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6d04
callq 0x2130
leaq -0xd8(%rbp), %rax
movq %rbx, -0x38(%rax)
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6d1d
callq 0x2130
leaq -0xf8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6d32
callq 0x2130
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x6d44
callq 0x2130
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0x6d56
callq 0x2130
addq $0x168, %rsp            # imm = 0x168
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq -0x130(%rbp), %rdi
cmpq %r15, %rdi
je 0x6d81
callq 0x2130
jmp 0x6d81
movq %rax, %rbx
movq -0x150(%rbp), %rdi
cmpq %r14, %rdi
je 0x6ddb
callq 0x2130
jmp 0x6ddb
movq %rax, %rbx
jmp 0x6ddb
movq %rax, %rbx
movq -0x170(%rbp), %rdi
cmpq %r15, %rdi
je 0x6db2
callq 0x2130
jmp 0x6db2
movq %rax, %rbx
movq -0x190(%rbp), %rdi
cmpq %r14, %rdi
je 0x6de7
callq 0x2130
jmp 0x6de7
movq %rax, %rbx
jmp 0x6de7
jmp 0x6dcc
movq %rax, %rbx
leaq -0xc0(%rbp), %rdi
callq 0x3652
leaq -0x110(%rbp), %rdi
callq 0x3652
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x6df9
callq 0x2130
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0x6e0b
callq 0x2130
movq %rbx, %rdi
callq 0x2220
movq %rax, %rdi
callq 0x3692