// File: /workspace/github_cpp_makefile_star2_O2/nataly-enne[P]pet-fera/pet_fera_consulta_p_func.cpp
// Function: imprime_animais(char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, 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 imprime_animais(char tipo, string nome, 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){
	
	if(tipo == 't'){
		for(auto it = anfibios_nat.begin();it != anfibios_nat.end(); it++){
			if(it->second.getTratador() == nome){
				cout << it->second;
			}
		}
		for(auto it = anfibios_ex.begin();it != anfibios_ex.end(); it++){
			if(it->second.getTratador() == nome){
				cout << it->second;
			}
		}
		for(auto it = mamiferos_nat.begin();it != mamiferos_nat.end(); it++){
			if(it->second.getTratador() == nome){
				cout << it->second;
			}
		}
		for(auto it = mamiferos_ex.begin();it != mamiferos_ex.end(); it++){
			if(it->second.getTratador() == nome){
				cout << it->second;
			}
		}
		for(auto it = repteis_nat.begin();it != repteis_nat.end(); it++){
			if(it->second.getTratador() == nome){
				cout << it->second;
			}
		}
		for(auto it = repteis_ex.begin();it != repteis_ex.end(); it++){
			if(it->second.getTratador() == nome){
				cout << it->second;
			}
		}
		for(auto it = aves_nat.begin();it != aves_nat.end(); it++){
			if(it->second.getTratador() == nome){
				cout << it->second;
			}
		}
		for(auto it = aves_ex.begin();it != aves_ex.end(); it++){
			if(it->second.getTratador() == nome){
				cout << it->second;
			}
		}
	}
	else{
		for(auto it = anfibios_nat.begin();it != anfibios_nat.end(); it++){
			if(it->second.getVeterinario() == nome){
				cout << it->second;
			}
		}
		for(auto it = anfibios_ex.begin();it != anfibios_ex.end(); it++){
			if(it->second.getVeterinario() == nome){
				cout << it->second;
			}
		}
		for(auto it = mamiferos_nat.begin();it != mamiferos_nat.end(); it++){
			if(it->second.getVeterinario() == nome){
				cout << it->second;
			}
		}
		for(auto it = mamiferos_ex.begin();it != mamiferos_ex.end(); it++){
			if(it->second.getVeterinario() == nome){
				cout << it->second;
			}
		}
		for(auto it = repteis_nat.begin();it != repteis_nat.end(); it++){
			if(it->second.getVeterinario() == nome){
				cout << it->second;
			}
		}
		for(auto it = repteis_ex.begin();it != repteis_ex.end(); it++){
			if(it->second.getVeterinario() == nome){
				cout << it->second;
			}
		}
		for(auto it = aves_nat.begin();it != aves_nat.end(); it++){
			if(it->second.getVeterinario() == nome){
				cout << it->second;
			}
		}
		for(auto it = aves_ex.begin();it != aves_ex.end(); it++){
			if(it->second.getVeterinario() == nome){
				cout << it->second;
			}
		}
	}	
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq %r9, -0x30(%rbp)
movq %r8, -0x40(%rbp)
movq %rcx, -0x38(%rbp)
movq %rsi, %rbx
leaq 0x8(%rdx), %rax
movq %rax, -0x68(%rbp)
movq 0x18(%rdx), %r13
leaq -0x60(%rbp), %r14
cmpb $0x74, %dil
jne 0x2079d
cmpq -0x68(%rbp), %r13
je 0x207ed
leaq 0x28(%r13), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x4b0e
movq %r14, %rdi
movq %rbx, %rsi
callq 0x20d72
movl %eax, %r12d
movq %r14, %rdi
callq 0x3100
testb %r12b, %r12b
je 0x20790
movq 0x10840(%rip), %rdi     # 0x30fc8
movq %r15, %rsi
callq 0x6c5a
movq %r13, %rdi
callq 0x3160
movq %rax, %r13
jmp 0x2074d
cmpq -0x68(%rbp), %r13
je 0x20851
leaq 0x28(%r13), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x4aee
movq %r14, %rdi
movq %rbx, %rsi
callq 0x20d72
movl %eax, %r12d
movq %r14, %rdi
callq 0x3100
testb %r12b, %r12b
je 0x207e0
movq 0x107f0(%rip), %rdi     # 0x30fc8
movq %r15, %rsi
callq 0x6c5a
movq %r13, %rdi
callq 0x3160
movq %rax, %r13
jmp 0x2079d
movq -0x38(%rbp), %rax
movq 0x18(%rax), %r13
addq $0x8, %rax
movq %rax, -0x38(%rbp)
leaq -0x60(%rbp), %r14
cmpq -0x38(%rbp), %r13
je 0x208b5
leaq 0x28(%r13), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x4b0e
movq %r14, %rdi
movq %rbx, %rsi
callq 0x20d72
movl %eax, %r12d
movq %r14, %rdi
callq 0x3100
testb %r12b, %r12b
je 0x20844
movq 0x1078c(%rip), %rdi     # 0x30fc8
movq %r15, %rsi
callq 0x6fd7
movq %r13, %rdi
callq 0x3160
movq %rax, %r13
jmp 0x20801
movq -0x38(%rbp), %rax
movq 0x18(%rax), %r13
addq $0x8, %rax
movq %rax, -0x38(%rbp)
leaq -0x60(%rbp), %r14
cmpq -0x38(%rbp), %r13
je 0x2091a
leaq 0x28(%r13), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x4aee
movq %r14, %rdi
movq %rbx, %rsi
callq 0x20d72
movl %eax, %r12d
movq %r14, %rdi
callq 0x3100
testb %r12b, %r12b
je 0x208a8
movq 0x10728(%rip), %rdi     # 0x30fc8
movq %r15, %rsi
callq 0x6fd7
movq %r13, %rdi
callq 0x3160
movq %rax, %r13
jmp 0x20865
movq -0x40(%rbp), %rax
movq 0x18(%rax), %r12
addq $0x8, %rax
movq %rax, -0x40(%rbp)
leaq -0x60(%rbp), %r14
cmpq -0x40(%rbp), %r12
je 0x2097f
leaq 0x28(%r12), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x4b0e
movq %r14, %rdi
movq %rbx, %rsi
callq 0x20d72
movl %eax, %r13d
movq %r14, %rdi
callq 0x3100
testb %r13b, %r13b
je 0x2090d
movq 0x106c3(%rip), %rdi     # 0x30fc8
movq %r15, %rsi
callq 0x7b9c
movq %r12, %rdi
callq 0x3160
movq %rax, %r12
jmp 0x208c9
movq -0x40(%rbp), %rax
movq 0x18(%rax), %r12
addq $0x8, %rax
movq %rax, -0x40(%rbp)
leaq -0x60(%rbp), %r14
cmpq -0x40(%rbp), %r12
je 0x209e3
leaq 0x28(%r12), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x4aee
movq %r14, %rdi
movq %rbx, %rsi
callq 0x20d72
movl %eax, %r13d
movq %r14, %rdi
callq 0x3100
testb %r13b, %r13b
je 0x20972
movq 0x1065e(%rip), %rdi     # 0x30fc8
movq %r15, %rsi
callq 0x7b9c
movq %r12, %rdi
callq 0x3160
movq %rax, %r12
jmp 0x2092e
movq -0x30(%rbp), %rax
movq 0x18(%rax), %r15
addq $0x8, %rax
movq %rax, -0x30(%rbp)
leaq -0x60(%rbp), %r14
cmpq -0x30(%rbp), %r15
je 0x20a47
leaq 0x28(%r15), %r13
movq %r14, %rdi
movq %r13, %rsi
callq 0x4b0e
movq %r14, %rdi
movq %rbx, %rsi
callq 0x20d72
movl %eax, %r12d
movq %r14, %rdi
callq 0x3100
testb %r12b, %r12b
je 0x209d6
movq 0x105fa(%rip), %rdi     # 0x30fc8
movq %r13, %rsi
callq 0x7f32
movq %r15, %rdi
callq 0x3160
movq %rax, %r15
jmp 0x20993
movq -0x30(%rbp), %rax
movq 0x18(%rax), %r15
addq $0x8, %rax
movq %rax, -0x30(%rbp)
leaq -0x60(%rbp), %r14
cmpq -0x30(%rbp), %r15
je 0x20aab
leaq 0x28(%r15), %r13
movq %r14, %rdi
movq %r13, %rsi
callq 0x4aee
movq %r14, %rdi
movq %rbx, %rsi
callq 0x20d72
movl %eax, %r12d
movq %r14, %rdi
callq 0x3100
testb %r12b, %r12b
je 0x20a3a
movq 0x10596(%rip), %rdi     # 0x30fc8
movq %r13, %rsi
callq 0x7f32
movq %r15, %rdi
callq 0x3160
movq %rax, %r15
jmp 0x209f7
movq 0x10(%rbp), %rax
movq 0x18(%rax), %r15
addq $0x8, %rax
movq %rax, -0x30(%rbp)
leaq -0x60(%rbp), %r14
cmpq -0x30(%rbp), %r15
je 0x20b0f
leaq 0x28(%r15), %r13
movq %r14, %rdi
movq %r13, %rsi
callq 0x4b0e
movq %r14, %rdi
movq %rbx, %rsi
callq 0x20d72
movl %eax, %r12d
movq %r14, %rdi
callq 0x3100
testb %r12b, %r12b
je 0x20a9e
movq 0x10532(%rip), %rdi     # 0x30fc8
movq %r13, %rsi
callq 0x8aec
movq %r15, %rdi
callq 0x3160
movq %rax, %r15
jmp 0x20a5b
movq 0x10(%rbp), %rax
movq 0x18(%rax), %r15
addq $0x8, %rax
movq %rax, -0x30(%rbp)
leaq -0x60(%rbp), %r14
cmpq -0x30(%rbp), %r15
je 0x20b73
leaq 0x28(%r15), %r13
movq %r14, %rdi
movq %r13, %rsi
callq 0x4aee
movq %r14, %rdi
movq %rbx, %rsi
callq 0x20d72
movl %eax, %r12d
movq %r14, %rdi
callq 0x3100
testb %r12b, %r12b
je 0x20b02
movq 0x104ce(%rip), %rdi     # 0x30fc8
movq %r13, %rsi
callq 0x8aec
movq %r15, %rdi
callq 0x3160
movq %rax, %r15
jmp 0x20abf
movq 0x18(%rbp), %rax
movq 0x18(%rax), %r15
addq $0x8, %rax
movq %rax, -0x30(%rbp)
leaq -0x60(%rbp), %r14
cmpq -0x30(%rbp), %r15
je 0x20bd7
leaq 0x28(%r15), %r13
movq %r14, %rdi
movq %r13, %rsi
callq 0x4b0e
movq %r14, %rdi
movq %rbx, %rsi
callq 0x20d72
movl %eax, %r12d
movq %r14, %rdi
callq 0x3100
testb %r12b, %r12b
je 0x20b66
movq 0x1046a(%rip), %rdi     # 0x30fc8
movq %r13, %rsi
callq 0x8ea9
movq %r15, %rdi
callq 0x3160
movq %rax, %r15
jmp 0x20b23
movq 0x18(%rbp), %rax
movq 0x18(%rax), %r15
addq $0x8, %rax
movq %rax, -0x30(%rbp)
leaq -0x60(%rbp), %r14
cmpq -0x30(%rbp), %r15
je 0x20c3b
leaq 0x28(%r15), %r13
movq %r14, %rdi
movq %r13, %rsi
callq 0x4aee
movq %r14, %rdi
movq %rbx, %rsi
callq 0x20d72
movl %eax, %r12d
movq %r14, %rdi
callq 0x3100
testb %r12b, %r12b
je 0x20bca
movq 0x10406(%rip), %rdi     # 0x30fc8
movq %r13, %rsi
callq 0x8ea9
movq %r15, %rdi
callq 0x3160
movq %rax, %r15
jmp 0x20b87
movq 0x20(%rbp), %rax
movq 0x18(%rax), %r15
addq $0x8, %rax
movq %rax, -0x30(%rbp)
leaq -0x60(%rbp), %r14
cmpq -0x30(%rbp), %r15
je 0x20c9f
leaq 0x28(%r15), %r13
movq %r14, %rdi
movq %r13, %rsi
callq 0x4b0e
movq %r14, %rdi
movq %rbx, %rsi
callq 0x20d72
movl %eax, %r12d
movq %r14, %rdi
callq 0x3100
testb %r12b, %r12b
je 0x20c2e
movq 0x103a2(%rip), %rdi     # 0x30fc8
movq %r13, %rsi
callq 0x9aad
movq %r15, %rdi
callq 0x3160
movq %rax, %r15
jmp 0x20beb
movq 0x20(%rbp), %rax
movq 0x18(%rax), %r15
addq $0x8, %rax
movq %rax, -0x30(%rbp)
leaq -0x60(%rbp), %r14
cmpq -0x30(%rbp), %r15
je 0x20d03
leaq 0x28(%r15), %r13
movq %r14, %rdi
movq %r13, %rsi
callq 0x4aee
movq %r14, %rdi
movq %rbx, %rsi
callq 0x20d72
movl %eax, %r12d
movq %r14, %rdi
callq 0x3100
testb %r12b, %r12b
je 0x20c92
movq 0x1033e(%rip), %rdi     # 0x30fc8
movq %r13, %rsi
callq 0x9aad
movq %r15, %rdi
callq 0x3160
movq %rax, %r15
jmp 0x20c4f
movq 0x28(%rbp), %rax
movq 0x18(%rax), %r15
addq $0x8, %rax
movq %rax, -0x30(%rbp)
leaq -0x60(%rbp), %r14
cmpq -0x30(%rbp), %r15
je 0x20d63
leaq 0x28(%r15), %r13
movq %r14, %rdi
movq %r13, %rsi
callq 0x4b0e
movq %r14, %rdi
movq %rbx, %rsi
callq 0x20d72
movl %eax, %r12d
movq %r14, %rdi
callq 0x3100
testb %r12b, %r12b
je 0x20cf6
movq 0x102da(%rip), %rdi     # 0x30fc8
movq %r13, %rsi
callq 0x9e54
movq %r15, %rdi
callq 0x3160
movq %rax, %r15
jmp 0x20cb3
movq 0x28(%rbp), %rax
movq 0x18(%rax), %r15
addq $0x8, %rax
movq %rax, -0x30(%rbp)
leaq -0x60(%rbp), %r14
cmpq -0x30(%rbp), %r15
je 0x20d63
leaq 0x28(%r15), %r13
movq %r14, %rdi
movq %r13, %rsi
callq 0x4aee
movq %r14, %rdi
movq %rbx, %rsi
callq 0x20d72
movl %eax, %r12d
movq %r14, %rdi
callq 0x3100
testb %r12b, %r12b
je 0x20d56
movq 0x1027a(%rip), %rdi     # 0x30fc8
movq %r13, %rsi
callq 0x9e54
movq %r15, %rdi
callq 0x3160
movq %rax, %r15
jmp 0x20d17
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq