// File: /workspace/github_cpp_makefile_star2_O1/viniciu21[P]PetLolja/./src/PetFera.cpp
// Function: Petfera::cadastrarVeterinario()
void Petfera::cadastrarVeterinario()
{
	string nome = leString("Digite o nome do Funcionario \n");
	string cpf = leString("Digite o cpf do Funcionario \n");
	tipoFunca classificacao = Veterinario;
	string celular = leString("Digite o celular do funcionario \n");
	string email = leString("Digite o email do funcionario \n");
	bool inscritoCRMV = leBool("Digite S para se o funcionario esta inscrito no CRMV e N para se nao esta \n");

	std::shared_ptr<Funcionario> novo = std::make_shared<FuncionarioVeterinario>(this->funcionarioStore.size(), nome, cpf, classificacao, celular, email, inscritoCRMV);

	if (adicionarFuncionario(novo))
	{
		this->funcionarios_cadastrados++;
	}
	else
	{
		cout << "Erro no cadastro, tente novamente " << endl;
		cadastrarTratador();
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x158, %rsp            # imm = 0x158
movq %rdi, %rbx
leaq -0x140(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x12862(%rip), %rsi     # 0x2eb09
leaq 0x12879(%rip), %rdx     # 0x2eb27
leaq -0x150(%rbp), %r14
movq %r14, %rdi
callq 0x1e03c
leaq -0x170(%rbp), %rdi
movq %r14, %rdx
callq 0x14260
movq -0x150(%rbp), %rdi
cmpq %r15, %rdi
je 0x1c2e7
movq -0x140(%rbp), %rsi
incq %rsi
callq 0x41d0
leaq -0xc0(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x1282f(%rip), %rsi     # 0x2eb28
leaq 0x12845(%rip), %rdx     # 0x2eb45
leaq -0xd0(%rbp), %rdi
callq 0x1e03c
leaq -0xf0(%rbp), %rdi
leaq -0xd0(%rbp), %rdx
callq 0x14260
movq -0xd0(%rbp), %rdi
cmpq %r14, %rdi
je 0x1c33a
movq -0xc0(%rbp), %rsi
incq %rsi
callq 0x41d0
movl $0x0, -0x30(%rbp)
leaq -0xa0(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x127f3(%rip), %rsi     # 0x2eb46
leaq 0x1280d(%rip), %rdx     # 0x2eb67
leaq -0xb0(%rbp), %rdi
callq 0x1e03c
leaq -0x130(%rbp), %r14
leaq -0xb0(%rbp), %rdx
movq %r14, %rdi
callq 0x14260
movq -0xb0(%rbp), %rdi
cmpq %r15, %rdi
je 0x1c397
movq -0xa0(%rbp), %rsi
incq %rsi
callq 0x41d0
leaq -0x80(%rbp), %r12
movq %r12, -0x10(%r12)
leaq 0x127c1(%rip), %rsi     # 0x2eb68
leaq 0x127d9(%rip), %rdx     # 0x2eb87
leaq -0x90(%rbp), %rdi
callq 0x1e03c
leaq -0x110(%rbp), %r15
leaq -0x90(%rbp), %rdx
movq %r15, %rdi
callq 0x14260
movq -0x90(%rbp), %rdi
cmpq %r12, %rdi
je 0x1c3e8
movq -0x80(%rbp), %rsi
incq %rsi
callq 0x41d0
leaq -0x60(%rbp), %r13
movq %r13, -0x10(%r13)
leaq 0x12791(%rip), %rsi     # 0x2eb88
leaq 0x127d5(%rip), %rdx     # 0x2ebd3
leaq -0x70(%rbp), %rdi
callq 0x1e03c
leaq -0x70(%rbp), %rsi
callq 0x14432
movl %eax, %r12d
movq -0x70(%rbp), %rdi
cmpq %r13, %rdi
je 0x1c428
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x41d0
leaq -0x29(%rbp), %rax
movb %r12b, (%rax)
movq 0x28(%rbx), %rdx
subq 0x20(%rbx), %rdx
sarq $0x4, %rdx
leaq -0x178(%rbp), %rcx
movq %rdx, (%rcx)
leaq -0x48(%rbp), %rdi
movq $0x0, -0x8(%rdi)
leaq -0x30(%rbp), %r10
leaq -0x50(%rbp), %rsi
leaq -0x2a(%rbp), %rdx
leaq -0x170(%rbp), %r8
leaq -0xf0(%rbp), %r9
pushq %rax
pushq %r15
pushq %r14
pushq %r10
callq 0x27aa8
addq $0x20, %rsp
movq -0x50(%rbp), %rax
movq -0x48(%rbp), %r14
movq %rax, -0x40(%rbp)
movq %r14, -0x38(%rbp)
testq %r14, %r14
je 0x1c4a7
movq 0x1eb31(%rip), %rax     # 0x3afc8
cmpb $0x0, (%rax)
je 0x1c4a2
incl 0x8(%r14)
jmp 0x1c4a7
lock
incl 0x8(%r14)
leaq -0x40(%rbp), %rsi
movq %rbx, %rdi
callq 0x108d4
movq -0x38(%rbp), %rdi
testq %rdi, %rdi
je 0x1c4c1
callq 0x4eac
incl 0x38(%rbx)
testq %r14, %r14
je 0x1c4d1
movq %r14, %rdi
callq 0x4eac
leaq -0x100(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c4f0
movq -0x100(%rbp), %rsi
incq %rsi
callq 0x41d0
leaq -0x120(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c50f
movq -0x120(%rbp), %rsi
incq %rsi
callq 0x41d0
leaq -0xe0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c52e
movq -0xe0(%rbp), %rsi
incq %rsi
callq 0x41d0
leaq -0x160(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c54d
movq -0x160(%rbp), %rsi
incq %rsi
callq 0x41d0
addq $0x158, %rsp            # imm = 0x158
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq -0x38(%rbp), %rdi
testq %rdi, %rdi
je 0x1c570
callq 0x4eac
testq %r14, %r14
je 0x1c59e
movq %r14, %rdi
callq 0x4eac
jmp 0x1c59e
jmp 0x1c59b
movq %rax, %rbx
movq -0x70(%rbp), %rdi
cmpq %r13, %rdi
je 0x1c59e
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x41d0
jmp 0x1c59e
movq %rax, %rbx
leaq -0x100(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c5d7
movq -0x100(%rbp), %rsi
jmp 0x1c5ca
movq %rax, %rbx
movq -0x90(%rbp), %rdi
cmpq %r12, %rdi
je 0x1c5d7
movq -0x80(%rbp), %rsi
incq %rsi
callq 0x41d0
jmp 0x1c5d7
movq %rax, %rbx
leaq -0x120(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c613
movq -0x120(%rbp), %rsi
incq %rsi
callq 0x41d0
jmp 0x1c613
movq %rax, %rbx
movq -0xb0(%rbp), %rdi
cmpq %r15, %rdi
je 0x1c613
movq -0xa0(%rbp), %rsi
jmp 0x1c5ee
movq %rax, %rbx
leaq -0xe0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c632
movq -0xe0(%rbp), %rsi
incq %rsi
callq 0x41d0
leaq -0x160(%rbp), %r15
movq -0x10(%r15), %rdi
cmpq %r15, %rdi
je 0x1c64d
movq (%r15), %rsi
incq %rsi
callq 0x41d0
movq %rbx, %rdi
callq 0x42f0
movq %rax, %rbx
movq -0xd0(%rbp), %rdi
cmpq %r14, %rdi
je 0x1c632
movq -0xc0(%rbp), %rsi
jmp 0x1c62a
movq %rax, %rbx
jmp 0x1c632
movq %rax, %rbx
movq -0x150(%rbp), %rdi
jmp 0x1c63d