// File: /workspace/github_cpp_makefile_star2_O2/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
andl $0x0, 0x8(%rdi)
andq $0x0, 0x10(%rdi)
movq %rax, 0x18(%rdi)
movq %rax, 0x20(%rdi)
andq $0x0, 0x28(%rdi)
leaq 0xf(%rsp), %rsi
movb $0x41, (%rsi)
callq 0xa0c2
movups (%rax), %xmm0
leaq 0x10(%rsp), %rdi
movaps %xmm0, (%rdi)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x10(%rdi)
leaq 0x47d(%rip), %rcx       # 0xaac6
movq %rcx, 0x10(%rax)
movq 0x18(%rax), %rcx
movq %rcx, 0x18(%rdi)
leaq 0x41a(%rip), %rcx       # 0xaa76
movq %rcx, 0x18(%rax)
callq 0x844a
leaq 0xf(%rsp), %rsi
movb $0x42, (%rsi)
movq %rbx, %rdi
callq 0xa0c2
movups (%rax), %xmm0
leaq 0x10(%rsp), %rdi
movaps %xmm0, (%rdi)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x10(%rdi)
leaq 0x497(%rip), %rcx       # 0xab2c
movq %rcx, 0x10(%rax)
movq 0x18(%rax), %rcx
movq %rcx, 0x18(%rdi)
leaq 0x436(%rip), %rcx       # 0xaade
movq %rcx, 0x18(%rax)
callq 0x844a
leaq 0xf(%rsp), %rsi
movb $0x43, (%rsi)
movq %rbx, %rdi
callq 0xa0c2
movups (%rax), %xmm0
leaq 0x10(%rsp), %rdi
movaps %xmm0, (%rdi)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x10(%rdi)
leaq 0x4b1(%rip), %rcx       # 0xab92
movq %rcx, 0x10(%rax)
movq 0x18(%rax), %rcx
movq %rcx, 0x18(%rdi)
leaq 0x450(%rip), %rcx       # 0xab44
movq %rcx, 0x18(%rax)
callq 0x844a
leaq 0xf(%rsp), %rsi
movb $0x44, (%rsi)
movq %rbx, %rdi
callq 0xa0c2
movups (%rax), %xmm0
leaq 0x10(%rsp), %rdi
movaps %xmm0, (%rdi)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x10(%rdi)
leaq 0x4cb(%rip), %rcx       # 0xabf8
movq %rcx, 0x10(%rax)
movq 0x18(%rax), %rcx
movq %rcx, 0x18(%rdi)
leaq 0x46a(%rip), %rcx       # 0xabaa
movq %rcx, 0x18(%rax)
callq 0x844a
leaq 0xf(%rsp), %rsi
movb $0x45, (%rsi)
movq %rbx, %rdi
callq 0xa0c2
movups (%rax), %xmm0
leaq 0x10(%rsp), %rdi
movaps %xmm0, (%rdi)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x10(%rdi)
leaq 0x4e5(%rip), %rcx       # 0xac5e
movq %rcx, 0x10(%rax)
movq 0x18(%rax), %rcx
movq %rcx, 0x18(%rdi)
leaq 0x484(%rip), %rcx       # 0xac10
movq %rcx, 0x18(%rax)
callq 0x844a
leaq 0xf(%rsp), %rsi
movb $0x46, (%rsi)
movq %rbx, %rdi
callq 0xa0c2
movups (%rax), %xmm0
leaq 0x10(%rsp), %rdi
movaps %xmm0, (%rdi)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x10(%rdi)
leaq 0x4ff(%rip), %rcx       # 0xacc4
movq %rcx, 0x10(%rax)
movq 0x18(%rax), %rcx
movq %rcx, 0x18(%rdi)
leaq 0x49e(%rip), %rcx       # 0xac76
movq %rcx, 0x18(%rax)
callq 0x844a
leaq 0xf(%rsp), %rsi
movb $0x47, (%rsi)
movq %rbx, %rdi
callq 0xa0c2
movups (%rax), %xmm0
leaq 0x10(%rsp), %rdi
movaps %xmm0, (%rdi)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x10(%rdi)
leaq 0x519(%rip), %rcx       # 0xad2a
movq %rcx, 0x10(%rax)
movq 0x18(%rax), %rcx
movq %rcx, 0x18(%rdi)
leaq 0x4b8(%rip), %rcx       # 0xacdc
movq %rcx, 0x18(%rax)
callq 0x844a
leaq 0xf(%rsp), %rsi
movb $0x48, (%rsi)
movq %rbx, %rdi
callq 0xa0c2
movups (%rax), %xmm0
leaq 0x10(%rsp), %rdi
movaps %xmm0, (%rdi)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x10(%rdi)
leaq 0x533(%rip), %rcx       # 0xad90
movq %rcx, 0x10(%rax)
movq 0x18(%rax), %rcx
movq %rcx, 0x18(%rdi)
leaq 0x4d2(%rip), %rcx       # 0xad42
movq %rcx, 0x18(%rax)
callq 0x844a
leaq 0xf(%rsp), %rsi
movb $0x49, (%rsi)
movq %rbx, %rdi
callq 0xa0c2
movups (%rax), %xmm0
leaq 0x10(%rsp), %rdi
movaps %xmm0, (%rdi)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x10(%rdi)
leaq 0x54d(%rip), %rcx       # 0xadf6
movq %rcx, 0x10(%rax)
movq 0x18(%rax), %rcx
movq %rcx, 0x18(%rdi)
leaq 0x4ec(%rip), %rcx       # 0xada8
movq %rcx, 0x18(%rax)
callq 0x844a
leaq 0xf(%rsp), %rsi
movb $0x4a, (%rsi)
movq %rbx, %rdi
callq 0xa0c2
movups (%rax), %xmm0
leaq 0x10(%rsp), %rdi
movaps %xmm0, (%rdi)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x10(%rdi)
leaq 0x567(%rip), %rcx       # 0xae5c
movq %rcx, 0x10(%rax)
movq 0x18(%rax), %rcx
movq %rcx, 0x18(%rdi)
leaq 0x506(%rip), %rcx       # 0xae0e
movq %rcx, 0x18(%rax)
callq 0x844a
leaq 0xf(%rsp), %rsi
movb $0x4b, (%rsi)
movq %rbx, %rdi
callq 0xa0c2
movups (%rax), %xmm0
leaq 0x10(%rsp), %rdi
movaps %xmm0, (%rdi)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x10(%rdi)
leaq 0x581(%rip), %rcx       # 0xaec2
movq %rcx, 0x10(%rax)
movq 0x18(%rax), %rcx
movq %rcx, 0x18(%rdi)
leaq 0x520(%rip), %rcx       # 0xae74
movq %rcx, 0x18(%rax)
callq 0x844a
leaq 0xf(%rsp), %rsi
movb $0x4c, (%rsi)
movq %rbx, %rdi
callq 0xa0c2
movups (%rax), %xmm0
leaq 0x10(%rsp), %rdi
movaps %xmm0, (%rdi)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x10(%rdi)
leaq 0x59b(%rip), %rcx       # 0xaf28
movq %rcx, 0x10(%rax)
movq 0x18(%rax), %rcx
movq %rcx, 0x18(%rdi)
leaq 0x53a(%rip), %rcx       # 0xaeda
movq %rcx, 0x18(%rax)
callq 0x844a
leaq 0xf(%rsp), %rsi
movb $0x58, (%rsi)
movq %rbx, %rdi
callq 0xa0c2
movups (%rax), %xmm0
leaq 0x10(%rsp), %rdi
movaps %xmm0, (%rdi)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x10(%rdi)
leaq 0x5c3(%rip), %rcx       # 0xaf9c
movq %rcx, 0x10(%rax)
movq 0x18(%rax), %rcx
movq %rcx, 0x18(%rdi)
leaq 0x554(%rip), %rcx       # 0xaf40
movq %rcx, 0x18(%rax)
callq 0x844a
leaq 0xf(%rsp), %rsi
movb $0x54, (%rsi)
movq %rbx, %rdi
callq 0xa0c2
movups (%rax), %xmm0
leaq 0x10(%rsp), %rdi
movaps %xmm0, (%rdi)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x10(%rdi)
leaq 0x5eb(%rip), %rcx       # 0xb010
movq %rcx, 0x10(%rax)
movq 0x18(%rax), %rcx
movq %rcx, 0x18(%rdi)
leaq 0x57c(%rip), %rcx       # 0xafb4
movq %rcx, 0x18(%rax)
callq 0x844a
addq $0x38, %rsp
popq %rbx
popq %r14
retq
jmp 0xaa63
jmp 0xaa63
jmp 0xaa63
jmp 0xaa63
jmp 0xaa63
jmp 0xaa63
jmp 0xaa63
jmp 0xaa63
jmp 0xaa63
jmp 0xaa63
jmp 0xaa63
jmp 0xaa63
jmp 0xaa63
movq %rax, %r14
movq %rbx, %rdi
callq 0xa316
movq %r14, %rdi
callq 0x5430