// File: Sooryakiran[P]dotV/src/verilog.cpp
// Function: CARRY_LOOK_AHEAD_ADDER::CARRY_LOOK_AHEAD_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::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int)
CARRY_LOOK_AHEAD_ADDER::CARRY_LOOK_AHEAD_ADDER(string name, vector<wire> input_wires, wire output_wire, int n_bits){
    /*------------------------------------------------------------------------------------------
    We do the basic setups.
    ------------------------------------------------------------------------------------------*/
    this->name = name;
    this->inputs = input_wires;
    this->outputs.push_back(output_wire);
    this->n_bits = n_bits;

    /*------------------------------------------------------------------------------------------
    We declare input and output ports.
    ------------------------------------------------------------------------------------------*/
    this->declare("A", CHIP_INPUTS);
    this->declare("B", CHIP_INPUTS);
    this->declare("out", CHIP_OUTPUTS);

    /*------------------------------------------------------------------------------------------
    Find the number of levels for our Prefix computation
    ------------------------------------------------------------------------------------------*/
    int levels = ceil(log2(n_bits + 1));

    /*------------------------------------------------------------------------------------------
    Wire naming convention
    ======================
    State at level L bit N will be [1:0]s_level_L_bit_N

    We construct a matrix of wire names for easy representation.
    wire_matrix[L][N] points to the state at level L, bit N.
    We initialize the first state to be kill.
    ------------------------------------------------------------------------------------------*/
    wire always_zero_wire = "s_level_0_bit_0";
    this->add_wire("[1:0] " + always_zero_wire);
    this->verilog("assign " + always_zero_wire + " = 0;");

    wire wire_matrix[levels + 1][n_bits + 1];
    wire_matrix[0][0] = always_zero_wire;

    /*------------------------------------------------------------------------------------------
    We calculate the level 0 states and fill the first row of the matrix.
    ------------------------------------------------------------------------------------------*/
    for(int i=1; i<= n_bits; i++){
        string curr_slice = "[" + to_string(i - 1) + "]";
        
        wire current_wire = "s_level_0_bit_" + to_string(i);
        this->add_wire("[1:0] " + current_wire);
        AND and_pre("CLA_and_pre_bit_" + to_string(i),
                    {"A" + curr_slice, "B" + curr_slice},
                    current_wire + "[1]");
        OR or_pre("CLA_or_pre_bit_" + to_string(i),
                 {"A" + curr_slice, "B" + curr_slice},
                 current_wire + "[0]");
        wire_matrix[0][i] = current_wire;
        this->add_submodule(and_pre);
        this->add_submodule(or_pre);
    }
    
    /*------------------------------------------------------------------------------------------
    States are now stored in "[1: 0] s_level_0_bit_n".

    Now we make another wire to store final carry results. Note that the bit width of the carry 
    wire is one more than the bit width of the adder. The last bit is in carry_final is ignored
    as of now, but can help us know if there is any overflow.

    We also assign the 0th bit of carry_final to be zero.
    ------------------------------------------------------------------------------------------*/
    wire carry_final = "carry_final";
    this->add_wire("[" + to_string(n_bits) + ":0] " + carry_final);
    verilog("assign carry_final[0] = 0;");
    
    /*------------------------------------------------------------------------------------------
    Now we wire up the prefix computation
    ------------------------------------------------------------------------------------------*/
    for(int level=0; level<levels; level++){
        /*------------------------------------------------------------------------------------------
        In each level, ignore the part that already got computed and just drop down the states,
        compute the new states for others. done_bits is the number of bits from the end who is done.
        ------------------------------------------------------------------------------------------*/
        int done_bits = pow(2, level);
        for(int bit = 0; bit <= n_bits; bit++){
            /*------------------------------------------------------------------------------------------
            For each bit:
            ------------------------------------------------------------------------------------------*/
            if (bit < done_bits){
                /*------------------------------------------------------------------------------------------
                Just drop down the values for bits that are done
                ------------------------------------------------------------------------------------------*/
                wire_matrix[level + 1][bit] = wire_matrix[level][bit];
            }
            else{
                /*------------------------------------------------------------------------------------------
                Compute the new states and connect  with the new wires.

                First we add a new wire and put it in our wire_matrix. Then we do the star(*) operation.
                ------------------------------------------------------------------------------------------*/
                wire new_wire = "s_level_" + to_string(level + 1) + "_bit_" + to_string(bit);
                this->add_wire("[1:0] " + new_wire);
                wire_matrix[level + 1][bit] = new_wire;

                if(pow(2, level + 1) <= bit){
                    CLA_STAR star_operator("CLA_level_" + to_string(level+1) + "_bit_" + to_string(bit),
                                        {wire_matrix[level][bit - done_bits] + "[0]", wire_matrix[level][bit - done_bits] + "[1]", wire_matrix[level][bit] + "[0]", wire_matrix[level][bit] + "[1]"},
                                        {wire_matrix[level+1][bit] + "[0]", wire_matrix[level+1][bit] + "[1]"}
                                        );
                    this->add_submodule(star_operator);
                }
                else{
                    /*------------------------------------------------------------------------------------------
                    If no more computations are required for the current bit, we join the wire with carry_final[N]
                    ------------------------------------------------------------------------------------------*/
                    CLA_STAR star_operator("CLA_level_" + to_string(level+1) + "_bit_" + to_string(bit),
                                        {wire_matrix[level][bit - done_bits] + "[0]", wire_matrix[level][bit - done_bits] + "[1]", wire_matrix[level][bit] + "[0]", wire_matrix[level][bit] + "[1]"},
                                        {carry_final + "[" + to_string(bit) + "]", wire_matrix[level+1][bit] + "[1]"}
                                        );
                    JOIN joint("CLA_WIRE_JOINT_" + to_string(level+1) + "_bit_" + to_string(bit),
                              carry_final + "[" + to_string(bit) + "]",
                              wire_matrix[level+1][bit] + "[0]");
                    
                    this->add_submodule(joint);
                    this->add_submodule(star_operator);
                }
            }
        }
    }

    /*------------------------------------------------------------------------------------------
    Now we have everything, n bit A, n bit B, n bit carry_final. We do A xor B xor carry_final
    to get the sum.
    ------------------------------------------------------------------------------------------*/
    wire xor_temp_wire = "CLA_xor_temp_wire";
    this->add_wire("[" + to_string(n_bits -1) + ":0] " + xor_temp_wire);

    XOR_N_BIT xor_1("CLA_XOR_1",
                    {"A", "B"},
                    xor_temp_wire,
                    n_bits);

    XOR_N_BIT xor_2("CLA_XOR_2",
                    {xor_temp_wire, carry_final + "[" + to_string(n_bits-1) + ":0]" },
                    "out",
                    n_bits);
    
    this->add_submodule(xor_1);
    this->add_submodule(xor_2);

    /*------------------------------------------------------------------------------------------
    The wiring is complete, now we use auto_gen to automaically generate the definitions.
    ------------------------------------------------------------------------------------------*/
    this->definition = this->auto_gen("module CARRY_LOOK_AHEAD_ADDER_" + to_string(n_bits) + "_BIT");
    this->generate =  "CARRY_LOOK_AHEAD_ADDER_" + to_string(this->n_bits) + "_BIT " + this->name  + " (" + this->inputs.at(0) + ", " + this->inputs.at(1) + ", " + this->outputs.at(0) + ");";
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x28d0, %rsp           # imm = 0x28D0
movq %rsi, -0x2568(%rbp)
movq %rdx, -0x2580(%rbp)
movq %rcx, -0x2578(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movl %r8d, -0x24(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x2570(%rbp)
callq 0x1c4e0
movq -0x2570(%rbp), %rdi
movq -0x2568(%rbp), %rsi
callq 0x1b0b0
jmp 0x281d9
movq -0x2580(%rbp), %rsi
movq -0x2570(%rbp), %rdi
subq $-0x80, %rdi
callq 0x1c9a0
jmp 0x281f2
movq -0x2578(%rbp), %rsi
movq -0x2570(%rbp), %rdi
addq $0x98, %rdi
callq 0x1bc10
jmp 0x2820e
movq -0x2570(%rbp), %rax
movl -0x24(%rbp), %ecx
movl %ecx, 0x190(%rax)
leaq -0x59(%rbp), %rdi
movq %rdi, -0x2588(%rbp)
callq 0x1da80
movq -0x2588(%rbp), %rdx
leaq 0x1f496(%rip), %rsi     # 0x476d2
leaq -0x58(%rbp), %rdi
callq 0x1d8a0
jmp 0x28247
movq -0x2570(%rbp), %rdi
leaq -0x58(%rbp), %rsi
xorl %edx, %edx
callq 0x1b740
jmp 0x2825b
leaq -0x58(%rbp), %rdi
callq 0x1bea0
leaq -0x59(%rbp), %rdi
callq 0x1ca40
leaq -0x81(%rbp), %rdi
movq %rdi, -0x2590(%rbp)
callq 0x1da80
movq -0x2590(%rbp), %rdx
leaq 0x1f20a(%rip), %rsi     # 0x47498
leaq -0x80(%rbp), %rdi
callq 0x1d8a0
jmp 0x28299
movq -0x2570(%rbp), %rdi
leaq -0x80(%rbp), %rsi
xorl %edx, %edx
callq 0x1b740
jmp 0x282ad
leaq -0x80(%rbp), %rdi
callq 0x1bea0
leaq -0x81(%rbp), %rdi
callq 0x1ca40
leaq -0xa9(%rbp), %rdi
movq %rdi, -0x2598(%rbp)
callq 0x1da80
movq -0x2598(%rbp), %rdx
leaq 0x1f1be(%rip), %rsi     # 0x474a1
leaq -0xa8(%rbp), %rdi
callq 0x1d8a0
jmp 0x282f1
movq -0x2570(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
movl $0x1, %edx
callq 0x1b740
jmp 0x2830b
leaq -0xa8(%rbp), %rdi
callq 0x1bea0
leaq -0xa9(%rbp), %rdi
callq 0x1ca40
movl -0x24(%rbp), %edi
incl %edi
callq 0x1c470
movsd %xmm0, -0x25a0(%rbp)
jmp 0x28337
movsd -0x25a0(%rbp), %xmm0
callq 0x1b310
cvttsd2si %xmm0, %eax
movl %eax, -0xb0(%rbp)
leaq -0xd1(%rbp), %rdi
movq %rdi, -0x25a8(%rbp)
callq 0x1da80
movq -0x25a8(%rbp), %rdx
leaq 0x1f208(%rip), %rsi     # 0x47577
leaq -0xd0(%rbp), %rdi
callq 0x1d8a0
jmp 0x2837d
leaq -0xd1(%rbp), %rdi
callq 0x1ca40
leaq 0x1f1f7(%rip), %rsi     # 0x47587
leaq -0xf8(%rbp), %rdi
leaq -0xd0(%rbp), %rdx
callq 0x1c5a0
jmp 0x283a5
movq -0x2570(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x1b5d0
jmp 0x283ba
leaq -0xf8(%rbp), %rdi
callq 0x1bea0
leaq 0x1f17a(%rip), %rsi     # 0x47547
leaq -0x138(%rbp), %rdi
leaq -0xd0(%rbp), %rdx
callq 0x1c5a0
jmp 0x283e2
leaq 0x1f676(%rip), %rdx     # 0x47a5f
leaq -0x118(%rbp), %rdi
leaq -0x138(%rbp), %rsi
callq 0x1b430
jmp 0x283fe
movq -0x2570(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0x1c260
jmp 0x28413
leaq -0x118(%rbp), %rdi
callq 0x1bea0
leaq -0x138(%rbp), %rdi
callq 0x1bea0
movl -0xb0(%rbp), %eax
incl %eax
movq %rax, -0x25c8(%rbp)
movl -0x24(%rbp), %ecx
incl %ecx
movq %rcx, -0x25c0(%rbp)
movq %rsp, %rdx
movq %rdx, -0x140(%rbp)
movq %rax, %rsi
imulq %rcx, %rsi
shlq $0x5, %rsi
movq %rsp, %rdx
subq %rsi, %rdx
movq %rdx, -0x25b8(%rbp)
movq %rdx, %rsp
movq %rax, -0x148(%rbp)
movq %rcx, -0x150(%rbp)
imulq %rcx, %rax
movq %rax, -0x25b0(%rbp)
cmpq $0x0, %rax
je 0x284e1
movq -0x25b8(%rbp), %rax
movq -0x25b0(%rbp), %rdx
shlq $0x5, %rdx
movq %rax, %rcx
addq %rdx, %rcx
movq %rcx, -0x25d8(%rbp)
movq %rax, -0x25d0(%rbp)
movq -0x25d0(%rbp), %rdi
movq %rdi, -0x25e0(%rbp)
callq 0x1d130
movq -0x25e0(%rbp), %rax
movq -0x25d8(%rbp), %rcx
addq $0x20, %rax
cmpq %rcx, %rax
movq %rax, -0x25d0(%rbp)
jne 0x284b0
movq -0x25b8(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x1b0b0
jmp 0x284f6
movl $0x1, -0x154(%rbp)
movl -0x154(%rbp), %eax
cmpl -0x24(%rbp), %eax
jg 0x28e6f
movl -0x154(%rbp), %esi
decl %esi
leaq -0x1b8(%rbp), %rdi
callq 0x1ced0
jmp 0x28525
leaq 0x1ec67(%rip), %rsi     # 0x47193
leaq -0x198(%rbp), %rdi
leaq -0x1b8(%rbp), %rdx
callq 0x1d820
jmp 0x28541
leaq 0x1ecbb(%rip), %rdx     # 0x47203
leaq -0x178(%rbp), %rdi
leaq -0x198(%rbp), %rsi
callq 0x1b430
jmp 0x2855d
leaq -0x198(%rbp), %rdi
callq 0x1bea0
leaq -0x1b8(%rbp), %rdi
callq 0x1bea0
movl -0x154(%rbp), %esi
leaq -0x1f8(%rbp), %rdi
callq 0x1ced0
jmp 0x28589
leaq 0x1effe(%rip), %rsi     # 0x4758e
leaq -0x1d8(%rbp), %rdi
leaq -0x1f8(%rbp), %rdx
callq 0x1d820
jmp 0x285a5
leaq -0x1f8(%rbp), %rdi
callq 0x1bea0
leaq 0x1efcf(%rip), %rsi     # 0x47587
leaq -0x218(%rbp), %rdi
leaq -0x1d8(%rbp), %rdx
callq 0x1c5a0
jmp 0x285cd
movq -0x2570(%rbp), %rdi
leaq -0x218(%rbp), %rsi
callq 0x1b5d0
jmp 0x285e2
leaq -0x218(%rbp), %rdi
callq 0x1bea0
movl -0x154(%rbp), %esi
leaq -0x3f0(%rbp), %rdi
callq 0x1ced0
jmp 0x28602
leaq 0x1ef94(%rip), %rsi     # 0x4759d
leaq -0x3d0(%rbp), %rdi
leaq -0x3f0(%rbp), %rdx
callq 0x1d820
jmp 0x2861e
leaq -0x458(%rbp), %rdi
movq %rdi, -0x460(%rbp)
leaq 0x1f09f(%rip), %rsi     # 0x476d2
leaq -0x178(%rbp), %rdx
callq 0x1c5a0
jmp 0x28641
leaq -0x438(%rbp), %rdi
movq %rdi, -0x460(%rbp)
leaq 0x1ee42(%rip), %rsi     # 0x47498
leaq -0x178(%rbp), %rdx
callq 0x1c5a0
jmp 0x28664
leaq -0x458(%rbp), %rax
movq %rax, -0x418(%rbp)
movq $0x2, -0x410(%rbp)
leaq -0x461(%rbp), %rdi
movq %rdi, -0x25e8(%rbp)
callq 0x1b490
movq -0x25e8(%rbp), %rcx
movq -0x418(%rbp), %rsi
movq -0x410(%rbp), %rdx
leaq -0x408(%rbp), %rdi
callq 0x1b4a0
jmp 0x286b3
leaq 0x1eef4(%rip), %rdx     # 0x475ae
leaq -0x488(%rbp), %rdi
leaq -0x1d8(%rbp), %rsi
callq 0x1ce60
jmp 0x286cf
leaq -0x3b0(%rbp), %rdi
leaq -0x3d0(%rbp), %rsi
leaq -0x408(%rbp), %rdx
leaq -0x488(%rbp), %rcx
callq 0x1b6f0
jmp 0x286f2
leaq -0x488(%rbp), %rdi
callq 0x1bea0
leaq -0x408(%rbp), %rdi
callq 0x1c100
leaq -0x461(%rbp), %rdi
callq 0x1b420
leaq -0x458(%rbp), %rax
movq %rax, -0x25f8(%rbp)
addq $0x40, %rax
movq %rax, -0x25f0(%rbp)
movq -0x25f0(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x2600(%rbp)
callq 0x1bea0
movq -0x25f8(%rbp), %rcx
movq -0x2600(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x25f0(%rbp)
jne 0x2872f
leaq -0x3d0(%rbp), %rdi
callq 0x1bea0
leaq -0x3f0(%rbp), %rdi
callq 0x1bea0
movl -0x154(%rbp), %esi
leaq -0x660(%rbp), %rdi
callq 0x1ced0
jmp 0x2878c
leaq 0x1ee1f(%rip), %rsi     # 0x475b2
leaq -0x640(%rbp), %rdi
leaq -0x660(%rbp), %rdx
callq 0x1d820
jmp 0x287a8
leaq -0x6c8(%rbp), %rdi
movq %rdi, -0x6d0(%rbp)
leaq 0x1ef15(%rip), %rsi     # 0x476d2
leaq -0x178(%rbp), %rdx
callq 0x1c5a0
jmp 0x287cb
leaq -0x6a8(%rbp), %rdi
movq %rdi, -0x6d0(%rbp)
leaq 0x1ecb8(%rip), %rsi     # 0x47498
leaq -0x178(%rbp), %rdx
callq 0x1c5a0
jmp 0x287ee
leaq -0x6c8(%rbp), %rax
movq %rax, -0x688(%rbp)
movq $0x2, -0x680(%rbp)
leaq -0x6d1(%rbp), %rdi
movq %rdi, -0x2608(%rbp)
callq 0x1b490
movq -0x2608(%rbp), %rcx
movq -0x688(%rbp), %rsi
movq -0x680(%rbp), %rdx
leaq -0x678(%rbp), %rdi
callq 0x1b4a0
jmp 0x2883d
leaq 0x1ed7e(%rip), %rdx     # 0x475c2
leaq -0x6f8(%rbp), %rdi
leaq -0x1d8(%rbp), %rsi
callq 0x1ce60
jmp 0x28859
leaq -0x620(%rbp), %rdi
leaq -0x640(%rbp), %rsi
leaq -0x678(%rbp), %rdx
leaq -0x6f8(%rbp), %rcx
callq 0x1dd70
jmp 0x2887c
leaq -0x6f8(%rbp), %rdi
callq 0x1bea0
leaq -0x678(%rbp), %rdi
callq 0x1c100
leaq -0x6d1(%rbp), %rdi
callq 0x1b420
leaq -0x6c8(%rbp), %rax
movq %rax, -0x2618(%rbp)
addq $0x40, %rax
movq %rax, -0x2610(%rbp)
movq -0x2610(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x2620(%rbp)
callq 0x1bea0
movq -0x2618(%rbp), %rcx
movq -0x2620(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x2610(%rbp)
jne 0x288b9
leaq -0x640(%rbp), %rdi
callq 0x1bea0
leaq -0x660(%rbp), %rdi
callq 0x1bea0
movq -0x25b8(%rbp), %rdi
movslq -0x154(%rbp), %rax
shlq $0x5, %rax
addq %rax, %rdi
leaq -0x1d8(%rbp), %rsi
callq 0x1b0b0
jmp 0x28925
leaq -0x890(%rbp), %rdi
leaq -0x3b0(%rbp), %rsi
callq 0x1cb00
jmp 0x2893a
movq -0x2570(%rbp), %rdi
leaq -0x890(%rbp), %rsi
callq 0x1c4c0
jmp 0x2894f
leaq -0x890(%rbp), %rdi
callq 0x1b6d0
leaq -0xa28(%rbp), %rdi
leaq -0x620(%rbp), %rsi
callq 0x1cb00
jmp 0x28970
movq -0x2570(%rbp), %rdi
leaq -0xa28(%rbp), %rsi
callq 0x1c4c0
jmp 0x28985
leaq -0xa28(%rbp), %rdi
callq 0x1b6d0
leaq -0x620(%rbp), %rdi
callq 0x1ce50
leaq -0x3b0(%rbp), %rdi
callq 0x1e040
leaq -0x1d8(%rbp), %rdi
callq 0x1bea0
leaq -0x178(%rbp), %rdi
callq 0x1bea0
movl -0x154(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x154(%rbp)
jmp 0x28500
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2b3e2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x28a09
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x1bea0
leaq -0x59(%rbp), %rdi
callq 0x1ca40
jmp 0x2b3e2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x28a3a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x1bea0
leaq -0x81(%rbp), %rdi
callq 0x1ca40
jmp 0x2b3e2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x28a71
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x1bea0
leaq -0xa9(%rbp), %rdi
callq 0x1ca40
jmp 0x2b3e2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0xd1(%rbp), %rdi
callq 0x1ca40
jmp 0x2b3e2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2b3d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0xf8(%rbp), %rdi
callq 0x1bea0
jmp 0x2b3d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x28af3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x1bea0
leaq -0x138(%rbp), %rdi
callq 0x1bea0
jmp 0x2b3d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2b374
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x28b3b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x198(%rbp), %rdi
callq 0x1bea0
leaq -0x1b8(%rbp), %rdi
callq 0x1bea0
jmp 0x2b374
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x28e5e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x1f8(%rbp), %rdi
callq 0x1bea0
jmp 0x28e5e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x28e52
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x218(%rbp), %rdi
callq 0x1bea0
jmp 0x28e52
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x28cb9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movq -0x460(%rbp), %rax
leaq -0x458(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x2628(%rbp)
je 0x28c10
movq -0x2628(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x2630(%rbp)
callq 0x1bea0
movq -0x2630(%rbp), %rax
leaq -0x458(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x2628(%rbp)
jne 0x28bdf
jmp 0x28cad
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x28c55
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x28c49
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x488(%rbp), %rdi
callq 0x1bea0
leaq -0x408(%rbp), %rdi
callq 0x1c100
leaq -0x461(%rbp), %rdi
callq 0x1b420
leaq -0x458(%rbp), %rax
movq %rax, -0x2640(%rbp)
addq $0x40, %rax
movq %rax, -0x2638(%rbp)
movq -0x2638(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x2648(%rbp)
callq 0x1bea0
movq -0x2640(%rbp), %rcx
movq -0x2648(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x2638(%rbp)
jne 0x28c7a
jmp 0x28cad
leaq -0x3d0(%rbp), %rdi
callq 0x1bea0
leaq -0x3f0(%rbp), %rdi
callq 0x1bea0
jmp 0x28e52
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x28e46
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x28dec
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movq -0x6d0(%rbp), %rax
leaq -0x6c8(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x2650(%rbp)
je 0x28d43
movq -0x2650(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x2658(%rbp)
callq 0x1bea0
movq -0x2658(%rbp), %rax
leaq -0x6c8(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x2650(%rbp)
jne 0x28d12
jmp 0x28de0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x28d88
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x28d7c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x6f8(%rbp), %rdi
callq 0x1bea0
leaq -0x678(%rbp), %rdi
callq 0x1c100
leaq -0x6d1(%rbp), %rdi
callq 0x1b420
leaq -0x6c8(%rbp), %rax
movq %rax, -0x2668(%rbp)
addq $0x40, %rax
movq %rax, -0x2660(%rbp)
movq -0x2660(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x2670(%rbp)
callq 0x1bea0
movq -0x2668(%rbp), %rcx
movq -0x2670(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x2660(%rbp)
jne 0x28dad
jmp 0x28de0
leaq -0x640(%rbp), %rdi
callq 0x1bea0
leaq -0x660(%rbp), %rdi
callq 0x1bea0
jmp 0x28e46
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x28e3a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x890(%rbp), %rdi
callq 0x1b6d0
jmp 0x28e3a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0xa28(%rbp), %rdi
callq 0x1b6d0
leaq -0x620(%rbp), %rdi
callq 0x1ce50
leaq -0x3b0(%rbp), %rdi
callq 0x1e040
leaq -0x1d8(%rbp), %rdi
callq 0x1bea0
leaq -0x178(%rbp), %rdi
callq 0x1bea0
jmp 0x2b374
leaq -0xa49(%rbp), %rdi
movq %rdi, -0x2678(%rbp)
callq 0x1da80
movq -0x2678(%rbp), %rdx
leaq 0x1e736(%rip), %rsi     # 0x475c6
leaq -0xa48(%rbp), %rdi
callq 0x1d8a0
jmp 0x28e9e
leaq -0xa49(%rbp), %rdi
callq 0x1ca40
movl -0x24(%rbp), %esi
leaq -0xad0(%rbp), %rdi
callq 0x1ced0
jmp 0x28ebb
leaq 0x1e2d1(%rip), %rsi     # 0x47193
leaq -0xab0(%rbp), %rdi
leaq -0xad0(%rbp), %rdx
callq 0x1d820
jmp 0x28ed7
leaq 0x1e6ab(%rip), %rdx     # 0x47589
leaq -0xa90(%rbp), %rdi
leaq -0xab0(%rbp), %rsi
callq 0x1b430
jmp 0x28ef3
leaq -0xa70(%rbp), %rdi
leaq -0xa90(%rbp), %rsi
leaq -0xa48(%rbp), %rdx
callq 0x1d3b0
jmp 0x28f0f
movq -0x2570(%rbp), %rdi
leaq -0xa70(%rbp), %rsi
callq 0x1b5d0
jmp 0x28f24
leaq -0xa70(%rbp), %rdi
callq 0x1bea0
leaq -0xa90(%rbp), %rdi
callq 0x1bea0
leaq -0xab0(%rbp), %rdi
callq 0x1bea0
leaq -0xad0(%rbp), %rdi
callq 0x1bea0
leaq -0xaf1(%rbp), %rdi
movq %rdi, -0x2680(%rbp)
callq 0x1da80
movq -0x2680(%rbp), %rdx
leaq 0x1e65d(%rip), %rsi     # 0x475d2
leaq -0xaf0(%rbp), %rdi
callq 0x1d8a0
jmp 0x28f83
movq -0x2570(%rbp), %rdi
leaq -0xaf0(%rbp), %rsi
callq 0x1c260
jmp 0x28f98
leaq -0xaf0(%rbp), %rdi
callq 0x1bea0
leaq -0xaf1(%rbp), %rdi
callq 0x1ca40
movl $0x0, -0xaf8(%rbp)
movl -0xaf8(%rbp), %eax
cmpl -0xb0(%rbp), %eax
jge 0x2a51c
movl -0xaf8(%rbp), %esi
movl $0x2, %edi
callq 0x1cda0
movsd %xmm0, -0x2688(%rbp)
jmp 0x28fe6
movsd -0x2688(%rbp), %xmm0
cvttsd2si %xmm0, %eax
movl %eax, -0xafc(%rbp)
movl $0x0, -0xb00(%rbp)
movl -0xb00(%rbp), %eax
cmpl -0x24(%rbp), %eax
jg 0x2a506
movl -0xb00(%rbp), %eax
cmpl -0xafc(%rbp), %eax
jge 0x29145
movq -0x25b8(%rbp), %rdi
movq -0x25c0(%rbp), %rdx
movslq -0xaf8(%rbp), %rax
movl %eax, %ecx
imulq %rdx, %rax
shlq $0x5, %rax
movq %rdi, %rsi
addq %rax, %rsi
movslq -0xb00(%rbp), %rax
shlq $0x5, %rax
addq %rax, %rsi
incl %ecx
movslq %ecx, %rcx
imulq %rdx, %rcx
shlq $0x5, %rcx
addq %rcx, %rdi
addq %rax, %rdi
callq 0x1b0b0
jmp 0x29070
jmp 0x2a4f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0xa49(%rbp), %rdi
callq 0x1ca40
jmp 0x2b374
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2b368
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x290fd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x290f1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x290e5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0xa70(%rbp), %rdi
callq 0x1bea0
leaq -0xa90(%rbp), %rdi
callq 0x1bea0
leaq -0xab0(%rbp), %rdi
callq 0x1bea0
leaq -0xad0(%rbp), %rdi
callq 0x1bea0
jmp 0x2b368
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x29134
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0xaf0(%rbp), %rdi
callq 0x1bea0
leaq -0xaf1(%rbp), %rdi
callq 0x1ca40
jmp 0x2b368
movl -0xaf8(%rbp), %esi
incl %esi
leaq -0xb80(%rbp), %rdi
callq 0x1ced0
jmp 0x2915b
leaq 0x1e48b(%rip), %rsi     # 0x475ed
leaq -0xb60(%rbp), %rdi
leaq -0xb80(%rbp), %rdx
callq 0x1d820
jmp 0x29177
leaq 0x1e419(%rip), %rdx     # 0x47597
leaq -0xb40(%rbp), %rdi
leaq -0xb60(%rbp), %rsi
callq 0x1b430
jmp 0x29193
movl -0xb00(%rbp), %esi
leaq -0xba0(%rbp), %rdi
callq 0x1ced0
jmp 0x291a7
leaq -0xb20(%rbp), %rdi
leaq -0xb40(%rbp), %rsi
leaq -0xba0(%rbp), %rdx
callq 0x1c460
jmp 0x291c3
leaq -0xba0(%rbp), %rdi
callq 0x1bea0
leaq -0xb40(%rbp), %rdi
callq 0x1bea0
leaq -0xb60(%rbp), %rdi
callq 0x1bea0
leaq -0xb80(%rbp), %rdi
callq 0x1bea0
leaq 0x1e38d(%rip), %rsi     # 0x47587
leaq -0xbc0(%rbp), %rdi
leaq -0xb20(%rbp), %rdx
callq 0x1c5a0
jmp 0x2920f
movq -0x2570(%rbp), %rdi
leaq -0xbc0(%rbp), %rsi
callq 0x1b5d0
jmp 0x29224
leaq -0xbc0(%rbp), %rdi
callq 0x1bea0
movq -0x25c0(%rbp), %rcx
movq -0x25b8(%rbp), %rdi
movl -0xaf8(%rbp), %eax
incl %eax
cltq
imulq %rcx, %rax
shlq $0x5, %rax
addq %rax, %rdi
movslq -0xb00(%rbp), %rax
shlq $0x5, %rax
addq %rax, %rdi
leaq -0xb20(%rbp), %rsi
callq 0x1b0b0
jmp 0x2926f
movl -0xaf8(%rbp), %esi
incl %esi
movl $0x2, %edi
callq 0x1cda0
movsd %xmm0, -0x2690(%rbp)
jmp 0x2928b
movsd -0x2690(%rbp), %xmm1
cvtsi2sdl -0xb00(%rbp), %xmm0
ucomisd %xmm1, %xmm0
jb 0x29a00
movl -0xaf8(%rbp), %esi
incl %esi
leaq -0xdd8(%rbp), %rdi
callq 0x1ced0
jmp 0x292bb
leaq 0x1e334(%rip), %rsi     # 0x475f6
leaq -0xdb8(%rbp), %rdi
leaq -0xdd8(%rbp), %rdx
callq 0x1d820
jmp 0x292d7
leaq 0x1e2b9(%rip), %rdx     # 0x47597
leaq -0xd98(%rbp), %rdi
leaq -0xdb8(%rbp), %rsi
callq 0x1b430
jmp 0x292f3
movl -0xb00(%rbp), %esi
leaq -0xdf8(%rbp), %rdi
callq 0x1ced0
jmp 0x29307
leaq -0xd78(%rbp), %rdi
leaq -0xd98(%rbp), %rsi
leaq -0xdf8(%rbp), %rdx
callq 0x1c460
jmp 0x29323
movq -0x25b8(%rbp), %rsi
movq -0x25c0(%rbp), %rcx
leaq -0xea0(%rbp), %rdi
movq %rdi, -0xea8(%rbp)
movslq -0xaf8(%rbp), %rax
imulq %rcx, %rax
shlq $0x5, %rax
addq %rax, %rsi
movl -0xb00(%rbp), %eax
movl -0xafc(%rbp), %ecx
subl %ecx, %eax
cltq
shlq $0x5, %rax
addq %rax, %rsi
leaq 0x1e253(%rip), %rdx     # 0x475c2
callq 0x1ce60
jmp 0x29376
movq -0x25b8(%rbp), %rsi
movq -0x25c0(%rbp), %rcx
leaq -0xe80(%rbp), %rdi
movq %rdi, -0xea8(%rbp)
movslq -0xaf8(%rbp), %rax
imulq %rcx, %rax
shlq $0x5, %rax
addq %rax, %rsi
movl -0xb00(%rbp), %eax
movl -0xafc(%rbp), %ecx
subl %ecx, %eax
cltq
shlq $0x5, %rax
addq %rax, %rsi
leaq 0x1e1ec(%rip), %rdx     # 0x475ae
callq 0x1ce60
jmp 0x293c9
movq -0x25b8(%rbp), %rsi
movq -0x25c0(%rbp), %rcx
leaq -0xe60(%rbp), %rdi
movq %rdi, -0xea8(%rbp)
movslq -0xaf8(%rbp), %rax
imulq %rcx, %rax
shlq $0x5, %rax
addq %rax, %rsi
movslq -0xb00(%rbp), %rax
shlq $0x5, %rax
addq %rax, %rsi
leaq 0x1e1b6(%rip), %rdx     # 0x475c2
callq 0x1ce60
jmp 0x29413
movq -0x25b8(%rbp), %rsi
movq -0x25c0(%rbp), %rcx
leaq -0xe40(%rbp), %rdi
movq %rdi, -0xea8(%rbp)
movslq -0xaf8(%rbp), %rax
imulq %rcx, %rax
shlq $0x5, %rax
addq %rax, %rsi
movslq -0xb00(%rbp), %rax
shlq $0x5, %rax
addq %rax, %rsi
leaq 0x1e158(%rip), %rdx     # 0x475ae
callq 0x1ce60
jmp 0x2945d
leaq -0xea0(%rbp), %rax
movq %rax, -0xe20(%rbp)
movq $0x4, -0xe18(%rbp)
leaq -0xea9(%rbp), %rdi
movq %rdi, -0x2698(%rbp)
callq 0x1b490
movq -0x2698(%rbp), %rcx
movq -0xe20(%rbp), %rsi
movq -0xe18(%rbp), %rdx
leaq -0xe10(%rbp), %rdi
callq 0x1b4a0
jmp 0x294ac
movq -0x25b8(%rbp), %rsi
movq -0x25c0(%rbp), %rcx
leaq -0xf18(%rbp), %rdi
movq %rdi, -0xf20(%rbp)
movl -0xaf8(%rbp), %eax
incl %eax
cltq
imulq %rcx, %rax
shlq $0x5, %rax
addq %rax, %rsi
movslq -0xb00(%rbp), %rax
shlq $0x5, %rax
addq %rax, %rsi
leaq 0x1e0d0(%rip), %rdx     # 0x475c2
callq 0x1ce60
jmp 0x294f9
movq -0x25b8(%rbp), %rsi
movq -0x25c0(%rbp), %rcx
leaq -0xef8(%rbp), %rdi
movq %rdi, -0xf20(%rbp)
movl -0xaf8(%rbp), %eax
incl %eax
cltq
imulq %rcx, %rax
shlq $0x5, %rax
addq %rax, %rsi
movslq -0xb00(%rbp), %rax
shlq $0x5, %rax
addq %rax, %rsi
leaq 0x1e06f(%rip), %rdx     # 0x475ae
callq 0x1ce60
jmp 0x29546
leaq -0xf18(%rbp), %rax
movq %rax, -0xed8(%rbp)
movq $0x2, -0xed0(%rbp)
leaq -0xf21(%rbp), %rdi
movq %rdi, -0x26a0(%rbp)
callq 0x1b490
movq -0x26a0(%rbp), %rcx
movq -0xed8(%rbp), %rsi
movq -0xed0(%rbp), %rdx
leaq -0xec8(%rbp), %rdi
callq 0x1b4a0
jmp 0x29595
leaq -0xd58(%rbp), %rdi
leaq -0xd78(%rbp), %rsi
leaq -0xe10(%rbp), %rdx
leaq -0xec8(%rbp), %rcx
callq 0x1c6b0
jmp 0x295b8
leaq -0xec8(%rbp), %rdi
callq 0x1c100
leaq -0xf21(%rbp), %rdi
callq 0x1b420
leaq -0xf18(%rbp), %rax
movq %rax, -0x26b0(%rbp)
addq $0x40, %rax
movq %rax, -0x26a8(%rbp)
movq -0x26a8(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x26b8(%rbp)
callq 0x1bea0
movq -0x26b0(%rbp), %rcx
movq -0x26b8(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x26a8(%rbp)
jne 0x295e9
leaq -0xe10(%rbp), %rdi
callq 0x1c100
leaq -0xea9(%rbp), %rdi
callq 0x1b420
leaq -0xea0(%rbp), %rax
movq %rax, -0x26c8(%rbp)
addq $0x80, %rax
movq %rax, -0x26c0(%rbp)
movq -0x26c0(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x26d0(%rbp)
callq 0x1bea0
movq -0x26c8(%rbp), %rcx
movq -0x26d0(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x26c0(%rbp)
jne 0x2964d
leaq -0xd78(%rbp), %rdi
callq 0x1bea0
leaq -0xdf8(%rbp), %rdi
callq 0x1bea0
leaq -0xd98(%rbp), %rdi
callq 0x1bea0
leaq -0xdb8(%rbp), %rdi
callq 0x1bea0
leaq -0xdd8(%rbp), %rdi
callq 0x1bea0
leaq -0x10c0(%rbp), %rdi
leaq -0xd58(%rbp), %rsi
callq 0x1cb00
jmp 0x296cf
movq -0x2570(%rbp), %rdi
leaq -0x10c0(%rbp), %rsi
callq 0x1c4c0
jmp 0x296e4
leaq -0x10c0(%rbp), %rdi
callq 0x1b6d0
leaq -0xd58(%rbp), %rdi
callq 0x1d920
jmp 0x2a4d1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2975b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2974f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x29743
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0xba0(%rbp), %rdi
callq 0x1bea0
leaq -0xb40(%rbp), %rdi
callq 0x1bea0
leaq -0xb60(%rbp), %rdi
callq 0x1bea0
leaq -0xb80(%rbp), %rdi
callq 0x1bea0
jmp 0x2b368
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2a4df
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0xbc0(%rbp), %rdi
callq 0x1bea0
jmp 0x2a4df
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x299b8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x299ac
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x299a0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x29994
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movq -0xea8(%rbp), %rax
leaq -0xea0(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x26d8(%rbp)
je 0x29835
movq -0x26d8(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x26e0(%rbp)
callq 0x1bea0
movq -0x26e0(%rbp), %rax
leaq -0xea0(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x26d8(%rbp)
jne 0x29804
jmp 0x29988
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2992e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movq -0xf20(%rbp), %rax
leaq -0xf18(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x26e8(%rbp)
je 0x298a2
movq -0x26e8(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x26f0(%rbp)
callq 0x1bea0
movq -0x26f0(%rbp), %rax
leaq -0xf18(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x26e8(%rbp)
jne 0x29871
jmp 0x29922
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x298ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0xec8(%rbp), %rdi
callq 0x1c100
leaq -0xf21(%rbp), %rdi
callq 0x1b420
leaq -0xf18(%rbp), %rax
movq %rax, -0x2700(%rbp)
addq $0x40, %rax
movq %rax, -0x26f8(%rbp)
movq -0x26f8(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x2708(%rbp)
callq 0x1bea0
movq -0x2700(%rbp), %rcx
movq -0x2708(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x26f8(%rbp)
jne 0x298ef
jmp 0x29922
leaq -0xe10(%rbp), %rdi
callq 0x1c100
leaq -0xea9(%rbp), %rdi
callq 0x1b420
leaq -0xea0(%rbp), %rax
movq %rax, -0x2718(%rbp)
addq $0x80, %rax
movq %rax, -0x2710(%rbp)
movq -0x2710(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x2720(%rbp)
callq 0x1bea0
movq -0x2718(%rbp), %rcx
movq -0x2720(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x2710(%rbp)
jne 0x29955
jmp 0x29988
leaq -0xd78(%rbp), %rdi
callq 0x1bea0
leaq -0xdf8(%rbp), %rdi
callq 0x1bea0
leaq -0xd98(%rbp), %rdi
callq 0x1bea0
leaq -0xdb8(%rbp), %rdi
callq 0x1bea0
leaq -0xdd8(%rbp), %rdi
callq 0x1bea0
jmp 0x2a4df
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x299ef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x10c0(%rbp), %rdi
callq 0x1b6d0
leaq -0xd58(%rbp), %rdi
callq 0x1d920
jmp 0x2a4df
movl -0xaf8(%rbp), %esi
incl %esi
leaq -0x12d8(%rbp), %rdi
callq 0x1ced0
jmp 0x29a16
leaq 0x1dbd9(%rip), %rsi     # 0x475f6
leaq -0x12b8(%rbp), %rdi
leaq -0x12d8(%rbp), %rdx
callq 0x1d820
jmp 0x29a32
leaq 0x1db5e(%rip), %rdx     # 0x47597
leaq -0x1298(%rbp), %rdi
leaq -0x12b8(%rbp), %rsi
callq 0x1b430
jmp 0x29a4e
movl -0xb00(%rbp), %esi
leaq -0x12f8(%rbp), %rdi
callq 0x1ced0
jmp 0x29a62
leaq -0x1278(%rbp), %rdi
leaq -0x1298(%rbp), %rsi
leaq -0x12f8(%rbp), %rdx
callq 0x1c460
jmp 0x29a7e
movq -0x25b8(%rbp), %rsi
movq -0x25c0(%rbp), %rcx
leaq -0x13a0(%rbp), %rdi
movq %rdi, -0x13a8(%rbp)
movslq -0xaf8(%rbp), %rax
imulq %rcx, %rax
shlq $0x5, %rax
addq %rax, %rsi
movl -0xb00(%rbp), %eax
movl -0xafc(%rbp), %ecx
subl %ecx, %eax
cltq
shlq $0x5, %rax
addq %rax, %rsi
leaq 0x1daf8(%rip), %rdx     # 0x475c2
callq 0x1ce60
jmp 0x29ad1
movq -0x25b8(%rbp), %rsi
movq -0x25c0(%rbp), %rcx
leaq -0x1380(%rbp), %rdi
movq %rdi, -0x13a8(%rbp)
movslq -0xaf8(%rbp), %rax
imulq %rcx, %rax
shlq $0x5, %rax
addq %rax, %rsi
movl -0xb00(%rbp), %eax
movl -0xafc(%rbp), %ecx
subl %ecx, %eax
cltq
shlq $0x5, %rax
addq %rax, %rsi
leaq 0x1da91(%rip), %rdx     # 0x475ae
callq 0x1ce60
jmp 0x29b24
movq -0x25b8(%rbp), %rsi
movq -0x25c0(%rbp), %rcx
leaq -0x1360(%rbp), %rdi
movq %rdi, -0x13a8(%rbp)
movslq -0xaf8(%rbp), %rax
imulq %rcx, %rax
shlq $0x5, %rax
addq %rax, %rsi
movslq -0xb00(%rbp), %rax
shlq $0x5, %rax
addq %rax, %rsi
leaq 0x1da5b(%rip), %rdx     # 0x475c2
callq 0x1ce60
jmp 0x29b6e
movq -0x25b8(%rbp), %rsi
movq -0x25c0(%rbp), %rcx
leaq -0x1340(%rbp), %rdi
movq %rdi, -0x13a8(%rbp)
movslq -0xaf8(%rbp), %rax
imulq %rcx, %rax
shlq $0x5, %rax
addq %rax, %rsi
movslq -0xb00(%rbp), %rax
shlq $0x5, %rax
addq %rax, %rsi
leaq 0x1d9fd(%rip), %rdx     # 0x475ae
callq 0x1ce60
jmp 0x29bb8
leaq -0x13a0(%rbp), %rax
movq %rax, -0x1320(%rbp)
movq $0x4, -0x1318(%rbp)
leaq -0x13a9(%rbp), %rdi
movq %rdi, -0x2728(%rbp)
callq 0x1b490
movq -0x2728(%rbp), %rcx
movq -0x1320(%rbp), %rsi
movq -0x1318(%rbp), %rdx
leaq -0x1310(%rbp), %rdi
callq 0x1b4a0
jmp 0x29c07
movb $0x1, -0x1481(%rbp)
leaq -0x1418(%rbp), %rax
movq %rax, -0x1420(%rbp)
leaq 0x1d570(%rip), %rdx     # 0x47193
leaq -0x1460(%rbp), %rdi
leaq -0xa48(%rbp), %rsi
callq 0x1ce60
jmp 0x29c38
movl -0xb00(%rbp), %esi
leaq -0x1480(%rbp), %rdi
callq 0x1ced0
jmp 0x29c4c
leaq -0x1440(%rbp), %rdi
leaq -0x1460(%rbp), %rsi
leaq -0x1480(%rbp), %rdx
callq 0x1c460
jmp 0x29c68
leaq 0x1d594(%rip), %rdx     # 0x47203
leaq -0x1418(%rbp), %rdi
leaq -0x1440(%rbp), %rsi
callq 0x1b430
jmp 0x29c84
movq -0x25b8(%rbp), %rsi
movq -0x25c0(%rbp), %rcx
leaq -0x13f8(%rbp), %rdi
movq %rdi, -0x1420(%rbp)
movl -0xaf8(%rbp), %eax
incl %eax
cltq
imulq %rcx, %rax
shlq $0x5, %rax
addq %rax, %rsi
movslq -0xb00(%rbp), %rax
shlq $0x5, %rax
addq %rax, %rsi
leaq 0x1d8e4(%rip), %rdx     # 0x475ae
callq 0x1ce60
jmp 0x29cd1
movb $0x0, -0x1481(%rbp)
leaq -0x1418(%rbp), %rax
movq %rax, -0x13d8(%rbp)
movq $0x2, -0x13d0(%rbp)
leaq -0x1482(%rbp), %rdi
movq %rdi, -0x2730(%rbp)
callq 0x1b490
movq -0x2730(%rbp), %rcx
movq -0x13d8(%rbp), %rsi
movq -0x13d0(%rbp), %rdx
leaq -0x13c8(%rbp), %rdi
callq 0x1b4a0
jmp 0x29d27
leaq -0x1258(%rbp), %rdi
leaq -0x1278(%rbp), %rsi
leaq -0x1310(%rbp), %rdx
leaq -0x13c8(%rbp), %rcx
callq 0x1c6b0
jmp 0x29d4a
leaq -0x13c8(%rbp), %rdi
callq 0x1c100
leaq -0x1482(%rbp), %rdi
callq 0x1b420
leaq -0x1418(%rbp), %rax
movq %rax, -0x2740(%rbp)
addq $0x40, %rax
movq %rax, -0x2738(%rbp)
movq -0x2738(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x2748(%rbp)
callq 0x1bea0
movq -0x2740(%rbp), %rcx
movq -0x2748(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x2738(%rbp)
jne 0x29d7b
leaq -0x1440(%rbp), %rdi
callq 0x1bea0
leaq -0x1480(%rbp), %rdi
callq 0x1bea0
leaq -0x1460(%rbp), %rdi
callq 0x1bea0
leaq -0x1310(%rbp), %rdi
callq 0x1c100
leaq -0x13a9(%rbp), %rdi
callq 0x1b420
leaq -0x13a0(%rbp), %rax
movq %rax, -0x2758(%rbp)
addq $0x80, %rax
movq %rax, -0x2750(%rbp)
movq -0x2750(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x2760(%rbp)
callq 0x1bea0
movq -0x2758(%rbp), %rcx
movq -0x2760(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x2750(%rbp)
jne 0x29e03
leaq -0x1278(%rbp), %rdi
callq 0x1bea0
leaq -0x12f8(%rbp), %rdi
callq 0x1bea0
leaq -0x1298(%rbp), %rdi
callq 0x1bea0
leaq -0x12b8(%rbp), %rdi
callq 0x1bea0
leaq -0x12d8(%rbp), %rdi
callq 0x1bea0
movl -0xaf8(%rbp), %esi
incl %esi
leaq -0x16a0(%rbp), %rdi
callq 0x1ced0
jmp 0x29e86
leaq 0x1d774(%rip), %rsi     # 0x47601
leaq -0x1680(%rbp), %rdi
leaq -0x16a0(%rbp), %rdx
callq 0x1d820
jmp 0x29ea2
leaq 0x1d6ee(%rip), %rdx     # 0x47597
leaq -0x1660(%rbp), %rdi
leaq -0x1680(%rbp), %rsi
callq 0x1b430
jmp 0x29ebe
movl -0xb00(%rbp), %esi
leaq -0x16c0(%rbp), %rdi
callq 0x1ced0
jmp 0x29ed2
leaq -0x1640(%rbp), %rdi
leaq -0x1660(%rbp), %rsi
leaq -0x16c0(%rbp), %rdx
callq 0x1c460
jmp 0x29eee
leaq 0x1d29e(%rip), %rdx     # 0x47193
leaq -0x1720(%rbp), %rdi
leaq -0xa48(%rbp), %rsi
callq 0x1ce60
jmp 0x29f0a
movl -0xb00(%rbp), %esi
leaq -0x1740(%rbp), %rdi
callq 0x1ced0
jmp 0x29f1e
leaq -0x1700(%rbp), %rdi
leaq -0x1720(%rbp), %rsi
leaq -0x1740(%rbp), %rdx
callq 0x1c460
jmp 0x29f3a
leaq 0x1d2c2(%rip), %rdx     # 0x47203
leaq -0x16e0(%rbp), %rdi
leaq -0x1700(%rbp), %rsi
callq 0x1b430
jmp 0x29f56
movq -0x25b8(%rbp), %rsi
movq -0x25c0(%rbp), %rcx
movl -0xaf8(%rbp), %eax
incl %eax
cltq
imulq %rcx, %rax
shlq $0x5, %rax
addq %rax, %rsi
movslq -0xb00(%rbp), %rax
shlq $0x5, %rax
addq %rax, %rsi
leaq 0x1d634(%rip), %rdx     # 0x475c2
leaq -0x1760(%rbp), %rdi
callq 0x1ce60
jmp 0x29f9c
leaq -0x1620(%rbp), %rdi
leaq -0x1640(%rbp), %rsi
leaq -0x16e0(%rbp), %rdx
leaq -0x1760(%rbp), %rcx
callq 0x1dae0
jmp 0x29fbf
leaq -0x1760(%rbp), %rdi
callq 0x1bea0
leaq -0x16e0(%rbp), %rdi
callq 0x1bea0
leaq -0x1700(%rbp), %rdi
callq 0x1bea0
leaq -0x1740(%rbp), %rdi
callq 0x1bea0
leaq -0x1720(%rbp), %rdi
callq 0x1bea0
leaq -0x1640(%rbp), %rdi
callq 0x1bea0
leaq -0x16c0(%rbp), %rdi
callq 0x1bea0
leaq -0x1660(%rbp), %rdi
callq 0x1bea0
leaq -0x1680(%rbp), %rdi
callq 0x1bea0
leaq -0x16a0(%rbp), %rdi
callq 0x1bea0
leaq -0x18f8(%rbp), %rdi
leaq -0x1620(%rbp), %rsi
callq 0x1cb00
jmp 0x2a04c
movq -0x2570(%rbp), %rdi
leaq -0x18f8(%rbp), %rsi
callq 0x1c4c0
jmp 0x2a061
leaq -0x18f8(%rbp), %rdi
callq 0x1b6d0
leaq -0x1a90(%rbp), %rdi
leaq -0x1258(%rbp), %rsi
callq 0x1cb00
jmp 0x2a082
movq -0x2570(%rbp), %rdi
leaq -0x1a90(%rbp), %rsi
callq 0x1c4c0
jmp 0x2a097
leaq -0x1a90(%rbp), %rdi
callq 0x1b6d0
leaq -0x1620(%rbp), %rdi
callq 0x1d320
leaq -0x1258(%rbp), %rdi
callq 0x1d920
jmp 0x2a4d1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2a342
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2a336
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2a32a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2a31e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movq -0x13a8(%rbp), %rax
leaq -0x13a0(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x2768(%rbp)
je 0x2a15b
movq -0x2768(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x2770(%rbp)
callq 0x1bea0
movq -0x2770(%rbp), %rax
leaq -0x13a0(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x2768(%rbp)
jne 0x2a12a
jmp 0x2a312
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2a2b8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2a254
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2a248
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2a23c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2a230
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2a1d8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x13c8(%rbp), %rdi
callq 0x1c100
leaq -0x1482(%rbp), %rdi
callq 0x1b420
leaq -0x1418(%rbp), %rax
movq %rax, -0x2780(%rbp)
addq $0x40, %rax
movq %rax, -0x2778(%rbp)
movq -0x2778(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x2788(%rbp)
callq 0x1bea0
movq -0x2780(%rbp), %rcx
movq -0x2788(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x2778(%rbp)
jne 0x2a1fd
jmp 0x2a230
leaq -0x1440(%rbp), %rdi
callq 0x1bea0
leaq -0x1480(%rbp), %rdi
callq 0x1bea0
leaq -0x1460(%rbp), %rdi
callq 0x1bea0
testb $0x1, -0x1481(%rbp)
jne 0x2a25f
jmp 0x2a2ac
movq -0x1420(%rbp), %rax
leaq -0x1418(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x2790(%rbp)
je 0x2a2aa
movq -0x2790(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x2798(%rbp)
callq 0x1bea0
movq -0x2798(%rbp), %rax
leaq -0x1418(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x2790(%rbp)
jne 0x2a279
jmp 0x2a2ac
leaq -0x1310(%rbp), %rdi
callq 0x1c100
leaq -0x13a9(%rbp), %rdi
callq 0x1b420
leaq -0x13a0(%rbp), %rax
movq %rax, -0x27a8(%rbp)
addq $0x80, %rax
movq %rax, -0x27a0(%rbp)
movq -0x27a0(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x27b0(%rbp)
callq 0x1bea0
movq -0x27a8(%rbp), %rcx
movq -0x27b0(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x27a0(%rbp)
jne 0x2a2df
jmp 0x2a312
leaq -0x1278(%rbp), %rdi
callq 0x1bea0
leaq -0x12f8(%rbp), %rdi
callq 0x1bea0
leaq -0x1298(%rbp), %rdi
callq 0x1bea0
leaq -0x12b8(%rbp), %rdi
callq 0x1bea0
leaq -0x12d8(%rbp), %rdi
callq 0x1bea0
jmp 0x2a4df
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2a4c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2a469
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2a45d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2a451
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2a445
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2a439
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2a42d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2a421
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2a415
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2a409
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x1760(%rbp), %rdi
callq 0x1bea0
leaq -0x16e0(%rbp), %rdi
callq 0x1bea0
leaq -0x1700(%rbp), %rdi
callq 0x1bea0
leaq -0x1740(%rbp), %rdi
callq 0x1bea0
leaq -0x1720(%rbp), %rdi
callq 0x1bea0
leaq -0x1640(%rbp), %rdi
callq 0x1bea0
leaq -0x16c0(%rbp), %rdi
callq 0x1bea0
leaq -0x1660(%rbp), %rdi
callq 0x1bea0
leaq -0x1680(%rbp), %rdi
callq 0x1bea0
leaq -0x16a0(%rbp), %rdi
callq 0x1bea0
jmp 0x2a4c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2a4b7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x18f8(%rbp), %rdi
callq 0x1b6d0
jmp 0x2a4b7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x1a90(%rbp), %rdi
callq 0x1b6d0
leaq -0x1620(%rbp), %rdi
callq 0x1d320
leaq -0x1258(%rbp), %rdi
callq 0x1d920
jmp 0x2a4df
leaq -0xb20(%rbp), %rdi
callq 0x1bea0
jmp 0x2a4f0
leaq -0xb20(%rbp), %rdi
callq 0x1bea0
jmp 0x2b368
jmp 0x2a4f2
movl -0xb00(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xb00(%rbp)
jmp 0x29002
jmp 0x2a508
movl -0xaf8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xaf8(%rbp)
jmp 0x28fba
leaq -0x1ab1(%rbp), %rdi
movq %rdi, -0x27b8(%rbp)
callq 0x1da80
movq -0x27b8(%rbp), %rdx
leaq 0x1d0d4(%rip), %rsi     # 0x47611
leaq -0x1ab0(%rbp), %rdi
callq 0x1d8a0
jmp 0x2a54b
leaq -0x1ab1(%rbp), %rdi
callq 0x1ca40
movl -0x24(%rbp), %esi
decl %esi
leaq -0x1b38(%rbp), %rdi
callq 0x1ced0
jmp 0x2a56a
leaq 0x1cc22(%rip), %rsi     # 0x47193
leaq -0x1b18(%rbp), %rdi
leaq -0x1b38(%rbp), %rdx
callq 0x1d820
jmp 0x2a586
leaq 0x1cffc(%rip), %rdx     # 0x47589
leaq -0x1af8(%rbp), %rdi
leaq -0x1b18(%rbp), %rsi
callq 0x1b430
jmp 0x2a5a2
leaq -0x1ad8(%rbp), %rdi
leaq -0x1af8(%rbp), %rsi
leaq -0x1ab0(%rbp), %rdx
callq 0x1d3b0
jmp 0x2a5be
movq -0x2570(%rbp), %rdi
leaq -0x1ad8(%rbp), %rsi
callq 0x1b5d0
jmp 0x2a5d3
leaq -0x1ad8(%rbp), %rdi
callq 0x1bea0
leaq -0x1af8(%rbp), %rdi
callq 0x1bea0
leaq -0x1b18(%rbp), %rdi
callq 0x1bea0
leaq -0x1b38(%rbp), %rdi
callq 0x1bea0
leaq -0x1cf1(%rbp), %rdi
movq %rdi, -0x27c0(%rbp)
callq 0x1da80
movq -0x27c0(%rbp), %rdx
leaq 0x1cfff(%rip), %rsi     # 0x47623
leaq -0x1cf0(%rbp), %rdi
callq 0x1d8a0
jmp 0x2a632
movb $0x1, -0x1d6b(%rbp)
leaq -0x1d60(%rbp), %rax
movq %rax, -0x27d0(%rbp)
movq %rax, -0x1d68(%rbp)
leaq -0x1d69(%rbp), %rdi
movq %rdi, -0x27c8(%rbp)
callq 0x1da80
movq -0x27d0(%rbp), %rdi
movq -0x27c8(%rbp), %rdx
leaq 0x1d05c(%rip), %rsi     # 0x476d2
callq 0x1d8a0
jmp 0x2a67d
leaq -0x1d40(%rbp), %rax
movq %rax, -0x27e0(%rbp)
movq %rax, -0x1d68(%rbp)
leaq -0x1d6a(%rbp), %rdi
movq %rdi, -0x27d8(%rbp)
callq 0x1da80
movq -0x27e0(%rbp), %rdi
movq -0x27d8(%rbp), %rdx
leaq 0x1cdde(%rip), %rsi     # 0x47498
callq 0x1d8a0
jmp 0x2a6c1
movb $0x0, -0x1d6b(%rbp)
leaq -0x1d60(%rbp), %rax
movq %rax, -0x1d20(%rbp)
movq $0x2, -0x1d18(%rbp)
leaq -0x1d6c(%rbp), %rdi
movq %rdi, -0x27e8(%rbp)
callq 0x1b490
movq -0x27e8(%rbp), %rcx
movq -0x1d20(%rbp), %rsi
movq -0x1d18(%rbp), %rdx
leaq -0x1d10(%rbp), %rdi
callq 0x1b4a0
jmp 0x2a717
leaq -0x1d90(%rbp), %rdi
leaq -0x1ab0(%rbp), %rsi
callq 0x1ba40
jmp 0x2a72c
movl -0x24(%rbp), %r8d
leaq -0x1cd0(%rbp), %rdi
leaq -0x1cf0(%rbp), %rsi
leaq -0x1d10(%rbp), %rdx
leaq -0x1d90(%rbp), %rcx
callq 0x1b970
jmp 0x2a753
leaq -0x1d90(%rbp), %rdi
callq 0x1bea0
leaq -0x1d10(%rbp), %rdi
callq 0x1c100
leaq -0x1d6c(%rbp), %rdi
callq 0x1b420
leaq -0x1d60(%rbp), %rax
movq %rax, -0x27f8(%rbp)
addq $0x40, %rax
movq %rax, -0x27f0(%rbp)
movq -0x27f0(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x2800(%rbp)
callq 0x1bea0
movq -0x27f8(%rbp), %rcx
movq -0x2800(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x27f0(%rbp)
jne 0x2a790
leaq -0x1d6a(%rbp), %rdi
callq 0x1ca40
leaq -0x1d69(%rbp), %rdi
callq 0x1ca40
leaq -0x1cf0(%rbp), %rdi
callq 0x1bea0
leaq -0x1cf1(%rbp), %rdi
callq 0x1ca40
leaq -0x1f49(%rbp), %rdi
movq %rdi, -0x2808(%rbp)
callq 0x1da80
movq -0x2808(%rbp), %rdx
leaq 0x1ce1b(%rip), %rsi     # 0x4762d
leaq -0x1f48(%rbp), %rdi
callq 0x1d8a0
jmp 0x2a820
movb $0x1, -0x2021(%rbp)
leaq -0x1fb8(%rbp), %rdi
movq %rdi, -0x1fc0(%rbp)
leaq -0x1ab0(%rbp), %rsi
callq 0x1ba40
jmp 0x2a843
leaq -0x1f98(%rbp), %rax
movq %rax, -0x2810(%rbp)
movq %rax, -0x1fc0(%rbp)
leaq 0x1c934(%rip), %rdx     # 0x47193
leaq -0x2000(%rbp), %rdi
leaq -0xa48(%rbp), %rsi
callq 0x1ce60
jmp 0x2a874
movl -0x24(%rbp), %esi
decl %esi
leaq -0x2020(%rbp), %rdi
callq 0x1ced0
jmp 0x2a887
leaq -0x1fe0(%rbp), %rdi
leaq -0x2000(%rbp), %rsi
leaq -0x2020(%rbp), %rdx
callq 0x1c460
jmp 0x2a8a3
movq -0x2810(%rbp), %rdi
leaq 0x1c950(%rip), %rdx     # 0x47201
leaq -0x1fe0(%rbp), %rsi
callq 0x1b430
jmp 0x2a8bf
movb $0x0, -0x2021(%rbp)
leaq -0x1fb8(%rbp), %rax
movq %rax, -0x1f78(%rbp)
movq $0x2, -0x1f70(%rbp)
leaq -0x2022(%rbp), %rdi
movq %rdi, -0x2818(%rbp)
callq 0x1b490
movq -0x2818(%rbp), %rcx
movq -0x1f78(%rbp), %rsi
movq -0x1f70(%rbp), %rdx
leaq -0x1f68(%rbp), %rdi
callq 0x1b4a0
jmp 0x2a915
leaq -0x2049(%rbp), %rdi
movq %rdi, -0x2820(%rbp)
callq 0x1da80
movq -0x2820(%rbp), %rdx
leaq 0x1cb6b(%rip), %rsi     # 0x474a1
leaq -0x2048(%rbp), %rdi
callq 0x1d8a0
jmp 0x2a944
movl -0x24(%rbp), %r8d
leaq -0x1f28(%rbp), %rdi
leaq -0x1f48(%rbp), %rsi
leaq -0x1f68(%rbp), %rdx
leaq -0x2048(%rbp), %rcx
callq 0x1b970
jmp 0x2a96b
leaq -0x2048(%rbp), %rdi
callq 0x1bea0
leaq -0x2049(%rbp), %rdi
callq 0x1ca40
leaq -0x1f68(%rbp), %rdi
callq 0x1c100
leaq -0x2022(%rbp), %rdi
callq 0x1b420
leaq -0x1fb8(%rbp), %rax
movq %rax, -0x2830(%rbp)
addq $0x40, %rax
movq %rax, -0x2828(%rbp)
movq -0x2828(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x2838(%rbp)
callq 0x1bea0
movq -0x2830(%rbp), %rcx
movq -0x2838(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x2828(%rbp)
jne 0x2a9b4
leaq -0x1fe0(%rbp), %rdi
callq 0x1bea0
leaq -0x2020(%rbp), %rdi
callq 0x1bea0
leaq -0x2000(%rbp), %rdi
callq 0x1bea0
leaq -0x1f48(%rbp), %rdi
callq 0x1bea0
leaq -0x1f49(%rbp), %rdi
callq 0x1ca40
leaq -0x21e8(%rbp), %rdi
leaq -0x1cd0(%rbp), %rsi
callq 0x1cb00
jmp 0x2aa36
movq -0x2570(%rbp), %rdi
leaq -0x21e8(%rbp), %rsi
callq 0x1c4c0
jmp 0x2aa4b
leaq -0x21e8(%rbp), %rdi
callq 0x1b6d0
leaq -0x2380(%rbp), %rdi
leaq -0x1f28(%rbp), %rsi
callq 0x1cb00
jmp 0x2aa6c
movq -0x2570(%rbp), %rdi
leaq -0x2380(%rbp), %rsi
callq 0x1c4c0
jmp 0x2aa81
leaq -0x2380(%rbp), %rdi
callq 0x1b6d0
movl -0x24(%rbp), %esi
leaq -0x2400(%rbp), %rdi
callq 0x1ced0
jmp 0x2aa9e
leaq 0x1cb92(%rip), %rsi     # 0x47637
leaq -0x23e0(%rbp), %rdi
leaq -0x2400(%rbp), %rdx
callq 0x1d820
jmp 0x2aaba
leaq 0x1cab1(%rip), %rdx     # 0x47572
leaq -0x23c0(%rbp), %rdi
leaq -0x23e0(%rbp), %rsi
callq 0x1b430
jmp 0x2aad6
movq -0x2570(%rbp), %rsi
leaq -0x23a0(%rbp), %rdi
leaq -0x23c0(%rbp), %rdx
callq 0x1bc40
jmp 0x2aaf2
movq -0x2570(%rbp), %rdi
addq $0x20, %rdi
leaq -0x23a0(%rbp), %rsi
movq %rsi, -0x2840(%rbp)
callq 0x1cd30
movq -0x2840(%rbp), %rdi
callq 0x1bea0
leaq -0x23c0(%rbp), %rdi
callq 0x1bea0
leaq -0x23e0(%rbp), %rdi
callq 0x1bea0
leaq -0x2400(%rbp), %rdi
callq 0x1bea0
movq -0x2570(%rbp), %rax
movl 0x190(%rax), %esi
leaq -0x2560(%rbp), %rdi
callq 0x1ced0
jmp 0x2ab5b
leaq 0x1cadc(%rip), %rsi     # 0x4763e
leaq -0x2540(%rbp), %rdi
leaq -0x2560(%rbp), %rdx
callq 0x1d820
jmp 0x2ab77
leaq 0x1c628(%rip), %rdx     # 0x471a6
leaq -0x2520(%rbp), %rdi
leaq -0x2540(%rbp), %rsi
callq 0x1b430
jmp 0x2ab93
movq -0x2570(%rbp), %rdx
leaq -0x2500(%rbp), %rdi
leaq -0x2520(%rbp), %rsi
callq 0x1d3b0
jmp 0x2abaf
leaq 0x1c497(%rip), %rdx     # 0x4704d
leaq -0x24e0(%rbp), %rdi
leaq -0x2500(%rbp), %rsi
callq 0x1b430
jmp 0x2abcb
movq -0x2570(%rbp), %rdi
subq $-0x80, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x1b640
movq %rax, -0x2848(%rbp)
jmp 0x2abe8
movq -0x2848(%rbp), %rdx
leaq -0x24c0(%rbp), %rdi
leaq -0x24e0(%rbp), %rsi
callq 0x1d3b0
jmp 0x2ac04
leaq 0x1c445(%rip), %rdx     # 0x47050
leaq -0x24a0(%rbp), %rdi
leaq -0x24c0(%rbp), %rsi
callq 0x1b430
jmp 0x2ac20
movq -0x2570(%rbp), %rdi
subq $-0x80, %rdi
movl $0x1, %esi
callq 0x1b640
movq %rax, -0x2850(%rbp)
jmp 0x2ac3e
movq -0x2850(%rbp), %rdx
leaq -0x2480(%rbp), %rdi
leaq -0x24a0(%rbp), %rsi
callq 0x1d3b0
jmp 0x2ac5a
leaq 0x1c3ef(%rip), %rdx     # 0x47050
leaq -0x2460(%rbp), %rdi
leaq -0x2480(%rbp), %rsi
callq 0x1b430
jmp 0x2ac76
movq -0x2570(%rbp), %rdi
addq $0x98, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x1b640
movq %rax, -0x2858(%rbp)
jmp 0x2ac96
movq -0x2858(%rbp), %rdx
leaq -0x2440(%rbp), %rdi
leaq -0x2460(%rbp), %rsi
callq 0x1d3b0
jmp 0x2acb2
leaq 0x1ca38(%rip), %rdx     # 0x476f1
leaq -0x2420(%rbp), %rdi
leaq -0x2440(%rbp), %rsi
callq 0x1b430
jmp 0x2acce
movq -0x2570(%rbp), %rdi
addq $0x40, %rdi
leaq -0x2420(%rbp), %rsi
callq 0x1cd30
leaq -0x2420(%rbp), %rdi
callq 0x1bea0
leaq -0x2440(%rbp), %rdi
callq 0x1bea0
leaq -0x2460(%rbp), %rdi
callq 0x1bea0
leaq -0x2480(%rbp), %rdi
callq 0x1bea0
leaq -0x24a0(%rbp), %rdi
callq 0x1bea0
leaq -0x24c0(%rbp), %rdi
callq 0x1bea0
leaq -0x24e0(%rbp), %rdi
callq 0x1bea0
leaq -0x2500(%rbp), %rdi
callq 0x1bea0
leaq -0x2520(%rbp), %rdi
callq 0x1bea0
leaq -0x2540(%rbp), %rdi
callq 0x1bea0
leaq -0x2560(%rbp), %rdi
callq 0x1bea0
leaq -0x1f28(%rbp), %rdi
callq 0x1d0d0
leaq -0x1cd0(%rbp), %rdi
callq 0x1d0d0
leaq -0x1ab0(%rbp), %rdi
callq 0x1bea0
leaq -0xa48(%rbp), %rdi
callq 0x1bea0
movq -0x25c8(%rbp), %rdx
movq -0x25c0(%rbp), %rax
movq -0x25b8(%rbp), %rcx
imulq %rax, %rdx
shlq $0x5, %rdx
movq %rcx, %rax
addq %rdx, %rax
cmpq %rax, %rcx
movq %rax, -0x2860(%rbp)
je 0x2adf9
movq -0x2860(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x2868(%rbp)
callq 0x1bea0
movq -0x25b8(%rbp), %rcx
movq -0x2868(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x2860(%rbp)
jne 0x2adc8
movq -0x140(%rbp), %rax
movq %rax, %rsp
leaq -0xd0(%rbp), %rdi
callq 0x1bea0
movq %rbp, %rsp
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x1ab1(%rbp), %rdi
callq 0x1ca40
jmp 0x2b368
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2b35c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2ae9c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2ae90
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2ae84
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x1ad8(%rbp), %rdi
callq 0x1bea0
leaq -0x1af8(%rbp), %rdi
callq 0x1bea0
leaq -0x1b18(%rbp), %rdi
callq 0x1bea0
leaq -0x1b38(%rbp), %rdi
callq 0x1bea0
jmp 0x2b35c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2aff4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2af84
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2af78
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2af20
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2af14
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x1d90(%rbp), %rdi
callq 0x1bea0
leaq -0x1d10(%rbp), %rdi
callq 0x1c100
leaq -0x1d6c(%rbp), %rdi
callq 0x1b420
leaq -0x1d60(%rbp), %rax
movq %rax, -0x2878(%rbp)
addq $0x40, %rax
movq %rax, -0x2870(%rbp)
movq -0x2870(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x2880(%rbp)
callq 0x1bea0
movq -0x2878(%rbp), %rcx
movq -0x2880(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x2870(%rbp)
jne 0x2af45
jmp 0x2af78
leaq -0x1d6a(%rbp), %rdi
callq 0x1ca40
leaq -0x1d69(%rbp), %rdi
callq 0x1ca40
testb $0x1, -0x1d6b(%rbp)
jne 0x2af9b
jmp 0x2afe8
movq -0x1d68(%rbp), %rax
leaq -0x1d60(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x2888(%rbp)
je 0x2afe6
movq -0x2888(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x2890(%rbp)
callq 0x1bea0
movq -0x2890(%rbp), %rax
leaq -0x1d60(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x2888(%rbp)
jne 0x2afb5
jmp 0x2afe8
leaq -0x1cf0(%rbp), %rdi
callq 0x1bea0
leaq -0x1cf1(%rbp), %rdi
callq 0x1ca40
jmp 0x2b35c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2b186
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2b122
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2b116
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2b10a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2b0fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2b0a6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2b08e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x2048(%rbp), %rdi
callq 0x1bea0
leaq -0x2049(%rbp), %rdi
callq 0x1ca40
leaq -0x1f68(%rbp), %rdi
callq 0x1c100
leaq -0x2022(%rbp), %rdi
callq 0x1b420
leaq -0x1fb8(%rbp), %rax
movq %rax, -0x28a0(%rbp)
addq $0x40, %rax
movq %rax, -0x2898(%rbp)
movq -0x2898(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x28a8(%rbp)
callq 0x1bea0
movq -0x28a0(%rbp), %rcx
movq -0x28a8(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x2898(%rbp)
jne 0x2b0cb
jmp 0x2b0fe
leaq -0x1fe0(%rbp), %rdi
callq 0x1bea0
leaq -0x2020(%rbp), %rdi
callq 0x1bea0
leaq -0x2000(%rbp), %rdi
callq 0x1bea0
testb $0x1, -0x2021(%rbp)
jne 0x2b12d
jmp 0x2b17a
movq -0x1fc0(%rbp), %rax
leaq -0x1fb8(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x28b0(%rbp)
je 0x2b178
movq -0x28b0(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x28b8(%rbp)
callq 0x1bea0
movq -0x28b8(%rbp), %rax
leaq -0x1fb8(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x28b0(%rbp)
jne 0x2b147
jmp 0x2b17a
leaq -0x1f48(%rbp), %rdi
callq 0x1bea0
leaq -0x1f49(%rbp), %rdi
callq 0x1ca40
jmp 0x2b350
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2b344
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x21e8(%rbp), %rdi
callq 0x1b6d0
jmp 0x2b344
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x2380(%rbp), %rdi
callq 0x1b6d0
jmp 0x2b344
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2b222
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2b216
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x23c0(%rbp), %rdi
callq 0x1bea0
leaq -0x23e0(%rbp), %rdi
callq 0x1bea0
leaq -0x2400(%rbp), %rdi
callq 0x1bea0
jmp 0x2b344
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2b338
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2b32c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2b320
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2b314
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2b308
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2b2fc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2b2f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2b2e4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x2b2d8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x2440(%rbp), %rdi
callq 0x1bea0
leaq -0x2460(%rbp), %rdi
callq 0x1bea0
leaq -0x2480(%rbp), %rdi
callq 0x1bea0
leaq -0x24a0(%rbp), %rdi
callq 0x1bea0
leaq -0x24c0(%rbp), %rdi
callq 0x1bea0
leaq -0x24e0(%rbp), %rdi
callq 0x1bea0
leaq -0x2500(%rbp), %rdi
callq 0x1bea0
leaq -0x2520(%rbp), %rdi
callq 0x1bea0
leaq -0x2540(%rbp), %rdi
callq 0x1bea0
leaq -0x2560(%rbp), %rdi
callq 0x1bea0
leaq -0x1f28(%rbp), %rdi
callq 0x1d0d0
leaq -0x1cd0(%rbp), %rdi
callq 0x1d0d0
leaq -0x1ab0(%rbp), %rdi
callq 0x1bea0
leaq -0xa48(%rbp), %rdi
callq 0x1bea0
movq -0x25b8(%rbp), %rcx
movq -0x25c0(%rbp), %rax
movq -0x25c8(%rbp), %rdx
imulq %rax, %rdx
shlq $0x5, %rdx
movq %rcx, %rax
addq %rdx, %rax
cmpq %rax, %rcx
movq %rax, -0x28c0(%rbp)
je 0x2b3d4
movq -0x28c0(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x28c8(%rbp)
callq 0x1bea0
movq -0x25b8(%rbp), %rcx
movq -0x28c8(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x28c0(%rbp)
jne 0x2b3a3
jmp 0x2b3d6
leaq -0xd0(%rbp), %rdi
callq 0x1bea0
movq -0x2570(%rbp), %rdi
callq 0x1b6d0
movq -0x30(%rbp), %rdi
callq 0x1da60
nopw (%rax,%rax)