// File: williewillus[P]panda_scratchpad/src/checker/DiskContents.cpp
// Function: operator<<(std::basic_ofstream<char, std::char_traits<char>>&, fileAttributes&)
ofstream& operator<< (ofstream& os, fileAttributes& a) {
  // print dir_attr
  os << "---Directory Atrributes---" << endl;
  os << "Name   : " << (a.dir_attr).d_name << endl;
  os << "Inode  : " << (a.dir_attr).d_ino << endl;
  os << "Offset : " << (a.dir_attr).d_off << endl;
  os << "Length : " << (a.dir_attr).d_reclen << endl;
  os << "Type   : " << (a.dir_attr).d_type << endl;
  // print stat_attr
  os << "---File Stat Atrributes---" << endl;
  os << "Inode     : " << (a.stat_attr).st_ino << endl;
  os << "TotalSize : " << (a.stat_attr).st_size << endl;
  os << "BlockSize : " << (a.stat_attr).st_blksize << endl;
  os << "#Blocks   : " << (a.stat_attr).st_blocks << endl;
  os << "#HardLinks: " << (a.stat_attr).st_nlink << endl;
  os << "Mode      : " << (a.stat_attr).st_mode << endl;
  os << "User ID   : " << (a.stat_attr).st_uid << endl;
  os << "Group ID  : " << (a.stat_attr).st_gid << endl;
  os << "Device ID : " << (a.stat_attr).st_rdev << endl;
  os << "RootDev ID: " << (a.stat_attr).st_dev << endl;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x64c1(%rip), %rsi      # 0x2571c
callq 0x6520
movq %rax, %rdi
movq 0x15d2e(%rip), %rsi     # 0x34f98
callq 0x6580
movq -0x8(%rbp), %rdi
leaq 0x64bd(%rip), %rsi      # 0x25737
callq 0x6520
movq %rax, %rdi
movq -0x10(%rbp), %rsi
addq $0x13, %rsi
callq 0x6520
movq %rax, %rdi
movq 0x15cff(%rip), %rsi     # 0x34f98
callq 0x6580
movq -0x8(%rbp), %rdi
leaq 0x6498(%rip), %rsi      # 0x25741
callq 0x6520
movq %rax, %rdi
movq -0x10(%rbp), %rax
movq (%rax), %rsi
callq 0x6100
movq %rax, %rdi
movq 0x15cd1(%rip), %rsi     # 0x34f98
callq 0x6580
movq -0x8(%rbp), %rdi
leaq 0x6474(%rip), %rsi      # 0x2574b
callq 0x6520
movq %rax, %rdi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x68f0
movq %rax, %rdi
movq 0x15ca2(%rip), %rsi     # 0x34f98
callq 0x6580
movq -0x8(%rbp), %rdi
leaq 0x644f(%rip), %rsi      # 0x25755
callq 0x6520
movq %rax, %rdi
movq -0x10(%rbp), %rax
movzwl 0x10(%rax), %esi
callq 0x6850
movq %rax, %rdi
movq 0x15c73(%rip), %rsi     # 0x34f98
callq 0x6580
movq -0x8(%rbp), %rdi
leaq 0x642a(%rip), %rsi      # 0x2575f
callq 0x6520
movq %rax, %rdi
movq -0x10(%rbp), %rax
movzbl 0x12(%rax), %esi
callq 0x6770
movq %rax, %rdi
movq 0x15c44(%rip), %rsi     # 0x34f98
callq 0x6580
movq -0x8(%rbp), %rdi
leaq 0x6405(%rip), %rsi      # 0x25769
callq 0x6520
movq %rax, %rdi
movq 0x15c25(%rip), %rsi     # 0x34f98
callq 0x6580
movq -0x8(%rbp), %rdi
leaq 0x6401(%rip), %rsi      # 0x25784
callq 0x6520
movq %rax, %rdi
movq -0x10(%rbp), %rax
movq 0x120(%rax), %rsi
callq 0x6100
movq %rax, %rdi
movq 0x15bf3(%rip), %rsi     # 0x34f98
callq 0x6580
movq -0x8(%rbp), %rdi
leaq 0x63dc(%rip), %rsi      # 0x25791
callq 0x6520
movq %rax, %rdi
movq -0x10(%rbp), %rax
movq 0x148(%rax), %rsi
callq 0x68f0
movq %rax, %rdi
movq 0x15bc1(%rip), %rsi     # 0x34f98
callq 0x6580
movq -0x8(%rbp), %rdi
leaq 0x63b7(%rip), %rsi      # 0x2579e
callq 0x6520
movq %rax, %rdi
movq -0x10(%rbp), %rax
movq 0x150(%rax), %rsi
callq 0x68f0
movq %rax, %rdi
movq 0x15b8f(%rip), %rsi     # 0x34f98
callq 0x6580
movq -0x8(%rbp), %rdi
leaq 0x6392(%rip), %rsi      # 0x257ab
callq 0x6520
movq %rax, %rdi
movq -0x10(%rbp), %rax
movq 0x158(%rax), %rsi
callq 0x68f0
movq %rax, %rdi
movq 0x15b5d(%rip), %rsi     # 0x34f98
callq 0x6580
movq -0x8(%rbp), %rdi
leaq 0x636d(%rip), %rsi      # 0x257b8
callq 0x6520
movq %rax, %rdi
movq -0x10(%rbp), %rax
movq 0x128(%rax), %rsi
callq 0x6100
movq %rax, %rdi
movq 0x15b2b(%rip), %rsi     # 0x34f98
callq 0x6580
movq -0x8(%rbp), %rdi
leaq 0x6348(%rip), %rsi      # 0x257c5
callq 0x6520
movq %rax, %rdi
movq -0x10(%rbp), %rax
movl 0x130(%rax), %esi
callq 0x6630
movq %rax, %rdi
movq 0x15afa(%rip), %rsi     # 0x34f98
callq 0x6580
movq -0x8(%rbp), %rdi
leaq 0x6324(%rip), %rsi      # 0x257d2
callq 0x6520
movq %rax, %rdi
movq -0x10(%rbp), %rax
movl 0x134(%rax), %esi
callq 0x6630
movq %rax, %rdi
movq 0x15ac9(%rip), %rsi     # 0x34f98
callq 0x6580
movq -0x8(%rbp), %rdi
leaq 0x6300(%rip), %rsi      # 0x257df
callq 0x6520
movq %rax, %rdi
movq -0x10(%rbp), %rax
movl 0x138(%rax), %esi
callq 0x6630
movq %rax, %rdi
movq 0x15a98(%rip), %rsi     # 0x34f98
callq 0x6580
movq -0x8(%rbp), %rdi
leaq 0x62dc(%rip), %rsi      # 0x257ec
callq 0x6520
movq %rax, %rdi
movq -0x10(%rbp), %rax
movq 0x140(%rax), %rsi
callq 0x6100
movq %rax, %rdi
movq 0x15a66(%rip), %rsi     # 0x34f98
callq 0x6580
movq -0x8(%rbp), %rdi
leaq 0x62b7(%rip), %rsi      # 0x257f9
callq 0x6520
movq %rax, %rdi
movq -0x10(%rbp), %rax
movq 0x118(%rax), %rsi
callq 0x6100
movq %rax, %rdi
movq 0x15a34(%rip), %rsi     # 0x34f98
callq 0x6580
ud2
nopl (%rax,%rax)