// File: /workspace/github_cpp_makefile_star2_O3/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 0x127f8(%rip), %rsi     # 0x2eb09
leaq 0x1280f(%rip), %rdx     # 0x2eb27
leaq -0x150(%rbp), %r14
movq %r14, %rdi
callq 0x1e0e2
leaq -0x170(%rbp), %rdi
movq %r14, %rdx
callq 0x142ec
movq -0x150(%rbp), %rdi
cmpq %r15, %rdi
je 0x1c351
movq -0x140(%rbp), %rsi
incq %rsi
callq 0x41d0
leaq -0xc0(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x127c5(%rip), %rsi     # 0x2eb28
leaq 0x127db(%rip), %rdx     # 0x2eb45
leaq -0xd0(%rbp), %rdi
callq 0x1e0e2
leaq -0xf0(%rbp), %rdi
leaq -0xd0(%rbp), %rdx
callq 0x142ec
movq -0xd0(%rbp), %rdi
cmpq %r14, %rdi
je 0x1c3a4
movq -0xc0(%rbp), %rsi
incq %rsi
callq 0x41d0
movl $0x0, -0x30(%rbp)
leaq -0xa0(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x12789(%rip), %rsi     # 0x2eb46
leaq 0x127a3(%rip), %rdx     # 0x2eb67
leaq -0xb0(%rbp), %rdi
callq 0x1e0e2
leaq -0x130(%rbp), %r14
leaq -0xb0(%rbp), %rdx
movq %r14, %rdi
callq 0x142ec
movq -0xb0(%rbp), %rdi
cmpq %r15, %rdi
je 0x1c401
movq -0xa0(%rbp), %rsi
incq %rsi
callq 0x41d0
leaq -0x80(%rbp), %r12
movq %r12, -0x10(%r12)
leaq 0x12757(%rip), %rsi     # 0x2eb68
leaq 0x1276f(%rip), %rdx     # 0x2eb87
leaq -0x90(%rbp), %rdi
callq 0x1e0e2
leaq -0x110(%rbp), %r15
leaq -0x90(%rbp), %rdx
movq %r15, %rdi
callq 0x142ec
movq -0x90(%rbp), %rdi
cmpq %r12, %rdi
je 0x1c452
movq -0x80(%rbp), %rsi
incq %rsi
callq 0x41d0
leaq -0x60(%rbp), %r13
movq %r13, -0x10(%r13)
leaq 0x12727(%rip), %rsi     # 0x2eb88
leaq 0x1276b(%rip), %rdx     # 0x2ebd3
leaq -0x70(%rbp), %rdi
callq 0x1e0e2
leaq -0x70(%rbp), %rsi
callq 0x144be
movl %eax, %r12d
movq -0x70(%rbp), %rdi
cmpq %r13, %rdi
je 0x1c492
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 0x27ac6
addq $0x20, %rsp
movq -0x50(%rbp), %rax
movq -0x48(%rbp), %r14
movq %rax, -0x40(%rbp)
movq %r14, -0x38(%rbp)
testq %r14, %r14
je 0x1c511
movq 0x1eac7(%rip), %rax     # 0x3afc8
cmpb $0x0, (%rax)
je 0x1c50c
incl 0x8(%r14)
jmp 0x1c511
lock
incl 0x8(%r14)
leaq -0x40(%rbp), %rsi
movq %rbx, %rdi
callq 0x1091c
movq -0x38(%rbp), %rdi
testq %rdi, %rdi
je 0x1c52b
callq 0x4eac
incl 0x38(%rbx)
testq %r14, %r14
je 0x1c53b
movq %r14, %rdi
callq 0x4eac
leaq -0x100(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c55a
movq -0x100(%rbp), %rsi
incq %rsi
callq 0x41d0
leaq -0x120(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c579
movq -0x120(%rbp), %rsi
incq %rsi
callq 0x41d0
leaq -0xe0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c598
movq -0xe0(%rbp), %rsi
incq %rsi
callq 0x41d0
leaq -0x160(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c5b7
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 0x1c5da
callq 0x4eac
testq %r14, %r14
je 0x1c608
movq %r14, %rdi
callq 0x4eac
jmp 0x1c608
jmp 0x1c605
movq %rax, %rbx
movq -0x70(%rbp), %rdi
cmpq %r13, %rdi
je 0x1c608
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x41d0
jmp 0x1c608
movq %rax, %rbx
leaq -0x100(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c641
movq -0x100(%rbp), %rsi
jmp 0x1c634
movq %rax, %rbx
movq -0x90(%rbp), %rdi
cmpq %r12, %rdi
je 0x1c641
movq -0x80(%rbp), %rsi
incq %rsi
callq 0x41d0
jmp 0x1c641
movq %rax, %rbx
leaq -0x120(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c67d
movq -0x120(%rbp), %rsi
incq %rsi
callq 0x41d0
jmp 0x1c67d
movq %rax, %rbx
movq -0xb0(%rbp), %rdi
cmpq %r15, %rdi
je 0x1c67d
movq -0xa0(%rbp), %rsi
jmp 0x1c658
movq %rax, %rbx
leaq -0xe0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c69c
movq -0xe0(%rbp), %rsi
incq %rsi
callq 0x41d0
leaq -0x160(%rbp), %r15
movq -0x10(%r15), %rdi
cmpq %r15, %rdi
je 0x1c6b7
movq (%r15), %rsi
incq %rsi
callq 0x41d0
movq %rbx, %rdi
callq 0x42f0
movq %rax, %rbx
movq -0xd0(%rbp), %rdi
cmpq %r14, %rdi
je 0x1c69c
movq -0xc0(%rbp), %rsi
jmp 0x1c694
movq %rax, %rbx
jmp 0x1c69c
movq %rax, %rbx
movq -0x150(%rbp), %rdi
jmp 0x1c6a7