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

	ofstream animais;
	animais.open(saida);

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x248, %rsp            # imm = 0x248
movq %r9, -0x50(%rbp)
movq %r8, -0x58(%rbp)
movq %rcx, -0x60(%rbp)
movq %rdx, -0x68(%rbp)
movq %rsi, -0x70(%rbp)
movq %rdi, %rbx
movq 0x28(%rbp), %r14
movq 0x20(%rbp), %rax
movq 0x8(%rax), %r15
testq %r15, %r15
je 0xaf8d
movq (%rax), %r12
xorl %r13d, %r13d
movsbl (%r12,%r13), %edi
callq 0x43a0
movb %al, (%r12,%r13)
incq %r13
cmpq %r13, %r15
jne 0xaf77
leaq -0x270(%rbp), %r15
movq %r15, %rdi
callq 0x4360
movq %r15, %rdi
movq %r14, %rsi
movl $0x10, %edx
callq 0x40f0
movq 0x18(%rbx), %r14
addq $0x8, %rbx
cmpq %rbx, %r14
je 0xb034
leaq 0x28(%r14), %r12
leaq -0x48(%rbp), %rdi
movq %r12, %rsi
callq 0x4150
movq -0x40(%rbp), %rdx
movq 0x20(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0xaff3
movq -0x48(%rbp), %r15
testq %rdx, %rdx
je 0xaffc
movq (%rax), %rsi
movq %r15, %rdi
callq 0x4260
testl %eax, %eax
sete %r13b
jmp 0xafff
movq -0x48(%rbp), %r15
xorl %r13d, %r13d
jmp 0xafff
movb $0x1, %r13b
leaq -0x38(%rbp), %rax
cmpq %rax, %r15
je 0xb010
movq %r15, %rdi
callq 0x4220
testb %r13b, %r13b
je 0xb024
leaq -0x270(%rbp), %rdi
movq %r12, %rsi
callq 0x41f0
movq %r14, %rdi
callq 0x4180
movq %rax, %r14
cmpq %rbx, %rax
jne 0xafb9
movq -0x70(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0xb0c3
movq %rax, %r14
leaq 0x28(%rbx), %r12
leaq -0x48(%rbp), %rdi
movq %r12, %rsi
callq 0x4150
movq -0x40(%rbp), %rdx
movq 0x20(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0xb082
movq -0x48(%rbp), %r15
testq %rdx, %rdx
je 0xb08b
movq (%rax), %rsi
movq %r15, %rdi
callq 0x4260
testl %eax, %eax
sete %r13b
jmp 0xb08e
movq -0x48(%rbp), %r15
xorl %r13d, %r13d
jmp 0xb08e
movb $0x1, %r13b
leaq -0x38(%rbp), %rax
cmpq %rax, %r15
je 0xb09f
movq %r15, %rdi
callq 0x4220
testb %r13b, %r13b
je 0xb0b3
leaq -0x270(%rbp), %rdi
movq %r12, %rsi
callq 0x4370
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r14, %rax
jne 0xb048
movq -0x68(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0xb152
movq %rax, %r14
leaq 0x28(%rbx), %r12
leaq -0x48(%rbp), %rdi
movq %r12, %rsi
callq 0x4150
movq -0x40(%rbp), %rdx
movq 0x20(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0xb111
movq -0x48(%rbp), %r13
testq %rdx, %rdx
je 0xb11a
movq (%rax), %rsi
movq %r13, %rdi
callq 0x4260
testl %eax, %eax
sete %r15b
jmp 0xb11d
movq -0x48(%rbp), %r13
xorl %r15d, %r15d
jmp 0xb11d
movb $0x1, %r15b
leaq -0x38(%rbp), %rax
cmpq %rax, %r13
je 0xb12e
movq %r13, %rdi
callq 0x4220
testb %r15b, %r15b
je 0xb142
leaq -0x270(%rbp), %rdi
movq %r12, %rsi
callq 0x42e0
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r14, %rax
jne 0xb0d7
movq -0x60(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0xb1e1
movq %rax, %r14
leaq 0x28(%rbx), %r12
leaq -0x48(%rbp), %rdi
movq %r12, %rsi
callq 0x4150
movq -0x40(%rbp), %rdx
movq 0x20(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0xb1a0
movq -0x48(%rbp), %r13
testq %rdx, %rdx
je 0xb1a9
movq (%rax), %rsi
movq %r13, %rdi
callq 0x4260
testl %eax, %eax
sete %r15b
jmp 0xb1ac
movq -0x48(%rbp), %r13
xorl %r15d, %r15d
jmp 0xb1ac
movb $0x1, %r15b
leaq -0x38(%rbp), %rax
cmpq %rax, %r13
je 0xb1bd
movq %r13, %rdi
callq 0x4220
testb %r15b, %r15b
je 0xb1d1
leaq -0x270(%rbp), %rdi
movq %r12, %rsi
callq 0x4120
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r14, %rax
jne 0xb166
movq -0x58(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0xb270
movq %rax, %r14
leaq 0x28(%rbx), %r12
leaq -0x48(%rbp), %rdi
movq %r12, %rsi
callq 0x4150
movq -0x40(%rbp), %rdx
movq 0x20(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0xb22f
movq -0x48(%rbp), %r13
testq %rdx, %rdx
je 0xb238
movq (%rax), %rsi
movq %r13, %rdi
callq 0x4260
testl %eax, %eax
sete %r15b
jmp 0xb23b
movq -0x48(%rbp), %r13
xorl %r15d, %r15d
jmp 0xb23b
movb $0x1, %r15b
leaq -0x38(%rbp), %rax
cmpq %rax, %r13
je 0xb24c
movq %r13, %rdi
callq 0x4220
testb %r15b, %r15b
je 0xb260
leaq -0x270(%rbp), %rdi
movq %r12, %rsi
callq 0x40a0
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r14, %rax
jne 0xb1f5
movq -0x50(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0xb2ff
movq %rax, %r14
leaq 0x28(%rbx), %r12
leaq -0x48(%rbp), %rdi
movq %r12, %rsi
callq 0x4150
movq -0x40(%rbp), %rdx
movq 0x20(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0xb2be
movq -0x48(%rbp), %r13
testq %rdx, %rdx
je 0xb2c7
movq (%rax), %rsi
movq %r13, %rdi
callq 0x4260
testl %eax, %eax
sete %r15b
jmp 0xb2ca
movq -0x48(%rbp), %r13
xorl %r15d, %r15d
jmp 0xb2ca
movb $0x1, %r15b
leaq -0x38(%rbp), %rax
cmpq %rax, %r13
je 0xb2db
movq %r13, %rdi
callq 0x4220
testb %r15b, %r15b
je 0xb2ef
leaq -0x270(%rbp), %rdi
movq %r12, %rsi
callq 0x4140
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r14, %rax
jne 0xb284
movq 0x10(%rbp), %r15
movq 0x18(%r15), %rbx
addq $0x8, %r15
cmpq %r15, %rbx
je 0xb38b
leaq 0x28(%rbx), %r12
leaq -0x48(%rbp), %rdi
movq %r12, %rsi
callq 0x4150
movq -0x40(%rbp), %rdx
movq 0x20(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0xb34a
movq -0x48(%rbp), %r13
testq %rdx, %rdx
je 0xb353
movq (%rax), %rsi
movq %r13, %rdi
callq 0x4260
testl %eax, %eax
sete %r14b
jmp 0xb356
movq -0x48(%rbp), %r13
xorl %r14d, %r14d
jmp 0xb356
movb $0x1, %r14b
leaq -0x38(%rbp), %rax
cmpq %rax, %r13
je 0xb367
movq %r13, %rdi
callq 0x4220
testb %r14b, %r14b
je 0xb37b
leaq -0x270(%rbp), %rdi
movq %r12, %rsi
callq 0x42d0
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r15, %rax
jne 0xb310
movq 0x18(%rbp), %r15
movq 0x18(%r15), %rbx
addq $0x8, %r15
cmpq %r15, %rbx
je 0xb417
leaq 0x28(%rbx), %r12
leaq -0x48(%rbp), %rdi
movq %r12, %rsi
callq 0x4150
movq -0x40(%rbp), %rdx
movq 0x20(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0xb3d6
movq -0x48(%rbp), %r13
testq %rdx, %rdx
je 0xb3df
movq (%rax), %rsi
movq %r13, %rdi
callq 0x4260
testl %eax, %eax
sete %r14b
jmp 0xb3e2
movq -0x48(%rbp), %r13
xorl %r14d, %r14d
jmp 0xb3e2
movb $0x1, %r14b
leaq -0x38(%rbp), %rax
cmpq %rax, %r13
je 0xb3f3
movq %r13, %rdi
callq 0x4220
testb %r14b, %r14b
je 0xb407
leaq -0x270(%rbp), %rdi
movq %r12, %rsi
callq 0x4270
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r15, %rax
jne 0xb39c
leaq -0x270(%rbp), %rdi
callq 0x42f0
movq 0x6b76(%rip), %rax      # 0x11fa0
movq (%rax), %rcx
movq 0x18(%rax), %rax
leaq -0x268(%rbp), %rdi
movq %rcx, -0x8(%rdi)
movq -0x18(%rcx), %rcx
movq %rax, -0x270(%rbp,%rcx)
callq 0x41e0
leaq -0x178(%rbp), %rdi
callq 0x40b0
addq $0x248, %rsp            # imm = 0x248
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0xb48b
jmp 0xb48b
jmp 0xb48b
jmp 0xb48b
jmp 0xb48b
jmp 0xb48b
jmp 0xb48b
jmp 0xb48b
jmp 0xb48b
jmp 0xb48b
jmp 0xb48b
jmp 0xb48b
jmp 0xb48b
jmp 0xb48b
jmp 0xb48b
jmp 0xb48b
movq %rax, %rbx
leaq -0x270(%rbp), %rdi
callq 0x4320
movq %rbx, %rdi
callq 0x4380