// File: wrighteagle2d[P]wrighteaglebase/Debug/../src/ServerParam.cpp
// Function: ServerParam::MaintainConsistency()
void ServerParam::MaintainConsistency() {
  M_kickable_area = M_player_size + M_kickable_margin + M_ball_size;
  M_control_radius_width = M_control_radius - M_player_size;

  M_max_catchable_area =
      Vector(M_catchable_area_l, 0.5 * M_catchable_area_w).Mod();
  M_one_minus_ball_decay = 1.0 - M_ball_decay;
  M_log_ball_decay = log(M_ball_decay);

  M_ball_decay_array[0] = 1.0;
  for (int i = 1; i < 100; ++i) {
    M_ball_decay_array[i] = M_ball_decay_array[i - 1] * M_ball_decay;
  }

  // set the field information
  M_left_line =
      Line(Vector(-PITCH_LENGTH / 2.0, 0.0), Vector(-PITCH_LENGTH / 2.0, 1.0));
  M_right_line =
      Line(Vector(PITCH_LENGTH / 2.0, 0.0), Vector(PITCH_LENGTH / 2.0, 1.0));
  M_top_line =
      Line(Vector(0.0, -PITCH_WIDTH / 2.0), Vector(1.0, -PITCH_WIDTH / 2.0));
  M_bottom_line =
      Line(Vector(0.0, PITCH_WIDTH / 2.0), Vector(1.0, PITCH_WIDTH / 2.0));

  M_pitch_rectanglar = Rectangular(-PITCH_LENGTH / 2.0, PITCH_LENGTH / 2.0,
                                   -PITCH_WIDTH / 2.0, PITCH_WIDTH / 2.0);
  M_active_rectanglar =
      Rectangular(-PITCH_LENGTH / 2.0 + 1.0, PITCH_LENGTH / 2.0 - 1.0,
                  -PITCH_WIDTH / 2.0 + 1.0, PITCH_WIDTH / 2.0 - 1.0);
  M_our_penalty_area = Rectangular(
      -PITCH_LENGTH / 2.0, -PITCH_LENGTH / 2.0 + PENALTY_AREA_LENGTH,
      -PENALTY_AREA_WIDTH / 2.0, PENALTY_AREA_WIDTH / 2.0);
  M_opp_penalty_area =
      Rectangular(PITCH_LENGTH / 2.0 - PENALTY_AREA_LENGTH, PITCH_LENGTH / 2.0,
                  -PENALTY_AREA_WIDTH / 2.0, PENALTY_AREA_WIDTH / 2.0);
  M_our_goal_area =
      Rectangular(-PITCH_LENGTH / 2.0, -PITCH_LENGTH / 2.0 + GOAL_AREA_LENGTH,
                  -GOAL_AREA_WIDTH / 2.0, GOAL_AREA_WIDTH / 2.0);
  M_opp_goal_area =
      Rectangular(PITCH_LENGTH / 2.0 - GOAL_AREA_LENGTH, PITCH_LENGTH / 2.0,
                  -GOAL_AREA_WIDTH / 2.0, GOAL_AREA_WIDTH / 2.0);

  M_our_left_goal_kick_point = M_our_goal_area.TopRightCorner();
  M_our_right_goal_kick_point = M_our_goal_area.BottomRightCorner();
  M_opp_left_goal_kick_point = M_opp_goal_area.TopLeftCorner();
  M_opp_right_goal_kick_point = M_opp_goal_area.BottomLeftCorner();

  M_our_left_goal_post.SetValue(-PITCH_LENGTH / 2.0, -M_goal_width / 2.0);
  M_our_right_goal_post.SetValue(-PITCH_LENGTH / 2.0, M_goal_width / 2.0);
  M_opp_left_goal_post.SetValue(PITCH_LENGTH / 2.0, -M_goal_width / 2.0);
  M_opp_right_goal_post.SetValue(PITCH_LENGTH / 2.0, M_goal_width / 2.0);

  M_pitch_top_left_point = M_pitch_rectanglar.TopLeftCorner();
  M_pitch_bottom_left_point = M_pitch_rectanglar.BottomLeftCorner();
  M_pitch_top_right_point = M_pitch_rectanglar.TopRightCorner();
  M_pitch_bottom_right_point = M_pitch_rectanglar.BottomRightCorner();

  M_our_goal = Vector(-PITCH_LENGTH / 2.0, 0.0);
  M_opp_goal = Vector(PITCH_LENGTH / 2.0, 0.0);

  M_ball_run_dist_with_max_speed = M_ball_speed_max / M_one_minus_ball_decay;
  M_max_tackle_dist =
      Sqrt(M_tackle_dist * M_tackle_dist + M_tackle_width * M_tackle_width);

  M_effort_dec_stamina = M_effort_dec_thr * M_stamina_max;
  M_effort_inc_stamina = M_effort_inc_thr * M_stamina_max;
  M_recover_dec_stamina = M_recover_dec_thr * M_stamina_max;

  M_half_time = M_half_time * 1000 / M_simulator_step;
  M_extra_half_time = M_extra_half_time * 1000 / M_simulator_step;

  M_max_tackle_area = 0.0;
  int exponent = Max(M_foul_exponent, M_tackle_exponent);

  for (double x = 0.0; x <= M_tackle_dist; x += 0.01) {
    for (double y = 0.0; y <= M_tackle_width; y += 0.01) {
      double prob = 1.0 - MinMax(0.0,
                                 pow(x / M_tackle_dist, exponent) +
                                     pow(y / M_tackle_width, exponent),
                                 1.0);

      if (prob > FLOAT_EPS) {
        M_max_tackle_area = Max(M_max_tackle_area, Sqrt(Sqr(x) + Sqr(y)));
      }
    }
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x4a0, %rsp            # imm = 0x4A0
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x478(%rbp)
movsd 0x3018(%rax), %xmm0
addsd 0x3118(%rax), %xmm0
addsd 0x30d8(%rax), %xmm0
movsd %xmm0, 0x31a8(%rax)
movsd 0x3120(%rax), %xmm0
subsd 0x3018(%rax), %xmm0
movsd %xmm0, 0x3128(%rax)
movq %rax, %rsi
addq $0x31b0, %rsi           # imm = 0x31B0
movsd 0x3b3fc(%rip), %xmm0    # 0xc1020
mulsd 0x31b8(%rax), %xmm0
movsd %xmm0, -0x20(%rbp)
leaq -0x18(%rbp), %rdi
leaq -0x20(%rbp), %rdx
callq 0x11a10
leaq -0x18(%rbp), %rdi
callq 0x104e0
movq -0x478(%rbp), %rax
movsd %xmm0, 0x3458(%rax)
movsd 0x3b3b2(%rip), %xmm0    # 0xc1010
subsd 0x30e0(%rax), %xmm0
movsd %xmm0, 0x3460(%rax)
movsd 0x30e0(%rax), %xmm0
callq 0xa490
movq -0x478(%rbp), %rdi
movsd %xmm0, 0x3468(%rdi)
addq $0x3470, %rdi           # imm = 0x3470
movq $0x0, -0x28(%rbp)
leaq -0x28(%rbp), %rsi
callq 0x24110
movsd 0x3b366(%rip), %xmm0    # 0xc1010
movsd %xmm0, (%rax)
movl $0x1, -0x2c(%rbp)
cmpl $0x64, -0x2c(%rbp)
jge 0x85d28
movq -0x478(%rbp), %rdi
addq $0x3470, %rdi           # imm = 0x3470
movl -0x2c(%rbp), %eax
subl $0x1, %eax
cltq
movq %rax, -0x38(%rbp)
leaq -0x38(%rbp), %rsi
callq 0x24110
movq -0x478(%rbp), %rdi
movsd (%rax), %xmm0
mulsd 0x30e0(%rdi), %xmm0
movsd %xmm0, -0x480(%rbp)
addq $0x3470, %rdi           # imm = 0x3470
movslq -0x2c(%rbp), %rax
movq %rax, -0x40(%rbp)
leaq -0x40(%rbp), %rsi
callq 0x24110
movsd -0x480(%rbp), %xmm0
movsd %xmm0, (%rax)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0x85cb5
movsd 0x3e1f0(%rip), %xmm0    # 0xc3f20
movsd %xmm0, -0x70(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x78(%rbp)
leaq -0x68(%rbp), %rdi
leaq -0x70(%rbp), %rsi
leaq -0x78(%rbp), %rdx
callq 0x11a10
movsd 0x3e1ca(%rip), %xmm0    # 0xc3f20
movsd %xmm0, -0x90(%rbp)
movsd 0x3b2aa(%rip), %xmm0    # 0xc1010
movsd %xmm0, -0x98(%rbp)
leaq -0x88(%rbp), %rdi
leaq -0x90(%rbp), %rsi
leaq -0x98(%rbp), %rdx
callq 0x11a10
leaq -0x58(%rbp), %rdi
leaq -0x68(%rbp), %rsi
leaq -0x88(%rbp), %rdx
callq 0x1efc0
movq -0x478(%rbp), %rax
movq -0x58(%rbp), %rcx
movq %rcx, 0x3790(%rax)
movq -0x50(%rbp), %rcx
movq %rcx, 0x3798(%rax)
movq -0x48(%rbp), %rcx
movq %rcx, 0x37a0(%rax)
movsd 0x3e14c(%rip), %xmm0    # 0xc3f18
movsd %xmm0, -0xc8(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0xd0(%rbp)
leaq -0xc0(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
leaq -0xd0(%rbp), %rdx
callq 0x11a10
movsd 0x3e117(%rip), %xmm0    # 0xc3f18
movsd %xmm0, -0xe8(%rbp)
movsd 0x3b1ff(%rip), %xmm0    # 0xc1010
movsd %xmm0, -0xf0(%rbp)
leaq -0xe0(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
leaq -0xf0(%rbp), %rdx
callq 0x11a10
leaq -0xb0(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
leaq -0xe0(%rbp), %rdx
callq 0x1efc0
movq -0x478(%rbp), %rax
movq -0xb0(%rbp), %rcx
movq %rcx, 0x37a8(%rax)
movq -0xa8(%rbp), %rcx
movq %rcx, 0x37b0(%rax)
movq -0xa0(%rbp), %rcx
movq %rcx, 0x37b8(%rax)
xorps %xmm0, %xmm0
movsd %xmm0, -0x120(%rbp)
movsd 0x3e0ef(%rip), %xmm0    # 0xc3f80
movsd %xmm0, -0x128(%rbp)
leaq -0x118(%rbp), %rdi
leaq -0x120(%rbp), %rsi
leaq -0x128(%rbp), %rdx
callq 0x11a10
movsd 0x3b155(%rip), %xmm0    # 0xc1010
movsd %xmm0, -0x140(%rbp)
movsd 0x3e0b5(%rip), %xmm0    # 0xc3f80
movsd %xmm0, -0x148(%rbp)
leaq -0x138(%rbp), %rdi
leaq -0x140(%rbp), %rsi
leaq -0x148(%rbp), %rdx
callq 0x11a10
leaq -0x108(%rbp), %rdi
leaq -0x118(%rbp), %rsi
leaq -0x138(%rbp), %rdx
callq 0x1efc0
movq -0x478(%rbp), %rax
movq -0x108(%rbp), %rcx
movq %rcx, 0x37c0(%rax)
movq -0x100(%rbp), %rcx
movq %rcx, 0x37c8(%rax)
movq -0xf8(%rbp), %rcx
movq %rcx, 0x37d0(%rax)
xorps %xmm0, %xmm0
movsd %xmm0, -0x178(%rbp)
movsd 0x3e02d(%rip), %xmm0    # 0xc3f78
movsd %xmm0, -0x180(%rbp)
leaq -0x170(%rbp), %rdi
leaq -0x178(%rbp), %rsi
leaq -0x180(%rbp), %rdx
callq 0x11a10
movsd 0x3b09b(%rip), %xmm0    # 0xc1010
movsd %xmm0, -0x198(%rbp)
movsd 0x3dff3(%rip), %xmm0    # 0xc3f78
movsd %xmm0, -0x1a0(%rbp)
leaq -0x190(%rbp), %rdi
leaq -0x198(%rbp), %rsi
leaq -0x1a0(%rbp), %rdx
callq 0x11a10
leaq -0x160(%rbp), %rdi
leaq -0x170(%rbp), %rsi
leaq -0x190(%rbp), %rdx
callq 0x1efc0
movq -0x478(%rbp), %rax
movq -0x160(%rbp), %rcx
movq %rcx, 0x37d8(%rax)
movq -0x158(%rbp), %rcx
movq %rcx, 0x37e0(%rax)
movq -0x150(%rbp), %rcx
movq %rcx, 0x37e8(%rax)
movsd 0x3df26(%rip), %xmm0    # 0xc3f20
movsd %xmm0, -0x1c8(%rbp)
movsd 0x3df0e(%rip), %xmm0    # 0xc3f18
movsd %xmm0, -0x1d0(%rbp)
movsd 0x3df66(%rip), %xmm0    # 0xc3f80
movsd %xmm0, -0x1d8(%rbp)
movsd 0x3df4e(%rip), %xmm0    # 0xc3f78
movsd %xmm0, -0x1e0(%rbp)
leaq -0x1c0(%rbp), %rdi
leaq -0x1c8(%rbp), %rsi
leaq -0x1d0(%rbp), %rdx
leaq -0x1d8(%rbp), %rcx
leaq -0x1e0(%rbp), %r8
callq 0x881a0
movq -0x478(%rbp), %rax
movq -0x1c0(%rbp), %rcx
movq %rcx, 0x37f0(%rax)
movq -0x1b8(%rbp), %rcx
movq %rcx, 0x37f8(%rax)
movq -0x1b0(%rbp), %rcx
movq %rcx, 0x3800(%rax)
movq -0x1a8(%rbp), %rcx
movq %rcx, 0x3808(%rax)
movsd 0x3decf(%rip), %xmm0    # 0xc3f70
movsd %xmm0, -0x208(%rbp)
movsd 0x3deb7(%rip), %xmm0    # 0xc3f68
movsd %xmm0, -0x210(%rbp)
movsd 0x3de9f(%rip), %xmm0    # 0xc3f60
movsd %xmm0, -0x218(%rbp)
movsd 0x3de87(%rip), %xmm0    # 0xc3f58
movsd %xmm0, -0x220(%rbp)
leaq -0x200(%rbp), %rdi
leaq -0x208(%rbp), %rsi
leaq -0x210(%rbp), %rdx
leaq -0x218(%rbp), %rcx
leaq -0x220(%rbp), %r8
callq 0x881a0
movq -0x478(%rbp), %rax
movq -0x200(%rbp), %rcx
movq %rcx, 0x3810(%rax)
movq -0x1f8(%rbp), %rcx
movq %rcx, 0x3818(%rax)
movq -0x1f0(%rbp), %rcx
movq %rcx, 0x3820(%rax)
movq -0x1e8(%rbp), %rcx
movq %rcx, 0x3828(%rax)
movsd 0x3ddd8(%rip), %xmm0    # 0xc3f20
movsd %xmm0, -0x248(%rbp)
movsd 0x3bb18(%rip), %xmm0    # 0xc1c70
movsd %xmm0, -0x250(%rbp)
movsd 0x3dde8(%rip), %xmm0    # 0xc3f50
movsd %xmm0, -0x258(%rbp)
movsd 0x3ddd0(%rip), %xmm0    # 0xc3f48
movsd %xmm0, -0x260(%rbp)
leaq -0x240(%rbp), %rdi
leaq -0x248(%rbp), %rsi
leaq -0x250(%rbp), %rdx
leaq -0x258(%rbp), %rcx
leaq -0x260(%rbp), %r8
callq 0x881a0
movq -0x478(%rbp), %rax
movq -0x240(%rbp), %rcx
movq %rcx, 0x3830(%rax)
movq -0x238(%rbp), %rcx
movq %rcx, 0x3838(%rax)
movq -0x230(%rbp), %rcx
movq %rcx, 0x3840(%rax)
movq -0x228(%rbp), %rcx
movq %rcx, 0x3848(%rax)
movsd 0x3ba79(%rip), %xmm0    # 0xc1c68
movsd %xmm0, -0x288(%rbp)
movsd 0x3dd19(%rip), %xmm0    # 0xc3f18
movsd %xmm0, -0x290(%rbp)
movsd 0x3dd41(%rip), %xmm0    # 0xc3f50
movsd %xmm0, -0x298(%rbp)
movsd 0x3dd29(%rip), %xmm0    # 0xc3f48
movsd %xmm0, -0x2a0(%rbp)
leaq -0x280(%rbp), %rdi
leaq -0x288(%rbp), %rsi
leaq -0x290(%rbp), %rdx
leaq -0x298(%rbp), %rcx
leaq -0x2a0(%rbp), %r8
callq 0x881a0
movq -0x478(%rbp), %rax
movq -0x280(%rbp), %rcx
movq %rcx, 0x3850(%rax)
movq -0x278(%rbp), %rcx
movq %rcx, 0x3858(%rax)
movq -0x270(%rbp), %rcx
movq %rcx, 0x3860(%rax)
movq -0x268(%rbp), %rcx
movq %rcx, 0x3868(%rax)
movsd 0x3dc8a(%rip), %xmm0    # 0xc3f20
movsd %xmm0, -0x2c8(%rbp)
movsd 0x3dc9a(%rip), %xmm0    # 0xc3f40
movsd %xmm0, -0x2d0(%rbp)
movsd 0x3dc7a(%rip), %xmm0    # 0xc3f30
movsd %xmm0, -0x2d8(%rbp)
movsd 0x3dc62(%rip), %xmm0    # 0xc3f28
movsd %xmm0, -0x2e0(%rbp)
leaq -0x2c0(%rbp), %rdi
leaq -0x2c8(%rbp), %rsi
leaq -0x2d0(%rbp), %rdx
leaq -0x2d8(%rbp), %rcx
leaq -0x2e0(%rbp), %r8
callq 0x881a0
movq -0x478(%rbp), %rax
movq -0x2c0(%rbp), %rcx
movq %rcx, 0x3870(%rax)
movq -0x2b8(%rbp), %rcx
movq %rcx, 0x3878(%rax)
movq -0x2b0(%rbp), %rcx
movq %rcx, 0x3880(%rax)
movq -0x2a8(%rbp), %rcx
movq %rcx, 0x3888(%rax)
movsd 0x3dbfb(%rip), %xmm0    # 0xc3f38
movsd %xmm0, -0x308(%rbp)
movsd 0x3dbcb(%rip), %xmm0    # 0xc3f18
movsd %xmm0, -0x310(%rbp)
movsd 0x3dbd3(%rip), %xmm0    # 0xc3f30
movsd %xmm0, -0x318(%rbp)
movsd 0x3dbbb(%rip), %xmm0    # 0xc3f28
movsd %xmm0, -0x320(%rbp)
leaq -0x300(%rbp), %rdi
leaq -0x308(%rbp), %rsi
leaq -0x310(%rbp), %rdx
leaq -0x318(%rbp), %rcx
leaq -0x320(%rbp), %r8
callq 0x881a0
movq -0x478(%rbp), %rdi
movq -0x300(%rbp), %rax
movq %rax, 0x3890(%rdi)
movq -0x2f8(%rbp), %rax
movq %rax, 0x3898(%rdi)
movq -0x2f0(%rbp), %rax
movq %rax, 0x38a0(%rdi)
movq -0x2e8(%rbp), %rax
movq %rax, 0x38a8(%rdi)
addq $0x3870, %rdi           # imm = 0x3870
callq 0x49380
movq -0x478(%rbp), %rdi
movsd %xmm0, -0x330(%rbp)
movsd %xmm1, -0x328(%rbp)
movq -0x330(%rbp), %rax
movq %rax, 0x38d0(%rdi)
movq -0x328(%rbp), %rax
movq %rax, 0x38d8(%rdi)
addq $0x3870, %rdi           # imm = 0x3870
callq 0x493f0
movq -0x478(%rbp), %rdi
movsd %xmm0, -0x340(%rbp)
movsd %xmm1, -0x338(%rbp)
movq -0x340(%rbp), %rax
movq %rax, 0x38e0(%rdi)
movq -0x338(%rbp), %rax
movq %rax, 0x38e8(%rdi)
addq $0x3890, %rdi           # imm = 0x3890
callq 0x49350
movq -0x478(%rbp), %rdi
movsd %xmm0, -0x350(%rbp)
movsd %xmm1, -0x348(%rbp)
movq -0x350(%rbp), %rax
movq %rax, 0x38f0(%rdi)
movq -0x348(%rbp), %rax
movq %rax, 0x38f8(%rdi)
addq $0x3890, %rdi           # imm = 0x3890
callq 0x493c0
movq -0x478(%rbp), %rax
movsd %xmm0, -0x360(%rbp)
movsd %xmm1, -0x358(%rbp)
movq -0x360(%rbp), %rcx
movq %rcx, 0x3900(%rax)
movq -0x358(%rbp), %rcx
movq %rcx, 0x3908(%rax)
movq %rax, %rdi
addq $0x3910, %rdi           # imm = 0x3910
movsd 0x3da36(%rip), %xmm0    # 0xc3f20
movsd %xmm0, -0x368(%rbp)
movsd 0x3008(%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x3af97(%rip), %xmm1    # 0xc14b0
divsd %xmm1, %xmm0
movsd %xmm0, -0x370(%rbp)
leaq -0x368(%rbp), %rsi
leaq -0x370(%rbp), %rdx
callq 0x11780
movq -0x478(%rbp), %rax
movq %rax, %rdi
addq $0x3920, %rdi           # imm = 0x3920
movsd 0x3d9cf(%rip), %xmm0    # 0xc3f20
movsd %xmm0, -0x378(%rbp)
movsd 0x3008(%rax), %xmm0
movsd 0x3af47(%rip), %xmm1    # 0xc14b0
divsd %xmm1, %xmm0
movsd %xmm0, -0x380(%rbp)
leaq -0x378(%rbp), %rsi
leaq -0x380(%rbp), %rdx
callq 0x11780
movq -0x478(%rbp), %rax
movq %rax, %rdi
addq $0x3930, %rdi           # imm = 0x3930
movsd 0x3d977(%rip), %xmm0    # 0xc3f18
movsd %xmm0, -0x388(%rbp)
movsd 0x3008(%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x3aee0(%rip), %xmm1    # 0xc14b0
divsd %xmm1, %xmm0
movsd %xmm0, -0x390(%rbp)
leaq -0x388(%rbp), %rsi
leaq -0x390(%rbp), %rdx
callq 0x11780
movq -0x478(%rbp), %rax
movq %rax, %rdi
addq $0x3940, %rdi           # imm = 0x3940
movsd 0x3d910(%rip), %xmm0    # 0xc3f18
movsd %xmm0, -0x398(%rbp)
movsd 0x3008(%rax), %xmm0
movsd 0x3ae90(%rip), %xmm1    # 0xc14b0
divsd %xmm1, %xmm0
movsd %xmm0, -0x3a0(%rbp)
leaq -0x398(%rbp), %rsi
leaq -0x3a0(%rbp), %rdx
callq 0x11780
movq -0x478(%rbp), %rdi
addq $0x37f0, %rdi           # imm = 0x37F0
callq 0x49350
movq -0x478(%rbp), %rdi
movsd %xmm0, -0x3b0(%rbp)
movsd %xmm1, -0x3a8(%rbp)
movq -0x3b0(%rbp), %rax
movq %rax, 0x3950(%rdi)
movq -0x3a8(%rbp), %rax
movq %rax, 0x3958(%rdi)
addq $0x37f0, %rdi           # imm = 0x37F0
callq 0x493c0
movq -0x478(%rbp), %rdi
movsd %xmm0, -0x3c0(%rbp)
movsd %xmm1, -0x3b8(%rbp)
movq -0x3c0(%rbp), %rax
movq %rax, 0x3960(%rdi)
movq -0x3b8(%rbp), %rax
movq %rax, 0x3968(%rdi)
addq $0x37f0, %rdi           # imm = 0x37F0
callq 0x49380
movq -0x478(%rbp), %rdi
movsd %xmm0, -0x3d0(%rbp)
movsd %xmm1, -0x3c8(%rbp)
movq -0x3d0(%rbp), %rax
movq %rax, 0x3970(%rdi)
movq -0x3c8(%rbp), %rax
movq %rax, 0x3978(%rdi)
addq $0x37f0, %rdi           # imm = 0x37F0
callq 0x493f0
movq -0x478(%rbp), %rax
movsd %xmm0, -0x3e0(%rbp)
movsd %xmm1, -0x3d8(%rbp)
movq -0x3e0(%rbp), %rcx
movq %rcx, 0x3980(%rax)
movq -0x3d8(%rbp), %rcx
movq %rcx, 0x3988(%rax)
movsd 0x3d7d6(%rip), %xmm0    # 0xc3f20
movsd %xmm0, -0x3f8(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x400(%rbp)
leaq -0x3f0(%rbp), %rdi
leaq -0x3f8(%rbp), %rsi
leaq -0x400(%rbp), %rdx
callq 0x11a10
movq -0x478(%rbp), %rax
movq -0x3f0(%rbp), %rcx
movq %rcx, 0x38b0(%rax)
movq -0x3e8(%rbp), %rcx
movq %rcx, 0x38b8(%rax)
movsd 0x3d776(%rip), %xmm0    # 0xc3f18
movsd %xmm0, -0x418(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x420(%rbp)
leaq -0x410(%rbp), %rdi
leaq -0x418(%rbp), %rsi
leaq -0x420(%rbp), %rdx
callq 0x11a10
movq -0x478(%rbp), %rax
movq -0x410(%rbp), %rcx
movq %rcx, 0x38c0(%rax)
movq -0x408(%rbp), %rcx
movq %rcx, 0x38c8(%rax)
movsd 0x30f8(%rax), %xmm0
divsd 0x3460(%rax), %xmm0
movsd %xmm0, 0x3448(%rax)
movsd 0x32f8(%rax), %xmm0
movsd 0x32f8(%rax), %xmm2
movsd 0x3310(%rax), %xmm1
mulsd 0x3310(%rax), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x428(%rbp)
leaq -0x428(%rbp), %rdi
callq 0x12420
movq -0x478(%rbp), %rsi
movsd %xmm0, 0x3450(%rsi)
movsd 0x3080(%rsi), %xmm0
mulsd 0x3048(%rsi), %xmm0
movsd %xmm0, 0x3430(%rsi)
movsd 0x3098(%rsi), %xmm0
mulsd 0x3048(%rsi), %xmm0
movsd %xmm0, 0x3440(%rsi)
movsd 0x3060(%rsi), %xmm0
mulsd 0x3048(%rsi), %xmm0
movsd %xmm0, 0x3438(%rsi)
imull $0x3e8, 0x3238(%rsi), %eax # imm = 0x3E8
cltd
idivl 0x3284(%rsi)
movl %eax, 0x3238(%rsi)
imull $0x3e8, 0x3388(%rsi), %eax # imm = 0x3E8
cltd
idivl 0x3284(%rsi)
movl %eax, 0x3388(%rsi)
xorps %xmm0, %xmm0
movsd %xmm0, 0x3300(%rsi)
movq %rsi, %rdi
addq $0x33e0, %rdi           # imm = 0x33E0
addq $0x3318, %rsi           # imm = 0x3318
callq 0x12a90
cvttsd2si (%rax), %eax
movl %eax, -0x42c(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x438(%rbp)
movq -0x478(%rbp), %rax
movsd -0x438(%rbp), %xmm1
movsd 0x32f8(%rax), %xmm0
ucomisd %xmm1, %xmm0
jb 0x86ade
xorps %xmm0, %xmm0
movsd %xmm0, -0x440(%rbp)
movq -0x478(%rbp), %rax
movsd -0x440(%rbp), %xmm1
movsd 0x3310(%rax), %xmm0
ucomisd %xmm1, %xmm0
jb 0x86abf
movq -0x478(%rbp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, -0x450(%rbp)
movsd -0x438(%rbp), %xmm0
divsd 0x32f8(%rax), %xmm0
cvtsi2sdl -0x42c(%rbp), %xmm1
callq 0xaa50
movq -0x478(%rbp), %rax
movsd %xmm0, -0x488(%rbp)
movsd -0x440(%rbp), %xmm0
divsd 0x3310(%rax), %xmm0
cvtsi2sdl -0x42c(%rbp), %xmm1
callq 0xaa50
movaps %xmm0, %xmm1
movsd -0x488(%rbp), %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x458(%rbp)
movsd 0x3a648(%rip), %xmm0    # 0xc1010
movsd %xmm0, -0x460(%rbp)
leaq -0x450(%rbp), %rdi
leaq -0x458(%rbp), %rsi
leaq -0x460(%rbp), %rdx
callq 0x12a20
movsd 0x3a61e(%rip), %xmm0    # 0xc1010
subsd (%rax), %xmm0
movsd %xmm0, -0x448(%rbp)
movsd -0x448(%rbp), %xmm0
movsd 0x3a5fa(%rip), %xmm1    # 0xc1008
ucomisd %xmm1, %xmm0
jbe 0x86aa0
movq -0x478(%rbp), %rax
addq $0x3300, %rax           # imm = 0x3300
movq %rax, -0x490(%rbp)
leaq -0x438(%rbp), %rdi
callq 0x88200
movsd %xmm0, -0x498(%rbp)
leaq -0x440(%rbp), %rdi
callq 0x88200
movaps %xmm0, %xmm1
movsd -0x498(%rbp), %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x470(%rbp)
leaq -0x470(%rbp), %rdi
callq 0x12420
movq -0x490(%rbp), %rdi
movsd %xmm0, -0x468(%rbp)
leaq -0x468(%rbp), %rsi
callq 0x12a90
movq %rax, %rcx
movq -0x478(%rbp), %rax
movsd (%rcx), %xmm0
movsd %xmm0, 0x3300(%rax)
jmp 0x86aa2
movsd 0x3ac26(%rip), %xmm0    # 0xc16d0
addsd -0x440(%rbp), %xmm0
movsd %xmm0, -0x440(%rbp)
jmp 0x8692d
jmp 0x86ac1
movsd 0x3ac07(%rip), %xmm0    # 0xc16d0
addsd -0x438(%rbp), %xmm0
movsd %xmm0, -0x438(%rbp)
jmp 0x86901
addq $0x4a0, %rsp            # imm = 0x4A0
popq %rbp
retq
nopw (%rax,%rax)