// File: /workspace/github_cpp_makefile_star2_O1/temelmertcan[P]multgen/src/multgen.cpp
// Function: enter_license(std::queue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::deque<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>&)
void enter_license (queue<string>& verilog) {

  verilog.push("// Note: The license below is based on the template at:");
  verilog.push("// http://opensource.org/licenses/BSD-3-Clause");

  verilog.push("// Copyright (C) 2020 Regents of the University of Texas");
  verilog.push("//All rights reserved.");
  verilog.push("");
  verilog.push("// Redistribution and use in source and binary forms, with or without");
  verilog.push("// modification, are permitted provided that the following conditions are");
  verilog.push("// met:");
  verilog.push("");
  verilog.push("// o Redistributions of source code must retain the above copyright");
  verilog.push("//   notice, this list of conditions and the following disclaimer.");
  verilog.push("");
  verilog.push("// o Redistributions in binary form must reproduce the above copyright");
  verilog.push("//   notice, this list of conditions and the following disclaimer in the");
  verilog.push("//   documentation and/or other materials provided with the distribution.");
  verilog.push("");
  verilog.push("// o Neither the name of the copyright holders nor the names of its");
  verilog.push("//   contributors may be used to endorse or promote products derived");
  verilog.push("//   from this software without specific prior written permission.");
  verilog.push("");
  verilog.push("// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS");
  verilog.push("// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT");
  verilog.push("// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR");
  verilog.push("// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT");
  verilog.push("// HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,");
  verilog.push("// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT");
  verilog.push("// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,");
  verilog.push("// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY");
  verilog.push("// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT");
  verilog.push("// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE");
  verilog.push("// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.");
  verilog.push("");
  verilog.push("// Original Author(s):");
  verilog.push("// Mertcan Temel         <mert@utexas.edu>\n");

  verilog.push("// DO NOT REMOVE:");
  verilog.push("// This file is generated by Temel's multiplier generator. Download from https://github.com/temelmertcan/multgen.");

  verilog.push("");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq %rdi, %rbx
leaq -0x20(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x7391b(%rip), %rsi     # 0x77004
leaq 0x7394b(%rip), %rdx     # 0x7703b
leaq -0x30(%rbp), %rdi
callq 0x2b022
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2ad60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3713
callq 0x31d0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x7391b(%rip), %rsi     # 0x7703c
leaq 0x73942(%rip), %rdx     # 0x7706a
callq 0x2b022
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2ad60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3747
callq 0x31d0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x73916(%rip), %rsi     # 0x7706b
leaq 0x73947(%rip), %rdx     # 0x770a3
callq 0x2b022
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2ad60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x377b
callq 0x31d0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x7391b(%rip), %rsi     # 0x770a4
leaq 0x7392a(%rip), %rdx     # 0x770ba
callq 0x2b022
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2ad60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x37af
callq 0x31d0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x76e44(%rip), %rdx     # 0x7a601
movq %rdx, %rsi
callq 0x2b022
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2ad60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x37df
callq 0x31d0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x738ce(%rip), %rsi     # 0x770bb
leaq 0x7390c(%rip), %rdx     # 0x77100
callq 0x2b022
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2ad60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3813
callq 0x31d0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x738e0(%rip), %rsi     # 0x77101
leaq 0x73922(%rip), %rdx     # 0x7714a
callq 0x2b022
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2ad60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3847
callq 0x31d0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x738f6(%rip), %rsi     # 0x7714b
leaq 0x738f6(%rip), %rdx     # 0x77152
callq 0x2b022
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2ad60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x387b
callq 0x31d0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x76d78(%rip), %rdx     # 0x7a601
movq %rdx, %rsi
callq 0x2b022
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2ad60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x38ab
callq 0x31d0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x7389a(%rip), %rsi     # 0x77153
leaq 0x738d6(%rip), %rdx     # 0x77196
callq 0x2b022
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2ad60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x38df
callq 0x31d0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x738aa(%rip), %rsi     # 0x77197
leaq 0x738e5(%rip), %rdx     # 0x771d9
callq 0x2b022
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2ad60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3913
callq 0x31d0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x76ce0(%rip), %rdx     # 0x7a601
movq %rdx, %rsi
callq 0x2b022
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2ad60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3943
callq 0x31d0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x73889(%rip), %rsi     # 0x771da
leaq 0x738c8(%rip), %rdx     # 0x77220
callq 0x2b022
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2ad60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3977
callq 0x31d0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x7389c(%rip), %rsi     # 0x77221
leaq 0x738dd(%rip), %rdx     # 0x77269
callq 0x2b022
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2ad60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x39ab
callq 0x31d0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x738b1(%rip), %rsi     # 0x7726a
leaq 0x738f3(%rip), %rdx     # 0x772b3
callq 0x2b022
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2ad60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x39df
callq 0x31d0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x76c14(%rip), %rdx     # 0x7a601
movq %rdx, %rsi
callq 0x2b022
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2ad60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3a0f
callq 0x31d0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x73897(%rip), %rsi     # 0x772b4
leaq 0x738d3(%rip), %rdx     # 0x772f7
callq 0x2b022
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2ad60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3a43
callq 0x31d0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x738a7(%rip), %rsi     # 0x772f8
leaq 0x738e4(%rip), %rdx     # 0x7733c
callq 0x2b022
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2ad60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3a77
callq 0x31d0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x738b8(%rip), %rsi     # 0x7733d
leaq 0x738f3(%rip), %rdx     # 0x7737f
callq 0x2b022
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2ad60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3aab
callq 0x31d0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x76b48(%rip), %rdx     # 0x7a601
movq %rdx, %rsi
callq 0x2b022
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2ad60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3adb
callq 0x31d0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x73897(%rip), %rsi     # 0x77380
leaq 0x738d6(%rip), %rdx     # 0x773c6
callq 0x2b022
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2ad60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3b0f
callq 0x31d0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x738aa(%rip), %rsi     # 0x773c7
leaq 0x738e7(%rip), %rdx     # 0x7740b
callq 0x2b022
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2ad60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3b43
callq 0x31d0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x738bb(%rip), %rsi     # 0x7740c
leaq 0x738fc(%rip), %rdx     # 0x77454
callq 0x2b022
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2ad60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3b77
callq 0x31d0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x738d0(%rip), %rsi     # 0x77455
leaq 0x73910(%rip), %rdx     # 0x7749c
callq 0x2b022
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2ad60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3bab
callq 0x31d0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x738e4(%rip), %rsi     # 0x7749d
leaq 0x73926(%rip), %rdx     # 0x774e6
callq 0x2b022
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2ad60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3bdf
callq 0x31d0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x738fa(%rip), %rsi     # 0x774e7
leaq 0x73936(%rip), %rdx     # 0x7752a
callq 0x2b022
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2ad60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3c13
callq 0x31d0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x7390a(%rip), %rsi     # 0x7752b
leaq 0x7394b(%rip), %rdx     # 0x77573
callq 0x2b022
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2ad60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3c47
callq 0x31d0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x7391f(%rip), %rsi     # 0x77574
leaq 0x73960(%rip), %rdx     # 0x775bc
callq 0x2b022
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2ad60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3c7b
callq 0x31d0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x73934(%rip), %rsi     # 0x775bd
leaq 0x73973(%rip), %rdx     # 0x77603
callq 0x2b022
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2ad60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3caf
callq 0x31d0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x73947(%rip), %rsi     # 0x77604
leaq 0x73988(%rip), %rdx     # 0x7764c
callq 0x2b022
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2ad60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3ce3
callq 0x31d0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x7395c(%rip), %rsi     # 0x7764d
leaq 0x7399c(%rip), %rdx     # 0x77694
callq 0x2b022
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2ad60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3d17
callq 0x31d0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x768dc(%rip), %rdx     # 0x7a601
movq %rdx, %rsi
callq 0x2b022
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2ad60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3d47
callq 0x31d0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x73940(%rip), %rsi     # 0x77695
leaq 0x7394f(%rip), %rdx     # 0x776ab
callq 0x2b022
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2ad60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3d7b
callq 0x31d0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x73923(%rip), %rsi     # 0x776ac
leaq 0x73947(%rip), %rdx     # 0x776d7
callq 0x2b022
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2ad60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3daf
callq 0x31d0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x7391b(%rip), %rsi     # 0x776d8
leaq 0x73925(%rip), %rdx     # 0x776e9
callq 0x2b022
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2ad60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3de3
callq 0x31d0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x738f9(%rip), %rsi     # 0x776ea
leaq 0x73963(%rip), %rdx     # 0x7775b
callq 0x2b022
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2ad60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3e17
callq 0x31d0
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x767dc(%rip), %rdx     # 0x7a601
movq %rdx, %rsi
callq 0x2b022
leaq -0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0x2ad60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3e47
callq 0x31d0
addq $0x20, %rsp
popq %rbx
popq %r14
popq %rbp
retq
jmp 0x3f0a
jmp 0x3f1d
jmp 0x3f0a
jmp 0x3f1d
jmp 0x3f0a
jmp 0x3f1d
jmp 0x3f0a
jmp 0x3f1d
jmp 0x3f0a
jmp 0x3f1d
jmp 0x3f0a
jmp 0x3f1d
jmp 0x3f0a
jmp 0x3f1d
jmp 0x3f0a
jmp 0x3f1d
jmp 0x3f0a
jmp 0x3f1d
jmp 0x3f0a
jmp 0x3f1d
jmp 0x3f0a
jmp 0x3f1d
jmp 0x3f0a
jmp 0x3f1d
jmp 0x3f0a
jmp 0x3f1d
jmp 0x3f0a
jmp 0x3f1d
jmp 0x3f0a
jmp 0x3f1d
jmp 0x3f0a
jmp 0x3f1d
jmp 0x3f0a
jmp 0x3f1d
jmp 0x3f0a
jmp 0x3f1d
jmp 0x3f0a
jmp 0x3f1d
jmp 0x3f0a
jmp 0x3f1d
jmp 0x3f0a
jmp 0x3f1d
jmp 0x3f0a
jmp 0x3f1d
jmp 0x3f0a
jmp 0x3f1d
jmp 0x3f0a
jmp 0x3f1d
jmp 0x3f0a
jmp 0x3f1d
jmp 0x3f0a
jmp 0x3f1d
jmp 0x3f0a
jmp 0x3f1d
jmp 0x3f0a
jmp 0x3f1d
jmp 0x3f0a
jmp 0x3f1d
jmp 0x3f0a
jmp 0x3f1d
jmp 0x3f0a
jmp 0x3f1d
jmp 0x3f0a
jmp 0x3f1d
jmp 0x3f0a
jmp 0x3f1d
jmp 0x3f0a
jmp 0x3f1d
jmp 0x3f0a
jmp 0x3f1d
jmp 0x3f0a
jmp 0x3f1d
movq %rax, %rbx
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3f20
callq 0x31d0
jmp 0x3f20
movq %rax, %rbx
movq %rbx, %rdi
callq 0x33a0