// File: /workspace/github_cpp_makefile_star2_O1/viniciu21[P]PetLolja/./src/MamiferoDomestico.cpp
// Function: MamiferoDomestico::imprimeDados(std::ostream&) const
ostream &MamiferoDomestico::imprimeDados(ostream &o) const {
    o << std::endl
      << "============== Mamifero_Domestico ==============" << std::endl
      << "ID                    | " << this->id << std::endl
      << "Classe                | Mamifero" << std::endl
      << "Nome                  | " << this->nome << std::endl
      << "Nome Cientifico       | " << this->especie << std::endl
      << "Sexo                  | " << (this->genero == F ? "Femea" : "Macho") << std::endl
      << "Temperatura           | " << this->tipo_temperatura << std::endl
      << "Pele                  | " << this->tipo_pele << std::endl
      << "Fecundacao            | " << this->tipo_fecundacao << std::endl
      << "Troca de Pele         | " << (this->troca_pele == true ? "sim" : "nao") << std::endl
      << "Material Eliminado    | " << this->material_eliminidado << std::endl
      << "Nome Batismo          |  " << this->nome_animal << std::endl
      << "Nome dono             | " << this->nome_dono << std::endl
      << "Dentes                | " << (this->tem_dentes ? "Possui dentes" : "Não possui dentes") << std::endl
      << "Pelagem               | " << (this->pelagem == 0 ? "Ausente" : this->pelagem == 1 ? "Reduzido" : "Normal") << std::endl
      << "Tipo gestacao         | " << (this->tipo_gestacao == 0 ? "Marsupial" : "Placentario") << std::endl<< ".";

    return o;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rsi, %rbx
movq %rdi, %r14
movq (%rsi), %rax
movq -0x18(%rax), %rdi
addq %rsi, %rdi
movl $0xa, %esi
callq 0x41b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4030
movq %rax, %rdi
callq 0x4120
movq %rax, %r15
leaq 0x6b65(%rip), %rsi      # 0x2f9b3
movl $0x30, %edx
movq %rax, %rdi
callq 0x4210
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x41b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4030
movq %rax, %rdi
callq 0x4120
movq %rax, %r15
leaq 0x45bb(%rip), %rsi      # 0x2d447
movl $0x18, %edx
movq %rax, %rdi
callq 0x4210
movl 0x8(%r14), %esi
movq %r15, %rdi
callq 0x42e0
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x41b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4030
movq %rax, %rdi
callq 0x4120
movq %rax, %r15
leaq 0x6b0b(%rip), %rsi      # 0x2f9e4
movl $0x20, %edx
movq %rax, %rdi
callq 0x4210
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x41b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4030
movq %rax, %rdi
callq 0x4120
movq %rax, %r15
leaq 0x4565(%rip), %rsi      # 0x2d47c
movl $0x18, %edx
movq %rax, %rdi
callq 0x4210
movq 0x30(%r14), %rsi
movq 0x38(%r14), %rdx
movq %r15, %rdi
callq 0x4210
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x41b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4030
movq %rax, %rdi
callq 0x4120
movq %rax, %r15
leaq 0x452d(%rip), %rsi      # 0x2d495
movl $0x18, %edx
movq %rax, %rdi
callq 0x4210
movq 0x10(%r14), %rsi
movq 0x18(%r14), %rdx
movq %r15, %rdi
callq 0x4210
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x41b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4030
movq %rax, %rdi
callq 0x4120
movq %rax, %r15
leaq 0x44f5(%rip), %rsi      # 0x2d4ae
movl $0x18, %edx
movq %rax, %rdi
callq 0x4210
cmpl $0xb, 0x50(%r14)
leaq 0x4144(%rip), %rax      # 0x2d116
leaq 0x4143(%rip), %rsi      # 0x2d11c
cmoveq %rax, %rsi
movl $0x5, %edx
movq %r15, %rdi
callq 0x4210
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x41b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4030
movq %rax, %rdi
callq 0x4120
movq %rax, %r15
leaq 0x44ac(%rip), %rsi      # 0x2d4c7
movl $0x18, %edx
movq %rax, %rdi
callq 0x4210
movq 0x78(%r14), %rsi
movq 0x80(%r14), %rdx
movq %r15, %rdi
callq 0x4210
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x41b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4030
movq %rax, %rdi
callq 0x4120
movq %rax, %r15
leaq 0x4471(%rip), %rsi      # 0x2d4e0
movl $0x18, %edx
movq %rax, %rdi
callq 0x4210
movq 0x98(%r14), %rsi
movq 0xa0(%r14), %rdx
movq %r15, %rdi
callq 0x4210
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x41b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4030
movq %rax, %rdi
callq 0x4120
movq %rax, %r15
leaq 0x4433(%rip), %rsi      # 0x2d4f9
movl $0x18, %edx
movq %rax, %rdi
callq 0x4210
movq 0xb8(%r14), %rsi
movq 0xc0(%r14), %rdx
movq %r15, %rdi
callq 0x4210
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x41b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4030
movq %rax, %rdi
callq 0x4120
movq %rax, %r15
leaq 0x43f5(%rip), %rsi      # 0x2d512
movl $0x18, %edx
movq %rax, %rdi
callq 0x4210
leaq 0x403f(%rip), %rax      # 0x2d170
leaq 0x403c(%rip), %rsi      # 0x2d174
cmpb $0x0, 0xd8(%r14)
cmovneq %rax, %rsi
movl $0x3, %edx
movq %r15, %rdi
callq 0x4210
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x41b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4030
movq %rax, %rdi
callq 0x4120
movq %rax, %r15
leaq 0x43a9(%rip), %rsi      # 0x2d52b
movl $0x18, %edx
movq %rax, %rdi
callq 0x4210
movq 0xe0(%r14), %rsi
movq 0xe8(%r14), %rdx
movq %r15, %rdi
callq 0x4210
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x41b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4030
movq %rax, %rdi
callq 0x4120
movq %rax, %r15
leaq 0x682c(%rip), %rsi      # 0x2fa05
movl $0x19, %edx
movq %rax, %rdi
callq 0x4210
movq 0x110(%r14), %rsi
movq 0x118(%r14), %rdx
movq %r15, %rdi
callq 0x4210
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x41b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4030
movq %rax, %rdi
callq 0x4120
movq %rax, %r15
leaq 0x67ef(%rip), %rsi      # 0x2fa1f
movl $0x18, %edx
movq %rax, %rdi
callq 0x4210
movq 0x130(%r14), %rsi
movq 0x138(%r14), %rdx
movq %r15, %rdi
callq 0x4210
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x41b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4030
movq %rax, %rdi
callq 0x4120
movq %rax, %r15
leaq 0x67b1(%rip), %rsi      # 0x2fa38
movl $0x18, %edx
movq %rax, %rdi
callq 0x4210
movzbl 0x100(%r14), %eax
leaq 0x67ae(%rip), %rcx      # 0x2fa51
leaq 0x67b5(%rip), %rsi      # 0x2fa5f
testq %rax, %rax
cmovneq %rcx, %rsi
xorq $0x1, %rax
leaq (%rax,%rax,4), %rdx
addq $0xd, %rdx
movq %r15, %rdi
callq 0x4210
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x41b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4030
movq %rax, %rdi
callq 0x4120
movq %rax, %r15
leaq 0x677c(%rip), %rsi      # 0x2fa72
movl $0x18, %edx
movq %rax, %rdi
callq 0x4210
movl 0x104(%r14), %eax
cmpl $0x1, %eax
leaq 0x594f(%rip), %rcx      # 0x2ec63
leaq 0x6770(%rip), %rdx      # 0x2fa8b
cmoveq %rcx, %rdx
testl %eax, %eax
leaq 0x5933(%rip), %r12      # 0x2ec5b
cmovneq %rdx, %r12
movq %r12, %rdi
callq 0x40d0
movq %r15, %rdi
movq %r12, %rsi
movq %rax, %rdx
callq 0x4210
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x41b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4030
movq %rax, %rdi
callq 0x4120
movq %rax, %r15
leaq 0x671f(%rip), %rsi      # 0x2fa92
movl $0x18, %edx
movq %rax, %rdi
callq 0x4210
xorl %eax, %eax
cmpl $0x0, 0x108(%r14)
setne %al
leaq 0x58d8(%rip), %rcx      # 0x2ec6c
leaq 0x6710(%rip), %rsi      # 0x2faab
cmoveq %rcx, %rsi
leaq 0x9(,%rax,2), %rdx
movq %r15, %rdi
callq 0x4210
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x41b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4030
movq %rax, %rdi
callq 0x4120
leaq 0x3e38(%rip), %rsi      # 0x2d215
movl $0x1, %edx
movq %rax, %rdi
callq 0x4210
movq %rbx, %rax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
nop