// File: /workspace/github_cpp_makefile_star2_O3/DaCasBe[P]Gestion-de-asignaturas-mediante-listas-doblemente-enlazadas-ordenadas/funcionesAuxiliares.cpp
// Function: ed::grabarAsignatura(ed::Asignatura&)
void ed::grabarAsignatura(ed::Asignatura  &asignatura){
  std::string nombreFichero;

  std::cout << PURPLE << "Introduce el nombre del fichero " << BPURPLE << "(no olvides la extension .txt): " << RESET;
  std::cin >> nombreFichero;

  if(asignatura.estaVacia()){ //La asignatura esta vacia
	std::cout << std::endl << ONIRED << "Error: no hay ninguna asignatura cargada" << RESET << std::endl;
	std::cin.ignore();
  }

  else{ //La asignatura no esta vacia
	if(asignatura.grabarFichero(nombreFichero)){ //Se ha grabado la asignatura en el fichero
		std::cout << std::endl << ICYAN << "Asignatura grabada correctamente" << RESET << std::endl;
		std::cin.ignore();
	}
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x28, %rsp
movq %rdi, %rbx
leaq -0x28(%rbp), %r15
movq %r15, -0x10(%r15)
movq $0x0, -0x8(%r15)
movb $0x0, (%r15)
movq 0x71e3(%rip), %rdi      # 0xbfd0
leaq 0x410d(%rip), %rsi      # 0x8f01
movl $0x7, %edx
callq 0x2180
movq 0x71cb(%rip), %rdi      # 0xbfd0
leaq 0x40fd(%rip), %rsi      # 0x8f09
movl $0x20, %edx
callq 0x2180
movq 0x71b3(%rip), %rdi      # 0xbfd0
leaq 0x4106(%rip), %rsi      # 0x8f2a
movl $0x7, %edx
callq 0x2180
movq 0x719b(%rip), %rdi      # 0xbfd0
leaq 0x40f6(%rip), %rsi      # 0x8f32
movl $0x20, %edx
callq 0x2180
movq 0x7183(%rip), %r14      # 0xbfd0
leaq 0x31d2(%rip), %rsi      # 0x8026
movl $0x4, %edx
movq %r14, %rdi
callq 0x2180
movq 0x7178(%rip), %rdi      # 0xbfe0
leaq -0x38(%rbp), %rsi
callq 0x2190
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x10(%rax)
testb %al, %al
je 0x4f05
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq 0x7130(%rip), %rdi      # 0xbfd0
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movq %rax, %rbx
leaq 0x3d3b(%rip), %rsi      # 0x8bf2
movl $0x8, %edx
movq %rax, %rdi
callq 0x2180
leaq 0x40b1(%rip), %rsi      # 0x8f7c
movl $0x28, %edx
movq %rbx, %rdi
callq 0x2180
leaq 0x3147(%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
jmp 0x4f97
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x425c
testb %al, %al
je 0x4fb6
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x2140
movsbl %al, %esi
movq 0x7099(%rip), %rdi      # 0xbfd0
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movq %rax, %rbx
leaq 0x4005(%rip), %rsi      # 0x8f53
movl $0x7, %edx
movq %rax, %rdi
callq 0x2180
leaq 0x4043(%rip), %rsi      # 0x8fa5
movl $0x20, %edx
movq %rbx, %rdi
callq 0x2180
leaq 0x30b0(%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
callq 0x20f0
movq 0x702f(%rip), %rdi      # 0xbfe0
callq 0x2240
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x4fc4
callq 0x2130
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x4fe0
callq 0x2130
movq %rbx, %rdi
callq 0x2220