// File: nataly-enne[P]pet-fera/pet_fera_consulta_p_func.cpp
// Function: consulta_p_tratador(std::map<int, TRATADOR, std::less<int>, std::allocator<std::pair<int const, TRATADOR>>>&, 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_tratador(map <int, TRATADOR> &tratadores, 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;
	string nome;
	char tipo = 't', sucesso = 'n';
	int cont = 0;

	do{
		cout << "Digite o nome do tratador:" << 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 = tratadores.begin(); it != tratadores.end();it++){
		if(it->second.getNome() == nome){
			count ++;
		}
	}
	if(count == 0){
		cout << "\nTratador não cadastrado!" << endl << endl;
	}
	else{
		cout << "\nTratador cadastrado!" << endl << endl;
		cout << "***" << "Animais atendidos pelo Tratador " << 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)
leaq -0x60(%rbp), %rdi
callq 0x3300
movb $0x74, -0x61(%rbp)
movb $0x6e, -0x62(%rbp)
movl $0x0, -0x68(%rbp)
movq 0x14e32(%rip), %rdi     # 0x50fb8
leaq 0x63ea(%rip), %rsi      # 0x42577
callq 0x3240
movq %rax, -0xd8(%rbp)
jmp 0x3c19b
movq -0xd8(%rbp), %rdi
movq 0x14df7(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x3c1b0
cmpl $0x0, -0x68(%rbp)
jne 0x3c1e0
movq 0x14e1b(%rip), %rdi     # 0x50fd8
callq 0x33f0
jmp 0x3c1c4
movl -0x68(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x68(%rbp)
jmp 0x3c1e0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x3c4dc
movq 0x14df1(%rip), %rdi     # 0x50fd8
leaq -0x60(%rbp), %rsi
callq 0x3070
jmp 0x3c1f2
leaq -0x60(%rbp), %rdi
leaq -0x62(%rbp), %rsi
callq 0x3f480
movb %al, -0xd9(%rbp)
jmp 0x3c207
movb -0xd9(%rbp), %al
testb $0x1, %al
jne 0x3c262
jmp 0x3c213
movq 0x14d9e(%rip), %rdi     # 0x50fb8
leaq 0x5531(%rip), %rsi      # 0x41752
callq 0x3240
movq %rax, -0xe8(%rbp)
jmp 0x3c22f
movq -0xe8(%rbp), %rdi
movq 0x14d63(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0xf0(%rbp)
jmp 0x3c24b
movq -0xf0(%rbp), %rdi
movq 0x14d47(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x3c260
jmp 0x3c266
movb $0x73, -0x62(%rbp)
jmp 0x3c268
movsbl -0x62(%rbp), %eax
cmpl $0x6e, %eax
je 0x3c17f
movq -0x10(%rbp), %rdi
callq 0x1f8b0
movq %rax, -0x80(%rbp)
movq -0x10(%rbp), %rdi
callq 0x1f910
movq %rax, -0x88(%rbp)
leaq -0x80(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x1f8e0
testb $0x1, %al
jne 0x3c2a8
jmp 0x3c316
leaq -0x80(%rbp), %rdi
callq 0x3d5d0
movq %rax, %rsi
addq $0x8, %rsi
leaq -0xa8(%rbp), %rdi
callq 0x12440
jmp 0x3c2c6
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 0x3c2f4
jmp 0x3c2fd
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0x3c2ff
leaq -0x80(%rbp), %rdi
xorl %esi, %esi
callq 0x1f960
movq %rax, -0xb0(%rbp)
jmp 0x3c282
cmpl $0x0, -0x3c(%rbp)
jne 0x3c36e
movq 0x14c95(%rip), %rdi     # 0x50fb8
leaq 0x6268(%rip), %rsi      # 0x42592
callq 0x3240
movq %rax, -0x100(%rbp)
jmp 0x3c338
movq -0x100(%rbp), %rdi
movq 0x14c5a(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x108(%rbp)
jmp 0x3c354
movq -0x108(%rbp), %rdi
movq 0x14c3e(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x3c369
jmp 0x3c4c9
movq 0x14c43(%rip), %rdi     # 0x50fb8
leaq 0x6231(%rip), %rsi      # 0x425ad
callq 0x3240
movq %rax, -0x110(%rbp)
jmp 0x3c38a
movq -0x110(%rbp), %rdi
movq 0x14c08(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x118(%rbp)
jmp 0x3c3a6
movq -0x118(%rbp), %rdi
movq 0x14bec(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x3c3bb
movq 0x14bf6(%rip), %rdi     # 0x50fb8
leaq 0x61fa(%rip), %rsi      # 0x425c3
callq 0x3240
movq %rax, -0x120(%rbp)
jmp 0x3c3d7
movq -0x120(%rbp), %rdi
leaq 0x61e2(%rip), %rsi      # 0x425c7
callq 0x3240
movq %rax, -0x128(%rbp)
jmp 0x3c3f3
movq -0x128(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x3210
movq %rax, -0x130(%rbp)
jmp 0x3c40c
movq -0x130(%rbp), %rdi
leaq 0x61a9(%rip), %rsi      # 0x425c3
callq 0x3240
movq %rax, -0x138(%rbp)
jmp 0x3c428
movq -0x138(%rbp), %rdi
movq 0x14b6a(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x3c43d
movb -0x61(%rbp), %al
movb %al, -0x139(%rbp)
leaq -0xd0(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x3100
jmp 0x3c458
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 0x3c4a1
leaq -0xd0(%rbp), %rdi
callq 0x3180
jmp 0x3c4c9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x3180
jmp 0x3c4dc
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