// File: 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
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rdi
movq 0x1944d(%rip), %rsi     # 0x5bfb0
callq 0x41f0
movq %rax, %rdi
leaq 0x5dd1(%rip), %rsi      # 0x48943
callq 0x41c0
movq %rax, %rdi
movq 0x1942f(%rip), %rsi     # 0x5bfb0
callq 0x41f0
movq %rax, %rdi
leaq 0x388d(%rip), %rsi      # 0x4641d
callq 0x41c0
movq %rax, %rdi
movq -0x20(%rbp), %rax
movl 0x8(%rax), %esi
callq 0x4310
movq %rax, %rdi
movq 0x19402(%rip), %rsi     # 0x5bfb0
callq 0x41f0
movq %rax, %rdi
leaq 0x5db7(%rip), %rsi      # 0x48974
callq 0x41c0
movq %rax, %rdi
movq 0x193e4(%rip), %rsi     # 0x5bfb0
callq 0x41f0
movq %rax, %rdi
leaq 0x3877(%rip), %rsi      # 0x46452
callq 0x41c0
movq -0x20(%rbp), %rsi
movq %rax, %rdi
addq $0x30, %rsi
callq 0x41b0
movq %rax, %rdi
movq 0x193b6(%rip), %rsi     # 0x5bfb0
callq 0x41f0
movq %rax, %rdi
leaq 0x3862(%rip), %rsi      # 0x4646b
callq 0x41c0
movq -0x20(%rbp), %rsi
movq %rax, %rdi
addq $0x10, %rsi
callq 0x41b0
movq %rax, %rdi
movq 0x19388(%rip), %rsi     # 0x5bfb0
callq 0x41f0
movq %rax, %rdi
leaq 0x384d(%rip), %rsi      # 0x46484
callq 0x41c0
movq %rax, %rcx
movq -0x20(%rbp), %rax
movq %rcx, -0x18(%rbp)
cmpl $0xb, 0x50(%rax)
jne 0x42c5a
leaq 0x3498(%rip), %rax      # 0x460ec
movq %rax, -0x28(%rbp)
jmp 0x42c67
leaq 0x3491(%rip), %rax      # 0x460f2
movq %rax, -0x28(%rbp)
jmp 0x42c67
movq -0x18(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0x41c0
movq %rax, %rdi
movq 0x19332(%rip), %rsi     # 0x5bfb0
callq 0x41f0
movq %rax, %rdi
leaq 0x3810(%rip), %rsi      # 0x4649d
callq 0x41c0
movq -0x20(%rbp), %rsi
movq %rax, %rdi
addq $0x78, %rsi
callq 0x41b0
movq %rax, %rdi
movq 0x19304(%rip), %rsi     # 0x5bfb0
callq 0x41f0
movq %rax, %rdi
leaq 0x37fb(%rip), %rsi      # 0x464b6
callq 0x41c0
movq -0x20(%rbp), %rsi
movq %rax, %rdi
addq $0x98, %rsi
callq 0x41b0
movq %rax, %rdi
movq 0x192d3(%rip), %rsi     # 0x5bfb0
callq 0x41f0
movq %rax, %rdi
leaq 0x37e3(%rip), %rsi      # 0x464cf
callq 0x41c0
movq -0x20(%rbp), %rsi
movq %rax, %rdi
addq $0xb8, %rsi
callq 0x41b0
movq %rax, %rdi
movq 0x192a2(%rip), %rsi     # 0x5bfb0
callq 0x41f0
movq %rax, %rdi
leaq 0x37cb(%rip), %rsi      # 0x464e8
callq 0x41c0
movq %rax, %rcx
movq -0x20(%rbp), %rax
movq %rcx, -0x30(%rbp)
movb 0xd8(%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x42d4a
leaq 0x3402(%rip), %rax      # 0x46146
movq %rax, -0x38(%rbp)
jmp 0x42d57
leaq 0x33f9(%rip), %rax      # 0x4614a
movq %rax, -0x38(%rbp)
jmp 0x42d57
movq -0x30(%rbp), %rdi
movq -0x38(%rbp), %rsi
callq 0x41c0
movq %rax, %rdi
movq 0x19242(%rip), %rsi     # 0x5bfb0
callq 0x41f0
movq %rax, %rdi
leaq 0x3784(%rip), %rsi      # 0x46501
callq 0x41c0
movq -0x20(%rbp), %rsi
movq %rax, %rdi
addq $0xe0, %rsi
callq 0x41b0
movq %rax, %rdi
movq 0x19211(%rip), %rsi     # 0x5bfb0
callq 0x41f0
movq %rax, %rdi
leaq 0x5be7(%rip), %rsi      # 0x48995
callq 0x41c0
movq -0x20(%rbp), %rsi
movq %rax, %rdi
addq $0x110, %rsi            # imm = 0x110
callq 0x41b0
movq %rax, %rdi
movq 0x191e0(%rip), %rsi     # 0x5bfb0
callq 0x41f0
movq %rax, %rdi
leaq 0x5bd0(%rip), %rsi      # 0x489af
callq 0x41c0
movq -0x20(%rbp), %rsi
movq %rax, %rdi
addq $0x110, %rsi            # imm = 0x110
addq $0x20, %rsi
callq 0x41b0
movq %rax, %rdi
movq 0x191ab(%rip), %rsi     # 0x5bfb0
callq 0x41f0
movq %rax, %rdi
leaq 0x5bb4(%rip), %rsi      # 0x489c8
callq 0x41c0
movq %rax, %rdi
movq -0x20(%rbp), %rax
movb 0x100(%rax), %cl
leaq 0x5bc2(%rip), %rsi      # 0x489ef
leaq 0x5bad(%rip), %rax      # 0x489e1
testb $0x1, %cl
cmovneq %rax, %rsi
callq 0x41c0
movq %rax, %rdi
movq 0x19166(%rip), %rsi     # 0x5bfb0
callq 0x41f0
movq %rax, %rdi
leaq 0x5ba9(%rip), %rsi      # 0x48a02
callq 0x41c0
movq %rax, %rcx
movq -0x20(%rbp), %rax
movq %rcx, -0x40(%rbp)
cmpl $0x0, 0x104(%rax)
jne 0x42e7f
leaq 0x4d75(%rip), %rax      # 0x47bee
movq %rax, -0x48(%rbp)
jmp 0x42ea2
movq -0x20(%rbp), %rax
movl 0x104(%rax), %edx
leaq 0x5b8b(%rip), %rax      # 0x48a1b
leaq 0x4d5f(%rip), %rcx      # 0x47bf6
cmpl $0x1, %edx
cmoveq %rcx, %rax
movq %rax, -0x48(%rbp)
movq -0x40(%rbp), %rdi
movq -0x48(%rbp), %rsi
callq 0x41c0
movq %rax, %rdi
movq 0x190f7(%rip), %rsi     # 0x5bfb0
callq 0x41f0
movq %rax, %rdi
leaq 0x5b5a(%rip), %rsi      # 0x48a22
callq 0x41c0
movq %rax, %rdi
movq -0x20(%rbp), %rax
movl 0x108(%rax), %ecx
leaq 0x5b5a(%rip), %rsi      # 0x48a3b
leaq 0x4d17(%rip), %rax      # 0x47bff
cmpl $0x0, %ecx
cmoveq %rax, %rsi
callq 0x41c0
movq %rax, %rdi
movq 0x190b2(%rip), %rsi     # 0x5bfb0
callq 0x41f0
movq %rax, %rdi
leaq 0x32de(%rip), %rsi      # 0x461eb
callq 0x41c0
movq -0x10(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax)