// File: /workspace/github_cpp_makefile_star2_O3/istellartech[P]OpenTsiolkovsky/src/rocket.cpp
// Function: Rocket::flight_simulation()
void Rocket::flight_simulation(){
    // rs : mean RocketNew::rocket_stages, class RocketStage
    using base_stepper_type = odeint::runge_kutta_dopri5<RocketStage::state>;
    auto Stepper = make_dense_output(1.0e-9, 1.0e-9, 1.0, base_stepper_type());

    for (int i = 0; i < rs.size(); i++){  // i is number of the rocket stages
        flag_separation_g = false;
        flag_separation_mass_reduce_g = false;
        flag_dump_g = false;
        flag_impact_g = false;
        if (i == 0){
            rs[i].posECI_init << posECI_init(rs[0].launch_pos_LLH);
            rs[i].velECI_init << velECI_init(rs[0].launch_vel_NED, rs[0].launch_pos_LLH);
            rs[i].previous_stage_separation_time = 0.0; // first stage calcuration start time[s]
        } else {
            rs[i].posECI_init << posECI_init_g;
            rs[i].velECI_init << velECI_init_g;
            rs[i].previous_stage_separation_time = rs[i-1].later_stage_separation_time;
        }
        rs[i].calc_start_time = rs[i].previous_stage_separation_time;
        std::vector<double> time_array;
        time_array = {rs[i].calc_start_time,
                      rs[i].dump_separation_time,
//                      rs[i].previous_stage_separation_time + rs[i].burn_start_time + rs[i].burn_end_time,
                      rs[i].later_stage_separation_time,
                      rs[i].calc_end_time
        };
        sort(time_array.begin(), time_array.end());  // ascending order for ODE
        std::replace_if(time_array.begin(), time_array.end(),
                        [&](double x){return x > rs[i].calc_end_time;},
                        rs[i].calc_end_time); // keep times to the upper limit(calc_end_time)
        double time_step = rs[i].calc_step_time;

        RocketStage::state State = { rs[i].mass_init,
                                     rs[i].posECI_init[0], rs[i].posECI_init[1], rs[i].posECI_init[2],
                                     rs[i].velECI_init[0], rs[i].velECI_init[1], rs[i].velECI_init[2],
        };
        string csv_filename = "./output/" + rs[i].name + "_dynamics_" + to_string(rs[i].num_stage) + ".csv";
        CsvObserver Observer(csv_filename, false);
        Observer.deep_copy(rs[i]);
        flag_duplicate = false;
        for (int j = 0; j < time_array.size() - 1; j++){  // j is number of time_array
            odeint::integrate_const(Stepper, rs[i], State,
                                    time_array[j], time_array[j+1], time_step,
                                    std::ref(Observer));
            CsvObserver Observer(csv_filename, true);
            Observer.deep_copy(rs[i]);
            if (time_array[j+1] == rs[i].later_stage_separation_time && !flag_separation_mass_reduce_g){
                State[0] = State[0] - rs[i+1].mass_init;  // reduce upper stage mass to "ODE x[0]"
                flag_separation_mass_reduce_g = true;
            }
            if (time_array[j+1] == rs[i].dump_separation_time){
                RocketStage temp_fo(rs[i], posECI_dump_init_g, velECI_dump_init_g);
                temp_fo.num_stage = rs[i].num_stage;
                fo.push_back(temp_fo);
                State[0] = State[0] - rs[i].dump_mass;  // reduce dumping mass to "ODE x[0]"
            }
            flag_duplicate = true;
        }
        cout << "                                           \r" << flush;
        cout << fixed << setprecision(6) << to_string(rs[i].num_stage) + " stage impact point [deg]:\t";
        cout << impact_point_g[0] << "\t"<< impact_point_g[1] << endl;
        impact_point_g << 0.0,0.0;
        if (!rs[i].following_stage_exist){
            break;
        }
    }

    // ==== DUMPING PRODUCTS flight simulation ====
    for (int i = 0; i < fo.size(); i++) {  // i is number of the dumping products
        flag_impact_g = false;
        RocketStage::state State = { fo[i].mass_init,
            fo[i].posECI_init[0], fo[i].posECI_init[1], fo[i].posECI_init[2],
            fo[i].velECI_init[0], fo[i].velECI_init[1], fo[i].velECI_init[2],
        };
        string csv_filename = "./output/" + fo[i].name + "_dynamics_" + to_string(fo[i].num_stage) + "_dump" +  ".csv";
        CsvObserver Observer(csv_filename, false);
        Observer.deep_copy(fo[i]);
        odeint::integrate_const(Stepper, fo[i], State,
                                fo[i].calc_start_time, fo[i].calc_end_time, fo[i].calc_step_time,
                                std::ref(Observer));
        cout << "                                           \r" << flush;
        cout << fixed << setprecision(6) << to_string(fo[i].num_stage) + " stage dumping product impact point [deg]:\t";
        cout << impact_point_g[0] << "\t"<< impact_point_g[1] << endl;
        impact_point_g << 0.0,0.0;
    }

    cout << fixed << setprecision(0);
    cout << "max altitude[m]:\t" << max_alt_g << endl;
    cout << "max downrange[m]:\t" << max_downrange_g << endl;
    cout << "Simulation Success!" << endl;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x6d88, %rsp           # imm = 0x6D88
movq %rdi, %rbx
leaq 0x48da(%rsp), %rdi
movl $0x1d9, %edx            # imm = 0x1D9
xorl %esi, %esi
callq 0x5230
movq (%rbx), %r14
movq %rbx, 0x778(%rsp)
cmpq %r14, 0x8(%rbx)
je 0xf6b9
movl $0x10d0, %ecx           # imm = 0x10D0
leaq 0x1a50(%rsp), %rdi
leaq (%rdi,%rcx), %rax
movq %rax, 0x8c0(%rsp)
movq 0x2373d(%rip), %rax     # 0x31f90
movq (%rax), %rdx
movq %rdx, 0x7f0(%rsp)
movq 0x18(%rax), %rax
movq %rax, 0x7e8(%rsp)
movl $0xec8, %eax            # imm = 0xEC8
leaq (%rdi,%rax), %rdx
movq %rdx, 0x8b8(%rsp)
movl $0xfb8, %edx            # imm = 0xFB8
leaq (%rdi,%rdx), %rsi
movq %rsi, 0x8b0(%rsp)
leaq 0x970(%rsp), %r15
addq %r15, %rcx
movq %rcx, 0x888(%rsp)
addq %r15, %rax
movq %rax, 0x880(%rsp)
addq %r15, %rdx
movq %rdx, 0x878(%rsp)
movq 0x778(%rsp), %rax
addq $0x18, %rax
movq %rax, 0x8a8(%rsp)
movl $0x3d0, %r12d           # imm = 0x3D0
movl $0x3e8, %esi            # imm = 0x3E8
leaq 0x23b85(%rip), %rdi     # 0x32460
xorl %r13d, %r13d
xorl %eax, %eax
movb %al, 0x23bb2(%rip)      # 0x32498
movb %al, 0x23bad(%rip)      # 0x32499
movb %al, 0x23ba8(%rip)      # 0x3249a
movb %al, 0x23ba3(%rip)      # 0x3249b
testq %r13, %r13
movq %rsi, 0x8a0(%rsp)
je 0xe957
imulq $0xec0, %r13, %rax      # imm = 0xEC0
addq %r14, %rax
leaq (%r14,%r12), %rcx
xorl %edx, %edx
movsd (%rdx,%rdi), %xmm0
movsd %xmm0, (%rcx,%rdx)
addq $0x8, %rdx
cmpq $0x18, %rdx
jne 0xe915
leaq (%r14,%rsi), %rcx
xorl %edx, %edx
leaq 0x23b4a(%rip), %rdi     # 0x32480
movsd (%rdx,%rdi), %xmm0
movsd %xmm0, (%rcx,%rdx)
addq $0x8, %rdx
cmpq $0x18, %rdx
jne 0xe936
movsd -0x770(%rax), %xmm0
jmp 0xea3e
movups 0x340(%r14), %xmm0
movaps %xmm0, 0x950(%rsp)
movsd 0x350(%r14), %xmm0
movsd %xmm0, 0x960(%rsp)
movq %r15, %rdi
leaq 0x950(%rsp), %rsi
callq 0x23e61
xorl %eax, %eax
movsd 0x970(%rsp,%rax,8), %xmm0
movsd %xmm0, 0x3d0(%r14,%rax,8)
incq %rax
cmpq $0x3, %rax
jne 0xe98b
movq 0x778(%rsp), %rax
movq (%rax), %r14
movups 0x370(%r14), %xmm0
movaps %xmm0, 0x930(%rsp)
movsd 0x380(%r14), %xmm0
movsd %xmm0, 0x940(%rsp)
movups 0x340(%r14), %xmm0
movaps %xmm0, 0x910(%rsp)
movsd 0x350(%r14), %xmm0
movsd %xmm0, 0x920(%rsp)
movq %r15, %rdi
leaq 0x930(%rsp), %rsi
leaq 0x910(%rsp), %rdx
callq 0x23fd6
xorl %eax, %eax
movsd 0x970(%rsp,%rax,8), %xmm0
movsd %xmm0, 0x3e8(%r14,%rax,8)
incq %rax
cmpq $0x3, %rax
jne 0xea10
movq 0x778(%rsp), %rax
movq (%rax), %rax
xorpd %xmm0, %xmm0
movq %rax, %r14
movsd %xmm0, 0x748(%rax)
movq %r13, 0x898(%rsp)
imulq $0xec0, %r13, %r13      # imm = 0xEC0
movsd %xmm0, 0x258(%r14,%r13)
xorpd %xmm0, %xmm0
movapd %xmm0, 0x7a0(%rsp)
movq $0x0, 0x7b0(%rsp)
movsd 0x258(%r14,%r13), %xmm0
movsd %xmm0, 0x970(%rsp)
movsd 0x650(%r14,%r13), %xmm0
movsd %xmm0, 0x978(%rsp)
movsd 0x750(%r14,%r13), %xmm0
movsd %xmm0, 0x980(%rsp)
movsd 0x260(%r14,%r13), %xmm0
movsd %xmm0, 0x988(%rsp)
leaq 0x7a0(%rsp), %rdi
movq %r15, %rsi
leaq 0x990(%rsp), %rdx
callq 0x18d46
movq 0x7a0(%rsp), %r14
movq 0x7a8(%rsp), %r15
cmpq %r15, %r14
je 0xeb79
movq %r15, %rax
subq %r14, %rax
sarq $0x3, %rax
bsrq %rax, %rdx
xorl $0x3f, %edx
addl %edx, %edx
xorq $0x7e, %rdx
movq %r14, %rdi
movq %r15, %rsi
callq 0x18e48
movq %r14, %rdi
movq %r15, %rsi
callq 0x18f41
movq 0x7a0(%rsp), %rax
movq 0x7a8(%rsp), %rcx
movq 0x778(%rsp), %rdx
movq (%rdx), %rsi
leaq (%rsi,%r13), %rdx
cmpq %rcx, %rax
leaq 0x2b30(%rsp), %r15
je 0xeb99
movsd 0x260(%rsi,%r13), %xmm0
leaq 0x1a60(%rsp), %r14
movsd (%rax), %xmm1
ucomisd %xmm0, %xmm1
jbe 0xeb6e
movsd %xmm0, (%rax)
addq $0x8, %rax
cmpq %rcx, %rax
jne 0xeb60
jmp 0xeba1
movq 0x778(%rsp), %rax
movq (%rax), %rdx
addq %r13, %rdx
leaq 0x1a60(%rsp), %r14
leaq 0x2b30(%rsp), %r15
jmp 0xeba1
leaq 0x1a60(%rsp), %r14
movsd 0x268(%rdx), %xmm0
movsd %xmm0, 0x8c8(%rsp)
movsd 0x280(%rdx), %xmm0
movsd %xmm0, 0x808(%rsp)
movups 0x3d0(%rdx), %xmm0
movups %xmm0, 0x810(%rsp)
movups 0x3e0(%rdx), %xmm0
movups %xmm0, 0x820(%rsp)
movupd 0x3f0(%rdx), %xmm0
movupd %xmm0, 0x830(%rsp)
xorpd %xmm0, %xmm0
leaq 0x840(%rsp), %rax
movupd %xmm0, 0x20(%rax)
movupd %xmm0, 0x10(%rax)
movupd %xmm0, (%rax)
movq $0x0, 0x30(%rax)
addq $0x210, %rdx            # imm = 0x210
movq %r15, %rdi
leaq 0x17ccb(%rip), %rsi     # 0x268f0
callq 0x7154
movq %r15, %rdi
leaq 0x17cc6(%rip), %rsi     # 0x268fa
callq 0x56a0
movq %r14, 0x1a50(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
movq %r12, 0x890(%rsp)
je 0xec6d
movq %rdx, 0x1a50(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x1a60(%rsp)
jmp 0xec76
movupd (%rcx), %xmm0
movupd %xmm0, (%r14)
movq 0x8(%rax), %rdx
movq %rdx, 0x1a58(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x778(%rsp), %rax
movq (%rax), %rax
movl 0x250(%rax,%r13), %r14d
movl %r14d, %r12d
negl %r12d
cmovsl %r14d, %r12d
movl $0x1, %r15d
cmpl $0xa, %r12d
jb 0xed01
movl $0x4, %r15d
movl %r12d, %eax
movl $0xd1b71759, %edx       # imm = 0xD1B71759
cmpl $0x63, %eax
jbe 0xecf8
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0xecfe
cmpl $0x2710, %eax           # imm = 0x2710
jb 0xed01
movl %eax, %ecx
imulq %rdx, %rcx
shrq $0x2d, %rcx
addl $0x4, %r15d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0xecc8
addl $-0x3, %r15d
jmp 0xed01
addl $-0x2, %r15d
jmp 0xed01
decl %r15d
shrl $0x1f, %r14d
leal (%r15,%r14), %esi
leaq 0x7d0(%rsp), %rax
movq %rax, 0x7c0(%rsp)
leaq 0x7c0(%rsp), %rdi
movl $0x2d, %edx
callq 0x5440
addq 0x7c0(%rsp), %r14
movq %r14, %rdi
movl %r15d, %esi
movl %r12d, %edx
callq 0x17bd5
movq 0x1a50(%rsp), %rcx
movl $0xf, %edi
leaq 0x1a60(%rsp), %r14
cmpq %r14, %rcx
je 0xed63
movq 0x1a60(%rsp), %rdi
movq 0x1a58(%rsp), %r8
movq 0x7c0(%rsp), %rsi
movq 0x7c8(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rdi, %rax
movabsq $0x3ff0000000000000, %rbx # imm = 0x3FF0000000000000
leaq 0x970(%rsp), %r12
jbe 0xedb5
movl $0xf, %edi
leaq 0x7d0(%rsp), %r9
cmpq %r9, %rsi
je 0xedb0
movq 0x7d0(%rsp), %rdi
cmpq %rdi, %rax
jbe 0xedc4
leaq 0x1a50(%rsp), %rdi
callq 0x5140
jmp 0xedd5
leaq 0x7c0(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x5410
leaq 0x980(%rsp), %rsi
movq %rsi, 0x970(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0xee06
movq %rdx, 0x970(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x980(%rsp)
jmp 0xee0e
movupd (%rcx), %xmm0
movupd %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x978(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
movq %r12, %rdi
leaq 0x164d4(%rip), %rsi     # 0x2530c
callq 0x56a0
leaq 0x790(%rsp), %rsi
movq %rsi, 0x780(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xee71
movq %rdx, 0x780(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x790(%rsp)
jmp 0xee79
movupd (%rcx), %xmm0
movupd %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x788(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x970(%rsp), %rdi
leaq 0x980(%rsp), %rax
cmpq %rax, %rdi
je 0xeeb9
movq 0x980(%rsp), %rsi
incq %rsi
callq 0x53b0
movq 0x7c0(%rsp), %rdi
leaq 0x7d0(%rsp), %rax
cmpq %rax, %rdi
je 0xeede
movq 0x7d0(%rsp), %rsi
incq %rsi
callq 0x53b0
movq 0x1a50(%rsp), %rdi
cmpq %r14, %rdi
je 0xeefb
movq 0x1a60(%rsp), %rsi
incq %rsi
callq 0x53b0
movq 0x2b30(%rsp), %rdi
leaq 0x2b40(%rsp), %rax
cmpq %rax, %rdi
je 0xef20
movq 0x2b40(%rsp), %rsi
incq %rsi
callq 0x53b0
movq %r12, %rdi
leaq 0x780(%rsp), %rsi
xorl %edx, %edx
callq 0x15d32
movq 0x778(%rsp), %rax
movq (%rax), %rsi
addq %r13, %rsi
movq %r12, %rdi
callq 0x155dc
movb $0x0, 0x235a9(%rip)     # 0x324f8
movq 0x7a8(%rsp), %rax
subq 0x7a0(%rsp), %rax
cmpq $0x8, %rax
je 0xf2dd
xorl %r14d, %r14d
movw $0x100, %bp             # imm = 0x100
movw %bp, 0x4161(%rsp)
movl $0x385, %edx            # imm = 0x385
leaq 0x4163(%rsp), %r15
movq %r15, %rdi
leaq 0x4c7b(%rsp), %rsi
callq 0x52f0
movw $0x0, 0x44e8(%rsp)
movl 0x7e2(%rsp), %eax
movl %eax, 0x387(%r15)
movzwl 0x7e6(%rsp), %eax
movw %ax, 0x38b(%r15)
movaps 0x16fbc(%rip), %xmm0    # 0x25f80
movups %xmm0, 0x44f0(%rsp)
movapd 0x16fbc(%rip), %xmm0    # 0x25f90
movupd %xmm0, 0x4500(%rsp)
movq %rbx, 0x4510(%rsp)
movl $0x0, 0x4518(%rsp)
movl $0x1c4, %edx            # imm = 0x1C4
leaq 0x451c(%rsp), %rdi
leaq 0x4ab4(%rsp), %rsi
callq 0x52f0
movb $0x1, 0x46e0(%rsp)
movl 0x801(%rsp), %eax
movl 0x804(%rsp), %ecx
movl %eax, 0x57e(%r15)
movl %ecx, 0x581(%r15)
movw %bp, 0x46e8(%rsp)
movl $0x1df, %edx            # imm = 0x1DF
leaq 0x46ea(%rsp), %rdi
leaq 0x48d4(%rsp), %rsi
callq 0x52f0
movl 0x7fa(%rsp), %eax
movl 0x7fd(%rsp), %ecx
movl %eax, 0x766(%r15)
movl %ecx, 0x769(%r15)
movq 0x778(%rsp), %rax
movq (%rax), %rsi
addq %r13, %rsi
leaq 0x5ec0(%rsp), %r15
movq %r15, %rdi
callq 0x15f14
movq 0x7a0(%rsp), %rax
movsd (%rax,%r14,8), %xmm0
movsd 0x8(%rax,%r14,8), %xmm1
movl $0xee, %ecx
movq %rsp, %rdi
leaq 0x4160(%rsp), %rsi
rep  movsq (%rsi), %es:(%rdi)
movq %r15, %rdi
leaq 0x808(%rsp), %rsi
movsd 0x8c8(%rsp), %xmm2
movq %r12, %rdx
callq 0x15e3d
movq %r15, %rdi
callq 0x7282
leaq 0x1a50(%rsp), %r12
movq %r12, %rdi
leaq 0x780(%rsp), %rsi
movl $0x1, %edx
callq 0x15d32
movq 0x778(%rsp), %r15
movq (%r15), %rsi
addq %r13, %rsi
movq %r12, %rdi
callq 0x155dc
movq 0x7a0(%rsp), %rax
movsd 0x8(%rax,%r14,8), %xmm0
movq (%r15), %rcx
leaq (%rcx,%r13), %rsi
ucomisd 0x750(%rcx,%r13), %xmm0
jne 0xf168
jp 0xf168
cmpb $0x0, 0x23365(%rip)     # 0x32499
leaq 0x970(%rsp), %r12
jne 0xf170
movsd 0x808(%rsp), %xmm0
subsd 0x1140(%rsi), %xmm0
movsd %xmm0, 0x808(%rsp)
movb $0x1, 0x2333a(%rip)     # 0x32499
movsd 0x8(%rax,%r14,8), %xmm0
jmp 0xf170
leaq 0x970(%rsp), %r12
ucomisd 0x650(%rsi), %xmm0
jne 0xf237
jp 0xf237
movaps 0x23335(%rip), %xmm0    # 0x324c0
movaps %xmm0, 0x8f0(%rsp)
movsd 0x23335(%rip), %xmm0    # 0x324d0
movsd %xmm0, 0x900(%rsp)
movaps 0x23335(%rip), %xmm0    # 0x324e0
movaps %xmm0, 0x8d0(%rsp)
movsd 0x23335(%rip), %xmm0    # 0x324f0
movsd %xmm0, 0x8e0(%rsp)
leaq 0x2b30(%rsp), %r15
movq %r15, %rdi
leaq 0x8f0(%rsp), %rdx
leaq 0x8d0(%rsp), %rcx
callq 0xe0dc
movq 0x778(%rsp), %rbp
movq (%rbp), %rax
movl 0x250(%rax,%r13), %eax
movl %eax, 0x2d80(%rsp)
movq 0x8a8(%rsp), %rdi
movq %r15, %rsi
callq 0x1547e
movsd 0x808(%rsp), %xmm0
movq (%rbp), %rax
subsd 0x658(%rax,%r13), %xmm0
movsd %xmm0, 0x808(%rsp)
movq %r15, %rdi
callq 0x7282
movb $0x1, 0x232ba(%rip)     # 0x324f8
leaq 0x223eb(%rip), %rax     # 0x31630
movq %rax, 0x1a50(%rsp)
movq 0x2b10(%rsp), %rdi
cmpq 0x8c0(%rsp), %rdi
je 0xf26f
movq 0x2b20(%rsp), %rsi
incq %rsi
callq 0x53b0
incq %r14
movq 0x7f0(%rsp), %rax
movq %rax, 0x2910(%rsp)
movq -0x18(%rax), %rax
movq 0x7e8(%rsp), %rcx
movq %rcx, 0x2910(%rsp,%rax)
movq 0x8b8(%rsp), %rdi
callq 0x5310
movq 0x8b0(%rsp), %rdi
callq 0x5150
leaq 0x1a50(%rsp), %rdi
callq 0x7282
movq 0x7a8(%rsp), %rax
subq 0x7a0(%rsp), %rax
sarq $0x3, %rax
decq %rax
cmpq %r14, %rax
ja 0xef6c
movl $0x2c, %edx
movq 0x22cc7(%rip), %rdi     # 0x31fb0
leaq 0x17615(%rip), %rsi     # 0x26905
callq 0x5430
movq 0x22cb4(%rip), %rdi     # 0x31fb0
callq 0x5270
movq 0x22ca8(%rip), %rsi     # 0x31fb0
movq (%rsi), %rax
movq -0x18(%rax), %rcx
movl 0x18(%rsi,%rcx), %edx
movl $0xfffffefb, %edi       # imm = 0xFFFFFEFB
andl %edi, %edx
orl $0x4, %edx
movl %edx, 0x18(%rsi,%rcx)
movq -0x18(%rax), %rax
movq $0x6, 0x8(%rsi,%rax)
movq 0x778(%rsp), %rax
movq (%rax), %rax
movl 0x250(%rax,%r13), %r14d
movl %r14d, %r12d
negl %r12d
cmovsl %r14d, %r12d
movl $0x1, %r15d
cmpl $0xa, %r12d
jb 0xf39e
movl $0x4, %r15d
movl %r12d, %eax
movl $0xd1b71759, %edx       # imm = 0xD1B71759
cmpl $0x63, %eax
jbe 0xf395
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0xf39b
cmpl $0x2710, %eax           # imm = 0x2710
jb 0xf39e
movl %eax, %ecx
imulq %rdx, %rcx
shrq $0x2d, %rcx
addl $0x4, %r15d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0xf365
addl $-0x3, %r15d
jmp 0xf39e
addl $-0x2, %r15d
jmp 0xf39e
decl %r15d
shrl $0x1f, %r14d
leal (%r15,%r14), %esi
leaq 0x2b40(%rsp), %rax
movq %rax, 0x2b30(%rsp)
leaq 0x2b30(%rsp), %rbx
movq %rbx, %rdi
movl $0x2d, %edx
callq 0x5440
addq 0x2b30(%rsp), %r14
movq %r14, %rdi
movl %r15d, %esi
movl %r12d, %edx
callq 0x17bd5
movq %rbx, %rdi
leaq 0x17547(%rip), %rsi     # 0x26932
callq 0x56a0
leaq 0x1a60(%rsp), %r14
movq %r14, 0x1a50(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xf424
movq %rdx, 0x1a50(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x1a60(%rsp)
jmp 0xf42d
movupd (%rcx), %xmm0
movupd %xmm0, (%r14)
leaq 0x970(%rsp), %r15
movq 0x8(%rax), %rdx
movq %rdx, 0x1a58(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x1a50(%rsp), %rsi
movq 0x1a58(%rsp), %rdx
movq 0x22b49(%rip), %rdi     # 0x31fb0
callq 0x5430
movq 0x1a50(%rsp), %rdi
cmpq %r14, %rdi
je 0xf489
movq 0x1a60(%rsp), %rsi
incq %rsi
callq 0x53b0
movq 0x2b30(%rsp), %rdi
leaq 0x2b40(%rsp), %rax
cmpq %rax, %rdi
je 0xf4ae
movq 0x2b40(%rsp), %rsi
incq %rsi
callq 0x53b0
movsd 0x22ffa(%rip), %xmm0    # 0x324b0
movq 0x22af3(%rip), %rdi     # 0x31fb0
callq 0x5570
movq %rax, %r14
movl $0x1, %edx
movq %rax, %rdi
leaq 0x17478(%rip), %rsi     # 0x2694c
callq 0x5430
movsd 0x22fd7(%rip), %xmm0    # 0x324b8
movq %r14, %rdi
callq 0x5570
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x5370
movsbl %al, %esi
movq %r14, %rdi
callq 0x5050
movq %rax, %rdi
callq 0x5270
leaq 0x22f96(%rip), %rax     # 0x324b0
movq %rax, 0x1a50(%rsp)
xorl %eax, %eax
movq %rax, 0x1a58(%rsp)
movl $0x1, %ecx
movq %rcx, 0x1a60(%rsp)
movq %rcx, 0x1a68(%rsp)
movq %rax, 0x22f68(%rip)     # 0x324b0
movq %rax, 0x2b30(%rsp)
leaq 0x1a50(%rsp), %rdi
leaq 0x2b30(%rsp), %rsi
callq 0x16604
movq 0x1a68(%rsp), %rax
addq 0x1a58(%rsp), %rax
cmpq $0x2, %rax
movq 0x890(%rsp), %r12
jne 0x10182
cmpq $0x1, 0x1a60(%rsp)
jne 0x10182
movq 0x778(%rsp), %rax
movq (%rax), %rax
movb 0x740(%rax,%r13), %r14b
leaq 0x22080(%rip), %rax     # 0x31630
movq %rax, 0x970(%rsp)
movq 0x1a30(%rsp), %rdi
cmpq 0x888(%rsp), %rdi
je 0xf5da
movq 0x1a40(%rsp), %rsi
incq %rsi
callq 0x53b0
movq 0x7f0(%rsp), %rax
movq %rax, 0x1830(%rsp)
movq -0x18(%rax), %rax
movq 0x7e8(%rsp), %rcx
movq %rcx, 0x1830(%rsp,%rax)
movq 0x880(%rsp), %rdi
callq 0x5310
movq 0x878(%rsp), %rdi
callq 0x5150
movq %r15, %rdi
callq 0x7282
movq 0x780(%rsp), %rdi
leaq 0x790(%rsp), %rax
cmpq %rax, %rdi
movq 0x898(%rsp), %r13
je 0xf64d
movq 0x790(%rsp), %rsi
incq %rsi
callq 0x53b0
movq 0x7a0(%rsp), %rdi
testq %rdi, %rdi
je 0xf66a
movq 0x7b0(%rsp), %rsi
subq %rdi, %rsi
callq 0x53b0
testb %r14b, %r14b
movq 0x8a0(%rsp), %rsi
leaq 0x22de4(%rip), %rdi     # 0x32460
je 0xf6b9
incq %r13
movq 0x778(%rsp), %rax
movq (%rax), %r14
movq 0x8(%rax), %rax
subq %r14, %rax
sarq $0x6, %rax
movabsq $-0x34115b1e5f75270d, %rcx # imm = 0xCBEEA4E1A08AD8F3
imulq %rcx, %rax
movl $0xec0, %ecx            # imm = 0xEC0
addq %rcx, %r12
addq %rcx, %rsi
cmpq %r13, %rax
ja 0xe8de
movq 0x778(%rsp), %rcx
movq 0x18(%rcx), %rax
cmpq %rax, 0x20(%rcx)
je 0x1006e
leaq 0x790(%rsp), %r12
movq 0x228b2(%rip), %rcx     # 0x31f90
movq (%rcx), %rdx
movq %rdx, 0x7f0(%rsp)
movq 0x18(%rcx), %rcx
movq %rcx, 0x7e8(%rsp)
xorl %r14d, %r14d
movb $0x0, 0x22d9c(%rip)     # 0x3249b
imulq $0xec0, %r14, %r13      # imm = 0xEC0
leaq (%rax,%r13), %rdx
addq $0x210, %rdx            # imm = 0x210
movsd 0x70(%rdx), %xmm0
movsd %xmm0, 0x1a50(%rsp)
movsd 0x1c0(%rdx), %xmm0
movsd %xmm0, 0x1a58(%rsp)
movsd 0x1c8(%rdx), %xmm0
movsd %xmm0, 0x1a60(%rsp)
movsd 0x1d0(%rdx), %xmm0
movsd %xmm0, 0x1a68(%rsp)
movsd 0x1d8(%rdx), %xmm0
movsd %xmm0, 0x1a70(%rsp)
movsd 0x1e0(%rdx), %xmm0
movsd %xmm0, 0x1a78(%rsp)
movsd 0x1e8(%rdx), %xmm0
movsd %xmm0, 0x1a80(%rsp)
leaq 0x1a88(%rsp), %rax
xorpd %xmm0, %xmm0
movupd %xmm0, 0x20(%rax)
movupd %xmm0, 0x10(%rax)
movupd %xmm0, (%rax)
movq $0x0, 0x30(%rax)
leaq 0x7c0(%rsp), %r15
movq %r15, %rdi
leaq 0x17137(%rip), %rsi     # 0x268f0
callq 0x7154
movq %r15, %rdi
leaq 0x17132(%rip), %rsi     # 0x268fa
callq 0x56a0
movq %r12, 0x780(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xf7f9
movq %rdx, 0x780(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x790(%rsp)
jmp 0xf803
movupd (%rcx), %xmm0
movupd %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, 0x788(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x778(%rsp), %rax
movq 0x18(%rax), %rax
movl 0x250(%rax,%r13), %r12d
movl %r12d, %r15d
negl %r15d
cmovsl %r12d, %r15d
movl $0x1, %ebp
cmpl $0xa, %r15d
jb 0xf889
movl $0x4, %ebp
movl %r15d, %eax
movl $0xd1b71759, %edx       # imm = 0xD1B71759
cmpl $0x63, %eax
jbe 0xf882
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0xf887
cmpl $0x2710, %eax           # imm = 0x2710
jb 0xf889
movl %eax, %ecx
imulq %rdx, %rcx
shrq $0x2d, %rcx
addl $0x4, %ebp
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0xf854
addl $-0x3, %ebp
jmp 0xf889
addl $-0x2, %ebp
jmp 0xf889
decl %ebp
shrl $0x1f, %r12d
leal (%r12,%rbp), %esi
leaq 0x7b0(%rsp), %rax
movq %rax, 0x7a0(%rsp)
leaq 0x7a0(%rsp), %rdi
movl $0x2d, %edx
callq 0x5440
addq 0x7a0(%rsp), %r12
movq %r12, %rdi
movl %ebp, %esi
movl %r15d, %edx
callq 0x17bd5
movq 0x780(%rsp), %rcx
movl $0xf, %edi
leaq 0x790(%rsp), %r12
cmpq %r12, %rcx
je 0xf8ea
movq 0x790(%rsp), %rdi
movq 0x788(%rsp), %r8
movq 0x7a0(%rsp), %rsi
movq 0x7a8(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rdi, %rax
movabsq $0x3ff0000000000000, %r15 # imm = 0x3FF0000000000000
leaq 0x2b40(%rsp), %rbp
jbe 0xf93c
movl $0xf, %edi
leaq 0x7b0(%rsp), %r9
cmpq %r9, %rsi
je 0xf937
movq 0x7b0(%rsp), %rdi
cmpq %rdi, %rax
jbe 0xf94b
leaq 0x780(%rsp), %rdi
callq 0x5140
jmp 0xf95c
leaq 0x7a0(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x5410
leaq 0x818(%rsp), %rsi
movq %rsi, 0x808(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0xf98d
movq %rdx, 0x808(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x818(%rsp)
jmp 0xf995
movupd (%rcx), %xmm0
movupd %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x810(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x808(%rsp), %rdi
leaq 0x16f8a(%rip), %rsi     # 0x2694e
callq 0x56a0
leaq 0x980(%rsp), %rsi
movq %rsi, 0x970(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xf9fd
movq %rdx, 0x970(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x980(%rsp)
jmp 0xfa05
movupd (%rcx), %xmm0
movupd %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x978(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x970(%rsp), %rdi
leaq 0x158dd(%rip), %rsi     # 0x2530c
callq 0x56a0
movq %rbp, 0x2b30(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xfa60
movq %rdx, 0x2b30(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x2b40(%rsp)
jmp 0xfa69
movupd (%rcx), %xmm0
movupd %xmm0, (%rbp)
movq 0x8(%rax), %rdx
movq %rdx, 0x2b38(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x970(%rsp), %rdi
leaq 0x980(%rsp), %rax
cmpq %rax, %rdi
je 0xfaa9
movq 0x980(%rsp), %rsi
incq %rsi
callq 0x53b0
movq 0x808(%rsp), %rdi
leaq 0x818(%rsp), %rax
cmpq %rax, %rdi
je 0xface
movq 0x818(%rsp), %rsi
incq %rsi
callq 0x53b0
movq 0x7a0(%rsp), %rdi
leaq 0x7b0(%rsp), %rax
cmpq %rax, %rdi
je 0xfaf3
movq 0x7b0(%rsp), %rsi
incq %rsi
callq 0x53b0
movq 0x780(%rsp), %rdi
cmpq %r12, %rdi
je 0xfb10
movq 0x790(%rsp), %rsi
incq %rsi
callq 0x53b0
movq 0x7c0(%rsp), %rdi
leaq 0x7d0(%rsp), %rax
cmpq %rax, %rdi
je 0xfb35
movq 0x7d0(%rsp), %rsi
incq %rsi
callq 0x53b0
leaq 0x970(%rsp), %r12
movq %r12, %rdi
leaq 0x2b30(%rsp), %rsi
xorl %edx, %edx
callq 0x15d32
movq 0x778(%rsp), %rax
movq 0x18(%rax), %rsi
addq %r13, %rsi
movq %r12, %rdi
callq 0x155dc
movq %rbp, %rbx
movw $0x100, %bp             # imm = 0x100
movw %bp, 0x39f1(%rsp)
movl $0x385, %edx            # imm = 0x385
leaq 0x39f3(%rsp), %r12
movq %r12, %rdi
leaq 0x4c7b(%rsp), %rsi
callq 0x52f0
movw $0x0, 0x3d78(%rsp)
movl 0x7e2(%rsp), %eax
movl %eax, 0x387(%r12)
movzwl 0x7e6(%rsp), %eax
movw %ax, 0x38b(%r12)
movaps 0x163bd(%rip), %xmm0    # 0x25f80
movups %xmm0, 0x3d80(%rsp)
movapd 0x163bd(%rip), %xmm0    # 0x25f90
movupd %xmm0, 0x3d90(%rsp)
movq %r15, 0x3da0(%rsp)
movl $0x0, 0x3da8(%rsp)
movl $0x1c4, %edx            # imm = 0x1C4
leaq 0x3dac(%rsp), %rdi
leaq 0x4ab4(%rsp), %rsi
callq 0x52f0
movb $0x1, 0x3f70(%rsp)
movl 0x801(%rsp), %eax
movl 0x804(%rsp), %ecx
movl %eax, 0x57e(%r12)
movl %ecx, 0x581(%r12)
movw %bp, 0x3f78(%rsp)
movq %rbx, %rbp
movl $0x1df, %edx            # imm = 0x1DF
leaq 0x3f7a(%rsp), %rdi
leaq 0x48d4(%rsp), %rsi
callq 0x52f0
movl 0x7fa(%rsp), %eax
movl 0x7fd(%rsp), %ecx
movl %eax, 0x766(%r12)
movl %ecx, 0x769(%r12)
movq 0x778(%rsp), %rax
movq 0x18(%rax), %rsi
addq %r13, %rsi
leaq 0x5000(%rsp), %rdi
callq 0x15f14
movq 0x778(%rsp), %rax
movq 0x18(%rax), %rax
movsd 0x258(%rax,%r13), %xmm0
movsd 0x260(%rax,%r13), %xmm1
movsd 0x268(%rax,%r13), %xmm2
movl $0xee, %ecx
movq %rsp, %rdi
leaq 0x39f0(%rsp), %rsi
rep  movsq (%rsi), %es:(%rdi)
leaq 0x5000(%rsp), %r15
movq %r15, %rdi
leaq 0x1a50(%rsp), %rsi
leaq 0x970(%rsp), %rdx
callq 0x15e3d
movq %r15, %rdi
callq 0x7282
movl $0x2c, %edx
movq 0x222b1(%rip), %rdi     # 0x31fb0
leaq 0x16bff(%rip), %rsi     # 0x26905
callq 0x5430
movq 0x2229e(%rip), %rdi     # 0x31fb0
callq 0x5270
movq 0x22292(%rip), %rsi     # 0x31fb0
movq (%rsi), %rax
movq -0x18(%rax), %rcx
movl 0x18(%rsi,%rcx), %edx
movl $0xfffffefb, %edi       # imm = 0xFFFFFEFB
andl %edi, %edx
orl $0x4, %edx
movl %edx, 0x18(%rsi,%rcx)
movq -0x18(%rax), %rax
movq $0x6, 0x8(%rsi,%rax)
movq 0x778(%rsp), %rax
movq 0x18(%rax), %rax
movl 0x250(%rax,%r13), %r12d
movl %r12d, %r15d
negl %r15d
cmovsl %r12d, %r15d
movl $0x1, %ebp
cmpl $0xa, %r15d
jb 0xfdaf
movl $0x4, %ebp
movl %r15d, %eax
movl $0xd1b71759, %edx       # imm = 0xD1B71759
cmpl $0x63, %eax
jbe 0xfda8
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0xfdad
cmpl $0x2710, %eax           # imm = 0x2710
jb 0xfdaf
movl %eax, %ecx
imulq %rdx, %rcx
shrq $0x2d, %rcx
addl $0x4, %ebp
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0xfd7a
addl $-0x3, %ebp
jmp 0xfdaf
addl $-0x2, %ebp
jmp 0xfdaf
decl %ebp
shrl $0x1f, %r12d
leal (%r12,%rbp), %esi
leaq 0x790(%rsp), %rax
movq %rax, 0x780(%rsp)
leaq 0x780(%rsp), %r13
movq %r13, %rdi
movl $0x2d, %edx
callq 0x5440
addq 0x780(%rsp), %r12
movq %r12, %rdi
movl %ebp, %esi
movl %r15d, %edx
callq 0x17bd5
movq %r13, %rdi
leaq 0x16b59(%rip), %rsi     # 0x26954
callq 0x56a0
leaq 0x818(%rsp), %r15
movq %r15, 0x808(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq 0x790(%rsp), %r12
leaq 0x2b40(%rsp), %rbp
je 0xfe44
movq %rdx, 0x808(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x818(%rsp)
jmp 0xfe4d
movupd (%rcx), %xmm0
movupd %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, 0x810(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x808(%rsp), %rsi
movq 0x810(%rsp), %rdx
movq 0x22131(%rip), %rdi     # 0x31fb0
callq 0x5430
movq 0x808(%rsp), %rdi
cmpq %r15, %rdi
je 0xfea1
movq 0x818(%rsp), %rsi
incq %rsi
callq 0x53b0
movq 0x780(%rsp), %rdi
cmpq %r12, %rdi
je 0xfebe
movq 0x790(%rsp), %rsi
incq %rsi
callq 0x53b0
movsd 0x225ea(%rip), %xmm0    # 0x324b0
movq 0x220e3(%rip), %rdi     # 0x31fb0
callq 0x5570
movq %rax, %r15
movl $0x1, %edx
movq %rax, %rdi
leaq 0x16a68(%rip), %rsi     # 0x2694c
callq 0x5430
movsd 0x225c7(%rip), %xmm0    # 0x324b8
movq %r15, %rdi
callq 0x5570
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x5370
movsbl %al, %esi
movq %r15, %rdi
callq 0x5050
movq %rax, %rdi
callq 0x5270
leaq 0x22586(%rip), %rax     # 0x324b0
movq %rax, 0x808(%rsp)
xorl %eax, %eax
movq %rax, 0x810(%rsp)
movl $0x1, %ecx
movq %rcx, 0x818(%rsp)
movq %rcx, 0x820(%rsp)
movq %rax, 0x22558(%rip)     # 0x324b0
movq %rax, 0x780(%rsp)
leaq 0x808(%rsp), %rdi
leaq 0x780(%rsp), %rsi
callq 0x16604
movq 0x820(%rsp), %rax
addq 0x810(%rsp), %rax
cmpq $0x2, %rax
leaq 0x970(%rsp), %rbx
jne 0x10182
cmpq $0x1, 0x818(%rsp)
jne 0x10182
leaq 0x21683(%rip), %rax     # 0x31630
movq %rax, 0x970(%rsp)
movq 0x1a30(%rsp), %rdi
leaq 0x1a40(%rsp), %rax
cmpq %rax, %rdi
je 0xffda
movq 0x1a40(%rsp), %rsi
incq %rsi
callq 0x53b0
movq 0x7f0(%rsp), %rax
movq %rax, 0x1830(%rsp)
movq -0x18(%rax), %rax
movq 0x7e8(%rsp), %rcx
movq %rcx, 0x1830(%rsp,%rax)
leaq 0x1838(%rsp), %rdi
callq 0x5310
leaq 0x1928(%rsp), %rdi
callq 0x5150
movq %rbx, %rdi
callq 0x7282
movq 0x2b30(%rsp), %rdi
cmpq %rbp, %rdi
je 0x1003d
movq 0x2b40(%rsp), %rsi
incq %rsi
callq 0x53b0
incq %r14
movq 0x778(%rsp), %rcx
movq 0x18(%rcx), %rax
movq 0x20(%rcx), %rcx
subq %rax, %rcx
sarq $0x6, %rcx
movabsq $-0x34115b1e5f75270d, %rdx # imm = 0xCBEEA4E1A08AD8F3
imulq %rdx, %rcx
cmpq %r14, %rcx
ja 0xf6f8
movq 0x21f3b(%rip), %rbx     # 0x31fb0
movq (%rbx), %rax
movq -0x18(%rax), %rcx
movl $0xfffffefb, %edx       # imm = 0xFFFFFEFB
andl 0x18(%rbx,%rcx), %edx
orl $0x4, %edx
movl %edx, 0x18(%rbx,%rcx)
movq -0x18(%rax), %rax
movq $0x0, 0x8(%rbx,%rax)
leaq 0x168e0(%rip), %rsi     # 0x26980
movl $0x11, %edx
movq %rbx, %rdi
callq 0x5430
movsd 0x223f3(%rip), %xmm0    # 0x324a8
movq %rbx, %rdi
callq 0x5570
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x5370
movsbl %al, %esi
movq %r14, %rdi
callq 0x5050
movq %rax, %rdi
callq 0x5270
leaq 0x168a4(%rip), %rsi     # 0x26992
movl $0x12, %edx
movq %rbx, %rdi
callq 0x5430
movsd 0x2239d(%rip), %xmm0    # 0x324a0
movq %rbx, %rdi
callq 0x5570
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x5370
movsbl %al, %esi
movq %r14, %rdi
callq 0x5050
movq %rax, %rdi
callq 0x5270
leaq 0x16869(%rip), %rsi     # 0x269a5
movl $0x13, %edx
movq %rbx, %rdi
callq 0x5430
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5370
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5050
movq %rax, %rdi
callq 0x5270
addq $0x6d88, %rsp           # imm = 0x6D88
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x1714b(%rip), %rdi     # 0x272d4
leaq 0x171cb(%rip), %rsi     # 0x2735b
leaq 0x17477(%rip), %rcx     # 0x2760e
movl $0x6a, %edx
callq 0x5250
movq %rax, %rbx
movq 0x1a68(%rsp), %rax
addq 0x1a58(%rsp), %rax
cmpq $0x2, %rax
jne 0x101c9
cmpq $0x1, 0x1a60(%rsp)
je 0x104aa
callq 0x5712
movq %rax, %rbx
movq 0x1a50(%rsp), %rdi
cmpq %r14, %rdi
je 0x101f8
movq 0x1a60(%rsp), %rsi
incq %rsi
callq 0x53b0
jmp 0x101f8
jmp 0x10495
movq %rax, %rbx
movq 0x2b30(%rsp), %rdi
leaq 0x2b40(%rsp), %rax
cmpq %rax, %rdi
je 0x104aa
movq 0x2b40(%rsp), %rsi
incq %rsi
callq 0x53b0
jmp 0x104aa
movq %rax, %rbx
leaq 0x790(%rsp), %r12
jmp 0x104bf
movq %rax, %rbx
jmp 0x10268
movq %rax, %rbx
jmp 0x102b7
movq %rax, %rbx
movq 0x970(%rsp), %rdi
leaq 0x980(%rsp), %rax
cmpq %rax, %rdi
je 0x10268
movq 0x980(%rsp), %rsi
incq %rsi
callq 0x53b0
movq 0x7c0(%rsp), %rdi
leaq 0x7d0(%rsp), %rax
cmpq %rax, %rdi
je 0x10292
movq 0x7d0(%rsp), %rsi
incq %rsi
callq 0x53b0
jmp 0x10292
movq %rax, %rbx
movq 0x1a50(%rsp), %rdi
leaq 0x1a60(%rsp), %rax
cmpq %rax, %rdi
je 0x102b7
movq 0x1a60(%rsp), %rsi
incq %rsi
callq 0x53b0
movq 0x2b30(%rsp), %rdi
leaq 0x2b40(%rsp), %rax
cmpq %rax, %rdi
je 0x104dc
movq 0x2b40(%rsp), %rsi
jmp 0x104d4
jmp 0x102e1
jmp 0x102e1
movq %rax, %rbx
jmp 0x104dc
movq %rax, %rbx
movq 0x820(%rsp), %rax
addq 0x810(%rsp), %rax
cmpq $0x2, %rax
jne 0x10311
cmpq $0x1, 0x818(%rsp)
je 0x10456
callq 0x5730
movq %rax, %rbx
jmp 0x103c4
movq %rax, %rbx
jmp 0x1039f
movq %rax, %rbx
jmp 0x1037a
movq %rax, %rbx
jmp 0x10355
movq %rax, %rbx
movq 0x970(%rsp), %rdi
leaq 0x980(%rsp), %rax
cmpq %rax, %rdi
je 0x10355
movq 0x980(%rsp), %rsi
incq %rsi
callq 0x53b0
movq 0x808(%rsp), %rdi
leaq 0x818(%rsp), %rax
cmpq %rax, %rdi
je 0x1037a
movq 0x818(%rsp), %rsi
incq %rsi
callq 0x53b0
movq 0x7a0(%rsp), %rdi
leaq 0x7b0(%rsp), %rax
cmpq %rax, %rdi
je 0x1039f
movq 0x7b0(%rsp), %rsi
incq %rsi
callq 0x53b0
movq 0x780(%rsp), %rdi
leaq 0x790(%rsp), %rax
cmpq %rax, %rdi
je 0x103c4
movq 0x790(%rsp), %rsi
incq %rsi
callq 0x53b0
movq 0x7c0(%rsp), %rdi
leaq 0x7d0(%rsp), %rax
cmpq %rax, %rdi
je 0x10523
movq 0x7d0(%rsp), %rsi
jmp 0x1051b
movq %rax, %rbx
jmp 0x10506
movq %rax, %rbx
leaq 0x5000(%rsp), %rdi
callq 0x7282
jmp 0x104f9
movq %rax, %rbx
jmp 0x10456
movq %rax, %rbx
jmp 0x10431
movq %rax, %rbx
movq 0x808(%rsp), %rdi
cmpq %r15, %rdi
je 0x10431
movq 0x818(%rsp), %rsi
incq %rsi
callq 0x53b0
movq 0x780(%rsp), %rdi
leaq 0x790(%rsp), %rax
cmpq %rax, %rdi
je 0x10456
movq 0x790(%rsp), %rsi
incq %rsi
callq 0x53b0
leaq 0x2b40(%rsp), %rbp
jmp 0x104f9
jmp 0x10495
movq %rax, %rbx
leaq 0x2b30(%rsp), %rdi
callq 0x7282
jmp 0x1047e
jmp 0x1047b
jmp 0x10495
movq %rax, %rbx
leaq 0x790(%rsp), %r12
leaq 0x1a50(%rsp), %rdi
callq 0x16596
jmp 0x104b2
movq %rax, %rbx
jmp 0x104aa
movq %rax, %rbx
leaq 0x5ec0(%rsp), %rdi
callq 0x7282
leaq 0x790(%rsp), %r12
leaq 0x970(%rsp), %rdi
callq 0x16596
movq 0x780(%rsp), %rdi
cmpq %r12, %rdi
je 0x104dc
movq 0x790(%rsp), %rsi
incq %rsi
callq 0x53b0
movq 0x7a0(%rsp), %rdi
testq %rdi, %rdi
je 0x10523
movq 0x7b0(%rsp), %rsi
subq %rdi, %rsi
jmp 0x1051e
movq %rax, %rbx
leaq 0x970(%rsp), %rdi
callq 0x16596
movq 0x2b30(%rsp), %rdi
cmpq %rbp, %rdi
je 0x10523
movq 0x2b40(%rsp), %rsi
incq %rsi
callq 0x53b0
movq %rbx, %rdi
callq 0x5650
nop