// File: 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 %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x48(%rbp)
movq %rdi, %rax
movq %rax, -0x50(%rbp)
callq 0x1a660
movq -0x48(%rbp), %rdi
movb $0x41, -0xa(%rbp)
leaq -0xa(%rbp), %rsi
callq 0x14360
movq %rax, -0x40(%rbp)
jmp 0x1660a
movq -0x40(%rbp), %rdi
leaq -0x9(%rbp), %rsi
callq 0x16840
movq -0x50(%rbp), %rdi
movb $0x42, -0x1e(%rbp)
leaq -0x1e(%rbp), %rsi
callq 0x14360
movq %rax, -0x58(%rbp)
jmp 0x1662e
movq -0x58(%rbp), %rdi
leaq -0x1d(%rbp), %rsi
callq 0x16890
movq -0x50(%rbp), %rdi
movb $0x43, -0x20(%rbp)
leaq -0x20(%rbp), %rsi
callq 0x14360
movq %rax, -0x60(%rbp)
jmp 0x16652
movq -0x60(%rbp), %rdi
leaq -0x1f(%rbp), %rsi
callq 0x168e0
movq -0x50(%rbp), %rdi
movb $0x44, -0x22(%rbp)
leaq -0x22(%rbp), %rsi
callq 0x14360
movq %rax, -0x68(%rbp)
jmp 0x16676
movq -0x68(%rbp), %rdi
leaq -0x21(%rbp), %rsi
callq 0x16930
movq -0x50(%rbp), %rdi
movb $0x45, -0x24(%rbp)
leaq -0x24(%rbp), %rsi
callq 0x14360
movq %rax, -0x70(%rbp)
jmp 0x1669a
movq -0x70(%rbp), %rdi
leaq -0x23(%rbp), %rsi
callq 0x16980
movq -0x50(%rbp), %rdi
movb $0x46, -0x26(%rbp)
leaq -0x26(%rbp), %rsi
callq 0x14360
movq %rax, -0x78(%rbp)
jmp 0x166be
movq -0x78(%rbp), %rdi
leaq -0x25(%rbp), %rsi
callq 0x169d0
movq -0x50(%rbp), %rdi
movb $0x47, -0x28(%rbp)
leaq -0x28(%rbp), %rsi
callq 0x14360
movq %rax, -0x80(%rbp)
jmp 0x166e2
movq -0x80(%rbp), %rdi
leaq -0x27(%rbp), %rsi
callq 0x16a20
movq -0x50(%rbp), %rdi
movb $0x48, -0x2a(%rbp)
leaq -0x2a(%rbp), %rsi
callq 0x14360
movq %rax, -0x88(%rbp)
jmp 0x16709
movq -0x88(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x16a70
movq -0x50(%rbp), %rdi
movb $0x49, -0x2c(%rbp)
leaq -0x2c(%rbp), %rsi
callq 0x14360
movq %rax, -0x90(%rbp)
jmp 0x16733
movq -0x90(%rbp), %rdi
leaq -0x2b(%rbp), %rsi
callq 0x16ac0
movq -0x50(%rbp), %rdi
movb $0x4a, -0x2e(%rbp)
leaq -0x2e(%rbp), %rsi
callq 0x14360
movq %rax, -0x98(%rbp)
jmp 0x1675d
movq -0x98(%rbp), %rdi
leaq -0x2d(%rbp), %rsi
callq 0x16b10
movq -0x50(%rbp), %rdi
movb $0x4b, -0x30(%rbp)
leaq -0x30(%rbp), %rsi
callq 0x14360
movq %rax, -0xa0(%rbp)
jmp 0x16787
movq -0xa0(%rbp), %rdi
leaq -0x2f(%rbp), %rsi
callq 0x16b60
movq -0x50(%rbp), %rdi
movb $0x4c, -0x32(%rbp)
leaq -0x32(%rbp), %rsi
callq 0x14360
movq %rax, -0xa8(%rbp)
jmp 0x167b1
movq -0xa8(%rbp), %rdi
leaq -0x31(%rbp), %rsi
callq 0x16bb0
movq -0x50(%rbp), %rdi
movb $0x58, -0x34(%rbp)
leaq -0x34(%rbp), %rsi
callq 0x14360
movq %rax, -0xb0(%rbp)
jmp 0x167db
movq -0xb0(%rbp), %rdi
leaq -0x33(%rbp), %rsi
callq 0x16c00
movq -0x50(%rbp), %rdi
movb $0x54, -0x36(%rbp)
leaq -0x36(%rbp), %rsi
callq 0x14360
movq %rax, -0xb8(%rbp)
jmp 0x16805
movq -0xb8(%rbp), %rdi
leaq -0x35(%rbp), %rsi
callq 0x16c50
addq $0xc0, %rsp
popq %rbp
retq
movq -0x48(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
callq 0x15200
movq -0x18(%rbp), %rdi
callq 0x6590
nopl (%rax)