// File: /workspace/github_cpp_makefile_star2_O2/Sooryakiran[P]dotV/src/verilog.cpp
// Function: CARRY_SAVE_ADDER::CARRY_SAVE_ADDER(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<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>>>>, std::vector<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>>>>, int)
CARRY_SAVE_ADDER::CARRY_SAVE_ADDER(string name, vector<wire> input_wires, vector<wire> output_wires, int n_bits){
    /*------------------------------------------------------------------------------------------
    A Carry Save Adder is constructed by stacking Full Adders together.
    ------------------------------------------------------------------------------------------*/
    this->name = name;
    this->inputs = input_wires;
    this->outputs = output_wires;
    this->n_bits = n_bits;

    this->declare("A", CHIP_INPUTS);
    this->declare("B", CHIP_INPUTS);
    this->declare("Cin", CHIP_INPUTS);
    this->declare("SUM", CHIP_OUTPUTS);
    this->declare("Cout", CHIP_OUTPUTS);
    this->declare("Overflow", CHIP_OUTPUTS, 1);

    this->verilog("assign Cout[0] = 0;");
    for(int n=0; n<n_bits; n++){
        string slice = "[" + to_string(n) + "]";
        if(n + 1 != n_bits){
            FULL_ADDER curr_full_adder("CSA_FA_" + to_string(n),
                                    {"A" + slice, "B" + slice, "Cin" + slice},
                                    {"SUM" + slice, "Cout[" + to_string(n+1) + "]"});
            this->add_submodule(curr_full_adder);
        }
        else{
            FULL_ADDER curr_full_adder("CSA_FA_" + to_string(n),
                                    {"A" + slice, "B" + slice, "Cin" + slice},
                                    {"SUM" + slice, "Overflow"});
            
            this->add_submodule(curr_full_adder);
        }
    }

    this->definition = this->auto_gen("module CARRY_SAVE_ADDER_" + to_string(n_bits) + "_BIT");
    this->generate = "CARRY_SAVE_ADDER_" + to_string(n_bits) + "_BIT " + this->name + "(" + this->inputs.at(0) + ", " + this->inputs.at(1) + ", " + this->inputs.at(2) + ", " + this->outputs.at(0) + ", " + this->outputs.at(1) + ", " + this->outputs.at(2) + ");";

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x8f8, %rsp            # imm = 0x8F8
movl %r8d, -0x2c(%rbp)
movq %rcx, %rbx
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %r12
callq 0xa690
movq %r12, %rdi
movq %r15, %rsi
movq %r12, -0x38(%rbp)
callq 0xa410
leaq 0x80(%r12), %rdi
movq %rdi, -0x40(%rbp)
movq %r14, %rsi
callq 0xa810
leaq 0x98(%r12), %rdi
movq %rdi, -0xb8(%rbp)
movq %rbx, %rsi
callq 0xa810
movl -0x2c(%rbp), %eax
movl %eax, 0x190(%r12)
leaq 0x86c1(%rip), %rsi      # 0x1f6f2
leaq -0x428(%rbp), %rdi
leaq -0x5f0(%rbp), %rdx
callq 0xac60
leaq -0x428(%rbp), %rsi
movq %r12, %rdi
xorl %edx, %edx
callq 0xa270
leaq -0x428(%rbp), %rdi
callq 0xa370
leaq 0x8450(%rip), %rsi      # 0x1f4b8
leaq -0x408(%rbp), %rdi
leaq -0x5f0(%rbp), %rdx
callq 0xac60
leaq -0x408(%rbp), %rsi
movq -0x38(%rbp), %rdi
xorl %edx, %edx
callq 0xa270
leaq -0x408(%rbp), %rdi
callq 0xa370
leaq 0x841a(%rip), %rsi      # 0x1f4ba
leaq -0x3e8(%rbp), %rdi
leaq -0x5f0(%rbp), %rdx
callq 0xac60
leaq -0x3e8(%rbp), %rsi
movq -0x38(%rbp), %rdi
xorl %edx, %edx
callq 0xa270
leaq -0x3e8(%rbp), %rdi
callq 0xa370
leaq 0x8709(%rip), %rsi      # 0x1f7e1
leaq -0x3c8(%rbp), %rdi
leaq -0x5f0(%rbp), %rdx
callq 0xac60
leaq -0x3c8(%rbp), %rsi
pushq $0x1
popq %rdx
movq -0x38(%rbp), %rdi
callq 0xa270
leaq -0x3c8(%rbp), %rdi
callq 0xa370
leaq 0x83af(%rip), %rsi      # 0x1f4c0
leaq -0x3a8(%rbp), %rdi
leaq -0x5f0(%rbp), %rdx
callq 0xac60
leaq -0x3a8(%rbp), %rsi
pushq $0x1
popq %rdx
movq -0x38(%rbp), %rdi
callq 0xa270
leaq -0x3a8(%rbp), %rdi
callq 0xa370
leaq 0x869b(%rip), %rsi      # 0x1f7e5
leaq -0x388(%rbp), %rdi
leaq -0x5f0(%rbp), %rdx
callq 0xac60
leaq -0x388(%rbp), %rsi
pushq $0x1
popq %rcx
movq -0x38(%rbp), %rdi
movl %ecx, %edx
callq 0xaea0
leaq -0x388(%rbp), %rdi
callq 0xa370
leaq 0x8669(%rip), %rsi      # 0x1f7ee
leaq -0x368(%rbp), %rdi
leaq -0x5f0(%rbp), %rdx
callq 0xac60
movq -0x38(%rbp), %rbx
leaq 0xc8(%rbx), %rdi
leaq -0x368(%rbp), %rsi
callq 0xa3e0
leaq -0x368(%rbp), %rdi
callq 0xa370
leaq 0x68(%rbx), %rax
movq %rax, -0x50(%rbp)
xorl %r14d, %r14d
movl -0x2c(%rbp), %eax
testl %eax, %eax
movl $0x0, %ecx
cmovgl %eax, %ecx
movl %ecx, -0x44(%rbp)
leaq -0x198(%rbp), %r13
leaq -0x5f0(%rbp), %rbx
leaq -0x118(%rbp), %r12
cmpl -0x44(%rbp), %r14d
je 0x175a3
movq %r13, %rdi
movl %r14d, %esi
callq 0xa9a0
movq %rbx, %rdi
leaq 0x7fa9(%rip), %rsi      # 0x1f1b3
movq %r13, %rdx
callq 0xac40
leaq -0x70(%rbp), %rdi
movq %rbx, %rsi
leaq 0x8003(%rip), %rdx      # 0x1f223
callq 0xa150
movq %rbx, %rdi
callq 0xa370
movq %r13, %rdi
callq 0xa370
leal 0x1(%r14), %ebx
cmpl -0x2c(%rbp), %ebx
jne 0x173c0
movq %r12, %r15
movq %r12, %rdi
movl %r14d, %esi
callq 0xa9a0
leaq -0x328(%rbp), %rdi
leaq 0x85a4(%rip), %rsi      # 0x1f802
movq %r15, %rdx
callq 0xac40
movq %r13, %rdi
leaq 0x8482(%rip), %rsi      # 0x1f6f2
leaq -0x70(%rbp), %r15
movq %r15, %rdx
callq 0xa6c0
leaq -0x178(%rbp), %rdi
movq %rdi, %r14
leaq 0x822b(%rip), %rsi      # 0x1f4b8
movq %r15, %rdx
callq 0xa6c0
leaq -0x158(%rbp), %rdi
movq %rdi, %r14
leaq 0x8214(%rip), %rsi      # 0x1f4ba
movq %r15, %rdx
callq 0xa6c0
leaq -0x1b0(%rbp), %rdi
movq %r13, %rsi
pushq $0x3
popq %rdx
leaq -0xf8(%rbp), %rcx
callq 0xa170
leaq -0xb0(%rbp), %rdi
leaq 0x850c(%rip), %rsi      # 0x1f7e1
leaq -0x70(%rbp), %rdx
callq 0xa6c0
leaq -0x90(%rbp), %rdi
leaq 0x84f9(%rip), %rsi      # 0x1f7e5
leaq -0xd8(%rbp), %rdx
callq 0xac60
leaq -0x440(%rbp), %r14
movq %r14, %rdi
leaq -0xb0(%rbp), %rsi
pushq $0x2
popq %rdx
leaq -0x138(%rbp), %rcx
callq 0xa170
leaq -0x5f0(%rbp), %rdi
leaq -0x328(%rbp), %rsi
leaq -0x1b0(%rbp), %rdx
movq %r14, %rcx
callq 0xa480
movq %r14, %rdi
callq 0xa550
pushq $0x20
popq %r14
leaq (%r14,%rbp), %rdi
addq $-0xb0, %rdi
callq 0xa370
addq $-0x20, %r14
cmpq $-0x20, %r14
jne 0x17341
leaq -0x1b0(%rbp), %rdi
callq 0xa550
pushq $0x40
popq %r14
leaq (%r14,%rbp), %rdi
addq $-0x198, %rdi           # imm = 0xFE68
callq 0xa370
addq $-0x20, %r14
cmpq $-0x20, %r14
jne 0x1736b
leaq -0x328(%rbp), %rdi
callq 0xa370
movq %r12, %rdi
callq 0xa370
leaq -0x788(%rbp), %r14
movq %r14, %rdi
leaq -0x5f0(%rbp), %rsi
callq 0xa850
movq -0x50(%rbp), %rdi
movq %r14, %rsi
callq 0xa600
jmp 0x17577
movq %r12, %r15
movq %r12, %rdi
movl %r14d, %esi
callq 0xa9a0
leaq -0x348(%rbp), %rdi
leaq 0x8426(%rip), %rsi      # 0x1f802
movq %r15, %rdx
callq 0xac40
movq %r13, %rdi
leaq 0x8304(%rip), %rsi      # 0x1f6f2
leaq -0x70(%rbp), %r15
movq %r15, %rdx
callq 0xa6c0
leaq -0x178(%rbp), %rdi
movq %rdi, %r14
leaq 0x80ad(%rip), %rsi      # 0x1f4b8
movq %r15, %rdx
callq 0xa6c0
leaq -0x158(%rbp), %rdi
movq %rdi, %r14
leaq 0x8096(%rip), %rsi      # 0x1f4ba
movq %r15, %rdx
callq 0xa6c0
leaq -0x1c8(%rbp), %rdi
movq %r13, %rsi
pushq $0x3
popq %rdx
leaq -0x138(%rbp), %rcx
callq 0xa170
leaq -0xb0(%rbp), %rdi
leaq 0x838e(%rip), %rsi      # 0x1f7e1
leaq -0x70(%rbp), %rdx
callq 0xa6c0
leaq -0xd8(%rbp), %r15
movq %r15, %rdi
movl %ebx, %esi
callq 0xa9a0
leaq -0xf8(%rbp), %r14
movq %r14, %rdi
leaq 0x838c(%rip), %rsi      # 0x1f80a
movq %r15, %rdx
callq 0xac40
leaq -0x90(%rbp), %rdi
movq %r14, %rsi
leaq 0x7d8c(%rip), %rdx      # 0x1f223
callq 0xa150
leaq -0x458(%rbp), %r14
movq %r14, %rdi
leaq -0xb0(%rbp), %rsi
pushq $0x2
popq %rdx
leaq -0x1e8(%rbp), %rcx
callq 0xa170
leaq -0x5f0(%rbp), %rdi
leaq -0x348(%rbp), %rsi
leaq -0x1c8(%rbp), %rdx
movq %r14, %rcx
callq 0xa480
movq %r14, %rdi
callq 0xa550
pushq $0x20
popq %r14
leaq (%r14,%rbp), %rdi
addq $-0xb0, %rdi
callq 0xa370
addq $-0x20, %r14
cmpq $-0x20, %r14
jne 0x174e5
leaq -0xf8(%rbp), %rdi
callq 0xa370
leaq -0xd8(%rbp), %rdi
callq 0xa370
leaq -0x1c8(%rbp), %rdi
callq 0xa550
pushq $0x40
popq %r14
leaq (%r14,%rbp), %rdi
addq $-0x198, %rdi           # imm = 0xFE68
callq 0xa370
addq $-0x20, %r14
cmpq $-0x20, %r14
jne 0x17527
leaq -0x348(%rbp), %rdi
callq 0xa370
movq %r12, %rdi
callq 0xa370
leaq -0x920(%rbp), %r14
movq %r14, %rdi
leaq -0x5f0(%rbp), %rsi
callq 0xa850
movq -0x50(%rbp), %rdi
movq %r14, %rsi
callq 0xa600
movq %r14, %rdi
callq 0xa230
leaq -0x5f0(%rbp), %rdi
callq 0xa230
leaq -0x70(%rbp), %rdi
callq 0xa370
movl %ebx, %r14d
leaq -0x5f0(%rbp), %rbx
jmp 0x171eb
leaq -0xb0(%rbp), %rdi
movl -0x2c(%rbp), %esi
callq 0xa9a0
leaq 0x8257(%rip), %rsi      # 0x1f810
leaq -0x198(%rbp), %rdi
leaq -0xb0(%rbp), %rdx
callq 0xac40
leaq 0x7fbf(%rip), %rdx      # 0x1f592
leaq -0x308(%rbp), %rdi
leaq -0x198(%rbp), %rsi
callq 0xa150
leaq -0x5f0(%rbp), %rdi
leaq -0x308(%rbp), %rdx
movq -0x38(%rbp), %rbx
movq %rbx, %rsi
callq 0xa3f0
leaq 0x20(%rbx), %rdi
leaq -0x5f0(%rbp), %rbx
movq %rbx, %rsi
callq 0xa920
movq %rbx, %rdi
callq 0xa370
leaq -0x308(%rbp), %rdi
callq 0xa370
leaq -0x198(%rbp), %rdi
callq 0xa370
leaq -0xb0(%rbp), %rdi
callq 0xa370
leaq -0x208(%rbp), %rdi
movl -0x2c(%rbp), %esi
callq 0xa9a0
leaq 0x81c2(%rip), %rsi      # 0x1f817
leaq -0x228(%rbp), %rdi
leaq -0x208(%rbp), %rdx
callq 0xac40
movq -0xb8(%rbp), %rbx
leaq 0x7b50(%rip), %rdx      # 0x1f1c6
leaq -0x248(%rbp), %rdi
leaq -0x228(%rbp), %rsi
callq 0xa150
leaq -0x268(%rbp), %rdi
leaq -0x248(%rbp), %rsi
movq -0x38(%rbp), %rdx
callq 0xaaf0
leaq 0x79c7(%rip), %rdx      # 0x1f06e
leaq -0x288(%rbp), %rdi
leaq -0x268(%rbp), %rsi
callq 0xa150
movq -0x40(%rbp), %rdi
xorl %esi, %esi
callq 0xa200
leaq -0x2a8(%rbp), %rdi
leaq -0x288(%rbp), %rsi
movq %rax, %rdx
callq 0xaaf0
leaq 0x798e(%rip), %rdx      # 0x1f070
leaq -0x2c8(%rbp), %rdi
leaq -0x2a8(%rbp), %rsi
callq 0xa150
pushq $0x1
popq %rsi
movq -0x40(%rbp), %rdi
callq 0xa200
leaq -0x2e8(%rbp), %rdi
leaq -0x2c8(%rbp), %rsi
movq %rax, %rdx
callq 0xaaf0
leaq 0x7952(%rip), %rdx      # 0x1f070
leaq -0x1e8(%rbp), %rdi
leaq -0x2e8(%rbp), %rsi
callq 0xa150
pushq $0x2
popq %rsi
movq -0x40(%rbp), %rdi
callq 0xa200
leaq -0x138(%rbp), %rdi
leaq -0x1e8(%rbp), %rsi
movq %rax, %rdx
callq 0xaaf0
leaq 0x7916(%rip), %rdx      # 0x1f070
leaq -0xd8(%rbp), %rdi
leaq -0x138(%rbp), %rsi
callq 0xa150
movq %rbx, %rdi
xorl %esi, %esi
callq 0xa200
leaq -0xf8(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
movq %rax, %rdx
callq 0xaaf0
leaq 0x78dc(%rip), %rdx      # 0x1f070
leaq -0x118(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0xa150
pushq $0x1
popq %rsi
movq %rbx, %rdi
callq 0xa200
leaq -0x70(%rbp), %rdi
leaq -0x118(%rbp), %rsi
movq %rax, %rdx
callq 0xaaf0
leaq 0x78a4(%rip), %rdx      # 0x1f070
leaq -0xb0(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0xa150
pushq $0x2
popq %rsi
movq %rbx, %rdi
callq 0xa200
leaq -0x198(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
movq %rax, %rdx
callq 0xaaf0
leaq 0x7f0d(%rip), %rdx      # 0x1f711
leaq -0x5f0(%rbp), %rdi
leaq -0x198(%rbp), %rsi
callq 0xa150
movq -0x38(%rbp), %rdi
addq $0x40, %rdi
leaq -0x5f0(%rbp), %rbx
movq %rbx, %rsi
callq 0xa920
movq %rbx, %rdi
callq 0xa370
leaq -0x198(%rbp), %rdi
callq 0xa370
leaq -0xb0(%rbp), %rdi
callq 0xa370
leaq -0x70(%rbp), %rdi
callq 0xa370
leaq -0x118(%rbp), %rdi
callq 0xa370
leaq -0xf8(%rbp), %rdi
callq 0xa370
leaq -0xd8(%rbp), %rdi
callq 0xa370
leaq -0x138(%rbp), %rdi
callq 0xa370
leaq -0x1e8(%rbp), %rdi
callq 0xa370
leaq -0x2e8(%rbp), %rdi
callq 0xa370
leaq -0x2c8(%rbp), %rdi
callq 0xa370
leaq -0x2a8(%rbp), %rdi
callq 0xa370
leaq -0x288(%rbp), %rdi
callq 0xa370
leaq -0x268(%rbp), %rdi
callq 0xa370
leaq -0x248(%rbp), %rdi
callq 0xa370
leaq -0x228(%rbp), %rdi
callq 0xa370
leaq -0x208(%rbp), %rdi
callq 0xa370
addq $0x8f8, %rsp            # imm = 0x8F8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0x198(%rbp), %rdi
callq 0xa370
jmp 0x17a2b
movq %rax, %rbx
jmp 0x17a37
movq %rax, %rbx
jmp 0x17a51
movq %rax, %rbx
jmp 0x17a6e
movq %rax, %rbx
jmp 0x17a86
movq %rax, %rbx
jmp 0x17a9e
movq %rax, %rbx
jmp 0x17ab6
movq %rax, %rbx
jmp 0x17ac2
movq %rax, %rbx
jmp 0x17ace
movq %rax, %rbx
jmp 0x17ada
jmp 0x17cab
movq %rax, %rbx
leaq -0x308(%rbp), %rdi
callq 0xa370
jmp 0x1797a
movq %rax, %rbx
leaq -0x198(%rbp), %rdi
callq 0xa370
jmp 0x1798b
movq %rax, %rbx
leaq -0xb0(%rbp), %rdi
jmp 0x17cfd
jmp 0x17cab
movq %rax, %rbx
leaq -0x368(%rbp), %rdi
jmp 0x17cfd
jmp 0x17cab
movq %rax, %rbx
leaq -0x388(%rbp), %rdi
jmp 0x17cfd
jmp 0x17cab
movq %rax, %rbx
leaq -0x3a8(%rbp), %rdi
jmp 0x17cfd
jmp 0x17cab
movq %rax, %rbx
leaq -0x3c8(%rbp), %rdi
jmp 0x17cfd
jmp 0x17cab
movq %rax, %rbx
leaq -0x3e8(%rbp), %rdi
jmp 0x17cfd
jmp 0x17cab
movq %rax, %rbx
leaq -0x408(%rbp), %rdi
jmp 0x17cfd
jmp 0x17cab
movq %rax, %rbx
leaq -0x428(%rbp), %rdi
jmp 0x17cfd
jmp 0x17cab
movq %rax, %rbx
leaq -0xb0(%rbp), %rdi
callq 0xa370
leaq -0x70(%rbp), %rdi
callq 0xa370
jmp 0x17a45
movq %rax, %rbx
leaq -0x118(%rbp), %rdi
callq 0xa370
leaq -0xf8(%rbp), %rdi
callq 0xa370
jmp 0x17a62
movq %rax, %rbx
leaq -0xd8(%rbp), %rdi
callq 0xa370
leaq -0x138(%rbp), %rdi
callq 0xa370
leaq -0x1e8(%rbp), %rdi
callq 0xa370
leaq -0x2e8(%rbp), %rdi
callq 0xa370
leaq -0x2c8(%rbp), %rdi
callq 0xa370
leaq -0x2a8(%rbp), %rdi
callq 0xa370
leaq -0x288(%rbp), %rdi
callq 0xa370
leaq -0x268(%rbp), %rdi
callq 0xa370
leaq -0x248(%rbp), %rdi
callq 0xa370
leaq -0x228(%rbp), %rdi
callq 0xa370
leaq -0x208(%rbp), %rdi
jmp 0x17cfd
movq %rax, %rbx
jmp 0x17a7a
movq %rax, %rbx
jmp 0x17a92
movq %rax, %rbx
jmp 0x17aaa
jmp 0x17cab
movq %rax, %rbx
jmp 0x17b52
jmp 0x17b33
jmp 0x17b9b
movq %rax, %rbx
jmp 0x17ce1
jmp 0x17b93
movq %rax, %rbx
jmp 0x17bf3
movq %rax, %rbx
jmp 0x17c51
movq %rax, %rbx
jmp 0x17bd5
movq %rax, %rbx
jmp 0x17c39
movq %rax, %rbx
jmp 0x17c80
movq %rax, %rbx
xorl %r14d, %r14d
jmp 0x17b73
movq %rax, %rbx
leaq -0x458(%rbp), %rdi
callq 0xa550
pushq $0x20
popq %r14
leaq (%r14,%rbp), %rdi
addq $-0xb0, %rdi
callq 0xa370
addq $-0x20, %r14
cmpq $-0x20, %r14
jne 0x17b56
movb $0x1, %r14b
leaq -0xf8(%rbp), %rdi
callq 0xa370
jmp 0x17c28
movq %rax, %rbx
leaq -0x920(%rbp), %rdi
jmp 0x17c7b
movq %rax, %rbx
jmp 0x17ced
movq %rax, %rbx
jmp 0x17cf9
movq %rax, %rbx
jmp 0x17ca2
movq %rax, %rbx
jmp 0x17bff
movq %rax, %rbx
leaq -0xb0(%rbp), %rdi
callq 0xa370
jmp 0x17bf3
movq %rax, %rbx
jmp 0x17c45
movq %rax, %rbx
leaq -0x440(%rbp), %rdi
callq 0xa550
pushq $0x20
popq %r14
leaq (%r14,%rbp), %rdi
addq $-0xb0, %rdi
callq 0xa370
addq $-0x20, %r14
cmpq $-0x20, %r14
jne 0x17bd9
leaq -0x1b0(%rbp), %rdi
callq 0xa550
pushq $0x40
popq %r14
leaq (%r14,%rbp), %rdi
addq $-0x198, %rdi           # imm = 0xFE68
callq 0xa370
addq $-0x20, %r14
cmpq $-0x20, %r14
jne 0x17c03
jmp 0x17ce1
movq %rax, %rbx
xorl %r14d, %r14d
leaq -0xd8(%rbp), %rdi
callq 0xa370
testb %r14b, %r14b
jne 0x17c45
leaq -0xb0(%rbp), %rdi
callq 0xa370
leaq -0x1c8(%rbp), %rdi
callq 0xa550
pushq $0x40
popq %r14
leaq (%r14,%rbp), %rdi
addq $-0x198, %rdi           # imm = 0xFE68
callq 0xa370
addq $-0x20, %r14
cmpq $-0x20, %r14
jne 0x17c55
jmp 0x17ca2
movq %rax, %rbx
leaq -0x788(%rbp), %rdi
callq 0xa230
leaq -0x5f0(%rbp), %rdi
callq 0xa230
jmp 0x17cf9
movq %rax, %rbx
addq $-0x20, %r14
movq %r14, %rdi
callq 0xa370
cmpq %r13, %r14
jne 0x17c91
leaq -0x348(%rbp), %rdi
jmp 0x17ce8
movq %rax, %rbx
jmp 0x17d02
movq %rax, %rbx
jmp 0x17cc4
movq %rax, %rbx
leaq -0x5f0(%rbp), %rdi
callq 0xa370
leaq -0x198(%rbp), %rdi
jmp 0x17cfd
movq %rax, %rbx
addq $-0x20, %r14
movq %r14, %rdi
callq 0xa370
cmpq %r13, %r14
jne 0x17cd0
leaq -0x328(%rbp), %rdi
callq 0xa370
leaq -0x118(%rbp), %rdi
callq 0xa370
leaq -0x70(%rbp), %rdi
callq 0xa370
movq -0x38(%rbp), %rdi
callq 0xa230
movq %rbx, %rdi
callq 0xad00
nop