// File: /workspace/github_cpp_makefile_star2_O2/Sooryakiran[P]dotV/src/verilog.cpp
// Function: FULL_ADDER::FULL_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>>>>)
FULL_ADDER::FULL_ADDER(string name, vector<wire> input_wires, vector<wire> output_wires){
    /*------------------------------------------------------------------------------------------
    First we set up inputs and output vectors. The Chip parent expects everything to be of type
    vector<string>, so we set up that accordingly. 

    In our case the input_wires will be {"A", "B", "Cin"}
    and the output_wires will be {"S", "Cout"}  
    ------------------------------------------------------------------------------------------*/
    this->name = name;
    this->inputs = input_wires;
    this->outputs = output_wires;


    /*------------------------------------------------------------------------------------------
    Now we declare input and output ports. Note that these are generic input ports and instance
    independent where as the previous 'input_wires' will be different for each instance. 
    ------------------------------------------------------------------------------------------*/
    this->declare("A", CHIP_INPUTS);
    this->declare("B", CHIP_INPUTS);
    this->declare("Cin", CHIP_INPUTS);
    this->declare("S", CHIP_OUTPUTS);
    this->declare("Cout", CHIP_OUTPUTS);

    /*------------------------------------------------------------------------------------------
    Now we can wire the circuit for S = A xor B xor C;
    For that we create 2 instances of XOR gates and a wire. 
    ------------------------------------------------------------------------------------------*/
    wire temp_xor_1 = "temp_xor_1";
    XOR xor_1("FA_XOR_1",
            {"A", "B"},
            temp_xor_1);
    XOR xor_2("FA_XOR_2",
            {"Cin", temp_xor_1},
            "S");

    /*------------------------------------------------------------------------------------------
    Then we register the wires and submodules so that the auto_gen function can automatically
    generate code.
    ------------------------------------------------------------------------------------------*/
    this->add_wire(temp_xor_1);
    this->add_submodule(xor_1);
    this->add_submodule(xor_2);

    /*------------------------------------------------------------------------------------------
    Here we wire Cout = AB + BC + AC.
    We need 3 and gates and 3 wires from it. 
    We also need 2 or gates and 1 wire for it. 
    ------------------------------------------------------------------------------------------*/
    wire temp_and_1 = "temp_and_1";
    wire temp_and_2 = "temp_and_2";
    wire temp_and_3 = "temp_and_3";
    wire temp_or_1 = "temp_or_1";

    AND and_1("FA_AND_1",
                   {"A", "B"},
                   temp_and_1);
    AND and_2("FA_AND_2",
                   {"B", "Cin"},
                   temp_and_2);
    AND and_3("FA_AND_3",
                   {"Cin", "A"},
                   temp_and_3);
    
    OR or_1("FA_OR_1",
                 {temp_and_1, temp_and_2},
                 temp_or_1);
    OR or_2("FA_OR_2",
                 {temp_or_1, temp_and_3},
                 "Cout");
    
    this->add_wire(temp_and_1);
    this->add_wire(temp_and_2);
    this->add_wire(temp_and_3);
    this->add_wire(temp_or_1);
    this->add_submodule(and_1);
    this->add_submodule(and_2);
    this->add_submodule(and_3);
    this->add_submodule(or_1);
    this->add_submodule(or_2);

    /*------------------------------------------------------------------------------------------
    After building the module we can use the auto_gen() funtion to automatically generate the m-
    odule definition.
    ------------------------------------------------------------------------------------------*/
    this->definition = this->auto_gen("module FULL_ADDER");

    /*------------------------------------------------------------------------------------------
    Then we can instruct how each instance has to be generated.
    ------------------------------------------------------------------------------------------*/
    this->generate =  "FULL_ADDER " + this->name  + " (" + this->inputs.at(0) + ", " + this->inputs.at(1) + ", " + this->inputs.at(2) + ", " + this->outputs.at(0) + "," + this->outputs.at(1) + ");";
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1c68, %rsp           # imm = 0x1C68
movq %rcx, %r12
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %rbx
callq 0xa690
movq %rbx, %rdi
movq %r15, %rsi
callq 0xa410
leaq 0x80(%rbx), %rdi
movq %rdi, -0x50(%rbp)
movq %r14, %rsi
callq 0xa810
leaq 0x98(%rbx), %r15
movq %r15, %rdi
movq %r12, %rsi
callq 0xa810
leaq 0x10094(%rip), %rsi     # 0x1f6f2
leaq -0x638(%rbp), %rdi
leaq -0x1160(%rbp), %rdx
callq 0xac60
leaq -0x638(%rbp), %rsi
movq %rbx, %rdi
xorl %edx, %edx
callq 0xa270
leaq -0x638(%rbp), %rdi
callq 0xa370
leaq 0xfe23(%rip), %rsi      # 0x1f4b8
leaq -0x618(%rbp), %rdi
leaq -0x1160(%rbp), %rdx
callq 0xac60
leaq -0x618(%rbp), %rsi
movq %rbx, %rdi
xorl %edx, %edx
callq 0xa270
leaq -0x618(%rbp), %rdi
callq 0xa370
leaq 0xfdee(%rip), %rsi      # 0x1f4ba
leaq -0x5f8(%rbp), %rdi
leaq -0x1160(%rbp), %rdx
callq 0xac60
leaq -0x5f8(%rbp), %rsi
movq %rbx, %rdi
xorl %edx, %edx
callq 0xa270
leaq -0x5f8(%rbp), %rdi
callq 0xa370
leaq 0xfdbb(%rip), %rsi      # 0x1f4be
leaq -0x5d8(%rbp), %rdi
leaq -0x1160(%rbp), %rdx
callq 0xac60
leaq -0x5d8(%rbp), %rsi
pushq $0x1
popq %rdx
movq %rbx, %rdi
callq 0xa270
leaq -0x5d8(%rbp), %rdi
callq 0xa370
leaq 0xfd85(%rip), %rsi      # 0x1f4c0
leaq -0x5b8(%rbp), %rdi
leaq -0x1160(%rbp), %rdx
callq 0xac60
leaq -0x5b8(%rbp), %rsi
pushq $0x1
popq %rdx
movq %rbx, %rdi
callq 0xa270
leaq -0x5b8(%rbp), %rdi
callq 0xa370
leaq 0xfd52(%rip), %rsi      # 0x1f4c5
leaq -0x150(%rbp), %rdi
leaq -0x1160(%rbp), %rdx
callq 0xac60
leaq 0xfd43(%rip), %rsi      # 0x1f4d0
leaq -0x598(%rbp), %rdi
leaq -0x7d0(%rbp), %rdx
callq 0xac60
leaq 0xff4b(%rip), %rsi      # 0x1f6f2
leaq -0xfc8(%rbp), %rdi
leaq -0xe30(%rbp), %rdx
callq 0xac60
leaq -0xfa8(%rbp), %rdi
leaq 0xfcf0(%rip), %rsi      # 0x1f4b8
leaq -0xc98(%rbp), %rdx
callq 0xac60
leaq -0x1f8(%rbp), %rdi
leaq -0xfc8(%rbp), %rsi
pushq $0x2
popq %rdx
leaq -0xb00(%rbp), %rcx
callq 0xa170
leaq -0x578(%rbp), %rdi
leaq -0x150(%rbp), %rsi
callq 0xaa40
leaq -0x1160(%rbp), %rdi
leaq -0x598(%rbp), %rsi
leaq -0x1f8(%rbp), %rdx
leaq -0x578(%rbp), %rcx
callq 0xa980
leaq -0x578(%rbp), %rdi
callq 0xa370
leaq -0x1f8(%rbp), %rdi
callq 0xa550
pushq $0x20
popq %r12
leaq (%r12,%rbp), %rdi
addq $-0xfc8, %rdi           # imm = 0xF038
callq 0xa370
addq $-0x20, %r12
cmpq $-0x20, %r12
jne 0xf841
leaq -0x598(%rbp), %rdi
callq 0xa370
leaq 0xfc6b(%rip), %rsi      # 0x1f4d9
leaq -0x558(%rbp), %rdi
leaq -0xe30(%rbp), %rdx
callq 0xac60
leaq 0xfc32(%rip), %rsi      # 0x1f4ba
leaq -0x7d0(%rbp), %rdi
leaq -0xc98(%rbp), %rdx
callq 0xac60
leaq -0x7b0(%rbp), %rdi
leaq -0x150(%rbp), %rsi
callq 0xaa40
leaq -0x1e0(%rbp), %rdi
leaq -0x7d0(%rbp), %rsi
pushq $0x2
popq %rdx
leaq -0xb00(%rbp), %rcx
callq 0xa170
leaq 0xfbec(%rip), %rsi      # 0x1f4be
leaq -0x538(%rbp), %rdi
leaq -0x968(%rbp), %rdx
callq 0xac60
leaq -0xfc8(%rbp), %rdi
leaq -0x558(%rbp), %rsi
leaq -0x1e0(%rbp), %rdx
leaq -0x538(%rbp), %rcx
callq 0xa980
leaq -0x538(%rbp), %rdi
callq 0xa370
leaq -0x1e0(%rbp), %rdi
callq 0xa550
pushq $0x20
popq %r12
leaq (%r12,%rbp), %rdi
addq $-0x7d0, %rdi           # imm = 0xF830
callq 0xa370
addq $-0x20, %r12
cmpq $-0x20, %r12
jne 0xf922
leaq -0x558(%rbp), %rdi
callq 0xa370
leaq -0x518(%rbp), %rdi
leaq -0x150(%rbp), %rsi
callq 0xaa40
leaq 0xb0(%rbx), %r13
leaq -0x518(%rbp), %rsi
movq %r13, %rdi
callq 0xa3e0
leaq -0x518(%rbp), %rdi
callq 0xa370
leaq -0x1c88(%rbp), %rdi
leaq -0x1160(%rbp), %rsi
callq 0xa850
leaq 0x68(%rbx), %r12
leaq -0x1c88(%rbp), %rsi
movq %r12, %rdi
callq 0xa600
leaq -0x1c88(%rbp), %rdi
callq 0xa230
leaq -0x1af0(%rbp), %rdi
leaq -0xfc8(%rbp), %rsi
callq 0xa850
leaq -0x1af0(%rbp), %rsi
movq %r12, %rdi
callq 0xa600
leaq -0x1af0(%rbp), %rdi
callq 0xa230
leaq 0xfafe(%rip), %rsi      # 0x1f4e2
leaq -0x130(%rbp), %rdi
leaq -0x7d0(%rbp), %rdx
callq 0xac60
leaq 0xfaef(%rip), %rsi      # 0x1f4ed
leaq -0x110(%rbp), %rdi
leaq -0x7d0(%rbp), %rdx
callq 0xac60
leaq 0xfae0(%rip), %rsi      # 0x1f4f8
leaq -0xf0(%rbp), %rdi
leaq -0x7d0(%rbp), %rdx
callq 0xac60
leaq 0xfad1(%rip), %rsi      # 0x1f503
leaq -0xd0(%rbp), %rdi
leaq -0x7d0(%rbp), %rdx
callq 0xac60
leaq 0xfac1(%rip), %rsi      # 0x1f50d
leaq -0x4f8(%rbp), %rdi
leaq -0xc98(%rbp), %rdx
callq 0xac60
leaq 0xfc8c(%rip), %rsi      # 0x1f6f2
leaq -0xe30(%rbp), %rdi
leaq -0xb00(%rbp), %rdx
callq 0xac60
leaq -0xe10(%rbp), %rdi
leaq 0xfa31(%rip), %rsi      # 0x1f4b8
leaq -0x968(%rbp), %rdx
callq 0xac60
leaq -0x1c8(%rbp), %rdi
leaq -0xe30(%rbp), %rsi
pushq $0x2
popq %rdx
leaq -0x90(%rbp), %rcx
callq 0xa170
leaq -0x4d8(%rbp), %rdi
leaq -0x130(%rbp), %rsi
callq 0xaa40
leaq -0x7d0(%rbp), %rdi
leaq -0x4f8(%rbp), %rsi
leaq -0x1c8(%rbp), %rdx
leaq -0x4d8(%rbp), %rcx
callq 0xa240
leaq -0x4d8(%rbp), %rdi
callq 0xa370
leaq -0x1c8(%rbp), %rdi
callq 0xa550
pushq $0x20
popq %r14
leaq (%r14,%rbp), %rdi
addq $-0xe30, %rdi           # imm = 0xF1D0
callq 0xa370
addq $-0x20, %r14
cmpq $-0x20, %r14
jne 0xfb00
leaq -0x4f8(%rbp), %rdi
callq 0xa370
leaq 0xf9e9(%rip), %rsi      # 0x1f516
leaq -0x4b8(%rbp), %rdi
leaq -0xb00(%rbp), %rdx
callq 0xac60
leaq 0xf971(%rip), %rsi      # 0x1f4b8
leaq -0xc98(%rbp), %rdi
leaq -0x968(%rbp), %rdx
callq 0xac60
leaq -0xc78(%rbp), %rdi
leaq 0xf952(%rip), %rsi      # 0x1f4ba
leaq -0x90(%rbp), %rdx
callq 0xac60
leaq -0x1b0(%rbp), %rdi
leaq -0xc98(%rbp), %rsi
pushq $0x2
popq %rdx
leaq -0x48(%rbp), %rcx
callq 0xa170
leaq -0x498(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0xaa40
leaq -0xe30(%rbp), %rdi
leaq -0x4b8(%rbp), %rsi
leaq -0x1b0(%rbp), %rdx
leaq -0x498(%rbp), %rcx
callq 0xa240
leaq -0x498(%rbp), %rdi
callq 0xa370
leaq -0x1b0(%rbp), %rdi
callq 0xa550
pushq $0x20
popq %r14
leaq (%r14,%rbp), %rdi
addq $-0xc98, %rdi           # imm = 0xF368
callq 0xa370
addq $-0x20, %r14
cmpq $-0x20, %r14
jne 0xfbde
leaq -0x4b8(%rbp), %rdi
callq 0xa370
leaq 0xf914(%rip), %rsi      # 0x1f51f
leaq -0x478(%rbp), %rdi
leaq -0x968(%rbp), %rdx
callq 0xac60
leaq 0xf895(%rip), %rsi      # 0x1f4ba
leaq -0xb00(%rbp), %rdi
leaq -0x90(%rbp), %rdx
callq 0xac60
leaq -0xae0(%rbp), %rdi
leaq 0xfaac(%rip), %rsi      # 0x1f6f2
leaq -0x48(%rbp), %rdx
callq 0xac60
leaq -0x198(%rbp), %rdi
leaq -0xb00(%rbp), %rsi
pushq $0x2
popq %rdx
leaq -0xb0(%rbp), %rcx
callq 0xa170
leaq -0x458(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0xaa40
leaq -0xc98(%rbp), %rdi
leaq -0x478(%rbp), %rsi
leaq -0x198(%rbp), %rdx
leaq -0x458(%rbp), %rcx
callq 0xa240
leaq -0x458(%rbp), %rdi
callq 0xa370
leaq -0x198(%rbp), %rdi
callq 0xa550
pushq $0x20
popq %r14
leaq (%r14,%rbp), %rdi
addq $-0xb00, %rdi           # imm = 0xF500
callq 0xa370
addq $-0x20, %r14
cmpq $-0x20, %r14
jne 0xfcbc
leaq -0x478(%rbp), %rdi
callq 0xa370
leaq 0xf83f(%rip), %rsi      # 0x1f528
leaq -0x438(%rbp), %rdi
leaq -0x90(%rbp), %rdx
callq 0xac60
leaq -0x968(%rbp), %rdi
leaq -0x130(%rbp), %rsi
callq 0xaa40
leaq -0x948(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0xaa40
leaq -0x180(%rbp), %rdi
leaq -0x968(%rbp), %rsi
pushq $0x2
popq %rdx
leaq -0x48(%rbp), %rcx
callq 0xa170
leaq -0x418(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0xaa40
leaq -0xb00(%rbp), %rdi
leaq -0x438(%rbp), %rsi
leaq -0x180(%rbp), %rdx
leaq -0x418(%rbp), %rcx
callq 0xadf0
leaq -0x418(%rbp), %rdi
callq 0xa370
leaq -0x180(%rbp), %rdi
callq 0xa550
pushq $0x20
popq %r14
leaq (%r14,%rbp), %rdi
addq $-0x968, %rdi           # imm = 0xF698
callq 0xa370
addq $-0x20, %r14
cmpq $-0x20, %r14
jne 0xfd8c
leaq -0x438(%rbp), %rdi
callq 0xa370
leaq 0xf777(%rip), %rsi      # 0x1f530
leaq -0x3f8(%rbp), %rdi
leaq -0x48(%rbp), %rdx
callq 0xac60
leaq -0x90(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0xaa40
leaq -0x70(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0xaa40
leaq -0x168(%rbp), %rdi
leaq -0x90(%rbp), %rsi
pushq $0x2
popq %rdx
leaq -0xb0(%rbp), %rcx
callq 0xa170
leaq 0xf6b0(%rip), %rsi      # 0x1f4c0
leaq -0x3d8(%rbp), %rdi
leaq -0x218(%rbp), %rdx
callq 0xac60
leaq -0x968(%rbp), %rdi
leaq -0x3f8(%rbp), %rsi
leaq -0x168(%rbp), %rdx
leaq -0x3d8(%rbp), %rcx
callq 0xadf0
leaq -0x3d8(%rbp), %rdi
callq 0xa370
leaq -0x168(%rbp), %rdi
callq 0xa550
pushq $0x20
popq %r14
leaq (%r14,%rbp), %rdi
addq $-0x90, %rdi
callq 0xa370
addq $-0x20, %r14
cmpq $-0x20, %r14
jne 0xfe60
leaq -0x3f8(%rbp), %rdi
callq 0xa370
leaq -0x3b8(%rbp), %rdi
leaq -0x130(%rbp), %rsi
callq 0xaa40
movq %r15, %r14
leaq -0x3b8(%rbp), %rsi
movq %r13, %rdi
callq 0xa3e0
leaq -0x3b8(%rbp), %rdi
callq 0xa370
leaq -0x398(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0xaa40
leaq -0x398(%rbp), %rsi
movq %r13, %rdi
callq 0xa3e0
leaq -0x398(%rbp), %rdi
callq 0xa370
leaq -0x378(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0xaa40
leaq -0x378(%rbp), %rsi
movq %r13, %rdi
callq 0xa3e0
leaq -0x378(%rbp), %rdi
callq 0xa370
leaq -0x358(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0xaa40
leaq -0x358(%rbp), %rsi
movq %r13, %rdi
callq 0xa3e0
leaq -0x358(%rbp), %rdi
callq 0xa370
leaq -0x1958(%rbp), %rdi
leaq -0x7d0(%rbp), %rsi
callq 0xa850
leaq -0x1958(%rbp), %rsi
movq %r12, %rdi
callq 0xa600
leaq -0x1958(%rbp), %rdi
callq 0xa230
leaq -0x17c0(%rbp), %rdi
leaq -0xe30(%rbp), %rsi
callq 0xa850
leaq -0x17c0(%rbp), %rsi
movq %r12, %rdi
callq 0xa600
leaq -0x17c0(%rbp), %rdi
callq 0xa230
leaq -0x1628(%rbp), %rdi
leaq -0xc98(%rbp), %rsi
callq 0xa850
leaq -0x1628(%rbp), %rsi
movq %r12, %rdi
callq 0xa600
leaq -0x1628(%rbp), %rdi
callq 0xa230
leaq -0x1490(%rbp), %rdi
leaq -0xb00(%rbp), %rsi
callq 0xa850
leaq -0x1490(%rbp), %rsi
movq %r12, %rdi
callq 0xa600
leaq -0x1490(%rbp), %rdi
callq 0xa230
leaq -0x12f8(%rbp), %rdi
leaq -0x968(%rbp), %rsi
callq 0xa850
leaq -0x12f8(%rbp), %rsi
movq %r12, %rdi
callq 0xa600
leaq -0x12f8(%rbp), %rdi
callq 0xa230
leaq 0xf50a(%rip), %rsi      # 0x1f538
leaq -0x338(%rbp), %rdi
leaq -0x48(%rbp), %rdx
callq 0xac60
leaq -0x90(%rbp), %rdi
leaq -0x338(%rbp), %rdx
movq %rbx, %rsi
callq 0xa3f0
leaq 0x20(%rbx), %rdi
leaq -0x90(%rbp), %r12
movq %r12, %rsi
callq 0xa920
movq %r12, %rdi
callq 0xa370
leaq -0x338(%rbp), %rdi
callq 0xa370
leaq 0xf4c8(%rip), %rsi      # 0x1f54a
leaq -0x238(%rbp), %rdi
movq %rbx, %rdx
callq 0xa6c0
leaq 0xefd5(%rip), %rdx      # 0x1f06d
leaq -0x258(%rbp), %rdi
leaq -0x238(%rbp), %rsi
callq 0xa150
movq -0x50(%rbp), %r15
movq %r15, %rdi
xorl %esi, %esi
callq 0xa200
leaq -0x278(%rbp), %rdi
leaq -0x258(%rbp), %rsi
movq %rax, %rdx
callq 0xaaf0
leaq 0xef9a(%rip), %rdx      # 0x1f070
leaq -0x298(%rbp), %rdi
leaq -0x278(%rbp), %rsi
callq 0xa150
pushq $0x1
popq %rsi
movq %r15, %rdi
callq 0xa200
leaq -0x2b8(%rbp), %rdi
leaq -0x298(%rbp), %rsi
movq %rax, %rdx
callq 0xaaf0
leaq 0xef5f(%rip), %rdx      # 0x1f070
leaq -0x2d8(%rbp), %rdi
leaq -0x2b8(%rbp), %rsi
callq 0xa150
pushq $0x2
popq %rsi
movq %r15, %rdi
callq 0xa200
leaq -0x2f8(%rbp), %rdi
leaq -0x2d8(%rbp), %rsi
movq %rax, %rdx
callq 0xaaf0
leaq 0xef24(%rip), %rdx      # 0x1f070
leaq -0x318(%rbp), %rdi
leaq -0x2f8(%rbp), %rsi
callq 0xa150
movq %r14, %rdi
xorl %esi, %esi
callq 0xa200
leaq -0x218(%rbp), %rdi
leaq -0x318(%rbp), %rsi
movq %rax, %rdx
callq 0xaaf0
leaq 0xf3d0(%rip), %rdx      # 0x1f556
leaq -0xb0(%rbp), %rdi
leaq -0x218(%rbp), %rsi
callq 0xa150
pushq $0x1
popq %rsi
movq %r14, %rdi
callq 0xa200
leaq -0x48(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
movq %rax, %rdx
callq 0xaaf0
leaq 0xf553(%rip), %rdx      # 0x1f711
leaq -0x90(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0xa150
addq $0x40, %rbx
leaq -0x90(%rbp), %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0xa920
movq %r14, %rdi
callq 0xa370
leaq -0x48(%rbp), %rdi
callq 0xa370
leaq -0xb0(%rbp), %rdi
callq 0xa370
leaq -0x218(%rbp), %rdi
callq 0xa370
leaq -0x318(%rbp), %rdi
callq 0xa370
leaq -0x2f8(%rbp), %rdi
callq 0xa370
leaq -0x2d8(%rbp), %rdi
callq 0xa370
leaq -0x2b8(%rbp), %rdi
callq 0xa370
leaq -0x298(%rbp), %rdi
callq 0xa370
leaq -0x278(%rbp), %rdi
callq 0xa370
leaq -0x258(%rbp), %rdi
callq 0xa370
leaq -0x238(%rbp), %rdi
callq 0xa370
leaq -0x968(%rbp), %rdi
callq 0xa230
leaq -0xb00(%rbp), %rdi
callq 0xa230
leaq -0xc98(%rbp), %rdi
callq 0xa230
leaq -0xe30(%rbp), %rdi
callq 0xa230
leaq -0x7d0(%rbp), %rdi
callq 0xa230
leaq -0xd0(%rbp), %rdi
callq 0xa370
leaq -0xf0(%rbp), %rdi
callq 0xa370
leaq -0x110(%rbp), %rdi
callq 0xa370
leaq -0x130(%rbp), %rdi
callq 0xa370
leaq -0xfc8(%rbp), %rdi
callq 0xa230
leaq -0x1160(%rbp), %rdi
callq 0xa230
leaq -0x150(%rbp), %rdi
callq 0xa370
addq $0x1c68, %rsp           # imm = 0x1C68
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
leaq -0x48(%rbp), %rdi
callq 0xa370
jmp 0x107b7
movq %rax, %r14
jmp 0x107c3
movq %rax, %r14
jmp 0x107e0
movq %rax, %r14
jmp 0x107fd
movq %rax, %r14
jmp 0x10815
movq %rax, %r14
jmp 0x1082d
jmp 0x10852
movq %rax, %r14
leaq -0x338(%rbp), %rdi
jmp 0x10834
jmp 0x10852
movq %rax, %r14
leaq -0x12f8(%rbp), %rdi
jmp 0x1039b
movq %rax, %r14
leaq -0x1490(%rbp), %rdi
jmp 0x1039b
movq %rax, %r14
leaq -0x1628(%rbp), %rdi
jmp 0x1039b
movq %rax, %r14
leaq -0x17c0(%rbp), %rdi
jmp 0x1039b
movq %rax, %r14
leaq -0x1958(%rbp), %rdi
callq 0xa230
jmp 0x10855
movq %rax, %r14
leaq -0x358(%rbp), %rdi
jmp 0x10834
movq %rax, %r14
leaq -0x378(%rbp), %rdi
jmp 0x10834
movq %rax, %r14
leaq -0x398(%rbp), %rdi
jmp 0x10834
movq %rax, %r14
leaq -0x3b8(%rbp), %rdi
jmp 0x10834
movq %rax, %r14
leaq -0x3d8(%rbp), %rdi
callq 0xa370
jmp 0x103f5
movq %rax, %r14
leaq -0x168(%rbp), %rdi
callq 0xa550
jmp 0x10406
movq %rax, %r14
pushq $0x20
popq %r15
leaq (%r15,%rbp), %rdi
addq $-0x90, %rdi
callq 0xa370
addq $-0x20, %r15
cmpq $-0x20, %r15
jne 0x1040a
jmp 0x1043a
movq %rax, %r14
leaq -0x90(%rbp), %rdi
callq 0xa370
jmp 0x1043a
movq %rax, %r14
leaq -0x3f8(%rbp), %rdi
callq 0xa370
jmp 0x10861
movq %rax, %r14
jmp 0x10861
movq %rax, %r14
leaq -0x418(%rbp), %rdi
callq 0xa370
jmp 0x10467
movq %rax, %r14
leaq -0x180(%rbp), %rdi
callq 0xa550
jmp 0x10478
movq %rax, %r14
pushq $0x20
popq %r15
leaq (%r15,%rbp), %rdi
addq $-0x968, %rdi           # imm = 0xF698
callq 0xa370
addq $-0x20, %r15
cmpq $-0x20, %r15
jne 0x1047c
jmp 0x104ac
movq %rax, %r14
leaq -0x968(%rbp), %rdi
callq 0xa370
jmp 0x104ac
movq %rax, %r14
leaq -0x438(%rbp), %rdi
callq 0xa370
jmp 0x1086d
movq %rax, %r14
jmp 0x1086d
movq %rax, %r14
leaq -0x458(%rbp), %rdi
callq 0xa370
jmp 0x104d9
movq %rax, %r14
leaq -0x198(%rbp), %rdi
callq 0xa550
jmp 0x104ea
movq %rax, %r14
pushq $0x20
popq %r15
leaq (%r15,%rbp), %rdi
addq $-0xb00, %rdi           # imm = 0xF500
callq 0xa370
addq $-0x20, %r15
cmpq $-0x20, %r15
jne 0x104ee
jmp 0x1051e
movq %rax, %r14
leaq -0xb00(%rbp), %rdi
callq 0xa370
jmp 0x1051e
movq %rax, %r14
leaq -0x478(%rbp), %rdi
callq 0xa370
jmp 0x10879
movq %rax, %r14
jmp 0x10879
movq %rax, %r14
leaq -0x498(%rbp), %rdi
callq 0xa370
jmp 0x1054b
movq %rax, %r14
leaq -0x1b0(%rbp), %rdi
callq 0xa550
jmp 0x1055c
movq %rax, %r14
pushq $0x20
popq %r15
leaq (%r15,%rbp), %rdi
addq $-0xc98, %rdi           # imm = 0xF368
callq 0xa370
addq $-0x20, %r15
cmpq $-0x20, %r15
jne 0x10560
jmp 0x10590
movq %rax, %r14
leaq -0xc98(%rbp), %rdi
callq 0xa370
jmp 0x10590
movq %rax, %r14
leaq -0x4b8(%rbp), %rdi
callq 0xa370
jmp 0x10885
movq %rax, %r14
jmp 0x10885
movq %rax, %r14
leaq -0x4d8(%rbp), %rdi
callq 0xa370
jmp 0x105bd
movq %rax, %r14
leaq -0x1c8(%rbp), %rdi
callq 0xa550
jmp 0x105ce
movq %rax, %r14
pushq $0x20
popq %r15
leaq (%r15,%rbp), %rdi
addq $-0xe30, %rdi           # imm = 0xF1D0
callq 0xa370
addq $-0x20, %r15
cmpq $-0x20, %r15
jne 0x105d2
jmp 0x10602
movq %rax, %r14
leaq -0xe30(%rbp), %rdi
callq 0xa370
jmp 0x10602
movq %rax, %r14
leaq -0x4f8(%rbp), %rdi
callq 0xa370
jmp 0x10891
movq %rax, %r14
jmp 0x10891
movq %rax, %r14
jmp 0x1089d
movq %rax, %r14
jmp 0x108a9
movq %rax, %r14
jmp 0x108b5
jmp 0x10845
movq %rax, %r14
leaq -0x1af0(%rbp), %rdi
jmp 0x1064e
movq %rax, %r14
leaq -0x1c88(%rbp), %rdi
callq 0xa230
jmp 0x108c1
movq %rax, %r14
leaq -0x518(%rbp), %rdi
jmp 0x108bc
movq %rax, %r14
leaq -0x538(%rbp), %rdi
callq 0xa370
jmp 0x1067b
movq %rax, %r14
leaq -0x1e0(%rbp), %rdi
callq 0xa550
jmp 0x1068c
movq %rax, %r14
pushq $0x20
popq %r15
leaq (%r15,%rbp), %rdi
addq $-0x7d0, %rdi           # imm = 0xF830
callq 0xa370
addq $-0x20, %r15
cmpq $-0x20, %r15
jne 0x10690
jmp 0x106c0
movq %rax, %r14
leaq -0x7d0(%rbp), %rdi
callq 0xa370
jmp 0x106c0
movq %rax, %r14
leaq -0x558(%rbp), %rdi
callq 0xa370
jmp 0x108cd
movq %rax, %r14
jmp 0x108cd
movq %rax, %r14
leaq -0x578(%rbp), %rdi
callq 0xa370
jmp 0x106ed
movq %rax, %r14
leaq -0x1f8(%rbp), %rdi
callq 0xa550
jmp 0x106fe
movq %rax, %r14
pushq $0x20
popq %r15
leaq (%r15,%rbp), %rdi
addq $-0xfc8, %rdi           # imm = 0xF038
callq 0xa370
addq $-0x20, %r15
cmpq $-0x20, %r15
jne 0x10702
jmp 0x10732
movq %rax, %r14
leaq -0xfc8(%rbp), %rdi
callq 0xa370
jmp 0x10732
movq %rax, %r14
leaq -0x598(%rbp), %rdi
callq 0xa370
jmp 0x108d9
movq %rax, %r14
jmp 0x108d9
jmp 0x1084a
movq %rax, %r14
leaq -0x5b8(%rbp), %rdi
jmp 0x108e0
jmp 0x1084a
movq %rax, %r14
leaq -0x5d8(%rbp), %rdi
jmp 0x108e0
jmp 0x1084a
movq %rax, %r14
leaq -0x5f8(%rbp), %rdi
jmp 0x108e0
jmp 0x1084a
movq %rax, %r14
leaq -0x618(%rbp), %rdi
jmp 0x108e0
jmp 0x1084a
movq %rax, %r14
leaq -0x638(%rbp), %rdi
jmp 0x108e0
jmp 0x1084a
movq %rax, %r14
leaq -0xb0(%rbp), %rdi
callq 0xa370
leaq -0x218(%rbp), %rdi
callq 0xa370
jmp 0x107d4
movq %rax, %r14
leaq -0x318(%rbp), %rdi
callq 0xa370
leaq -0x2f8(%rbp), %rdi
callq 0xa370
jmp 0x107f1
movq %rax, %r14
leaq -0x2d8(%rbp), %rdi
callq 0xa370
leaq -0x2b8(%rbp), %rdi
callq 0xa370
leaq -0x298(%rbp), %rdi
callq 0xa370
leaq -0x278(%rbp), %rdi
callq 0xa370
leaq -0x258(%rbp), %rdi
callq 0xa370
leaq -0x238(%rbp), %rdi
callq 0xa370
jmp 0x10855
movq %rax, %r14
jmp 0x10809
movq %rax, %r14
jmp 0x10821
movq %rax, %r14
jmp 0x108c1
movq %rax, %r14
jmp 0x108e5
movq %rax, %r14
leaq -0x968(%rbp), %rdi
callq 0xa230
leaq -0xb00(%rbp), %rdi
callq 0xa230
leaq -0xc98(%rbp), %rdi
callq 0xa230
leaq -0xe30(%rbp), %rdi
callq 0xa230
leaq -0x7d0(%rbp), %rdi
callq 0xa230
leaq -0xd0(%rbp), %rdi
callq 0xa370
leaq -0xf0(%rbp), %rdi
callq 0xa370
leaq -0x110(%rbp), %rdi
callq 0xa370
leaq -0x130(%rbp), %rdi
callq 0xa370
leaq -0xfc8(%rbp), %rdi
callq 0xa230
leaq -0x1160(%rbp), %rdi
callq 0xa230
leaq -0x150(%rbp), %rdi
callq 0xa370
movq %rbx, %rdi
callq 0xa230
movq %r14, %rdi
callq 0xad00
nop