// File: /workspace/github_cpp_makefile_star2_O1/nataly-enne[P]pet-fera/pet_fera_auxiliar.cpp
// Function: exportacao_vet_trat(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>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void exportacao_vet_trat(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 tratador, string saida){
	transform(veterinario.begin(), veterinario.end(), veterinario.begin(), ::toupper);
	transform(tratador.begin(), tratador.end(), tratador.begin(), ::toupper);

	ofstream animais;
	animais.open(saida);

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x348, %rsp            # imm = 0x348
movq %r9, -0x50(%rbp)
movq %r8, -0x58(%rbp)
movq %rcx, -0x60(%rbp)
movq %rdx, -0x68(%rbp)
movq %rsi, -0x70(%rbp)
movq %rdi, %rbx
movq 0x20(%rbp), %rax
movq 0x8(%rax), %r14
testq %r14, %r14
je 0xa607
movq (%rax), %r15
xorl %r12d, %r12d
movsbl (%r15,%r12), %edi
callq 0x43a0
movb %al, (%r15,%r12)
incq %r12
cmpq %r12, %r14
jne 0xa5f1
movq 0x30(%rbp), %r14
movq 0x28(%rbp), %rax
movq 0x8(%rax), %r15
testq %r15, %r15
je 0xa634
movq (%rax), %r12
xorl %r13d, %r13d
movsbl (%r12,%r13), %edi
callq 0x43a0
movb %al, (%r12,%r13)
incq %r13
cmpq %r13, %r15
jne 0xa61e
leaq -0x370(%rbp), %r12
movq %r12, %rdi
callq 0x4360
movq %r12, %rdi
movq %r14, %rsi
movl $0x10, %edx
callq 0x40f0
movq 0x18(%rbx), %r14
addq $0x8, %rbx
cmpq %rbx, %r14
je 0xa745
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 0xa69b
testq %rdx, %rdx
je 0xa6a0
movq (%rax), %rsi
movq -0x48(%rbp), %rdi
callq 0x4260
testl %eax, %eax
sete %r13b
jmp 0xa6a3
xorl %r13d, %r13d
jmp 0xa6a3
movb $0x1, %r13b
testb %r13b, %r13b
je 0xa6e4
leaq -0x170(%rbp), %rdi
movq %r12, %rsi
callq 0x42b0
movq -0x168(%rbp), %rdx
movq 0x28(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0xa6e4
testq %rdx, %rdx
je 0xa740
movq (%rax), %rsi
movq -0x170(%rbp), %rdi
callq 0x4260
testl %eax, %eax
sete %r15b
jmp 0xa6e7
xorl %r15d, %r15d
testb %r13b, %r13b
je 0xa704
movq -0x170(%rbp), %rdi
leaq -0x160(%rbp), %rax
cmpq %rax, %rdi
je 0xa704
callq 0x4220
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xa716
callq 0x4220
testb %r15b, %r15b
je 0xa72a
leaq -0x370(%rbp), %rdi
movq %r12, %rsi
callq 0x41f0
movq %r14, %rdi
callq 0x4180
movq %rax, %r14
cmpq %rbx, %rax
jne 0xa664
jmp 0xa745
movb $0x1, %r15b
jmp 0xa6e7
movq -0x70(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0xa83e
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 0xa794
testq %rdx, %rdx
je 0xa799
movq (%rax), %rsi
movq -0x48(%rbp), %rdi
callq 0x4260
testl %eax, %eax
sete %r13b
jmp 0xa79c
xorl %r13d, %r13d
jmp 0xa79c
movb $0x1, %r13b
testb %r13b, %r13b
je 0xa7dd
leaq -0x150(%rbp), %rdi
movq %r12, %rsi
callq 0x42b0
movq -0x148(%rbp), %rdx
movq 0x28(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0xa7dd
testq %rdx, %rdx
je 0xa839
movq (%rax), %rsi
movq -0x150(%rbp), %rdi
callq 0x4260
testl %eax, %eax
sete %r15b
jmp 0xa7e0
xorl %r15d, %r15d
testb %r13b, %r13b
je 0xa7fd
movq -0x150(%rbp), %rdi
leaq -0x140(%rbp), %rax
cmpq %rax, %rdi
je 0xa7fd
callq 0x4220
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xa80f
callq 0x4220
testb %r15b, %r15b
je 0xa823
leaq -0x370(%rbp), %rdi
movq %r12, %rsi
callq 0x4370
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r14, %rax
jne 0xa75d
jmp 0xa83e
movb $0x1, %r15b
jmp 0xa7e0
movq -0x68(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0xa937
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 0xa88d
testq %rdx, %rdx
je 0xa892
movq (%rax), %rsi
movq -0x48(%rbp), %rdi
callq 0x4260
testl %eax, %eax
sete %r13b
jmp 0xa895
xorl %r13d, %r13d
jmp 0xa895
movb $0x1, %r13b
testb %r13b, %r13b
je 0xa8d6
leaq -0x130(%rbp), %rdi
movq %r12, %rsi
callq 0x42b0
movq -0x128(%rbp), %rdx
movq 0x28(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0xa8d6
testq %rdx, %rdx
je 0xa932
movq (%rax), %rsi
movq -0x130(%rbp), %rdi
callq 0x4260
testl %eax, %eax
sete %r15b
jmp 0xa8d9
xorl %r15d, %r15d
testb %r13b, %r13b
je 0xa8f6
movq -0x130(%rbp), %rdi
leaq -0x120(%rbp), %rax
cmpq %rax, %rdi
je 0xa8f6
callq 0x4220
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xa908
callq 0x4220
testb %r15b, %r15b
je 0xa91c
leaq -0x370(%rbp), %rdi
movq %r12, %rsi
callq 0x42e0
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r14, %rax
jne 0xa856
jmp 0xa937
movb $0x1, %r15b
jmp 0xa8d9
movq -0x60(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0xaa30
movq %rax, %r14
leaq 0x28(%rbx), %r13
leaq -0x48(%rbp), %rdi
movq %r13, %rsi
callq 0x4150
movq -0x40(%rbp), %rdx
movq 0x20(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0xa986
testq %rdx, %rdx
je 0xa98b
movq (%rax), %rsi
movq -0x48(%rbp), %rdi
callq 0x4260
testl %eax, %eax
sete %r12b
jmp 0xa98e
xorl %r12d, %r12d
jmp 0xa98e
movb $0x1, %r12b
testb %r12b, %r12b
je 0xa9cf
leaq -0x110(%rbp), %rdi
movq %r13, %rsi
callq 0x42b0
movq -0x108(%rbp), %rdx
movq 0x28(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0xa9cf
testq %rdx, %rdx
je 0xaa2b
movq (%rax), %rsi
movq -0x110(%rbp), %rdi
callq 0x4260
testl %eax, %eax
sete %r15b
jmp 0xa9d2
xorl %r15d, %r15d
testb %r12b, %r12b
je 0xa9ef
movq -0x110(%rbp), %rdi
leaq -0x100(%rbp), %rax
cmpq %rax, %rdi
je 0xa9ef
callq 0x4220
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xaa01
callq 0x4220
testb %r15b, %r15b
je 0xaa15
leaq -0x370(%rbp), %rdi
movq %r13, %rsi
callq 0x4120
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r14, %rax
jne 0xa94f
jmp 0xaa30
movb $0x1, %r15b
jmp 0xa9d2
movq -0x58(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0xab29
movq %rax, %r14
leaq 0x28(%rbx), %r13
leaq -0x48(%rbp), %rdi
movq %r13, %rsi
callq 0x4150
movq -0x40(%rbp), %rdx
movq 0x20(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0xaa7f
testq %rdx, %rdx
je 0xaa84
movq (%rax), %rsi
movq -0x48(%rbp), %rdi
callq 0x4260
testl %eax, %eax
sete %r12b
jmp 0xaa87
xorl %r12d, %r12d
jmp 0xaa87
movb $0x1, %r12b
testb %r12b, %r12b
je 0xaac8
leaq -0xf0(%rbp), %rdi
movq %r13, %rsi
callq 0x42b0
movq -0xe8(%rbp), %rdx
movq 0x28(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0xaac8
testq %rdx, %rdx
je 0xab24
movq (%rax), %rsi
movq -0xf0(%rbp), %rdi
callq 0x4260
testl %eax, %eax
sete %r15b
jmp 0xaacb
xorl %r15d, %r15d
testb %r12b, %r12b
je 0xaae8
movq -0xf0(%rbp), %rdi
leaq -0xe0(%rbp), %rax
cmpq %rax, %rdi
je 0xaae8
callq 0x4220
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xaafa
callq 0x4220
testb %r15b, %r15b
je 0xab0e
leaq -0x370(%rbp), %rdi
movq %r13, %rsi
callq 0x40a0
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r14, %rax
jne 0xaa48
jmp 0xab29
movb $0x1, %r15b
jmp 0xaacb
movq -0x50(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0xac22
movq %rax, %r14
leaq 0x28(%rbx), %r13
leaq -0x48(%rbp), %rdi
movq %r13, %rsi
callq 0x4150
movq -0x40(%rbp), %rdx
movq 0x20(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0xab78
testq %rdx, %rdx
je 0xab7d
movq (%rax), %rsi
movq -0x48(%rbp), %rdi
callq 0x4260
testl %eax, %eax
sete %r12b
jmp 0xab80
xorl %r12d, %r12d
jmp 0xab80
movb $0x1, %r12b
testb %r12b, %r12b
je 0xabc1
leaq -0xd0(%rbp), %rdi
movq %r13, %rsi
callq 0x42b0
movq -0xc8(%rbp), %rdx
movq 0x28(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0xabc1
testq %rdx, %rdx
je 0xac1d
movq (%rax), %rsi
movq -0xd0(%rbp), %rdi
callq 0x4260
testl %eax, %eax
sete %r15b
jmp 0xabc4
xorl %r15d, %r15d
testb %r12b, %r12b
je 0xabe1
movq -0xd0(%rbp), %rdi
leaq -0xc0(%rbp), %rax
cmpq %rax, %rdi
je 0xabe1
callq 0x4220
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xabf3
callq 0x4220
testb %r15b, %r15b
je 0xac07
leaq -0x370(%rbp), %rdi
movq %r13, %rsi
callq 0x4140
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r14, %rax
jne 0xab41
jmp 0xac22
movb $0x1, %r15b
jmp 0xabc4
movq 0x10(%rbp), %r12
movq 0x18(%r12), %rbx
addq $0x8, %r12
cmpq %r12, %rbx
je 0xad19
leaq 0x28(%rbx), %r13
leaq -0x48(%rbp), %rdi
movq %r13, %rsi
callq 0x4150
movq -0x40(%rbp), %rdx
movq 0x20(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0xac6f
testq %rdx, %rdx
je 0xac74
movq (%rax), %rsi
movq -0x48(%rbp), %rdi
callq 0x4260
testl %eax, %eax
sete %r14b
jmp 0xac77
xorl %r14d, %r14d
jmp 0xac77
movb $0x1, %r14b
testb %r14b, %r14b
je 0xacb8
leaq -0xb0(%rbp), %rdi
movq %r13, %rsi
callq 0x42b0
movq -0xa8(%rbp), %rdx
movq 0x28(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0xacb8
testq %rdx, %rdx
je 0xad14
movq (%rax), %rsi
movq -0xb0(%rbp), %rdi
callq 0x4260
testl %eax, %eax
sete %r15b
jmp 0xacbb
xorl %r15d, %r15d
testb %r14b, %r14b
je 0xacd8
movq -0xb0(%rbp), %rdi
leaq -0xa0(%rbp), %rax
cmpq %rax, %rdi
je 0xacd8
callq 0x4220
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xacea
callq 0x4220
testb %r15b, %r15b
je 0xacfe
leaq -0x370(%rbp), %rdi
movq %r13, %rsi
callq 0x42d0
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r12, %rax
jne 0xac38
jmp 0xad19
movb $0x1, %r15b
jmp 0xacbb
movq 0x18(%rbp), %r12
movq 0x18(%r12), %rbx
addq $0x8, %r12
cmpq %r12, %rbx
je 0xae0d
leaq 0x28(%rbx), %r13
leaq -0x48(%rbp), %rdi
movq %r13, %rsi
callq 0x4150
movq -0x40(%rbp), %rdx
movq 0x20(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0xad66
testq %rdx, %rdx
je 0xad6b
movq (%rax), %rsi
movq -0x48(%rbp), %rdi
callq 0x4260
testl %eax, %eax
sete %r14b
jmp 0xad6e
xorl %r14d, %r14d
jmp 0xad6e
movb $0x1, %r14b
testb %r14b, %r14b
je 0xadaf
leaq -0x90(%rbp), %rdi
movq %r13, %rsi
callq 0x42b0
movq -0x88(%rbp), %rdx
movq 0x28(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0xadaf
testq %rdx, %rdx
je 0xae08
movq (%rax), %rsi
movq -0x90(%rbp), %rdi
callq 0x4260
testl %eax, %eax
sete %r15b
jmp 0xadb2
xorl %r15d, %r15d
testb %r14b, %r14b
je 0xadcc
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0xadcc
callq 0x4220
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xadde
callq 0x4220
testb %r15b, %r15b
je 0xadf2
leaq -0x370(%rbp), %rdi
movq %r13, %rsi
callq 0x4270
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r12, %rax
jne 0xad2f
jmp 0xae0d
movb $0x1, %r15b
jmp 0xadb2
leaq -0x370(%rbp), %rdi
callq 0x42f0
movq 0x7180(%rip), %rax      # 0x11fa0
movq (%rax), %rcx
movq 0x18(%rax), %rax
leaq -0x368(%rbp), %rdi
movq %rcx, -0x8(%rdi)
movq -0x18(%rcx), %rcx
movq %rax, -0x370(%rbp,%rcx)
callq 0x41e0
leaq -0x278(%rbp), %rdi
callq 0x40b0
addq $0x348, %rsp            # imm = 0x348
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0xaea6
jmp 0xae7f
jmp 0xaea6
jmp 0xae7f
jmp 0xaea6
jmp 0xae7f
jmp 0xaea6
jmp 0xae7f
jmp 0xaea6
jmp 0xae7f
jmp 0xaea6
jmp 0xae7f
jmp 0xaea6
jmp 0xae7f
jmp 0xaea6
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xaea9
callq 0x4220
jmp 0xaea9
jmp 0xaea6
jmp 0xaea6
jmp 0xaea6
jmp 0xaea6
jmp 0xaea6
jmp 0xaea6
jmp 0xaea6
jmp 0xaea6
movq %rax, %rbx
leaq -0x370(%rbp), %rdi
callq 0x4320
movq %rbx, %rdi
callq 0x4380