// File: /workspace/github_cpp_makefile_star2_O3/viniciu21[P]PetLolja/./src/PetFera.cpp
// Function: Petfera::PetferaMenu(int&)
void Petfera::PetferaMenu(int &escolha)
{
	string escolha_str;

	cout << "\n\n# Bem Vindo ao PetFera  # \n"
			 << "\n"
			 << "# Temos as seguintes opcaos : # "
			 << "\n\n"
			 << "    1 -> Adicionar animal "
			 << "\n"
			 << "    2 -> Adicionar funcionario "
			 << "\n"
			 << "    3 -> Remover animal "
			 << "\n"
			 << "    4 -> Remover funcionario "
			 << "\n"
			 << "    5 -> Atualizar dados de um animal"
			 << "\n"
			 << "    6 -> Listar animais por funcionario "
			 << "\n"
			 << "    7 -> Listar animais por classe "
			 << "\n"
			 << "    8 -> Listar e Salvar todos funcionarios "
			 << "\n"
			 << "    9 -> Atualizar dados de um funcionario"
			 << "\n"
			 << "    10 -> Listar e Salvar animais "
			 << "\n"
			 << "    11 -> Digite Crtl+c para encerrar "
			 << "\n";

	cout << "Escolha uma Opcao"
			 << "\n";

	cin >> escolha_str;
	stringstream ss;
	ss << escolha_str;
	ss >> escolha;

	switch (escolha)
	{
	case 1:
		cout << "Vamos la cadastrar um animal"
				 << "\n";

		cadastrarAnimal();
		break;
	case 2:
		cout << "Vamos la cadastrar um funcionario"
				 << "\n";
		cadastrarFuncionario();
		break;
	case 3:
		cout << "Vamos la remover um animal"
				 << "\n";

		removerAnimal();
		break;
	case 4:
		cout << "Vamos la remover um funcionario"
				 << "\n";
		removerFuncionario();
		break;
	case 5:
		cout << "Vamos la atualizar os dados"
				 << "\n";

		atualizar_dados_animal();
		break;
	case 6:
		cout << "Vamos la listar animais por funcionario"
				 << "\n";
		listarAnimaisPorFunca();
		break;
	case 7:
		cout << "Vamos la listar animais"
				 << "\n";

		listarAnimaisPorClasse();
		break;
	case 8:
		cout << "Aqui estao todo os Funcionarios na Petfera"
				 << "\n";

		listarTodosFuncaionarios();
		salvar_doc_funcio();

		break;
	case 9:
		cout << "Vamos la atualizar os dados"
				 << "\n";

		atualizar_dados_funcionario();
		break;
	case 10:
		cout << "Esta e a lista de todos os animais da Petfera que vc esta salvando"
				 << "\n";
		cout << "Salvando csv...";
		listarTodosAnimais();
		salvar_doc_animais();
		break;
		break;
	default:
		cout << "\033[1;33m"
				 << "Nao temos essa Opcao, Escolha de 1-11"
				 << "\033[0m"
				 << "\n";
		break;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x1a8, %rsp            # imm = 0x1A8
movq %rsi, %r14
movq %rdi, %rbx
leaq -0x28(%rbp), %r15
movq %r15, -0x10(%r15)
movq $0x0, -0x8(%r15)
movb $0x0, (%r15)
movq 0x2a30f(%rip), %rdi     # 0x3afd0
leaq 0x1cd29(%rip), %rsi     # 0x2d9f1
movl $0x1d, %edx
callq 0x4210
movq 0x2a2f7(%rip), %rdi     # 0x3afd0
leaq 0x1cd51(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x2a2df(%rip), %rdi     # 0x3afd0
leaq 0x1cd17(%rip), %rsi     # 0x2da0f
movl $0x20, %edx
callq 0x4210
movq 0x2a2c7(%rip), %rdi     # 0x3afd0
leaq 0x1cd20(%rip), %rsi     # 0x2da30
movl $0x2, %edx
callq 0x4210
movq 0x2a2af(%rip), %rdi     # 0x3afd0
leaq 0x1cd0b(%rip), %rsi     # 0x2da33
movl $0x1a, %edx
callq 0x4210
movq 0x2a297(%rip), %rdi     # 0x3afd0
leaq 0x1ccf1(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x2a27f(%rip), %rdi     # 0x3afd0
leaq 0x1ccf6(%rip), %rsi     # 0x2da4e
movl $0x1f, %edx
callq 0x4210
movq 0x2a267(%rip), %rdi     # 0x3afd0
leaq 0x1ccc1(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x2a24f(%rip), %rdi     # 0x3afd0
leaq 0x1cce6(%rip), %rsi     # 0x2da6e
movl $0x18, %edx
callq 0x4210
movq 0x2a237(%rip), %rdi     # 0x3afd0
leaq 0x1cc91(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x2a21f(%rip), %rdi     # 0x3afd0
leaq 0x1cccf(%rip), %rsi     # 0x2da87
movl $0x1d, %edx
callq 0x4210
movq 0x2a207(%rip), %rdi     # 0x3afd0
leaq 0x1cc61(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x2a1ef(%rip), %rdi     # 0x3afd0
leaq 0x1ccbd(%rip), %rsi     # 0x2daa5
movl $0x25, %edx
callq 0x4210
movq 0x2a1d7(%rip), %rdi     # 0x3afd0
leaq 0x1cc31(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x2a1bf(%rip), %rdi     # 0x3afd0
leaq 0x1ccb3(%rip), %rsi     # 0x2dacb
movl $0x28, %edx
callq 0x4210
movq 0x2a1a7(%rip), %rdi     # 0x3afd0
leaq 0x1cc01(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x2a18f(%rip), %rdi     # 0x3afd0
leaq 0x1ccac(%rip), %rsi     # 0x2daf4
movl $0x23, %edx
callq 0x4210
movq 0x2a177(%rip), %rdi     # 0x3afd0
leaq 0x1cbd1(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x2a15f(%rip), %rdi     # 0x3afd0
leaq 0x1cca0(%rip), %rsi     # 0x2db18
movl $0x2c, %edx
callq 0x4210
movq 0x2a147(%rip), %rdi     # 0x3afd0
leaq 0x1cba1(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x2a12f(%rip), %rdi     # 0x3afd0
leaq 0x1cc9d(%rip), %rsi     # 0x2db45
movl $0x2a, %edx
callq 0x4210
movq 0x2a117(%rip), %rdi     # 0x3afd0
leaq 0x1cb71(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x2a0ff(%rip), %rdi     # 0x3afd0
leaq 0x1cc98(%rip), %rsi     # 0x2db70
movl $0x22, %edx
callq 0x4210
movq 0x2a0e7(%rip), %rdi     # 0x3afd0
leaq 0x1cb41(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x2a0cf(%rip), %rdi     # 0x3afd0
leaq 0x1cc8b(%rip), %rsi     # 0x2db93
movl $0x26, %edx
callq 0x4210
movq 0x2a0b7(%rip), %rdi     # 0x3afd0
leaq 0x1cb11(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x2a09f(%rip), %rdi     # 0x3afd0
leaq 0x1cc82(%rip), %rsi     # 0x2dbba
movl $0x11, %edx
callq 0x4210
movq 0x2a087(%rip), %rdi     # 0x3afd0
leaq 0x1cae1(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x2a07f(%rip), %rdi     # 0x3afe0
leaq -0x38(%rbp), %rsi
callq 0x4220
leaq -0x1c0(%rbp), %rdi
callq 0x4130
leaq -0x1b0(%rbp), %rdi
movq -0x38(%rbp), %rsi
movq -0x30(%rbp), %rdx
callq 0x4210
leaq -0x1c0(%rbp), %rdi
movq %r14, %rsi
callq 0x4110
movl (%r14), %eax
decl %eax
cmpl $0x9, %eax
ja 0x11204
leaq 0x1c862(%rip), %rcx     # 0x2d810
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x2a012(%rip), %rdi     # 0x3afd0
leaq 0x1cc07(%rip), %rsi     # 0x2dbcc
movl $0x1c, %edx
callq 0x4210
movq 0x29ffa(%rip), %rdi     # 0x3afd0
leaq 0x1ca54(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq %rbx, %rdi
callq 0x11326
jmp 0x1129e
movq 0x29fd5(%rip), %rdi     # 0x3afd0
leaq 0x1cc44(%rip), %rsi     # 0x2dc46
movl $0x1b, %edx
callq 0x4210
movq 0x29fbd(%rip), %rdi     # 0x3afd0
leaq 0x1ca17(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq %rbx, %rdi
callq 0x11c98
jmp 0x1129e
movq 0x29f98(%rip), %rdi     # 0x3afd0
leaq 0x1cc8e(%rip), %rsi     # 0x2dccd
movl $0x42, %edx
callq 0x4210
movq 0x29f80(%rip), %rdi     # 0x3afd0
leaq 0x1c9da(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x29f68(%rip), %rdi     # 0x3afd0
leaq 0x1cca1(%rip), %rsi     # 0x2dd10
movl $0xf, %edx
callq 0x4210
movq %rbx, %rdi
callq 0x12a0a
movq %rbx, %rdi
callq 0x12bd2
jmp 0x1129e
movq 0x29f3b(%rip), %rdi     # 0x3afd0
leaq 0x1cb6f(%rip), %rsi     # 0x2dc0b
movl $0x1a, %edx
callq 0x4210
movq 0x29f23(%rip), %rdi     # 0x3afd0
leaq 0x1c97d(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq %rbx, %rdi
callq 0x11b00
jmp 0x1129e
movq 0x29efe(%rip), %rdi     # 0x3afd0
leaq 0x1cb4d(%rip), %rsi     # 0x2dc26
movl $0x1f, %edx
callq 0x4210
movq 0x29ee6(%rip), %rdi     # 0x3afd0
leaq 0x1c940(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq %rbx, %rdi
callq 0x11bca
jmp 0x1129e
movq 0x29ec1(%rip), %rdi     # 0x3afd0
leaq 0x1cb8c(%rip), %rsi     # 0x2dca2
movl $0x2a, %edx
callq 0x4210
movq 0x29ea9(%rip), %rdi     # 0x3afd0
leaq 0x1c903(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq %rbx, %rdi
callq 0x12048
movq %rbx, %rdi
callq 0x12212
jmp 0x1129e
movq 0x29e7c(%rip), %rdi     # 0x3afd0
leaq 0x1ca8e(%rip), %rsi     # 0x2dbe9
movl $0x21, %edx
callq 0x4210
movq 0x29e64(%rip), %rdi     # 0x3afd0
leaq 0x1c8be(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq %rbx, %rdi
callq 0x11784
jmp 0x1129e
movq 0x29e3f(%rip), %rdi     # 0x3afd0
leaq 0x1caca(%rip), %rsi     # 0x2dc62
movl $0x27, %edx
callq 0x4210
movq 0x29e27(%rip), %rdi     # 0x3afd0
leaq 0x1c881(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq %rbx, %rdi
callq 0x11d8a
jmp 0x1129e
movq 0x29e02(%rip), %rdi     # 0x3afd0
leaq 0x1cab5(%rip), %rsi     # 0x2dc8a
movl $0x17, %edx
callq 0x4210
movq 0x29dea(%rip), %rdi     # 0x3afd0
leaq 0x1c844(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq %rbx, %rdi
callq 0x11ed4
jmp 0x1129e
movq 0x29dc5(%rip), %rdi     # 0x3afd0
leaq 0x1cb0e(%rip), %rsi     # 0x2dd20
movl $0x7, %edx
callq 0x4210
movq 0x29dad(%rip), %rdi     # 0x3afd0
leaq 0x1cafe(%rip), %rsi     # 0x2dd28
movl $0x25, %edx
callq 0x4210
movq 0x29d95(%rip), %rdi     # 0x3afd0
leaq 0x1cb0c(%rip), %rsi     # 0x2dd4e
movl $0x4, %edx
callq 0x4210
movq 0x29d7d(%rip), %rdi     # 0x3afd0
leaq 0x1c7d7(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
jmp 0x1129e
movq 0x29d63(%rip), %rdi     # 0x3afd0
leaq 0x1c9d2(%rip), %rsi     # 0x2dc46
movl $0x1b, %edx
callq 0x4210
movq 0x29d4b(%rip), %rdi     # 0x3afd0
leaq 0x1c7a5(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq %rbx, %rdi
callq 0x12918
movq 0x29d03(%rip), %rsi     # 0x3afa8
leaq -0x1c0(%rbp), %rdi
callq 0x4150
leaq -0x140(%rbp), %rdi
callq 0x40a0
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x112d2
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x41d0
addq $0x1a8, %rsp            # imm = 0x1A8
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x11306
movq %rax, %rbx
movq 0x29cbc(%rip), %rsi     # 0x3afa8
leaq -0x1c0(%rbp), %rdi
callq 0x4150
leaq -0x140(%rbp), %rdi
callq 0x40a0
jmp 0x11309
movq %rax, %rbx
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x1131e
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x41d0
movq %rbx, %rdi
callq 0x42f0