// File: /workspace/github_cpp_makefile_star2_O3/brashi[P]PetFera/src/animal/mapeador_animal.cpp
// Function: MapeadorAnimal::MapeadorAnimal()
MapeadorAnimal::MapeadorAnimal() {
    aMap["aveD"] = []() { 
        return make_shared<AveDomestica>(); 
    };

    aMap["aveN"] = []() { 
        return make_shared<AveNativa>(); 
    };

    aMap["aveE"] = []() { 
        return make_shared<AveExotica>(); 
    };


    aMap["anfD"] = []() { 
        return make_shared<AnfibioDomestico>(); 
    };

    aMap["anfN"] = []() { 
        return make_shared<AnfibioNativo>(); 
    };

    aMap["anfE"] = []() { 
        return make_shared<AnfibioExotico>(); 
    };

    
    aMap["repD"] = []() { 
        return make_shared<ReptilDomestico>(); 
    };

    aMap["repN"] = []() { 
        return make_shared<ReptilNativo>(); 
    };

    aMap["repE"] = []() { 
        return make_shared<ReptilExotico>(); 
    };


    aMap["mamD"] = []() { 
        return make_shared<MamiferoDomestico>(); 
    };

    aMap["mamN"] = []() { 
        return make_shared<MamiferoNativo>(); 
    };

    aMap["mamE"] = []() { 
        return make_shared<MamiferoExotico>(); 
    };
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x40, %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 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x7faa(%rip), %rsi      # 0x2118b
leaq 0x7fa7(%rip), %rdx      # 0x2118f
movq %rsp, %rdi
callq 0x9d84
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9ca2
movups (%rax), %xmm0
movaps %xmm0, 0x20(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x30(%rsp)
leaq 0xce1(%rip), %rdx       # 0x19efa
movq %rdx, 0x10(%rax)
movq 0x18(%rax), %rdx
movq %rdx, 0x38(%rsp)
leaq 0xc3f(%rip), %rdx       # 0x19e6c
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0x19245
leaq 0x20(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x1925b
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x7f28(%rip), %rsi      # 0x21190
leaq 0x7f25(%rip), %rdx      # 0x21194
callq 0x9d84
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9ca2
movups (%rax), %xmm0
movaps %xmm0, 0x20(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x30(%rsp)
leaq 0xcb1(%rip), %rdx       # 0x19f4e
movq %rdx, 0x10(%rax)
movq 0x18(%rax), %rdx
movq %rdx, 0x38(%rsp)
leaq 0xc61(%rip), %rdx       # 0x19f12
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0x192c9
leaq 0x20(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x192df
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x7ea9(%rip), %rsi      # 0x21195
leaq 0x7ea6(%rip), %rdx      # 0x21199
callq 0x9d84
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9ca2
movups (%rax), %xmm0
movaps %xmm0, 0x20(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x30(%rsp)
leaq 0xc81(%rip), %rdx       # 0x19fa2
movq %rdx, 0x10(%rax)
movq 0x18(%rax), %rdx
movq %rdx, 0x38(%rsp)
leaq 0xc31(%rip), %rdx       # 0x19f66
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0x1934d
leaq 0x20(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x19363
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x7e2a(%rip), %rsi      # 0x2119a
leaq 0x7e27(%rip), %rdx      # 0x2119e
callq 0x9d84
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9ca2
movups (%rax), %xmm0
movaps %xmm0, 0x20(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x30(%rsp)
leaq 0xca3(%rip), %rdx       # 0x1a048
movq %rdx, 0x10(%rax)
movq 0x18(%rax), %rdx
movq %rdx, 0x38(%rsp)
leaq 0xc01(%rip), %rdx       # 0x19fba
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0x193d1
leaq 0x20(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x193e7
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x7dab(%rip), %rsi      # 0x2119f
leaq 0x7da8(%rip), %rdx      # 0x211a3
callq 0x9d84
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9ca2
movups (%rax), %xmm0
movaps %xmm0, 0x20(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x30(%rsp)
leaq 0xc73(%rip), %rdx       # 0x1a09c
movq %rdx, 0x10(%rax)
movq 0x18(%rax), %rdx
movq %rdx, 0x38(%rsp)
leaq 0xc23(%rip), %rdx       # 0x1a060
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0x19455
leaq 0x20(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x1946b
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x7d2c(%rip), %rsi      # 0x211a4
leaq 0x7d29(%rip), %rdx      # 0x211a8
callq 0x9d84
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9ca2
movups (%rax), %xmm0
movaps %xmm0, 0x20(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x30(%rsp)
leaq 0xc43(%rip), %rdx       # 0x1a0f0
movq %rdx, 0x10(%rax)
movq 0x18(%rax), %rdx
movq %rdx, 0x38(%rsp)
leaq 0xbf3(%rip), %rdx       # 0x1a0b4
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0x194d9
leaq 0x20(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x194ef
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x7cad(%rip), %rsi      # 0x211a9
leaq 0x7caa(%rip), %rdx      # 0x211ad
callq 0x9d84
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9ca2
movups (%rax), %xmm0
movaps %xmm0, 0x20(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x30(%rsp)
leaq 0xc65(%rip), %rdx       # 0x1a196
movq %rdx, 0x10(%rax)
movq 0x18(%rax), %rdx
movq %rdx, 0x38(%rsp)
leaq 0xbc3(%rip), %rdx       # 0x1a108
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0x1955d
leaq 0x20(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x19573
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x7c2e(%rip), %rsi      # 0x211ae
leaq 0x7c2b(%rip), %rdx      # 0x211b2
callq 0x9d84
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9ca2
movups (%rax), %xmm0
movaps %xmm0, 0x20(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x30(%rsp)
leaq 0xc35(%rip), %rdx       # 0x1a1ea
movq %rdx, 0x10(%rax)
movq 0x18(%rax), %rdx
movq %rdx, 0x38(%rsp)
leaq 0xbe5(%rip), %rdx       # 0x1a1ae
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0x195e1
leaq 0x20(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x195f7
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x7baf(%rip), %rsi      # 0x211b3
leaq 0x7bac(%rip), %rdx      # 0x211b7
callq 0x9d84
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9ca2
movups (%rax), %xmm0
movaps %xmm0, 0x20(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x30(%rsp)
leaq 0xc05(%rip), %rdx       # 0x1a23e
movq %rdx, 0x10(%rax)
movq 0x18(%rax), %rdx
movq %rdx, 0x38(%rsp)
leaq 0xbb5(%rip), %rdx       # 0x1a202
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0x19665
leaq 0x20(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x1967b
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x7b30(%rip), %rsi      # 0x211b8
leaq 0x7b2d(%rip), %rdx      # 0x211bc
callq 0x9d84
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9ca2
movups (%rax), %xmm0
movaps %xmm0, 0x20(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x30(%rsp)
leaq 0xc27(%rip), %rdx       # 0x1a2e4
movq %rdx, 0x10(%rax)
movq 0x18(%rax), %rdx
movq %rdx, 0x38(%rsp)
leaq 0xb85(%rip), %rdx       # 0x1a256
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0x196e9
leaq 0x20(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x196ff
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x7ab1(%rip), %rsi      # 0x211bd
leaq 0x7aae(%rip), %rdx      # 0x211c1
callq 0x9d84
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9ca2
movups (%rax), %xmm0
movaps %xmm0, 0x20(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x30(%rsp)
leaq 0xbf7(%rip), %rdx       # 0x1a338
movq %rdx, 0x10(%rax)
movq 0x18(%rax), %rdx
movq %rdx, 0x38(%rsp)
leaq 0xba7(%rip), %rdx       # 0x1a2fc
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0x1976d
leaq 0x20(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x19783
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x7a32(%rip), %rsi      # 0x211c2
leaq 0x7a2f(%rip), %rdx      # 0x211c6
callq 0x9d84
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9ca2
movups (%rax), %xmm0
movaps %xmm0, 0x20(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x30(%rsp)
leaq 0xbc7(%rip), %rdx       # 0x1a38c
movq %rdx, 0x10(%rax)
movq 0x18(%rax), %rdx
movq %rdx, 0x38(%rsp)
leaq 0xb77(%rip), %rdx       # 0x1a350
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0x197f1
leaq 0x20(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x19807
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
addq $0x40, %rsp
popq %rbx
popq %r14
popq %r15
retq
jmp 0x19827
jmp 0x19827
jmp 0x19827
jmp 0x19827
jmp 0x19827
jmp 0x19827
jmp 0x19827
jmp 0x19827
jmp 0x19827
jmp 0x19827
jmp 0x19827
movq %rax, %rdi
callq 0x9d78
jmp 0x1985b
jmp 0x19876
jmp 0x1985b
jmp 0x19876
jmp 0x1985b
jmp 0x19876
jmp 0x1985b
jmp 0x19876
jmp 0x1985b
jmp 0x19876
jmp 0x1985b
jmp 0x19876
jmp 0x1985b
jmp 0x19876
jmp 0x1985b
jmp 0x19876
jmp 0x1985b
jmp 0x19876
jmp 0x1985b
jmp 0x19876
jmp 0x1985b
jmp 0x19876
movq %rax, %r14
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x19879
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
jmp 0x19879
movq %rax, %r14
movq %rbx, %rdi
callq 0x9eb8
movq %r14, %rdi
callq 0x5460
nop