// File: /workspace/github_cpp_makefile_star2_O2/nataly-enne[P]pet-fera/pet_fera_auxiliar.cpp
// Function: exportacao_vet(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_vet(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 veterinario, string saida){
	transform(veterinario.begin(), veterinario.end(), veterinario.begin(), ::toupper);

	ofstream animais;
	animais.open(saida);

	for(auto it = anfibios_nat.begin(); it != anfibios_nat.end(); it++){
		if(it->second.getVeterinario() == veterinario){
			animais << (*it).second;
		}	
	}
	for(auto it = anfibios_ex.begin(); it != anfibios_ex.end(); it++){
		if(it->second.getVeterinario() == veterinario){
			animais << (*it).second;
		}		
	}
	for(auto it = mamiferos_nat.begin(); it != mamiferos_nat.end(); it++){
		if(it->second.getVeterinario() == veterinario){
			animais << (*it).second;
		}
	}
	for(auto it = mamiferos_ex.begin(); it != mamiferos_ex.end(); it++){
		if(it->second.getVeterinario() == veterinario){
			animais << (*it).second;
		}	
	}
	for(auto it = repteis_nat.begin(); it != repteis_nat.end(); it++){
		if(it->second.getVeterinario() == veterinario){
			animais << (*it).second;
		}
	}
	for(auto it = repteis_ex.begin(); it != repteis_ex.end(); it++){
		if(it->second.getVeterinario() == veterinario){
			animais << (*it).second;
		}	
	}
	for(auto it = aves_nat.begin(); it != aves_nat.end(); it++){
		if(it->second.getVeterinario() == veterinario){
			animais << (*it).second;
		}	
	}
	for(auto it = aves_ex.begin(); it != aves_ex.end(); it++){
		if(it->second.getVeterinario() == veterinario){
			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 0x9ea3
movsbl (%rbx,%r13), %edi
callq 0x5330
movb %al, (%rbx,%r13)
incq %r13
jmp 0x9e8b
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 0x9f17
leaq 0x28(%r12), %r14
movq %r13, %rdi
movq %r14, %rsi
callq 0x5140
movq %r13, %rdi
movq 0x20(%rbp), %rsi
callq 0xabcb
movl %eax, %ebx
movq %r13, %rdi
callq 0x50d0
testb %bl, %bl
je 0x9f0a
leaq -0x270(%rbp), %rdi
movq %r14, %rsi
callq 0x51b0
movq %r12, %rdi
callq 0x5160
movq %rax, %r12
jmp 0x9ecc
movq -0x50(%rbp), %r13
movq 0x18(%r13), %r15
addq $0x8, %r13
leaq -0x70(%rbp), %r12
cmpq %r13, %r15
je 0x9f71
leaq 0x28(%r15), %r14
movq %r12, %rdi
movq %r14, %rsi
callq 0x5140
movq %r12, %rdi
movq 0x20(%rbp), %rsi
callq 0xabcb
movl %eax, %ebx
movq %r12, %rdi
callq 0x50d0
testb %bl, %bl
je 0x9f64
leaq -0x270(%rbp), %rdi
movq %r14, %rsi
callq 0x5310
movq %r15, %rdi
callq 0x5160
movq %rax, %r15
jmp 0x9f27
movq -0x48(%rbp), %r12
movq 0x18(%r12), %r14
addq $0x8, %r12
leaq -0x70(%rbp), %r15
cmpq %r12, %r14
je 0x9fcc
leaq 0x28(%r14), %r13
movq %r15, %rdi
movq %r13, %rsi
callq 0x5140
movq %r15, %rdi
movq 0x20(%rbp), %rsi
callq 0xabcb
movl %eax, %ebx
movq %r15, %rdi
callq 0x50d0
testb %bl, %bl
je 0x9fbf
leaq -0x270(%rbp), %rdi
movq %r13, %rsi
callq 0x5290
movq %r14, %rdi
callq 0x5160
movq %rax, %r14
jmp 0x9f82
movq -0x40(%rbp), %r12
movq 0x18(%r12), %r14
addq $0x8, %r12
leaq -0x70(%rbp), %r15
cmpq %r12, %r14
je 0xa027
leaq 0x28(%r14), %r13
movq %r15, %rdi
movq %r13, %rsi
callq 0x5140
movq %r15, %rdi
movq 0x20(%rbp), %rsi
callq 0xabcb
movl %eax, %ebx
movq %r15, %rdi
callq 0x50d0
testb %bl, %bl
je 0xa01a
leaq -0x270(%rbp), %rdi
movq %r13, %rsi
callq 0x5110
movq %r14, %rdi
callq 0x5160
movq %rax, %r14
jmp 0x9fdd
movq -0x38(%rbp), %r12
movq 0x18(%r12), %r14
addq $0x8, %r12
leaq -0x70(%rbp), %r15
cmpq %r12, %r14
je 0xa082
leaq 0x28(%r14), %r13
movq %r15, %rdi
movq %r13, %rsi
callq 0x5140
movq %r15, %rdi
movq 0x20(%rbp), %rsi
callq 0xabcb
movl %eax, %ebx
movq %r15, %rdi
callq 0x50d0
testb %bl, %bl
je 0xa075
leaq -0x270(%rbp), %rdi
movq %r13, %rsi
callq 0x5080
movq %r14, %rdi
callq 0x5160
movq %rax, %r14
jmp 0xa038
movq -0x30(%rbp), %r12
movq 0x18(%r12), %r14
addq $0x8, %r12
leaq -0x70(%rbp), %r15
cmpq %r12, %r14
je 0xa0dd
leaq 0x28(%r14), %r13
movq %r15, %rdi
movq %r13, %rsi
callq 0x5140
movq %r15, %rdi
movq 0x20(%rbp), %rsi
callq 0xabcb
movl %eax, %ebx
movq %r15, %rdi
callq 0x50d0
testb %bl, %bl
je 0xa0d0
leaq -0x270(%rbp), %rdi
movq %r13, %rsi
callq 0x5130
movq %r14, %rdi
callq 0x5160
movq %rax, %r14
jmp 0xa093
movq 0x10(%rbp), %r12
movq 0x18(%r12), %r14
addq $0x8, %r12
leaq -0x70(%rbp), %r15
cmpq %r12, %r14
je 0xa138
leaq 0x28(%r14), %r13
movq %r15, %rdi
movq %r13, %rsi
callq 0x5140
movq %r15, %rdi
movq 0x20(%rbp), %rsi
callq 0xabcb
movl %eax, %ebx
movq %r15, %rdi
callq 0x50d0
testb %bl, %bl
je 0xa12b
leaq -0x270(%rbp), %rdi
movq %r13, %rsi
callq 0x5280
movq %r14, %rdi
callq 0x5160
movq %rax, %r14
jmp 0xa0ee
movq 0x18(%rbp), %r12
movq 0x18(%r12), %r14
addq $0x8, %r12
leaq -0x70(%rbp), %r15
cmpq %r12, %r14
je 0xa193
leaq 0x28(%r14), %r13
movq %r15, %rdi
movq %r13, %rsi
callq 0x5140
movq %r15, %rdi
movq 0x20(%rbp), %rsi
callq 0xabcb
movl %eax, %ebx
movq %r15, %rdi
callq 0x50d0
testb %bl, %bl
je 0xa186
leaq -0x270(%rbp), %rdi
movq %r13, %rsi
callq 0x5220
movq %r14, %rdi
callq 0x5160
movq %rax, %r14
jmp 0xa149
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 0xa1dd
jmp 0xa1dd
jmp 0xa1dd
jmp 0xa1dd
jmp 0xa1dd
jmp 0xa1dd
jmp 0xa1dd
jmp 0xa1dd
jmp 0xa1dd
jmp 0xa1dd
jmp 0xa1dd
jmp 0xa1dd
jmp 0xa1dd
jmp 0xa1dd
jmp 0xa1dd
jmp 0xa1dd
movq %rax, %rbx
leaq -0x270(%rbp), %rdi
callq 0x52d0
movq %rbx, %rdi
callq 0x5320