// File: /workspace/github_cpp_makefile_star2_O2/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, %r13
movq %rdi, %r12
leaq -0x848(%rbp), %rdi
callq 0x5300
leaq -0x648(%rbp), %rdi
callq 0x5300
leaq -0x448(%rbp), %rdi
callq 0x5300
movq %r14, -0x48(%rbp)
movq %rbx, -0x30(%rbp)
leaq -0x248(%rbp), %rdi
callq 0x5300
movq 0x20(%rbp), %rax
movq (%rax), %rbx
movq 0x8(%rax), %r15
xorl %r14d, %r14d
cmpq %r14, %r15
je 0xa620
movsbl (%rbx,%r14), %edi
callq 0x52b0
movb %al, (%rbx,%r14)
incq %r14
jmp 0xa608
leaq 0x2a22(%rip), %rsi      # 0xd049
movq 0x20(%rbp), %rbx
movq %rbx, %rdi
callq 0xabbb
testb %al, %al
jne 0xa64a
leaq 0x2a13(%rip), %rsi      # 0xd051
movq %rbx, %rdi
callq 0xabbb
testb %al, %al
je 0xa6b5
leaq -0x848(%rbp), %rdi
pushq $0x10
popq %rdx
movq 0x28(%rbp), %rsi
callq 0x50e0
movq 0x18(%r12), %r14
addq $0x8, %r12
leaq -0x848(%rbp), %rbx
cmpq %r12, %r14
je 0xa68b
leaq 0x28(%r14), %rsi
movq %rbx, %rdi
callq 0x51b0
movq %r14, %rdi
callq 0x5160
movq %rax, %r14
jmp 0xa66d
movq 0x18(%r13), %r14
addq $0x8, %r13
cmpq %r13, %r14
je 0xa87c
leaq 0x28(%r14), %rsi
movq %rbx, %rdi
callq 0x5310
movq %r14, %rdi
callq 0x5160
movq %rax, %r14
jmp 0xa693
leaq 0x299e(%rip), %rsi      # 0xd05a
movq %rbx, %rdi
callq 0xabbb
testb %al, %al
jne 0xa6db
leaq 0x2994(%rip), %rsi      # 0xd063
movq %rbx, %rdi
callq 0xabbb
testb %al, %al
je 0xa74e
leaq -0x648(%rbp), %rdi
pushq $0x10
popq %rdx
movq 0x28(%rbp), %rsi
callq 0x50e0
movq -0x48(%rbp), %r14
movq 0x18(%r14), %r12
addq $0x8, %r14
leaq -0x648(%rbp), %rbx
cmpq %r14, %r12
je 0xa720
leaq 0x28(%r12), %rsi
movq %rbx, %rdi
callq 0x5290
movq %r12, %rdi
callq 0x5160
movq %rax, %r12
jmp 0xa701
movq -0x40(%rbp), %r15
movq 0x18(%r15), %r14
addq $0x8, %r15
cmpq %r15, %r14
je 0xa87c
leaq 0x28(%r14), %rsi
movq %rbx, %rdi
callq 0x5110
movq %r14, %rdi
callq 0x5160
movq %rax, %r14
jmp 0xa72c
leaq 0x2917(%rip), %rsi      # 0xd06c
movq %rbx, %rdi
callq 0xabbb
testb %al, %al
jne 0xa774
leaq 0x290b(%rip), %rsi      # 0xd073
movq %rbx, %rdi
callq 0xabbb
testb %al, %al
je 0xa7e7
leaq -0x448(%rbp), %rdi
pushq $0x10
popq %rdx
movq 0x28(%rbp), %rsi
callq 0x50e0
movq -0x38(%rbp), %r12
movq 0x18(%r12), %r14
addq $0x8, %r12
leaq -0x448(%rbp), %rbx
movq -0x30(%rbp), %r15
cmpq %r12, %r14
je 0xa7bd
leaq 0x28(%r14), %rsi
movq %rbx, %rdi
callq 0x5080
movq %r14, %rdi
callq 0x5160
movq %rax, %r14
jmp 0xa79f
movq 0x18(%r15), %r14
addq $0x8, %r15
cmpq %r15, %r14
je 0xa87c
leaq 0x28(%r14), %rsi
movq %rbx, %rdi
callq 0x5130
movq %r14, %rdi
callq 0x5160
movq %rax, %r14
jmp 0xa7c5
leaq 0x288e(%rip), %rsi      # 0xd07c
movq %rbx, %rdi
callq 0xabbb
testb %al, %al
jne 0xa80d
leaq 0x287f(%rip), %rsi      # 0xd080
movq %rbx, %rdi
callq 0xabbb
testb %al, %al
je 0xa884
leaq -0x248(%rbp), %rdi
pushq $0x10
popq %rdx
movq 0x28(%rbp), %rsi
callq 0x50e0
movq 0x10(%rbp), %r12
movq 0x18(%r12), %r14
addq $0x8, %r12
leaq -0x248(%rbp), %rbx
movq 0x18(%rbp), %r15
cmpq %r12, %r14
je 0xa856
leaq 0x28(%r14), %rsi
movq %rbx, %rdi
callq 0x5280
movq %r14, %rdi
callq 0x5160
movq %rax, %r14
jmp 0xa838
movq 0x18(%r15), %r14
addq $0x8, %r15
cmpq %r15, %r14
je 0xa87c
leaq 0x28(%r14), %rsi
movq %rbx, %rdi
callq 0x5220
movq %r14, %rdi
callq 0x5160
movq %rax, %r14
jmp 0xa85e
movq %rbx, %rdi
callq 0x52a0
leaq -0x248(%rbp), %rdi
callq 0x52d0
leaq -0x448(%rbp), %rdi
callq 0x52d0
leaq -0x648(%rbp), %rdi
callq 0x52d0
leaq -0x848(%rbp), %rdi
callq 0x52d0
addq $0x828, %rsp            # imm = 0x828
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0xa8e5
jmp 0xa8e5
movq %rax, %rbx
jmp 0xa8f4
movq %rax, %rbx
jmp 0xa900
movq %rax, %rbx
jmp 0xa90c
jmp 0xa8e5
jmp 0xa8e5
jmp 0xa8e5
jmp 0xa8e5
jmp 0xa8e5
jmp 0xa8e5
movq %rax, %rbx
leaq -0x248(%rbp), %rdi
callq 0x52d0
leaq -0x448(%rbp), %rdi
callq 0x52d0
leaq -0x648(%rbp), %rdi
callq 0x52d0
leaq -0x848(%rbp), %rdi
callq 0x52d0
movq %rbx, %rdi
callq 0x5320