// File: /workspace/github_cpp_makefile_star2_O3/nataly-enne[P]pet-fera/pet_fera_auxiliar.cpp
// Function: exportacao_trat(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>>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void exportacao_trat(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, string tratador, string saida){
	transform(tratador.begin(), tratador.end(), tratador.begin(), ::toupper);

	ofstream animais;
	animais.open(saida);

	for(auto it = anfibios_nat.begin(); it != anfibios_nat.end(); it++){
		if(it->second.getTratador() == tratador){
			animais << (*it).second;
		}	
	}
	for(auto it = anfibios_ex.begin(); it != anfibios_ex.end(); it++){
		if(it->second.getTratador() == tratador){
			animais << (*it).second;
		}		
	}
	for(auto it = mamiferos_nat.begin(); it != mamiferos_nat.end(); it++){
		if(it->second.getTratador() == tratador){
			animais << (*it).second;
		}
	}
	for(auto it = mamiferos_ex.begin(); it != mamiferos_ex.end(); it++){
		if(it->second.getTratador() == tratador){
			animais << (*it).second;
		}	
	}
	for(auto it = repteis_nat.begin(); it != repteis_nat.end(); it++){
		if(it->second.getTratador() == tratador){
			animais << (*it).second;
		}
	}
	for(auto it = repteis_ex.begin(); it != repteis_ex.end(); it++){
		if(it->second.getTratador() == tratador){
			animais << (*it).second;
		}	
	}
	for(auto it = aves_nat.begin(); it != aves_nat.end(); it++){
		if(it->second.getTratador() == tratador){
			animais << (*it).second;
		}	
	}
	for(auto it = aves_ex.begin(); it != aves_ex.end(); it++){
		if(it->second.getTratador() == tratador){
			animais << (*it).second;
		}	
	}
	animais.close();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x248, %rsp            # imm = 0x248
