// File: wrighteagle2d[P]wrighteaglebase/Debug/../src/BehaviorDribble.cpp
// Function: BehaviorDribbleExecuter::Execute(ActiveBehavior const&)
bool BehaviorDribbleExecuter::Execute(const ActiveBehavior &dribble) {
  Logger::instance().LogDribble(mBallState.GetPos(), dribble.mTarget,
                                "@Dribble", true);

  if (dribble.mDetailType == BDT_Dribble_Normal) {
    Vector ballpos = mBallState.GetPos();
    PlayerState oppState =
        mWorldState.GetOpponent(mPositionInfo.GetClosestOpponentToBall());
    Vector posOpp = oppState.GetPos();
    ballpos = mBallState.GetPredictedPos(1);
    Vector agentpos = mSelfState.GetPos();
    Vector agent_v = agentpos - mSelfState.GetPos();
    AngleDeg agentang = mSelfState.GetBodyDir();

    AtomicAction act;

    if (mSelfState.GetStamina() < 2700) {
      Dasher::instance().GoToPoint(mAgent, act, dribble.mTarget, 0.01, 30);
    } else {
      Dasher::instance().GoToPoint(mAgent, act, dribble.mTarget, 0.01, 100);
    }

    act.mDashPower =
        MinMax(-ServerParam::instance().maxDashPower(), act.mDashPower,
               ServerParam::instance().maxDashPower());

    agent_v = mSelfState.GetVel() * mSelfState.GetDecay();
    if (act.mType != CT_Dash) {
      agentpos = mSelfState.GetPredictedPos(1);
    } else
      agentpos =
          mSelfState.GetPredictedPosWithDash(1, act.mDashPower, act.mDashDir);

    bool collide = mSelfState.GetCollideWithPlayer();
    if (ballpos.Dist(agentpos) > 0.95 * (mSelfState.GetKickableArea()) ||
        collide) // will not be kickable or will make a collision ??
    {
      int p = ((mBallState.GetPos() - mSelfState.GetPos()).Dir() -
               mSelfState.GetBodyDir()) > 0
                  ? 1
                  : -1;
      double outSpeed = mSelfState.GetVel().Mod();
      if (act.mType == CT_Dash && fabs(act.mDashDir) < FLOAT_EPS)
        outSpeed += mSelfState.GetAccelerationFront(act.mDashPower);
      if ((agentpos +
           Polar2Vector(mSelfState.GetKickableArea(), agentang + p * 45) -
           mBallState.GetPos())
              .Mod() <
          (agentpos +
           Polar2Vector(mSelfState.GetKickableArea(), agentang + p * 45) -
           mSelfState.GetPos())
              .Mod()) {
        if (mSelfState.GetStamina() < 2700) {
          return Dasher::instance().GoToPoint(mAgent, dribble.mTarget, 0.01,
                                              30); // dash slow
        } else
          return Dasher::instance().GoToPoint(mAgent, dribble.mTarget, 0.01,
                                              100);
      }
      return Kicker::instance().KickBall(
          mAgent,
          agentpos +
              Polar2Vector(mSelfState.GetKickableArea(), agentang + p * 45),
          outSpeed, KM_Hard);
    } else {
      if (mSelfState.GetStamina() < 2700) {
        return Dasher::instance().GoToPoint(mAgent, dribble.mTarget, 0.01,
                                            30); // dash slow
      } else
        return Dasher::instance().GoToPoint(mAgent, dribble.mTarget, 0.01, 100);
    }
  } else /*if(dribble.mDetailType == BDT_Dribble_Fast)*/ {
    return Kicker::instance().KickBall(mAgent, dribble.mAngle,
                                       dribble.mKickSpeed, KM_Quick);
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x5e0, %rsp            # imm = 0x5E0
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x3a0(%rbp)
callq 0x5add0
movq %rax, %rcx
movq -0x3a0(%rbp), %rax
movq %rcx, -0x398(%rbp)
movq 0x18(%rax), %rdi
addq $0x8, %rdi
callq 0x11090
movq -0x398(%rbp), %rdi
movq %rax, %rsi
movq -0x18(%rbp), %rdx
addq $0x28, %rdx
leaq 0xa5aad(%rip), %rcx     # 0xc1777
movl $0x1, %r8d
callq 0x5b960
movq -0x18(%rbp), %rax
cmpl $0x6, 0x98(%rax)
jne 0x1c9c0
movq -0x3a0(%rbp), %rax
movq 0x18(%rax), %rdi
addq $0x8, %rdi
callq 0x11090
movq %rax, %rcx
movq -0x3a0(%rbp), %rax
movups (%rcx), %xmm0
movaps %xmm0, -0x30(%rbp)
movq 0x10(%rax), %rcx
movq %rcx, -0x3b0(%rbp)
movq 0x28(%rax), %rdi
callq 0x1d4b0
movq -0x3b0(%rbp), %rdi
movl %eax, -0x1ac(%rbp)
leaq -0x1ac(%rbp), %rsi
callq 0x1d480
movq %rax, %rsi
leaq -0x1a8(%rbp), %rdi
callq 0x1d510
leaq -0x1a0(%rbp), %rdi
callq 0x11090
movq %rax, -0x3a8(%rbp)
jmp 0x1bd5c
movq -0x3a0(%rbp), %rax
movq -0x3a8(%rbp), %rcx
movups (%rcx), %xmm0
movaps %xmm0, -0x1c0(%rbp)
movq 0x18(%rax), %rdi
movl $0x1, %esi
callq 0x11fc0
movq %rax, -0x3b8(%rbp)
jmp 0x1bd8b
movq -0x3a0(%rbp), %rax
movq -0x3b8(%rbp), %rcx
movups (%rcx), %xmm0
movaps %xmm0, -0x30(%rbp)
movq 0x20(%rax), %rdi
addq $0x8, %rdi
callq 0x11090
movq %rax, -0x3c0(%rbp)
jmp 0x1bdb6
movq -0x3a0(%rbp), %rax
movq -0x3c0(%rbp), %rcx
movups (%rcx), %xmm0
movaps %xmm0, -0x1e0(%rbp)
movq 0x20(%rax), %rdi
addq $0x8, %rdi
callq 0x11090
movq %rax, -0x3c8(%rbp)
jmp 0x1bde4
movq -0x3c8(%rbp), %rsi
leaq -0x1e0(%rbp), %rdi
callq 0x110a0
movsd %xmm1, -0x3d8(%rbp)
movsd %xmm0, -0x3d0(%rbp)
jmp 0x1be09
movq -0x3a0(%rbp), %rax
movsd -0x3d8(%rbp), %xmm0
movsd -0x3d0(%rbp), %xmm1
movsd %xmm1, -0x1f0(%rbp)
movsd %xmm0, -0x1e8(%rbp)
movq 0x20(%rax), %rdi
callq 0x11170
movq %rax, -0x3e0(%rbp)
jmp 0x1be42
movq -0x3e0(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x1f8(%rbp)
leaq -0x228(%rbp), %rdi
xorl %esi, %esi
callq 0x1d620
jmp 0x1be65
movq -0x3a0(%rbp), %rax
movq 0x20(%rax), %rdi
callq 0x10cd0
movq %rax, -0x3e8(%rbp)
jmp 0x1be7e
movq -0x3e8(%rbp), %rax
movsd 0xa583b(%rip), %xmm0    # 0xc16c8
ucomisd (%rax), %xmm0
jbe 0x1bf24
callq 0x2ec90
movq %rax, -0x3f0(%rbp)
jmp 0x1bea5
movq -0x3f0(%rbp), %rdi
movq -0x3a0(%rbp), %rax
movq 0x8(%rax), %rsi
movq -0x18(%rbp), %rax
movups 0x28(%rax), %xmm0
movaps %xmm0, -0x240(%rbp)
movsd -0x240(%rbp), %xmm0
movsd -0x238(%rbp), %xmm1
leaq -0x228(%rbp), %rdx
movsd 0xa57eb(%rip), %xmm2    # 0xc16d0
movsd 0xa57f3(%rip), %xmm3    # 0xc16e0
movl $0x1, %ecx
xorl %r8d, %r8d
callq 0x2ed20
jmp 0x1befc
jmp 0x1bf8b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c8(%rbp)
movl %eax, -0x1cc(%rbp)
leaq -0x1a8(%rbp), %rdi
callq 0x12500
jmp 0x1ca09
callq 0x2ec90
movq %rax, -0x3f8(%rbp)
jmp 0x1bf32
movq -0x3f8(%rbp), %rdi
movq -0x3a0(%rbp), %rax
movq 0x8(%rax), %rsi
movq -0x18(%rbp), %rax
movups 0x28(%rax), %xmm0
movaps %xmm0, -0x250(%rbp)
movsd -0x250(%rbp), %xmm0
movsd -0x248(%rbp), %xmm1
leaq -0x228(%rbp), %rdx
movsd 0xa575e(%rip), %xmm2    # 0xc16d0
movsd 0xa575e(%rip), %xmm3    # 0xc16d8
movl $0x1, %ecx
xorl %r8d, %r8d
callq 0x2ed20
jmp 0x1bf89
jmp 0x1bf8b
callq 0x855e0
movq %rax, -0x400(%rbp)
jmp 0x1bf99
movq -0x400(%rbp), %rdi
callq 0x12b60
movq %rax, -0x408(%rbp)
jmp 0x1bfae
movq -0x408(%rbp), %rax
movsd (%rax), %xmm0
movaps 0xa5770(%rip), %xmm1    # 0xc1730
pxor %xmm1, %xmm0
movlpd %xmm0, -0x258(%rbp)
leaq -0x208(%rbp), %rax
movq %rax, -0x418(%rbp)
callq 0x855e0
movq %rax, -0x410(%rbp)
jmp 0x1bfe8
movq -0x410(%rbp), %rdi
callq 0x12b60
movq %rax, -0x420(%rbp)
jmp 0x1bffd
movq -0x420(%rbp), %rdx
movq -0x418(%rbp), %rsi
leaq -0x258(%rbp), %rdi
callq 0x12a20
movq %rax, -0x428(%rbp)
jmp 0x1c020
movq -0x3a0(%rbp), %rax
movq -0x428(%rbp), %rcx
movsd (%rcx), %xmm0
movsd %xmm0, -0x208(%rbp)
movq 0x20(%rax), %rdi
callq 0x10a80
movq %rax, -0x430(%rbp)
jmp 0x1c04c
movq -0x3a0(%rbp), %rax
movq 0x20(%rax), %rdi
callq 0x1d690
movq %rax, -0x438(%rbp)
jmp 0x1c065
movq -0x438(%rbp), %rsi
movq -0x430(%rbp), %rdi
callq 0x13320
movsd %xmm1, -0x448(%rbp)
movsd %xmm0, -0x440(%rbp)
jmp 0x1c08a
movsd -0x448(%rbp), %xmm0
movsd -0x440(%rbp), %xmm1
movsd %xmm1, -0x268(%rbp)
movsd %xmm0, -0x260(%rbp)
movq -0x268(%rbp), %rax
movq %rax, -0x1f0(%rbp)
movq -0x260(%rbp), %rax
movq %rax, -0x1e8(%rbp)
cmpl $0x2, -0x224(%rbp)
je 0x1c10b
movq -0x3a0(%rbp), %rax
movq 0x20(%rax), %rdi
movl $0x1, %esi
callq 0x11fc0
movq %rax, -0x450(%rbp)
jmp 0x1c0ed
movq -0x450(%rbp), %rax
movq (%rax), %rcx
movq %rcx, -0x1e0(%rbp)
movq 0x8(%rax), %rax
movq %rax, -0x1d8(%rbp)
jmp 0x1c17e
movq -0x3a0(%rbp), %rax
movq 0x20(%rax), %rdi
movsd -0x208(%rbp), %xmm0
movsd -0x200(%rbp), %xmm1
movl $0x1, %esi
callq 0x7c840
movsd %xmm1, -0x460(%rbp)
movsd %xmm0, -0x458(%rbp)
jmp 0x1c142
movsd -0x460(%rbp), %xmm0
movsd -0x458(%rbp), %xmm1
movsd %xmm1, -0x278(%rbp)
movsd %xmm0, -0x270(%rbp)
movq -0x278(%rbp), %rax
movq %rax, -0x1e0(%rbp)
movq -0x270(%rbp), %rax
movq %rax, -0x1d8(%rbp)
movq -0x3a0(%rbp), %rax
movq 0x20(%rax), %rdi
callq 0x1d6b0
movb %al, -0x461(%rbp)
jmp 0x1c196
movb -0x461(%rbp), %al
andb $0x1, %al
movb %al, -0x279(%rbp)
leaq -0x30(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
callq 0x1d6d0
movsd %xmm0, -0x470(%rbp)
jmp 0x1c1be
movq -0x3a0(%rbp), %rax
movq 0x20(%rax), %rdi
movq (%rdi), %rax
movq 0x10(%rax), %rax
callq *%rax
movq %rax, -0x478(%rbp)
jmp 0x1c1db
movsd -0x470(%rbp), %xmm0
movq -0x478(%rbp), %rax
movsd 0xa54f6(%rip), %xmm1    # 0xc16e8
mulsd (%rax), %xmm1
ucomisd %xmm1, %xmm0
ja 0x1c209
testb $0x1, -0x279(%rbp)
je 0x1c892
movq -0x3a0(%rbp), %rax
movq 0x18(%rax), %rdi
addq $0x8, %rdi
callq 0x11090
movq %rax, -0x480(%rbp)
jmp 0x1c226
movq -0x3a0(%rbp), %rax
movq 0x20(%rax), %rdi
addq $0x8, %rdi
callq 0x11090
movq %rax, -0x488(%rbp)
jmp 0x1c243
movq -0x488(%rbp), %rsi
movq -0x480(%rbp), %rdi
callq 0x110a0
movsd %xmm1, -0x498(%rbp)
movsd %xmm0, -0x490(%rbp)
jmp 0x1c268
movsd -0x498(%rbp), %xmm0
movsd -0x490(%rbp), %xmm1
movsd %xmm1, -0x290(%rbp)
movsd %xmm0, -0x288(%rbp)
leaq -0x290(%rbp), %rdi
callq 0x10520
movsd %xmm0, -0x4a0(%rbp)
jmp 0x1c29e
movq -0x3a0(%rbp), %rax
movq 0x20(%rax), %rdi
callq 0x11170
movq %rax, -0x4a8(%rbp)
jmp 0x1c2b7
movq -0x3a0(%rbp), %rax
movsd -0x4a0(%rbp), %xmm0
movq -0x4a8(%rbp), %rcx
movsd (%rcx), %xmm1
subsd %xmm1, %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
seta %cl
movzbl %cl, %edx
movl %edx, %ecx
leal -0x1(%rcx,%rcx), %ecx
movl %ecx, -0x280(%rbp)
movq 0x20(%rax), %rdi
callq 0x10a80
movq %rax, -0x4b0(%rbp)
jmp 0x1c300
movq -0x4b0(%rbp), %rdi
callq 0x104e0
movsd %xmm0, -0x4b8(%rbp)
jmp 0x1c316
movsd -0x4b8(%rbp), %xmm0
movsd %xmm0, -0x298(%rbp)
cmpl $0x2, -0x224(%rbp)
jne 0x1c38b
movsd -0x200(%rbp), %xmm1
movaps 0xa4d22(%rip), %xmm0    # 0xc1060
pand %xmm0, %xmm1
movsd 0xa4cbe(%rip), %xmm0    # 0xc1008
ucomisd %xmm1, %xmm0
jbe 0x1c38b
movq -0x3a0(%rbp), %rax
movq 0x20(%rax), %rdi
leaq -0x208(%rbp), %rsi
callq 0x1d710
movq %rax, -0x4c0(%rbp)
jmp 0x1c370
movq -0x4c0(%rbp), %rax
movsd (%rax), %xmm0
addsd -0x298(%rbp), %xmm0
movsd %xmm0, -0x298(%rbp)
movq -0x3a0(%rbp), %rax
movq 0x20(%rax), %rdi
movq (%rdi), %rax
movq 0x10(%rax), %rax
callq *%rax
movq %rax, -0x4c8(%rbp)
jmp 0x1c3a8
movq -0x4c8(%rbp), %rdi
movsd -0x1f8(%rbp), %xmm0
movl -0x280(%rbp), %ecx
movl %ecx, %eax
leal (%rax,%rax,8), %ecx
movl %ecx, %eax
leal (%rax,%rax,4), %eax
cvtsi2sd %eax, %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x2d0(%rbp)
leaq -0x2d0(%rbp), %rsi
callq 0x112c0
movsd %xmm1, -0x4d8(%rbp)
movsd %xmm0, -0x4d0(%rbp)
jmp 0x1c3f5
movsd -0x4d8(%rbp), %xmm0
movsd -0x4d0(%rbp), %xmm1
movsd %xmm1, -0x2c8(%rbp)
movsd %xmm0, -0x2c0(%rbp)
leaq -0x1e0(%rbp), %rdi
leaq -0x2c8(%rbp), %rsi
callq 0x11360
movsd %xmm1, -0x4e8(%rbp)
movsd %xmm0, -0x4e0(%rbp)
jmp 0x1c43a
movq -0x3a0(%rbp), %rax
movsd -0x4e8(%rbp), %xmm0
movsd -0x4e0(%rbp), %xmm1
movsd %xmm1, -0x2b8(%rbp)
movsd %xmm0, -0x2b0(%rbp)
movq 0x18(%rax), %rdi
addq $0x8, %rdi
callq 0x11090
movq %rax, -0x4f0(%rbp)
jmp 0x1c477
movq -0x4f0(%rbp), %rsi
leaq -0x2b8(%rbp), %rdi
callq 0x110a0
movsd %xmm1, -0x500(%rbp)
movsd %xmm0, -0x4f8(%rbp)
jmp 0x1c49c
movsd -0x500(%rbp), %xmm0
movsd -0x4f8(%rbp), %xmm1
movsd %xmm1, -0x2a8(%rbp)
movsd %xmm0, -0x2a0(%rbp)
leaq -0x2a8(%rbp), %rdi
callq 0x104e0
movsd %xmm0, -0x508(%rbp)
jmp 0x1c4d2
movq -0x3a0(%rbp), %rax
movq 0x20(%rax), %rdi
movq (%rdi), %rax
movq 0x10(%rax), %rax
callq *%rax
movq %rax, -0x510(%rbp)
jmp 0x1c4ef
movq -0x510(%rbp), %rdi
movsd -0x1f8(%rbp), %xmm0
movl -0x280(%rbp), %ecx
movl %ecx, %eax
leal (%rax,%rax,8), %ecx
movl %ecx, %eax
leal (%rax,%rax,4), %eax
cvtsi2sd %eax, %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x308(%rbp)
leaq -0x308(%rbp), %rsi
callq 0x112c0
movsd %xmm1, -0x520(%rbp)
movsd %xmm0, -0x518(%rbp)
jmp 0x1c53c
movsd -0x520(%rbp), %xmm0
movsd -0x518(%rbp), %xmm1
movsd %xmm1, -0x300(%rbp)
movsd %xmm0, -0x2f8(%rbp)
leaq -0x1e0(%rbp), %rdi
leaq -0x300(%rbp), %rsi
callq 0x11360
movsd %xmm1, -0x530(%rbp)
movsd %xmm0, -0x528(%rbp)
jmp 0x1c581
movq -0x3a0(%rbp), %rax
movsd -0x530(%rbp), %xmm0
movsd -0x528(%rbp), %xmm1
movsd %xmm1, -0x2f0(%rbp)
movsd %xmm0, -0x2e8(%rbp)
movq 0x20(%rax), %rdi
addq $0x8, %rdi
callq 0x11090
movq %rax, -0x538(%rbp)
jmp 0x1c5be
movq -0x538(%rbp), %rsi
leaq -0x2f0(%rbp), %rdi
callq 0x110a0
movsd %xmm1, -0x548(%rbp)
movsd %xmm0, -0x540(%rbp)
jmp 0x1c5e3
movsd -0x548(%rbp), %xmm0
movsd -0x540(%rbp), %xmm1
movsd %xmm1, -0x2e0(%rbp)
movsd %xmm0, -0x2d8(%rbp)
leaq -0x2e0(%rbp), %rdi
callq 0x104e0
movsd %xmm0, -0x550(%rbp)
jmp 0x1c619
movsd -0x550(%rbp), %xmm0
movsd -0x508(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jbe 0x1c75b
movq -0x3a0(%rbp), %rax
movq 0x20(%rax), %rdi
callq 0x10cd0
movq %rax, -0x558(%rbp)
jmp 0x1c64c
movq -0x558(%rbp), %rax
movsd 0xa506d(%rip), %xmm0    # 0xc16c8
ucomisd (%rax), %xmm0
jbe 0x1c6de
callq 0x2ec90
movq %rax, -0x560(%rbp)
jmp 0x1c66f
movq -0x560(%rbp), %rdi
movq -0x3a0(%rbp), %rax
movq 0x8(%rax), %rsi
movq -0x18(%rbp), %rax
movups 0x28(%rax), %xmm0
movaps %xmm0, -0x320(%rbp)
movsd -0x320(%rbp), %xmm0
movsd -0x318(%rbp), %xmm1
movsd 0xa5028(%rip), %xmm2    # 0xc16d0
movsd 0xa5030(%rip), %xmm3    # 0xc16e0
movl $0x1, %edx
xorl %ecx, %ecx
callq 0x30f80
movb %al, -0x561(%rbp)
jmp 0x1c6c4
movb -0x561(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
movl $0x1, -0x324(%rbp)
jmp 0x1c9b2
callq 0x2ec90
movq %rax, -0x570(%rbp)
jmp 0x1c6ec
movq -0x570(%rbp), %rdi
movq -0x3a0(%rbp), %rax
movq 0x8(%rax), %rsi
movq -0x18(%rbp), %rax
movups 0x28(%rax), %xmm0
movaps %xmm0, -0x340(%rbp)
movsd -0x340(%rbp), %xmm0
movsd -0x338(%rbp), %xmm1
movsd 0xa4fab(%rip), %xmm2    # 0xc16d0
movsd 0xa4fab(%rip), %xmm3    # 0xc16d8
movl $0x1, %edx
xorl %ecx, %ecx
callq 0x30f80
movb %al, -0x571(%rbp)
jmp 0x1c741
movb -0x571(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
movl $0x1, -0x324(%rbp)
jmp 0x1c9b2
callq 0x4ff20
movq %rax, -0x580(%rbp)
jmp 0x1c769
movq -0x3a0(%rbp), %rax
movq 0x8(%rax), %rcx
movq %rcx, -0x590(%rbp)
movq 0x20(%rax), %rdi
movq (%rdi), %rax
movq 0x10(%rax), %rax
callq *%rax
movq %rax, -0x588(%rbp)
jmp 0x1c791
movq -0x588(%rbp), %rdi
movsd -0x1f8(%rbp), %xmm0
movl -0x280(%rbp), %ecx
movl %ecx, %eax
leal (%rax,%rax,8), %ecx
movl %ecx, %eax
leal (%rax,%rax,4), %eax
cvtsi2sd %eax, %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x368(%rbp)
leaq -0x368(%rbp), %rsi
callq 0x112c0
movsd %xmm1, -0x5a0(%rbp)
movsd %xmm0, -0x598(%rbp)
jmp 0x1c7de
movsd -0x5a0(%rbp), %xmm0
movsd -0x598(%rbp), %xmm1
movsd %xmm1, -0x360(%rbp)
movsd %xmm0, -0x358(%rbp)
leaq -0x1e0(%rbp), %rdi
leaq -0x360(%rbp), %rsi
callq 0x11360
movsd %xmm1, -0x5b0(%rbp)
movsd %xmm0, -0x5a8(%rbp)
jmp 0x1c823
movq -0x590(%rbp), %rsi
movq -0x580(%rbp), %rdi
movsd -0x5b0(%rbp), %xmm0
movsd -0x5a8(%rbp), %xmm1
movsd %xmm1, -0x350(%rbp)
movsd %xmm0, -0x348(%rbp)
movsd -0x298(%rbp), %xmm0
xorl %r9d, %r9d
movl %r9d, %r8d
leaq -0x350(%rbp), %rdx
movl $0x1, %ecx
callq 0x541f0
movb %al, -0x5b1(%rbp)
jmp 0x1c878
movb -0x5b1(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
movl $0x1, -0x324(%rbp)
jmp 0x1c9b2
movq -0x3a0(%rbp), %rax
movq 0x20(%rax), %rdi
callq 0x10cd0
movq %rax, -0x5c0(%rbp)
jmp 0x1c8ab
movq -0x5c0(%rbp), %rax
movsd 0xa4e0e(%rip), %xmm0    # 0xc16c8
ucomisd (%rax), %xmm0
jbe 0x1c93a
callq 0x2ec90
movq %rax, -0x5c8(%rbp)
jmp 0x1c8ce
movq -0x5c8(%rbp), %rdi
movq -0x3a0(%rbp), %rax
movq 0x8(%rax), %rsi
movq -0x18(%rbp), %rax
movups 0x28(%rax), %xmm0
movaps %xmm0, -0x380(%rbp)
movsd -0x380(%rbp), %xmm0
movsd -0x378(%rbp), %xmm1
movsd 0xa4dc9(%rip), %xmm2    # 0xc16d0
movsd 0xa4dd1(%rip), %xmm3    # 0xc16e0
movl $0x1, %edx
xorl %ecx, %ecx
callq 0x30f80
movb %al, -0x5c9(%rbp)
jmp 0x1c923
movb -0x5c9(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
movl $0x1, -0x324(%rbp)
jmp 0x1c9b2
callq 0x2ec90
movq %rax, -0x5d8(%rbp)
jmp 0x1c948
movq -0x5d8(%rbp), %rdi
movq -0x3a0(%rbp), %rax
movq 0x8(%rax), %rsi
movq -0x18(%rbp), %rax
movups 0x28(%rax), %xmm0
movaps %xmm0, -0x390(%rbp)
movsd -0x390(%rbp), %xmm0
movsd -0x388(%rbp), %xmm1
movsd 0xa4d4f(%rip), %xmm2    # 0xc16d0
movsd 0xa4d4f(%rip), %xmm3    # 0xc16d8
movl $0x1, %edx
xorl %ecx, %ecx
callq 0x30f80
movb %al, -0x5d9(%rbp)
jmp 0x1c99d
movb -0x5d9(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
movl $0x1, -0x324(%rbp)
leaq -0x1a8(%rbp), %rdi
callq 0x12500
jmp 0x1c9fb
callq 0x4ff20
movq %rax, %rdi
movq -0x3a0(%rbp), %rax
movq 0x8(%rax), %rsi
movq -0x18(%rbp), %rax
movsd 0x20(%rax), %xmm0
movq -0x18(%rbp), %rax
movsd 0x48(%rax), %xmm1
movl $0x2, %edx
xorl %eax, %eax
movl %eax, %ecx
xorl %r8d, %r8d
callq 0x54130
andb $0x1, %al
movb %al, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x5e0, %rsp            # imm = 0x5E0
popq %rbp
retq
movq -0x1c8(%rbp), %rdi
callq 0xaa60
nopw %cs:(%rax,%rax)