// File: nataly-enne[P]pet-fera/pet_fera_consulta_p_func.cpp
// Function: consulta_p_veterinario(std::map<int, VETERINARIO, std::less<int>, std::allocator<std::pair<int const, VETERINARIO>>>&, std::map<int, ANFIBIO_NATIVO, std::less<int>, std::allocator<std::pair<int const, ANFIBIO_NATIVO>>>&, std::map<int, ANFIBIO_EXOTICO, std::less<int>, std::allocator<std::pair<int const, ANFIBIO_EXOTICO>>>&, std::map<int, MAMIFERO_NATIVO, std::less<int>, std::allocator<std::pair<int const, MAMIFERO_NATIVO>>>&, std::map<int, MAMIFERO_EXOTICO, std::less<int>, std::allocator<std::pair<int const, MAMIFERO_EXOTICO>>>&, std::map<int, REPTIL_NATIVO, std::less<int>, std::allocator<std::pair<int const, REPTIL_NATIVO>>>&, std::map<int, REPTIL_EXOTICO, std::less<int>, std::allocator<std::pair<int const, REPTIL_EXOTICO>>>&, std::map<int, AVE_NATIVO, std::less<int>, std::allocator<std::pair<int const, AVE_NATIVO>>>&, std::map<int, AVE_EXOTICO, std::less<int>, std::allocator<std::pair<int const, AVE_EXOTICO>>>&)
void consulta_p_veterinario(map <int, VETERINARIO> &vets, map <int, ANFIBIO_NATIVO> &anfibios_nat, map <int, ANFIBIO_EXOTICO> &anfibios_ex, map <int, MAMIFERO_NATIVO> &mamiferos_nat, map <int, MAMIFERO_EXOTICO> &mamiferos_ex, map <int, REPTIL_NATIVO> &repteis_nat, map <int, REPTIL_EXOTICO> &repteis_ex, map <int, AVE_NATIVO> &aves_nat, map <int, AVE_EXOTICO> &aves_ex){
	int count = 0, cont = 0;
	string nome;
	char tipo = 'v', sucesso = 'n';

	do{
		cout << "Digite o nome do veterinario:" << endl;
		if(!cont){
			cin.ignore();
			cont++;
		}
		getline(cin, nome);
		if(!verifica_nome(nome, sucesso)){
			cout << "ERRO: só pode ser inserido letra ou espaço!" << endl << endl;
		}
		else{
			sucesso = 's';
		}
	}while(sucesso == 'n');
	
	for(auto it = vets.begin(); it != vets.end();it++){
		if(it->second.getNome() == nome){
			count ++;
		}
	}
	if(count == 0){
		cout << "Veterinario não cadastrado!" << endl << endl;
	}
	else{
		cout << "Veterinario cadastrado!" << endl << endl;
		cout << "***" << "Animais atendidos pelo Veterinário " << nome << "***" << endl;
		imprime_animais(tipo, nome, anfibios_nat, anfibios_ex, mamiferos_nat, mamiferos_ex, repteis_nat, repteis_ex, aves_nat, aves_ex);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
subq $0x158, %rsp            # imm = 0x158
movq 0x20(%rbp), %rax
movq 0x18(%rbp), %rax
movq 0x10(%rbp), %rax
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq %r8, -0x30(%rbp)
movq %r9, -0x38(%rbp)
movl $0x0, -0x3c(%rbp)
movl $0x0, -0x40(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x3300
movb $0x76, -0x61(%rbp)
movb $0x6e, -0x62(%rbp)
movq 0x14a72(%rip), %rdi     # 0x50fb8
leaq 0x609b(%rip), %rsi      # 0x425e8
callq 0x3240
movq %rax, -0xd8(%rbp)
jmp 0x3c55b
movq -0xd8(%rbp), %rdi
movq 0x14a37(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x3c570
cmpl $0x0, -0x40(%rbp)
jne 0x3c5a0
movq 0x14a5b(%rip), %rdi     # 0x50fd8
callq 0x33f0
jmp 0x3c584
movl -0x40(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x40(%rbp)
jmp 0x3c5a0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x3c89c
movq 0x14a31(%rip), %rdi     # 0x50fd8
leaq -0x60(%rbp), %rsi
callq 0x3070
jmp 0x3c5b2
leaq -0x60(%rbp), %rdi
leaq -0x62(%rbp), %rsi
callq 0x3f480
movb %al, -0xd9(%rbp)
jmp 0x3c5c7
movb -0xd9(%rbp), %al
testb $0x1, %al
jne 0x3c622
jmp 0x3c5d3
movq 0x149de(%rip), %rdi     # 0x50fb8
leaq 0x5171(%rip), %rsi      # 0x41752
callq 0x3240
movq %rax, -0xe8(%rbp)
jmp 0x3c5ef
movq -0xe8(%rbp), %rdi
movq 0x149a3(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0xf0(%rbp)
jmp 0x3c60b
movq -0xf0(%rbp), %rdi
movq 0x14987(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x3c620
jmp 0x3c626
movb $0x73, -0x62(%rbp)
jmp 0x3c628
movsbl -0x62(%rbp), %eax
cmpl $0x6e, %eax
je 0x3c53f
movq -0x10(%rbp), %rdi
callq 0x1f6e0
movq %rax, -0x80(%rbp)
movq -0x10(%rbp), %rdi
callq 0x1f740
movq %rax, -0x88(%rbp)
leaq -0x80(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x1f710
testb $0x1, %al
jne 0x3c668
jmp 0x3c6d6
leaq -0x80(%rbp), %rdi
callq 0x3d600
movq %rax, %rsi
addq $0x8, %rsi
leaq -0xa8(%rbp), %rdi
callq 0x12440
jmp 0x3c686
leaq -0xa8(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x3d540
movb %al, -0xf1(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x3180
movb -0xf1(%rbp), %al
testb $0x1, %al
jne 0x3c6b4
jmp 0x3c6bd
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0x3c6bf
leaq -0x80(%rbp), %rdi
xorl %esi, %esi
callq 0x1f790
movq %rax, -0xb0(%rbp)
jmp 0x3c642
cmpl $0x0, -0x3c(%rbp)
jne 0x3c72e
movq 0x148d5(%rip), %rdi     # 0x50fb8
leaq 0x54b3(%rip), %rsi      # 0x41b9d
callq 0x3240
movq %rax, -0x100(%rbp)
jmp 0x3c6f8
movq -0x100(%rbp), %rdi
movq 0x1489a(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x108(%rbp)
jmp 0x3c714
movq -0x108(%rbp), %rdi
movq 0x1487e(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x3c729
jmp 0x3c889
movq 0x14883(%rip), %rdi     # 0x50fb8
leaq 0x5eca(%rip), %rsi      # 0x42606
callq 0x3240
movq %rax, -0x110(%rbp)
jmp 0x3c74a
movq -0x110(%rbp), %rdi
movq 0x14848(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x118(%rbp)
jmp 0x3c766
movq -0x118(%rbp), %rdi
movq 0x1482c(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x3c77b
movq 0x14836(%rip), %rdi     # 0x50fb8
leaq 0x5e3a(%rip), %rsi      # 0x425c3
callq 0x3240
movq %rax, -0x120(%rbp)
jmp 0x3c797
movq -0x120(%rbp), %rdi
leaq 0x5e79(%rip), %rsi      # 0x4261e
callq 0x3240
movq %rax, -0x128(%rbp)
jmp 0x3c7b3
movq -0x128(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x3210
movq %rax, -0x130(%rbp)
jmp 0x3c7cc
movq -0x130(%rbp), %rdi
leaq 0x5de9(%rip), %rsi      # 0x425c3
callq 0x3240
movq %rax, -0x138(%rbp)
jmp 0x3c7e8
movq -0x138(%rbp), %rdi
movq 0x147aa(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x3c7fd
movb -0x61(%rbp), %al
movb %al, -0x139(%rbp)
leaq -0xd0(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x3100
jmp 0x3c818
movb -0x139(%rbp), %al
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x28(%rbp), %r8
movq -0x30(%rbp), %r9
movq -0x38(%rbp), %rdi
movq 0x10(%rbp), %r10
movq 0x18(%rbp), %r11
movq 0x20(%rbp), %rbx
movq %rsp, %rsi
movq %rbx, 0x18(%rsi)
movq %r11, 0x10(%rsi)
movq %r10, 0x8(%rsi)
movq %rdi, (%rsi)
movsbl %al, %edi
leaq -0xd0(%rbp), %rsi
callq 0x3c8b0
jmp 0x3c861
leaq -0xd0(%rbp), %rdi
callq 0x3180
jmp 0x3c889
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x3180
jmp 0x3c89c
leaq -0x60(%rbp), %rdi
callq 0x3180
addq $0x158, %rsp            # imm = 0x158
popq %rbx
popq %rbp
retq
leaq -0x60(%rbp), %rdi
callq 0x3180
movq -0x70(%rbp), %rdi
callq 0x33d0
nop