// File: /workspace/github_cpp_makefile_star2_O1/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 0x30(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x8a12(%rip), %rsi      # 0x2318b
leaq 0x8a0f(%rip), %rdx      # 0x2318f
leaq 0x20(%rsp), %rdi
callq 0xadd8
leaq 0x20(%rsp), %rsi
movq %rbx, %rdi
callq 0xacf6
xorps %xmm0, %xmm0
movaps %xmm0, (%rsp)
leaq 0xd51(%rip), %rdx       # 0x1b4f6
movq %rdx, 0x18(%rsp)
leaq 0xd93(%rip), %rsi       # 0x1b544
movq %rsi, 0x10(%rsp)
movups (%rax), %xmm1
movaps %xmm1, (%rsp)
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x10(%rsp)
movq %rsi, 0x10(%rax)
movq 0x18(%rax), %rsi
movq %rsi, 0x18(%rsp)
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0x1a7ec
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0x1a803
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x62b0
leaq 0x20(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x897e(%rip), %rsi      # 0x23190
leaq 0x897b(%rip), %rdx      # 0x23194
callq 0xadd8
leaq 0x20(%rsp), %rsi
movq %rbx, %rdi
callq 0xacf6
xorps %xmm0, %xmm0
movaps %xmm0, (%rsp)
leaq 0xd23(%rip), %rdx       # 0x1b55c
movq %rdx, 0x18(%rsp)
leaq 0xd65(%rip), %rsi       # 0x1b5aa
movq %rsi, 0x10(%rsp)
movups (%rax), %xmm1
movaps %xmm1, (%rsp)
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x10(%rsp)
movq %rsi, 0x10(%rax)
movq 0x18(%rax), %rsi
movq %rsi, 0x18(%rsp)
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0x1a880
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0x1a897
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x62b0
leaq 0x20(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x88ef(%rip), %rsi      # 0x23195
leaq 0x88ec(%rip), %rdx      # 0x23199
callq 0xadd8
leaq 0x20(%rsp), %rsi
movq %rbx, %rdi
callq 0xacf6
xorps %xmm0, %xmm0
movaps %xmm0, (%rsp)
leaq 0xcf5(%rip), %rdx       # 0x1b5c2
movq %rdx, 0x18(%rsp)
leaq 0xd37(%rip), %rsi       # 0x1b610
movq %rsi, 0x10(%rsp)
movups (%rax), %xmm1
movaps %xmm1, (%rsp)
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x10(%rsp)
movq %rsi, 0x10(%rax)
movq 0x18(%rax), %rsi
movq %rsi, 0x18(%rsp)
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0x1a914
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0x1a92b
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x62b0
leaq 0x20(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x8860(%rip), %rsi      # 0x2319a
leaq 0x885d(%rip), %rdx      # 0x2319e
callq 0xadd8
leaq 0x20(%rsp), %rsi
movq %rbx, %rdi
callq 0xacf6
xorps %xmm0, %xmm0
movaps %xmm0, (%rsp)
leaq 0xcc7(%rip), %rdx       # 0x1b628
movq %rdx, 0x18(%rsp)
leaq 0xd09(%rip), %rsi       # 0x1b676
movq %rsi, 0x10(%rsp)
movups (%rax), %xmm1
movaps %xmm1, (%rsp)
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x10(%rsp)
movq %rsi, 0x10(%rax)
movq 0x18(%rax), %rsi
movq %rsi, 0x18(%rsp)
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0x1a9a8
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0x1a9bf
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x62b0
leaq 0x20(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x87d1(%rip), %rsi      # 0x2319f
leaq 0x87ce(%rip), %rdx      # 0x231a3
callq 0xadd8
leaq 0x20(%rsp), %rsi
movq %rbx, %rdi
callq 0xacf6
xorps %xmm0, %xmm0
movaps %xmm0, (%rsp)
leaq 0xc99(%rip), %rdx       # 0x1b68e
movq %rdx, 0x18(%rsp)
leaq 0xcdb(%rip), %rsi       # 0x1b6dc
movq %rsi, 0x10(%rsp)
movups (%rax), %xmm1
movaps %xmm1, (%rsp)
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x10(%rsp)
movq %rsi, 0x10(%rax)
movq 0x18(%rax), %rsi
movq %rsi, 0x18(%rsp)
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0x1aa3c
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0x1aa53
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x62b0
leaq 0x20(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x8742(%rip), %rsi      # 0x231a4
leaq 0x873f(%rip), %rdx      # 0x231a8
callq 0xadd8
leaq 0x20(%rsp), %rsi
movq %rbx, %rdi
callq 0xacf6
xorps %xmm0, %xmm0
movaps %xmm0, (%rsp)
leaq 0xc6b(%rip), %rdx       # 0x1b6f4
movq %rdx, 0x18(%rsp)
leaq 0xcad(%rip), %rsi       # 0x1b742
movq %rsi, 0x10(%rsp)
movups (%rax), %xmm1
movaps %xmm1, (%rsp)
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x10(%rsp)
movq %rsi, 0x10(%rax)
movq 0x18(%rax), %rsi
movq %rsi, 0x18(%rsp)
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0x1aad0
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0x1aae7
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x62b0
leaq 0x20(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x86b3(%rip), %rsi      # 0x231a9
leaq 0x86b0(%rip), %rdx      # 0x231ad
callq 0xadd8
leaq 0x20(%rsp), %rsi
movq %rbx, %rdi
callq 0xacf6
xorps %xmm0, %xmm0
movaps %xmm0, (%rsp)
leaq 0xc3d(%rip), %rdx       # 0x1b75a
movq %rdx, 0x18(%rsp)
leaq 0xc7f(%rip), %rsi       # 0x1b7a8
movq %rsi, 0x10(%rsp)
movups (%rax), %xmm1
movaps %xmm1, (%rsp)
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x10(%rsp)
movq %rsi, 0x10(%rax)
movq 0x18(%rax), %rsi
movq %rsi, 0x18(%rsp)
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0x1ab64
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0x1ab7b
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x62b0
leaq 0x20(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x8624(%rip), %rsi      # 0x231ae
leaq 0x8621(%rip), %rdx      # 0x231b2
callq 0xadd8
leaq 0x20(%rsp), %rsi
movq %rbx, %rdi
callq 0xacf6
xorps %xmm0, %xmm0
movaps %xmm0, (%rsp)
leaq 0xc0f(%rip), %rdx       # 0x1b7c0
movq %rdx, 0x18(%rsp)
leaq 0xc51(%rip), %rsi       # 0x1b80e
movq %rsi, 0x10(%rsp)
movups (%rax), %xmm1
movaps %xmm1, (%rsp)
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x10(%rsp)
movq %rsi, 0x10(%rax)
movq 0x18(%rax), %rsi
movq %rsi, 0x18(%rsp)
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0x1abf8
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0x1ac0f
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x62b0
leaq 0x20(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x8595(%rip), %rsi      # 0x231b3
leaq 0x8592(%rip), %rdx      # 0x231b7
callq 0xadd8
leaq 0x20(%rsp), %rsi
movq %rbx, %rdi
callq 0xacf6
xorps %xmm0, %xmm0
movaps %xmm0, (%rsp)
leaq 0xbe1(%rip), %rdx       # 0x1b826
movq %rdx, 0x18(%rsp)
leaq 0xc23(%rip), %rsi       # 0x1b874
movq %rsi, 0x10(%rsp)
movups (%rax), %xmm1
movaps %xmm1, (%rsp)
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x10(%rsp)
movq %rsi, 0x10(%rax)
movq 0x18(%rax), %rsi
movq %rsi, 0x18(%rsp)
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0x1ac8c
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0x1aca3
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x62b0
leaq 0x20(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x8506(%rip), %rsi      # 0x231b8
leaq 0x8503(%rip), %rdx      # 0x231bc
callq 0xadd8
leaq 0x20(%rsp), %rsi
movq %rbx, %rdi
callq 0xacf6
xorps %xmm0, %xmm0
movaps %xmm0, (%rsp)
leaq 0xbb3(%rip), %rdx       # 0x1b88c
movq %rdx, 0x18(%rsp)
leaq 0xbf5(%rip), %rsi       # 0x1b8da
movq %rsi, 0x10(%rsp)
movups (%rax), %xmm1
movaps %xmm1, (%rsp)
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x10(%rsp)
movq %rsi, 0x10(%rax)
movq 0x18(%rax), %rsi
movq %rsi, 0x18(%rsp)
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0x1ad20
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0x1ad37
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x62b0
leaq 0x20(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x8477(%rip), %rsi      # 0x231bd
leaq 0x8474(%rip), %rdx      # 0x231c1
callq 0xadd8
leaq 0x20(%rsp), %rsi
movq %rbx, %rdi
callq 0xacf6
xorps %xmm0, %xmm0
movaps %xmm0, (%rsp)
leaq 0xb85(%rip), %rdx       # 0x1b8f2
movq %rdx, 0x18(%rsp)
leaq 0xbc7(%rip), %rsi       # 0x1b940
movq %rsi, 0x10(%rsp)
movups (%rax), %xmm1
movaps %xmm1, (%rsp)
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x10(%rsp)
movq %rsi, 0x10(%rax)
movq 0x18(%rax), %rsi
movq %rsi, 0x18(%rsp)
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0x1adb4
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0x1adcb
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x62b0
leaq 0x20(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x83e8(%rip), %rsi      # 0x231c2
leaq 0x83e5(%rip), %rdx      # 0x231c6
callq 0xadd8
leaq 0x20(%rsp), %rsi
movq %rbx, %rdi
callq 0xacf6
xorps %xmm0, %xmm0
movaps %xmm0, (%rsp)
leaq 0xb57(%rip), %rdx       # 0x1b958
movq %rdx, 0x18(%rsp)
leaq 0xb99(%rip), %rsi       # 0x1b9a6
movq %rsi, 0x10(%rsp)
movups (%rax), %xmm1
movaps %xmm1, (%rsp)
movups %xmm0, (%rax)
movq 0x10(%rax), %rcx
movq %rcx, 0x10(%rsp)
movq %rsi, 0x10(%rax)
movq 0x18(%rax), %rsi
movq %rsi, 0x18(%rsp)
movq %rdx, 0x18(%rax)
testq %rcx, %rcx
je 0x1ae48
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rcx
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0x1ae5f
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x62b0
addq $0x40, %rsp
popq %rbx
popq %r14
popq %r15
retq
jmp 0x1ae7f
jmp 0x1ae7f
jmp 0x1ae7f
jmp 0x1ae7f
jmp 0x1ae7f
jmp 0x1ae7f
jmp 0x1ae7f
jmp 0x1ae7f
jmp 0x1ae7f
jmp 0x1ae7f
jmp 0x1ae7f
movq %rax, %rdi
callq 0xadcc
jmp 0x1aeb3
jmp 0x1aecf
jmp 0x1aeb3
jmp 0x1aecf
jmp 0x1aeb3
jmp 0x1aecf
jmp 0x1aeb3
jmp 0x1aecf
jmp 0x1aeb3
jmp 0x1aecf
jmp 0x1aeb3
jmp 0x1aecf
jmp 0x1aeb3
jmp 0x1aecf
jmp 0x1aeb3
jmp 0x1aecf
jmp 0x1aeb3
jmp 0x1aecf
jmp 0x1aeb3
jmp 0x1aecf
jmp 0x1aeb3
jmp 0x1aecf
movq %rax, %r14
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0x1aed2
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x62b0
jmp 0x1aed2
movq %rax, %r14
movq %rbx, %rdi
callq 0xaf06
movq %r14, %rdi
callq 0x6460