// File: DavidLBruce[P]sim3dof/build/../src/Target.cpp
// Function: Target::Update()
void Target::Update()
{
  double tempAxf;
  double tempAyf;

  simTime = GetSimTime();
  
  if ( (simTime < weaveStart) || (simTime > weaveEnd) )
  {
    axb = 0.0;
    ayb = 0.0;
  }
  else
  {
    if ( !weaveInit )
    {
      weaveInit = true;

      vyf = -( weaveAmpl / omega ) * cos( weavePhase );

      pyf = -( weaveAmpl / SQ(omega) ) * sin( weavePhase );
    }

    tempAxf = 0.0;
    tempAyf = weaveAmpl * sin( simTime * omega + weavePhase );

    axb =  tempAxf * cos(theta) + tempAyf * sin(theta);
    ayb = -tempAxf * sin(theta) + tempAyf * cos(theta);

    jxf = 0.0;
    jyf = weaveAmpl * omega * cos( simTime * omega );
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x20(%rbp)
callq 0x3c40
movq -0x20(%rbp), %rax
movsd %xmm0, 0x1a0(%rax)
movsd 0x1a0(%rax), %xmm1
movsd 0x108(%rax), %xmm0
ucomisd %xmm1, %xmm0
ja 0x1ebd4
movq -0x20(%rbp), %rax
movsd 0x1a0(%rax), %xmm0
ucomisd 0x110(%rax), %xmm0
jbe 0x1ebf3
movq -0x20(%rbp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0x128(%rax)
xorps %xmm0, %xmm0
movsd %xmm0, 0x138(%rax)
jmp 0x1ee44
movq -0x20(%rbp), %rax
testb $0x1, 0x198(%rax)
jne 0x1eccb
movq -0x20(%rbp), %rax
movb $0x1, 0x198(%rax)
movsd 0x118(%rax), %xmm0
divsd 0x158(%rax), %xmm0
movq %xmm0, %rcx
movabsq $-0x8000000000000000, %rdx # imm = 0x8000000000000000
xorq %rdx, %rcx
movq %rcx, %xmm0
movsd %xmm0, -0x38(%rbp)
movsd 0x1a8(%rax), %xmm0
callq 0x3430
movq -0x20(%rbp), %rax
movaps %xmm0, %xmm1
movsd -0x38(%rbp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, 0x190(%rax)
movsd 0x118(%rax), %xmm0
movsd %xmm0, -0x30(%rbp)
movsd 0x158(%rax), %xmm0
callq 0x4450
movq -0x20(%rbp), %rax
movaps %xmm0, %xmm1
movsd -0x30(%rbp), %xmm0
divsd %xmm1, %xmm0
movq %xmm0, %rcx
movabsq $-0x8000000000000000, %rdx # imm = 0x8000000000000000
xorq %rdx, %rcx
movq %rcx, %xmm0
movsd %xmm0, -0x28(%rbp)
movsd 0x1a8(%rax), %xmm0
callq 0x30a0
movq -0x20(%rbp), %rax
movaps %xmm0, %xmm1
movsd -0x28(%rbp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, 0x168(%rax)
movq -0x20(%rbp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, -0x10(%rbp)
movsd 0x118(%rax), %xmm0
movsd %xmm0, -0x78(%rbp)
movsd 0x1a0(%rax), %xmm0
movsd 0x158(%rax), %xmm2
movsd 0x1a8(%rax), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
callq 0x30a0
movq -0x20(%rbp), %rax
movaps %xmm0, %xmm1
movsd -0x78(%rbp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, -0x18(%rbp)
movsd -0x10(%rbp), %xmm0
movsd %xmm0, -0x60(%rbp)
movsd 0x170(%rax), %xmm0
callq 0x3430
movq -0x20(%rbp), %rax
movsd %xmm0, -0x68(%rbp)
movsd -0x18(%rbp), %xmm0
movsd %xmm0, -0x70(%rbp)
movsd 0x170(%rax), %xmm0
callq 0x30a0
movsd -0x70(%rbp), %xmm1
movsd -0x68(%rbp), %xmm2
movq -0x20(%rbp), %rax
movaps %xmm0, %xmm3
movsd -0x60(%rbp), %xmm0
mulsd %xmm3, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x128(%rax)
movsd -0x10(%rbp), %xmm0
movq %xmm0, %rcx
movabsq $-0x8000000000000000, %rdx # imm = 0x8000000000000000
xorq %rdx, %rcx
movq %rcx, %xmm0
movsd %xmm0, -0x48(%rbp)
movsd 0x170(%rax), %xmm0
callq 0x30a0
movq -0x20(%rbp), %rax
movsd %xmm0, -0x50(%rbp)
movsd -0x18(%rbp), %xmm0
movsd %xmm0, -0x58(%rbp)
movsd 0x170(%rax), %xmm0
callq 0x3430
movsd -0x58(%rbp), %xmm1
movsd -0x50(%rbp), %xmm2
movq -0x20(%rbp), %rax
movaps %xmm0, %xmm3
movsd -0x48(%rbp), %xmm0
mulsd %xmm3, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x138(%rax)
xorps %xmm0, %xmm0
movsd %xmm0, 0x148(%rax)
movsd 0x118(%rax), %xmm0
mulsd 0x158(%rax), %xmm0
movsd %xmm0, -0x40(%rbp)
movsd 0x1a0(%rax), %xmm0
mulsd 0x158(%rax), %xmm0
callq 0x3430
movq -0x20(%rbp), %rax
movaps %xmm0, %xmm1
movsd -0x40(%rbp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, 0x150(%rax)
addq $0x80, %rsp
popq %rbp
retq
nopl (%rax)