// File: /workspace/github_cpp_makefile_star2_O1/brashi[P]PetFera/src/animal/animal.cpp
// Function: Animal::setClasse[abi:cxx11]()
string Animal::setClasse() {
    string s;
    cout << endl << "O animal pertence a que classe?..." << endl;
    cout <<         "A - ave"       << endl;
    cout <<         "F - anfíbio"   << endl;
    cout <<         "R - réptil"    << endl;
    cout <<         "M - mamífero"  << endl;
    getline(cin, s);

    if(s.size() == 0)
        return {};
    else
        switch(toupper(s[0])) {
            case 'A':
                return "ave";
                break;
            case 'F':
                return "anf";
                break;
            case 'R':
                return "rep";
                break;
            case 'M':
                return "mam";
                break;
        }

    return {}; // Não retornou nada (falhou), retorne vazio
    // {} é mais rápido que "", já que não chama o construtor de std::string
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq %rdi, %rbx
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
movq $0x0, -0x8(%r15)
movb $0x0, (%r15)
movq 0x158e0(%rip), %rdi     # 0x2dfd0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x6280
movsbl %al, %esi
movq 0x158c5(%rip), %rdi     # 0x2dfd0
callq 0x6030
movq %rax, %rdi
callq 0x61c0
movq %rax, %r14
leaq 0xa864(%rip), %rsi      # 0x22f86
movl $0x22, %edx
movq %rax, %rdi
callq 0x6310
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x6280
movsbl %al, %esi
movq %r14, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x61c0
movq 0x15873(%rip), %r14     # 0x2dfd0
leaq 0xa845(%rip), %rsi      # 0x22fa9
movl $0x7, %edx
movq %r14, %rdi
callq 0x6310
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x6280
movsbl %al, %esi
movq 0x15841(%rip), %rdi     # 0x2dfd0
callq 0x6030
movq %rax, %rdi
callq 0x61c0
movq 0x1582d(%rip), %r14     # 0x2dfd0
leaq 0xa807(%rip), %rsi      # 0x22fb1
movl $0xc, %edx
movq %r14, %rdi
callq 0x6310
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x6280
movsbl %al, %esi
movq 0x157fb(%rip), %rdi     # 0x2dfd0
callq 0x6030
movq %rax, %rdi
callq 0x61c0
movq 0x157e7(%rip), %r14     # 0x2dfd0
leaq 0xa7ce(%rip), %rsi      # 0x22fbe
movl $0xb, %edx
movq %r14, %rdi
callq 0x6310
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x6280
movsbl %al, %esi
movq 0x157b5(%rip), %rdi     # 0x2dfd0
callq 0x6030
movq %rax, %rdi
callq 0x61c0
movq 0x157a1(%rip), %r14     # 0x2dfd0
leaq 0xa794(%rip), %rsi      # 0x22fca
movl $0xd, %edx
movq %r14, %rdi
callq 0x6310
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x6280
movsbl %al, %esi
movq 0x1576f(%rip), %rdi     # 0x2dfd0
callq 0x6030
movq %rax, %rdi
callq 0x61c0
movq 0x1576b(%rip), %rdi     # 0x2dfe0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x6280
movsbl %al, %edx
movq 0x15750(%rip), %rdi     # 0x2dfe0
movq %rsp, %rsi
callq 0x6480
cmpq $0x0, 0x8(%rsp)
je 0x188da
movq (%rsp), %rax
movsbl (%rax), %edi
callq 0x6490
leaq 0x10(%rbx), %rcx
movq %rcx, (%rbx)
cmpl $0x4c, %eax
jg 0x18910
cmpl $0x41, %eax
je 0x18932
cmpl $0x46, %eax
jne 0x188e1
leaq 0x8757(%rip), %rsi      # 0x21020
leaq 0x8753(%rip), %rdx      # 0x21023
movq %rbx, %rdi
callq 0xadd8
jmp 0x188ed
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
movq $0x0, 0x8(%rbx)
movb $0x0, 0x10(%rbx)
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x18903
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x62b0
movq %rbx, %rax
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq
cmpl $0x4d, %eax
je 0x1894a
cmpl $0x52, %eax
jne 0x188e1
leaq 0x8707(%rip), %rsi      # 0x21028
leaq 0x8703(%rip), %rdx      # 0x2102b
movq %rbx, %rdi
callq 0xadd8
jmp 0x188ed
leaq 0xa674(%rip), %rsi      # 0x22fad
leaq 0xa670(%rip), %rdx      # 0x22fb0
movq %rbx, %rdi
callq 0xadd8
jmp 0x188ed
leaq 0x86d3(%rip), %rsi      # 0x21024
leaq 0x86cf(%rip), %rdx      # 0x21027
movq %rbx, %rdi
callq 0xadd8
jmp 0x188ed
jmp 0x1896a
jmp 0x1896a
jmp 0x1896a
jmp 0x1896a
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x18983
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x62b0
movq %rbx, %rdi
callq 0x6460
nop