// File: /workspace/github_cpp_makefile_star2_O3/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 -0x120(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x12b8c(%rip), %rsi     # 0x2eb09
leaq 0x12ba3(%rip), %rdx     # 0x2eb27
leaq -0x130(%rbp), %r14
movq %r14, %rdi
callq 0x1e0e2
leaq -0x150(%rbp), %rdi
movq %r14, %rdx
callq 0x142ec
movq -0x130(%rbp), %rdi
cmpq %r15, %rdi
je 0x1bfbd
movq -0x120(%rbp), %rsi
incq %rsi
callq 0x41d0
leaq -0xa0(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x12b59(%rip), %rsi     # 0x2eb28
leaq 0x12b6f(%rip), %rdx     # 0x2eb45
leaq -0xb0(%rbp), %rdi
callq 0x1e0e2
leaq -0xd0(%rbp), %rdi
leaq -0xb0(%rbp), %rdx
callq 0x142ec
movq -0xb0(%rbp), %rdi
cmpq %r14, %rdi
je 0x1c010
movq -0xa0(%rbp), %rsi
incq %rsi
callq 0x41d0
movl $0x1, -0x28(%rbp)
leaq -0x80(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x12b20(%rip), %rsi     # 0x2eb46
leaq 0x12b3a(%rip), %rdx     # 0x2eb67
leaq -0x90(%rbp), %rdi
callq 0x1e0e2
leaq -0x110(%rbp), %r14
leaq -0x90(%rbp), %rdx
movq %r14, %rdi
callq 0x142ec
movq -0x90(%rbp), %rdi
cmpq %r15, %rdi
je 0x1c067
movq -0x80(%rbp), %rsi
incq %rsi
callq 0x41d0
leaq -0x60(%rbp), %r12
movq %r12, -0x10(%r12)
leaq 0x12af1(%rip), %rsi     # 0x2eb68
leaq 0x12b09(%rip), %rdx     # 0x2eb87
leaq -0x70(%rbp), %rdi
callq 0x1e0e2
leaq -0xf0(%rbp), %r15
leaq -0x70(%rbp), %rdx
movq %r15, %rdi
callq 0x142ec
movq -0x70(%rbp), %rdi
cmpq %r12, %rdi
je 0x1c0af
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x41d0
callq 0x1c6e8
leaq -0x4c(%rbp), %r10
movl %eax, (%r10)
movq 0x28(%rbx), %rax
subq 0x20(%rbx), %rax
sarq $0x4, %rax
leaq -0x158(%rbp), %rcx
movq %rax, (%rcx)
leaq -0x40(%rbp), %rdi
movq $0x0, -0x8(%rdi)
leaq -0x28(%rbp), %rax
leaq -0x48(%rbp), %rsi
leaq -0x21(%rbp), %rdx
leaq -0x150(%rbp), %r8
leaq -0xd0(%rbp), %r9
pushq %r10
pushq %r15
pushq %r14
pushq %rax
callq 0x27d40
addq $0x20, %rsp
movq -0x48(%rbp), %rax
movq -0x40(%rbp), %r14
movq %rax, -0x38(%rbp)
movq %r14, -0x30(%rbp)
testq %r14, %r14
je 0x1c133
movq 0x1eea5(%rip), %rax     # 0x3afc8
cmpb $0x0, (%rax)
je 0x1c12e
incl 0x8(%r14)
jmp 0x1c133
lock
incl 0x8(%r14)
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0x1091c
movq -0x30(%rbp), %rdi
testq %rdi, %rdi
je 0x1c14d
callq 0x4eac
incl 0x38(%rbx)
testq %r14, %r14
je 0x1c15d
movq %r14, %rdi
callq 0x4eac
leaq -0xe0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c17c
movq -0xe0(%rbp), %rsi
incq %rsi
callq 0x41d0
leaq -0x100(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c19b
movq -0x100(%rbp), %rsi
incq %rsi
callq 0x41d0
leaq -0xc0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c1ba
movq -0xc0(%rbp), %rsi
incq %rsi
callq 0x41d0
leaq -0x140(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c1d9
movq -0x140(%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 0x1c1fa
callq 0x4eac
testq %r14, %r14
je 0x1c20e
movq %r14, %rdi
callq 0x4eac
jmp 0x1c20e
jmp 0x1c20b
movq %rax, %rbx
leaq -0xe0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c244
movq -0xe0(%rbp), %rsi
jmp 0x1c237
movq %rax, %rbx
movq -0x70(%rbp), %rdi
cmpq %r12, %rdi
je 0x1c244
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x41d0
jmp 0x1c244
movq %rax, %rbx
leaq -0x100(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c27d
movq -0x100(%rbp), %rsi
incq %rsi
callq 0x41d0
jmp 0x1c27d
movq %rax, %rbx
movq -0x90(%rbp), %rdi
cmpq %r15, %rdi
je 0x1c27d
movq -0x80(%rbp), %rsi
jmp 0x1c25b
movq %rax, %rbx
leaq -0xc0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1c2b9
movq -0xc0(%rbp), %rsi
incq %rsi
callq 0x41d0
jmp 0x1c2b9
movq %rax, %rbx
movq -0xb0(%rbp), %rdi
cmpq %r14, %rdi
je 0x1c2b9
movq -0xa0(%rbp), %rsi
jmp 0x1c294
movq %rax, %rbx
leaq -0x140(%rbp), %r15
movq -0x10(%r15), %rdi
cmpq %r15, %rdi
je 0x1c2d4
movq (%r15), %rsi
incq %rsi
callq 0x41d0
movq %rbx, %rdi
callq 0x42f0
movq %rax, %rbx
movq -0x130(%rbp), %rdi
jmp 0x1c2c4