// File: /workspace/github_cpp_makefile_star2_O3/nataly-enne[P]pet-fera/pet_fera_auxiliar.cpp
// Function: exportacao(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>>)
void exportacao(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 saida){
	transform(saida.begin(), saida.end(), saida.begin(), ::tolower);

	ofstream animais;
	animais.open(saida);

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x228, %rsp            # imm = 0x228
movq %r9, -0x30(%rbp)
movq %r8, -0x48(%rbp)
movq %rcx, -0x40(%rbp)
movq %rdx, -0x38(%rbp)
movq %rsi, %r13
movq %rdi, %rbx
movq 0x20(%rbp), %rax
movq 0x8(%rax), %r14
testq %r14, %r14
je 0xbee7
movq (%rax), %r15
xorl %r12d, %r12d
movsbl (%r15,%r12), %edi
callq 0x4300
movb %al, (%r15,%r12)
incq %r12
cmpq %r12, %r14
jne 0xbed1
leaq -0x248(%rbp), %r14
movq %r14, %rdi
callq 0x4360
movq %r14, %rdi
movq 0x20(%rbp), %rsi
movl $0x10, %edx
callq 0x40f0
movq 0x18(%rbx), %r14
addq $0x8, %rbx
cmpq %rbx, %r14
je 0xbf37
leaq -0x248(%rbp), %r15
leaq 0x28(%r14), %rsi
movq %r15, %rdi
callq 0x41f0
movq %r14, %rdi
callq 0x4180
movq %rax, %r14
cmpq %rbx, %rax
jne 0xbf1b
movq 0x18(%r13), %rbx
addq $0x8, %r13
cmpq %r13, %rbx
je 0xbf67
leaq -0x248(%rbp), %r14
leaq 0x28(%rbx), %rsi
movq %r14, %rdi
callq 0x4370
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r13, %rax
jne 0xbf4b
movq -0x38(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
movq -0x48(%rbp), %r12
movq -0x40(%rbp), %r13
je 0xbfa6
movq %rax, %r15
leaq -0x248(%rbp), %r14
leaq 0x28(%rbx), %rsi
movq %r14, %rdi
callq 0x42e0
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r15, %rax
jne 0xbf8a
movq 0x18(%r13), %rbx
addq $0x8, %r13
cmpq %r13, %rbx
je 0xbfd6
leaq -0x248(%rbp), %r14
leaq 0x28(%rbx), %rsi
movq %r14, %rdi
callq 0x4120
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r13, %rax
jne 0xbfba
movq 0x18(%r12), %rbx
addq $0x8, %r12
cmpq %r12, %rbx
je 0xc007
leaq -0x248(%rbp), %r14
leaq 0x28(%rbx), %rsi
movq %r14, %rdi
callq 0x40a0
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r12, %rax
jne 0xbfeb
movq -0x30(%rbp), %r15
movq 0x18(%r15), %rbx
addq $0x8, %r15
cmpq %r15, %rbx
je 0xc03b
leaq -0x248(%rbp), %r14
leaq 0x28(%rbx), %rsi
movq %r14, %rdi
callq 0x4140
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r15, %rax
jne 0xc01f
movq 0x10(%rbp), %r15
movq 0x18(%r15), %rbx
addq $0x8, %r15
cmpq %r15, %rbx
je 0xc06f
leaq -0x248(%rbp), %r14
leaq 0x28(%rbx), %rsi
movq %r14, %rdi
callq 0x42d0
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r15, %rax
jne 0xc053
movq 0x18(%rbp), %r15
movq 0x18(%r15), %rbx
addq $0x8, %r15
cmpq %r15, %rbx
je 0xc0a3
leaq -0x248(%rbp), %r14
leaq 0x28(%rbx), %rsi
movq %r14, %rdi
callq 0x4270
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r15, %rax
jne 0xc087
leaq -0x248(%rbp), %rdi
callq 0x42f0
movq 0x5eea(%rip), %rax      # 0x11fa0
movq (%rax), %rcx
movq 0x18(%rax), %rax
leaq -0x240(%rbp), %rdi
movq %rcx, -0x8(%rdi)
movq -0x18(%rcx), %rcx
movq %rax, -0x248(%rbp,%rcx)
callq 0x41e0
leaq -0x150(%rbp), %rdi
callq 0x40b0
addq $0x228, %rsp            # imm = 0x228
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0xc107
jmp 0xc107
jmp 0xc107
jmp 0xc107
jmp 0xc107
jmp 0xc107
jmp 0xc107
jmp 0xc107
movq %rax, %rbx
leaq -0x248(%rbp), %rdi
callq 0x4320
movq %rbx, %rdi
callq 0x4380