// File: /workspace/github_cpp_makefile_star2_O3/brashi[P]PetFera/src/animal/animal.cpp
// Function: Animal::setClassificacao[abi:cxx11]()
string Animal::setClassificacao() {
    string s;
    cout << endl << "A que categoria o animal pertence?..." << endl;
    cout <<         "D - doméstico" << endl;
    cout <<         "E - exótico"   << endl;
    cout <<         "N - nativo"    << endl;
    getline(cin, s);

    if(s.size() == 0)
        return {};
    else
        switch(toupper(s[0])) {
            case 'D':
                return "D";
                break;
            case 'E':
                return "E";
                break;
            case 'N':
                return "N";
                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 0x14194(%rip), %rdi     # 0x2afd0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x14179(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq %rax, %r14
leaq 0xa0be(%rip), %rsi      # 0x20f2c
movl $0x25, %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 0x14127(%rip), %r14     # 0x2afd0
leaq 0xa0a2(%rip), %rsi      # 0x20f52
movl $0xe, %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 0x140f5(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq 0x140e1(%rip), %r14     # 0x2afd0
leaq 0xa06b(%rip), %rsi      # 0x20f61
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 0x140af(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq 0x1409b(%rip), %r14     # 0x2afd0
leaq 0xa032(%rip), %rsi      # 0x20f6e
movl $0xa, %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 0x14069(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq 0x14065(%rip), %rdi     # 0x2afe0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %edx
movq 0x1404a(%rip), %rdi     # 0x2afe0
movq %rsp, %rsi
callq 0x5480
cmpq $0x0, 0x8(%rsp)
je 0x16fe0
movq (%rsp), %rax
movsbl (%rax), %edi
callq 0x5490
leaq 0x10(%rbx), %rcx
movq %rcx, (%rbx)
cmpl $0x4e, %eax
je 0x1700d
cmpl $0x45, %eax
je 0x16ff5
cmpl $0x44, %eax
jne 0x16fe7
leaq 0x9ad5(%rip), %rsi      # 0x20aa4
leaq 0x9acf(%rip), %rdx      # 0x20aa5
movq %rbx, %rdi
callq 0x9d84
jmp 0x17023
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
movq $0x0, 0x8(%rbx)
movb $0x0, 0x10(%rbx)
jmp 0x17023
leaq 0xa19c(%rip), %rsi      # 0x21198
leaq 0xa196(%rip), %rdx      # 0x21199
movq %rbx, %rdi
callq 0x9d84
jmp 0x17023
leaq 0xa17f(%rip), %rsi      # 0x21193
leaq 0xa179(%rip), %rdx      # 0x21194
movq %rbx, %rdi
callq 0x9d84
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x17039
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
movq %rbx, %rax
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq
jmp 0x1704c
jmp 0x1704c
jmp 0x1704c
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x17065
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
movq %rbx, %rdi
callq 0x5460
nop