// File: /workspace/github_cpp_makefile_star2_O3/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 0xbe72
movups (%rax), %xmm0
movaps %xmm0, 0x10(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x20(%rsp)
leaq 0x55e(%rip), %rdx       # 0xc884
movq %rdx, 0x10(%rax)
movq 0x18(%rax), %rdx
movq %rdx, 0x28(%rsp)
leaq 0x502(%rip), %rdx       # 0xc83c
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0xc352
leaq 0x10(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
leaq 0xf(%rsp), %rsi
movb $0x42, (%rsi)
movq %rbx, %rdi
callq 0xbe72
movups (%rax), %xmm0
movaps %xmm0, 0x10(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x20(%rsp)
leaq 0x562(%rip), %rdx       # 0xc8e2
movq %rdx, 0x10(%rax)
movq 0x18(%rax), %rdx
movq %rdx, 0x28(%rsp)
leaq 0x508(%rip), %rdx       # 0xc89c
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0xc3ac
leaq 0x10(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
leaq 0xf(%rsp), %rsi
movb $0x43, (%rsi)
movq %rbx, %rdi
callq 0xbe72
movups (%rax), %xmm0
movaps %xmm0, 0x10(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x20(%rsp)
leaq 0x566(%rip), %rdx       # 0xc940
movq %rdx, 0x10(%rax)
movq 0x18(%rax), %rdx
movq %rdx, 0x28(%rsp)
leaq 0x50c(%rip), %rdx       # 0xc8fa
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0xc406
leaq 0x10(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
leaq 0xf(%rsp), %rsi
movb $0x44, (%rsi)
movq %rbx, %rdi
callq 0xbe72
movups (%rax), %xmm0
movaps %xmm0, 0x10(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x20(%rsp)
leaq 0x56a(%rip), %rdx       # 0xc99e
movq %rdx, 0x10(%rax)
movq 0x18(%rax), %rdx
movq %rdx, 0x28(%rsp)
leaq 0x510(%rip), %rdx       # 0xc958
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0xc460
leaq 0x10(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
leaq 0xf(%rsp), %rsi
movb $0x45, (%rsi)
movq %rbx, %rdi
callq 0xbe72
movups (%rax), %xmm0
movaps %xmm0, 0x10(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x20(%rsp)
leaq 0x56e(%rip), %rdx       # 0xc9fc
movq %rdx, 0x10(%rax)
movq 0x18(%rax), %rdx
movq %rdx, 0x28(%rsp)
leaq 0x514(%rip), %rdx       # 0xc9b6
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0xc4ba
leaq 0x10(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
leaq 0xf(%rsp), %rsi
movb $0x46, (%rsi)
movq %rbx, %rdi
callq 0xbe72
movups (%rax), %xmm0
movaps %xmm0, 0x10(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x20(%rsp)
leaq 0x572(%rip), %rdx       # 0xca5a
movq %rdx, 0x10(%rax)
movq 0x18(%rax), %rdx
movq %rdx, 0x28(%rsp)
leaq 0x518(%rip), %rdx       # 0xca14
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0xc514
leaq 0x10(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
leaq 0xf(%rsp), %rsi
movb $0x47, (%rsi)
movq %rbx, %rdi
callq 0xbe72
movups (%rax), %xmm0
movaps %xmm0, 0x10(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x20(%rsp)
leaq 0x576(%rip), %rdx       # 0xcab8
movq %rdx, 0x10(%rax)
movq 0x18(%rax), %rdx
movq %rdx, 0x28(%rsp)
leaq 0x51c(%rip), %rdx       # 0xca72
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0xc56e
leaq 0x10(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
leaq 0xf(%rsp), %rsi
movb $0x48, (%rsi)
movq %rbx, %rdi
callq 0xbe72
movups (%rax), %xmm0
movaps %xmm0, 0x10(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x20(%rsp)
leaq 0x57a(%rip), %rdx       # 0xcb16
movq %rdx, 0x10(%rax)
movq 0x18(%rax), %rdx
movq %rdx, 0x28(%rsp)
leaq 0x520(%rip), %rdx       # 0xcad0
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0xc5c8
leaq 0x10(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
leaq 0xf(%rsp), %rsi
movb $0x49, (%rsi)
movq %rbx, %rdi
callq 0xbe72
movups (%rax), %xmm0
movaps %xmm0, 0x10(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x20(%rsp)
leaq 0x57e(%rip), %rdx       # 0xcb74
movq %rdx, 0x10(%rax)
movq 0x18(%rax), %rdx
movq %rdx, 0x28(%rsp)
leaq 0x524(%rip), %rdx       # 0xcb2e
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0xc622
leaq 0x10(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
leaq 0xf(%rsp), %rsi
movb $0x4a, (%rsi)
movq %rbx, %rdi
callq 0xbe72
movups (%rax), %xmm0
movaps %xmm0, 0x10(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x20(%rsp)
leaq 0x582(%rip), %rdx       # 0xcbd2
movq %rdx, 0x10(%rax)
movq 0x18(%rax), %rdx
movq %rdx, 0x28(%rsp)
leaq 0x528(%rip), %rdx       # 0xcb8c
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0xc67c
leaq 0x10(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
leaq 0xf(%rsp), %rsi
movb $0x4b, (%rsi)
movq %rbx, %rdi
callq 0xbe72
movups (%rax), %xmm0
movaps %xmm0, 0x10(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x20(%rsp)
leaq 0x586(%rip), %rdx       # 0xcc30
movq %rdx, 0x10(%rax)
movq 0x18(%rax), %rdx
movq %rdx, 0x28(%rsp)
leaq 0x52c(%rip), %rdx       # 0xcbea
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0xc6d6
leaq 0x10(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
leaq 0xf(%rsp), %rsi
movb $0x4c, (%rsi)
movq %rbx, %rdi
callq 0xbe72
movups (%rax), %xmm0
movaps %xmm0, 0x10(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x20(%rsp)
leaq 0x58a(%rip), %rdx       # 0xcc8e
movq %rdx, 0x10(%rax)
movq 0x18(%rax), %rdx
movq %rdx, 0x28(%rsp)
leaq 0x530(%rip), %rdx       # 0xcc48
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0xc730
leaq 0x10(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
leaq 0xf(%rsp), %rsi
movb $0x58, (%rsi)
movq %rbx, %rdi
callq 0xbe72
movups (%rax), %xmm0
movaps %xmm0, 0x10(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x20(%rsp)
leaq 0x5cc(%rip), %rdx       # 0xcd2a
movq %rdx, 0x10(%rax)
movq 0x18(%rax), %rdx
movq %rdx, 0x28(%rsp)
leaq 0x534(%rip), %rdx       # 0xcca6
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0xc78a
leaq 0x10(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
leaq 0xf(%rsp), %rsi
movb $0x54, (%rsi)
movq %rbx, %rdi
callq 0xbe72
movups (%rax), %xmm0
movaps %xmm0, 0x10(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x20(%rsp)
leaq 0x60e(%rip), %rdx       # 0xcdc6
movq %rdx, 0x10(%rax)
movq 0x18(%rax), %rdx
movq %rdx, 0x28(%rsp)
leaq 0x576(%rip), %rdx       # 0xcd42
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0xc7e4
leaq 0x10(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
addq $0x38, %rsp
popq %rbx
popq %r14
retq
jmp 0xc806
jmp 0xc806
jmp 0xc806
jmp 0xc806
jmp 0xc806
jmp 0xc806
jmp 0xc806
jmp 0xc806
jmp 0xc806
jmp 0xc806
jmp 0xc806
jmp 0xc806
jmp 0xc806
movq %rax, %rdi
callq 0x9d78
jmp 0xc828
jmp 0xc828
jmp 0xc828
jmp 0xc828
jmp 0xc828
jmp 0xc828
jmp 0xc828
jmp 0xc828
jmp 0xc828
jmp 0xc828
jmp 0xc828
jmp 0xc828
jmp 0xc828
movq %rax, %r14
movq %rbx, %rdi
callq 0xc04a
movq %r14, %rdi
callq 0x5460
nop