// File: 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
subq $0x370, %rsp            # imm = 0x370
movq %r9, -0x370(%rbp)
movq %r8, -0x368(%rbp)
movq %rcx, -0x360(%rbp)
movq %rdx, -0x358(%rbp)
movq %rsi, -0x350(%rbp)
movq %rdi, %rax
movq %rax, -0x348(%rbp)
movq 0x20(%rbp), %rdi
movq %rdi, -0x328(%rbp)
movq 0x18(%rbp), %r10
movq %r10, -0x340(%rbp)
movq 0x10(%rbp), %r10
movq %r10, -0x338(%rbp)
movq %rax, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq %r9, -0x30(%rbp)
callq 0xe200
movq -0x328(%rbp), %rdi
movq %rax, -0x38(%rbp)
callq 0xe110
movq -0x328(%rbp), %rdi
movq %rax, -0x40(%rbp)
callq 0xe200
movq %rax, -0x48(%rbp)
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq 0x122db(%rip), %rcx     # 0x29fb8
callq 0x18600
movq %rax, -0x50(%rbp)
leaq -0x250(%rbp), %rdi
movq %rdi, -0x330(%rbp)
callq 0xe350
movq -0x330(%rbp), %rdi
movq -0x328(%rbp), %rsi
movl $0x10, %edx
callq 0xe0e0
jmp 0x17d13
movq -0x348(%rbp), %rdi
callq 0x18680
movq %rax, -0x268(%rbp)
movq -0x348(%rbp), %rdi
callq 0x186e0
movq %rax, -0x270(%rbp)
leaq -0x268(%rbp), %rdi
leaq -0x270(%rbp), %rsi
callq 0x186b0
testb $0x1, %al
jne 0x17d52
jmp 0x17daf
leaq -0x268(%rbp), %rdi
callq 0x18710
movq %rax, %rsi
addq $0x8, %rsi
leaq -0x250(%rbp), %rdi
callq 0xe1e0
jmp 0x17d73
jmp 0x17d75
leaq -0x268(%rbp), %rdi
xorl %esi, %esi
callq 0x18730
movq %rax, -0x278(%rbp)
jmp 0x17d26
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x258(%rbp)
movl %eax, -0x25c(%rbp)
leaq -0x250(%rbp), %rdi
callq 0xe320
jmp 0x18121
movq -0x350(%rbp), %rdi
callq 0x18770
movq %rax, -0x280(%rbp)
movq -0x350(%rbp), %rdi
callq 0x187d0
movq %rax, -0x288(%rbp)
leaq -0x280(%rbp), %rdi
leaq -0x288(%rbp), %rsi
callq 0x187a0
testb $0x1, %al
jne 0x17dee
jmp 0x17e28
leaq -0x280(%rbp), %rdi
callq 0x18800
movq %rax, %rsi
addq $0x8, %rsi
leaq -0x250(%rbp), %rdi
callq 0xe360
jmp 0x17e0f
jmp 0x17e11
leaq -0x280(%rbp), %rdi
xorl %esi, %esi
callq 0x18820
movq %rax, -0x290(%rbp)
jmp 0x17dc2
movq -0x358(%rbp), %rdi
callq 0x18860
movq %rax, -0x298(%rbp)
movq -0x358(%rbp), %rdi
callq 0x188c0
movq %rax, -0x2a0(%rbp)
leaq -0x298(%rbp), %rdi
leaq -0x2a0(%rbp), %rsi
callq 0x18890
testb $0x1, %al
jne 0x17e67
jmp 0x17ea1
leaq -0x298(%rbp), %rdi
callq 0x188f0
movq %rax, %rsi
addq $0x8, %rsi
leaq -0x250(%rbp), %rdi
callq 0xe2f0
jmp 0x17e88
jmp 0x17e8a
leaq -0x298(%rbp), %rdi
xorl %esi, %esi
callq 0x18910
movq %rax, -0x2a8(%rbp)
jmp 0x17e3b
movq -0x360(%rbp), %rdi
callq 0x18950
movq %rax, -0x2b0(%rbp)
movq -0x360(%rbp), %rdi
callq 0x189b0
movq %rax, -0x2b8(%rbp)
leaq -0x2b0(%rbp), %rdi
leaq -0x2b8(%rbp), %rsi
callq 0x18980
testb $0x1, %al
jne 0x17ee0
jmp 0x17f1a
leaq -0x2b0(%rbp), %rdi
callq 0x189e0
movq %rax, %rsi
addq $0x8, %rsi
leaq -0x250(%rbp), %rdi
callq 0xe100
jmp 0x17f01
jmp 0x17f03
leaq -0x2b0(%rbp), %rdi
xorl %esi, %esi
callq 0x18a00
movq %rax, -0x2c0(%rbp)
jmp 0x17eb4
movq -0x368(%rbp), %rdi
callq 0x18a40
movq %rax, -0x2c8(%rbp)
movq -0x368(%rbp), %rdi
callq 0x18aa0
movq %rax, -0x2d0(%rbp)
leaq -0x2c8(%rbp), %rdi
leaq -0x2d0(%rbp), %rsi
callq 0x18a70
testb $0x1, %al
jne 0x17f59
jmp 0x17f93
leaq -0x2c8(%rbp), %rdi
callq 0x18ad0
movq %rax, %rsi
addq $0x8, %rsi
leaq -0x250(%rbp), %rdi
callq 0xe080
jmp 0x17f7a
jmp 0x17f7c
leaq -0x2c8(%rbp), %rdi
xorl %esi, %esi
callq 0x18af0
movq %rax, -0x2d8(%rbp)
jmp 0x17f2d
movq -0x370(%rbp), %rdi
callq 0x18b30
movq %rax, -0x2e0(%rbp)
movq -0x370(%rbp), %rdi
callq 0x18b90
movq %rax, -0x2e8(%rbp)
leaq -0x2e0(%rbp), %rdi
leaq -0x2e8(%rbp), %rsi
callq 0x18b60
testb $0x1, %al
jne 0x17fd2
jmp 0x1800c
leaq -0x2e0(%rbp), %rdi
callq 0x18bc0
movq %rax, %rsi
addq $0x8, %rsi
leaq -0x250(%rbp), %rdi
callq 0xe140
jmp 0x17ff3
jmp 0x17ff5
leaq -0x2e0(%rbp), %rdi
xorl %esi, %esi
callq 0x18be0
movq %rax, -0x2f0(%rbp)
jmp 0x17fa6
movq -0x338(%rbp), %rdi
callq 0x18c20
movq %rax, -0x2f8(%rbp)
movq -0x338(%rbp), %rdi
callq 0x18c80
movq %rax, -0x300(%rbp)
leaq -0x2f8(%rbp), %rdi
leaq -0x300(%rbp), %rsi
callq 0x18c50
testb $0x1, %al
jne 0x1804b
jmp 0x18085
leaq -0x2f8(%rbp), %rdi
callq 0x18cb0
movq %rax, %rsi
addq $0x8, %rsi
leaq -0x250(%rbp), %rdi
callq 0xe2e0
jmp 0x1806c
jmp 0x1806e
leaq -0x2f8(%rbp), %rdi
xorl %esi, %esi
callq 0x18cd0
movq %rax, -0x308(%rbp)
jmp 0x1801f
movq -0x340(%rbp), %rdi
callq 0x18d10
movq %rax, -0x310(%rbp)
movq -0x340(%rbp), %rdi
callq 0x18d70
movq %rax, -0x318(%rbp)
leaq -0x310(%rbp), %rdi
leaq -0x318(%rbp), %rsi
callq 0x18d40
testb $0x1, %al
jne 0x180c4
jmp 0x180fe
leaq -0x310(%rbp), %rdi
callq 0x18da0
movq %rax, %rsi
addq $0x8, %rsi
leaq -0x250(%rbp), %rdi
callq 0xe270
jmp 0x180e5
jmp 0x180e7
leaq -0x310(%rbp), %rdi
xorl %esi, %esi
callq 0x18dc0
movq %rax, -0x320(%rbp)
jmp 0x18098
leaq -0x250(%rbp), %rdi
callq 0xe300
jmp 0x1810c
leaq -0x250(%rbp), %rdi
callq 0xe320
addq $0x370, %rsp            # imm = 0x370
popq %rbp
retq
movq -0x258(%rbp), %rdi
callq 0xe370
nopl (%rax)