// File: /workspace/github_cpp_makefile_star2_O1/viniciu21[P]PetLolja/./src/PetFera.cpp
// Function: Petfera::cadastrarTratador()
void Petfera::cadastrarTratador()
{
	string nome = leString("Digite o nome do Funcionario \n");
	string cpf = leString("Digite o cpf do Funcionario \n");
	tipoFunca classificacao = Tratador;
	string celular = leString("Digite o celular do funcionario \n");
	string email = leString("Digite o email do funcionario \n");
	nivelDeSeguranca seguranca = leNivelDeSeguranca();

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

	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 %r12
pushq %rbx
subq $0x140, %rsp            # imm = 0x140
movq %rdi, %rbx
leaq -0x128(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x12c00(%rip), %rsi     # 0x2eb09
leaq 0x12c17(%rip), %rdx     # 0x2eb27
leaq -0x138(%rbp), %r14
movq %r14, %rdi
callq 0x1e03c
leaq -0x158(%rbp), %rdi
movq %r14, %rdx
callq 0x14260
movq -0x138(%rbp), %rdi
cmpq %r15, %rdi
je 0x1bf49
movq -0x128(%rbp), %rsi
incq %rsi
callq 0x41d0
leaq -0xa8(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x12bcd(%rip), %rsi     # 0x2eb28
leaq 0x12be3(%rip), %rdx     # 0x2eb45
leaq -0xb8(%rbp), %rdi
callq 0x1e03c
leaq -0xd8(%rbp), %rdi
leaq -0xb8(%rbp), %rdx
callq 0x14260
movq -0xb8(%rbp), %rdi
cmpq %r14, %rdi
je 0x1bf9c
movq -0xa8(%rbp), %rsi
incq %rsi
callq 0x41d0
movl $0x1, -0x28(%rbp)
leaq -0x88(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x12b91(%rip), %rsi     # 0x2eb46
leaq 0x12bab(%rip), %rdx     # 0x2eb67
leaq -0x98(%rbp), %rdi
callq 0x1e03c
leaq -0x118(%rbp), %r14
leaq -0x98(%rbp), %rdx
movq %r14, %rdi
callq 0x14260
movq -0x98(%rbp), %rdi
cmpq %r15, %rdi
je 0x1bff9
movq -0x88(%rbp), %rsi
incq %rsi
callq 0x41d0
leaq -0x68(%rbp), %r12
movq %r12, -0x10(%r12)
leaq 0x12b5f(%rip), %rsi     # 0x2eb68
leaq 0x12b77(%rip), %rdx     # 0x2eb87
leaq -0x78(%rbp), %rdi
callq 0x1e03c
leaq -0xf8(%rbp), %r15
leaq -0x78(%rbp), %rdx
movq %r15, %rdi
callq 0x14260
movq -0x78(%rbp), %rdi
cmpq %r12, %rdi
je 0x1c041
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x41d0
callq 0x1c67e
leaq -0x54(%rbp), %r10
movl %eax, (%r10)
movq 0x28(%rbx), %rax
subq 0x20(%rbx), %rax
sarq $0x4, %rax
leaq -0x160(%rbp), %rcx
movq %rax, (%rcx)
leaq -0x48(%rbp), %rdi
movq $0x0, -0x8(%rdi)
leaq -0x28(%rbp), %rax
leaq -0x50(%rbp), %rsi
leaq -0x21(%rbp), %rdx
leaq -0x158(%rbp), %r8
leaq -0xd8(%rbp), %r9
pushq %r10
pushq %r15
pushq %r14
pushq %rax
callq 0x27d22
addq $0x20, %rsp
movq -0x50(%rbp), %rax
movq -0x48(%rbp), %r14
movq %rax, -0x38(%rbp)
movq %r14, -0x30(%rbp)
testq %r14, %r14
je 0x1c0c5
movq 0x1ef13(%rip), %rax     # 0x3afc8
cmpb $0x0, (%rax)
je 0x1c0c0
incl 0x8(%r14)
jmp 0x1c0c5
lock
incl 0x8(%r14)
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x108d4
movq -0x30(%rbp), %rdi
testq %rdi, %rdi
je 0x1c0df
callq 0x4eac
incl 0x38(%rbx)
testq %r14, %r14
je 0x1c0ef
movq %r14, %rdi
callq 0x4eac
leaq -0xe8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c10e
movq -0xe8(%rbp), %rsi
incq %rsi
callq 0x41d0
leaq -0x108(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c12d
movq -0x108(%rbp), %rsi
incq %rsi
callq 0x41d0
leaq -0xc8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c14c
movq -0xc8(%rbp), %rsi
incq %rsi
callq 0x41d0
leaq -0x148(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c16b
movq -0x148(%rbp), %rsi
incq %rsi
callq 0x41d0
addq $0x140, %rsp            # imm = 0x140
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq -0x30(%rbp), %rdi
testq %rdi, %rdi
je 0x1c18c
callq 0x4eac
testq %r14, %r14
je 0x1c1a0
movq %r14, %rdi
callq 0x4eac
jmp 0x1c1a0
jmp 0x1c19d
movq %rax, %rbx
leaq -0xe8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c1d6
movq -0xe8(%rbp), %rsi
jmp 0x1c1c9
movq %rax, %rbx
movq -0x78(%rbp), %rdi
cmpq %r12, %rdi
je 0x1c1d6
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x41d0
jmp 0x1c1d6
movq %rax, %rbx
leaq -0x108(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c212
movq -0x108(%rbp), %rsi
incq %rsi
callq 0x41d0
jmp 0x1c212
movq %rax, %rbx
movq -0x98(%rbp), %rdi
cmpq %r15, %rdi
je 0x1c212
movq -0x88(%rbp), %rsi
jmp 0x1c1ed
movq %rax, %rbx
leaq -0xc8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c24e
movq -0xc8(%rbp), %rsi
incq %rsi
callq 0x41d0
jmp 0x1c24e
movq %rax, %rbx
movq -0xb8(%rbp), %rdi
cmpq %r14, %rdi
je 0x1c24e
movq -0xa8(%rbp), %rsi
jmp 0x1c229
movq %rax, %rbx
leaq -0x148(%rbp), %r15
movq -0x10(%r15), %rdi
cmpq %r15, %rdi
je 0x1c269
movq (%r15), %rsi
incq %rsi
callq 0x41d0
movq %rbx, %rdi
callq 0x42f0
movq %rax, %rbx
movq -0x138(%rbp), %rdi
jmp 0x1c259
nop