// File: /workspace/github_cpp_makefile_star2_O3/sus304[P]ForRocket/src/rocket/flight_data_recorder.cpp
// Function: forrocket::FlightDataRecorder::operator()(std::array<double, 14ul> const&, double)
void forrocket::FlightDataRecorder::operator()(const DynamicsBase::state& x, const double t) {
    if (p_rocket->position.LLH(2) >= 0.0) {
        countup_time.push_back(t);
        countup_burn_time.push_back(p_rocket->burn_clock.countup_time);
        thrust.push_back(p_rocket->engine.thrust);
        mdot_prop.push_back(p_rocket->engine.mdot_prop);
        burning.push_back(p_rocket->engine.burning);
        gimbal_angle_y_axis.push_back(p_rocket->engine.gimbal_angle_y_axis);
        gimbal_angle_z_axis.push_back(p_rocket->engine.gimbal_angle_z_axis);
        mass_prop.push_back(p_rocket->mass.propellant);
        mass.push_back(p_rocket->mass.inert + p_rocket->mass.propellant);
        length_CG.push_back(p_rocket->length_CG);
        length_CP.push_back(p_rocket->length_CP);
        inertia_tensor.push_back(p_rocket->inertia_tensor);
        CA.push_back(p_rocket->CA);
        CNa.push_back(p_rocket->CNa);
        Cld.push_back(p_rocket->Cld);
        Clp.push_back(p_rocket->Clp);
        Cmq.push_back(p_rocket->Cmq);
        position.push_back(p_rocket->position);
        velocity.push_back(p_rocket->velocity);
        dynamic_pressure.push_back(p_rocket->dynamic_pressure);
        acceleration.push_back(p_rocket->acceleration);
        force.push_back(p_rocket->force);
        attitude.push_back(p_rocket->attitude);
        quaternion_dot.push_back(p_rocket->quaternion_dot);
        angular_velocity.push_back(p_rocket->angular_velocity);
        angular_acceleration.push_back(p_rocket->angular_acceleration);
        angle_of_attack.push_back(p_rocket->angle_of_attack);
        sideslip_angle.push_back(p_rocket->sideslip_angle);
        moment.push_back(p_rocket->moment);
    }
}

