// File: /workspace/github_cpp_makefile_star2_O2/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 %r14
pushq %rbx
subq $0x1b0, %rsp            # imm = 0x1B0
movq %rsi, %r14
movq %rdi, %rbx
leaq -0x20(%rbp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
movq 0x241ab(%rip), %rdi     # 0x2efc8
leaq 0x14bad(%rip), %rsi     # 0x1f9d1
callq 0x41a0
leaq 0x14be1(%rip), %rsi     # 0x1fa11
movq %rax, %rdi
callq 0x41a0
leaq 0x14bb0(%rip), %rsi     # 0x1f9ef
movq %rax, %rdi
callq 0x41a0
leaq 0x14bc2(%rip), %rsi     # 0x1fa10
movq %rax, %rdi
callq 0x41a0
leaq 0x14bb6(%rip), %rsi     # 0x1fa13
movq %rax, %rdi
callq 0x41a0
leaq 0x14ba5(%rip), %rsi     # 0x1fa11
movq %rax, %rdi
callq 0x41a0
leaq 0x14bb3(%rip), %rsi     # 0x1fa2e
movq %rax, %rdi
callq 0x41a0
leaq 0x14b87(%rip), %rsi     # 0x1fa11
movq %rax, %rdi
callq 0x41a0
leaq 0x14bb5(%rip), %rsi     # 0x1fa4e
movq %rax, %rdi
callq 0x41a0
leaq 0x14b69(%rip), %rsi     # 0x1fa11
movq %rax, %rdi
callq 0x41a0
leaq 0x14bb0(%rip), %rsi     # 0x1fa67
movq %rax, %rdi
callq 0x41a0
leaq 0x14b4b(%rip), %rsi     # 0x1fa11
movq %rax, %rdi
callq 0x41a0
leaq 0x14bb0(%rip), %rsi     # 0x1fa85
movq %rax, %rdi
callq 0x41a0
leaq 0x14b2d(%rip), %rsi     # 0x1fa11
movq %rax, %rdi
callq 0x41a0
leaq 0x14bb8(%rip), %rsi     # 0x1faab
movq %rax, %rdi
callq 0x41a0
leaq 0x14b0f(%rip), %rsi     # 0x1fa11
movq %rax, %rdi
callq 0x41a0
leaq 0x14bc3(%rip), %rsi     # 0x1fad4
movq %rax, %rdi
callq 0x41a0
leaq 0x14af1(%rip), %rsi     # 0x1fa11
movq %rax, %rdi
callq 0x41a0
leaq 0x14bc9(%rip), %rsi     # 0x1faf8
movq %rax, %rdi
callq 0x41a0
leaq 0x14ad3(%rip), %rsi     # 0x1fa11
movq %rax, %rdi
callq 0x41a0
leaq 0x14bd8(%rip), %rsi     # 0x1fb25
movq %rax, %rdi
callq 0x41a0
leaq 0x14ab5(%rip), %rsi     # 0x1fa11
movq %rax, %rdi
callq 0x41a0
leaq 0x14be5(%rip), %rsi     # 0x1fb50
movq %rax, %rdi
callq 0x41a0
leaq 0x14a97(%rip), %rsi     # 0x1fa11
movq %rax, %rdi
callq 0x41a0
leaq 0x14bea(%rip), %rsi     # 0x1fb73
movq %rax, %rdi
callq 0x41a0
leaq 0x14a79(%rip), %rsi     # 0x1fa11
movq %rax, %rdi
callq 0x41a0
movq 0x24021(%rip), %rdi     # 0x2efc8
leaq 0x14bec(%rip), %rsi     # 0x1fb9a
callq 0x41a0
leaq 0x14a57(%rip), %rsi     # 0x1fa11
movq %rax, %rdi
callq 0x41a0
movq 0x24017(%rip), %rdi     # 0x2efe0
leaq -0x30(%rbp), %rsi
callq 0x41f0
leaq -0x1b8(%rbp), %rdi
callq 0x4140
leaq -0x1a8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x4190
leaq -0x1b8(%rbp), %rdi
movq %r14, %rsi
callq 0x4130
movl (%r14), %eax
decl %eax
cmpl $0x9, %eax
ja 0xb1e2
leaq 0x147de(%rip), %rcx     # 0x1f7f0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x23fa6(%rip), %rdi     # 0x2efc8
leaq 0x14b83(%rip), %rsi     # 0x1fbac
callq 0x41a0
leaq 0x149dc(%rip), %rsi     # 0x1fa11
movq %rax, %rdi
callq 0x41a0
movq %rbx, %rdi
callq 0xb296
jmp 0xb24e
movq 0x23f77(%rip), %rdi     # 0x2efc8
leaq 0x14bce(%rip), %rsi     # 0x1fc26
callq 0x41a0
leaq 0x149ad(%rip), %rsi     # 0x1fa11
movq %rax, %rdi
callq 0x41a0
movq %rbx, %rdi
callq 0xb82e
jmp 0xb24e
movq 0x23f48(%rip), %rdi     # 0x2efc8
leaq 0x14c26(%rip), %rsi     # 0x1fcad
callq 0x41a0
leaq 0x1497e(%rip), %rsi     # 0x1fa11
movq %rax, %rdi
callq 0x41a0
movq 0x23f26(%rip), %rdi     # 0x2efc8
leaq 0x14c47(%rip), %rsi     # 0x1fcf0
callq 0x41a0
movq %rbx, %rdi
callq 0xc1ea
movq %rbx, %rdi
callq 0xc306
jmp 0xb24e
movq 0x23efe(%rip), %rdi     # 0x2efc8
leaq 0x14b1a(%rip), %rsi     # 0x1fbeb
callq 0x41a0
leaq 0x14934(%rip), %rsi     # 0x1fa11
movq %rax, %rdi
callq 0x41a0
movq %rbx, %rdi
callq 0xb6f8
jmp 0xb24e
movq 0x23ecf(%rip), %rdi     # 0x2efc8
leaq 0x14b06(%rip), %rsi     # 0x1fc06
callq 0x41a0
leaq 0x14905(%rip), %rsi     # 0x1fa11
movq %rax, %rdi
callq 0x41a0
movq %rbx, %rdi
callq 0xb790
jmp 0xb24e
movq 0x23ea0(%rip), %rdi     # 0x2efc8
leaq 0x14b53(%rip), %rsi     # 0x1fc82
callq 0x41a0
leaq 0x148d6(%rip), %rsi     # 0x1fa11
movq %rax, %rdi
callq 0x41a0
movq %rbx, %rdi
callq 0xbb26
movq %rbx, %rdi
callq 0xbc44
jmp 0xb24e
movq 0x23e69(%rip), %rdi     # 0x2efc8
leaq 0x14a63(%rip), %rsi     # 0x1fbc9
callq 0x41a0
leaq 0x1489f(%rip), %rsi     # 0x1fa11
movq %rax, %rdi
callq 0x41a0
movq %rbx, %rdi
callq 0xb51e
jmp 0xb24e
movq 0x23e3a(%rip), %rdi     # 0x2efc8
leaq 0x14aad(%rip), %rsi     # 0x1fc42
callq 0x41a0
leaq 0x14870(%rip), %rsi     # 0x1fa11
movq %rax, %rdi
callq 0x41a0
movq %rbx, %rdi
callq 0xb8ea
jmp 0xb24e
movq 0x23e0b(%rip), %rdi     # 0x2efc8
leaq 0x14aa6(%rip), %rsi     # 0x1fc6a
callq 0x41a0
leaq 0x14841(%rip), %rsi     # 0x1fa11
movq %rax, %rdi
callq 0x41a0
movq %rbx, %rdi
callq 0xba04
jmp 0xb24e
movq 0x23ddf(%rip), %rdi     # 0x2efc8
leaq 0x14b10(%rip), %rsi     # 0x1fd00
callq 0x41a0
leaq 0x14b0c(%rip), %rsi     # 0x1fd08
movq %rax, %rdi
callq 0x41a0
leaq 0x14b23(%rip), %rsi     # 0x1fd2e
movq %rax, %rdi
callq 0x41a0
leaq 0x147f7(%rip), %rsi     # 0x1fa11
movq %rax, %rdi
callq 0x41a0
jmp 0xb24e
movq 0x23d9d(%rip), %rdi     # 0x2efc8
leaq 0x149f4(%rip), %rsi     # 0x1fc26
callq 0x41a0
leaq 0x147d3(%rip), %rsi     # 0x1fa11
movq %rax, %rdi
callq 0x41a0
movq %rbx, %rdi
callq 0xc130
leaq -0x1b8(%rbp), %rdi
callq 0x4150
leaq -0x30(%rbp), %rdi
callq 0x40e0
addq $0x1b0, %rsp            # imm = 0x1B0
popq %rbx
popq %r14
popq %rbp
retq
jmp 0xb282
movq %rax, %rbx
leaq -0x1b8(%rbp), %rdi
callq 0x4150
jmp 0xb285
movq %rax, %rbx
leaq -0x30(%rbp), %rdi
callq 0x40e0
movq %rbx, %rdi
callq 0x42c0