// File: brashi[P]PetFera/src/animal/animal.cpp
// Function: Animal::printOutDados(std::ostream&, std::shared_ptr<Animal>) const
ostream& Animal::printOutDados(ostream& o, shared_ptr<Animal> animal) const {

    o  << right
    << setfill(' ') << setw(23) << ((this->nome.length() > 17) ? (this->nome.substr(0, 17) + "...") : this->nome)
    << setfill(' ') << setw(23) << ((this->especie.length() > 17) ? (this->especie.substr(0, 17) + "...") : this->especie)
    << setfill(' ') << setw(23) << ((this->ameacadoPor.length() > 17) ? (this->ameacadoPor.substr(0, 17) + "...") : this->ameacadoPor)
    << setfill(' ') << setw(23) << (this->perigoso? "Sim" : "Não")
    << endl;

    return o;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1c0, %rsp            # imm = 0x1C0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x120(%rbp)
movq -0x10(%rbp), %rdi
leaq -0x960d(%rip), %rsi     # 0x223f0
callq 0x6120
movq %rax, -0x130(%rbp)
movl $0x20, %edi
callq 0x22420
movq -0x130(%rbp), %rdi
movb %al, -0x19(%rbp)
movzbl -0x19(%rbp), %esi
callq 0x6520
movq %rax, -0x128(%rbp)
movl $0x17, %edi
callq 0x22440
movq -0x128(%rbp), %rdi
movl %eax, -0x20(%rbp)
movl -0x20(%rbp), %esi
callq 0x63d0
movq -0x120(%rbp), %rdi
movq %rax, -0x118(%rbp)
addq $0x8, %rdi
callq 0x64f0
movb $0x0, -0x61(%rbp)
cmpq $0x11, %rax
jbe 0x2baad
movq -0x120(%rbp), %rsi
addq $0x8, %rsi
xorl %eax, %eax
movl %eax, %edx
leaq -0x60(%rbp), %rdi
movq %rdi, -0x138(%rbp)
movl $0x11, %ecx
callq 0x6340
movq -0x138(%rbp), %rsi
movb $0x1, -0x61(%rbp)
leaq 0x16677(%rip), %rdx     # 0x42117
leaq -0x40(%rbp), %rdi
callq 0x21e60
jmp 0x2baab
jmp 0x2bac5
movq -0x120(%rbp), %rsi
addq $0x8, %rsi
leaq -0x40(%rbp), %rdi
callq 0x61a0
jmp 0x2bac3
jmp 0x2bac5
movq -0x118(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x6300
movq %rax, -0x140(%rbp)
jmp 0x2bade
movl $0x20, %edi
callq 0x22420
movb %al, -0x141(%rbp)
jmp 0x2baf0
movq -0x140(%rbp), %rdi
movb -0x141(%rbp), %al
movb %al, -0x75(%rbp)
movzbl -0x75(%rbp), %esi
callq 0x6520
movq %rax, -0x150(%rbp)
jmp 0x2bb12
movl $0x17, %edi
callq 0x22440
movl %eax, -0x154(%rbp)
jmp 0x2bb24
movq -0x150(%rbp), %rdi
movl -0x154(%rbp), %eax
movl %eax, -0x7c(%rbp)
movl -0x7c(%rbp), %esi
callq 0x63d0
movq %rax, -0x160(%rbp)
jmp 0x2bb45
movq -0x120(%rbp), %rdi
addq $0x28, %rdi
callq 0x64f0
movb $0x0, -0xc1(%rbp)
cmpq $0x11, %rax
jbe 0x2bba9
movq -0x120(%rbp), %rsi
addq $0x28, %rsi
xorl %eax, %eax
movl %eax, %edx
leaq -0xc0(%rbp), %rdi
movl $0x11, %ecx
callq 0x6340
jmp 0x2bb84
movb $0x1, -0xc1(%rbp)
leaq 0x16585(%rip), %rdx     # 0x42117
leaq -0xa0(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x21e60
jmp 0x2bba7
jmp 0x2bbc4
movq -0x120(%rbp), %rsi
addq $0x28, %rsi
leaq -0xa0(%rbp), %rdi
callq 0x61a0
jmp 0x2bbc2
jmp 0x2bbc4
movq -0x160(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x6300
movq %rax, -0x168(%rbp)
jmp 0x2bbe0
movl $0x20, %edi
callq 0x22420
movb %al, -0x169(%rbp)
jmp 0x2bbf2
movq -0x168(%rbp), %rdi
movb -0x169(%rbp), %al
movb %al, -0xc2(%rbp)
movzbl -0xc2(%rbp), %esi
callq 0x6520
movq %rax, -0x178(%rbp)
jmp 0x2bc1a
movl $0x17, %edi
callq 0x22440
movl %eax, -0x17c(%rbp)
jmp 0x2bc2c
movq -0x178(%rbp), %rdi
movl -0x17c(%rbp), %eax
movl %eax, -0xc8(%rbp)
movl -0xc8(%rbp), %esi
callq 0x63d0
movq %rax, -0x188(%rbp)
jmp 0x2bc53
movq -0x120(%rbp), %rdi
addq $0x48, %rdi
callq 0x64f0
movb $0x0, -0x109(%rbp)
cmpq $0x11, %rax
jbe 0x2bcb7
movq -0x120(%rbp), %rsi
addq $0x48, %rsi
xorl %eax, %eax
movl %eax, %edx
leaq -0x108(%rbp), %rdi
movl $0x11, %ecx
callq 0x6340
jmp 0x2bc92
movb $0x1, -0x109(%rbp)
leaq 0x16477(%rip), %rdx     # 0x42117
leaq -0xe8(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x21e60
jmp 0x2bcb5
jmp 0x2bcd2
movq -0x120(%rbp), %rsi
addq $0x48, %rsi
leaq -0xe8(%rbp), %rdi
callq 0x61a0
jmp 0x2bcd0
jmp 0x2bcd2
movq -0x188(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x6300
movq %rax, -0x190(%rbp)
jmp 0x2bcee
movl $0x20, %edi
callq 0x22420
movb %al, -0x191(%rbp)
jmp 0x2bd00
movq -0x190(%rbp), %rdi
movb -0x191(%rbp), %al
movb %al, -0x10a(%rbp)
movzbl -0x10a(%rbp), %esi
callq 0x6520
movq %rax, -0x1a0(%rbp)
jmp 0x2bd28
movl $0x17, %edi
callq 0x22440
movl %eax, -0x1a4(%rbp)
jmp 0x2bd3a
movq -0x1a0(%rbp), %rdi
movl -0x1a4(%rbp), %eax
movl %eax, -0x110(%rbp)
movl -0x110(%rbp), %esi
callq 0x63d0
movq %rax, -0x1b0(%rbp)
jmp 0x2bd61
movq -0x1b0(%rbp), %rdi
movq -0x120(%rbp), %rax
movb 0x88(%rax), %cl
leaq 0x16460(%rip), %rax     # 0x421dc
leaq 0x1645d(%rip), %rsi     # 0x421e0
testb $0x1, %cl
cmovneq %rax, %rsi
callq 0x6310
movq %rax, -0x1b8(%rbp)
jmp 0x2bd98
movq -0x1b8(%rbp), %rdi
movq 0x371fa(%rip), %rsi     # 0x62fa0
callq 0x6360
jmp 0x2bdad
leaq -0xe8(%rbp), %rdi
callq 0x6678
testb $0x1, -0x109(%rbp)
jne 0x2bdc4
jmp 0x2bdd0
leaq -0x108(%rbp), %rdi
callq 0x6678
leaq -0xa0(%rbp), %rdi
callq 0x6678
testb $0x1, -0xc1(%rbp)
jne 0x2bde7
jmp 0x2bdf3
leaq -0xc0(%rbp), %rdi
callq 0x6678
leaq -0x40(%rbp), %rdi
callq 0x6678
testb $0x1, -0x61(%rbp)
jne 0x2be04
jmp 0x2be0d
leaq -0x60(%rbp), %rdi
callq 0x6678
movq -0x10(%rbp), %rax
addq $0x1c0, %rsp            # imm = 0x1C0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x2bec5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x2bebc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x2bea3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x2be97
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x2be7e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0xe8(%rbp), %rdi
callq 0x6678
testb $0x1, -0x109(%rbp)
jne 0x2be89
jmp 0x2be95
leaq -0x108(%rbp), %rdi
callq 0x6678
jmp 0x2be97
leaq -0xa0(%rbp), %rdi
callq 0x6678
testb $0x1, -0xc1(%rbp)
jne 0x2beae
jmp 0x2beba
leaq -0xc0(%rbp), %rdi
callq 0x6678
jmp 0x2bebc
leaq -0x40(%rbp), %rdi
callq 0x6678
testb $0x1, -0x61(%rbp)
jne 0x2becd
jmp 0x2bed6
leaq -0x60(%rbp), %rdi
callq 0x6678
jmp 0x2bed8
movq -0x70(%rbp), %rdi
callq 0x6590
nopw %cs:(%rax,%rax)