// File: /workspace/github_cpp_makefile_star2_O2/sus304[P]ForRocket/src/environment/coordinate.cpp
// Function: forrocket::Coordinate::setNED2Body(Eigen::Matrix<double, 3, 1, 0, 3, 1>)
void forrocket::Coordinate::setNED2Body(const Eigen::Vector3d euler_angle) {
    // Input: radian
    double azi = euler_angle(0);
    double elv = euler_angle(1);
    double rol = euler_angle(2);
    dcm.NED2body << cos(azi) * cos(elv)                                  ,  sin(azi) * cos(elv)                                 , -sin(elv),
                    -sin(azi) * cos(rol) + cos(azi) * sin(elv) * sin(rol),  cos(azi) * cos(rol) + sin(azi) * sin(elv) * sin(rol),  cos(elv) * sin(rol),
                    sin(azi) * sin(rol) + cos(azi) * sin(elv) * cos(rol) , -cos(azi) * sin(rol) + sin(azi) * sin(elv) * cos(rol),  cos(elv) * cos(rol);
    dcm.body2NED = dcm.NED2body.transpose();
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x90, %rsp
movq %rdi, %rbx
movsd (%rsi), %xmm1
movsd %xmm1, 0x8(%rsp)
movsd 0x8(%rsi), %xmm0
movsd %xmm0, 0x18(%rsp)
movsd 0x10(%rsi), %xmm0
movsd %xmm0, 0x20(%rsp)
leaq 0xd0(%rdi), %r15
movapd %xmm1, %xmm0
callq 0x5610
movsd %xmm0, (%rsp)
movsd 0x18(%rsp), %xmm0
callq 0x5610
mulsd (%rsp), %xmm0
leaq 0x70(%rsp), %r14
movq %r15, (%r14)
andq $0x0, 0x8(%r14)
pushq $0x1
popq %rax
movq %rax, 0x10(%r14)
movq %rax, 0x18(%r14)
movsd %xmm0, 0xd0(%rbx)
movsd 0x8(%rsp), %xmm0
callq 0x50e0
movsd %xmm0, (%rsp)
movsd 0x18(%rsp), %xmm0
callq 0x5610
mulsd (%rsp), %xmm0
leaq 0x68(%rsp), %rsi
movsd %xmm0, (%rsi)
movq %r14, %rdi
callq 0x12584
movq %rax, %r14
movsd 0x18(%rsp), %xmm0
callq 0x50e0
xorpd 0x20637(%rip), %xmm0    # 0x31930
leaq 0x60(%rsp), %rsi
movlpd %xmm0, (%rsi)
movq %r14, %rdi
callq 0x12584
movq %rax, %r14
movsd 0x8(%rsp), %xmm0
callq 0x50e0
movsd %xmm0, (%rsp)
movsd 0x20(%rsp), %xmm0
callq 0x5610
movsd %xmm0, 0x28(%rsp)
movsd 0x8(%rsp), %xmm0
callq 0x5610
movsd %xmm0, 0x10(%rsp)
movsd 0x18(%rsp), %xmm0
callq 0x50e0
mulsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
movsd 0x20(%rsp), %xmm0
callq 0x50e0
mulsd 0x10(%rsp), %xmm0
movsd 0x28(%rsp), %xmm1
mulsd (%rsp), %xmm1
subsd %xmm1, %xmm0
leaq 0x58(%rsp), %rsi
movsd %xmm0, (%rsi)
movq %r14, %rdi
callq 0x12584
movq %rax, %r14
movsd 0x8(%rsp), %xmm0
callq 0x5610
movsd %xmm0, (%rsp)
movsd 0x20(%rsp), %xmm0
callq 0x5610
movsd %xmm0, 0x28(%rsp)
movsd 0x8(%rsp), %xmm0
callq 0x50e0
movsd %xmm0, 0x10(%rsp)
movsd 0x18(%rsp), %xmm0
callq 0x50e0
mulsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
movsd 0x20(%rsp), %xmm0
callq 0x50e0
mulsd 0x10(%rsp), %xmm0
movsd 0x28(%rsp), %xmm1
mulsd (%rsp), %xmm1
addsd %xmm0, %xmm1
leaq 0x50(%rsp), %rsi
movsd %xmm1, (%rsi)
movq %r14, %rdi
callq 0x12584
movq %rax, %r14
movsd 0x18(%rsp), %xmm0
callq 0x5610
movsd %xmm0, (%rsp)
movsd 0x20(%rsp), %xmm0
callq 0x50e0
mulsd (%rsp), %xmm0
leaq 0x48(%rsp), %rsi
movsd %xmm0, (%rsi)
movq %r14, %rdi
callq 0x12584
movq %rax, %r14
movsd 0x8(%rsp), %xmm0
callq 0x50e0
movsd %xmm0, (%rsp)
movsd 0x20(%rsp), %xmm0
callq 0x50e0
movsd %xmm0, 0x28(%rsp)
movsd 0x8(%rsp), %xmm0
callq 0x5610
movsd %xmm0, 0x10(%rsp)
movsd 0x18(%rsp), %xmm0
callq 0x50e0
mulsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
movsd 0x20(%rsp), %xmm0
callq 0x5610
mulsd 0x10(%rsp), %xmm0
movsd 0x28(%rsp), %xmm1
mulsd (%rsp), %xmm1
addsd %xmm0, %xmm1
leaq 0x40(%rsp), %rsi
movsd %xmm1, (%rsi)
movq %r14, %rdi
callq 0x12584
movq %rax, %r14
movsd 0x8(%rsp), %xmm0
callq 0x5610
movsd %xmm0, (%rsp)
movsd 0x20(%rsp), %xmm0
callq 0x50e0
movsd %xmm0, 0x28(%rsp)
movsd 0x8(%rsp), %xmm0
callq 0x50e0
movsd %xmm0, 0x8(%rsp)
movsd 0x18(%rsp), %xmm0
callq 0x50e0
mulsd 0x8(%rsp), %xmm0
movsd %xmm0, 0x8(%rsp)
movsd 0x20(%rsp), %xmm0
callq 0x5610
mulsd 0x8(%rsp), %xmm0
movsd 0x28(%rsp), %xmm1
mulsd (%rsp), %xmm1
subsd %xmm1, %xmm0
leaq 0x38(%rsp), %rsi
movsd %xmm0, (%rsi)
movq %r14, %rdi
callq 0x12584
movq %rax, %r14
movsd 0x18(%rsp), %xmm0
callq 0x5610
movsd %xmm0, 0x18(%rsp)
movsd 0x20(%rsp), %xmm0
callq 0x5610
mulsd 0x18(%rsp), %xmm0
leaq 0x30(%rsp), %rsi
movsd %xmm0, (%rsi)
movq %r14, %rdi
callq 0x12584
leaq 0x70(%rsp), %r14
movq %r14, %rdi
callq 0x1262c
movq %r15, (%r14)
addq $0x160, %rbx            # imm = 0x160
leaq 0x70(%rsp), %rsi
movq %rbx, %rdi
callq 0x128ab
addq $0x90, %rsp
popq %rbx
popq %r14
popq %r15
retq
jmp 0x115a7
jmp 0x115a7
jmp 0x115a7
jmp 0x115a7
jmp 0x115a7
jmp 0x115a7
jmp 0x115a7
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0x1262c
movq %rbx, %rdi
callq 0x55b0