// File: /workspace/github_cpp_makefile_star2_O3/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, %r14
movl 0x8eed(%rip), %r13d     # 0x14220
movl 0x8f46(%rip), %r12d     # 0x14280
addl 0x8eff(%rip), %r12d     # 0x14240
leaq -0x1e8(%rbp), %r15
movq %r15, %rdi
callq 0xd004
leaq 0x47ca(%rip), %rsi      # 0xfb21
leaq -0x48(%rbp), %rdi
movq %r15, %rdx
callq 0xd2c3
movq %r14, -0x108(%rbp)
leaq 0x47bf(%rip), %rsi      # 0xfb30
leaq -0x48(%rbp), %rdi
callq 0x33e0
leaq -0x78(%rbp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xb3a1
movq %rdx, -0x88(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x78(%rbp)
jmp 0xb3a8
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq -0x88(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
callq 0x30d0
leaq -0x98(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xb3ff
movq %rdx, -0xa8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x98(%rbp)
jmp 0xb406
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
leaq -0xa8(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x47ad(%rip), %rsi      # 0xfbd8
callq 0x33e0
leaq -0xc0(%rbp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xb45d
movq %rdx, -0xd0(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xc0(%rbp)
jmp 0xb463
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0xc8(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0xa8(%rbp), %rdi
cmpq %r15, %rdi
je 0xb48e
callq 0x3260
movq -0x88(%rbp), %rdi
cmpq %r14, %rdi
je 0xb49f
callq 0x3260
leaq -0x38(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb4b1
callq 0x3260
leaq 0x467b(%rip), %rsi      # 0xfb33
leaq -0xd0(%rbp), %rdi
callq 0x33e0
leaq 0x470c(%rip), %rsi      # 0xfbd7
leaq -0xd0(%rbp), %rdi
callq 0x33e0
leaq 0x466b(%rip), %rsi      # 0xfb49
leaq -0xd0(%rbp), %rdi
callq 0x33e0
leaq 0x46e6(%rip), %rsi      # 0xfbd7
leaq -0xd0(%rbp), %rdi
callq 0x33e0
leaq -0xa8(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x46cc(%rip), %rsi      # 0xfbda
leaq 0x4742(%rip), %rdx      # 0xfc57
callq 0x750c
leaq -0x88(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x472d(%rip), %rsi      # 0xfc58
leaq 0x47f1(%rip), %rdx      # 0xfd23
callq 0x750c
leaq -0x198(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0xa8(%rbp), %rsi
movq -0xa0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x1a8(%rbp), %rdi
callq 0x7faa
subl %r12d, %r13d
addl $-0x2, %r13d
leaq -0x100(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
movl %r13d, %edx
callq 0xcb6b
movq -0x1a8(%rbp), %rdi
cmpq %r14, %rdi
je 0xb58d
callq 0x3260
movq -0x100(%rbp), %rdx
leaq 0x4789(%rip), %rsi      # 0xfd24
leaq -0x68(%rbp), %rdi
callq 0xd2c3
leaq -0x38(%rbp), %r14
leaq 0x4629(%rip), %rsi      # 0xfbd8
leaq -0x68(%rbp), %rdi
callq 0x33e0
movq %r14, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xb5d8
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0xb5df
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movl %r13d, -0xac(%rbp)
movq 0x8(%rax), %rdx
leaq -0x48(%rbp), %rbx
movq %rdx, 0x8(%rbx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0xa8(%rbp), %rdi
movq %rbx, %rsi
callq 0x32e0
movq (%rbx), %rdi
cmpq %r14, %rdi
je 0xb61d
callq 0x3260
leaq -0x58(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb62f
callq 0x3260
movq -0x100(%rbp), %rax
movq -0xf8(%rbp), %rcx
subq %rax, %rcx
cmpq $0x21, %rcx
jb 0xb724
movl $0x1, %edx
movl $0x2, %r14d
leaq 0x39bf(%rip), %r15      # 0xf01b
leaq -0x68(%rbp), %r12
leaq 0x4571(%rip), %r13      # 0xfbd8
leaq -0xa8(%rbp), %rbx
shlq $0x5, %rdx
addq %rax, %rdx
movq %r12, %rdi
movq %r15, %rsi
callq 0xd2c3
movq %r12, %rdi
movq %r13, %rsi
callq 0x33e0
leaq -0x38(%rbp), %rsi
movq %rsi, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xb6af
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0xb6b5
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %rbx, %rdi
callq 0x30d0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xb6ee
callq 0x3260
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0xb700
callq 0x3260
movl %r14d, %edx
movq -0x100(%rbp), %rax
movq -0xf8(%rbp), %rcx
subq %rax, %rcx
sarq $0x5, %rcx
incl %r14d
cmpq %rdx, %rcx
ja 0xb66e
leaq -0x178(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x88(%rbp), %rsi
movq -0x80(%rbp), %rdx
addq %rsi, %rdx
leaq -0x188(%rbp), %rdi
callq 0x7faa
leaq -0xe8(%rbp), %rdi
leaq -0x188(%rbp), %rsi
movl -0xac(%rbp), %edx
callq 0xcb6b
movq -0x188(%rbp), %rdi
cmpq %r14, %rdi
je 0xb773
callq 0x3260
movq -0xe8(%rbp), %rdx
leaq 0x45a3(%rip), %rsi      # 0xfd24
leaq -0x68(%rbp), %rdi
callq 0xd2c3
leaq -0x38(%rbp), %r14
leaq -0x58(%rbp), %r15
leaq 0x443f(%rip), %rsi      # 0xfbd8
leaq -0x68(%rbp), %rdi
callq 0x33e0
movq %r14, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xb7c2
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0xb7c9
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq -0x48(%rbp), %rbx
movq %rdx, 0x8(%rbx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x88(%rbp), %rdi
movq %rbx, %rsi
callq 0x32e0
movq (%rbx), %rdi
cmpq %r14, %rdi
je 0xb800
callq 0x3260
movq -0x68(%rbp), %rdi
cmpq %r15, %rdi
je 0xb80e
callq 0x3260
movq -0xe8(%rbp), %rax
movq -0xe0(%rbp), %rcx
subq %rax, %rcx
cmpq $0x21, %rcx
jb 0xb903
movl $0x1, %edx
movl $0x2, %r13d
leaq 0x37e0(%rip), %r14      # 0xf01b
leaq -0x68(%rbp), %r15
leaq 0x4392(%rip), %r12      # 0xfbd8
leaq -0x88(%rbp), %rbx
shlq $0x5, %rdx
addq %rax, %rdx
movq %r15, %rdi
movq %r14, %rsi
callq 0xd2c3
movq %r15, %rdi
movq %r12, %rsi
callq 0x33e0
leaq -0x38(%rbp), %rsi
movq %rsi, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xb88e
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0xb894
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %rbx, %rdi
callq 0x30d0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xb8cd
callq 0x3260
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0xb8df
callq 0x3260
movl %r13d, %edx
movq -0xe8(%rbp), %rax
movq -0xe0(%rbp), %rcx
subq %rax, %rcx
sarq $0x5, %rcx
incl %r13d
cmpq %rdx, %rcx
ja 0xb84d
leaq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
movq %rax, (%rdi)
leaq 0x4412(%rip), %rsi      # 0xfd27
leaq 0x4701(%rip), %rdx      # 0x1001d
callq 0x750c
leaq -0x1c8(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
leaq -0xa8(%rbp), %rdx
callq 0xd34e
movq -0x108(%rbp), %r12
movq -0x88(%rbp), %rsi
movq -0x80(%rbp), %rdx
leaq -0x1c8(%rbp), %rdi
callq 0x30d0
leaq -0x118(%rbp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq -0x58(%rbp), %r13
je 0xb98a
movq %rdx, -0x128(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x118(%rbp)
jmp 0xb991
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq -0x128(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
callq 0x30d0
movq %r13, -0x68(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xb9dc
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0xb9e4
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
movq %rdx, -0x60(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x128(%rbp), %rdi
cmpq %r14, %rdi
je 0xba0c
callq 0x3260
leaq -0x1b8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xba21
callq 0x3260
leaq -0x158(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x45eb(%rip), %rsi      # 0x1001e
leaq 0x45eb(%rip), %rdx      # 0x10025
leaq -0x168(%rbp), %rdi
callq 0x750c
leaq -0x138(%rbp), %r15
movq %r15, -0x10(%r15)
movq -0x68(%rbp), %rsi
movq -0x60(%rbp), %rdx
addq %rsi, %rdx
leaq -0x148(%rbp), %rdi
callq 0x7faa
movsbl 0x87aa(%rip), %ecx      # 0x14219
leaq -0x168(%rbp), %rsi
leaq -0x148(%rbp), %rdx
movq %r12, %rdi
callq 0xc463
movq -0x148(%rbp), %rdi
cmpq %r15, %rdi
je 0xba96
callq 0x3260
movq -0x168(%rbp), %rdi
cmpq %r14, %rdi
leaq -0x78(%rbp), %rbx
leaq -0x98(%rbp), %r14
je 0xbab2
callq 0x3260
movq -0x68(%rbp), %rdi
cmpq %r13, %rdi
je 0xbac0
callq 0x3260
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xbad2
callq 0x3260
leaq -0xe8(%rbp), %rdi
callq 0x7c92
leaq -0x100(%rbp), %rdi
callq 0x7c92
movq -0x88(%rbp), %rdi
cmpq %rbx, %rdi
je 0xbafb
callq 0x3260
movq -0xa8(%rbp), %rdi
cmpq %r14, %rdi
je 0xbb0c
callq 0x3260
movq -0xd0(%rbp), %rdi
leaq -0xc0(%rbp), %rax
cmpq %rax, %rdi
je 0xbb24
callq 0x3260
leaq -0x1d8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xbb39
callq 0x3260
movq %r12, %rax
addq $0x1c8, %rsp            # imm = 0x1C8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq -0x148(%rbp), %rdi
cmpq %r15, %rdi
je 0xbb67
callq 0x3260
jmp 0xbb67
movq %rax, %rbx
movq -0x168(%rbp), %rdi
cmpq %r14, %rdi
je 0xbb7d
callq 0x3260
jmp 0xbb7d
movq %rax, %rbx
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
jmp 0xbbab
movq %rax, %rbx
movq -0x128(%rbp), %rdi
cmpq %r14, %rdi
je 0xbba0
callq 0x3260
jmp 0xbba0
movq %rax, %rbx
leaq -0x1b8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xbbba
callq 0x3260
jmp 0xbbba
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
jmp 0xbcba
jmp 0xbc93
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r15, %rdi
jne 0xbcbf
jmp 0xbcc4
jmp 0xbc93
movq %rax, %rbx
movq -0x188(%rbp), %rdi
cmpq %r14, %rdi
jne 0xbcfe
jmp 0xbd03
jmp 0xbcd2
movq %rax, %rbx
leaq -0x58(%rbp), %rax
movq -0x10(%rax), %rdi
jmp 0xbcf9
jmp 0xbcd2
movq %rax, %rbx
movq -0x1a8(%rbp), %rdi
cmpq %r14, %rdi
je 0xbd0f
callq 0x3260
jmp 0xbd0f
movq %rax, %rbx
jmp 0xbd0f
movq %rax, %rbx
jmp 0xbd24
jmp 0xbc8b
movq %rax, %rbx
movq -0xa8(%rbp), %rdi
cmpq %r15, %rdi
je 0xbc60
callq 0x3260
jmp 0xbc60
movq %rax, %rbx
movq -0x88(%rbp), %rdi
cmpq %r14, %rdi
je 0xbc76
callq 0x3260
jmp 0xbc76
movq %rax, %rbx
leaq -0x38(%rbp), %rax
movq -0x10(%rax), %rdi
jmp 0xbd4a
movq %rax, %rbx
jmp 0xbd54
movq %rax, %rbx
jmp 0xbd3c
movq %rax, %rbx
jmp 0xbcc4
movq %rax, %rbx
jmp 0xbcb2
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xbcb2
callq 0x3260
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0xbcc4
callq 0x3260
leaq -0xe8(%rbp), %rdi
callq 0x7c92
jmp 0xbd03
movq %rax, %rbx
jmp 0xbd03
movq %rax, %rbx
jmp 0xbcf1
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xbcf1
callq 0x3260
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0xbd03
callq 0x3260
leaq -0x100(%rbp), %rdi
callq 0x7c92
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0xbd24
callq 0x3260
movq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
cmpq %rax, %rdi
je 0xbd3c
callq 0x3260
movq -0xd0(%rbp), %rdi
leaq -0xc0(%rbp), %rax
cmpq %rax, %rdi
je 0xbd54
callq 0x3260
leaq -0x1d8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xbd69
callq 0x3260
movq %rbx, %rdi
callq 0x3390