// File: /workspace/github_cpp_makefile_star2_O1/brashi[P]PetFera/src/./mapeador_menu.cpp
// Function: MapeadorMenu::MapeadorMenu()
MapeadorMenu::MapeadorMenu() {
    escolhas['A'] = [](shared_ptr<Petshop> ps) {
        ps->listarAnimais();
        return true;
    };
    escolhas['B'] = [](shared_ptr<Petshop> ps) {
        ps->criarAnimal();
        return true;
    };
    escolhas['C'] = [](shared_ptr<Petshop> ps) {
        ps->atualizarAnimal();
        return true;
    };
    escolhas['D'] = [](shared_ptr<Petshop> ps) {
        ps->excluirAnimal();
        return true;
    };

    escolhas['E'] = [](shared_ptr<Petshop> ps) {
        ps->listarVeterinarios();
        return true;
    };
    escolhas['F'] = [](shared_ptr<Petshop> ps) {
        ps->criarVeterinario();
        return true;
    };
    escolhas['G'] = [](shared_ptr<Petshop> ps) {
        ps->atualizarVeterinario();
        return true;
    };
    escolhas['H'] = [](shared_ptr<Petshop> ps) {
        ps->excluirVeterinario();
        return true;
    };

    escolhas['I'] = [](shared_ptr<Petshop> ps) {
        ps->listarTratadores();
        return true;
    };
    escolhas['J'] = [](shared_ptr<Petshop> ps) {
        ps->criarTratador();
        return true;
    };
    escolhas['K'] = [](shared_ptr<Petshop> ps) {
        ps->atualizarTratador();
        return true;
    };
    escolhas['L'] = [](shared_ptr<Petshop> ps) {
        ps->excluirTratador();
        return true;
    };

    escolhas['X'] = [](shared_ptr<Petshop> ps) {
        cout << "Saindo do programa..." << endl;
        return false;
    };

    escolhas['T'] = [](shared_ptr<Petshop> ps) {
        #ifdef DEBUG
            cout << "Arquivos de testes carregado !" << endl;
            return true;
        #else
            cout << "Informe uma opção válida para realizar uma ação" << endl;
            return true;
        #endif
    };
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x38, %rsp
movq %rdi, %rbx
leaq 0x8(%rdi), %rax
movl $0x0, 0x8(%rdi)
xorl %ecx, %ecx
movq %rcx, 0x10(%rdi)
movq %rax, 0x18(%rdi)
movq %rax, 0x20(%rdi)
movq %rcx, 0x28(%rdi)
leaq 0xf(%rsp), %rsi
movb $0x41, (%rsi)
callq 0xcf32
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
leaq 0x5f7(%rip), %rdx       # 0xd9d6
movq %rdx, 0x28(%rsp)
leaq 0x633(%rip), %rsi       # 0xda1e
movq %rsi, 0x20(%rsp)
movups (%rax), %xmm1
movaps %xmm1, 0x10(%rsp)
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x20(%rsp)
movq %rsi, 0x10(%rax)
movq 0x18(%rax), %rsi
movq %rsi, 0x28(%rsp)
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0xd429
leaq 0x10(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
leaq 0xf(%rsp), %rsi
movb $0x42, (%rsi)
movq %rbx, %rdi
callq 0xcf32
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
leaq 0x5ee(%rip), %rdx       # 0xda36
movq %rdx, 0x28(%rsp)
leaq 0x628(%rip), %rsi       # 0xda7c
movq %rsi, 0x20(%rsp)
movups (%rax), %xmm1
movaps %xmm1, 0x10(%rsp)
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x20(%rsp)
movq %rsi, 0x10(%rax)
movq 0x18(%rax), %rsi
movq %rsi, 0x28(%rsp)
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0xd492
leaq 0x10(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
leaq 0xf(%rsp), %rsi
movb $0x43, (%rsi)
movq %rbx, %rdi
callq 0xcf32
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
leaq 0x5e3(%rip), %rdx       # 0xda94
movq %rdx, 0x28(%rsp)
leaq 0x61d(%rip), %rsi       # 0xdada
movq %rsi, 0x20(%rsp)
movups (%rax), %xmm1
movaps %xmm1, 0x10(%rsp)
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x20(%rsp)
movq %rsi, 0x10(%rax)
movq 0x18(%rax), %rsi
movq %rsi, 0x28(%rsp)
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0xd4fb
leaq 0x10(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
leaq 0xf(%rsp), %rsi
movb $0x44, (%rsi)
movq %rbx, %rdi
callq 0xcf32
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
leaq 0x5d8(%rip), %rdx       # 0xdaf2
movq %rdx, 0x28(%rsp)
leaq 0x612(%rip), %rsi       # 0xdb38
movq %rsi, 0x20(%rsp)
movups (%rax), %xmm1
movaps %xmm1, 0x10(%rsp)
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x20(%rsp)
movq %rsi, 0x10(%rax)
movq 0x18(%rax), %rsi
movq %rsi, 0x28(%rsp)
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0xd564
leaq 0x10(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
leaq 0xf(%rsp), %rsi
movb $0x45, (%rsi)
movq %rbx, %rdi
callq 0xcf32
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
leaq 0x5cd(%rip), %rdx       # 0xdb50
movq %rdx, 0x28(%rsp)
leaq 0x607(%rip), %rsi       # 0xdb96
movq %rsi, 0x20(%rsp)
movups (%rax), %xmm1
movaps %xmm1, 0x10(%rsp)
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x20(%rsp)
movq %rsi, 0x10(%rax)
movq 0x18(%rax), %rsi
movq %rsi, 0x28(%rsp)
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0xd5cd
leaq 0x10(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
leaq 0xf(%rsp), %rsi
movb $0x46, (%rsi)
movq %rbx, %rdi
callq 0xcf32
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
leaq 0x5c2(%rip), %rdx       # 0xdbae
movq %rdx, 0x28(%rsp)
leaq 0x5fc(%rip), %rsi       # 0xdbf4
movq %rsi, 0x20(%rsp)
movups (%rax), %xmm1
movaps %xmm1, 0x10(%rsp)
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x20(%rsp)
movq %rsi, 0x10(%rax)
movq 0x18(%rax), %rsi
movq %rsi, 0x28(%rsp)
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0xd636
leaq 0x10(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
leaq 0xf(%rsp), %rsi
movb $0x47, (%rsi)
movq %rbx, %rdi
callq 0xcf32
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
leaq 0x5b7(%rip), %rdx       # 0xdc0c
movq %rdx, 0x28(%rsp)
leaq 0x5f1(%rip), %rsi       # 0xdc52
movq %rsi, 0x20(%rsp)
movups (%rax), %xmm1
movaps %xmm1, 0x10(%rsp)
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x20(%rsp)
movq %rsi, 0x10(%rax)
movq 0x18(%rax), %rsi
movq %rsi, 0x28(%rsp)
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0xd69f
leaq 0x10(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
leaq 0xf(%rsp), %rsi
movb $0x48, (%rsi)
movq %rbx, %rdi
callq 0xcf32
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
leaq 0x5ac(%rip), %rdx       # 0xdc6a
movq %rdx, 0x28(%rsp)
leaq 0x5e6(%rip), %rsi       # 0xdcb0
movq %rsi, 0x20(%rsp)
movups (%rax), %xmm1
movaps %xmm1, 0x10(%rsp)
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x20(%rsp)
movq %rsi, 0x10(%rax)
movq 0x18(%rax), %rsi
movq %rsi, 0x28(%rsp)
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0xd708
leaq 0x10(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
leaq 0xf(%rsp), %rsi
movb $0x49, (%rsi)
movq %rbx, %rdi
callq 0xcf32
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
leaq 0x5a1(%rip), %rdx       # 0xdcc8
movq %rdx, 0x28(%rsp)
leaq 0x5db(%rip), %rsi       # 0xdd0e
movq %rsi, 0x20(%rsp)
movups (%rax), %xmm1
movaps %xmm1, 0x10(%rsp)
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x20(%rsp)
movq %rsi, 0x10(%rax)
movq 0x18(%rax), %rsi
movq %rsi, 0x28(%rsp)
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0xd771
leaq 0x10(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
leaq 0xf(%rsp), %rsi
movb $0x4a, (%rsi)
movq %rbx, %rdi
callq 0xcf32
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
leaq 0x596(%rip), %rdx       # 0xdd26
movq %rdx, 0x28(%rsp)
leaq 0x5d0(%rip), %rsi       # 0xdd6c
movq %rsi, 0x20(%rsp)
movups (%rax), %xmm1
movaps %xmm1, 0x10(%rsp)
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x20(%rsp)
movq %rsi, 0x10(%rax)
movq 0x18(%rax), %rsi
movq %rsi, 0x28(%rsp)
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0xd7da
leaq 0x10(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
leaq 0xf(%rsp), %rsi
movb $0x4b, (%rsi)
movq %rbx, %rdi
callq 0xcf32
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
leaq 0x58b(%rip), %rdx       # 0xdd84
movq %rdx, 0x28(%rsp)
leaq 0x5c5(%rip), %rsi       # 0xddca
movq %rsi, 0x20(%rsp)
movups (%rax), %xmm1
movaps %xmm1, 0x10(%rsp)
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x20(%rsp)
movq %rsi, 0x10(%rax)
movq 0x18(%rax), %rsi
movq %rsi, 0x28(%rsp)
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0xd843
leaq 0x10(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
leaq 0xf(%rsp), %rsi
movb $0x4c, (%rsi)
movq %rbx, %rdi
callq 0xcf32
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
leaq 0x580(%rip), %rdx       # 0xdde2
movq %rdx, 0x28(%rsp)
leaq 0x5ba(%rip), %rsi       # 0xde28
movq %rsi, 0x20(%rsp)
movups (%rax), %xmm1
movaps %xmm1, 0x10(%rsp)
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x20(%rsp)
movq %rsi, 0x10(%rax)
movq 0x18(%rax), %rsi
movq %rsi, 0x28(%rsp)
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0xd8ac
leaq 0x10(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
leaq 0xf(%rsp), %rsi
movb $0x58, (%rsi)
movq %rbx, %rdi
callq 0xcf32
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
leaq 0x575(%rip), %rdx       # 0xde40
movq %rdx, 0x28(%rsp)
leaq 0x5ed(%rip), %rsi       # 0xdec4
movq %rsi, 0x20(%rsp)
movups (%rax), %xmm1
movaps %xmm1, 0x10(%rsp)
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x20(%rsp)
movq %rsi, 0x10(%rax)
movq 0x18(%rax), %rsi
movq %rsi, 0x28(%rsp)
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0xd915
leaq 0x10(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
leaq 0xf(%rsp), %rsi
movb $0x54, (%rsi)
movq %rbx, %rdi
callq 0xcf32
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
leaq 0x5a8(%rip), %rdx       # 0xdedc
movq %rdx, 0x28(%rsp)
leaq 0x620(%rip), %rsi       # 0xdf60
movq %rsi, 0x20(%rsp)
movups (%rax), %xmm1
movaps %xmm1, 0x10(%rsp)
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x20(%rsp)
movq %rsi, 0x10(%rax)
movq 0x18(%rax), %rsi
movq %rsi, 0x28(%rsp)
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0xd97e
leaq 0x10(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
addq $0x38, %rsp
popq %rbx
popq %r14
retq
jmp 0xd9a0
jmp 0xd9a0
jmp 0xd9a0
jmp 0xd9a0
jmp 0xd9a0
jmp 0xd9a0
jmp 0xd9a0
jmp 0xd9a0
jmp 0xd9a0
jmp 0xd9a0
jmp 0xd9a0
jmp 0xd9a0
jmp 0xd9a0
movq %rax, %rdi
callq 0xadcc
jmp 0xd9c2
jmp 0xd9c2
jmp 0xd9c2
jmp 0xd9c2
jmp 0xd9c2
jmp 0xd9c2
jmp 0xd9c2
jmp 0xd9c2
jmp 0xd9c2
jmp 0xd9c2
jmp 0xd9c2
jmp 0xd9c2
jmp 0xd9c2
movq %rax, %r14
movq %rbx, %rdi
callq 0xd10e
movq %r14, %rdi
callq 0x6460
nop