// File: /workspace/github_cpp_makefile_star2_O3/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, -0x60(%rbp)
movq %rcx, -0x58(%rbp)
movq %rsi, %rbx
leaq 0x8(%rdx), %rax
movq 0x18(%rdx), %r13
cmpb $0x74, %dil
movq %rax, -0x68(%rbp)
jne 0x36828
cmpq %rax, %r13
je 0x36443
leaq 0x28(%r13), %r15
leaq -0x50(%rbp), %rdi
movq %r15, %rsi
callq 0x4ed4
movq -0x48(%rbp), %rdx
cmpq 0x8(%rbx), %rdx
jne 0x36401
movq -0x50(%rbp), %r14
testq %rdx, %rdx
je 0x3640a
movq (%rbx), %rsi
movq %r14, %rdi
callq 0x3230
testl %eax, %eax
sete %r12b
jmp 0x3640d
movq -0x50(%rbp), %r14
xorl %r12d, %r12d
jmp 0x3640d
movb $0x1, %r12b
leaq -0x40(%rbp), %rax
cmpq %rax, %r14
je 0x3641e
movq %r14, %rdi
callq 0x31d0
testb %r12b, %r12b
je 0x36432
movq 0x11ba6(%rip), %rdi     # 0x47fd0
movq %r15, %rsi
callq 0x8389
movq %r13, %rdi
callq 0x3140
movq %rax, %r13
cmpq -0x68(%rbp), %rax
jne 0x363cb
movq -0x58(%rbp), %rax
movq 0x18(%rax), %r13
addq $0x8, %rax
movq %rax, -0x58(%rbp)
cmpq %rax, %r13
je 0x364d0
leaq 0x28(%r13), %r15
leaq -0x50(%rbp), %rdi
movq %r15, %rsi
callq 0x4ed4
movq -0x48(%rbp), %rdx
cmpq 0x8(%rbx), %rdx
jne 0x3648e
movq -0x50(%rbp), %r14
testq %rdx, %rdx
je 0x36497
movq (%rbx), %rsi
movq %r14, %rdi
callq 0x3230
testl %eax, %eax
sete %r12b
jmp 0x3649a
movq -0x50(%rbp), %r14
xorl %r12d, %r12d
jmp 0x3649a
movb $0x1, %r12b
leaq -0x40(%rbp), %rax
cmpq %rax, %r14
je 0x364ab
movq %r14, %rdi
callq 0x31d0
testb %r12b, %r12b
je 0x364bf
movq 0x11b19(%rip), %rdi     # 0x47fd0
movq %r15, %rsi
callq 0x8aaa
movq %r13, %rdi
callq 0x3140
movq %rax, %r13
cmpq -0x58(%rbp), %rax
jne 0x36458
movq -0x60(%rbp), %rax
movq 0x18(%rax), %r12
addq $0x8, %rax
movq %rax, -0x60(%rbp)
cmpq %rax, %r12
je 0x3655e
leaq 0x28(%r12), %r15
leaq -0x50(%rbp), %rdi
movq %r15, %rsi
callq 0x4ed4
movq -0x48(%rbp), %rdx
cmpq 0x8(%rbx), %rdx
jne 0x3651c
movq -0x50(%rbp), %r13
testq %rdx, %rdx
je 0x36525
movq (%rbx), %rsi
movq %r13, %rdi
callq 0x3230
testl %eax, %eax
sete %r14b
jmp 0x36528
movq -0x50(%rbp), %r13
xorl %r14d, %r14d
jmp 0x36528
movb $0x1, %r14b
leaq -0x40(%rbp), %rax
cmpq %rax, %r13
je 0x36539
movq %r13, %rdi
callq 0x31d0
testb %r14b, %r14b
je 0x3654d
movq 0x11a8b(%rip), %rdi     # 0x47fd0
movq %r15, %rsi
callq 0x9ef0
movq %r12, %rdi
callq 0x3140
movq %rax, %r12
cmpq -0x60(%rbp), %rax
jne 0x364e5
movq -0x30(%rbp), %rax
movq 0x18(%rax), %r15
addq $0x8, %rax
movq %rax, -0x30(%rbp)
cmpq %rax, %r15
je 0x365eb
leaq 0x28(%r15), %r13
leaq -0x50(%rbp), %rdi
movq %r13, %rsi
callq 0x4ed4
movq -0x48(%rbp), %rdx
cmpq 0x8(%rbx), %rdx
jne 0x365a9
movq -0x50(%rbp), %r12
testq %rdx, %rdx
je 0x365b2
movq (%rbx), %rsi
movq %r12, %rdi
callq 0x3230
testl %eax, %eax
sete %r14b
jmp 0x365b5
movq -0x50(%rbp), %r12
xorl %r14d, %r14d
jmp 0x365b5
movb $0x1, %r14b
leaq -0x40(%rbp), %rax
cmpq %rax, %r12
je 0x365c6
movq %r12, %rdi
callq 0x31d0
testb %r14b, %r14b
je 0x365da
movq 0x119fe(%rip), %rdi     # 0x47fd0
movq %r13, %rsi
callq 0xa644
movq %r15, %rdi
callq 0x3140
movq %rax, %r15
cmpq -0x30(%rbp), %rax
jne 0x36573
movq 0x10(%rbp), %rax
movq 0x18(%rax), %r14
addq $0x8, %rax
movq %rax, -0x30(%rbp)
cmpq %rax, %r14
je 0x36678
leaq 0x28(%r14), %r13
leaq -0x50(%rbp), %rdi
movq %r13, %rsi
callq 0x4ed4
movq -0x48(%rbp), %rdx
cmpq 0x8(%rbx), %rdx
jne 0x36636
movq -0x50(%rbp), %r12
testq %rdx, %rdx
je 0x3663f
movq (%rbx), %rsi
movq %r12, %rdi
callq 0x3230
testl %eax, %eax
sete %r15b
jmp 0x36642
movq -0x50(%rbp), %r12
xorl %r15d, %r15d
jmp 0x36642
movb $0x1, %r15b
leaq -0x40(%rbp), %rax
cmpq %rax, %r12
je 0x36653
movq %r12, %rdi
callq 0x31d0
testb %r15b, %r15b
je 0x36667
movq 0x11971(%rip), %rdi     # 0x47fd0
movq %r13, %rsi
callq 0xba73
movq %r14, %rdi
callq 0x3140
movq %rax, %r14
cmpq -0x30(%rbp), %rax
jne 0x36600
movq 0x18(%rbp), %rax
movq 0x18(%rax), %r14
addq $0x8, %rax
movq %rax, -0x30(%rbp)
cmpq %rax, %r14
je 0x36705
leaq 0x28(%r14), %r13
leaq -0x50(%rbp), %rdi
movq %r13, %rsi
callq 0x4ed4
movq -0x48(%rbp), %rdx
cmpq 0x8(%rbx), %rdx
jne 0x366c3
movq -0x50(%rbp), %r12
testq %rdx, %rdx
je 0x366cc
movq (%rbx), %rsi
movq %r12, %rdi
callq 0x3230
testl %eax, %eax
sete %r15b
jmp 0x366cf
movq -0x50(%rbp), %r12
xorl %r15d, %r15d
jmp 0x366cf
movb $0x1, %r15b
leaq -0x40(%rbp), %rax
cmpq %rax, %r12
je 0x366e0
movq %r12, %rdi
callq 0x31d0
testb %r15b, %r15b
je 0x366f4
movq 0x118e4(%rip), %rdi     # 0x47fd0
movq %r13, %rsi
callq 0xc215
movq %r14, %rdi
callq 0x3140
movq %rax, %r14
cmpq -0x30(%rbp), %rax
jne 0x3668d
movq 0x20(%rbp), %rax
movq 0x18(%rax), %r14
addq $0x8, %rax
movq %rax, -0x30(%rbp)
cmpq %rax, %r14
je 0x36792
leaq 0x28(%r14), %r13
leaq -0x50(%rbp), %rdi
movq %r13, %rsi
callq 0x4ed4
movq -0x48(%rbp), %rdx
cmpq 0x8(%rbx), %rdx
jne 0x36750
movq -0x50(%rbp), %r12
testq %rdx, %rdx
je 0x36759
movq (%rbx), %rsi
movq %r12, %rdi
callq 0x3230
testl %eax, %eax
sete %r15b
jmp 0x3675c
movq -0x50(%rbp), %r12
xorl %r15d, %r15d
jmp 0x3675c
movb $0x1, %r15b
leaq -0x40(%rbp), %rax
cmpq %rax, %r12
je 0x3676d
movq %r12, %rdi
callq 0x31d0
testb %r15b, %r15b
je 0x36781
movq 0x11857(%rip), %rdi     # 0x47fd0
movq %r13, %rsi
callq 0xd6c7
movq %r14, %rdi
callq 0x3140
movq %rax, %r14
cmpq -0x30(%rbp), %rax
jne 0x3671a
movq 0x28(%rbp), %rax
movq 0x18(%rax), %r14
addq $0x8, %rax
movq %rax, -0x30(%rbp)
cmpq %rax, %r14
je 0x36c81
leaq 0x28(%r14), %r13
leaq -0x50(%rbp), %rdi
movq %r13, %rsi
callq 0x4ed4
movq -0x48(%rbp), %rdx
cmpq 0x8(%rbx), %rdx
jne 0x367e1
movq -0x50(%rbp), %r12
testq %rdx, %rdx
je 0x367ea
movq (%rbx), %rsi
movq %r12, %rdi
callq 0x3230
testl %eax, %eax
sete %r15b
jmp 0x367ed
movq -0x50(%rbp), %r12
xorl %r15d, %r15d
jmp 0x367ed
movb $0x1, %r15b
leaq -0x40(%rbp), %rax
cmpq %rax, %r12
je 0x367fe
movq %r12, %rdi
callq 0x31d0
testb %r15b, %r15b
je 0x36812
movq 0x117c6(%rip), %rdi     # 0x47fd0
movq %r13, %rsi
callq 0xde39
movq %r14, %rdi
callq 0x3140
movq %rax, %r14
cmpq -0x30(%rbp), %rax
jne 0x367ab
jmp 0x36c81
cmpq %rax, %r13
je 0x368a5
leaq 0x28(%r13), %r15
leaq -0x50(%rbp), %rdi
movq %r15, %rsi
callq 0x4ea0
movq -0x48(%rbp), %rdx
cmpq 0x8(%rbx), %rdx
jne 0x36863
movq -0x50(%rbp), %r14
testq %rdx, %rdx
je 0x3686c
movq (%rbx), %rsi
movq %r14, %rdi
callq 0x3230
testl %eax, %eax
sete %r12b
jmp 0x3686f
movq -0x50(%rbp), %r14
xorl %r12d, %r12d
jmp 0x3686f
movb $0x1, %r12b
leaq -0x40(%rbp), %rax
cmpq %rax, %r14
je 0x36880
movq %r14, %rdi
callq 0x31d0
testb %r12b, %r12b
je 0x36894
movq 0x11744(%rip), %rdi     # 0x47fd0
movq %r15, %rsi
callq 0x8389
movq %r13, %rdi
callq 0x3140
movq %rax, %r13
cmpq -0x68(%rbp), %rax
jne 0x3682d
movq -0x58(%rbp), %rax
movq 0x18(%rax), %r13
addq $0x8, %rax
movq %rax, -0x58(%rbp)
cmpq %rax, %r13
je 0x36932
leaq 0x28(%r13), %r15
leaq -0x50(%rbp), %rdi
movq %r15, %rsi
callq 0x4ea0
movq -0x48(%rbp), %rdx
cmpq 0x8(%rbx), %rdx
jne 0x368f0
movq -0x50(%rbp), %r14
testq %rdx, %rdx
je 0x368f9
movq (%rbx), %rsi
movq %r14, %rdi
callq 0x3230
testl %eax, %eax
sete %r12b
jmp 0x368fc
movq -0x50(%rbp), %r14
xorl %r12d, %r12d
jmp 0x368fc
movb $0x1, %r12b
leaq -0x40(%rbp), %rax
cmpq %rax, %r14
je 0x3690d
movq %r14, %rdi
callq 0x31d0
testb %r12b, %r12b
je 0x36921
movq 0x116b7(%rip), %rdi     # 0x47fd0
movq %r15, %rsi
callq 0x8aaa
movq %r13, %rdi
callq 0x3140
movq %rax, %r13
cmpq -0x58(%rbp), %rax
jne 0x368ba
movq -0x60(%rbp), %rax
movq 0x18(%rax), %r12
addq $0x8, %rax
movq %rax, -0x60(%rbp)
cmpq %rax, %r12
je 0x369c0
leaq 0x28(%r12), %r15
leaq -0x50(%rbp), %rdi
movq %r15, %rsi
callq 0x4ea0
movq -0x48(%rbp), %rdx
cmpq 0x8(%rbx), %rdx
jne 0x3697e
movq -0x50(%rbp), %r13
testq %rdx, %rdx
je 0x36987
movq (%rbx), %rsi
movq %r13, %rdi
callq 0x3230
testl %eax, %eax
sete %r14b
jmp 0x3698a
movq -0x50(%rbp), %r13
xorl %r14d, %r14d
jmp 0x3698a
movb $0x1, %r14b
leaq -0x40(%rbp), %rax
cmpq %rax, %r13
je 0x3699b
movq %r13, %rdi
callq 0x31d0
testb %r14b, %r14b
je 0x369af
movq 0x11629(%rip), %rdi     # 0x47fd0
movq %r15, %rsi
callq 0x9ef0
movq %r12, %rdi
callq 0x3140
movq %rax, %r12
cmpq -0x60(%rbp), %rax
jne 0x36947
movq -0x30(%rbp), %rax
movq 0x18(%rax), %r15
addq $0x8, %rax
movq %rax, -0x30(%rbp)
cmpq %rax, %r15
je 0x36a4d
leaq 0x28(%r15), %r13
leaq -0x50(%rbp), %rdi
movq %r13, %rsi
callq 0x4ea0
movq -0x48(%rbp), %rdx
cmpq 0x8(%rbx), %rdx
jne 0x36a0b
movq -0x50(%rbp), %r12
testq %rdx, %rdx
je 0x36a14
movq (%rbx), %rsi
movq %r12, %rdi
callq 0x3230
testl %eax, %eax
sete %r14b
jmp 0x36a17
movq -0x50(%rbp), %r12
xorl %r14d, %r14d
jmp 0x36a17
movb $0x1, %r14b
leaq -0x40(%rbp), %rax
cmpq %rax, %r12
je 0x36a28
movq %r12, %rdi
callq 0x31d0
testb %r14b, %r14b
je 0x36a3c
movq 0x1159c(%rip), %rdi     # 0x47fd0
movq %r13, %rsi
callq 0xa644
movq %r15, %rdi
callq 0x3140
movq %rax, %r15
cmpq -0x30(%rbp), %rax
jne 0x369d5
movq 0x10(%rbp), %rax
movq 0x18(%rax), %r14
addq $0x8, %rax
movq %rax, -0x30(%rbp)
cmpq %rax, %r14
je 0x36ada
leaq 0x28(%r14), %r13
leaq -0x50(%rbp), %rdi
movq %r13, %rsi
callq 0x4ea0
movq -0x48(%rbp), %rdx
cmpq 0x8(%rbx), %rdx
jne 0x36a98
movq -0x50(%rbp), %r12
testq %rdx, %rdx
je 0x36aa1
movq (%rbx), %rsi
movq %r12, %rdi
callq 0x3230
testl %eax, %eax
sete %r15b
jmp 0x36aa4
movq -0x50(%rbp), %r12
xorl %r15d, %r15d
jmp 0x36aa4
movb $0x1, %r15b
leaq -0x40(%rbp), %rax
cmpq %rax, %r12
je 0x36ab5
movq %r12, %rdi
callq 0x31d0
testb %r15b, %r15b
je 0x36ac9
movq 0x1150f(%rip), %rdi     # 0x47fd0
movq %r13, %rsi
callq 0xba73
movq %r14, %rdi
callq 0x3140
movq %rax, %r14
cmpq -0x30(%rbp), %rax
jne 0x36a62
movq 0x18(%rbp), %rax
movq 0x18(%rax), %r14
addq $0x8, %rax
movq %rax, -0x30(%rbp)
cmpq %rax, %r14
je 0x36b67
leaq 0x28(%r14), %r13
leaq -0x50(%rbp), %rdi
movq %r13, %rsi
callq 0x4ea0
movq -0x48(%rbp), %rdx
cmpq 0x8(%rbx), %rdx
jne 0x36b25
movq -0x50(%rbp), %r12
testq %rdx, %rdx
je 0x36b2e
movq (%rbx), %rsi
movq %r12, %rdi
callq 0x3230
testl %eax, %eax
sete %r15b
jmp 0x36b31
movq -0x50(%rbp), %r12
xorl %r15d, %r15d
jmp 0x36b31
movb $0x1, %r15b
leaq -0x40(%rbp), %rax
cmpq %rax, %r12
je 0x36b42
movq %r12, %rdi
callq 0x31d0
testb %r15b, %r15b
je 0x36b56
movq 0x11482(%rip), %rdi     # 0x47fd0
movq %r13, %rsi
callq 0xc215
movq %r14, %rdi
callq 0x3140
movq %rax, %r14
cmpq -0x30(%rbp), %rax
jne 0x36aef
movq 0x20(%rbp), %rax
movq 0x18(%rax), %r14
addq $0x8, %rax
movq %rax, -0x30(%rbp)
cmpq %rax, %r14
je 0x36bf4
leaq 0x28(%r14), %r13
leaq -0x50(%rbp), %rdi
movq %r13, %rsi
callq 0x4ea0
movq -0x48(%rbp), %rdx
cmpq 0x8(%rbx), %rdx
jne 0x36bb2
movq -0x50(%rbp), %r12
testq %rdx, %rdx
je 0x36bbb
movq (%rbx), %rsi
movq %r12, %rdi
callq 0x3230
testl %eax, %eax
sete %r15b
jmp 0x36bbe
movq -0x50(%rbp), %r12
xorl %r15d, %r15d
jmp 0x36bbe
movb $0x1, %r15b
leaq -0x40(%rbp), %rax
cmpq %rax, %r12
je 0x36bcf
movq %r12, %rdi
callq 0x31d0
testb %r15b, %r15b
je 0x36be3
movq 0x113f5(%rip), %rdi     # 0x47fd0
movq %r13, %rsi
callq 0xd6c7
movq %r14, %rdi
callq 0x3140
movq %rax, %r14
cmpq -0x30(%rbp), %rax
jne 0x36b7c
movq 0x28(%rbp), %rax
movq 0x18(%rax), %r14
addq $0x8, %rax
movq %rax, -0x30(%rbp)
cmpq %rax, %r14
je 0x36c81
leaq 0x28(%r14), %r13
leaq -0x50(%rbp), %rdi
movq %r13, %rsi
callq 0x4ea0
movq -0x48(%rbp), %rdx
cmpq 0x8(%rbx), %rdx
jne 0x36c3f
movq -0x50(%rbp), %r12
testq %rdx, %rdx
je 0x36c48
movq (%rbx), %rsi
movq %r12, %rdi
callq 0x3230
testl %eax, %eax
sete %r15b
jmp 0x36c4b
movq -0x50(%rbp), %r12
xorl %r15d, %r15d
jmp 0x36c4b
movb $0x1, %r15b
leaq -0x40(%rbp), %rax
cmpq %rax, %r12
je 0x36c5c
movq %r12, %rdi
callq 0x31d0
testb %r15b, %r15b
je 0x36c70
movq 0x11368(%rip), %rdi     # 0x47fd0
movq %r13, %rsi
callq 0xde39
movq %r14, %rdi
callq 0x3140
movq %rax, %r14
cmpq -0x30(%rbp), %rax
jne 0x36c09
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq