// File: /workspace/github_cpp_makefile_star2_O1/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 0x20(%rbp), %r15
movq 0x8(%r15), %r12
testq %r12, %r12
je 0xaf13
movq (%r15), %r13
xorl %r14d, %r14d
movsbl (%r13,%r14), %edi
callq 0x43a0
movb %al, (%r13,%r14)
incq %r14
cmpq %r14, %r12
jne 0xaefb
leaq -0x270(%rbp), %r12
movq %r12, %rdi
callq 0x4360
movq %r12, %rdi
movq 0x28(%rbp), %rsi
movl $0x10, %edx
callq 0x40f0
movq 0x18(%rbx), %r14
addq $0x8, %rbx
cmpq %rbx, %r14
je 0xafb1
leaq 0x28(%r14), %r12
leaq -0x48(%rbp), %rdi
movq %r12, %rsi
callq 0x4150
movq -0x40(%rbp), %rdx
cmpq 0x8(%r15), %rdx
jne 0xaf73
testq %rdx, %rdx
je 0xaf78
movq (%r15), %rsi
movq -0x48(%rbp), %rdi
callq 0x4260
testl %eax, %eax
sete %r13b
jmp 0xaf7b
xorl %r13d, %r13d
jmp 0xaf7b
movb $0x1, %r13b
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xaf8d
callq 0x4220
testb %r13b, %r13b
je 0xafa1
leaq -0x270(%rbp), %rdi
movq %r12, %rsi
callq 0x41f0
movq %r14, %rdi
callq 0x4180
movq %rax, %r14
cmpq %rbx, %rax
jne 0xaf40
movq -0x70(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0xb036
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 0xaff8
testq %rdx, %rdx
je 0xaffd
movq (%r15), %rsi
movq -0x48(%rbp), %rdi
callq 0x4260
testl %eax, %eax
sete %r13b
jmp 0xb000
xorl %r13d, %r13d
jmp 0xb000
movb $0x1, %r13b
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xb012
callq 0x4220
testb %r13b, %r13b
je 0xb026
leaq -0x270(%rbp), %rdi
movq %r12, %rsi
callq 0x4370
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r14, %rax
jne 0xafc5
movq -0x68(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0xb0bb
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 0xb07d
testq %rdx, %rdx
je 0xb082
movq (%r15), %rsi
movq -0x48(%rbp), %rdi
callq 0x4260
testl %eax, %eax
sete %r13b
jmp 0xb085
xorl %r13d, %r13d
jmp 0xb085
movb $0x1, %r13b
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xb097
callq 0x4220
testb %r13b, %r13b
je 0xb0ab
leaq -0x270(%rbp), %rdi
movq %r12, %rsi
callq 0x42e0
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r14, %rax
jne 0xb04a
movq -0x60(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0xb140
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 0xb102
testq %rdx, %rdx
je 0xb107
movq (%r15), %rsi
movq -0x48(%rbp), %rdi
callq 0x4260
testl %eax, %eax
sete %r13b
jmp 0xb10a
xorl %r13d, %r13d
jmp 0xb10a
movb $0x1, %r13b
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xb11c
callq 0x4220
testb %r13b, %r13b
je 0xb130
leaq -0x270(%rbp), %rdi
movq %r12, %rsi
callq 0x4120
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r14, %rax
jne 0xb0cf
movq -0x58(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0xb1c5
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 0xb187
testq %rdx, %rdx
je 0xb18c
movq (%r15), %rsi
movq -0x48(%rbp), %rdi
callq 0x4260
testl %eax, %eax
sete %r13b
jmp 0xb18f
xorl %r13d, %r13d
jmp 0xb18f
movb $0x1, %r13b
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xb1a1
callq 0x4220
testb %r13b, %r13b
je 0xb1b5
leaq -0x270(%rbp), %rdi
movq %r12, %rsi
callq 0x40a0
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r14, %rax
jne 0xb154
movq -0x50(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0xb24a
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 0xb20c
testq %rdx, %rdx
je 0xb211
movq (%r15), %rsi
movq -0x48(%rbp), %rdi
callq 0x4260
testl %eax, %eax
sete %r13b
jmp 0xb214
xorl %r13d, %r13d
jmp 0xb214
movb $0x1, %r13b
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xb226
callq 0x4220
testb %r13b, %r13b
je 0xb23a
leaq -0x270(%rbp), %rdi
movq %r12, %rsi
callq 0x4140
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r14, %rax
jne 0xb1d9
movq 0x10(%rbp), %r13
movq 0x18(%r13), %rbx
addq $0x8, %r13
cmpq %r13, %rbx
je 0xb2cc
leaq 0x28(%rbx), %r12
leaq -0x48(%rbp), %rdi
movq %r12, %rsi
callq 0x4150
movq -0x40(%rbp), %rdx
cmpq 0x8(%r15), %rdx
jne 0xb28e
testq %rdx, %rdx
je 0xb293
movq (%r15), %rsi
movq -0x48(%rbp), %rdi
callq 0x4260
testl %eax, %eax
sete %r14b
jmp 0xb296
xorl %r14d, %r14d
jmp 0xb296
movb $0x1, %r14b
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xb2a8
callq 0x4220
testb %r14b, %r14b
je 0xb2bc
leaq -0x270(%rbp), %rdi
movq %r12, %rsi
callq 0x42d0
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r13, %rax
jne 0xb25b
movq 0x18(%rbp), %r13
movq 0x18(%r13), %rbx
addq $0x8, %r13
cmpq %r13, %rbx
je 0xb34e
leaq 0x28(%rbx), %r12
leaq -0x48(%rbp), %rdi
movq %r12, %rsi
callq 0x4150
movq -0x40(%rbp), %rdx
cmpq 0x8(%r15), %rdx
jne 0xb310
testq %rdx, %rdx
je 0xb315
movq (%r15), %rsi
movq -0x48(%rbp), %rdi
callq 0x4260
testl %eax, %eax
sete %r14b
jmp 0xb318
xorl %r14d, %r14d
jmp 0xb318
movb $0x1, %r14b
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xb32a
callq 0x4220
testb %r14b, %r14b
je 0xb33e
leaq -0x270(%rbp), %rdi
movq %r12, %rsi
callq 0x4270
movq %rbx, %rdi
callq 0x4180
movq %rax, %rbx
cmpq %r13, %rax
jne 0xb2dd
leaq -0x270(%rbp), %rdi
callq 0x42f0
movq 0x6c3f(%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 0xb3c2
jmp 0xb3c2
jmp 0xb3c2
jmp 0xb3c2
jmp 0xb3c2
jmp 0xb3c2
jmp 0xb3c2
jmp 0xb3c2
jmp 0xb3c2
jmp 0xb3c2
jmp 0xb3c2
jmp 0xb3c2
jmp 0xb3c2
jmp 0xb3c2
jmp 0xb3c2
jmp 0xb3c2
movq %rax, %rbx
leaq -0x270(%rbp), %rdi
callq 0x4320
movq %rbx, %rdi
callq 0x4380