// File: /workspace/github_cpp_makefile_star2_O1/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 0x633e
movq 0x5d30(%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 0x2921(%rip), %rsi      # 0x8bf2
movl $0x8, %edx
movq %rax, %rdi
callq 0x2180
leaq 0x2ce1(%rip), %rsi      # 0x8fc6
movl $0x27, %edx
movq %rbx, %rdi
callq 0x2180
leaq 0x1d2d(%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 0x29bb(%rip), %rdx      # 0x8d29
leaq -0x190(%rbp), %rdi
movq %rdx, %rsi
callq 0x396c
leaq -0x160(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x299a(%rip), %rdx      # 0x8d29
leaq -0x170(%rbp), %rdi
movq %rdx, %rsi
callq 0x396c
leaq -0x110(%rbp), %rdi
leaq -0x190(%rbp), %rsi
leaq -0x170(%rbp), %rdx
xorps %xmm0, %xmm0
xorps %xmm1, %xmm1
callq 0x37fa
movq -0x170(%rbp), %rdi
cmpq %r15, %rdi
je 0x63cf
callq 0x2130
movq -0x190(%rbp), %rdi
cmpq %r14, %rdi
je 0x63e0
callq 0x2130
leaq -0x140(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x2937(%rip), %rdx      # 0x8d29
leaq -0x150(%rbp), %rdi
movq %rdx, %rsi
callq 0x396c
leaq -0x120(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x2916(%rip), %rdx      # 0x8d29
leaq -0x130(%rbp), %rdi
movq %rdx, %rsi
callq 0x396c
leaq -0xc0(%rbp), %rdi
leaq -0x150(%rbp), %rsi
leaq -0x130(%rbp), %rdx
xorps %xmm0, %xmm0
xorps %xmm1, %xmm1
callq 0x37fa
movq -0x130(%rbp), %rdi
cmpq %r15, %rdi
je 0x6453
callq 0x2130
movq -0x150(%rbp), %rdi
cmpq %r14, %rdi
je 0x6464
callq 0x2130
movq 0x5b65(%rip), %rdi      # 0xbfd0
leaq 0x2dce(%rip), %rsi      # 0x9240
movl $0x7, %edx
callq 0x2180
movq 0x5b4d(%rip), %rdi      # 0xbfd0
leaq 0x2bf2(%rip), %rsi      # 0x907c
movl $0x8, %edx
callq 0x2180
movq 0x5b35(%rip), %rdi      # 0xbfd0
leaq 0x1b84(%rip), %rsi      # 0x8026
movl $0x4, %edx
callq 0x2180
movq 0x5b2d(%rip), %rdi      # 0xbfe0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %edx
movq 0x5b12(%rip), %r15      # 0xbfe0
leaq -0x70(%rbp), %rsi
movq %r15, %rdi
callq 0x2250
movq 0x5aef(%rip), %rdi      # 0xbfd0
leaq 0x2d58(%rip), %rsi      # 0x9240
movl $0x7, %edx
callq 0x2180
movq 0x5ad7(%rip), %rdi      # 0xbfd0
leaq 0x2c66(%rip), %rsi      # 0x9166
movl $0xb, %edx
callq 0x2180
movq 0x5abf(%rip), %r14      # 0xbfd0
leaq 0x1b0e(%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 0x5a9d(%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 0x6c19
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 0x1a97(%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 0x2c80(%rip), %rsi      # 0x9248
callq 0x2180
movl $0x1f, %edx
movq %r12, %rdi
leaq 0x2c74(%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 0x269b(%rip), %rsi      # 0x8cf6
callq 0x2180
movl $0x23, %edx
movq %r14, %rdi
leaq 0x2c01(%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 0x2bea(%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 0x2bba(%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 0x2b8e(%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 0x2b68(%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 0x292f(%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 0x6b1a
leaq 0x24b0(%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 0x2a88(%rip), %rsi      # 0x92d7
callq 0x2180
movl $0xe, %edx
movq %r14, %rdi
leaq 0x2a7c(%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 0x6bbf
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 0x22ef(%rip), %rsi      # 0x8bf2
callq 0x2180
movl $0x59, %edx
movq %r12, %rdi
leaq 0x29d7(%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 0x6b91
movl $0x7, %edx
movq %r14, %rdi
leaq 0x2982(%rip), %rsi      # 0x92d7
callq 0x2180
movl $0x19, %edx
movq %r14, %rdi
leaq 0x2a09(%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)
jmp 0x6b06
leaq -0xc0(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x2878
movl $0x7, %edx
movq %r14, %rdi
leaq 0x2919(%rip), %rsi      # 0x92d7
callq 0x2180
movl $0x12, %edx
movq %r14, %rdi
leaq 0x2976(%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 0x6ba6
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 0x2180(%rip), %rsi      # 0x8bf2
callq 0x2180
movl $0x59, %edx
movq %r12, %rdi
leaq 0x2868(%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 0x6b91
movl $0x7, %edx
movq %r14, %rdi
leaq 0x2813(%rip), %rsi      # 0x92d7
callq 0x2180
movl $0x16, %edx
movq %r14, %rdi
leaq 0x2883(%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)
movq %rbx, %rdi
leaq -0x110(%rbp), %rsi
callq 0x3aae
jmp 0x6c0a
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 0x209f(%rip), %rsi      # 0x8bf2
callq 0x2180
movl $0x19, %edx
movq %r12, %rdi
leaq 0x2825(%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 0x6c0a
movq (%rbx), %rax
movq %rbx, %rdi
leaq -0x108(%rbp), %rsi
leaq -0xe8(%rbp), %rdx
callq *0x50(%rax)
jmp 0x6bd6
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 0x658f
jmp 0x6cea
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq 0x5399(%rip), %rdi      # 0xbfd0
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movq %rax, %rbx
leaq 0x1fa4(%rip), %rsi      # 0x8bf2
movl $0x8, %edx
movq %rax, %rdi
callq 0x2180
leaq 0x2744(%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 0x209f(%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 0x207b(%rip), %rsi      # 0x8d28
movl $0x1, %edx
movq %rax, %rdi
callq 0x2180
movq 0x530f(%rip), %rdi      # 0xbfd0
leaq 0x26f4(%rip), %rsi      # 0x93bc
movl $0x1c, %edx
callq 0x2180
movq 0x52f7(%rip), %rdi      # 0xbfd0
leaq 0x1346(%rip), %rsi      # 0x8026
movl $0x4, %edx
callq 0x2180
leaq 0x4f6f(%rip), %rbx      # 0xbc60
leaq -0x88(%rbp), %rax
movq %rbx, -0x38(%rax)
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6d0a
callq 0x2130
leaq -0xa8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
leaq -0x60(%rbp), %r14
leaq -0x40(%rbp), %r15
je 0x6d27
callq 0x2130
leaq -0xd8(%rbp), %rax
movq %rbx, -0x38(%rax)
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6d40
callq 0x2130
leaq -0xf8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6d55
callq 0x2130
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x6d63
callq 0x2130
movq -0x70(%rbp), %rdi
cmpq %r14, %rdi
je 0x6d71
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 0x6d9c
callq 0x2130
jmp 0x6d9c
movq %rax, %rbx
movq -0x150(%rbp), %rdi
cmpq %r14, %rdi
je 0x6df6
callq 0x2130
jmp 0x6df6
movq %rax, %rbx
jmp 0x6df6
movq %rax, %rbx
movq -0x170(%rbp), %rdi
cmpq %r15, %rdi
je 0x6dcd
callq 0x2130
jmp 0x6dcd
movq %rax, %rbx
movq -0x190(%rbp), %rdi
cmpq %r14, %rdi
je 0x6e02
callq 0x2130
jmp 0x6e02
movq %rax, %rbx
jmp 0x6e02
jmp 0x6de7
movq %rax, %rbx
leaq -0xc0(%rbp), %rdi
callq 0x3654
leaq -0x110(%rbp), %rdi
callq 0x3654
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x6e14
callq 0x2130
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0x6e26
callq 0x2130
movq %rbx, %rdi
callq 0x2220
movq %rax, %rdi
callq 0x3694