// File: /workspace/github_cpp_makefile_star2_O3/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 0x5640
movsd %xmm0, (%rsp)
movsd 0x18(%rsp), %xmm0
callq 0x5640
mulsd (%rsp), %xmm0
leaq 0x30(%rsp), %r14
movq %r15, (%r14)
movq $0x0, 0x8(%r14)
movl $0x1, %eax
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 0x5640
mulsd (%rsp), %xmm0
leaq 0x88(%rsp), %rsi
movsd %xmm0, (%rsi)
movq %r14, %rdi
callq 0x16ca8
movq %rax, %r14
movsd 0x18(%rsp), %xmm0
callq 0x50e0
xorpd 0x24fef(%rip), %xmm0    # 0x3a710
leaq 0x80(%rsp), %rsi
movlpd %xmm0, (%rsi)
movq %r14, %rdi
callq 0x16ca8
movq %rax, %r14
movsd 0x8(%rsp), %xmm0
callq 0x50e0
movsd %xmm0, (%rsp)
movsd 0x20(%rsp), %xmm0
callq 0x5640
movsd %xmm0, 0x28(%rsp)
movsd 0x8(%rsp), %xmm0
callq 0x5640
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 0x78(%rsp), %rsi
movsd %xmm0, (%rsi)
movq %r14, %rdi
callq 0x16ca8
movq %rax, %r14
movsd 0x8(%rsp), %xmm0
callq 0x5640
movsd %xmm0, (%rsp)
movsd 0x20(%rsp), %xmm0
callq 0x5640
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 0x70(%rsp), %rsi
movsd %xmm1, (%rsi)
movq %r14, %rdi
callq 0x16ca8
movq %rax, %r14
movsd 0x18(%rsp), %xmm0
callq 0x5640
movsd %xmm0, (%rsp)
movsd 0x20(%rsp), %xmm0
callq 0x50e0
mulsd (%rsp), %xmm0
leaq 0x68(%rsp), %rsi
movsd %xmm0, (%rsi)
movq %r14, %rdi
callq 0x16ca8
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 0x5640
movsd %xmm0, 0x10(%rsp)
movsd 0x18(%rsp), %xmm0
callq 0x50e0
mulsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
movsd 0x20(%rsp), %xmm0
callq 0x5640
mulsd 0x10(%rsp), %xmm0
movsd 0x28(%rsp), %xmm1
mulsd (%rsp), %xmm1
addsd %xmm0, %xmm1
leaq 0x60(%rsp), %rsi
movsd %xmm1, (%rsi)
movq %r14, %rdi
callq 0x16ca8
movq %rax, %r14
movsd 0x8(%rsp), %xmm0
callq 0x5640
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 0x5640
mulsd 0x8(%rsp), %xmm0
movsd 0x28(%rsp), %xmm1
mulsd (%rsp), %xmm1
subsd %xmm1, %xmm0
leaq 0x58(%rsp), %rsi
movsd %xmm0, (%rsi)
movq %r14, %rdi
callq 0x16ca8
movq %rax, %r14
movsd 0x18(%rsp), %xmm0
callq 0x5640
movsd %xmm0, 0x18(%rsp)
movsd 0x20(%rsp), %xmm0
callq 0x5640
mulsd 0x18(%rsp), %xmm0
leaq 0x50(%rsp), %rsi
movsd %xmm0, (%rsi)
movq %r14, %rdi
callq 0x16ca8
movq 0x48(%rsp), %rax
addq 0x38(%rsp), %rax
cmpq $0x3, %rax
jne 0x15a7e
cmpq $0x3, 0x40(%rsp)
jne 0x15a7e
movsd 0xd0(%rbx), %xmm0
movsd 0xd8(%rbx), %xmm1
movsd %xmm0, 0x160(%rbx)
movsd 0xe8(%rbx), %xmm0
movsd %xmm0, 0x168(%rbx)
movsd 0x100(%rbx), %xmm0
movsd %xmm0, 0x170(%rbx)
movsd %xmm1, 0x178(%rbx)
movsd 0xf0(%rbx), %xmm0
movsd %xmm0, 0x180(%rbx)
movsd 0x108(%rbx), %xmm0
movsd %xmm0, 0x188(%rbx)
movsd 0xe0(%rbx), %xmm0
movsd %xmm0, 0x190(%rbx)
movsd 0xf8(%rbx), %xmm0
movsd %xmm0, 0x198(%rbx)
movsd 0x110(%rbx), %xmm0
movsd %xmm0, 0x1a0(%rbx)
addq $0x90, %rsp
popq %rbx
popq %r14
popq %r15
retq
jmp 0x15a5e
jmp 0x15a5e
jmp 0x15a5e
jmp 0x15a5e
jmp 0x15a5e
jmp 0x15a5e
jmp 0x15a5e
movq 0x48(%rsp), %rcx
addq 0x38(%rsp), %rcx
cmpq $0x3, %rcx
jne 0x15a7e
cmpq $0x3, 0x40(%rsp)
jne 0x15a7e
movq %rax, %rdi
callq 0x55e0
leaq 0x24cc3(%rip), %rdi     # 0x3a748
leaq 0x24d5a(%rip), %rsi     # 0x3a7e6
leaq 0x24d7b(%rip), %rcx     # 0x3a80e
movl $0x78, %edx
callq 0x5230
nop