// File: /workspace/github_cpp_makefile_star2_O1/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 0x20(%rbp), %r15
movq 0x8(%r15), %r12
testq %r12, %r12
je 0xb42f
movq (%r15), %r13
xorl %r14d, %r14d
movsbl (%r13,%r14), %edi
callq 0x43a0
movb %al, (%r13,%r14)
incq %r14
cmpq %r14, %r12
jne 0xb417
leaq -0x270(%rbp), %r12
movq %r12, %rdi
callq 0x4360
movq %r12, %rdi
movq 0x28(%rbp), %rsi
movl $0x10, %edx
callq 0x40f0
movq 0x18(%rbx), %r14
addq $0x8, %rbx
cmpq %rbx, %r14
je 0xb4cd
leaq 0x28(%r14), %r12
leaq -0x48(%rbp), %rdi
movq %r12, %rsi
callq 0x42b0
movq -0x40(%rbp), %rdx
cmpq 0x8(%r15), %rdx
jne 0xb48f
testq %rdx, %rdx
je 0xb494
movq (%r15), %rsi
movq -0x48(%rbp), %rdi
callq 0x4260
testl %eax, %eax
sete %r13b
jmp 0xb497
xorl %r13d, %r13d
jmp 0xb497
movb $0x1, %r13b
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xb4a9
callq 0x4220
testb %r13b, %r13b
je 0xb4bd
leaq -0x270(%rbp), %rdi
movq %r12, %rsi
callq 0x41f0
movq %r14, %rdi
callq 0x4180
movq %rax, %r14
cmpq %rbx, %rax
jne 0xb45c
movq -0x70(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0xb552
movq %rax, %r14
leaq 0x28(%rbx), %r12
leaq -0x48(%rbp), %rdi
movq %r12, %rsi
callq 0x42b0
movq -0x40(%rbp), %rdx
cmpq 0x8(%r15), %rdx
jne 0xb514
testq %rdx, %rdx
je 0xb519
movq (%r15), %rsi
movq -0x48(%rbp), %rdi
callq 0x4260
testl %eax, %eax
sete %r13b
jmp 0xb51c
xorl %r13d, %r13d
jmp 0xb51c
movb $0x1, %r13b
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xb52e
callq 0x4220
testb %r13b, %r13b
je 0xb542
leaq -0x270(%rbp), %rdi
movq %r12, %rsi
callq 0x4370
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r14, %rax
jne 0xb4e1
movq -0x68(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0xb5d7
movq %rax, %r14
leaq 0x28(%rbx), %r12
leaq -0x48(%rbp), %rdi
movq %r12, %rsi
callq 0x42b0
movq -0x40(%rbp), %rdx
cmpq 0x8(%r15), %rdx
jne 0xb599
testq %rdx, %rdx
je 0xb59e
movq (%r15), %rsi
movq -0x48(%rbp), %rdi
callq 0x4260
testl %eax, %eax
sete %r13b
jmp 0xb5a1
xorl %r13d, %r13d
jmp 0xb5a1
movb $0x1, %r13b
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xb5b3
callq 0x4220
testb %r13b, %r13b
je 0xb5c7
leaq -0x270(%rbp), %rdi
movq %r12, %rsi
callq 0x42e0
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r14, %rax
jne 0xb566
movq -0x60(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0xb65c
movq %rax, %r14
leaq 0x28(%rbx), %r12
leaq -0x48(%rbp), %rdi
movq %r12, %rsi
callq 0x42b0
movq -0x40(%rbp), %rdx
cmpq 0x8(%r15), %rdx
jne 0xb61e
testq %rdx, %rdx
je 0xb623
movq (%r15), %rsi
movq -0x48(%rbp), %rdi
callq 0x4260
testl %eax, %eax
sete %r13b
jmp 0xb626
xorl %r13d, %r13d
jmp 0xb626
movb $0x1, %r13b
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xb638
callq 0x4220
testb %r13b, %r13b
je 0xb64c
leaq -0x270(%rbp), %rdi
movq %r12, %rsi
callq 0x4120
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r14, %rax
jne 0xb5eb
movq -0x58(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0xb6e1
movq %rax, %r14
leaq 0x28(%rbx), %r12
leaq -0x48(%rbp), %rdi
movq %r12, %rsi
callq 0x42b0
movq -0x40(%rbp), %rdx
cmpq 0x8(%r15), %rdx
jne 0xb6a3
testq %rdx, %rdx
je 0xb6a8
movq (%r15), %rsi
movq -0x48(%rbp), %rdi
callq 0x4260
testl %eax, %eax
sete %r13b
jmp 0xb6ab
xorl %r13d, %r13d
jmp 0xb6ab
movb $0x1, %r13b
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xb6bd
callq 0x4220
testb %r13b, %r13b
je 0xb6d1
leaq -0x270(%rbp), %rdi
movq %r12, %rsi
callq 0x40a0
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r14, %rax
jne 0xb670
movq -0x50(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0xb766
movq %rax, %r14
leaq 0x28(%rbx), %r12
leaq -0x48(%rbp), %rdi
movq %r12, %rsi
callq 0x42b0
movq -0x40(%rbp), %rdx
cmpq 0x8(%r15), %rdx
jne 0xb728
testq %rdx, %rdx
je 0xb72d
movq (%r15), %rsi
movq -0x48(%rbp), %rdi
callq 0x4260
testl %eax, %eax
sete %r13b
jmp 0xb730
xorl %r13d, %r13d
jmp 0xb730
movb $0x1, %r13b
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xb742
callq 0x4220
testb %r13b, %r13b
je 0xb756
leaq -0x270(%rbp), %rdi
movq %r12, %rsi
callq 0x4140
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r14, %rax
jne 0xb6f5
movq 0x10(%rbp), %r13
movq 0x18(%r13), %rbx
addq $0x8, %r13
cmpq %r13, %rbx
je 0xb7e8
leaq 0x28(%rbx), %r12
leaq -0x48(%rbp), %rdi
movq %r12, %rsi
callq 0x42b0
movq -0x40(%rbp), %rdx
cmpq 0x8(%r15), %rdx
jne 0xb7aa
testq %rdx, %rdx
je 0xb7af
movq (%r15), %rsi
movq -0x48(%rbp), %rdi
callq 0x4260
testl %eax, %eax
sete %r14b
jmp 0xb7b2
xorl %r14d, %r14d
jmp 0xb7b2
movb $0x1, %r14b
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xb7c4
callq 0x4220
testb %r14b, %r14b
je 0xb7d8
leaq -0x270(%rbp), %rdi
movq %r12, %rsi
callq 0x42d0
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r13, %rax
jne 0xb777
movq 0x18(%rbp), %r13
movq 0x18(%r13), %rbx
addq $0x8, %r13
cmpq %r13, %rbx
je 0xb86a
leaq 0x28(%rbx), %r12
leaq -0x48(%rbp), %rdi
movq %r12, %rsi
callq 0x42b0
movq -0x40(%rbp), %rdx
cmpq 0x8(%r15), %rdx
jne 0xb82c
testq %rdx, %rdx
je 0xb831
movq (%r15), %rsi
movq -0x48(%rbp), %rdi
callq 0x4260
testl %eax, %eax
sete %r14b
jmp 0xb834
xorl %r14d, %r14d
jmp 0xb834
movb $0x1, %r14b
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xb846
callq 0x4220
testb %r14b, %r14b
je 0xb85a
leaq -0x270(%rbp), %rdi
movq %r12, %rsi
callq 0x4270
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r13, %rax
jne 0xb7f9
leaq -0x270(%rbp), %rdi
callq 0x42f0
movq 0x6723(%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 0xb8de
jmp 0xb8de
jmp 0xb8de
jmp 0xb8de
jmp 0xb8de
jmp 0xb8de
jmp 0xb8de
jmp 0xb8de
jmp 0xb8de
jmp 0xb8de
jmp 0xb8de
jmp 0xb8de
jmp 0xb8de
jmp 0xb8de
jmp 0xb8de
jmp 0xb8de
movq %rax, %rbx
leaq -0x270(%rbp), %rdi
callq 0x4320
movq %rbx, %rdi
callq 0x4380