// File: /workspace/github_cpp_makefile_star2_O3/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 $0x268, %rsp            # imm = 0x268
movq %r9, -0x70(%rbp)
movq %r8, -0x78(%rbp)
movq %rcx, -0x80(%rbp)
movq %rdx, -0x88(%rbp)
movq %rsi, -0x90(%rbp)
movq %rdi, %rbx
movq 0x20(%rbp), %rax
movq 0x8(%rax), %r14
testq %r14, %r14
je 0xa752
movq (%rax), %r15
xorl %r12d, %r12d
movsbl (%r15,%r12), %edi
callq 0x43a0
movb %al, (%r15,%r12)
incq %r12
cmpq %r12, %r14
jne 0xa73c
movq 0x30(%rbp), %r14
movq 0x28(%rbp), %rax
movq 0x8(%rax), %r15
testq %r15, %r15
je 0xa77f
movq (%rax), %r12
xorl %r13d, %r13d
movsbl (%r12,%r13), %edi
callq 0x43a0
movb %al, (%r12,%r13)
incq %r13
cmpq %r13, %r15
jne 0xa769
leaq -0x290(%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
movq 0x20(%rbp), %r15
je 0xa878
leaq 0x28(%r14), %r12
leaq -0x48(%rbp), %rdi
movq %r12, %rsi
callq 0x4150
movq -0x40(%rbp), %rdx
cmpq 0x8(%r15), %rdx
jne 0xa7e2
testq %rdx, %rdx
je 0xa7e7
movq (%r15), %rsi
movq -0x48(%rbp), %rdi
callq 0x4260
testl %eax, %eax
je 0xa7e7
xorl %r13d, %r13d
jmp 0xa83e
leaq -0x68(%rbp), %rdi
movq %r12, %rsi
callq 0x42b0
movq -0x60(%rbp), %rdx
movq 0x28(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0xa81d
movq -0x68(%rbp), %r15
testq %rdx, %rdx
je 0xa826
movq (%rax), %rsi
movq %r15, %rdi
callq 0x4260
testl %eax, %eax
sete %r13b
jmp 0xa829
movq -0x68(%rbp), %r15
xorl %r13d, %r13d
jmp 0xa829
movb $0x1, %r13b
leaq -0x58(%rbp), %rax
cmpq %rax, %r15
je 0xa83a
movq %r15, %rdi
callq 0x4220
movq 0x20(%rbp), %r15
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xa850
callq 0x4220
testb %r13b, %r13b
je 0xa864
leaq -0x290(%rbp), %rdi
movq %r12, %rsi
callq 0x41f0
movq %r14, %rdi
callq 0x4180
movq %rax, %r14
cmpq %rbx, %rax
jne 0xa7b3
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0xa958
movq %rax, %r14
leaq 0x28(%rbx), %r12
leaq -0x48(%rbp), %rdi
movq %r12, %rsi
callq 0x4150
movq -0x40(%rbp), %rdx
cmpq 0x8(%r15), %rdx
jne 0xa8c2
testq %rdx, %rdx
je 0xa8c7
movq (%r15), %rsi
movq -0x48(%rbp), %rdi
callq 0x4260
testl %eax, %eax
je 0xa8c7
xorl %r13d, %r13d
jmp 0xa91e
leaq -0x68(%rbp), %rdi
movq %r12, %rsi
callq 0x42b0
movq -0x60(%rbp), %rdx
movq 0x28(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0xa8fd
movq -0x68(%rbp), %r15
testq %rdx, %rdx
je 0xa906
movq (%rax), %rsi
movq %r15, %rdi
callq 0x4260
testl %eax, %eax
sete %r13b
jmp 0xa909
movq -0x68(%rbp), %r15
xorl %r13d, %r13d
jmp 0xa909
movb $0x1, %r13b
leaq -0x58(%rbp), %rax
cmpq %rax, %r15
je 0xa91a
movq %r15, %rdi
callq 0x4220
movq 0x20(%rbp), %r15
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xa930
callq 0x4220
testb %r13b, %r13b
je 0xa944
leaq -0x290(%rbp), %rdi
movq %r12, %rsi
callq 0x4370
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r14, %rax
jne 0xa893
movq -0x88(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0xaa38
movq %rax, %r14
leaq 0x28(%rbx), %r12
leaq -0x48(%rbp), %rdi
movq %r12, %rsi
callq 0x4150
movq -0x40(%rbp), %rdx
cmpq 0x8(%r15), %rdx
jne 0xa9a2
testq %rdx, %rdx
je 0xa9a7
movq (%r15), %rsi
movq -0x48(%rbp), %rdi
callq 0x4260
testl %eax, %eax
je 0xa9a7
xorl %r13d, %r13d
jmp 0xa9fe
leaq -0x68(%rbp), %rdi
movq %r12, %rsi
callq 0x42b0
movq -0x60(%rbp), %rdx
movq 0x28(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0xa9dd
movq -0x68(%rbp), %r15
testq %rdx, %rdx
je 0xa9e6
movq (%rax), %rsi
movq %r15, %rdi
callq 0x4260
testl %eax, %eax
sete %r13b
jmp 0xa9e9
movq -0x68(%rbp), %r15
xorl %r13d, %r13d
jmp 0xa9e9
movb $0x1, %r13b
leaq -0x58(%rbp), %rax
cmpq %rax, %r15
je 0xa9fa
movq %r15, %rdi
callq 0x4220
movq 0x20(%rbp), %r15
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xaa10
callq 0x4220
testb %r13b, %r13b
je 0xaa24
leaq -0x290(%rbp), %rdi
movq %r12, %rsi
callq 0x42e0
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r14, %rax
jne 0xa973
movq -0x80(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0xab15
movq %rax, %r14
leaq 0x28(%rbx), %r13
leaq -0x48(%rbp), %rdi
movq %r13, %rsi
callq 0x4150
movq -0x40(%rbp), %rdx
cmpq 0x8(%r15), %rdx
jne 0xaa7f
testq %rdx, %rdx
je 0xaa84
movq (%r15), %rsi
movq -0x48(%rbp), %rdi
callq 0x4260
testl %eax, %eax
je 0xaa84
xorl %r12d, %r12d
jmp 0xaadb
leaq -0x68(%rbp), %rdi
movq %r13, %rsi
callq 0x42b0
movq -0x60(%rbp), %rdx
movq 0x28(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0xaaba
movq -0x68(%rbp), %r15
testq %rdx, %rdx
je 0xaac3
movq (%rax), %rsi
movq %r15, %rdi
callq 0x4260
testl %eax, %eax
sete %r12b
jmp 0xaac6
movq -0x68(%rbp), %r15
xorl %r12d, %r12d
jmp 0xaac6
movb $0x1, %r12b
leaq -0x58(%rbp), %rax
cmpq %rax, %r15
je 0xaad7
movq %r15, %rdi
callq 0x4220
movq 0x20(%rbp), %r15
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xaaed
callq 0x4220
testb %r12b, %r12b
je 0xab01
leaq -0x290(%rbp), %rdi
movq %r13, %rsi
callq 0x4120
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r14, %rax
jne 0xaa50
movq -0x78(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0xabf2
movq %rax, %r14
leaq 0x28(%rbx), %r13
leaq -0x48(%rbp), %rdi
movq %r13, %rsi
callq 0x4150
movq -0x40(%rbp), %rdx
cmpq 0x8(%r15), %rdx
jne 0xab5c
testq %rdx, %rdx
je 0xab61
movq (%r15), %rsi
movq -0x48(%rbp), %rdi
callq 0x4260
testl %eax, %eax
je 0xab61
xorl %r12d, %r12d
jmp 0xabb8
leaq -0x68(%rbp), %rdi
movq %r13, %rsi
callq 0x42b0
movq -0x60(%rbp), %rdx
movq 0x28(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0xab97
movq -0x68(%rbp), %r15
testq %rdx, %rdx
je 0xaba0
movq (%rax), %rsi
movq %r15, %rdi
callq 0x4260
testl %eax, %eax
sete %r12b
jmp 0xaba3
movq -0x68(%rbp), %r15
xorl %r12d, %r12d
jmp 0xaba3
movb $0x1, %r12b
leaq -0x58(%rbp), %rax
cmpq %rax, %r15
je 0xabb4
movq %r15, %rdi
callq 0x4220
movq 0x20(%rbp), %r15
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xabca
callq 0x4220
testb %r12b, %r12b
je 0xabde
leaq -0x290(%rbp), %rdi
movq %r13, %rsi
callq 0x40a0
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r14, %rax
jne 0xab2d
movq -0x70(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0xaccf
movq %rax, %r14
leaq 0x28(%rbx), %r13
leaq -0x48(%rbp), %rdi
movq %r13, %rsi
callq 0x4150
movq -0x40(%rbp), %rdx
cmpq 0x8(%r15), %rdx
jne 0xac39
testq %rdx, %rdx
je 0xac3e
movq (%r15), %rsi
movq -0x48(%rbp), %rdi
callq 0x4260
testl %eax, %eax
je 0xac3e
xorl %r12d, %r12d
jmp 0xac95
leaq -0x68(%rbp), %rdi
movq %r13, %rsi
callq 0x42b0
movq -0x60(%rbp), %rdx
movq 0x28(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0xac74
movq -0x68(%rbp), %r15
testq %rdx, %rdx
je 0xac7d
movq (%rax), %rsi
movq %r15, %rdi
callq 0x4260
testl %eax, %eax
sete %r12b
jmp 0xac80
movq -0x68(%rbp), %r15
xorl %r12d, %r12d
jmp 0xac80
movb $0x1, %r12b
leaq -0x58(%rbp), %rax
cmpq %rax, %r15
je 0xac91
movq %r15, %rdi
callq 0x4220
movq 0x20(%rbp), %r15
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xaca7
callq 0x4220
testb %r12b, %r12b
je 0xacbb
leaq -0x290(%rbp), %rdi
movq %r13, %rsi
callq 0x4140
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r14, %rax
jne 0xac0a
movq 0x10(%rbp), %r12
movq 0x18(%r12), %rbx
addq $0x8, %r12
cmpq %r12, %rbx
je 0xadaa
leaq 0x28(%rbx), %r13
leaq -0x48(%rbp), %rdi
movq %r13, %rsi
callq 0x4150
movq -0x40(%rbp), %rdx
cmpq 0x8(%r15), %rdx
jne 0xad14
testq %rdx, %rdx
je 0xad19
movq (%r15), %rsi
movq -0x48(%rbp), %rdi
callq 0x4260
testl %eax, %eax
je 0xad19
xorl %r14d, %r14d
jmp 0xad70
leaq -0x68(%rbp), %rdi
movq %r13, %rsi
callq 0x42b0
movq -0x60(%rbp), %rdx
movq 0x28(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0xad4f
movq -0x68(%rbp), %r15
testq %rdx, %rdx
je 0xad58
movq (%rax), %rsi
movq %r15, %rdi
callq 0x4260
testl %eax, %eax
sete %r14b
jmp 0xad5b
movq -0x68(%rbp), %r15
xorl %r14d, %r14d
jmp 0xad5b
movb $0x1, %r14b
leaq -0x58(%rbp), %rax
cmpq %rax, %r15
je 0xad6c
movq %r15, %rdi
callq 0x4220
movq 0x20(%rbp), %r15
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xad82
callq 0x4220
testb %r14b, %r14b
je 0xad96
leaq -0x290(%rbp), %rdi
movq %r13, %rsi
callq 0x42d0
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r12, %rax
jne 0xace5
movq 0x18(%rbp), %r12
movq 0x18(%r12), %rbx
addq $0x8, %r12
cmpq %r12, %rbx
je 0xae85
leaq 0x28(%rbx), %r13
leaq -0x48(%rbp), %rdi
movq %r13, %rsi
callq 0x4150
movq -0x40(%rbp), %rdx
cmpq 0x8(%r15), %rdx
jne 0xadef
testq %rdx, %rdx
je 0xadf4
movq (%r15), %rsi
movq -0x48(%rbp), %rdi
callq 0x4260
testl %eax, %eax
je 0xadf4
xorl %r14d, %r14d
jmp 0xae4b
leaq -0x68(%rbp), %rdi
movq %r13, %rsi
callq 0x42b0
movq -0x60(%rbp), %rdx
movq 0x28(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0xae2a
movq -0x68(%rbp), %r15
testq %rdx, %rdx
je 0xae33
movq (%rax), %rsi
movq %r15, %rdi
callq 0x4260
testl %eax, %eax
sete %r14b
jmp 0xae36
movq -0x68(%rbp), %r15
xorl %r14d, %r14d
jmp 0xae36
movb $0x1, %r14b
leaq -0x58(%rbp), %rax
cmpq %rax, %r15
je 0xae47
movq %r15, %rdi
callq 0x4220
movq 0x20(%rbp), %r15
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xae5d
callq 0x4220
testb %r14b, %r14b
je 0xae71
leaq -0x290(%rbp), %rdi
movq %r13, %rsi
callq 0x4270
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r12, %rax
jne 0xadc0
leaq -0x290(%rbp), %rdi
callq 0x42f0
movq 0x7108(%rip), %rax      # 0x11fa0
movq (%rax), %rcx
movq 0x18(%rax), %rax
leaq -0x288(%rbp), %rdi
movq %rcx, -0x8(%rdi)
movq -0x18(%rcx), %rcx
movq %rax, -0x290(%rbp,%rcx)
callq 0x41e0
leaq -0x198(%rbp), %rdi
callq 0x40b0
addq $0x268, %rsp            # imm = 0x268
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0xaf1e
jmp 0xaee9
jmp 0xaee9
jmp 0xaee9
jmp 0xaee9
jmp 0xaee9
jmp 0xaee9
jmp 0xaee9
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xaf21
callq 0x4220
jmp 0xaf21
jmp 0xaf1e
jmp 0xaf1e
jmp 0xaf1e
jmp 0xaf1e
jmp 0xaf1e
jmp 0xaf1e
jmp 0xaf1e
jmp 0xaf1e
jmp 0xaf1e
jmp 0xaf1e
jmp 0xaf1e
jmp 0xaf1e
jmp 0xaf1e
jmp 0xaf1e
jmp 0xaf1e
movq %rax, %rbx
leaq -0x290(%rbp), %rdi
callq 0x4320
movq %rbx, %rdi
callq 0x4380