// Assembly:
pushq %rbx
subq $0x10, %rsp
movsd %xmm0, 0x8(%rsp)
movq (%rdi), %rax
movsd 0x2e0(%rax), %xmm1
xorpd %xmm2, %xmm2
ucomisd %xmm2, %xmm1
jb 0x1c014
movq %rdi, %rbx
movq 0x10(%rdi), %rsi
cmpq 0x18(%rdi), %rsi
je 0x1ba1b
movsd %xmm0, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x10(%rbx)
jmp 0x1ba2c
leaq 0x8(%rbx), %rdi
leaq 0x8(%rsp), %rdx
callq 0x1ef84
movq (%rbx), %rax
leaq 0x38(%rax), %rdx
movq 0x28(%rbx), %rsi
cmpq 0x30(%rbx), %rsi
je 0x1ba4c
movsd (%rdx), %xmm0
movsd %xmm0, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x28(%rbx)
jmp 0x1ba58
leaq 0x20(%rbx), %rdi
callq 0x1ef84
movq (%rbx), %rax
leaq 0x58(%rax), %rdx
movq 0x40(%rbx), %rsi
cmpq 0x48(%rbx), %rsi
je 0x1ba78
movsd (%rdx), %xmm0
movsd %xmm0, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x40(%rbx)
jmp 0x1ba84
leaq 0x38(%rbx), %rdi
callq 0x1ef84
movq (%rbx), %rax
leaq 0x60(%rax), %rdx
movq 0x58(%rbx), %rsi
cmpq 0x60(%rbx), %rsi
je 0x1baa4
movsd (%rdx), %xmm0
movsd %xmm0, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x58(%rbx)
jmp 0x1bab0
leaq 0x50(%rbx), %rdi
callq 0x1ef84
movq (%rbx), %rax
leaq 0x68(%rbx), %rdi
movzbl 0x48(%rax), %esi
callq 0xd1a0
movq (%rbx), %rax
movq 0x98(%rbx), %rsi
leaq 0x70(%rax), %rdx
cmpq 0xa0(%rbx), %rsi
je 0x1bae9
movsd (%rdx), %xmm0
movsd %xmm0, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x98(%rbx)
jmp 0x1baf8
leaq 0x90(%rbx), %rdi
callq 0x1ef84
movq (%rbx), %rax
leaq 0x78(%rax), %rdx
movq 0xb0(%rbx), %rsi
cmpq 0xb8(%rbx), %rsi
je 0x1bb21
movsd (%rdx), %xmm0
movsd %xmm0, (%rsi)
addq $0x8, %rsi
movq %rsi, 0xb0(%rbx)
jmp 0x1bb30
leaq 0xa8(%rbx), %rdi
callq 0x1ef84
movq (%rbx), %rax
leaq 0x218(%rax), %rdx
movq 0xc8(%rbx), %rsi
cmpq 0xd0(%rbx), %rsi
je 0x1bb5c
movsd (%rdx), %xmm0
movsd %xmm0, (%rsi)
addq $0x8, %rsi
movq %rsi, 0xc8(%rbx)
jmp 0x1bb6b
leaq 0xc0(%rbx), %rdi
callq 0x1ef84
movq (%rbx), %rax
movsd 0x210(%rax), %xmm0
addsd 0x218(%rax), %xmm0
movsd %xmm0, (%rsp)
movq 0xe0(%rbx), %rsi
cmpq 0xe8(%rbx), %rsi
je 0x1bba1
movsd %xmm0, (%rsi)
addq $0x8, %rsi
movq %rsi, 0xe0(%rbx)
jmp 0x1bbb3
leaq 0xd8(%rbx), %rdi
movq %rsp, %rdx
callq 0x7cde
movq (%rbx), %rax
leaq 0x200(%rax), %rdx
movq 0xf8(%rbx), %rsi
cmpq 0x100(%rbx), %rsi
je 0x1bbdf
movsd (%rdx), %xmm0
movsd %xmm0, (%rsi)
addq $0x8, %rsi
movq %rsi, 0xf8(%rbx)
jmp 0x1bbee
leaq 0xf0(%rbx), %rdi
callq 0x1ef84
movq (%rbx), %rax
leaq 0x208(%rax), %rdx
movq 0x110(%rbx), %rsi
cmpq 0x118(%rbx), %rsi
je 0x1bc1a
movsd (%rdx), %xmm0
movsd %xmm0, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x110(%rbx)
jmp 0x1bc29
leaq 0x108(%rbx), %rdi
callq 0x1ef84
movq (%rbx), %rax
addq $0x220, %rax            # imm = 0x220
movq 0x128(%rbx), %rsi
cmpq 0x130(%rbx), %rsi
je 0x1bc57
movl $0x9, %ecx
movq %rsi, %rdi
movq %rax, %rsi
rep  movsq (%rsi), %es:(%rdi)
addq $0x48, 0x128(%rbx)
jmp 0x1bc66
leaq 0x120(%rbx), %rdi
movq %rax, %rdx
callq 0x1f064
movq (%rbx), %rsi
movq 0x140(%rbx), %rax
leaq 0x268(%rsi), %rdx
cmpq 0x148(%rbx), %rax
je 0x1bc95
movsd (%rdx), %xmm0
movsd %xmm0, (%rax)
addq $0x8, %rax
movq %rax, 0x140(%rbx)
jmp 0x1bca7
leaq 0x138(%rbx), %rdi
movq %rax, %rsi
callq 0x1ef84
movq (%rbx), %rsi
leaq 0x270(%rsi), %rdx
movq 0x158(%rbx), %rax
cmpq 0x160(%rbx), %rax
je 0x1bcd3
movsd (%rdx), %xmm0
movsd %xmm0, (%rax)
addq $0x8, %rax
movq %rax, 0x158(%rbx)
jmp 0x1bce5
leaq 0x150(%rbx), %rdi
movq %rax, %rsi
callq 0x1ef84
movq (%rbx), %rsi
leaq 0x278(%rsi), %rdx
movq 0x170(%rbx), %rax
cmpq 0x178(%rbx), %rax
je 0x1bd11
movsd (%rdx), %xmm0
movsd %xmm0, (%rax)
addq $0x8, %rax
movq %rax, 0x170(%rbx)
jmp 0x1bd23
leaq 0x168(%rbx), %rdi
movq %rax, %rsi
callq 0x1ef84
movq (%rbx), %rsi
leaq 0x280(%rsi), %rdx
movq 0x188(%rbx), %rax
cmpq 0x190(%rbx), %rax
je 0x1bd4f
movsd (%rdx), %xmm0
movsd %xmm0, (%rax)
addq $0x8, %rax
movq %rax, 0x188(%rbx)
jmp 0x1bd61
leaq 0x180(%rbx), %rdi
movq %rax, %rsi
callq 0x1ef84
movq (%rbx), %rsi
leaq 0x288(%rsi), %rdx
movq 0x1a0(%rbx), %rax
cmpq 0x1a8(%rbx), %rax
je 0x1bd8d
movsd (%rdx), %xmm0
movsd %xmm0, (%rax)
addq $0x8, %rax
movq %rax, 0x1a0(%rbx)
jmp 0x1bd9f
leaq 0x198(%rbx), %rdi
movq %rax, %rsi
callq 0x1ef84
movq (%rbx), %rsi
leaq 0x1b0(%rbx), %rdi
addq $0x2a0, %rsi            # imm = 0x2A0
callq 0x1ec64
leaq 0x1c8(%rbx), %rdi
movl $0x2e8, %esi            # imm = 0x2E8
addq (%rbx), %rsi
callq 0x1ecaa
movq (%rbx), %rax
movq 0x1e8(%rbx), %rsi
leaq 0x350(%rax), %rdx
cmpq 0x1f0(%rbx), %rsi
je 0x1bdf5
movsd (%rdx), %xmm0
movsd %xmm0, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x1e8(%rbx)
jmp 0x1be04
leaq 0x1e0(%rbx), %rdi
callq 0x1ef84
movq (%rbx), %rax
leaq 0x358(%rax), %rdx
movq 0x200(%rbx), %rsi
cmpq 0x208(%rbx), %rsi
je 0x1be4b
movq 0x10(%rdx), %rcx
movq %rcx, 0x10(%rsi)
movups (%rdx), %xmm0
movups %xmm0, (%rsi)
movupd 0x370(%rax), %xmm0
movupd %xmm0, 0x18(%rsi)
movq 0x380(%rax), %rax
movq %rax, 0x28(%rsi)
addq $0x30, 0x200(%rbx)
jmp 0x1be57
leaq 0x1f8(%rbx), %rdi
callq 0x1f5b2
leaq 0x210(%rbx), %rdi
movl $0x388, %esi            # imm = 0x388
addq (%rbx), %rsi
callq 0x1ed0a
movq (%rbx), %rax
leaq 0x3d0(%rax), %rdx
movq 0x230(%rbx), %rsi
cmpq 0x238(%rbx), %rsi
je 0x1beb7
movq 0x10(%rdx), %rcx
movq %rcx, 0x10(%rsi)
movaps (%rdx), %xmm0
movaps %xmm0, (%rsi)
movapd 0x3f0(%rax), %xmm0
movapd 0x400(%rax), %xmm1
movapd %xmm0, 0x20(%rsi)
movapd %xmm1, 0x30(%rsi)
addq $0x40, 0x230(%rbx)
jmp 0x1bec3
leaq 0x228(%rbx), %rdi
callq 0x1f918
movl $0x410, %edx            # imm = 0x410
addq (%rbx), %rdx
movq 0x248(%rbx), %rsi
cmpq 0x250(%rbx), %rsi
je 0x1bef7
movapd (%rdx), %xmm0
movapd 0x10(%rdx), %xmm1
movapd %xmm1, 0x10(%rsi)
movapd %xmm0, (%rsi)
addq $0x20, 0x248(%rbx)
jmp 0x1bf03
leaq 0x240(%rbx), %rdi
callq 0x1fa8e
movl $0x430, %edx            # imm = 0x430
addq (%rbx), %rdx
movq 0x260(%rbx), %rsi
cmpq 0x268(%rbx), %rsi
je 0x1bf35
movq 0x10(%rdx), %rax
movq %rax, 0x10(%rsi)
movupd (%rdx), %xmm0
movupd %xmm0, (%rsi)
addq $0x18, 0x260(%rbx)
jmp 0x1bf41
leaq 0x258(%rbx), %rdi
callq 0x1fbd0
movl $0x448, %edx            # imm = 0x448
addq (%rbx), %rdx
movq 0x278(%rbx), %rsi
cmpq 0x280(%rbx), %rsi
je 0x1bf73
movq 0x10(%rdx), %rax
movq %rax, 0x10(%rsi)
movupd (%rdx), %xmm0
movupd %xmm0, (%rsi)
addq $0x18, 0x278(%rbx)
jmp 0x1bf7f
leaq 0x270(%rbx), %rdi
callq 0x1fbd0
movq (%rbx), %rsi
leaq 0x460(%rsi), %rdx
movq 0x290(%rbx), %rax
cmpq 0x298(%rbx), %rax
je 0x1bfae
movsd (%rdx), %xmm0
movsd %xmm0, (%rax)
addq $0x8, %rax
movq %rax, 0x290(%rbx)
jmp 0x1bfc0
leaq 0x288(%rbx), %rdi
movq %rax, %rsi
callq 0x1ef84
movq (%rbx), %rsi
leaq 0x468(%rsi), %rdx
movq 0x2a8(%rbx), %rax
cmpq 0x2b0(%rbx), %rax
je 0x1bfec
movsd (%rdx), %xmm0
movsd %xmm0, (%rax)
addq $0x8, %rax
movq %rax, 0x2a8(%rbx)
jmp 0x1bffe
leaq 0x2a0(%rbx), %rdi
movq %rax, %rsi
callq 0x1ef84
movq (%rbx), %rsi
addq $0x2b8, %rbx            # imm = 0x2B8
addq $0x470, %rsi            # imm = 0x470
movq %rbx, %rdi
callq 0x1ed50
addq $0x10, %rsp
popq %rbx
retq