// File: /workspace/github_cpp_makefile_star2_O1/nataly-enne[P]pet-fera/pet_fera_auxiliar.cpp
// Function: exportacao_classe(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_classe(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 classe, string saida){
	ofstream anfibios;
	ofstream mamiferos;
	ofstream repteis;
	ofstream aves;

	transform(classe.begin(), classe.end(), classe.begin(), ::tolower);

	if(classe == "anfibio" || classe == "amphibia"){
		anfibios.open(saida);
		for(auto it = anfibios_nat.begin(); it != anfibios_nat.end(); it++){
			anfibios << (*it).second;	
		}
		for(auto it = anfibios_ex.begin(); it != anfibios_ex.end(); it++){
			anfibios << (*it).second;
		}
		anfibios.close();
	}
	else if(classe == "mamifero" || classe == "mamallia"){
		mamiferos.open(saida);
		for(auto it = mamiferos_nat.begin(); it != mamiferos_nat.end(); it++){
			mamiferos << (*it).second;
		}
		for(auto it = mamiferos_ex.begin(); it != mamiferos_ex.end(); it++){
			mamiferos << (*it).second;	
		}
		mamiferos.close();
	}
	else if(classe == "reptil" || classe == "reptilia"){
		repteis.open(saida);
		for(auto it = repteis_nat.begin(); it != repteis_nat.end(); it++){
			repteis << (*it).second;
		}
		for(auto it = repteis_ex.begin(); it != repteis_ex.end(); it++){
			repteis << (*it).second;	
		}
		repteis.close();
	}
	else if(classe == "ave" || classe == "aves"){
		aves.open(saida);
		for(auto it = aves_nat.begin(); it != aves_nat.end(); it++){
			aves << (*it).second;
		}
		for(auto it = aves_ex.begin(); it != aves_ex.end(); it++){
			aves << (*it).second;
		}
		aves.close();
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x828, %rsp            # imm = 0x828
movq %r9, %rbx
movq %r8, -0x38(%rbp)
movq %rcx, -0x40(%rbp)
movq %rdx, %r14
movq %rsi, %r12
movq %rdi, %r15
leaq -0x848(%rbp), %rdi
callq 0x4360
leaq -0x648(%rbp), %rdi
callq 0x4360
leaq -0x448(%rbp), %rdi
callq 0x4360
movq %r14, -0x48(%rbp)
movq %rbx, -0x30(%rbp)
leaq -0x248(%rbp), %rdi
callq 0x4360
movq 0x20(%rbp), %rax
movq 0x8(%rax), %r13
testq %r13, %r13
je 0xb97d
movq (%rax), %r14
xorl %ebx, %ebx
movsbl (%r14,%rbx), %edi
callq 0x4300
movb %al, (%r14,%rbx)
incq %rbx
cmpq %rbx, %r13
jne 0xb967
movq 0x28(%rbp), %rbx
leaq 0x26b9(%rip), %rsi      # 0xe041
movq 0x20(%rbp), %r14
movq %r14, %rdi
callq 0x4080
testl %eax, %eax
je 0xbac1
leaq 0x26a6(%rip), %rsi      # 0xe049
movq %r14, %rdi
callq 0x4080
testl %eax, %eax
je 0xbac1
leaq 0x2698(%rip), %rsi      # 0xe052
movq %r14, %rdi
callq 0x4080
testl %eax, %eax
je 0xbb42
leaq 0x268a(%rip), %rsi      # 0xe05b
movq %r14, %rdi
callq 0x4080
testl %eax, %eax
je 0xbb42
leaq 0x267c(%rip), %rsi      # 0xe064
movq %r14, %rdi
callq 0x4080
testl %eax, %eax
je 0xbbc7
leaq 0x266c(%rip), %rsi      # 0xe06b
movq %r14, %rdi
callq 0x4080
testl %eax, %eax
je 0xbbc7
leaq 0x265e(%rip), %rsi      # 0xe074
movq %r14, %rdi
callq 0x4080
testl %eax, %eax
je 0xba39
leaq 0x264f(%rip), %rsi      # 0xe078
movq %r14, %rdi
callq 0x4080
testl %eax, %eax
jne 0xbc4e
leaq -0x248(%rbp), %r13
movq %r13, %rdi
movq %rbx, %rsi
movl $0x10, %edx
callq 0x40f0
movq 0x10(%rbp), %r15
movq 0x18(%r15), %rbx
addq $0x8, %r15
cmpq %r15, %rbx
je 0xba84
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 0xba68
movq 0x18(%rbp), %r14
movq 0x18(%r14), %rbx
addq $0x8, %r14
cmpq %r14, %rbx
je 0xbc46
leaq -0x248(%rbp), %r13
leaq 0x28(%rbx), %rsi
movq %r13, %rdi
callq 0x4270
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r14, %rax
jne 0xbaa0
jmp 0xbc46
leaq -0x848(%rbp), %r13
movq %r13, %rdi
movq %rbx, %rsi
movl $0x10, %edx
callq 0x40f0
movq 0x18(%r15), %rbx
addq $0x8, %r15
cmpq %r15, %rbx
je 0xbb08
leaq -0x848(%rbp), %r14
leaq 0x28(%rbx), %rsi
movq %r14, %rdi
callq 0x41f0
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r15, %rax
jne 0xbaec
movq 0x18(%r12), %rbx
addq $0x8, %r12
cmpq %r12, %rbx
je 0xbc46
leaq -0x848(%rbp), %r13
leaq 0x28(%rbx), %rsi
movq %r13, %rdi
callq 0x4370
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r12, %rax
jne 0xbb21
jmp 0xbc46
leaq -0x648(%rbp), %r13
movq %r13, %rdi
movq %rbx, %rsi
movl $0x10, %edx
callq 0x40f0
movq -0x48(%rbp), %rbx
movq 0x18(%rbx), %r15
addq $0x8, %rbx
cmpq %rbx, %r15
je 0xbb8d
leaq -0x648(%rbp), %r12
leaq 0x28(%r15), %rsi
movq %r12, %rdi
callq 0x42e0
movq %r15, %rdi
callq 0x4180
movq %rax, %r15
cmpq %rbx, %rax
jne 0xbb71
movq -0x40(%rbp), %r14
movq 0x18(%r14), %rbx
addq $0x8, %r14
cmpq %r14, %rbx
je 0xbc46
leaq -0x648(%rbp), %r13
leaq 0x28(%rbx), %rsi
movq %r13, %rdi
callq 0x4120
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r14, %rax
jne 0xbba9
jmp 0xbc46
leaq -0x448(%rbp), %r13
movq %r13, %rdi
movq %rbx, %rsi
movl $0x10, %edx
callq 0x40f0
movq -0x38(%rbp), %r15
movq 0x18(%r15), %rbx
addq $0x8, %r15
cmpq %r15, %rbx
je 0xbc12
leaq -0x448(%rbp), %r14
leaq 0x28(%rbx), %rsi
movq %r14, %rdi
callq 0x40a0
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r15, %rax
jne 0xbbf6
movq -0x30(%rbp), %r14
movq 0x18(%r14), %rbx
addq $0x8, %r14
cmpq %r14, %rbx
je 0xbc46
leaq -0x448(%rbp), %r13
leaq 0x28(%rbx), %rsi
movq %r13, %rdi
callq 0x4140
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r14, %rax
jne 0xbc2a
movq %r13, %rdi
callq 0x42f0
movq 0x634b(%rip), %rax      # 0x11fa0
movq (%rax), %rbx
movq 0x18(%rax), %r14
leaq -0x240(%rbp), %rdi
movq %rbx, -0x8(%rdi)
movq -0x18(%rbx), %rax
movq %r14, -0x248(%rbp,%rax)
callq 0x41e0
movl $0xf8, %r15d
leaq -0x248(%rbp), %rdi
addq %r15, %rdi
callq 0x40b0
leaq -0x440(%rbp), %rdi
movq %rbx, -0x8(%rdi)
movq -0x18(%rbx), %rax
movq %r14, -0x448(%rbp,%rax)
callq 0x41e0
leaq -0x448(%rbp), %rdi
addq %r15, %rdi
callq 0x40b0
leaq -0x640(%rbp), %rdi
movq %rbx, -0x8(%rdi)
movq -0x18(%rbx), %rax
movq %r14, -0x648(%rbp,%rax)
callq 0x41e0
leaq -0x648(%rbp), %rdi
addq %r15, %rdi
callq 0x40b0
leaq -0x840(%rbp), %rdi
movq %rbx, -0x8(%rdi)
movq -0x18(%rbx), %rax
movq %r14, -0x848(%rbp,%rax)
callq 0x41e0
leaq -0x848(%rbp), %rdi
addq %r15, %rdi
callq 0x40b0
addq $0x828, %rsp            # imm = 0x828
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0xbd3f
jmp 0xbd3f
movq %rax, %rbx
jmp 0xbd4e
movq %rax, %rbx
jmp 0xbd5a
movq %rax, %rbx
jmp 0xbd66
jmp 0xbd3f
jmp 0xbd3f
jmp 0xbd3f
jmp 0xbd3f
jmp 0xbd3f
jmp 0xbd3f
movq %rax, %rbx
leaq -0x248(%rbp), %rdi
callq 0x4320
leaq -0x448(%rbp), %rdi
callq 0x4320
leaq -0x648(%rbp), %rdi
callq 0x4320
leaq -0x848(%rbp), %rdi
callq 0x4320
movq %rbx, %rdi
callq 0x4380