// File: /workspace/github_cpp_makefile_star2_O1/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 $0x38, %rsp
movq %r9, -0x60(%rbp)
movq %r8, -0x58(%rbp)
movq %rcx, -0x50(%rbp)
movq %rsi, %rbx
leaq 0x8(%rdx), %r14
movq 0x18(%rdx), %r13
cmpb $0x74, %dil
jne 0x36901
cmpq %r14, %r13
je 0x36554
leaq 0x28(%r13), %r15
leaq -0x48(%rbp), %rdi
movq %r15, %rsi
callq 0x4ed0
movq -0x40(%rbp), %rdx
cmpq 0x8(%rbx), %rdx
jne 0x36516
testq %rdx, %rdx
je 0x3651b
movq (%rbx), %rsi
movq -0x48(%rbp), %rdi
callq 0x3230
testl %eax, %eax
sete %r12b
jmp 0x3651e
xorl %r12d, %r12d
jmp 0x3651e
movb $0x1, %r12b
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x36530
callq 0x31d0
testb %r12b, %r12b
je 0x36544
movq 0x11a94(%rip), %rdi     # 0x47fd0
movq %r15, %rsi
callq 0x8385
movq %r13, %rdi
callq 0x3140
movq %rax, %r13
cmpq %r14, %rax
jne 0x364e3
movq -0x50(%rbp), %rax
movq 0x18(%rax), %r13
addq $0x8, %rax
cmpq %rax, %r13
je 0x365d9
movq %rax, %r14
leaq 0x28(%r13), %r15
leaq -0x48(%rbp), %rdi
movq %r15, %rsi
callq 0x4ed0
movq -0x40(%rbp), %rdx
cmpq 0x8(%rbx), %rdx
jne 0x3659b
testq %rdx, %rdx
je 0x365a0
movq (%rbx), %rsi
movq -0x48(%rbp), %rdi
callq 0x3230
testl %eax, %eax
sete %r12b
jmp 0x365a3
xorl %r12d, %r12d
jmp 0x365a3
movb $0x1, %r12b
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x365b5
callq 0x31d0
testb %r12b, %r12b
je 0x365c9
movq 0x11a0f(%rip), %rdi     # 0x47fd0
movq %r15, %rsi
callq 0x8aa6
movq %r13, %rdi
callq 0x3140
movq %rax, %r13
cmpq %r14, %rax
jne 0x36568
movq -0x58(%rbp), %rax
movq 0x18(%rax), %r12
addq $0x8, %rax
cmpq %rax, %r12
je 0x3665f
movq %rax, %r14
leaq 0x28(%r12), %r15
leaq -0x48(%rbp), %rdi
movq %r15, %rsi
callq 0x4ed0
movq -0x40(%rbp), %rdx
cmpq 0x8(%rbx), %rdx
jne 0x36621
testq %rdx, %rdx
je 0x36626
movq (%rbx), %rsi
movq -0x48(%rbp), %rdi
callq 0x3230
testl %eax, %eax
sete %r13b
jmp 0x36629
xorl %r13d, %r13d
jmp 0x36629
movb $0x1, %r13b
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x3663b
callq 0x31d0
testb %r13b, %r13b
je 0x3664f
movq 0x11989(%rip), %rdi     # 0x47fd0
movq %r15, %rsi
callq 0x9eec
movq %r12, %rdi
callq 0x3140
movq %rax, %r12
cmpq %r14, %rax
jne 0x365ed
movq -0x60(%rbp), %rax
movq 0x18(%rax), %r15
addq $0x8, %rax
cmpq %rax, %r15
je 0x366e4
movq %rax, %r14
leaq 0x28(%r15), %r13
leaq -0x48(%rbp), %rdi
movq %r13, %rsi
callq 0x4ed0
movq -0x40(%rbp), %rdx
cmpq 0x8(%rbx), %rdx
jne 0x366a6
testq %rdx, %rdx
je 0x366ab
movq (%rbx), %rsi
movq -0x48(%rbp), %rdi
callq 0x3230
testl %eax, %eax
sete %r12b
jmp 0x366ae
xorl %r12d, %r12d
jmp 0x366ae
movb $0x1, %r12b
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x366c0
callq 0x31d0
testb %r12b, %r12b
je 0x366d4
movq 0x11904(%rip), %rdi     # 0x47fd0
movq %r13, %rsi
callq 0xa640
movq %r15, %rdi
callq 0x3140
movq %rax, %r15
cmpq %r14, %rax
jne 0x36673
movq 0x10(%rbp), %rax
movq 0x18(%rax), %r14
addq $0x8, %rax
cmpq %rax, %r14
je 0x36769
movq %rax, %r15
leaq 0x28(%r14), %r13
leaq -0x48(%rbp), %rdi
movq %r13, %rsi
callq 0x4ed0
movq -0x40(%rbp), %rdx
cmpq 0x8(%rbx), %rdx
jne 0x3672b
testq %rdx, %rdx
je 0x36730
movq (%rbx), %rsi
movq -0x48(%rbp), %rdi
callq 0x3230
testl %eax, %eax
sete %r12b
jmp 0x36733
xorl %r12d, %r12d
jmp 0x36733
movb $0x1, %r12b
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x36745
callq 0x31d0
testb %r12b, %r12b
je 0x36759
movq 0x1187f(%rip), %rdi     # 0x47fd0
movq %r13, %rsi
callq 0xba6f
movq %r14, %rdi
callq 0x3140
movq %rax, %r14
cmpq %r15, %rax
jne 0x366f8
movq 0x18(%rbp), %rax
movq 0x18(%rax), %r14
addq $0x8, %rax
cmpq %rax, %r14
je 0x367ee
movq %rax, %r15
leaq 0x28(%r14), %r13
leaq -0x48(%rbp), %rdi
movq %r13, %rsi
callq 0x4ed0
movq -0x40(%rbp), %rdx
cmpq 0x8(%rbx), %rdx
jne 0x367b0
testq %rdx, %rdx
je 0x367b5
movq (%rbx), %rsi
movq -0x48(%rbp), %rdi
callq 0x3230
testl %eax, %eax
sete %r12b
jmp 0x367b8
xorl %r12d, %r12d
jmp 0x367b8
movb $0x1, %r12b
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x367ca
callq 0x31d0
testb %r12b, %r12b
je 0x367de
movq 0x117fa(%rip), %rdi     # 0x47fd0
movq %r13, %rsi
callq 0xc211
movq %r14, %rdi
callq 0x3140
movq %rax, %r14
cmpq %r15, %rax
jne 0x3677d
movq 0x20(%rbp), %rax
movq 0x18(%rax), %r14
addq $0x8, %rax
cmpq %rax, %r14
je 0x36873
movq %rax, %r15
leaq 0x28(%r14), %r13
leaq -0x48(%rbp), %rdi
movq %r13, %rsi
callq 0x4ed0
movq -0x40(%rbp), %rdx
cmpq 0x8(%rbx), %rdx
jne 0x36835
testq %rdx, %rdx
je 0x3683a
movq (%rbx), %rsi
movq -0x48(%rbp), %rdi
callq 0x3230
testl %eax, %eax
sete %r12b
jmp 0x3683d
xorl %r12d, %r12d
jmp 0x3683d
movb $0x1, %r12b
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x3684f
callq 0x31d0
testb %r12b, %r12b
je 0x36863
movq 0x11775(%rip), %rdi     # 0x47fd0
movq %r13, %rsi
callq 0xd6c3
movq %r14, %rdi
callq 0x3140
movq %rax, %r14
cmpq %r15, %rax
jne 0x36802
movq 0x28(%rbp), %rax
movq 0x18(%rax), %r14
addq $0x8, %rax
cmpq %rax, %r14
je 0x36d1b
movq %rax, %r15
leaq 0x28(%r14), %r13
leaq -0x48(%rbp), %rdi
movq %r13, %rsi
callq 0x4ed0
movq -0x40(%rbp), %rdx
cmpq 0x8(%rbx), %rdx
jne 0x368be
testq %rdx, %rdx
je 0x368c3
movq (%rbx), %rsi
movq -0x48(%rbp), %rdi
callq 0x3230
testl %eax, %eax
sete %r12b
jmp 0x368c6
xorl %r12d, %r12d
jmp 0x368c6
movb $0x1, %r12b
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x368d8
callq 0x31d0
testb %r12b, %r12b
je 0x368ec
movq 0x116ec(%rip), %rdi     # 0x47fd0
movq %r13, %rsi
callq 0xde35
movq %r14, %rdi
callq 0x3140
movq %rax, %r14
cmpq %r15, %rax
jne 0x3688b
jmp 0x36d1b
cmpq %r14, %r13
je 0x36977
leaq 0x28(%r13), %r15
leaq -0x48(%rbp), %rdi
movq %r15, %rsi
callq 0x4e9c
movq -0x40(%rbp), %rdx
cmpq 0x8(%rbx), %rdx
jne 0x36939
testq %rdx, %rdx
je 0x3693e
movq (%rbx), %rsi
movq -0x48(%rbp), %rdi
callq 0x3230
testl %eax, %eax
sete %r12b
jmp 0x36941
xorl %r12d, %r12d
jmp 0x36941
movb $0x1, %r12b
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x36953
callq 0x31d0
testb %r12b, %r12b
je 0x36967
movq 0x11671(%rip), %rdi     # 0x47fd0
movq %r15, %rsi
callq 0x8385
movq %r13, %rdi
callq 0x3140
movq %rax, %r13
cmpq %r14, %rax
jne 0x36906
movq -0x50(%rbp), %rax
movq 0x18(%rax), %r13
addq $0x8, %rax
cmpq %rax, %r13
je 0x369fc
movq %rax, %r14
leaq 0x28(%r13), %r15
leaq -0x48(%rbp), %rdi
movq %r15, %rsi
callq 0x4e9c
movq -0x40(%rbp), %rdx
cmpq 0x8(%rbx), %rdx
jne 0x369be
testq %rdx, %rdx
je 0x369c3
movq (%rbx), %rsi
movq -0x48(%rbp), %rdi
callq 0x3230
testl %eax, %eax
sete %r12b
jmp 0x369c6
xorl %r12d, %r12d
jmp 0x369c6
movb $0x1, %r12b
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x369d8
callq 0x31d0
testb %r12b, %r12b
je 0x369ec
movq 0x115ec(%rip), %rdi     # 0x47fd0
movq %r15, %rsi
callq 0x8aa6
movq %r13, %rdi
callq 0x3140
movq %rax, %r13
cmpq %r14, %rax
jne 0x3698b
movq -0x58(%rbp), %rax
movq 0x18(%rax), %r12
addq $0x8, %rax
cmpq %rax, %r12
je 0x36a82
movq %rax, %r14
leaq 0x28(%r12), %r15
leaq -0x48(%rbp), %rdi
movq %r15, %rsi
callq 0x4e9c
movq -0x40(%rbp), %rdx
cmpq 0x8(%rbx), %rdx
jne 0x36a44
testq %rdx, %rdx
je 0x36a49
movq (%rbx), %rsi
movq -0x48(%rbp), %rdi
callq 0x3230
testl %eax, %eax
sete %r13b
jmp 0x36a4c
xorl %r13d, %r13d
jmp 0x36a4c
movb $0x1, %r13b
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x36a5e
callq 0x31d0
testb %r13b, %r13b
je 0x36a72
movq 0x11566(%rip), %rdi     # 0x47fd0
movq %r15, %rsi
callq 0x9eec
movq %r12, %rdi
callq 0x3140
movq %rax, %r12
cmpq %r14, %rax
jne 0x36a10
movq -0x60(%rbp), %rax
movq 0x18(%rax), %r15
addq $0x8, %rax
cmpq %rax, %r15
je 0x36b07
movq %rax, %r14
leaq 0x28(%r15), %r13
leaq -0x48(%rbp), %rdi
movq %r13, %rsi
callq 0x4e9c
movq -0x40(%rbp), %rdx
cmpq 0x8(%rbx), %rdx
jne 0x36ac9
testq %rdx, %rdx
je 0x36ace
movq (%rbx), %rsi
movq -0x48(%rbp), %rdi
callq 0x3230
testl %eax, %eax
sete %r12b
jmp 0x36ad1
xorl %r12d, %r12d
jmp 0x36ad1
movb $0x1, %r12b
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x36ae3
callq 0x31d0
testb %r12b, %r12b
je 0x36af7
movq 0x114e1(%rip), %rdi     # 0x47fd0
movq %r13, %rsi
callq 0xa640
movq %r15, %rdi
callq 0x3140
movq %rax, %r15
cmpq %r14, %rax
jne 0x36a96
movq 0x10(%rbp), %rax
movq 0x18(%rax), %r14
addq $0x8, %rax
cmpq %rax, %r14
je 0x36b8c
movq %rax, %r15
leaq 0x28(%r14), %r13
leaq -0x48(%rbp), %rdi
movq %r13, %rsi
callq 0x4e9c
movq -0x40(%rbp), %rdx
cmpq 0x8(%rbx), %rdx
jne 0x36b4e
testq %rdx, %rdx
je 0x36b53
movq (%rbx), %rsi
movq -0x48(%rbp), %rdi
callq 0x3230
testl %eax, %eax
sete %r12b
jmp 0x36b56
xorl %r12d, %r12d
jmp 0x36b56
movb $0x1, %r12b
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x36b68
callq 0x31d0
testb %r12b, %r12b
je 0x36b7c
movq 0x1145c(%rip), %rdi     # 0x47fd0
movq %r13, %rsi
callq 0xba6f
movq %r14, %rdi
callq 0x3140
movq %rax, %r14
cmpq %r15, %rax
jne 0x36b1b
movq 0x18(%rbp), %rax
movq 0x18(%rax), %r14
addq $0x8, %rax
cmpq %rax, %r14
je 0x36c11
movq %rax, %r15
leaq 0x28(%r14), %r13
leaq -0x48(%rbp), %rdi
movq %r13, %rsi
callq 0x4e9c
movq -0x40(%rbp), %rdx
cmpq 0x8(%rbx), %rdx
jne 0x36bd3
testq %rdx, %rdx
je 0x36bd8
movq (%rbx), %rsi
movq -0x48(%rbp), %rdi
callq 0x3230
testl %eax, %eax
sete %r12b
jmp 0x36bdb
xorl %r12d, %r12d
jmp 0x36bdb
movb $0x1, %r12b
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x36bed
callq 0x31d0
testb %r12b, %r12b
je 0x36c01
movq 0x113d7(%rip), %rdi     # 0x47fd0
movq %r13, %rsi
callq 0xc211
movq %r14, %rdi
callq 0x3140
movq %rax, %r14
cmpq %r15, %rax
jne 0x36ba0
movq 0x20(%rbp), %rax
movq 0x18(%rax), %r14
addq $0x8, %rax
cmpq %rax, %r14
je 0x36c96
movq %rax, %r15
leaq 0x28(%r14), %r13
leaq -0x48(%rbp), %rdi
movq %r13, %rsi
callq 0x4e9c
movq -0x40(%rbp), %rdx
cmpq 0x8(%rbx), %rdx
jne 0x36c58
testq %rdx, %rdx
je 0x36c5d
movq (%rbx), %rsi
movq -0x48(%rbp), %rdi
callq 0x3230
testl %eax, %eax
sete %r12b
jmp 0x36c60
xorl %r12d, %r12d
jmp 0x36c60
movb $0x1, %r12b
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x36c72
callq 0x31d0
testb %r12b, %r12b
je 0x36c86
movq 0x11352(%rip), %rdi     # 0x47fd0
movq %r13, %rsi
callq 0xd6c3
movq %r14, %rdi
callq 0x3140
movq %rax, %r14
cmpq %r15, %rax
jne 0x36c25
movq 0x28(%rbp), %rax
movq 0x18(%rax), %r14
addq $0x8, %rax
cmpq %rax, %r14
je 0x36d1b
movq %rax, %r15
leaq 0x28(%r14), %r13
leaq -0x48(%rbp), %rdi
movq %r13, %rsi
callq 0x4e9c
movq -0x40(%rbp), %rdx
cmpq 0x8(%rbx), %rdx
jne 0x36cdd
testq %rdx, %rdx
je 0x36ce2
movq (%rbx), %rsi
movq -0x48(%rbp), %rdi
callq 0x3230
testl %eax, %eax
sete %r12b
jmp 0x36ce5
xorl %r12d, %r12d
jmp 0x36ce5
movb $0x1, %r12b
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x36cf7
callq 0x31d0
testb %r12b, %r12b
je 0x36d0b
movq 0x112cd(%rip), %rdi     # 0x47fd0
movq %r13, %rsi
callq 0xde35
movq %r14, %rdi
callq 0x3140
movq %rax, %r14
cmpq %r15, %rax
jne 0x36caa
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop