// File: wrighteagle2d[P]wrighteaglebase/Debug/../src/Formation.cpp
// Function: OpponentFormation::SetOffsetMatrix()
void OpponentFormation::SetOffsetMatrix() {
  if (mHIntervalTimes[0] == 0 || mHIntervalTimes[1] == 0)
    return;
  RoleType iRole, jRole;
  const double MAXX = 50.0;
  const double MINX = -50.0;
  const double MAXY = 23.0;
  const double MINY = -23.0;

  mHBallFactor = (MAXX - (mHInterval[0] + mHInterval[1]) * 0.5) /
                 ServerParam::instance().PITCH_LENGTH * 2;
  mHBallFactor = Max(0.0, mHBallFactor);

  double maxwide = Max(mVInterval[1] * (mLineArrange[1] - 1),
                       mVInterval[2] * (mLineArrange[2] - 1));
  maxwide = Max(maxwide, mVInterval[3] * (mLineArrange[3] - 1));
  mVBallFactor =
      (MAXY - maxwide * 0.5) / ServerParam::instance().PITCH_WIDTH * 2;
  mVBallFactor = Max(0.0, mVBallFactor);

  for (int i = 1; i <= TEAMSIZE; i++) {
    if (i == mGoalieUnum)
      continue;
    iRole = mPlayerRole[i];
    if (iRole.mLineType == LT_Null)
      continue;
    if (iRole.mIndexX == 1) {
      mActiveField[i].SetLeft(MINX);
      mActiveField[i].SetRight(MAXX - mHInterval[1] - mHInterval[0]);
    } else if (iRole.mIndexX == 2) {
      mActiveField[i].SetLeft(MINX + mHInterval[0]);
      mActiveField[i].SetRight(MAXX - mHInterval[1]);
    } else if (iRole.mIndexX == 3) {
      mActiveField[i].SetLeft(MINX + mHInterval[0] + mHInterval[1]);
      mActiveField[i].SetRight(MAXX);
    }
    mActiveField[i].SetBottom(MAXY -
                              (mLineArrange[iRole.mIndexX] - iRole.mIndexY) *
                                  mVInterval[iRole.mIndexX]);
    mActiveField[i].SetTop(MINY + iRole.mIndexY * mVInterval[iRole.mIndexX]);
    //与中心的相互偏移
    if (iRole.mIndexX == 1) {
      mOffsetMatrix[0][i].SetX(-mHInterval[0]);
      mOffsetMatrix[i][0].SetX(mHInterval[0]);
    } else if (iRole.mIndexX == 2) {
      mOffsetMatrix[0][i].SetX(0);
      mOffsetMatrix[i][0].SetX(0);
    } else if (iRole.mIndexX == 3) {
      mOffsetMatrix[0][i].SetX(mHInterval[1]);
      mOffsetMatrix[i][0].SetX(-mHInterval[1]);
    }

    double iy = (iRole.mIndexY - mLineArrange[iRole.mIndexX] * 0.5) *
                mVInterval[iRole.mIndexX];
    mOffsetMatrix[0][i].SetY(iy);
    mOffsetMatrix[i][0].SetY(-iy);

    for (int j = 1; j < 11; j++) {
      if (j == mGoalieUnum || i == j)
        continue;
      jRole = mPlayerRole[j];
      if (jRole.mLineType == LT_Null)
        continue;
      //与其他队员的相互偏移
      if (iRole.mIndexX == 1) {
        if (jRole.mIndexX == 1) {
          mOffsetMatrix[i][j].SetX(0.0);
        } else if (jRole.mIndexX == 2) {
          mOffsetMatrix[i][j].SetX(mHInterval[0]);
        } else if (jRole.mIndexX == 3) {
          mOffsetMatrix[i][j].SetX(mHInterval[0] + mHInterval[1]);
        }
      } else if (iRole.mIndexX == 2) {
        if (jRole.mIndexX == 1) {
          mOffsetMatrix[i][j].SetX(-mHInterval[0]);
        } else if (jRole.mIndexX == 2) {
          mOffsetMatrix[i][j].SetX(0);
        } else if (jRole.mIndexX == 3) {
          mOffsetMatrix[i][j].SetX(mHInterval[1]);
        }
      } else if (iRole.mIndexX == 3) {
        if (jRole.mIndexX == 1) {
          mOffsetMatrix[i][j].SetX(-mHInterval[0] - mHInterval[1]);
        } else if (jRole.mIndexX == 2) {
          mOffsetMatrix[i][j].SetX(-mHInterval[1]);
        } else if (jRole.mIndexX == 3) {
          mOffsetMatrix[i][j].SetX(0.0);
        }
      }
      double jy = (jRole.mIndexY - (mLineArrange[jRole.mIndexX] + 1) * 0.5) *
                  mVInterval[jRole.mIndexX];
      mOffsetMatrix[i][j].SetY(jy - iy);
    }
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x480, %rsp            # imm = 0x480
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x378(%rbp)
addq $0xce0, %rdi            # imm = 0xCE0
movq $0x0, -0x10(%rbp)
leaq -0x10(%rbp), %rsi
callq 0x403f0
movq %rax, %rcx
movb $0x1, %al
cmpl $0x0, (%rcx)
movb %al, -0x369(%rbp)
je 0x3c19d
movq -0x378(%rbp), %rdi
addq $0xce0, %rdi            # imm = 0xCE0
movq $0x1, -0x18(%rbp)
leaq -0x18(%rbp), %rsi
callq 0x403f0
cmpl $0x0, (%rax)
sete %al
movb %al, -0x369(%rbp)
movb -0x369(%rbp), %al
testb $0x1, %al
jne 0x3c1a9
jmp 0x3c1ae
jmp 0x3d4db
leaq -0x28(%rbp), %rdi
callq 0x40300
leaq -0x38(%rbp), %rdi
callq 0x40300
movq -0x378(%rbp), %rdi
movsd 0x85c39(%rip), %xmm0    # 0xc1e08
movsd %xmm0, -0x40(%rbp)
movsd 0x8636c(%rip), %xmm0    # 0xc2548
movsd %xmm0, -0x48(%rbp)
movsd 0x8634f(%rip), %xmm0    # 0xc2538
movsd %xmm0, -0x50(%rbp)
movsd 0x8634a(%rip), %xmm0    # 0xc2540
movsd %xmm0, -0x58(%rbp)
addq $0x10, %rdi
movq $0x0, -0x60(%rbp)
leaq -0x60(%rbp), %rsi
callq 0x402c0
movq -0x378(%rbp), %rdi
movsd (%rax), %xmm0
movsd %xmm0, -0x3a8(%rbp)
addq $0x10, %rdi
movq $0x1, -0x68(%rbp)
leaq -0x68(%rbp), %rsi
callq 0x402c0
movsd -0x3a8(%rbp), %xmm0
addsd (%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x84dbd(%rip), %xmm1    # 0xc1020
mulsd %xmm1, %xmm0
movsd 0x85b99(%rip), %xmm1    # 0xc1e08
addsd %xmm1, %xmm0
movsd %xmm0, -0x3a0(%rbp)
callq 0x855e0
movsd -0x3a0(%rbp), %xmm0
movq -0x378(%rbp), %rsi
leaq 0x87da2(%rip), %rax     # 0xc4038
divsd (%rax), %xmm0
movsd 0x8520e(%rip), %xmm1    # 0xc14b0
mulsd %xmm1, %xmm0
movsd %xmm0, 0x50(%rsi)
xorps %xmm0, %xmm0
movsd %xmm0, -0x70(%rbp)
addq $0x50, %rsi
leaq -0x70(%rbp), %rdi
callq 0x12a90
movq -0x378(%rbp), %rdi
movsd (%rax), %xmm0
movsd %xmm0, 0x50(%rdi)
addq $0x20, %rdi
movq $0x1, -0x88(%rbp)
leaq -0x88(%rbp), %rsi
callq 0x402e0
movq -0x378(%rbp), %rdi
movsd (%rax), %xmm0
movsd %xmm0, -0x398(%rbp)
addq $0x40, %rdi
movq $0x1, -0x90(%rbp)
leaq -0x90(%rbp), %rsi
callq 0x40280
movsd -0x398(%rbp), %xmm0
movq -0x378(%rbp), %rdi
movl (%rax), %eax
subl $0x1, %eax
cvtsi2sd %eax, %xmm1
mulsd %xmm1, %xmm0
movsd %xmm0, -0x80(%rbp)
addq $0x20, %rdi
movq $0x2, -0xa0(%rbp)
leaq -0xa0(%rbp), %rsi
callq 0x402e0
movq -0x378(%rbp), %rdi
movsd (%rax), %xmm0
movsd %xmm0, -0x390(%rbp)
addq $0x40, %rdi
movq $0x2, -0xa8(%rbp)
leaq -0xa8(%rbp), %rsi
callq 0x40280
movsd -0x390(%rbp), %xmm0
movl (%rax), %eax
subl $0x1, %eax
cvtsi2sd %eax, %xmm1
mulsd %xmm1, %xmm0
movsd %xmm0, -0x98(%rbp)
leaq -0x80(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x12a90
movq -0x378(%rbp), %rdi
movsd (%rax), %xmm0
movsd %xmm0, -0x78(%rbp)
addq $0x20, %rdi
movq $0x3, -0xb8(%rbp)
leaq -0xb8(%rbp), %rsi
callq 0x402e0
movq -0x378(%rbp), %rdi
movsd (%rax), %xmm0
movsd %xmm0, -0x388(%rbp)
addq $0x40, %rdi
movq $0x3, -0xc0(%rbp)
leaq -0xc0(%rbp), %rsi
callq 0x40280
movsd -0x388(%rbp), %xmm0
movl (%rax), %eax
subl $0x1, %eax
cvtsi2sd %eax, %xmm1
mulsd %xmm1, %xmm0
movsd %xmm0, -0xb0(%rbp)
leaq -0x78(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x12a90
movsd (%rax), %xmm0
movsd %xmm0, -0x78(%rbp)
movsd -0x78(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x84bbd(%rip), %xmm1    # 0xc1020
mulsd %xmm1, %xmm0
movsd 0x860c9(%rip), %xmm1    # 0xc2538
addsd %xmm1, %xmm0
movsd %xmm0, -0x380(%rbp)
callq 0x855e0
movsd -0x380(%rbp), %xmm0
movq -0x378(%rbp), %rsi
leaq 0x87baa(%rip), %rax     # 0xc4040
divsd (%rax), %xmm0
movsd 0x8500e(%rip), %xmm1    # 0xc14b0
mulsd %xmm1, %xmm0
movsd %xmm0, 0x58(%rsi)
xorps %xmm0, %xmm0
movsd %xmm0, -0xc8(%rbp)
addq $0x58, %rsi
leaq -0xc8(%rbp), %rdi
callq 0x12a90
movq %rax, %rcx
movq -0x378(%rbp), %rax
movsd (%rcx), %xmm0
movsd %xmm0, 0x58(%rax)
movl $0x1, -0xcc(%rbp)
cmpl $0xb, -0xcc(%rbp)
jg 0x3d4db
movq -0x378(%rbp), %rcx
movl -0xcc(%rbp), %eax
cmpl 0xce8(%rcx), %eax
jne 0x3c50a
jmp 0x3d4c7
movq -0x378(%rbp), %rdi
addq $0x60, %rdi
leaq -0xcc(%rbp), %rsi
callq 0x40240
movq (%rax), %rcx
movq %rcx, -0x28(%rbp)
movq 0x8(%rax), %rax
movq %rax, -0x20(%rbp)
cmpl $-0x1, -0x20(%rbp)
jne 0x3c53b
jmp 0x3d4c7
cmpl $0x1, -0x28(%rbp)
jne 0x3c610
movq -0x378(%rbp), %rdi
addq $0x110, %rdi            # imm = 0x110
leaq -0xcc(%rbp), %rsi
callq 0x3fb70
movq %rax, %rdi
leaq -0x48(%rbp), %rsi
callq 0x40330
movq -0x378(%rbp), %rdi
addq $0x110, %rdi            # imm = 0x110
leaq -0xcc(%rbp), %rsi
callq 0x3fb70
movq -0x378(%rbp), %rdi
movq %rax, -0x3b0(%rbp)
addq $0x10, %rdi
movq $0x1, -0xe0(%rbp)
leaq -0xe0(%rbp), %rsi
callq 0x402c0
movq -0x378(%rbp), %rdi
movsd 0x8584b(%rip), %xmm0    # 0xc1e08
subsd (%rax), %xmm0
movsd %xmm0, -0x3b8(%rbp)
addq $0x10, %rdi
movq $0x0, -0xe8(%rbp)
leaq -0xe8(%rbp), %rsi
callq 0x402c0
movsd -0x3b8(%rbp), %xmm0
movq -0x3b0(%rbp), %rdi
subsd (%rax), %xmm0
movsd %xmm0, -0xd8(%rbp)
leaq -0xd8(%rbp), %rsi
callq 0x218a0
jmp 0x3c7c7
cmpl $0x2, -0x28(%rbp)
jne 0x3c6f3
movq -0x378(%rbp), %rdi
addq $0x110, %rdi            # imm = 0x110
leaq -0xcc(%rbp), %rsi
callq 0x3fb70
movq -0x378(%rbp), %rdi
movq %rax, -0x3c8(%rbp)
addq $0x10, %rdi
movq $0x0, -0xf8(%rbp)
leaq -0xf8(%rbp), %rsi
callq 0x402c0
movq -0x3c8(%rbp), %rdi
movsd 0x85edc(%rip), %xmm0    # 0xc2548
addsd (%rax), %xmm0
movsd %xmm0, -0xf0(%rbp)
leaq -0xf0(%rbp), %rsi
callq 0x40330
movq -0x378(%rbp), %rdi
addq $0x110, %rdi            # imm = 0x110
leaq -0xcc(%rbp), %rsi
callq 0x3fb70
movq -0x378(%rbp), %rdi
movq %rax, -0x3c0(%rbp)
addq $0x10, %rdi
movq $0x1, -0x108(%rbp)
leaq -0x108(%rbp), %rsi
callq 0x402c0
movq -0x3c0(%rbp), %rdi
movsd 0x85732(%rip), %xmm0    # 0xc1e08
subsd (%rax), %xmm0
movsd %xmm0, -0x100(%rbp)
leaq -0x100(%rbp), %rsi
callq 0x218a0
jmp 0x3c7c5
cmpl $0x3, -0x28(%rbp)
jne 0x3c7c3
movq -0x378(%rbp), %rdi
addq $0x110, %rdi            # imm = 0x110
leaq -0xcc(%rbp), %rsi
callq 0x3fb70
movq -0x378(%rbp), %rdi
movq %rax, -0x3d0(%rbp)
addq $0x10, %rdi
movq $0x0, -0x118(%rbp)
leaq -0x118(%rbp), %rsi
callq 0x402c0
movq -0x378(%rbp), %rdi
movsd 0x85df9(%rip), %xmm0    # 0xc2548
addsd (%rax), %xmm0
movsd %xmm0, -0x3d8(%rbp)
addq $0x10, %rdi
movq $0x1, -0x120(%rbp)
leaq -0x120(%rbp), %rsi
callq 0x402c0
movsd -0x3d8(%rbp), %xmm0
movq -0x3d0(%rbp), %rdi
addsd (%rax), %xmm0
movsd %xmm0, -0x110(%rbp)
leaq -0x110(%rbp), %rsi
callq 0x40330
movq -0x378(%rbp), %rdi
addq $0x110, %rdi            # imm = 0x110
leaq -0xcc(%rbp), %rsi
callq 0x3fb70
movq %rax, %rdi
leaq -0x40(%rbp), %rsi
callq 0x218a0
jmp 0x3c7c5
jmp 0x3c7c7
movq -0x378(%rbp), %rdi
addq $0x110, %rdi            # imm = 0x110
leaq -0xcc(%rbp), %rsi
callq 0x3fb70
movq -0x378(%rbp), %rdi
movq %rax, -0x3f0(%rbp)
addq $0x40, %rdi
movslq -0x28(%rbp), %rax
movq %rax, -0x130(%rbp)
leaq -0x130(%rbp), %rsi
callq 0x40280
movq -0x378(%rbp), %rdi
movl (%rax), %eax
subl -0x24(%rbp), %eax
cvtsi2sd %eax, %xmm0
movsd %xmm0, -0x3f8(%rbp)
addq $0x20, %rdi
movslq -0x28(%rbp), %rax
movq %rax, -0x138(%rbp)
leaq -0x138(%rbp), %rsi
callq 0x402e0
movsd -0x3f8(%rbp), %xmm0
movq -0x3f0(%rbp), %rdi
movsd (%rax), %xmm1
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm1, %xmm0
movsd 0x85cc5(%rip), %xmm1    # 0xc2538
addsd %xmm1, %xmm0
movsd %xmm0, -0x128(%rbp)
leaq -0x128(%rbp), %rsi
callq 0x40370
movq -0x378(%rbp), %rdi
addq $0x110, %rdi            # imm = 0x110
leaq -0xcc(%rbp), %rsi
callq 0x3fb70
movq -0x378(%rbp), %rdi
movq %rax, -0x3e0(%rbp)
cvtsi2sdl -0x24(%rbp), %xmm0
movsd %xmm0, -0x3e8(%rbp)
addq $0x20, %rdi
movslq -0x28(%rbp), %rax
movq %rax, -0x148(%rbp)
leaq -0x148(%rbp), %rsi
callq 0x402e0
movsd -0x3e8(%rbp), %xmm0
movq -0x3e0(%rbp), %rdi
movsd (%rax), %xmm1
mulsd %xmm1, %xmm0
movsd 0x85c46(%rip), %xmm1    # 0xc2540
addsd %xmm1, %xmm0
movsd %xmm0, -0x140(%rbp)
leaq -0x140(%rbp), %rsi
callq 0x40350
cmpl $0x1, -0x28(%rbp)
jne 0x3ca3c
movq -0x378(%rbp), %rdi
addq $0x380, %rdi            # imm = 0x380
movq $0x0, -0x150(%rbp)
leaq -0x150(%rbp), %rsi
callq 0x3fb30
movq %rax, %rdi
movslq -0xcc(%rbp), %rax
movq %rax, -0x158(%rbp)
leaq -0x158(%rbp), %rsi
callq 0x3fb50
movq -0x378(%rbp), %rdi
movq %rax, -0x408(%rbp)
addq $0x10, %rdi
movq $0x0, -0x168(%rbp)
leaq -0x168(%rbp), %rsi
callq 0x402c0
movq -0x408(%rbp), %rdi
movsd (%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x160(%rbp)
leaq -0x160(%rbp), %rsi
callq 0x1ee90
movq -0x378(%rbp), %rdi
addq $0x380, %rdi            # imm = 0x380
movslq -0xcc(%rbp), %rax
movq %rax, -0x170(%rbp)
leaq -0x170(%rbp), %rsi
callq 0x3fb30
movq %rax, %rdi
movq $0x0, -0x178(%rbp)
leaq -0x178(%rbp), %rsi
callq 0x3fb50
movq -0x378(%rbp), %rdi
movq %rax, -0x400(%rbp)
addq $0x10, %rdi
movq $0x0, -0x180(%rbp)
leaq -0x180(%rbp), %rsi
callq 0x402c0
movq -0x400(%rbp), %rdi
movq %rax, %rsi
callq 0x1ee90
jmp 0x3cc2c
cmpl $0x2, -0x28(%rbp)
jne 0x3cb03
movq -0x378(%rbp), %rdi
addq $0x380, %rdi            # imm = 0x380
movq $0x0, -0x188(%rbp)
leaq -0x188(%rbp), %rsi
callq 0x3fb30
movq %rax, %rdi
movslq -0xcc(%rbp), %rax
movq %rax, -0x190(%rbp)
leaq -0x190(%rbp), %rsi
callq 0x3fb50
movq %rax, %rdi
xorps %xmm0, %xmm0
movsd %xmm0, -0x198(%rbp)
leaq -0x198(%rbp), %rsi
callq 0x1ee90
movq -0x378(%rbp), %rdi
addq $0x380, %rdi            # imm = 0x380
movslq -0xcc(%rbp), %rax
movq %rax, -0x1a0(%rbp)
leaq -0x1a0(%rbp), %rsi
callq 0x3fb30
movq %rax, %rdi
movq $0x0, -0x1a8(%rbp)
leaq -0x1a8(%rbp), %rsi
callq 0x3fb50
movq %rax, %rdi
xorps %xmm0, %xmm0
movsd %xmm0, -0x1b0(%rbp)
leaq -0x1b0(%rbp), %rsi
callq 0x1ee90
jmp 0x3cc2a
cmpl $0x3, -0x28(%rbp)
jne 0x3cc28
movq -0x378(%rbp), %rdi
addq $0x380, %rdi            # imm = 0x380
movq $0x0, -0x1b8(%rbp)
leaq -0x1b8(%rbp), %rsi
callq 0x3fb30
movq %rax, %rdi
movslq -0xcc(%rbp), %rax
movq %rax, -0x1c0(%rbp)
leaq -0x1c0(%rbp), %rsi
callq 0x3fb50
movq -0x378(%rbp), %rdi
movq %rax, -0x418(%rbp)
addq $0x10, %rdi
movq $0x1, -0x1c8(%rbp)
leaq -0x1c8(%rbp), %rsi
callq 0x402c0
movq -0x418(%rbp), %rdi
movq %rax, %rsi
callq 0x1ee90
movq -0x378(%rbp), %rdi
addq $0x380, %rdi            # imm = 0x380
movslq -0xcc(%rbp), %rax
movq %rax, -0x1d0(%rbp)
leaq -0x1d0(%rbp), %rsi
callq 0x3fb30
movq %rax, %rdi
movq $0x0, -0x1d8(%rbp)
leaq -0x1d8(%rbp), %rsi
callq 0x3fb50
movq -0x378(%rbp), %rdi
movq %rax, -0x410(%rbp)
addq $0x10, %rdi
movq $0x1, -0x1e8(%rbp)
leaq -0x1e8(%rbp), %rsi
callq 0x402c0
movq -0x410(%rbp), %rdi
movsd (%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x1e0(%rbp)
leaq -0x1e0(%rbp), %rsi
callq 0x1ee90
jmp 0x3cc2a
jmp 0x3cc2c
movq -0x378(%rbp), %rdi
cvtsi2sdl -0x24(%rbp), %xmm0
movsd %xmm0, -0x428(%rbp)
addq $0x40, %rdi
movslq -0x28(%rbp), %rax
movq %rax, -0x1f8(%rbp)
leaq -0x1f8(%rbp), %rsi
callq 0x40280
movsd -0x428(%rbp), %xmm1
movq -0x378(%rbp), %rdi
cvtsi2sdl (%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x84393(%rip), %xmm2    # 0xc1020
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x420(%rbp)
addq $0x20, %rdi
movslq -0x28(%rbp), %rax
movq %rax, -0x200(%rbp)
leaq -0x200(%rbp), %rsi
callq 0x402e0
movsd -0x420(%rbp), %xmm0
movq -0x378(%rbp), %rdi
mulsd (%rax), %xmm0
movsd %xmm0, -0x1f0(%rbp)
addq $0x380, %rdi            # imm = 0x380
movq $0x0, -0x208(%rbp)
leaq -0x208(%rbp), %rsi
callq 0x3fb30
movq %rax, %rdi
movslq -0xcc(%rbp), %rax
movq %rax, -0x210(%rbp)
leaq -0x210(%rbp), %rsi
callq 0x3fb50
movq %rax, %rdi
leaq -0x1f0(%rbp), %rsi
callq 0x26210
movq -0x378(%rbp), %rdi
addq $0x380, %rdi            # imm = 0x380
movslq -0xcc(%rbp), %rax
movq %rax, -0x218(%rbp)
leaq -0x218(%rbp), %rsi
callq 0x3fb30
movq %rax, %rdi
movq $0x0, -0x220(%rbp)
leaq -0x220(%rbp), %rsi
callq 0x3fb50
movq %rax, %rdi
movsd -0x1f0(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x228(%rbp)
leaq -0x228(%rbp), %rsi
callq 0x26210
movl $0x1, -0x22c(%rbp)
cmpl $0xb, -0x22c(%rbp)
jge 0x3d4c5
movq -0x378(%rbp), %rcx
movl -0x22c(%rbp), %eax
cmpl 0xce8(%rcx), %eax
je 0x3cdcf
movl -0xcc(%rbp), %eax
cmpl -0x22c(%rbp), %eax
jne 0x3cdd4
jmp 0x3d4b1
movq -0x378(%rbp), %rdi
addq $0x60, %rdi
leaq -0x22c(%rbp), %rsi
callq 0x40240
movq (%rax), %rcx
movq %rcx, -0x38(%rbp)
movq 0x8(%rax), %rax
movq %rax, -0x30(%rbp)
cmpl $-0x1, -0x30(%rbp)
jne 0x3ce05
jmp 0x3d4b1
cmpl $0x1, -0x28(%rbp)
jne 0x3cfdb
cmpl $0x1, -0x38(%rbp)
jne 0x3ce79
movq -0x378(%rbp), %rdi
addq $0x380, %rdi            # imm = 0x380
movslq -0xcc(%rbp), %rax
movq %rax, -0x238(%rbp)
leaq -0x238(%rbp), %rsi
callq 0x3fb30
movq %rax, %rdi
movslq -0x22c(%rbp), %rax
movq %rax, -0x240(%rbp)
leaq -0x240(%rbp), %rsi
callq 0x3fb50
movq %rax, %rdi
xorps %xmm0, %xmm0
movsd %xmm0, -0x248(%rbp)
leaq -0x248(%rbp), %rsi
callq 0x1ee90
jmp 0x3cfd6
cmpl $0x2, -0x38(%rbp)
jne 0x3cf05
movq -0x378(%rbp), %rdi
addq $0x380, %rdi            # imm = 0x380
movslq -0xcc(%rbp), %rax
movq %rax, -0x250(%rbp)
leaq -0x250(%rbp), %rsi
callq 0x3fb30
movq %rax, %rdi
movslq -0x22c(%rbp), %rax
movq %rax, -0x258(%rbp)
leaq -0x258(%rbp), %rsi
callq 0x3fb50
movq -0x378(%rbp), %rdi
movq %rax, -0x430(%rbp)
addq $0x10, %rdi
movq $0x0, -0x260(%rbp)
leaq -0x260(%rbp), %rsi
callq 0x402c0
movq -0x430(%rbp), %rdi
movq %rax, %rsi
callq 0x1ee90
jmp 0x3cfd4
cmpl $0x3, -0x38(%rbp)
jne 0x3cfd2
movq -0x378(%rbp), %rdi
addq $0x380, %rdi            # imm = 0x380
movslq -0xcc(%rbp), %rax
movq %rax, -0x268(%rbp)
leaq -0x268(%rbp), %rsi
callq 0x3fb30
movq %rax, %rdi
movslq -0x22c(%rbp), %rax
movq %rax, -0x270(%rbp)
leaq -0x270(%rbp), %rsi
callq 0x3fb50
movq -0x378(%rbp), %rdi
movq %rax, -0x438(%rbp)
addq $0x10, %rdi
movq $0x0, -0x280(%rbp)
leaq -0x280(%rbp), %rsi
callq 0x402c0
movq -0x378(%rbp), %rdi
movsd (%rax), %xmm0
movsd %xmm0, -0x440(%rbp)
addq $0x10, %rdi
movq $0x1, -0x288(%rbp)
leaq -0x288(%rbp), %rsi
callq 0x402c0
movsd -0x440(%rbp), %xmm0
movq -0x438(%rbp), %rdi
addsd (%rax), %xmm0
movsd %xmm0, -0x278(%rbp)
leaq -0x278(%rbp), %rsi
callq 0x1ee90
jmp 0x3cfd4
jmp 0x3cfd6
jmp 0x3d3a0
cmpl $0x2, -0x28(%rbp)
jne 0x3d18e
cmpl $0x1, -0x38(%rbp)
jne 0x3d098
movq -0x378(%rbp), %rdi
addq $0x380, %rdi            # imm = 0x380
movslq -0xcc(%rbp), %rax
movq %rax, -0x290(%rbp)
leaq -0x290(%rbp), %rsi
callq 0x3fb30
movq %rax, %rdi
movslq -0x22c(%rbp), %rax
movq %rax, -0x298(%rbp)
leaq -0x298(%rbp), %rsi
callq 0x3fb50
movq -0x378(%rbp), %rdi
movq %rax, -0x448(%rbp)
addq $0x10, %rdi
movq $0x0, -0x2a8(%rbp)
leaq -0x2a8(%rbp), %rsi
callq 0x402c0
movq -0x448(%rbp), %rdi
movsd (%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x2a0(%rbp)
leaq -0x2a0(%rbp), %rsi
callq 0x1ee90
jmp 0x3d189
cmpl $0x2, -0x38(%rbp)
jne 0x3d102
movq -0x378(%rbp), %rdi
addq $0x380, %rdi            # imm = 0x380
movslq -0xcc(%rbp), %rax
movq %rax, -0x2b0(%rbp)
leaq -0x2b0(%rbp), %rsi
callq 0x3fb30
movq %rax, %rdi
movslq -0x22c(%rbp), %rax
movq %rax, -0x2b8(%rbp)
leaq -0x2b8(%rbp), %rsi
callq 0x3fb50
movq %rax, %rdi
xorps %xmm0, %xmm0
movsd %xmm0, -0x2c0(%rbp)
leaq -0x2c0(%rbp), %rsi
callq 0x1ee90
jmp 0x3d187
cmpl $0x3, -0x38(%rbp)
jne 0x3d185
movq -0x378(%rbp), %rdi
addq $0x380, %rdi            # imm = 0x380
movslq -0xcc(%rbp), %rax
movq %rax, -0x2c8(%rbp)
leaq -0x2c8(%rbp), %rsi
callq 0x3fb30
movq %rax, %rdi
movslq -0x22c(%rbp), %rax
movq %rax, -0x2d0(%rbp)
leaq -0x2d0(%rbp), %rsi
callq 0x3fb50
movq -0x378(%rbp), %rdi
movq %rax, -0x450(%rbp)
addq $0x10, %rdi
movq $0x1, -0x2d8(%rbp)
leaq -0x2d8(%rbp), %rsi
callq 0x402c0
movq -0x450(%rbp), %rdi
movq %rax, %rsi
callq 0x1ee90
jmp 0x3d187
jmp 0x3d189
jmp 0x3d39e
cmpl $0x3, -0x28(%rbp)
jne 0x3d39c
cmpl $0x1, -0x38(%rbp)
jne 0x3d281
movq -0x378(%rbp), %rdi
addq $0x380, %rdi            # imm = 0x380
movslq -0xcc(%rbp), %rax
movq %rax, -0x2e0(%rbp)
leaq -0x2e0(%rbp), %rsi
callq 0x3fb30
movq %rax, %rdi
movslq -0x22c(%rbp), %rax
movq %rax, -0x2e8(%rbp)
leaq -0x2e8(%rbp), %rsi
callq 0x3fb50
movq -0x378(%rbp), %rdi
movq %rax, -0x458(%rbp)
addq $0x10, %rdi
movq $0x0, -0x2f8(%rbp)
leaq -0x2f8(%rbp), %rsi
callq 0x402c0
movq -0x378(%rbp), %rdi
movsd (%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x460(%rbp)
addq $0x10, %rdi
movq $0x1, -0x300(%rbp)
leaq -0x300(%rbp), %rsi
callq 0x402c0
movsd -0x460(%rbp), %xmm0
movq -0x458(%rbp), %rdi
subsd (%rax), %xmm0
movsd %xmm0, -0x2f0(%rbp)
leaq -0x2f0(%rbp), %rsi
callq 0x1ee90
jmp 0x3d39a
cmpl $0x2, -0x38(%rbp)
jne 0x3d331
movq -0x378(%rbp), %rdi
addq $0x380, %rdi            # imm = 0x380
movslq -0xcc(%rbp), %rax
movq %rax, -0x308(%rbp)
leaq -0x308(%rbp), %rsi
callq 0x3fb30
movq %rax, %rdi
movslq -0x22c(%rbp), %rax
movq %rax, -0x310(%rbp)
leaq -0x310(%rbp), %rsi
callq 0x3fb50
movq -0x378(%rbp), %rdi
movq %rax, -0x468(%rbp)
addq $0x10, %rdi
movq $0x1, -0x320(%rbp)
leaq -0x320(%rbp), %rsi
callq 0x402c0
movq -0x468(%rbp), %rdi
movsd (%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x318(%rbp)
leaq -0x318(%rbp), %rsi
callq 0x1ee90
jmp 0x3d398
cmpl $0x3, -0x38(%rbp)
jne 0x3d396
movq -0x378(%rbp), %rdi
addq $0x380, %rdi            # imm = 0x380
movslq -0xcc(%rbp), %rax
movq %rax, -0x328(%rbp)
leaq -0x328(%rbp), %rsi
callq 0x3fb30
movq %rax, %rdi
movslq -0x22c(%rbp), %rax
movq %rax, -0x330(%rbp)
leaq -0x330(%rbp), %rsi
callq 0x3fb50
movq %rax, %rdi
xorps %xmm0, %xmm0
movsd %xmm0, -0x338(%rbp)
leaq -0x338(%rbp), %rsi
callq 0x1ee90
jmp 0x3d398
jmp 0x3d39a
jmp 0x3d39c
jmp 0x3d39e
jmp 0x3d3a0
movq -0x378(%rbp), %rdi
cvtsi2sdl -0x34(%rbp), %xmm0
movsd %xmm0, -0x478(%rbp)
addq $0x40, %rdi
movslq -0x38(%rbp), %rax
movq %rax, -0x348(%rbp)
leaq -0x348(%rbp), %rsi
callq 0x40280
movsd -0x478(%rbp), %xmm1
movq -0x378(%rbp), %rdi
movl (%rax), %eax
addl $0x1, %eax
cvtsi2sd %eax, %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x83c1a(%rip), %xmm2    # 0xc1020
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x470(%rbp)
addq $0x20, %rdi
movslq -0x38(%rbp), %rax
movq %rax, -0x350(%rbp)
leaq -0x350(%rbp), %rsi
callq 0x402e0
movsd -0x470(%rbp), %xmm0
movq -0x378(%rbp), %rdi
mulsd (%rax), %xmm0
movsd %xmm0, -0x340(%rbp)
addq $0x380, %rdi            # imm = 0x380
movslq -0xcc(%rbp), %rax
movq %rax, -0x358(%rbp)
leaq -0x358(%rbp), %rsi
callq 0x3fb30
movq %rax, %rdi
movslq -0x22c(%rbp), %rax
movq %rax, -0x360(%rbp)
leaq -0x360(%rbp), %rsi
callq 0x3fb50
movq %rax, %rdi
movsd -0x340(%rbp), %xmm0
subsd -0x1f0(%rbp), %xmm0
movsd %xmm0, -0x368(%rbp)
leaq -0x368(%rbp), %rsi
callq 0x26210
movl -0x22c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x22c(%rbp)
jmp 0x3cd9f
jmp 0x3d4c7
movl -0xcc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xcc(%rbp)
jmp 0x3c4e3
addq $0x480, %rsp            # imm = 0x480
popq %rbp
retq
nopw %cs:(%rax,%rax)