// File: 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
subq $0x310, %rsp            # imm = 0x310
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x1d8(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x4280
movq 0x4ca1a(%rip), %rdi     # 0x5bfc8
leaq 0x373ac(%rip), %rsi     # 0x46961
callq 0x41c0
movq %rax, -0x1d0(%rbp)
jmp 0xf5c3
movq -0x1d0(%rbp), %rdi
leaq 0x373d0(%rip), %rsi     # 0x469a1
callq 0x41c0
movq %rax, -0x1e0(%rbp)
jmp 0xf5df
movq -0x1e0(%rbp), %rdi
leaq 0x37392(%rip), %rsi     # 0x4697f
callq 0x41c0
movq %rax, -0x1e8(%rbp)
jmp 0xf5fb
movq -0x1e8(%rbp), %rdi
leaq 0x37397(%rip), %rsi     # 0x469a0
callq 0x41c0
movq %rax, -0x1f0(%rbp)
jmp 0xf617
movq -0x1f0(%rbp), %rdi
leaq 0x3737e(%rip), %rsi     # 0x469a3
callq 0x41c0
movq %rax, -0x1f8(%rbp)
jmp 0xf633
movq -0x1f8(%rbp), %rdi
leaq 0x37360(%rip), %rsi     # 0x469a1
callq 0x41c0
movq %rax, -0x200(%rbp)
jmp 0xf64f
movq -0x200(%rbp), %rdi
leaq 0x37361(%rip), %rsi     # 0x469be
callq 0x41c0
movq %rax, -0x208(%rbp)
jmp 0xf66b
movq -0x208(%rbp), %rdi
leaq 0x37328(%rip), %rsi     # 0x469a1
callq 0x41c0
movq %rax, -0x210(%rbp)
jmp 0xf687
movq -0x210(%rbp), %rdi
leaq 0x37349(%rip), %rsi     # 0x469de
callq 0x41c0
movq %rax, -0x218(%rbp)
jmp 0xf6a3
movq -0x218(%rbp), %rdi
leaq 0x372f0(%rip), %rsi     # 0x469a1
callq 0x41c0
movq %rax, -0x220(%rbp)
jmp 0xf6bf
movq -0x220(%rbp), %rdi
leaq 0x3732a(%rip), %rsi     # 0x469f7
callq 0x41c0
movq %rax, -0x228(%rbp)
jmp 0xf6db
movq -0x228(%rbp), %rdi
leaq 0x372b8(%rip), %rsi     # 0x469a1
callq 0x41c0
movq %rax, -0x230(%rbp)
jmp 0xf6f7
movq -0x230(%rbp), %rdi
leaq 0x37310(%rip), %rsi     # 0x46a15
callq 0x41c0
movq %rax, -0x238(%rbp)
jmp 0xf713
movq -0x238(%rbp), %rdi
leaq 0x37280(%rip), %rsi     # 0x469a1
callq 0x41c0
movq %rax, -0x240(%rbp)
jmp 0xf72f
movq -0x240(%rbp), %rdi
leaq 0x372fe(%rip), %rsi     # 0x46a3b
callq 0x41c0
movq %rax, -0x248(%rbp)
jmp 0xf74b
movq -0x248(%rbp), %rdi
leaq 0x37248(%rip), %rsi     # 0x469a1
callq 0x41c0
movq %rax, -0x250(%rbp)
jmp 0xf767
movq -0x250(%rbp), %rdi
leaq 0x372ef(%rip), %rsi     # 0x46a64
callq 0x41c0
movq %rax, -0x258(%rbp)
jmp 0xf783
movq -0x258(%rbp), %rdi
leaq 0x37210(%rip), %rsi     # 0x469a1
callq 0x41c0
movq %rax, -0x260(%rbp)
jmp 0xf79f
movq -0x260(%rbp), %rdi
leaq 0x372db(%rip), %rsi     # 0x46a88
callq 0x41c0
movq %rax, -0x268(%rbp)
jmp 0xf7bb
movq -0x268(%rbp), %rdi
leaq 0x371d8(%rip), %rsi     # 0x469a1
callq 0x41c0
movq %rax, -0x270(%rbp)
jmp 0xf7d7
movq -0x270(%rbp), %rdi
leaq 0x372d0(%rip), %rsi     # 0x46ab5
callq 0x41c0
movq %rax, -0x278(%rbp)
jmp 0xf7f3
movq -0x278(%rbp), %rdi
leaq 0x371a0(%rip), %rsi     # 0x469a1
callq 0x41c0
movq %rax, -0x280(%rbp)
jmp 0xf80f
movq -0x280(%rbp), %rdi
leaq 0x372c3(%rip), %rsi     # 0x46ae0
callq 0x41c0
movq %rax, -0x288(%rbp)
jmp 0xf82b
movq -0x288(%rbp), %rdi
leaq 0x37168(%rip), %rsi     # 0x469a1
callq 0x41c0
movq %rax, -0x290(%rbp)
jmp 0xf847
movq -0x290(%rbp), %rdi
leaq 0x372ae(%rip), %rsi     # 0x46b03
callq 0x41c0
movq %rax, -0x298(%rbp)
jmp 0xf863
movq -0x298(%rbp), %rdi
leaq 0x37130(%rip), %rsi     # 0x469a1
callq 0x41c0
jmp 0xf878
movq 0x4c749(%rip), %rdi     # 0x5bfc8
leaq 0x372a4(%rip), %rsi     # 0x46b2a
callq 0x41c0
movq %rax, -0x2a0(%rbp)
jmp 0xf894
movq -0x2a0(%rbp), %rdi
leaq 0x370ff(%rip), %rsi     # 0x469a1
callq 0x41c0
jmp 0xf8a9
movq 0x4c730(%rip), %rdi     # 0x5bfe0
leaq -0x30(%rbp), %rsi
callq 0x4240
jmp 0xf8bb
leaq -0x1c8(%rbp), %rdi
callq 0x4160
jmp 0xf8c9
leaq -0x1b8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x41b0
jmp 0xf8db
movq -0x10(%rbp), %rsi
leaq -0x1c8(%rbp), %rdi
callq 0x4130
jmp 0xf8ed
movq -0x10(%rbp), %rax
movl (%rax), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x2a8(%rbp)
subl $0x9, %eax
ja 0xfc22
movq -0x2a8(%rbp), %rax
leaq 0x36ebf(%rip), %rcx     # 0x467d4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xfcab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x1c8(%rbp), %rdi
callq 0x4170
jmp 0xfcab
movq 0x4c675(%rip), %rdi     # 0x5bfc8
leaq 0x371e2(%rip), %rsi     # 0x46b3c
callq 0x41c0
movq %rax, -0x2b0(%rbp)
jmp 0xf968
movq -0x2b0(%rbp), %rdi
leaq 0x3702b(%rip), %rsi     # 0x469a1
callq 0x41c0
jmp 0xf97d
movq -0x1d8(%rbp), %rdi
callq 0xfcc0
jmp 0xf98b
jmp 0xfc8d
movq 0x4c631(%rip), %rdi     # 0x5bfc8
leaq 0x371bb(%rip), %rsi     # 0x46b59
callq 0x41c0
movq %rax, -0x2b8(%rbp)
jmp 0xf9ac
movq -0x2b8(%rbp), %rdi
leaq 0x36fe7(%rip), %rsi     # 0x469a1
callq 0x41c0
jmp 0xf9c1
movq -0x1d8(%rbp), %rdi
callq 0x100b0
jmp 0xf9cf
jmp 0xfc8d
movq 0x4c5ed(%rip), %rdi     # 0x5bfc8
leaq 0x37199(%rip), %rsi     # 0x46b7b
callq 0x41c0
movq %rax, -0x2c0(%rbp)
jmp 0xf9f0
movq -0x2c0(%rbp), %rdi
leaq 0x36fa3(%rip), %rsi     # 0x469a1
callq 0x41c0
jmp 0xfa05
movq -0x1d8(%rbp), %rdi
callq 0x103c0
jmp 0xfa13
jmp 0xfc8d
movq 0x4c5a9(%rip), %rdi     # 0x5bfc8
leaq 0x37170(%rip), %rsi     # 0x46b96
callq 0x41c0
movq %rax, -0x2c8(%rbp)
jmp 0xfa34
movq -0x2c8(%rbp), %rdi
leaq 0x36f5f(%rip), %rsi     # 0x469a1
callq 0x41c0
jmp 0xfa49
movq -0x1d8(%rbp), %rdi
callq 0x104e0
jmp 0xfa57
jmp 0xfc8d
movq 0x4c565(%rip), %rdi     # 0x5bfc8
leaq 0x3714c(%rip), %rsi     # 0x46bb6
callq 0x41c0
movq %rax, -0x2d0(%rbp)
jmp 0xfa78
movq -0x2d0(%rbp), %rdi
leaq 0x36f1b(%rip), %rsi     # 0x469a1
callq 0x41c0
jmp 0xfa8d
movq -0x1d8(%rbp), %rdi
callq 0x10610
jmp 0xfa9b
jmp 0xfc8d
movq 0x4c521(%rip), %rdi     # 0x5bfc8
leaq 0x37124(%rip), %rsi     # 0x46bd2
callq 0x41c0
movq %rax, -0x2d8(%rbp)
jmp 0xfabc
movq -0x2d8(%rbp), %rdi
leaq 0x36ed7(%rip), %rsi     # 0x469a1
callq 0x41c0
jmp 0xfad1
movq -0x1d8(%rbp), %rdi
callq 0x10730
jmp 0xfadf
jmp 0xfc8d
movq 0x4c4dd(%rip), %rdi     # 0x5bfc8
leaq 0x37108(%rip), %rsi     # 0x46bfa
callq 0x41c0
movq %rax, -0x2e0(%rbp)
jmp 0xfb00
movq -0x2e0(%rbp), %rdi
leaq 0x36e93(%rip), %rsi     # 0x469a1
callq 0x41c0
jmp 0xfb15
movq -0x1d8(%rbp), %rdi
callq 0x10910
jmp 0xfb23
jmp 0xfc8d
movq 0x4c499(%rip), %rdi     # 0x5bfc8
leaq 0x370dc(%rip), %rsi     # 0x46c12
callq 0x41c0
movq %rax, -0x2e8(%rbp)
jmp 0xfb44
movq -0x2e8(%rbp), %rdi
leaq 0x36e4f(%rip), %rsi     # 0x469a1
callq 0x41c0
jmp 0xfb59
movq -0x1d8(%rbp), %rdi
callq 0x10a90
jmp 0xfb67
movq -0x1d8(%rbp), %rdi
callq 0x10cc0
jmp 0xfb75
jmp 0xfc8d
movq 0x4c447(%rip), %rdi     # 0x5bfc8
leaq 0x3702e(%rip), %rsi     # 0x46bb6
callq 0x41c0
movq %rax, -0x2f0(%rbp)
jmp 0xfb96
movq -0x2f0(%rbp), %rdi
leaq 0x36dfd(%rip), %rsi     # 0x469a1
callq 0x41c0
jmp 0xfbab
movq -0x1d8(%rbp), %rdi
callq 0x11920
jmp 0xfbb9
jmp 0xfc8d
movq 0x4c403(%rip), %rdi     # 0x5bfc8
leaq 0x37071(%rip), %rsi     # 0x46c3d
callq 0x41c0
movq %rax, -0x2f8(%rbp)
jmp 0xfbda
movq -0x2f8(%rbp), %rdi
leaq 0x36db9(%rip), %rsi     # 0x469a1
callq 0x41c0
jmp 0xfbef
movq 0x4c3d2(%rip), %rdi     # 0x5bfc8
leaq 0x37083(%rip), %rsi     # 0x46c80
callq 0x41c0
jmp 0xfc04
movq -0x1d8(%rbp), %rdi
callq 0x11a40
jmp 0xfc12
movq -0x1d8(%rbp), %rdi
callq 0x11c60
jmp 0xfc20
jmp 0xfc8d
movq 0x4c39f(%rip), %rdi     # 0x5bfc8
leaq 0x37060(%rip), %rsi     # 0x46c90
callq 0x41c0
movq %rax, -0x300(%rbp)
jmp 0xfc3e
movq -0x300(%rbp), %rdi
leaq 0x3704c(%rip), %rsi     # 0x46c98
callq 0x41c0
movq %rax, -0x308(%rbp)
jmp 0xfc5a
movq -0x308(%rbp), %rdi
leaq 0x37056(%rip), %rsi     # 0x46cbe
callq 0x41c0
movq %rax, -0x310(%rbp)
jmp 0xfc76
movq -0x310(%rbp), %rdi
leaq 0x36d1d(%rip), %rsi     # 0x469a1
callq 0x41c0
jmp 0xfc8b
jmp 0xfc8d
leaq -0x1c8(%rbp), %rdi
callq 0x4170
leaq -0x30(%rbp), %rdi
callq 0x4140
addq $0x310, %rsp            # imm = 0x310
popq %rbp
retq
leaq -0x30(%rbp), %rdi
callq 0x4140
movq -0x38(%rbp), %rdi
callq 0x4320
nopl (%rax)