// File: /workspace/github_cpp_makefile_star2_O2/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1c8, %rsp            # imm = 0x1C8
movq %rsi, %rbx
movq %rdi, %r12
movl 0x95c9(%rip), %r13d     # 0x12220
movl 0x9622(%rip), %r15d     # 0x12280
addl 0x95db(%rip), %r15d     # 0x12240
leaq -0x1e8(%rbp), %r14
movq %r14, %rdi
callq 0x9fe5
leaq 0x3e7a(%rip), %rsi      # 0xcaf5
leaq -0x70(%rbp), %rdi
movq %r14, %rdx
callq 0xa25b
leaq 0x3e76(%rip), %rdx      # 0xcb04
leaq -0x90(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0xa314
leaq -0xb0(%rbp), %rdi
leaq -0x90(%rbp), %rsi
movq %rbx, %rdx
callq 0xa441
leaq 0x3ef1(%rip), %rdx      # 0xcbac
leaq -0x108(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0xa314
leaq -0xb0(%rbp), %rdi
callq 0x3120
leaq -0x90(%rbp), %rdi
callq 0x3120
leaq -0x70(%rbp), %rdi
callq 0x3120
leaq 0x3e11(%rip), %rsi      # 0xcb07
leaq -0x108(%rbp), %rdi
callq 0x33c0
leaq 0x3ea2(%rip), %rsi      # 0xcbab
leaq -0x108(%rbp), %rdi
callq 0x33c0
leaq 0x3e01(%rip), %rsi      # 0xcb1d
leaq -0x108(%rbp), %rdi
callq 0x33c0
leaq 0x3e7c(%rip), %rsi      # 0xcbab
leaq -0x108(%rbp), %rdi
callq 0x33c0
leaq 0x3e6c(%rip), %rsi      # 0xcbae
leaq -0xb0(%rbp), %rdi
leaq -0x90(%rbp), %rdx
callq 0x30f0
leaq 0x3ed0(%rip), %rsi      # 0xcc2c
leaq -0x90(%rbp), %rdi
leaq -0x70(%rbp), %rdx
callq 0x30f0
leaq -0x1c8(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x3310
subl %r15d, %r13d
addl $-0x2, %r13d
leaq -0xe8(%rbp), %rdi
leaq -0x1c8(%rbp), %rsi
movl %r13d, %edx
callq 0x9bec
leaq -0x1c8(%rbp), %rdi
callq 0x3120
movq -0xe8(%rbp), %rdx
leaq 0x3f42(%rip), %rsi      # 0xccf8
leaq -0x50(%rbp), %rdi
callq 0xa25b
movl %r13d, -0x2c(%rbp)
movq %r12, -0xb8(%rbp)
leaq 0x3ddb(%rip), %rdx      # 0xcbac
leaq -0x70(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0xa314
leaq -0xb0(%rbp), %rdi
leaq -0x70(%rbp), %r12
movq %r12, %rsi
callq 0x32e0
movq %r12, %rdi
callq 0x3120
leaq -0x50(%rbp), %r13
movq %r13, %rdi
callq 0x3120
pushq $0x1
popq %r15
leaq 0x320b(%rip), %rbx      # 0xc01b
leaq 0x3d95(%rip), %r14      # 0xcbac
movl %r15d, %r15d
movq -0xe8(%rbp), %rdx
movq -0xe0(%rbp), %rax
subq %rdx, %rax
sarq $0x5, %rax
cmpq %r15, %rax
jbe 0x8e7b
movq %r15, %rax
shlq $0x5, %rax
addq %rax, %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0xa25b
movq %r12, %rdi
movq %r13, %rsi
movq %r14, %rdx
callq 0xa314
leaq -0xb0(%rbp), %rdi
movq %r12, %rsi
callq 0x33e0
movq %r12, %rdi
callq 0x3120
movq %r13, %rdi
callq 0x3120
incl %r15d
jmp 0x8e17
leaq -0x1a8(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x3310
leaq -0xd0(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
movl -0x2c(%rbp), %edx
callq 0x9bec
leaq -0x1a8(%rbp), %rdi
callq 0x3120
movq -0xd0(%rbp), %rdx
leaq 0x3e3a(%rip), %rsi      # 0xccf8
leaq -0x50(%rbp), %rdi
callq 0xa25b
leaq 0x3cde(%rip), %rdx      # 0xcbac
leaq -0x70(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0xa314
leaq -0x90(%rbp), %rdi
leaq -0x70(%rbp), %r15
movq %r15, %rsi
callq 0x32e0
movq %r15, %rdi
callq 0x3120
leaq -0x50(%rbp), %r12
movq %r12, %rdi
callq 0x3120
pushq $0x1
popq %r14
leaq 0x310e(%rip), %r13      # 0xc01b
leaq 0x3c98(%rip), %rbx      # 0xcbac
movl %r14d, %r14d
movq -0xd0(%rbp), %rdx
movq -0xc8(%rbp), %rax
subq %rdx, %rax
sarq $0x5, %rax
cmpq %r14, %rax
jbe 0x8f78
movq %r14, %rax
shlq $0x5, %rax
addq %rax, %rdx
movq %r12, %rdi
movq %r13, %rsi
callq 0xa25b
movq %r15, %rdi
movq %r12, %rsi
movq %rbx, %rdx
callq 0xa314
leaq -0x90(%rbp), %rdi
movq %r15, %rsi
callq 0x33e0
movq %r15, %rdi
callq 0x3120
movq %r12, %rdi
callq 0x3120
incl %r14d
jmp 0x8f14
leaq 0x3d7c(%rip), %rsi      # 0xccfb
leaq -0x70(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x30f0
leaq -0x188(%rbp), %rdi
leaq -0x108(%rbp), %rsi
leaq -0xb0(%rbp), %rdx
callq 0xa2dc
movq -0xb8(%rbp), %rbx
leaq -0x128(%rbp), %rdi
leaq -0x188(%rbp), %rsi
leaq -0x90(%rbp), %rdx
callq 0xa441
leaq -0x50(%rbp), %rdi
leaq -0x128(%rbp), %rsi
leaq -0x70(%rbp), %rdx
callq 0xa441
leaq -0x128(%rbp), %rdi
callq 0x3120
leaq -0x188(%rbp), %rdi
callq 0x3120
leaq 0x3ff8(%rip), %rsi      # 0xcff2
leaq -0x168(%rbp), %rdi
leaq -0x128(%rbp), %rdx
callq 0x30f0
leaq -0x148(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x3310
movsbl 0x91f5(%rip), %ecx      # 0x12219
leaq -0x168(%rbp), %rsi
leaq -0x148(%rbp), %rdx
movq %rbx, %rdi
callq 0x970d
leaq -0x148(%rbp), %rdi
callq 0x3120
leaq -0x168(%rbp), %rdi
callq 0x3120
leaq -0x50(%rbp), %rdi
callq 0x3120
leaq -0x70(%rbp), %rdi
callq 0x3120
leaq -0xd0(%rbp), %rdi
callq 0x684a
leaq -0xe8(%rbp), %rdi
callq 0x684a
leaq -0x90(%rbp), %rdi
callq 0x3120
leaq -0xb0(%rbp), %rdi
callq 0x3120
leaq -0x108(%rbp), %rdi
callq 0x3120
leaq -0x1e8(%rbp), %rdi
callq 0x3120
movq %rbx, %rax
addq $0x1c8, %rsp            # imm = 0x1C8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0x148(%rbp), %rdi
callq 0x3120
jmp 0x90d5
movq %rax, %rbx
leaq -0x168(%rbp), %rdi
callq 0x3120
jmp 0x90e6
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
jmp 0x9107
movq %rax, %rbx
leaq -0x128(%rbp), %rdi
callq 0x3120
jmp 0x9100
movq %rax, %rbx
leaq -0x188(%rbp), %rdi
callq 0x3120
leaq -0x70(%rbp), %rdi
jmp 0x91bd
movq %rax, %rbx
jmp 0x910c
jmp 0x91c4
jmp 0x91b6
jmp 0x91c4
movq %rax, %rbx
leaq -0x1a8(%rbp), %rdi
jmp 0x91ea
jmp 0x91f1
jmp 0x91e3
jmp 0x91f1
movq %rax, %rbx
leaq -0x1c8(%rbp), %rdi
callq 0x3120
jmp 0x9200
movq %rax, %rbx
jmp 0x9200
movq %rax, %rbx
jmp 0x920c
jmp 0x91a3
movq %rax, %rbx
leaq -0xb0(%rbp), %rdi
callq 0x3120
jmp 0x9181
movq %rax, %rbx
leaq -0x90(%rbp), %rdi
callq 0x3120
jmp 0x9192
movq %rax, %rbx
leaq -0x70(%rbp), %rdi
jmp 0x921f
movq %rax, %rbx
jmp 0x9224
movq %rax, %rbx
jmp 0x9218
movq %rax, %rbx
leaq -0x70(%rbp), %rdi
callq 0x3120
jmp 0x91b9
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x3120
jmp 0x91c7
movq %rax, %rbx
leaq -0xd0(%rbp), %rdi
callq 0x684a
jmp 0x91f4
movq %rax, %rbx
leaq -0x70(%rbp), %rdi
callq 0x3120
jmp 0x91e6
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x3120
jmp 0x91f4
movq %rax, %rbx
leaq -0xe8(%rbp), %rdi
callq 0x684a
leaq -0x90(%rbp), %rdi
callq 0x3120
leaq -0xb0(%rbp), %rdi
callq 0x3120
leaq -0x108(%rbp), %rdi
callq 0x3120
leaq -0x1e8(%rbp), %rdi
callq 0x3120
movq %rbx, %rdi
callq 0x3390