// File: /workspace/github_cpp_makefile_star2_O2/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, -0x30(%rbp)
movq %r8, -0x38(%rbp)
movq %rcx, -0x40(%rbp)
movq %rdx, -0x48(%rbp)
movq %rsi, -0x50(%rbp)
movq %rdi, %r15
movq 0x28(%rbp), %r12
movq 0x20(%rbp), %rax
movq (%rax), %rbx
movq 0x8(%rax), %r14
xorl %r13d, %r13d
cmpq %r13, %r14
je 0xa249
movsbl (%rbx,%r13), %edi
callq 0x5330
movb %al, (%rbx,%r13)
incq %r13
jmp 0xa231
leaq -0x270(%rbp), %r14
movq %r14, %rdi
callq 0x5300
pushq $0x10
popq %rdx
movq %r14, %rdi
movq %r12, %rsi
callq 0x50e0
movq 0x18(%r15), %r12
addq $0x8, %r15
leaq -0x70(%rbp), %r13
cmpq %r15, %r12
je 0xa2bd
leaq 0x28(%r12), %r14
movq %r13, %rdi
movq %r14, %rsi
callq 0x5260
movq %r13, %rdi
movq 0x20(%rbp), %rsi
callq 0xabcb
movl %eax, %ebx
movq %r13, %rdi
callq 0x50d0
testb %bl, %bl
je 0xa2b0
leaq -0x270(%rbp), %rdi
movq %r14, %rsi
callq 0x51b0
movq %r12, %rdi
callq 0x5160
movq %rax, %r12
jmp 0xa272
movq -0x50(%rbp), %r13
movq 0x18(%r13), %r15
addq $0x8, %r13
leaq -0x70(%rbp), %r12
cmpq %r13, %r15
je 0xa317
leaq 0x28(%r15), %r14
movq %r12, %rdi
movq %r14, %rsi
callq 0x5260
movq %r12, %rdi
movq 0x20(%rbp), %rsi
callq 0xabcb
movl %eax, %ebx
movq %r12, %rdi
callq 0x50d0
testb %bl, %bl
je 0xa30a
leaq -0x270(%rbp), %rdi
movq %r14, %rsi
callq 0x5310
movq %r15, %rdi
callq 0x5160
movq %rax, %r15
jmp 0xa2cd
movq -0x48(%rbp), %r12
movq 0x18(%r12), %r14
addq $0x8, %r12
leaq -0x70(%rbp), %r15
cmpq %r12, %r14
je 0xa372
leaq 0x28(%r14), %r13
movq %r15, %rdi
movq %r13, %rsi
callq 0x5260
movq %r15, %rdi
movq 0x20(%rbp), %rsi
callq 0xabcb
movl %eax, %ebx
movq %r15, %rdi
callq 0x50d0
testb %bl, %bl
je 0xa365
leaq -0x270(%rbp), %rdi
movq %r13, %rsi
callq 0x5290
movq %r14, %rdi
callq 0x5160
movq %rax, %r14
jmp 0xa328
movq -0x40(%rbp), %r12
movq 0x18(%r12), %r14
addq $0x8, %r12
leaq -0x70(%rbp), %r15
cmpq %r12, %r14
je 0xa3cd
leaq 0x28(%r14), %r13
movq %r15, %rdi
movq %r13, %rsi
callq 0x5260
movq %r15, %rdi
movq 0x20(%rbp), %rsi
callq 0xabcb
movl %eax, %ebx
movq %r15, %rdi
callq 0x50d0
testb %bl, %bl
je 0xa3c0
leaq -0x270(%rbp), %rdi
movq %r13, %rsi
callq 0x5110
movq %r14, %rdi
callq 0x5160
movq %rax, %r14
jmp 0xa383
movq -0x38(%rbp), %r12
movq 0x18(%r12), %r14
addq $0x8, %r12
leaq -0x70(%rbp), %r15
cmpq %r12, %r14
je 0xa428
leaq 0x28(%r14), %r13
movq %r15, %rdi
movq %r13, %rsi
callq 0x5260
movq %r15, %rdi
movq 0x20(%rbp), %rsi
callq 0xabcb
movl %eax, %ebx
movq %r15, %rdi
callq 0x50d0
testb %bl, %bl
je 0xa41b
leaq -0x270(%rbp), %rdi
movq %r13, %rsi
callq 0x5080
movq %r14, %rdi
callq 0x5160
movq %rax, %r14
jmp 0xa3de
movq -0x30(%rbp), %r12
movq 0x18(%r12), %r14
addq $0x8, %r12
leaq -0x70(%rbp), %r15
cmpq %r12, %r14
je 0xa483
leaq 0x28(%r14), %r13
movq %r15, %rdi
movq %r13, %rsi
callq 0x5260
movq %r15, %rdi
movq 0x20(%rbp), %rsi
callq 0xabcb
movl %eax, %ebx
movq %r15, %rdi
callq 0x50d0
testb %bl, %bl
je 0xa476
leaq -0x270(%rbp), %rdi
movq %r13, %rsi
callq 0x5130
movq %r14, %rdi
callq 0x5160
movq %rax, %r14
jmp 0xa439
movq 0x10(%rbp), %r12
movq 0x18(%r12), %r14
addq $0x8, %r12
leaq -0x70(%rbp), %r15
cmpq %r12, %r14
je 0xa4de
leaq 0x28(%r14), %r13
movq %r15, %rdi
movq %r13, %rsi
callq 0x5260
movq %r15, %rdi
movq 0x20(%rbp), %rsi
callq 0xabcb
movl %eax, %ebx
movq %r15, %rdi
callq 0x50d0
testb %bl, %bl
je 0xa4d1
leaq -0x270(%rbp), %rdi
movq %r13, %rsi
callq 0x5280
movq %r14, %rdi
callq 0x5160
movq %rax, %r14
jmp 0xa494
movq 0x18(%rbp), %r12
movq 0x18(%r12), %r14
addq $0x8, %r12
leaq -0x70(%rbp), %r15
cmpq %r12, %r14
je 0xa539
leaq 0x28(%r14), %r13
movq %r15, %rdi
movq %r13, %rsi
callq 0x5260
movq %r15, %rdi
movq 0x20(%rbp), %rsi
callq 0xabcb
movl %eax, %ebx
movq %r15, %rdi
callq 0x50d0
testb %bl, %bl
je 0xa52c
leaq -0x270(%rbp), %rdi
movq %r13, %rsi
callq 0x5220
movq %r14, %rdi
callq 0x5160
movq %rax, %r14
jmp 0xa4ef
leaq -0x270(%rbp), %rdi
callq 0x52a0
leaq -0x270(%rbp), %rdi
callq 0x52d0
addq $0x248, %rsp            # imm = 0x248
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0xa583
jmp 0xa583
jmp 0xa583
jmp 0xa583
jmp 0xa583
jmp 0xa583
jmp 0xa583
jmp 0xa583
jmp 0xa583
jmp 0xa583
jmp 0xa583
jmp 0xa583
jmp 0xa583
jmp 0xa583
jmp 0xa583
jmp 0xa583
movq %rax, %rbx
leaq -0x270(%rbp), %rdi
callq 0x52d0
movq %rbx, %rdi
callq 0x5320