// File: /workspace/github_cpp_makefile_star2_O3/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 0xba97
movq (%rax), %r14
xorl %ebx, %ebx
movsbl (%r14,%rbx), %edi
callq 0x4300
movb %al, (%r14,%rbx)
incq %rbx
cmpq %rbx, %r13
jne 0xba81
movq 0x28(%rbp), %rbx
leaq 0x25bf(%rip), %rsi      # 0xe061
movq 0x20(%rbp), %r14
movq %r14, %rdi
callq 0x4080
testl %eax, %eax
je 0xbbdb
leaq 0x25ac(%rip), %rsi      # 0xe069
movq %r14, %rdi
callq 0x4080
testl %eax, %eax
je 0xbbdb
leaq 0x259e(%rip), %rsi      # 0xe072
movq %r14, %rdi
callq 0x4080
testl %eax, %eax
je 0xbc5c
leaq 0x2590(%rip), %rsi      # 0xe07b
movq %r14, %rdi
callq 0x4080
testl %eax, %eax
je 0xbc5c
leaq 0x2582(%rip), %rsi      # 0xe084
movq %r14, %rdi
callq 0x4080
testl %eax, %eax
je 0xbce1
leaq 0x2572(%rip), %rsi      # 0xe08b
movq %r14, %rdi
callq 0x4080
testl %eax, %eax
je 0xbce1
leaq 0x2564(%rip), %rsi      # 0xe094
movq %r14, %rdi
callq 0x4080
testl %eax, %eax
je 0xbb53
leaq 0x2555(%rip), %rsi      # 0xe098
movq %r14, %rdi
callq 0x4080
testl %eax, %eax
jne 0xbd68
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 0xbb9e
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 0xbb82
movq 0x18(%rbp), %r14
movq 0x18(%r14), %rbx
addq $0x8, %r14
cmpq %r14, %rbx
je 0xbd60
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 0xbbba
jmp 0xbd60
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 0xbc22
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 0xbc06
movq 0x18(%r12), %rbx
addq $0x8, %r12
cmpq %r12, %rbx
je 0xbd60
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 0xbc3b
jmp 0xbd60
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 0xbca7
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 0xbc8b
movq -0x40(%rbp), %r14
movq 0x18(%r14), %rbx
addq $0x8, %r14
cmpq %r14, %rbx
je 0xbd60
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 0xbcc3
jmp 0xbd60
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 0xbd2c
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 0xbd10
movq -0x30(%rbp), %r14
movq 0x18(%r14), %rbx
addq $0x8, %r14
cmpq %r14, %rbx
je 0xbd60
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 0xbd44
movq %r13, %rdi
callq 0x42f0
movq 0x6231(%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 0xbe59
jmp 0xbe59
movq %rax, %rbx
jmp 0xbe68
movq %rax, %rbx
jmp 0xbe74
movq %rax, %rbx
jmp 0xbe80
jmp 0xbe59
jmp 0xbe59
jmp 0xbe59
jmp 0xbe59
jmp 0xbe59
jmp 0xbe59
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