// File: viniciu21[P]PetLolja/./src/PetFera.cpp
// Function: Petfera::cadastrarAnimal()
void Petfera::cadastrarAnimal()
{
	short escolhaTipo;
	string escolha_str;

	cout << "\nOpcao Escolhida: Animal\n"
			 << endl;
	cout << "Escolha abaixo o tipo de animal para cadastro: \n"
			 << endl;
	cout << " 1 - Cadastrar Anfibio" << endl;
	cout << " 2 - Cadastrar Mamifero" << endl;
	cout << " 3 - Cadastrar Ave" << endl;
	cout << " 4 - Cadastrar Reptil" << endl;
	cout << " 5 - Voltar para o menu" << endl;

	cin >> escolha_str;
	stringstream ss;
	ss << escolha_str;
	ss >> escolhaTipo;

	switch (escolhaTipo)
	{
	case 1:
		cout << "cadastrando Anfibio"
				 << "\n";
		cadastrarAnfibio();
		break;
	case 2:
		cout << "cadastrando Mamifero"
				 << "\n";
		cadastrarMamifero();
		break;
	case 3:
		cout << "cadastrando Ave"
				 << "\n";
		cadastrarAve();
		break;
	case 4:
		cout << "cadastrando Reptil"
				 << "\n";
		cadastrarReptil();
		break;

	case 5:

		inicio();

		break;

	default:

		cout << "\033[1;33m"
				 << "Nao temos essa Opcao, Escolha de 1-5"
				 << "\033[0m"
				 << "\n";
		cadastrarAnimal();

		break;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x250, %rsp            # imm = 0x250
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x1d8(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x4280
movq 0x4c2de(%rip), %rdi     # 0x5bfc8
leaq 0x37772(%rip), %rsi     # 0x47463
callq 0x41c0
movq %rax, -0x1d0(%rbp)
jmp 0xfcff
movq -0x1d0(%rbp), %rdi
movq 0x4c2a3(%rip), %rsi     # 0x5bfb0
callq 0x41f0
jmp 0xfd14
movq 0x4c2ad(%rip), %rdi     # 0x5bfc8
leaq 0x3775b(%rip), %rsi     # 0x4747d
callq 0x41c0
movq %rax, -0x1e0(%rbp)
jmp 0xfd30
movq -0x1e0(%rbp), %rdi
movq 0x4c272(%rip), %rsi     # 0x5bfb0
callq 0x41f0
jmp 0xfd45
movq 0x4c27c(%rip), %rdi     # 0x5bfc8
leaq 0x3775b(%rip), %rsi     # 0x474ae
callq 0x41c0
movq %rax, -0x1e8(%rbp)
jmp 0xfd61
movq -0x1e8(%rbp), %rdi
movq 0x4c241(%rip), %rsi     # 0x5bfb0
callq 0x41f0
jmp 0xfd76
movq 0x4c24b(%rip), %rdi     # 0x5bfc8
leaq 0x37741(%rip), %rsi     # 0x474c5
callq 0x41c0
movq %rax, -0x1f0(%rbp)
jmp 0xfd92
movq -0x1f0(%rbp), %rdi
movq 0x4c210(%rip), %rsi     # 0x5bfb0
callq 0x41f0
jmp 0xfda7
movq 0x4c21a(%rip), %rdi     # 0x5bfc8
leaq 0x37728(%rip), %rsi     # 0x474dd
callq 0x41c0
movq %rax, -0x1f8(%rbp)
jmp 0xfdc3
movq -0x1f8(%rbp), %rdi
movq 0x4c1df(%rip), %rsi     # 0x5bfb0
callq 0x41f0
jmp 0xfdd8
movq 0x4c1e9(%rip), %rdi     # 0x5bfc8
leaq 0x3770a(%rip), %rsi     # 0x474f0
callq 0x41c0
movq %rax, -0x200(%rbp)
jmp 0xfdf4
movq -0x200(%rbp), %rdi
movq 0x4c1ae(%rip), %rsi     # 0x5bfb0
callq 0x41f0
jmp 0xfe09
movq 0x4c1b8(%rip), %rdi     # 0x5bfc8
leaq 0x376ef(%rip), %rsi     # 0x47506
callq 0x41c0
movq %rax, -0x208(%rbp)
jmp 0xfe25
movq -0x208(%rbp), %rdi
movq 0x4c17d(%rip), %rsi     # 0x5bfb0
callq 0x41f0
jmp 0xfe3a
movq 0x4c19f(%rip), %rdi     # 0x5bfe0
leaq -0x30(%rbp), %rsi
callq 0x4240
jmp 0xfe4c
leaq -0x1c8(%rbp), %rdi
callq 0x4160
jmp 0xfe5a
leaq -0x1b8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x41b0
jmp 0xfe6c
leaq -0x1c8(%rbp), %rdi
leaq -0xa(%rbp), %rsi
callq 0x4050
jmp 0xfe7e
movswl -0xa(%rbp), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x210(%rbp)
subl $0x4, %eax
ja 0xfffb
movq -0x210(%rbp), %rax
leaq 0x36958(%rip), %rcx     # 0x467fc
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 0x10092
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x1c8(%rbp), %rdi
callq 0x4170
jmp 0x10092
movq 0x4c0e6(%rip), %rdi     # 0x5bfc8
leaq 0x37635(%rip), %rsi     # 0x4751e
callq 0x41c0
movq %rax, -0x218(%rbp)
jmp 0xfef7
movq -0x218(%rbp), %rdi
leaq 0x36a9c(%rip), %rsi     # 0x469a1
callq 0x41c0
jmp 0xff0c
movq -0x1d8(%rbp), %rdi
callq 0x1bd50
jmp 0xff1a
jmp 0x10074
movq 0x4c0a2(%rip), %rdi     # 0x5bfc8
leaq 0x37605(%rip), %rsi     # 0x47532
callq 0x41c0
movq %rax, -0x220(%rbp)
jmp 0xff3b
movq -0x220(%rbp), %rdi
leaq 0x36a58(%rip), %rsi     # 0x469a1
callq 0x41c0
jmp 0xff50
movq -0x1d8(%rbp), %rdi
callq 0x1c0c0
jmp 0xff5e
jmp 0x10074
movq 0x4c05e(%rip), %rdi     # 0x5bfc8
leaq 0x375d6(%rip), %rsi     # 0x47547
callq 0x41c0
movq %rax, -0x228(%rbp)
jmp 0xff7f
movq -0x228(%rbp), %rdi
leaq 0x36a14(%rip), %rsi     # 0x469a1
callq 0x41c0
jmp 0xff94
movq -0x1d8(%rbp), %rdi
callq 0x1c2b0
jmp 0xffa2
jmp 0x10074
movq 0x4c01a(%rip), %rdi     # 0x5bfc8
leaq 0x375a2(%rip), %rsi     # 0x47557
callq 0x41c0
movq %rax, -0x230(%rbp)
jmp 0xffc3
movq -0x230(%rbp), %rdi
leaq 0x369d0(%rip), %rsi     # 0x469a1
callq 0x41c0
jmp 0xffd8
movq -0x1d8(%rbp), %rdi
callq 0x1c620
jmp 0xffe6
jmp 0x10074
movq -0x1d8(%rbp), %rdi
callq 0xf540
jmp 0xfff9
jmp 0x10074
movq 0x4bfc6(%rip), %rdi     # 0x5bfc8
leaq 0x36c87(%rip), %rsi     # 0x46c90
callq 0x41c0
movq %rax, -0x238(%rbp)
jmp 0x10017
movq -0x238(%rbp), %rdi
leaq 0x37545(%rip), %rsi     # 0x4756a
callq 0x41c0
movq %rax, -0x240(%rbp)
jmp 0x10033
movq -0x240(%rbp), %rdi
leaq 0x36c7d(%rip), %rsi     # 0x46cbe
callq 0x41c0
movq %rax, -0x248(%rbp)
jmp 0x1004f
movq -0x248(%rbp), %rdi
leaq 0x36944(%rip), %rsi     # 0x469a1
callq 0x41c0
jmp 0x10064
movq -0x1d8(%rbp), %rdi
callq 0xfcc0
jmp 0x10072
jmp 0x10074
leaq -0x1c8(%rbp), %rdi
callq 0x4170
leaq -0x30(%rbp), %rdi
callq 0x4140
addq $0x250, %rsp            # imm = 0x250
popq %rbp
retq
leaq -0x30(%rbp), %rdi
callq 0x4140
movq -0x38(%rbp), %rdi
callq 0x4320
nopw %cs:(%rax,%rax)