movq %r9, -0x50(%rbp)
movq %r8, -0x58(%rbp)
movq %rcx, -0x60(%rbp)
movq %rdx, -0x68(%rbp)
movq %rsi, -0x70(%rbp)
movq %rdi, %rbx
movq 0x28(%rbp), %r14
movq 0x20(%rbp), %rax
movq 0x8(%rax), %r15
testq %r15, %r15
je 0xb4fa
movq (%rax), %r12
xorl %r13d, %r13d
movsbl (%r12,%r13), %edi
callq 0x43a0
movb %al, (%r12,%r13)
incq %r13
cmpq %r13, %r15
jne 0xb4e4
leaq -0x270(%rbp), %r15
movq %r15, %rdi
callq 0x4360
movq %r15, %rdi
movq %r14, %rsi
movl $0x10, %edx
callq 0x40f0
movq 0x18(%rbx), %r14
addq $0x8, %rbx
cmpq %rbx, %r14
je 0xb5a1
leaq 0x28(%r14), %r12
leaq -0x48(%rbp), %rdi
movq %r12, %rsi
callq 0x42b0
movq -0x40(%rbp), %rdx
movq 0x20(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0xb560
movq -0x48(%rbp), %r15
testq %rdx, %rdx
je 0xb569
movq (%rax), %rsi
movq %r15, %rdi
callq 0x4260
testl %eax, %eax
sete %r13b
jmp 0xb56c
movq -0x48(%rbp), %r15
xorl %r13d, %r13d
jmp 0xb56c
movb $0x1, %r13b
leaq -0x38(%rbp), %rax
cmpq %rax, %r15
je 0xb57d
movq %r15, %rdi
callq 0x4220
testb %r13b, %r13b
je 0xb591
leaq -0x270(%rbp), %rdi
movq %r12, %rsi
callq 0x41f0
movq %r14, %rdi
callq 0x4180
movq %rax, %r14
cmpq %rbx, %rax
jne 0xb526
movq -0x70(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0xb630
movq %rax, %r14
leaq 0x28(%rbx), %r12
leaq -0x48(%rbp), %rdi
movq %r12, %rsi
callq 0x42b0
movq -0x40(%rbp), %rdx
movq 0x20(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0xb5ef
movq -0x48(%rbp), %r15
testq %rdx, %rdx
je 0xb5f8
movq (%rax), %rsi
movq %r15, %rdi
callq 0x4260
testl %eax, %eax
sete %r13b
jmp 0xb5fb
movq -0x48(%rbp), %r15
xorl %r13d, %r13d
jmp 0xb5fb
movb $0x1, %r13b
leaq -0x38(%rbp), %rax
cmpq %rax, %r15
je 0xb60c
movq %r15, %rdi
callq 0x4220
testb %r13b, %r13b
je 0xb620
leaq -0x270(%rbp), %rdi
movq %r12, %rsi
callq 0x4370
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r14, %rax
jne 0xb5b5
movq -0x68(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0xb6bf
movq %rax, %r14
leaq 0x28(%rbx), %r12
leaq -0x48(%rbp), %rdi
movq %r12, %rsi
callq 0x42b0
movq -0x40(%rbp), %rdx
movq 0x20(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0xb67e
movq -0x48(%rbp), %r13
testq %rdx, %rdx
je 0xb687
movq (%rax), %rsi
movq %r13, %rdi
callq 0x4260
testl %eax, %eax
sete %r15b
jmp 0xb68a
movq -0x48(%rbp), %r13
xorl %r15d, %r15d
jmp 0xb68a
movb $0x1, %r15b
leaq -0x38(%rbp), %rax
cmpq %rax, %r13
je 0xb69b
movq %r13, %rdi
callq 0x4220
testb %r15b, %r15b
je 0xb6af
leaq -0x270(%rbp), %rdi
movq %r12, %rsi
callq 0x42e0
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r14, %rax
jne 0xb644
movq -0x60(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0xb74e
movq %rax, %r14
leaq 0x28(%rbx), %r12
leaq -0x48(%rbp), %rdi
movq %r12, %rsi
callq 0x42b0
movq -0x40(%rbp), %rdx
movq 0x20(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0xb70d
movq -0x48(%rbp), %r13
testq %rdx, %rdx
je 0xb716
movq (%rax), %rsi
movq %r13, %rdi
callq 0x4260
testl %eax, %eax
sete %r15b
jmp 0xb719
movq -0x48(%rbp), %r13
xorl %r15d, %r15d
jmp 0xb719
movb $0x1, %r15b
leaq -0x38(%rbp), %rax
cmpq %rax, %r13
je 0xb72a
movq %r13, %rdi
callq 0x4220
testb %r15b, %r15b
je 0xb73e
leaq -0x270(%rbp), %rdi
movq %r12, %rsi
callq 0x4120
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r14, %rax
jne 0xb6d3
movq -0x58(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0xb7dd
movq %rax, %r14
leaq 0x28(%rbx), %r12
leaq -0x48(%rbp), %rdi
movq %r12, %rsi
callq 0x42b0
movq -0x40(%rbp), %rdx
movq 0x20(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0xb79c
movq -0x48(%rbp), %r13
testq %rdx, %rdx
je 0xb7a5
movq (%rax), %rsi
movq %r13, %rdi
callq 0x4260
testl %eax, %eax
sete %r15b
jmp 0xb7a8
movq -0x48(%rbp), %r13
xorl %r15d, %r15d
jmp 0xb7a8
movb $0x1, %r15b
leaq -0x38(%rbp), %rax
cmpq %rax, %r13
je 0xb7b9
movq %r13, %rdi
callq 0x4220
testb %r15b, %r15b
je 0xb7cd
leaq -0x270(%rbp), %rdi
movq %r12, %rsi
callq 0x40a0
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r14, %rax
jne 0xb762
movq -0x50(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0xb86c
movq %rax, %r14
leaq 0x28(%rbx), %r12
leaq -0x48(%rbp), %rdi
movq %r12, %rsi
callq 0x42b0
movq -0x40(%rbp), %rdx
movq 0x20(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0xb82b
movq -0x48(%rbp), %r13
testq %rdx, %rdx
je 0xb834
movq (%rax), %rsi
movq %r13, %rdi
callq 0x4260
testl %eax, %eax
sete %r15b
jmp 0xb837
movq -0x48(%rbp), %r13
xorl %r15d, %r15d
jmp 0xb837
movb $0x1, %r15b
leaq -0x38(%rbp), %rax
cmpq %rax, %r13
je 0xb848
movq %r13, %rdi
callq 0x4220
testb %r15b, %r15b
je 0xb85c
leaq -0x270(%rbp), %rdi
movq %r12, %rsi
callq 0x4140
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r14, %rax
jne 0xb7f1
movq 0x10(%rbp), %r15
movq 0x18(%r15), %rbx
addq $0x8, %r15
cmpq %r15, %rbx
je 0xb8f8
leaq 0x28(%rbx), %r12
leaq -0x48(%rbp), %rdi
movq %r12, %rsi
callq 0x42b0
movq -0x40(%rbp), %rdx
movq 0x20(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0xb8b7
movq -0x48(%rbp), %r13
testq %rdx, %rdx
je 0xb8c0
movq (%rax), %rsi
movq %r13, %rdi
callq 0x4260
testl %eax, %eax
sete %r14b
jmp 0xb8c3
movq -0x48(%rbp), %r13
xorl %r14d, %r14d
jmp 0xb8c3
movb $0x1, %r14b
leaq -0x38(%rbp), %rax
cmpq %rax, %r13
je 0xb8d4
movq %r13, %rdi
callq 0x4220
testb %r14b, %r14b
je 0xb8e8
leaq -0x270(%rbp), %rdi
movq %r12, %rsi
callq 0x42d0
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r15, %rax
jne 0xb87d
movq 0x18(%rbp), %r15
movq 0x18(%r15), %rbx
addq $0x8, %r15
cmpq %r15, %rbx
je 0xb984
leaq 0x28(%rbx), %r12
leaq -0x48(%rbp), %rdi
movq %r12, %rsi
callq 0x42b0
movq -0x40(%rbp), %rdx
movq 0x20(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0xb943
movq -0x48(%rbp), %r13
testq %rdx, %rdx
je 0xb94c
movq (%rax), %rsi
movq %r13, %rdi
callq 0x4260
testl %eax, %eax
sete %r14b
jmp 0xb94f
movq -0x48(%rbp), %r13
xorl %r14d, %r14d
jmp 0xb94f
movb $0x1, %r14b
leaq -0x38(%rbp), %rax
cmpq %rax, %r13
je 0xb960
movq %r13, %rdi
callq 0x4220
testb %r14b, %r14b
je 0xb974
leaq -0x270(%rbp), %rdi
movq %r12, %rsi
callq 0x4270
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r15, %rax
jne 0xb909
leaq -0x270(%rbp), %rdi
callq 0x42f0
movq 0x6609(%rip), %rax      # 0x11fa0
movq (%rax), %rcx
movq 0x18(%rax), %rax
leaq -0x268(%rbp), %rdi
movq %rcx, -0x8(%rdi)
movq -0x18(%rcx), %rcx
movq %rax, -0x270(%rbp,%rcx)
callq 0x41e0
leaq -0x178(%rbp), %rdi
callq 0x40b0
addq $0x248, %rsp            # imm = 0x248
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0xb9f8
jmp 0xb9f8
jmp 0xb9f8
jmp 0xb9f8
jmp 0xb9f8
jmp 0xb9f8
jmp 0xb9f8
jmp 0xb9f8
jmp 0xb9f8
jmp 0xb9f8
jmp 0xb9f8
jmp 0xb9f8
jmp 0xb9f8
jmp 0xb9f8
jmp 0xb9f8
jmp 0xb9f8
movq %rax, %rbx
leaq -0x270(%rbp), %rdi
callq 0x4320
movq %rbx, %rdi
callq 0x4380