// File: 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
subq $0x480, %rsp            # imm = 0x480
movq %r9, -0x478(%rbp)
movq %r8, -0x470(%rbp)
movq %rcx, -0x468(%rbp)
movq %rdx, -0x460(%rbp)
movq %rsi, -0x458(%rbp)
movq %rdi, %rax
movq %rax, -0x450(%rbp)
movq 0x28(%rbp), %rdi
movq %rdi, -0x428(%rbp)
movq 0x20(%rbp), %rdi
movq %rdi, -0x438(%rbp)
movq 0x18(%rbp), %r10
movq %r10, -0x448(%rbp)
movq 0x10(%rbp), %r10
movq %r10, -0x440(%rbp)
movq %rax, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq %r9, -0x30(%rbp)
callq 0xe200
movq -0x438(%rbp), %rdi
movq %rax, -0x38(%rbp)
callq 0xe110
movq -0x438(%rbp), %rdi
movq %rax, -0x40(%rbp)
callq 0xe200
movq %rax, -0x48(%rbp)
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq 0x13a70(%rip), %rcx     # 0x29fd8
callq 0x18600
movq %rax, -0x50(%rbp)
leaq -0x250(%rbp), %rdi
movq %rdi, -0x430(%rbp)
callq 0xe350
movq -0x430(%rbp), %rdi
movq -0x428(%rbp), %rsi
movl $0x10, %edx
callq 0xe0e0
jmp 0x1659e
movq -0x450(%rbp), %rdi
callq 0x18680
movq %rax, -0x268(%rbp)
movq -0x450(%rbp), %rdi
callq 0x186e0
movq %rax, -0x270(%rbp)
leaq -0x268(%rbp), %rdi
leaq -0x270(%rbp), %rsi
callq 0x186b0
testb $0x1, %al
jne 0x165e0
jmp 0x16694
leaq -0x268(%rbp), %rdi
callq 0x18ec0
movq %rax, %rsi
addq $0x8, %rsi
leaq -0x290(%rbp), %rdi
callq 0xe160
jmp 0x16601
movq -0x438(%rbp), %rsi
leaq -0x290(%rbp), %rdi
callq 0x18e30
movb %al, -0x479(%rbp)
leaq -0x290(%rbp), %rdi
callq 0xe150
movb -0x479(%rbp), %al
testb $0x1, %al
jne 0x16632
jmp 0x16678
leaq -0x268(%rbp), %rdi
callq 0x18710
movq %rax, %rsi
addq $0x8, %rsi
leaq -0x250(%rbp), %rdi
callq 0xe1e0
jmp 0x16653
jmp 0x16678
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x258(%rbp)
movl %eax, -0x25c(%rbp)
leaq -0x250(%rbp), %rdi
callq 0xe320
jmp 0x16c7c
jmp 0x1667a
leaq -0x268(%rbp), %rdi
xorl %esi, %esi
callq 0x18730
movq %rax, -0x298(%rbp)
jmp 0x165b1
movq -0x458(%rbp), %rdi
callq 0x18770
movq %rax, -0x2a0(%rbp)
movq -0x458(%rbp), %rdi
callq 0x187d0
movq %rax, -0x2a8(%rbp)
leaq -0x2a0(%rbp), %rdi
leaq -0x2a8(%rbp), %rsi
callq 0x187a0
testb $0x1, %al
jne 0x166d6
jmp 0x16767
leaq -0x2a0(%rbp), %rdi
callq 0x18ee0
movq %rax, %rsi
addq $0x8, %rsi
leaq -0x2c8(%rbp), %rdi
callq 0xe160
jmp 0x166f7
movq -0x438(%rbp), %rsi
leaq -0x2c8(%rbp), %rdi
callq 0x18e30
movb %al, -0x47a(%rbp)
leaq -0x2c8(%rbp), %rdi
callq 0xe150
movb -0x47a(%rbp), %al
testb $0x1, %al
jne 0x16728
jmp 0x1674b
leaq -0x2a0(%rbp), %rdi
callq 0x18800
movq %rax, %rsi
addq $0x8, %rsi
leaq -0x250(%rbp), %rdi
callq 0xe360
jmp 0x16749
jmp 0x1674b
jmp 0x1674d
leaq -0x2a0(%rbp), %rdi
xorl %esi, %esi
callq 0x18820
movq %rax, -0x2d0(%rbp)
jmp 0x166a7
movq -0x460(%rbp), %rdi
callq 0x18860
movq %rax, -0x2d8(%rbp)
movq -0x460(%rbp), %rdi
callq 0x188c0
movq %rax, -0x2e0(%rbp)
leaq -0x2d8(%rbp), %rdi
leaq -0x2e0(%rbp), %rsi
callq 0x18890
testb $0x1, %al
jne 0x167a9
jmp 0x1683a
leaq -0x2d8(%rbp), %rdi
callq 0x18f00
movq %rax, %rsi
addq $0x8, %rsi
leaq -0x300(%rbp), %rdi
callq 0xe160
jmp 0x167ca
movq -0x438(%rbp), %rsi
leaq -0x300(%rbp), %rdi
callq 0x18e30
movb %al, -0x47b(%rbp)
leaq -0x300(%rbp), %rdi
callq 0xe150
movb -0x47b(%rbp), %al
testb $0x1, %al
jne 0x167fb
jmp 0x1681e
leaq -0x2d8(%rbp), %rdi
callq 0x188f0
movq %rax, %rsi
addq $0x8, %rsi
leaq -0x250(%rbp), %rdi
callq 0xe2f0
jmp 0x1681c
jmp 0x1681e
jmp 0x16820
leaq -0x2d8(%rbp), %rdi
xorl %esi, %esi
callq 0x18910
movq %rax, -0x308(%rbp)
jmp 0x1677a
movq -0x468(%rbp), %rdi
callq 0x18950
movq %rax, -0x310(%rbp)
movq -0x468(%rbp), %rdi
callq 0x189b0
movq %rax, -0x318(%rbp)
leaq -0x310(%rbp), %rdi
leaq -0x318(%rbp), %rsi
callq 0x18980
testb $0x1, %al
jne 0x1687c
jmp 0x1690d
leaq -0x310(%rbp), %rdi
callq 0x18f20
movq %rax, %rsi
addq $0x8, %rsi
leaq -0x338(%rbp), %rdi
callq 0xe160
jmp 0x1689d
movq -0x438(%rbp), %rsi
leaq -0x338(%rbp), %rdi
callq 0x18e30
movb %al, -0x47c(%rbp)
leaq -0x338(%rbp), %rdi
callq 0xe150
movb -0x47c(%rbp), %al
testb $0x1, %al
jne 0x168ce
jmp 0x168f1
leaq -0x310(%rbp), %rdi
callq 0x189e0
movq %rax, %rsi
addq $0x8, %rsi
leaq -0x250(%rbp), %rdi
callq 0xe100
jmp 0x168ef
jmp 0x168f1
jmp 0x168f3
leaq -0x310(%rbp), %rdi
xorl %esi, %esi
callq 0x18a00
movq %rax, -0x340(%rbp)
jmp 0x1684d
movq -0x470(%rbp), %rdi
callq 0x18a40
movq %rax, -0x348(%rbp)
movq -0x470(%rbp), %rdi
callq 0x18aa0
movq %rax, -0x350(%rbp)
leaq -0x348(%rbp), %rdi
leaq -0x350(%rbp), %rsi
callq 0x18a70
testb $0x1, %al
jne 0x1694f
jmp 0x169e0
leaq -0x348(%rbp), %rdi
callq 0x18f40
movq %rax, %rsi
addq $0x8, %rsi
leaq -0x370(%rbp), %rdi
callq 0xe160
jmp 0x16970
movq -0x438(%rbp), %rsi
leaq -0x370(%rbp), %rdi
callq 0x18e30
movb %al, -0x47d(%rbp)
leaq -0x370(%rbp), %rdi
callq 0xe150
movb -0x47d(%rbp), %al
testb $0x1, %al
jne 0x169a1
jmp 0x169c4
leaq -0x348(%rbp), %rdi
callq 0x18ad0
movq %rax, %rsi
addq $0x8, %rsi
leaq -0x250(%rbp), %rdi
callq 0xe080
jmp 0x169c2
jmp 0x169c4
jmp 0x169c6
leaq -0x348(%rbp), %rdi
xorl %esi, %esi
callq 0x18af0
movq %rax, -0x378(%rbp)
jmp 0x16920
movq -0x478(%rbp), %rdi
callq 0x18b30
movq %rax, -0x380(%rbp)
movq -0x478(%rbp), %rdi
callq 0x18b90
movq %rax, -0x388(%rbp)
leaq -0x380(%rbp), %rdi
leaq -0x388(%rbp), %rsi
callq 0x18b60
testb $0x1, %al
jne 0x16a22
jmp 0x16ab3
leaq -0x380(%rbp), %rdi
callq 0x18f60
movq %rax, %rsi
addq $0x8, %rsi
leaq -0x3a8(%rbp), %rdi
callq 0xe160
jmp 0x16a43
movq -0x438(%rbp), %rsi
leaq -0x3a8(%rbp), %rdi
callq 0x18e30
movb %al, -0x47e(%rbp)
leaq -0x3a8(%rbp), %rdi
callq 0xe150
movb -0x47e(%rbp), %al
testb $0x1, %al
jne 0x16a74
jmp 0x16a97
leaq -0x380(%rbp), %rdi
callq 0x18bc0
movq %rax, %rsi
addq $0x8, %rsi
leaq -0x250(%rbp), %rdi
callq 0xe140
jmp 0x16a95
jmp 0x16a97
jmp 0x16a99
leaq -0x380(%rbp), %rdi
xorl %esi, %esi
callq 0x18be0
movq %rax, -0x3b0(%rbp)
jmp 0x169f3
movq -0x440(%rbp), %rdi
callq 0x18c20
movq %rax, -0x3b8(%rbp)
movq -0x440(%rbp), %rdi
callq 0x18c80
movq %rax, -0x3c0(%rbp)
leaq -0x3b8(%rbp), %rdi
leaq -0x3c0(%rbp), %rsi
callq 0x18c50
testb $0x1, %al
jne 0x16af5
jmp 0x16b86
leaq -0x3b8(%rbp), %rdi
callq 0x18f80
movq %rax, %rsi
addq $0x8, %rsi
leaq -0x3e0(%rbp), %rdi
callq 0xe160
jmp 0x16b16
movq -0x438(%rbp), %rsi
leaq -0x3e0(%rbp), %rdi
callq 0x18e30
movb %al, -0x47f(%rbp)
leaq -0x3e0(%rbp), %rdi
callq 0xe150
movb -0x47f(%rbp), %al
testb $0x1, %al
jne 0x16b47
jmp 0x16b6a
leaq -0x3b8(%rbp), %rdi
callq 0x18cb0
movq %rax, %rsi
addq $0x8, %rsi
leaq -0x250(%rbp), %rdi
callq 0xe2e0
jmp 0x16b68
jmp 0x16b6a
jmp 0x16b6c
leaq -0x3b8(%rbp), %rdi
xorl %esi, %esi
callq 0x18cd0
movq %rax, -0x3e8(%rbp)
jmp 0x16ac6
movq -0x448(%rbp), %rdi
callq 0x18d10
movq %rax, -0x3f0(%rbp)
movq -0x448(%rbp), %rdi
callq 0x18d70
movq %rax, -0x3f8(%rbp)
leaq -0x3f0(%rbp), %rdi
leaq -0x3f8(%rbp), %rsi
callq 0x18d40
testb $0x1, %al
jne 0x16bc8
jmp 0x16c59
leaq -0x3f0(%rbp), %rdi
callq 0x18fa0
movq %rax, %rsi
addq $0x8, %rsi
leaq -0x418(%rbp), %rdi
callq 0xe160
jmp 0x16be9
movq -0x438(%rbp), %rsi
leaq -0x418(%rbp), %rdi
callq 0x18e30
movb %al, -0x480(%rbp)
leaq -0x418(%rbp), %rdi
callq 0xe150
movb -0x480(%rbp), %al
testb $0x1, %al
jne 0x16c1a
jmp 0x16c3d
leaq -0x3f0(%rbp), %rdi
callq 0x18da0
movq %rax, %rsi
addq $0x8, %rsi
leaq -0x250(%rbp), %rdi
callq 0xe270
jmp 0x16c3b
jmp 0x16c3d
jmp 0x16c3f
leaq -0x3f0(%rbp), %rdi
xorl %esi, %esi
callq 0x18dc0
movq %rax, -0x420(%rbp)
jmp 0x16b99
leaq -0x250(%rbp), %rdi
callq 0xe300
jmp 0x16c67
leaq -0x250(%rbp), %rdi
callq 0xe320
addq $0x480, %rsp            # imm = 0x480
popq %rbp
retq
movq -0x258(%rbp), %rdi
callq 0xe370
nopl (%rax,%rax)