// File: /workspace/github_cpp_makefile_star2_O3/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 0x13d2c(%rip), %rdi     # 0x2afd0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x13d11(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq %rax, %r14
leaq 0x9cb0(%rip), %rsi      # 0x20f86
movl $0x22, %edx
movq %rax, %rdi
callq 0x5310
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq %r14, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq 0x13cbf(%rip), %r14     # 0x2afd0
leaq 0x9c91(%rip), %rsi      # 0x20fa9
movl $0x7, %edx
movq %r14, %rdi
callq 0x5310
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x13c8d(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq 0x13c79(%rip), %r14     # 0x2afd0
leaq 0x9c53(%rip), %rsi      # 0x20fb1
movl $0xc, %edx
movq %r14, %rdi
callq 0x5310
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x13c47(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq 0x13c33(%rip), %r14     # 0x2afd0
leaq 0x9c1a(%rip), %rsi      # 0x20fbe
movl $0xb, %edx
movq %r14, %rdi
callq 0x5310
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x13c01(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq 0x13bed(%rip), %r14     # 0x2afd0
leaq 0x9be0(%rip), %rsi      # 0x20fca
movl $0xd, %edx
movq %r14, %rdi
callq 0x5310
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x13bbb(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq 0x13bb7(%rip), %rdi     # 0x2afe0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %edx
movq 0x13b9c(%rip), %rdi     # 0x2afe0
movq %rsp, %rsi
callq 0x5480
cmpq $0x0, 0x8(%rsp)
je 0x1748e
movq (%rsp), %rax
movsbl (%rax), %edi
callq 0x5490
leaq 0x10(%rbx), %rcx
movq %rcx, (%rbx)
cmpl $0x4c, %eax
jg 0x174c4
cmpl $0x41, %eax
je 0x174e6
cmpl $0x46, %eax
jne 0x17495
leaq 0x7ba3(%rip), %rsi      # 0x1f020
leaq 0x7b9f(%rip), %rdx      # 0x1f023
movq %rbx, %rdi
callq 0x9d84
jmp 0x174a1
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
movq $0x0, 0x8(%rbx)
movb $0x0, 0x10(%rbx)
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x174b7
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
movq %rbx, %rax
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq
cmpl $0x4d, %eax
je 0x174fe
cmpl $0x52, %eax
jne 0x17495
leaq 0x7b53(%rip), %rsi      # 0x1f028
leaq 0x7b4f(%rip), %rdx      # 0x1f02b
movq %rbx, %rdi
callq 0x9d84
jmp 0x174a1
leaq 0x9ac0(%rip), %rsi      # 0x20fad
leaq 0x9abc(%rip), %rdx      # 0x20fb0
movq %rbx, %rdi
callq 0x9d84
jmp 0x174a1
leaq 0x7b1f(%rip), %rsi      # 0x1f024
leaq 0x7b1b(%rip), %rdx      # 0x1f027
movq %rbx, %rdi
callq 0x9d84
jmp 0x174a1
jmp 0x1751e
jmp 0x1751e
jmp 0x1751e
jmp 0x1751e
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x17537
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
movq %rbx, %rdi
callq 0x5460
nop