// File: /workspace/github_cpp_makefile_star2_O1/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 0x2a37b(%rip), %rdi     # 0x3afd0
leaq 0x1cd95(%rip), %rsi     # 0x2d9f1
movl $0x1d, %edx
callq 0x4210
movq 0x2a363(%rip), %rdi     # 0x3afd0
leaq 0x1cdbd(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x2a34b(%rip), %rdi     # 0x3afd0
leaq 0x1cd83(%rip), %rsi     # 0x2da0f
movl $0x20, %edx
callq 0x4210
movq 0x2a333(%rip), %rdi     # 0x3afd0
leaq 0x1cd8c(%rip), %rsi     # 0x2da30
movl $0x2, %edx
callq 0x4210
movq 0x2a31b(%rip), %rdi     # 0x3afd0
leaq 0x1cd77(%rip), %rsi     # 0x2da33
movl $0x1a, %edx
callq 0x4210
movq 0x2a303(%rip), %rdi     # 0x3afd0
leaq 0x1cd5d(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x2a2eb(%rip), %rdi     # 0x3afd0
leaq 0x1cd62(%rip), %rsi     # 0x2da4e
movl $0x1f, %edx
callq 0x4210
movq 0x2a2d3(%rip), %rdi     # 0x3afd0
leaq 0x1cd2d(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x2a2bb(%rip), %rdi     # 0x3afd0
leaq 0x1cd52(%rip), %rsi     # 0x2da6e
movl $0x18, %edx
callq 0x4210
movq 0x2a2a3(%rip), %rdi     # 0x3afd0
leaq 0x1ccfd(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x2a28b(%rip), %rdi     # 0x3afd0
leaq 0x1cd3b(%rip), %rsi     # 0x2da87
movl $0x1d, %edx
callq 0x4210
movq 0x2a273(%rip), %rdi     # 0x3afd0
leaq 0x1cccd(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x2a25b(%rip), %rdi     # 0x3afd0
leaq 0x1cd29(%rip), %rsi     # 0x2daa5
movl $0x25, %edx
callq 0x4210
movq 0x2a243(%rip), %rdi     # 0x3afd0
leaq 0x1cc9d(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x2a22b(%rip), %rdi     # 0x3afd0
leaq 0x1cd1f(%rip), %rsi     # 0x2dacb
movl $0x28, %edx
callq 0x4210
movq 0x2a213(%rip), %rdi     # 0x3afd0
leaq 0x1cc6d(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x2a1fb(%rip), %rdi     # 0x3afd0
leaq 0x1cd18(%rip), %rsi     # 0x2daf4
movl $0x23, %edx
callq 0x4210
movq 0x2a1e3(%rip), %rdi     # 0x3afd0
leaq 0x1cc3d(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x2a1cb(%rip), %rdi     # 0x3afd0
leaq 0x1cd0c(%rip), %rsi     # 0x2db18
movl $0x2c, %edx
callq 0x4210
movq 0x2a1b3(%rip), %rdi     # 0x3afd0
leaq 0x1cc0d(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x2a19b(%rip), %rdi     # 0x3afd0
leaq 0x1cd09(%rip), %rsi     # 0x2db45
movl $0x2a, %edx
callq 0x4210
movq 0x2a183(%rip), %rdi     # 0x3afd0
leaq 0x1cbdd(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x2a16b(%rip), %rdi     # 0x3afd0
leaq 0x1cd04(%rip), %rsi     # 0x2db70
movl $0x22, %edx
callq 0x4210
movq 0x2a153(%rip), %rdi     # 0x3afd0
leaq 0x1cbad(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x2a13b(%rip), %rdi     # 0x3afd0
leaq 0x1ccf7(%rip), %rsi     # 0x2db93
movl $0x26, %edx
callq 0x4210
movq 0x2a123(%rip), %rdi     # 0x3afd0
leaq 0x1cb7d(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x2a10b(%rip), %rdi     # 0x3afd0
leaq 0x1ccee(%rip), %rsi     # 0x2dbba
movl $0x11, %edx
callq 0x4210
movq 0x2a0f3(%rip), %rdi     # 0x3afd0
leaq 0x1cb4d(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x2a0eb(%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 0x11198
leaq 0x1c8ce(%rip), %rcx     # 0x2d810
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x2a07e(%rip), %rdi     # 0x3afd0
leaq 0x1cc73(%rip), %rsi     # 0x2dbcc
movl $0x1c, %edx
callq 0x4210
movq 0x2a066(%rip), %rdi     # 0x3afd0
leaq 0x1cac0(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq %rbx, %rdi
callq 0x112ba
jmp 0x11232
movq 0x2a041(%rip), %rdi     # 0x3afd0
leaq 0x1ccb0(%rip), %rsi     # 0x2dc46
movl $0x1b, %edx
callq 0x4210
movq 0x2a029(%rip), %rdi     # 0x3afd0
leaq 0x1ca83(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq %rbx, %rdi
callq 0x11c2c
jmp 0x11232
movq 0x2a004(%rip), %rdi     # 0x3afd0
leaq 0x1ccfa(%rip), %rsi     # 0x2dccd
movl $0x42, %edx
callq 0x4210
movq 0x29fec(%rip), %rdi     # 0x3afd0
leaq 0x1ca46(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x29fd4(%rip), %rdi     # 0x3afd0
leaq 0x1cd0d(%rip), %rsi     # 0x2dd10
movl $0xf, %edx
callq 0x4210
movq %rbx, %rdi
callq 0x12998
movq %rbx, %rdi
callq 0x12b5c
jmp 0x11232
movq 0x29fa7(%rip), %rdi     # 0x3afd0
leaq 0x1cbdb(%rip), %rsi     # 0x2dc0b
movl $0x1a, %edx
callq 0x4210
movq 0x29f8f(%rip), %rdi     # 0x3afd0
leaq 0x1c9e9(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq %rbx, %rdi
callq 0x11a94
jmp 0x11232
movq 0x29f6a(%rip), %rdi     # 0x3afd0
leaq 0x1cbb9(%rip), %rsi     # 0x2dc26
movl $0x1f, %edx
callq 0x4210
movq 0x29f52(%rip), %rdi     # 0x3afd0
leaq 0x1c9ac(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq %rbx, %rdi
callq 0x11b5e
jmp 0x11232
movq 0x29f2d(%rip), %rdi     # 0x3afd0
leaq 0x1cbf8(%rip), %rsi     # 0x2dca2
movl $0x2a, %edx
callq 0x4210
movq 0x29f15(%rip), %rdi     # 0x3afd0
leaq 0x1c96f(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq %rbx, %rdi
callq 0x11fdc
movq %rbx, %rdi
callq 0x121a2
jmp 0x11232
movq 0x29ee8(%rip), %rdi     # 0x3afd0
leaq 0x1cafa(%rip), %rsi     # 0x2dbe9
movl $0x21, %edx
callq 0x4210
movq 0x29ed0(%rip), %rdi     # 0x3afd0
leaq 0x1c92a(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq %rbx, %rdi
callq 0x11718
jmp 0x11232
movq 0x29eab(%rip), %rdi     # 0x3afd0
leaq 0x1cb36(%rip), %rsi     # 0x2dc62
movl $0x27, %edx
callq 0x4210
movq 0x29e93(%rip), %rdi     # 0x3afd0
leaq 0x1c8ed(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq %rbx, %rdi
callq 0x11d1e
jmp 0x11232
movq 0x29e6e(%rip), %rdi     # 0x3afd0
leaq 0x1cb21(%rip), %rsi     # 0x2dc8a
movl $0x17, %edx
callq 0x4210
movq 0x29e56(%rip), %rdi     # 0x3afd0
leaq 0x1c8b0(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq %rbx, %rdi
callq 0x11e68
jmp 0x11232
movq 0x29e31(%rip), %rdi     # 0x3afd0
leaq 0x1cb7a(%rip), %rsi     # 0x2dd20
movl $0x7, %edx
callq 0x4210
movq 0x29e19(%rip), %rdi     # 0x3afd0
leaq 0x1cb6a(%rip), %rsi     # 0x2dd28
movl $0x25, %edx
callq 0x4210
movq 0x29e01(%rip), %rdi     # 0x3afd0
leaq 0x1cb78(%rip), %rsi     # 0x2dd4e
movl $0x4, %edx
callq 0x4210
movq 0x29de9(%rip), %rdi     # 0x3afd0
leaq 0x1c843(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
jmp 0x11232
movq 0x29dcf(%rip), %rdi     # 0x3afd0
leaq 0x1ca3e(%rip), %rsi     # 0x2dc46
movl $0x1b, %edx
callq 0x4210
movq 0x29db7(%rip), %rdi     # 0x3afd0
leaq 0x1c811(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq %rbx, %rdi
callq 0x12896
movq 0x29d6f(%rip), %rsi     # 0x3afa8
leaq -0x1c0(%rbp), %rdi
callq 0x4150
leaq -0x140(%rbp), %rdi
callq 0x40a0
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x11266
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x41d0
addq $0x1a8, %rsp            # imm = 0x1A8
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x1129a
movq %rax, %rbx
movq 0x29d28(%rip), %rsi     # 0x3afa8
leaq -0x1c0(%rbp), %rdi
callq 0x4150
leaq -0x140(%rbp), %rdi
callq 0x40a0
jmp 0x1129d
movq %rax, %rbx
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x112b2
movq -0x28(%rbp), %rsi
incq %rsi
callq 0x41d0
movq %rbx, %rdi
callq 0x42f0