// File: AsherGlick[P]CommentHeader/source/main.cpp
// Function: signiture[abi:cxx11]()
string signiture() {
  struct passwd *pw = getpwuid(getuid());
  const char *homedir = pw->pw_dir;
  string path = string(homedir) + "/.signaturesource";

  string signature = "";
  string line;
  ifstream myfile;
  myfile.open(path.c_str());
  if (myfile.is_open()) {
    getline(myfile, line);
    signature += line;
    while (myfile.good()) {
      getline(myfile, line);
      signature += '\n' + line;
    }
    myfile.close();
  }
  else {
    cout << "Unable to open signature file" << endl;
    cout << path;
    return "";
  }

  outputAlignmentFlag = 'm';
  return headder("SIGNATURE", signature, outputRightWallFlag);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x380, %rsp            # imm = 0x380
movq %rdi, -0x350(%rbp)
movq %rdi, %rax
movq %rax, -0x348(%rbp)
movq %rdi, -0x8(%rbp)
callq 0x3150
movl %eax, %edi
callq 0x3340
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x340(%rbp)
leaq -0x59(%rbp), %rdi
movq %rdi, -0x338(%rbp)
callq 0x3470
movq -0x340(%rbp), %rsi
movq -0x338(%rbp), %rdx
leaq -0x58(%rbp), %rdi
callq 0x33a0
jmp 0x10db0
leaq 0x7d50(%rip), %rdx      # 0x18b07
leaq -0x38(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x13d60
jmp 0x10dc6
leaq -0x58(%rbp), %rdi
callq 0x31a0
leaq -0x59(%rbp), %rdi
callq 0x3300
leaq -0x91(%rbp), %rdi
movq %rdi, -0x358(%rbp)
callq 0x3470
movq -0x358(%rbp), %rdx
leaq 0x7e00(%rip), %rsi      # 0x18bf9
leaq -0x90(%rbp), %rdi
callq 0x33a0
jmp 0x10e07
leaq -0x91(%rbp), %rdi
callq 0x3300
leaq -0xb8(%rbp), %rdi
callq 0x33b0
leaq -0x2c0(%rbp), %rdi
callq 0x3320
jmp 0x10e2d
leaq -0x38(%rbp), %rdi
callq 0x3120
movq %rax, %rsi
leaq -0x2c0(%rbp), %rdi
movl $0x8, %edx
callq 0x31c0
jmp 0x10e4c
leaq -0x2c0(%rbp), %rdi
callq 0x3420
movb %al, -0x359(%rbp)
jmp 0x10e60
movb -0x359(%rbp), %al
testb $0x1, %al
jne 0x10e6f
jmp 0x10fbf
leaq -0x2c0(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x3070
jmp 0x10e84
leaq -0x90(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x3370
jmp 0x10e99
jmp 0x10e9b
movq -0x2c0(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x2c0(%rbp,%rax), %rdi
callq 0x3440
movb %al, -0x35a(%rbp)
jmp 0x10ebb
movb -0x35a(%rbp), %al
testb $0x1, %al
jne 0x10eca
jmp 0x10fac
leaq -0x2c0(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x3070
jmp 0x10edf
leaq -0x2e0(%rbp), %rdi
movl $0xa, %esi
leaq -0xb8(%rbp), %rdx
callq 0x13f30
jmp 0x10ef9
leaq -0x90(%rbp), %rdi
leaq -0x2e0(%rbp), %rsi
callq 0x3370
jmp 0x10f0e
leaq -0x2e0(%rbp), %rdi
callq 0x31a0
jmp 0x10e9b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x10f42
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x31a0
leaq -0x59(%rbp), %rdi
callq 0x3300
jmp 0x111bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x91(%rbp), %rdi
callq 0x3300
jmp 0x111b6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x1119e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x11192
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x2e0(%rbp), %rdi
callq 0x31a0
jmp 0x11192
leaq -0x2c0(%rbp), %rdi
callq 0x3080
jmp 0x10fba
jmp 0x11069
movq 0xfffa(%rip), %rdi      # 0x20fc0
leaq 0x7b4c(%rip), %rsi      # 0x18b19
callq 0x32a0
movq %rax, -0x368(%rbp)
jmp 0x10fdb
movq -0x368(%rbp), %rdi
movq 0xffc7(%rip), %rsi      # 0x20fb0
callq 0x32e0
jmp 0x10ff0
movq 0xffc9(%rip), %rdi      # 0x20fc0
leaq -0x38(%rbp), %rsi
callq 0x3230
jmp 0x11002
leaq -0x2e1(%rbp), %rdi
movq %rdi, -0x370(%rbp)
callq 0x3470
movq -0x350(%rbp), %rdi
movq -0x370(%rbp), %rdx
leaq 0x7bcf(%rip), %rsi      # 0x18bf9
callq 0x33a0
jmp 0x11031
leaq -0x2e1(%rbp), %rdi
callq 0x3300
movl $0x1, -0x2e8(%rbp)
jmp 0x11155
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x2e1(%rbp), %rdi
callq 0x3300
jmp 0x11192
movb $0x6d, 0x10214(%rip)    # 0x21284
leaq -0x309(%rbp), %rdi
movq %rdi, -0x378(%rbp)
callq 0x3470
movq -0x378(%rbp), %rdx
leaq 0x7aa6(%rip), %rsi      # 0x18b37
leaq -0x308(%rbp), %rdi
callq 0x33a0
jmp 0x1109f
leaq -0x330(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x3130
jmp 0x110b4
movq -0x350(%rbp), %rdi
movsbl 0x101bf(%rip), %ecx     # 0x21281
leaq -0x308(%rbp), %rsi
leaq -0x330(%rbp), %rdx
callq 0x12370
jmp 0x110d7
leaq -0x330(%rbp), %rdi
callq 0x31a0
leaq -0x308(%rbp), %rdi
callq 0x31a0
leaq -0x309(%rbp), %rdi
callq 0x3300
movl $0x1, -0x2e8(%rbp)
jmp 0x11155
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x11147
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x1113b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x330(%rbp), %rdi
callq 0x31a0
leaq -0x308(%rbp), %rdi
callq 0x31a0
leaq -0x309(%rbp), %rdi
callq 0x3300
jmp 0x11192
leaq -0x2c0(%rbp), %rdi
callq 0x30a0
leaq -0xb8(%rbp), %rdi
callq 0x31a0
leaq -0x90(%rbp), %rdi
callq 0x31a0
leaq -0x38(%rbp), %rdi
callq 0x31a0
movq -0x348(%rbp), %rax
addq $0x380, %rsp            # imm = 0x380
popq %rbp
retq
leaq -0x2c0(%rbp), %rdi
callq 0x30a0
leaq -0xb8(%rbp), %rdi
callq 0x31a0
leaq -0x90(%rbp), %rdi
callq 0x31a0
leaq -0x38(%rbp), %rdi
callq 0x31a0
movq -0x68(%rbp), %rdi
callq 0x3460
nopl (%rax,%rax)