// File: AsherGlick[P]CommentHeader/source/main.cpp
// Function: bsd(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
string bsd(string owner) {
  // Get the width to wrap
  int fillWidth = titleWidth - globalHeaderStyle._TOP_LEFT.size() - globalHeaderStyle._TOP_RIGHT.size();

  // Calculate the Current Year
  string year = thisyear();

  // Top Half of the license
  string content = "Copyright (c) "+year+", "+owner+"\n";
  content += "All rights reserved.\n";
  content += " \n";
  content += "Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: \n";
  content += " \n";

  // Clauses
  string clause1 = "Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n";
  string clause2 = "Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n";

  // Wrap the clauses smaller for 'indentation'
  vector<string> wrappedClause1 = wrap(clause1, fillWidth-2);
  clause1 = "* " + wrappedClause1[0] + "\n";
  for (unsigned int i = 1; i < wrappedClause1.size(); i++) {
    clause1 += "  " + wrappedClause1[i] + "\n";
  }
  vector<string> wrappedClause2 = wrap(clause2, fillWidth-2);
  clause2 = "* " + wrappedClause2[0] + "\n";
  for (unsigned int i = 1; i < wrappedClause2.size(); i++) {
    clause2 += "  " + wrappedClause2[i] + "\n";
  }

  // The actual license
  string license = " \nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n";

  string fullLicense = content + clause1 + clause2 + license;

  return headder("LICENSE", fullLicense, outputRightWallFlag);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x3c0, %rsp            # imm = 0x3C0
movq %rsi, -0x390(%rbp)
movq %rdi, -0x388(%rbp)
movq %rdi, %rax
movq %rax, -0x380(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl 0x10087(%rip), %eax     # 0x21288
movl %eax, -0x378(%rbp)
leaq 0x10092(%rip), %rdi     # 0x212a0
callq 0x31e0
movq %rax, %rcx
movl -0x378(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x374(%rbp)
leaq 0x100b5(%rip), %rdi     # 0x212e0
callq 0x31e0
movq %rax, %rcx
movl -0x374(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x14(%rbp)
leaq -0x38(%rbp), %rdi
movq %rdi, -0x370(%rbp)
callq 0x13330
movq -0x370(%rbp), %rdx
leaq 0x78e5(%rip), %rsi      # 0x18b41
leaq -0xb8(%rbp), %rdi
callq 0x13a20
jmp 0x1126a
leaq 0x78df(%rip), %rdx      # 0x18b50
leaq -0x98(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x13d60
jmp 0x11286
movq -0x390(%rbp), %rdx
leaq -0x78(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x14030
jmp 0x1129f
leaq 0x7952(%rip), %rdx      # 0x18bf8
leaq -0x58(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x13d60
jmp 0x112b5
leaq -0x78(%rbp), %rdi
callq 0x31a0
leaq -0x98(%rbp), %rdi
callq 0x31a0
leaq -0xb8(%rbp), %rdi
callq 0x31a0
leaq 0x7876(%rip), %rsi      # 0x18b53
leaq -0x58(%rbp), %rdi
callq 0x3280
jmp 0x112e8
leaq 0x7908(%rip), %rsi      # 0x18bf7
leaq -0x58(%rbp), %rdi
callq 0x3280
jmp 0x112fa
leaq 0x7868(%rip), %rsi      # 0x18b69
leaq -0x58(%rbp), %rdi
callq 0x3280
jmp 0x1130c
leaq 0x78e4(%rip), %rsi      # 0x18bf7
leaq -0x58(%rbp), %rdi
callq 0x3280
jmp 0x1131e
leaq -0xe9(%rbp), %rdi
movq %rdi, -0x398(%rbp)
callq 0x3470
movq -0x398(%rbp), %rdx
leaq 0x78bb(%rip), %rsi      # 0x18bfa
leaq -0xe8(%rbp), %rdi
callq 0x33a0
jmp 0x1134d
leaq -0xe9(%rbp), %rdi
callq 0x3300
leaq -0x111(%rbp), %rdi
movq %rdi, -0x3a0(%rbp)
callq 0x3470
movq -0x3a0(%rbp), %rdx
leaq 0x78fe(%rip), %rsi      # 0x18c78
leaq -0x110(%rbp), %rdi
callq 0x33a0
jmp 0x11388
leaq -0x111(%rbp), %rdi
callq 0x3300
leaq -0x150(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x3130
jmp 0x113a9
movl -0x14(%rbp), %edx
addl $-0x2, %edx
leaq -0x130(%rbp), %rdi
leaq -0x150(%rbp), %rsi
callq 0x12b90
jmp 0x113c4
leaq -0x150(%rbp), %rdi
callq 0x31a0
xorl %eax, %eax
movl %eax, %esi
leaq -0x130(%rbp), %rdi
callq 0x13920
movq %rax, %rdx
leaq 0x795a(%rip), %rsi      # 0x18d44
leaq -0x190(%rbp), %rdi
callq 0x13a20
jmp 0x113f8
leaq 0x77f9(%rip), %rdx      # 0x18bf8
leaq -0x170(%rbp), %rdi
leaq -0x190(%rbp), %rsi
callq 0x13d60
jmp 0x11414
leaq -0xe8(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0x3350
leaq -0x170(%rbp), %rdi
callq 0x31a0
leaq -0x190(%rbp), %rdi
callq 0x31a0
movl $0x1, -0x194(%rbp)
movl -0x194(%rbp), %eax
movq %rax, -0x3a8(%rbp)
leaq -0x130(%rbp), %rdi
callq 0xd0e0
movq %rax, %rcx
movq -0x3a8(%rbp), %rax
cmpq %rcx, %rax
jae 0x11689
movl -0x194(%rbp), %eax
movl %eax, %esi
leaq -0x130(%rbp), %rdi
callq 0x13920
movq %rax, %rdx
leaq 0x6b88(%rip), %rsi      # 0x1801b
leaq -0x1d8(%rbp), %rdi
callq 0x13a20
jmp 0x114a1
leaq 0x7750(%rip), %rdx      # 0x18bf8
leaq -0x1b8(%rbp), %rdi
leaq -0x1d8(%rbp), %rsi
callq 0x13d60
jmp 0x114bd
leaq -0xe8(%rbp), %rdi
leaq -0x1b8(%rbp), %rsi
callq 0x3370
jmp 0x114d2
leaq -0x1b8(%rbp), %rdi
callq 0x31a0
leaq -0x1d8(%rbp), %rdi
callq 0x31a0
movl -0x194(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x194(%rbp)
jmp 0x11449
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11b55
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11564
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11558
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x78(%rbp), %rdi
callq 0x31a0
leaq -0x98(%rbp), %rdi
callq 0x31a0
leaq -0xb8(%rbp), %rdi
callq 0x31a0
jmp 0x11b55
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11b4c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0xe9(%rbp), %rdi
callq 0x3300
jmp 0x11b4c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x111(%rbp), %rdi
callq 0x3300
jmp 0x11b40
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11b34
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x150(%rbp), %rdi
callq 0x31a0
jmp 0x11b34
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11b28
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x190(%rbp), %rdi
callq 0x31a0
jmp 0x11b28
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11678
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x1b8(%rbp), %rdi
callq 0x31a0
leaq -0x1d8(%rbp), %rdi
callq 0x31a0
jmp 0x11b28
leaq -0x210(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x3130
jmp 0x1169e
movl -0x14(%rbp), %edx
addl $-0x2, %edx
leaq -0x1f0(%rbp), %rdi
leaq -0x210(%rbp), %rsi
callq 0x12b90
jmp 0x116b9
leaq -0x210(%rbp), %rdi
callq 0x31a0
xorl %eax, %eax
movl %eax, %esi
leaq -0x1f0(%rbp), %rdi
callq 0x13920
movq %rax, %rdx
leaq 0x7665(%rip), %rsi      # 0x18d44
leaq -0x250(%rbp), %rdi
callq 0x13a20
jmp 0x116ed
leaq 0x7504(%rip), %rdx      # 0x18bf8
leaq -0x230(%rbp), %rdi
leaq -0x250(%rbp), %rsi
callq 0x13d60
jmp 0x11709
leaq -0x110(%rbp), %rdi
leaq -0x230(%rbp), %rsi
callq 0x3350
leaq -0x230(%rbp), %rdi
callq 0x31a0
leaq -0x250(%rbp), %rdi
callq 0x31a0
movl $0x1, -0x254(%rbp)
movl -0x254(%rbp), %eax
movq %rax, -0x3b0(%rbp)
leaq -0x1f0(%rbp), %rdi
callq 0xd0e0
movq %rax, %rcx
movq -0x3b0(%rbp), %rax
cmpq %rcx, %rax
jae 0x11893
movl -0x254(%rbp), %eax
movl %eax, %esi
leaq -0x1f0(%rbp), %rdi
callq 0x13920
movq %rax, %rdx
leaq 0x6893(%rip), %rsi      # 0x1801b
leaq -0x298(%rbp), %rdi
callq 0x13a20
jmp 0x11796
leaq 0x745b(%rip), %rdx      # 0x18bf8
leaq -0x278(%rbp), %rdi
leaq -0x298(%rbp), %rsi
callq 0x13d60
jmp 0x117b2
leaq -0x110(%rbp), %rdi
leaq -0x278(%rbp), %rsi
callq 0x3370
jmp 0x117c7
leaq -0x278(%rbp), %rdi
callq 0x31a0
leaq -0x298(%rbp), %rdi
callq 0x31a0
movl -0x254(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x254(%rbp)
jmp 0x1173e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x210(%rbp), %rdi
callq 0x31a0
jmp 0x11b28
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11b1c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x250(%rbp), %rdi
callq 0x31a0
jmp 0x11b1c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11882
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x278(%rbp), %rdi
callq 0x31a0
leaq -0x298(%rbp), %rdi
callq 0x31a0
jmp 0x11b1c
leaq -0x2b9(%rbp), %rdi
movq %rdi, -0x3b8(%rbp)
callq 0x3470
movq -0x3b8(%rbp), %rdx
leaq 0x7493(%rip), %rsi      # 0x18d47
leaq -0x2b8(%rbp), %rdi
callq 0x33a0
jmp 0x118c2
leaq -0x2b9(%rbp), %rdi
callq 0x3300
leaq -0x320(%rbp), %rdi
leaq -0x58(%rbp), %rsi
leaq -0xe8(%rbp), %rdx
callq 0x13c50
jmp 0x118e7
leaq -0x300(%rbp), %rdi
leaq -0x320(%rbp), %rsi
leaq -0x110(%rbp), %rdx
callq 0x14030
jmp 0x11903
leaq -0x2e0(%rbp), %rdi
leaq -0x300(%rbp), %rsi
leaq -0x2b8(%rbp), %rdx
callq 0x14030
jmp 0x1191f
leaq -0x300(%rbp), %rdi
callq 0x31a0
leaq -0x320(%rbp), %rdi
callq 0x31a0
leaq -0x341(%rbp), %rdi
movq %rdi, -0x3c0(%rbp)
callq 0x3470
movq -0x3c0(%rbp), %rdx
leaq 0x76e6(%rip), %rsi      # 0x1903e
leaq -0x340(%rbp), %rdi
callq 0x33a0
jmp 0x11966
leaq -0x368(%rbp), %rdi
leaq -0x2e0(%rbp), %rsi
callq 0x3130
jmp 0x1197b
movq -0x388(%rbp), %rdi
movsbl 0xf8f8(%rip), %ecx      # 0x21281
leaq -0x340(%rbp), %rsi
leaq -0x368(%rbp), %rdx
callq 0x12370
jmp 0x1199e
leaq -0x368(%rbp), %rdi
callq 0x31a0
leaq -0x340(%rbp), %rdi
callq 0x31a0
leaq -0x341(%rbp), %rdi
callq 0x3300
leaq -0x2e0(%rbp), %rdi
callq 0x31a0
leaq -0x2b8(%rbp), %rdi
callq 0x31a0
leaq -0x1f0(%rbp), %rdi
callq 0xcae0
leaq -0x130(%rbp), %rdi
callq 0xcae0
leaq -0x110(%rbp), %rdi
callq 0x31a0
leaq -0xe8(%rbp), %rdi
callq 0x31a0
leaq -0x58(%rbp), %rdi
callq 0x31a0
leaq -0x38(%rbp), %rdi
callq 0x31a0
movq -0x380(%rbp), %rax
addq $0x3c0, %rsp            # imm = 0x3C0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x2b9(%rbp), %rdi
callq 0x3300
jmp 0x11b1c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11b10
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11a98
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x300(%rbp), %rdi
callq 0x31a0
leaq -0x320(%rbp), %rdi
callq 0x31a0
jmp 0x11b10
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11af8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11aec
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x368(%rbp), %rdi
callq 0x31a0
leaq -0x340(%rbp), %rdi
callq 0x31a0
leaq -0x341(%rbp), %rdi
callq 0x3300
leaq -0x2e0(%rbp), %rdi
callq 0x31a0
leaq -0x2b8(%rbp), %rdi
callq 0x31a0
leaq -0x1f0(%rbp), %rdi
callq 0xcae0
leaq -0x130(%rbp), %rdi
callq 0xcae0
leaq -0x110(%rbp), %rdi
callq 0x31a0
leaq -0xe8(%rbp), %rdi
callq 0x31a0
leaq -0x58(%rbp), %rdi
callq 0x31a0
leaq -0x38(%rbp), %rdi
callq 0x31a0
movq -0xc0(%rbp), %rdi
callq 0x3460
nopw (%rax,%rax)