// File: DaCasBe[P]Gestion-de-asignaturas-mediante-arboles-binarios-ordenados/funcionesAuxiliares.cpp
// Function: ed::modificarEstudianteDeAsignatura(ed::Asignatura&)
void ed::modificarEstudianteDeAsignatura(ed::Asignatura &asignatura){
	if(asignatura.estaVacia()){ //La asignatura está vacía
		std::cout << std::endl << BIRED << "Error: no hay ningún estudiante cargado" << RESET << std::endl;
	}
	
	else{ //La asignatura no está vacía
		int opcion;
		bool control;
		std::string nombre;
		std::string apellidos;
		float nota;
		ed::Estudiante estudiante;
		ed::Estudiante nuevoEstudiante;

		//Pedimos al usuario el nombre y los apellidos del estudiante a modificar
		std::cout << BIYELLOW << "Introduzca el nombre y los apellidos del estudiante: " << RESET << std::endl;
		std::cout << IYELLOW << "Nombre: " << RESET;
		std::getline(std::cin,nombre);
		std::cout << IYELLOW << "Apellidos: " RESET;
		std::getline(std::cin,apellidos);

		control=asignatura.existeEstudiante(nombre,apellidos);	

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

			do{
				//Mostramos los datos del estudiante
				std::cout << std::endl << BIBLUE << "Datos actuales del estudiante: " << RESET << std::endl;
				estudiante.escribirEstudiante();
		
				//Preguntamos al usuario qué desea modificar
				std::cout << std::endl;
				std::cout << BGREEN << "Indique qué dato desea modificar: " << RESET << std::endl;
				std::cout << IGREEN << "(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 << GREEN << "(0) salir" << RESET << std::endl;
				std::cout << IYELLOW "Opción: " << RESET;
				std::cin >> opcion;
				std::cin.ignore(); //Se elimina el salto de línea del flujo de entrada
			
				switch(opcion){
					case 0: 
						//Fin de las modificaciones
						break;
					case 1:
						nuevoEstudiante=estudiante;

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

						//Se comprueba que no existe otro estudiante con la misma clave
						if(!asignatura.existeEstudiante(nuevoEstudiante)){
							//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);									
							asignatura.insertarEstudiante(nuevoEstudiante);	

							estudiante=nuevoEstudiante;
						}
					
						//Se indica que ya existe un estudiante con la misma clave
						else{
							std::cout << BIRED << "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 << std::endl << IPURPLE << "Nuevos apellidos: " << RESET;
						std::getline(std::cin,apellidos);
						nuevoEstudiante.setApellidos(apellidos);

						//Se comprueba que no existe otro estudiante con la misma clave
						if(!asignatura.existeEstudiante(nuevoEstudiante)){
							//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);									
							asignatura.insertarEstudiante(nuevoEstudiante);	

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

					case 3:
						std::cout << std::endl << 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 << std::endl << IPURPLE << "Nueva nota de prácticas: " << RESET;
						std::cin >> nota;
						estudiante.setPractica(nota);

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

					default:
						std::cout << BIRED << "Error: opción incorrecta" << RESET << std::endl;
				}
			}while (opcion != 0);
		}
	
		else{
			std::cout << std::endl << BIRED << "Error: el estudiante " << nombre << " " << apellidos << " no pertenece a la asignatura" << RESET;
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x380, %rsp            # imm = 0x380
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq (%rdi), %rax
callq *0x10(%rax)
testb $0x1, %al
jne 0x70af
jmp 0x7103
movq 0x7f1a(%rip), %rdi      # 0xefd0
movq 0x7f03(%rip), %rsi      # 0xefc0
callq 0x21c0
movq %rax, %rdi
leaq 0x3b68(%rip), %rsi      # 0xac34
callq 0x21a0
movq %rax, %rdi
leaq 0x3bad(%rip), %rsi      # 0xac88
callq 0x21a0
movq %rax, %rdi
leaq 0x3ed1(%rip), %rsi      # 0xafbb
callq 0x21a0
movq %rax, %rdi
movq 0x7ec7(%rip), %rsi      # 0xefc0
callq 0x21c0
jmp 0x7dd5
leaq -0x30(%rbp), %rdi
callq 0x2220
leaq -0x50(%rbp), %rdi
callq 0x2220
jmp 0x7117
leaq -0xd1(%rbp), %rdi
movq %rdi, -0x1a8(%rbp)
callq 0x22c0
movq -0x1a8(%rbp), %rdx
leaq 0x38f5(%rip), %rsi      # 0xaa2d
leaq -0xd0(%rbp), %rdi
callq 0x2210
jmp 0x7146
leaq -0xf9(%rbp), %rdi
movq %rdi, -0x1b0(%rbp)
callq 0x22c0
movq -0x1b0(%rbp), %rdx
leaq 0x38c6(%rip), %rsi      # 0xaa2d
leaq -0xf8(%rbp), %rdi
callq 0x2210
jmp 0x7175
leaq -0xb0(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
leaq -0xf8(%rbp), %rdx
xorps %xmm1, %xmm1
movaps %xmm1, %xmm0
callq 0x50d0
jmp 0x7197
leaq -0xf8(%rbp), %rdi
callq 0x2120
jmp 0x71a5
leaq -0xf9(%rbp), %rdi
callq 0x21d0
leaq -0xd0(%rbp), %rdi
callq 0x2120
jmp 0x71bf
leaq -0xd1(%rbp), %rdi
callq 0x21d0
leaq -0x171(%rbp), %rdi
movq %rdi, -0x1b8(%rbp)
callq 0x22c0
movq -0x1b8(%rbp), %rdx
leaq 0x3841(%rip), %rsi      # 0xaa2d
leaq -0x170(%rbp), %rdi
callq 0x2210
jmp 0x71fa
leaq -0x199(%rbp), %rdi
movq %rdi, -0x1c0(%rbp)
callq 0x22c0
movq -0x1c0(%rbp), %rdx
leaq 0x3812(%rip), %rsi      # 0xaa2d
leaq -0x198(%rbp), %rdi
callq 0x2210
jmp 0x7229
leaq -0x150(%rbp), %rdi
leaq -0x170(%rbp), %rsi
leaq -0x198(%rbp), %rdx
xorps %xmm1, %xmm1
movaps %xmm1, %xmm0
callq 0x50d0
jmp 0x724b
leaq -0x198(%rbp), %rdi
callq 0x2120
jmp 0x7259
leaq -0x199(%rbp), %rdi
callq 0x21d0
leaq -0x170(%rbp), %rdi
callq 0x2120
jmp 0x7273
leaq -0x171(%rbp), %rdi
callq 0x21d0
movq 0x7d4a(%rip), %rdi      # 0xefd0
leaq 0x399f(%rip), %rsi      # 0xac2c
callq 0x21a0
movq %rax, -0x1c8(%rbp)
jmp 0x729b
movq -0x1c8(%rbp), %rdi
leaq 0x3cd1(%rip), %rsi      # 0xaf7a
callq 0x21a0
movq %rax, -0x1d0(%rbp)
jmp 0x72b7
movq -0x1d0(%rbp), %rdi
leaq 0x3cf6(%rip), %rsi      # 0xafbb
callq 0x21a0
movq %rax, -0x1d8(%rbp)
jmp 0x72d3
movq -0x1d8(%rbp), %rdi
movq 0x7cdf(%rip), %rsi      # 0xefc0
callq 0x21c0
jmp 0x72e8
movq 0x7ce1(%rip), %rdi      # 0xefd0
leaq 0x2d1a(%rip), %rsi      # 0xa010
callq 0x21a0
movq %rax, -0x1e0(%rbp)
jmp 0x7304
movq -0x1e0(%rbp), %rdi
leaq 0x2d7e(%rip), %rsi      # 0xa090
callq 0x21a0
movq %rax, -0x1e8(%rbp)
jmp 0x7320
movq -0x1e8(%rbp), %rdi
leaq 0x3c8d(%rip), %rsi      # 0xafbb
callq 0x21a0
jmp 0x7335
movq 0x7ca4(%rip), %rdi      # 0xefe0
leaq -0x30(%rbp), %rsi
callq 0x2070
jmp 0x7347
movq 0x7c82(%rip), %rdi      # 0xefd0
leaq 0x2cbb(%rip), %rsi      # 0xa010
callq 0x21a0
movq %rax, -0x1f0(%rbp)
jmp 0x7363
movq -0x1f0(%rbp), %rdi
leaq 0x3c3f(%rip), %rsi      # 0xafb0
callq 0x21a0
jmp 0x7378
movq 0x7c61(%rip), %rdi      # 0xefe0
leaq -0x50(%rbp), %rsi
callq 0x2070
jmp 0x738a
movq -0x8(%rbp), %rdi
movq (%rdi), %rax
movq 0x20(%rax), %rax
leaq -0x30(%rbp), %rsi
leaq -0x50(%rbp), %rdx
callq *%rax
movb %al, -0x1f1(%rbp)
jmp 0x73a7
movb -0x1f1(%rbp), %al
andb $0x1, %al
movb %al, -0xd(%rbp)
testb $0x1, -0xd(%rbp)
je 0x7c86
movq -0x8(%rbp), %rdi
movq (%rdi), %rax
movq 0x28(%rax), %rax
leaq -0x30(%rbp), %rsi
leaq -0x50(%rbp), %rdx
callq *%rax
movq %rax, -0x200(%rbp)
jmp 0x73da
movq -0x200(%rbp), %rsi
leaq -0xb0(%rbp), %rdi
callq 0x2890
jmp 0x73ef
jmp 0x73f1
movq 0x7bd8(%rip), %rdi      # 0xefd0
movq 0x7bc1(%rip), %rsi      # 0xefc0
callq 0x21c0
movq %rax, -0x208(%rbp)
jmp 0x740d
movq -0x208(%rbp), %rdi
leaq 0x3955(%rip), %rsi      # 0xad70
callq 0x21a0
movq %rax, -0x210(%rbp)
jmp 0x7429
movq -0x210(%rbp), %rdi
leaq 0x3b89(%rip), %rsi      # 0xafc0
callq 0x21a0
movq %rax, -0x218(%rbp)
jmp 0x7445
movq -0x218(%rbp), %rdi
leaq 0x3b68(%rip), %rsi      # 0xafbb
callq 0x21a0
movq %rax, -0x220(%rbp)
jmp 0x7461
movq -0x220(%rbp), %rdi
movq 0x7b51(%rip), %rsi      # 0xefc0
callq 0x21c0
jmp 0x7476
leaq -0xb0(%rbp), %rdi
callq 0x2670
jmp 0x7484
movq 0x7b45(%rip), %rdi      # 0xefd0
movq 0x7b2e(%rip), %rsi      # 0xefc0
callq 0x21c0
jmp 0x7499
movq 0x7b30(%rip), %rdi      # 0xefd0
leaq 0x38fd(%rip), %rsi      # 0xada4
callq 0x21a0
movq %rax, -0x228(%rbp)
jmp 0x74b5
movq -0x228(%rbp), %rdi
leaq 0x38e9(%rip), %rsi      # 0xadac
callq 0x21a0
movq %rax, -0x230(%rbp)
jmp 0x74d1
movq -0x230(%rbp), %rdi
leaq 0x3adc(%rip), %rsi      # 0xafbb
callq 0x21a0
movq %rax, -0x238(%rbp)
jmp 0x74ed
movq -0x238(%rbp), %rdi
movq 0x7ac5(%rip), %rsi      # 0xefc0
callq 0x21c0
jmp 0x7502
movq 0x7ac7(%rip), %rdi      # 0xefd0
leaq 0x351e(%rip), %rsi      # 0xaa2e
callq 0x21a0
movq %rax, -0x240(%rbp)
jmp 0x751e
movq -0x240(%rbp), %rdi
leaq 0x3ab4(%rip), %rsi      # 0xafe0
callq 0x21a0
movq %rax, -0x248(%rbp)
jmp 0x753a
movq -0x248(%rbp), %rdi
movq 0x7a78(%rip), %rsi      # 0xefc0
callq 0x21c0
jmp 0x754f
movq 0x7a7a(%rip), %rdi      # 0xefd0
leaq 0x3a8e(%rip), %rsi      # 0xafeb
callq 0x21a0
movq %rax, -0x250(%rbp)
jmp 0x756b
movq -0x250(%rbp), %rdi
movq 0x7a47(%rip), %rsi      # 0xefc0
callq 0x21c0
jmp 0x7580
movq 0x7a49(%rip), %rdi      # 0xefd0
leaq 0x3a6c(%rip), %rsi      # 0xaffa
callq 0x21a0
movq %rax, -0x258(%rbp)
jmp 0x759c
movq -0x258(%rbp), %rdi
movq 0x7a16(%rip), %rsi      # 0xefc0
callq 0x21c0
jmp 0x75b1
movq 0x7a18(%rip), %rdi      # 0xefd0
leaq 0x3a50(%rip), %rsi      # 0xb00f
callq 0x21a0
movq %rax, -0x260(%rbp)
jmp 0x75cd
movq -0x260(%rbp), %rdi
movq 0x79e5(%rip), %rsi      # 0xefc0
callq 0x21c0
jmp 0x75e2
movq 0x79e7(%rip), %rdi      # 0xefd0
leaq 0x35ca(%rip), %rsi      # 0xabba
callq 0x21a0
movq %rax, -0x268(%rbp)
jmp 0x75fe
movq -0x268(%rbp), %rdi
leaq 0x37db(%rip), %rsi      # 0xade7
callq 0x21a0
movq %rax, -0x270(%rbp)
jmp 0x761a
movq -0x270(%rbp), %rdi
leaq 0x3993(%rip), %rsi      # 0xafbb
callq 0x21a0
movq %rax, -0x278(%rbp)
jmp 0x7636
movq -0x278(%rbp), %rdi
movq 0x797c(%rip), %rsi      # 0xefc0
callq 0x21c0
jmp 0x764b
movq 0x797e(%rip), %rdi      # 0xefd0
leaq 0x39ca(%rip), %rsi      # 0xb023
callq 0x21a0
movq %rax, -0x280(%rbp)
jmp 0x7667
movq -0x280(%rbp), %rdi
leaq 0x3946(%rip), %rsi      # 0xafbb
callq 0x21a0
jmp 0x767c
movq 0x795d(%rip), %rdi      # 0xefe0
leaq -0xc(%rbp), %rsi
callq 0x2110
jmp 0x768e
movq 0x794b(%rip), %rdi      # 0xefe0
callq 0x22d0
jmp 0x769c
movl -0xc(%rbp), %eax
movq %rax, -0x288(%rbp)
subq $0x4, %rax
ja 0x7c0a
movq -0x288(%rbp), %rax
leaq 0x3322(%rip), %rcx      # 0xa9e0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x7dc8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x772c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x7710
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xf8(%rbp), %rdi
callq 0x2120
jmp 0x770e
jmp 0x7710
leaq -0xf9(%rbp), %rdi
callq 0x21d0
leaq -0xd0(%rbp), %rdi
callq 0x2120
jmp 0x772a
jmp 0x772c
leaq -0xd1(%rbp), %rdi
callq 0x21d0
jmp 0x7dbb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x7791
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x7775
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x198(%rbp), %rdi
callq 0x2120
jmp 0x7773
jmp 0x7775
leaq -0x199(%rbp), %rdi
callq 0x21d0
leaq -0x170(%rbp), %rdi
callq 0x2120
jmp 0x778f
jmp 0x7791
leaq -0x171(%rbp), %rdi
callq 0x21d0
jmp 0x7dab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x150(%rbp), %rdi
callq 0x43d0
jmp 0x7d9b
jmp 0x7c75
leaq -0x150(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x2890
jmp 0x77d9
movq 0x77f0(%rip), %rdi      # 0xefd0
movq 0x77d9(%rip), %rsi      # 0xefc0
callq 0x21c0
movq %rax, -0x290(%rbp)
jmp 0x77f5
movq -0x290(%rbp), %rdi
leaq 0x3605(%rip), %rsi      # 0xae08
callq 0x21a0
movq %rax, -0x298(%rbp)
jmp 0x7811
movq -0x298(%rbp), %rdi
leaq 0x35f1(%rip), %rsi      # 0xae10
callq 0x21a0
movq %rax, -0x2a0(%rbp)
jmp 0x782d
movq -0x2a0(%rbp), %rdi
leaq 0x3780(%rip), %rsi      # 0xafbb
callq 0x21a0
jmp 0x7842
movq 0x7797(%rip), %rdi      # 0xefe0
leaq -0x30(%rbp), %rsi
callq 0x2070
jmp 0x7854
leaq -0x150(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x48d0
jmp 0x7866
movq -0x8(%rbp), %rdi
leaq -0x150(%rbp), %rsi
callq 0x52f0
movb %al, -0x2a1(%rbp)
jmp 0x787e
movb -0x2a1(%rbp), %al
testb $0x1, %al
jne 0x78c5
jmp 0x788a
movq -0x8(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x84b0
jmp 0x789c
movq -0x8(%rbp), %rdi
leaq -0x150(%rbp), %rsi
callq 0x51f0
jmp 0x78ae
leaq -0xb0(%rbp), %rdi
leaq -0x150(%rbp), %rsi
callq 0x2890
jmp 0x78c3
jmp 0x7930
movq 0x7704(%rip), %rdi      # 0xefd0
leaq 0x3361(%rip), %rsi      # 0xac34
callq 0x21a0
movq %rax, -0x2b0(%rbp)
jmp 0x78e1
movq -0x2b0(%rbp), %rdi
leaq 0x3745(%rip), %rsi      # 0xb034
callq 0x21a0
movq %rax, -0x2b8(%rbp)
jmp 0x78fd
movq -0x2b8(%rbp), %rdi
leaq 0x36b0(%rip), %rsi      # 0xafbb
callq 0x21a0
movq %rax, -0x2c0(%rbp)
jmp 0x7919
movq -0x2c0(%rbp), %rdi
movq 0x7699(%rip), %rsi      # 0xefc0
callq 0x21c0
jmp 0x792e
jmp 0x7930
jmp 0x7c75
leaq -0x150(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x2890
jmp 0x794a
movq 0x767f(%rip), %rdi      # 0xefd0
movq 0x7668(%rip), %rsi      # 0xefc0
callq 0x21c0
movq %rax, -0x2c8(%rbp)
jmp 0x7966
movq -0x2c8(%rbp), %rdi
leaq 0x3494(%rip), %rsi      # 0xae08
callq 0x21a0
movq %rax, -0x2d0(%rbp)
jmp 0x7982
movq -0x2d0(%rbp), %rdi
leaq 0x36fe(%rip), %rsi      # 0xb08e
callq 0x21a0
movq %rax, -0x2d8(%rbp)
jmp 0x799e
movq -0x2d8(%rbp), %rdi
leaq 0x360f(%rip), %rsi      # 0xafbb
callq 0x21a0
jmp 0x79b3
movq 0x7626(%rip), %rdi      # 0xefe0
leaq -0x50(%rbp), %rsi
callq 0x2070
jmp 0x79c5
leaq -0x150(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x4940
jmp 0x79d7
movq -0x8(%rbp), %rdi
leaq -0x150(%rbp), %rsi
callq 0x52f0
movb %al, -0x2d9(%rbp)
jmp 0x79ef
movb -0x2d9(%rbp), %al
testb $0x1, %al
jne 0x7a39
jmp 0x79fb
movq -0x8(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x84b0
jmp 0x7a0d
movq -0x8(%rbp), %rdi
leaq -0x150(%rbp), %rsi
callq 0x51f0
jmp 0x7a1f
leaq -0xb0(%rbp), %rdi
leaq -0x150(%rbp), %rsi
callq 0x2890
jmp 0x7a34
jmp 0x7ac0
movq 0x7590(%rip), %rdi      # 0xefd0
movq 0x7579(%rip), %rsi      # 0xefc0
callq 0x21c0
movq %rax, -0x2e8(%rbp)
jmp 0x7a55
movq -0x2e8(%rbp), %rdi
leaq 0x31d1(%rip), %rsi      # 0xac34
callq 0x21a0
movq %rax, -0x2f0(%rbp)
jmp 0x7a71
movq -0x2f0(%rbp), %rdi
leaq 0x35b5(%rip), %rsi      # 0xb034
callq 0x21a0
movq %rax, -0x2f8(%rbp)
jmp 0x7a8d
movq -0x2f8(%rbp), %rdi
leaq 0x3520(%rip), %rsi      # 0xafbb
callq 0x21a0
movq %rax, -0x300(%rbp)
jmp 0x7aa9
movq -0x300(%rbp), %rdi
movq 0x7509(%rip), %rsi      # 0xefc0
callq 0x21c0
jmp 0x7abe
jmp 0x7ac0
jmp 0x7c75
movq 0x7504(%rip), %rdi      # 0xefd0
movq 0x74ed(%rip), %rsi      # 0xefc0
callq 0x21c0
movq %rax, -0x308(%rbp)
jmp 0x7ae1
movq -0x308(%rbp), %rdi
leaq 0x3319(%rip), %rsi      # 0xae08
callq 0x21a0
movq %rax, -0x310(%rbp)
jmp 0x7afd
movq -0x310(%rbp), %rdi
leaq 0x3596(%rip), %rsi      # 0xb0a1
callq 0x21a0
movq %rax, -0x318(%rbp)
jmp 0x7b19
movq -0x318(%rbp), %rdi
leaq 0x3494(%rip), %rsi      # 0xafbb
callq 0x21a0
jmp 0x7b2e
movq 0x74ab(%rip), %rdi      # 0xefe0
leaq -0x60(%rbp), %rsi
callq 0x2080
jmp 0x7b40
leaq -0xb0(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x49b0
jmp 0x7b52
movq -0x8(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x85e0
jmp 0x7b64
jmp 0x7c75
movq 0x7460(%rip), %rdi      # 0xefd0
movq 0x7449(%rip), %rsi      # 0xefc0
callq 0x21c0
movq %rax, -0x320(%rbp)
jmp 0x7b85
movq -0x320(%rbp), %rdi
leaq 0x3275(%rip), %rsi      # 0xae08
callq 0x21a0
movq %rax, -0x328(%rbp)
jmp 0x7ba1
movq -0x328(%rbp), %rdi
leaq 0x350a(%rip), %rsi      # 0xb0b9
callq 0x21a0
movq %rax, -0x330(%rbp)
jmp 0x7bbd
movq -0x330(%rbp), %rdi
leaq 0x33f0(%rip), %rsi      # 0xafbb
callq 0x21a0
jmp 0x7bd2
movq 0x7407(%rip), %rdi      # 0xefe0
leaq -0x60(%rbp), %rsi
callq 0x2080
jmp 0x7be4
leaq -0xb0(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x4a10
jmp 0x7bf6
movq -0x8(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x85e0
jmp 0x7c08
jmp 0x7c75
movq 0x73bf(%rip), %rdi      # 0xefd0
leaq 0x301c(%rip), %rsi      # 0xac34
callq 0x21a0
movq %rax, -0x338(%rbp)
jmp 0x7c26
movq -0x338(%rbp), %rdi
leaq 0x31eb(%rip), %rsi      # 0xae1f
callq 0x21a0
movq %rax, -0x340(%rbp)
jmp 0x7c42
movq -0x340(%rbp), %rdi
leaq 0x336b(%rip), %rsi      # 0xafbb
callq 0x21a0
movq %rax, -0x348(%rbp)
jmp 0x7c5e
movq -0x348(%rbp), %rdi
movq 0x7354(%rip), %rsi      # 0xefc0
callq 0x21c0
jmp 0x7c73
jmp 0x7c75
jmp 0x7c77
cmpl $0x0, -0xc(%rbp)
jne 0x73f1
jmp 0x7d5b
movq 0x7343(%rip), %rdi      # 0xefd0
movq 0x732c(%rip), %rsi      # 0xefc0
callq 0x21c0
movq %rax, -0x350(%rbp)
jmp 0x7ca2
movq -0x350(%rbp), %rdi
leaq 0x2f84(%rip), %rsi      # 0xac34
callq 0x21a0
movq %rax, -0x358(%rbp)
jmp 0x7cbe
movq -0x358(%rbp), %rdi
leaq 0x3469(%rip), %rsi      # 0xb135
callq 0x21a0
movq %rax, -0x360(%rbp)
jmp 0x7cda
movq -0x360(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x2180
movq %rax, -0x368(%rbp)
jmp 0x7cf3
movq -0x368(%rbp), %rdi
leaq 0x2d2b(%rip), %rsi      # 0xaa2c
callq 0x21a0
movq %rax, -0x370(%rbp)
jmp 0x7d0f
movq -0x370(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x2180
movq %rax, -0x378(%rbp)
jmp 0x7d28
movq -0x378(%rbp), %rdi
leaq 0x3158(%rip), %rsi      # 0xae8e
callq 0x21a0
movq %rax, -0x380(%rbp)
jmp 0x7d44
movq -0x380(%rbp), %rdi
leaq 0x3269(%rip), %rsi      # 0xafbb
callq 0x21a0
jmp 0x7d59
jmp 0x7d5b
leaq -0x150(%rbp), %rdi
callq 0x43d0
jmp 0x7d69
leaq -0xb0(%rbp), %rdi
callq 0x43d0
jmp 0x7d77
leaq -0x50(%rbp), %rdi
callq 0x2120
jmp 0x7d82
leaq -0x30(%rbp), %rdi
callq 0x2120
jmp 0x7dd5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x7dab
jmp 0x7dab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x7dbb
leaq -0xb0(%rbp), %rdi
callq 0x43d0
jmp 0x7db9
jmp 0x7dbb
leaq -0x50(%rbp), %rdi
callq 0x2120
jmp 0x7dc6
jmp 0x7dc8
leaq -0x30(%rbp), %rdi
callq 0x2120
jmp 0x7dd3
jmp 0x7dde
addq $0x380, %rsp            # imm = 0x380
popq %rbp
retq
movq -0x58(%rbp), %rdi
callq 0x22b0
movq %rax, %rdi
callq 0x45c0
nop