// File: /workspace/github_cpp_makefile_star2_O1/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 0x15daa(%rip), %rdi     # 0x2dfd0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x6280
movsbl %al, %esi
movq 0x15d8f(%rip), %rdi     # 0x2dfd0
callq 0x6030
movq %rax, %rdi
callq 0x61c0
movq %rax, %r14
leaq 0xacd4(%rip), %rsi      # 0x22f2c
movl $0x25, %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 0x15d3d(%rip), %r14     # 0x2dfd0
leaq 0xacb8(%rip), %rsi      # 0x22f52
movl $0xe, %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 0x15d0b(%rip), %rdi     # 0x2dfd0
callq 0x6030
movq %rax, %rdi
callq 0x61c0
movq 0x15cf7(%rip), %r14     # 0x2dfd0
leaq 0xac81(%rip), %rsi      # 0x22f61
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 0x15cc5(%rip), %rdi     # 0x2dfd0
callq 0x6030
movq %rax, %rdi
callq 0x61c0
movq 0x15cb1(%rip), %r14     # 0x2dfd0
leaq 0xac48(%rip), %rsi      # 0x22f6e
movl $0xa, %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 0x15c7f(%rip), %rdi     # 0x2dfd0
callq 0x6030
movq %rax, %rdi
callq 0x61c0
movq 0x15c7b(%rip), %rdi     # 0x2dfe0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x6280
movsbl %al, %edx
movq 0x15c60(%rip), %rdi     # 0x2dfe0
movq %rsp, %rsi
callq 0x6480
cmpq $0x0, 0x8(%rsp)
je 0x183ca
movq (%rsp), %rax
movsbl (%rax), %edi
callq 0x6490
leaq 0x10(%rbx), %rcx
movq %rcx, (%rbx)
cmpl $0x4e, %eax
je 0x183f7
cmpl $0x45, %eax
je 0x183df
cmpl $0x44, %eax
jne 0x183d1
leaq 0xa6eb(%rip), %rsi      # 0x22aa4
leaq 0xa6e5(%rip), %rdx      # 0x22aa5
movq %rbx, %rdi
callq 0xadd8
jmp 0x1840d
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
movq $0x0, 0x8(%rbx)
movb $0x0, 0x10(%rbx)
jmp 0x1840d
leaq 0xadb2(%rip), %rsi      # 0x23198
leaq 0xadac(%rip), %rdx      # 0x23199
movq %rbx, %rdi
callq 0xadd8
jmp 0x1840d
leaq 0xad95(%rip), %rsi      # 0x23193
leaq 0xad8f(%rip), %rdx      # 0x23194
movq %rbx, %rdi
callq 0xadd8
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x18423
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x62b0
movq %rbx, %rax
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq
jmp 0x18436
jmp 0x18436
jmp 0x18436
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x1844f
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x62b0
movq %rbx, %rdi
callq 0x6460
nop