// File: /workspace/github_cpp_makefile_star2_O3/wrighteagle2d[P]wrighteaglebase/Debug/../src/WorldState.cpp
// Function: WorldStateUpdater::UpdateWorldState()
void WorldStateUpdater::UpdateWorldState() {
  /**更新场上的状态*/
  UpdateFieldInfo();

  if (PlayerParam::instance().isCoach() ||
      PlayerParam::instance().isTrainer() || mpObserver->mReceiveFullstateMsg) {
    if (mpObserver->mReceiveFullstateMsg) {
      SelfState().SetIsAlive(true);
      SelfState().UpdateIsSensed(true); // “真正”的自己
    }

    if (mpObserver->OurSide() == 'l') { // server发过来的信息坐标与自己一致
      Ball().UpdatePos(mpObserver->Ball_Fullstate().GetPos(), 0, 1.0);
      Ball().UpdateVel(mpObserver->Ball_Fullstate().GetVel(), 0, 1.0);

      for (Unum i = 1; i <= TEAMSIZE; i++) {
        Teammate(i).SetIsAlive(mpObserver->Teammate_Fullstate(i).IsAlive());
        Teammate(i).UpdatePlayerType(mpObserver->GetTeammateType(i));
        Teammate(i).UpdatePos(mpObserver->Teammate_Fullstate(i).GetPos(), 0,
                              1.0);
        Teammate(i).UpdateVel(mpObserver->Teammate_Fullstate(i).GetVel(), 0,
                              1.0);
        Teammate(i).UpdateBodyDir(
            mpObserver->Teammate_Fullstate(i).GetBodyDir(), 0, 1.0);
        Teammate(i).UpdateNeckDir(
            mpObserver->Teammate_Fullstate(i).GetNeckDir(), 0, 1.0);
        Teammate(i).UpdateCardType(
            mpObserver->Teammate_Fullstate(i).GetCardType());
        // TODO: arm, tackle lying等，暂时不用 -- TODO

        Opponent(i).SetIsAlive(mpObserver->Opponent_Fullstate(i).IsAlive());
        Opponent(i).UpdatePos(mpObserver->Opponent_Fullstate(i).GetPos(), 0,
                              1.0);
        Opponent(i).UpdateVel(mpObserver->Opponent_Fullstate(i).GetVel(), 0,
                              1.0);
        Opponent(i).UpdateBodyDir(
            mpObserver->Opponent_Fullstate(i).GetBodyDir(), 0, 1.0);
        Opponent(i).UpdateNeckDir(
            mpObserver->Opponent_Fullstate(i).GetNeckDir(), 0, 1.0);
        Opponent(i).UpdateCardType(
            mpObserver->Opponent_Fullstate(i).GetCardType());

        if (mpObserver->mReceiveFullstateMsg) {
          Teammate(i).UpdatePlayerType(
              mpObserver->Teammate_Fullstate(i).GetPlayerType());
          Teammate(i).UpdateStamina(
              mpObserver->Teammate_Fullstate(i).GetStamina());
          Teammate(i).UpdateEffort(
              mpObserver->Teammate_Fullstate(i).GetEffort());
          Teammate(i).UpdateRecovery(
              mpObserver->Teammate_Fullstate(i).GetRecovery());
          Teammate(i).UpdateCapacity(
              mpObserver->Teammate_Fullstate(i).GetCapacity());

          Opponent(i).UpdatePlayerType(
              mpObserver->Opponent_Fullstate(i).GetPlayerType());
          Opponent(i).UpdateStamina(
              mpObserver->Opponent_Fullstate(i).GetStamina());
          Opponent(i).UpdateEffort(
              mpObserver->Opponent_Fullstate(i).GetEffort());
          Opponent(i).UpdateRecovery(
              mpObserver->Opponent_Fullstate(i).GetRecovery());
          Opponent(i).UpdateCapacity(
              mpObserver->Opponent_Fullstate(i).GetCapacity());
        }
      }
    } else { // server发过来的信息坐标与自己相反，因为代码里总是假设自己在左边
      Ball().UpdatePos(mpObserver->Ball_Fullstate().GetPos() * -1.0, 0, 1.0);
      Ball().UpdateVel(mpObserver->Ball_Fullstate().GetVel() * -1.0, 0, 1.0);

      for (Unum i = 1; i <= TEAMSIZE; i++) {
        Teammate(i).SetIsAlive(mpObserver->Teammate_Fullstate(i).IsAlive());
        Teammate(i).UpdatePlayerType(mpObserver->GetTeammateType(i));
        Teammate(i).UpdatePos(mpObserver->Teammate_Fullstate(i).GetPos() * -1.0,
                              0, 1.0);
        Teammate(i).UpdateVel(mpObserver->Teammate_Fullstate(i).GetVel() * -1.0,
                              0, 1.0);
        Teammate(i).UpdateBodyDir(
            GetNormalizeAngleDeg(
                mpObserver->Teammate_Fullstate(i).GetBodyDir() + 180.0),
            0, 1.0);
        Teammate(i).UpdateNeckDir(
            GetNormalizeAngleDeg(
                mpObserver->Teammate_Fullstate(i).GetNeckDir() + 180.0),
            0, 1.0);
        Teammate(i).UpdateCardType(
            mpObserver->Teammate_Fullstate(i).GetCardType());
        // TODO: arm, tackle 等，暂时不用

        Opponent(i).SetIsAlive(mpObserver->Opponent_Fullstate(i).IsAlive());

        Opponent(i).UpdatePos(mpObserver->Opponent_Fullstate(i).GetPos() * -1.0,
                              0, 1.0);
        Opponent(i).UpdateVel(mpObserver->Opponent_Fullstate(i).GetVel() * -1.0,
                              0, 1.0);
        Opponent(i).UpdateBodyDir(
            GetNormalizeAngleDeg(
                mpObserver->Opponent_Fullstate(i).GetBodyDir() + 180.0),
            0, 1.0);
        Opponent(i).UpdateNeckDir(
            GetNormalizeAngleDeg(
                mpObserver->Opponent_Fullstate(i).GetNeckDir() + 180.0),
            0, 1.0);
        Opponent(i).UpdateCardType(
            mpObserver->Opponent_Fullstate(i).GetCardType());
      }
    }

    if (mpWorldState->GetTeammateGoalieUnum() > 0)
      Teammate(mpWorldState->GetTeammateGoalieUnum()).UpdateIsGoalie(true);
    if (mpWorldState->GetOpponentGoalieUnum() > 0)
      Opponent(mpWorldState->GetOpponentGoalieUnum()).UpdateIsGoalie(true);
    UpdateActionInfo();
  } else {
    // this procedure updates history state and there is a similar procedure in
    // UpdateFromAudio but updates current state.
    if (mpObserver->Ball_Fullstate().GetPosDelay() == 0) {
      WorldState &history = *mpWorldState->mpHistory->GetHistory(1);
      history.Ball().UpdatePos(mpObserver->Ball_Fullstate().GetPos(), 0, 1.0);
      history.Ball().UpdateGuessedTimes(0);
      history.Ball().UpdateVel(mpObserver->Ball_Fullstate().GetVel(), 0, 1.0);
      history.Ball().UpdatePosEps(0);
      history.Ball().UpdateVelEps(0);

      for (Unum i = 1; i <= TEAMSIZE; i++) {
        history.Teammate(i).SetIsAlive(
            mpObserver->Teammate_Fullstate(i).IsAlive());
        history.Teammate(i).UpdatePos(
            mpObserver->Teammate_Fullstate(i).GetPos(), 0, 1.0);
        history.Teammate(i).UpdateGuessedTimes(0);
        history.Teammate(i).UpdateVel(
            mpObserver->Teammate_Fullstate(i).GetVel(), 0, 1.0);
        history.Teammate(i).UpdatePosEps(0);
        history.Teammate(i).UpdateVelEps(0);
        history.Teammate(i).UpdateBodyDir(
            mpObserver->Teammate_Fullstate(i).GetBodyDir(), 0, 1.0);
        history.Teammate(i).UpdateNeckDir(
            mpObserver->Teammate_Fullstate(i).GetNeckDir(), 0, 1.0);
        if (i != mSelfUnum) {
          history.Teammate(i).UpdateStamina(
              mpObserver->Teammate_Fullstate(i).GetStamina());
          history.Teammate(i).UpdateCapacity(
              mpObserver->Teammate_Fullstate(i).GetCapacity());
        }

        history.Opponent(i).SetIsAlive(
            mpObserver->Opponent_Fullstate(i).IsAlive());
        history.Opponent(i).UpdatePlayerType(
            mpObserver->Opponent_Fullstate(i).GetPlayerType());
        history.Opponent(i).UpdatePos(
            mpObserver->Opponent_Fullstate(i).GetPos(), 0, 1.0);
        history.Opponent(i).UpdateGuessedTimes(0);
        history.Opponent(i).UpdateVel(
            mpObserver->Opponent_Fullstate(i).GetVel(), 0, 1.0);
        history.Opponent(i).UpdatePosEps(0);
        history.Opponent(i).UpdateVelEps(0);
        history.Opponent(i).UpdateBodyDir(
            mpObserver->Opponent_Fullstate(i).GetBodyDir());
        history.Opponent(i).UpdateNeckDir(
            mpObserver->Opponent_Fullstate(i).GetNeckDir());
        history.Opponent(i).UpdateStamina(
            mpObserver->Opponent_Fullstate(i).GetStamina());
        history.Opponent(i).UpdateCapacity(
            mpObserver->Opponent_Fullstate(i).GetCapacity());
      }
    }

    //更新所有的delay delay加上1 conf乘以1
    AutoDelay(1);

    //更新所有人的player_type和is_goalie
    for (int i = 1; i <= TEAMSIZE; i++) {
      Teammate(i).UpdatePlayerType(mpObserver->GetTeammateType(i));
      //			Opponent(i).UpdatePlayerType(mpObserver->GetOpponentType(i));
      //// 在UpdateFromAudio中更新,在此不更新

      Teammate(i).UpdateIsGoalie(false);
      Opponent(i).UpdateIsGoalie(false);
    }

    if (mpWorldState->GetTeammateGoalieUnum() > 0)
      Teammate(mpWorldState->GetTeammateGoalieUnum()).UpdateIsGoalie(true);
    if (mpWorldState->GetOpponentGoalieUnum() > 0)
      Opponent(mpWorldState->GetOpponentGoalieUnum()).UpdateIsGoalie(true);
    //	int id =	TimeTest::instance().Begin("before");
    //更新自己的听觉信息
    UpdateFromAudio();

    //预测一周期
    EstimateWorld();

    if (mpObserver->IsNewSight()) {
      UpdateSightDelay();
    }
    /*	TimeTest::instance().End(id);
            id = TimeTest::instance().Begin("test");
            TimeTest::instance().End(id);
            id = TimeTest::instance().Begin("middle");*/
    //更新自己的信息
    UpdateSelfInfo();

    if (mpObserver->IsNewSight()) {
      //更新所有可见的队员的信息
      UpdateKnownPlayers();

      //更新所有未知号码的球员
      UpdateUnknownPlayers();

      //更新球的信息
      UpdateBallInfo();

      EstimateToNow();
    }
    /*	TimeTest::instance().End(id);

            id = TimeTest::instance().Begin("end");*/
    /**处理碰撞*/
    UpdateInfoWhenCollided();

    //根据playmode更新确定的位置
    UpdateInfoFromPlayMode();

    //重新评估各球员的置信度 及置球员的生死
    EvaluateConf();

    //更新Action的信息
    UpdateActionInfo();

    MaintainPlayerStamina();

    MaintainConsistency();
    //	TimeTest::instance().End(id);
    //
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdi, %rbx
callq 0x5c588
callq 0x43dce
cmpb $0x1, 0x31a5(%rax)
jne 0x5a6d8
movq (%rbx), %rsi
jmp 0x5a6f3
callq 0x43dce
movq (%rbx), %rsi
cmpb $0x0, 0x31a6(%rax)
jne 0x5a6f3
cmpb $0x1, 0x8(%rsi)
jne 0x5b433
cmpb $0x1, 0x8(%rsi)
jne 0x5a715
movslq 0x14(%rbx), %rax
movq 0x8(%rbx), %rcx
imulq $0x178, %rax, %rax      # imm = 0x178
movb $0x1, %dl
movb %dl, 0x42(%rax,%rcx)
movb %dl, 0xa6(%rax,%rcx)
movq 0x8(%rbx), %rdi
addq $0x30, %rdi
cmpb $0x6c, 0x29(%rsi)
jne 0x5adf8
addq $0x3578, %rsi           # imm = 0x3578
movsd 0xe922(%rip), %xmm0     # 0x69058
xorl %edx, %edx
callq 0xf572
movq 0x8(%rbx), %rdi
addq $0x30, %rdi
movl $0x35a0, %esi           # imm = 0x35A0
addq (%rbx), %rsi
xorl %edx, %edx
movsd 0xe901(%rip), %xmm0     # 0x69058
callq 0xf53c
movq (%rbx), %rax
movq 0x8(%rbx), %rdi
movl $0x1, %r15d
movl $0xa8, %r12d
leaq -0x1(%r15), %rcx
imulq $0x178, %rcx, %r13      # imm = 0x178
movb 0x36fa(%rax,%r13), %cl
movb %cl, 0x1ba(%rdi,%r13)
testb %cl, %cl
jne 0x5a7d8
leaq (%rdi,%r13), %r14
addq $0xa8, %r14
leaq 0x8(%r14), %rsi
movl 0x18(%r14), %edx
xorpd %xmm0, %xmm0
movq %r14, %rdi
callq 0xf572
leaq 0x30(%r14), %rsi
movl 0x40(%r14), %edx
xorpd %xmm0, %xmm0
movq %r14, %rdi
callq 0xf53c
xorl %eax, %eax
movq %rax, 0xa8(%r14)
movq %rax, 0xc0(%r14)
movq (%rbx), %rax
movq 0x8(%rbx), %rdi
movl 0x38(%rax,%r15,4), %ecx
cmpl %ecx, 0x1bc(%rdi,%r13)
movq %r15, -0x30(%rbp)
je 0x5a856
leaq (%rdi,%r13), %r14
addq $0xa8, %r14
movl %ecx, 0x114(%r14)
callq 0x43dce
movq 0x5c38(%rax), %rax
movslq 0x114(%r14), %rcx
imulq $0x3700, %rcx, %rcx     # imm = 0x3700
movsd 0x3020(%rax,%rcx), %xmm0
movsd %xmm0, 0x58(%r14)
callq 0x43dce
movq 0x5c38(%rax), %rax
movslq 0x114(%r14), %rcx
imulq $0x3700, %rcx, %rcx     # imm = 0x3700
movsd 0x3098(%rax,%rcx), %xmm0
movsd %xmm0, 0x60(%r14)
movq (%rbx), %rax
movq 0x8(%rbx), %rdi
addq %r12, %rdi
addq %r13, %rdi
leaq (%rax,%r13), %rsi
addq $0x35f0, %rsi           # imm = 0x35F0
xorl %edx, %edx
movsd 0xe7e7(%rip), %xmm0     # 0x69058
callq 0xf572
movq 0x8(%rbx), %rdi
addq %r13, %rdi
addq %r12, %rdi
movq (%rbx), %rax
leaq (%rax,%r13), %rsi
addq $0x3618, %rsi           # imm = 0x3618
xorl %edx, %edx
movsd 0xe7c0(%rip), %xmm0     # 0x69058
callq 0xf53c
movq 0x8(%rbx), %r15
addq %r13, %r15
movq (%rbx), %rax
movsd 0x3698(%rax,%r13), %xmm0
movsd 0xe7a7(%rip), %xmm1     # 0x69060
ucomisd %xmm0, %xmm1
jbe 0x5a8d3
movsd 0xe7a9(%rip), %xmm2     # 0x69070
addsd %xmm2, %xmm0
ucomisd %xmm0, %xmm1
ja 0x5a8c7
jmp 0x5a8f3
movsd 0xe76d(%rip), %xmm1     # 0x69048
ucomisd %xmm1, %xmm0
movsd 0xe781(%rip), %xmm2     # 0x69068
jb 0x5a8f3
addsd %xmm2, %xmm0
ucomisd %xmm1, %xmm0
jae 0x5a8e9
addq %r12, %r15
leaq (%rax,%r13), %r12
addq $0x35e8, %r12           # imm = 0x35E8
movsd %xmm0, 0xb0(%r15)
movl $0x0, 0xb8(%r15)
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0xc0(%r15)
callq 0x49360
movq %rax, %r14
callq 0x49360
movsd 0x98(%r12), %xmm1
maxsd 0x3168(%r14), %xmm1
movsd 0x3160(%rax), %xmm0
minsd %xmm1, %xmm0
movsd 0xe706(%rip), %xmm1     # 0x69060
ucomisd %xmm0, %xmm1
jbe 0x5a974
movsd 0xe708(%rip), %xmm2     # 0x69070
addsd %xmm2, %xmm0
ucomisd %xmm0, %xmm1
ja 0x5a968
jmp 0x5a994
movsd 0xe6cc(%rip), %xmm1     # 0x69048
ucomisd %xmm1, %xmm0
jb 0x5a994
movsd 0xe6de(%rip), %xmm2     # 0x69068
addsd %xmm2, %xmm0
ucomisd %xmm1, %xmm0
jae 0x5a98a
movsd %xmm0, 0x98(%r15)
movl $0x0, 0xa0(%r15)
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0xa8(%r15)
movq (%rbx), %rax
movq 0x8(%rbx), %rdi
movl 0x3758(%rax,%r13), %ecx
movl 0x218(%rdi,%r13), %edx
testl %edx, %edx
je 0x5a9de
cmpl $0x2, %ecx
jne 0x5a9eb
cmpl $0x1, %edx
jne 0x5a9eb
leaq (%rdi,%r13), %rdx
addq $0x218, %rdx            # imm = 0x218
movl %ecx, (%rdx)
movb 0x4722(%rax,%r13), %cl
movb %cl, 0x11e2(%rdi,%r13)
testb %cl, %cl
jne 0x5aa49
leaq (%rdi,%r13), %r14
addq $0x10d0, %r14           # imm = 0x10D0
leaq 0x8(%r14), %rsi
movl 0x18(%r14), %edx
xorpd %xmm0, %xmm0
movq %r14, %rdi
callq 0xf572
leaq 0x30(%r14), %rsi
movl 0x40(%r14), %edx
xorpd %xmm0, %xmm0
movq %r14, %rdi
callq 0xf53c
xorl %eax, %eax
movq %rax, 0xa8(%r14)
movq %rax, 0xc0(%r14)
movq (%rbx), %rax
movq 0x8(%rbx), %rdi
movl $0x10d0, %r15d          # imm = 0x10D0
addq %r13, %rdi
addq %r15, %rdi
leaq (%rax,%r13), %rsi
addq $0x4618, %rsi           # imm = 0x4618
xorl %edx, %edx
movsd 0xe5ee(%rip), %xmm0     # 0x69058
callq 0xf572
movq 0x8(%rbx), %rdi
addq %r13, %rdi
movl $0x10d0, %r14d          # imm = 0x10D0
addq %r15, %rdi
movq (%rbx), %rax
leaq (%rax,%r13), %rsi
addq $0x4640, %rsi           # imm = 0x4640
xorl %edx, %edx
movsd 0xe5c1(%rip), %xmm0     # 0x69058
callq 0xf53c
movq 0x8(%rbx), %r15
addq %r13, %r15
movq (%rbx), %rax
movsd 0x46c0(%rax,%r13), %xmm0
movsd 0xe5a8(%rip), %xmm1     # 0x69060
ucomisd %xmm0, %xmm1
jbe 0x5aad2
movsd 0xe5aa(%rip), %xmm2     # 0x69070
addsd %xmm2, %xmm0
ucomisd %xmm0, %xmm1
ja 0x5aac6
jmp 0x5aaf2
movsd 0xe56e(%rip), %xmm1     # 0x69048
ucomisd %xmm1, %xmm0
movsd 0xe582(%rip), %xmm2     # 0x69068
jb 0x5aaf2
addsd %xmm2, %xmm0
ucomisd %xmm1, %xmm0
jae 0x5aae8
addq %r14, %r15
leaq (%rax,%r13), %r12
addq $0x4610, %r12           # imm = 0x4610
movsd %xmm0, 0xb0(%r15)
movl $0x0, 0xb8(%r15)
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0xc0(%r15)
callq 0x49360
movq %rax, %r14
callq 0x49360
movsd 0x98(%r12), %xmm1
maxsd 0x3168(%r14), %xmm1
movsd 0x3160(%rax), %xmm0
minsd %xmm1, %xmm0
movsd 0xe507(%rip), %xmm1     # 0x69060
ucomisd %xmm0, %xmm1
jbe 0x5ab79
movl $0xa8, %r12d
movsd 0xe503(%rip), %xmm2     # 0x69070
addsd %xmm2, %xmm0
ucomisd %xmm0, %xmm1
ja 0x5ab6d
jmp 0x5ab9f
movsd 0xe4c7(%rip), %xmm1     # 0x69048
ucomisd %xmm1, %xmm0
movl $0xa8, %r12d
jb 0x5ab9f
movsd 0xe4d3(%rip), %xmm2     # 0x69068
addsd %xmm2, %xmm0
ucomisd %xmm1, %xmm0
jae 0x5ab95
movsd %xmm0, 0x98(%r15)
movl $0x0, 0xa0(%r15)
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0xa8(%r15)
movq (%rbx), %rax
movq 0x8(%rbx), %rdi
movl 0x4780(%rax,%r13), %ecx
movl 0x1240(%rdi,%r13), %edx
testl %edx, %edx
je 0x5abe9
cmpl $0x2, %ecx
jne 0x5abf6
cmpl $0x1, %edx
jne 0x5abf6
leaq (%rdi,%r13), %rdx
addq $0x1240, %rdx           # imm = 0x1240
movl %ecx, (%rdx)
cmpb $0x1, 0x8(%rax)
movq -0x30(%rbp), %r15
jne 0x5ad9e
movl 0x36fc(%rax,%r13), %ecx
cmpl %ecx, 0x1bc(%rdi,%r13)
je 0x5ac81
leaq (%rdi,%r13), %r14
addq $0xa8, %r14
movl %ecx, 0x114(%r14)
callq 0x43dce
movq 0x5c38(%rax), %rax
movslq 0x114(%r14), %rcx
imulq $0x3700, %rcx, %rcx     # imm = 0x3700
movsd 0x3020(%rax,%rcx), %xmm0
movsd %xmm0, 0x58(%r14)
callq 0x43dce
movq 0x5c38(%rax), %rax
movslq 0x114(%r14), %rcx
imulq $0x3700, %rcx, %rcx     # imm = 0x3700
movsd 0x3098(%rax,%rcx), %xmm0
movsd %xmm0, 0x60(%r14)
movq (%rbx), %rax
movq 0x8(%rbx), %rdi
movsd 0x3660(%rax,%r13), %xmm0
movsd %xmm0, 0x120(%rdi,%r13)
movsd 0x3668(%rax,%r13), %xmm0
movsd %xmm0, 0x128(%rdi,%r13)
movsd 0x3678(%rax,%r13), %xmm0
movsd %xmm0, 0x138(%rdi,%r13)
movsd 0x3670(%rax,%r13), %xmm0
movsd %xmm0, 0x130(%rdi,%r13)
movl 0x4724(%rax,%r13), %ecx
cmpl %ecx, 0x11e4(%rdi,%r13)
je 0x5ad4e
leaq (%rdi,%r13), %r14
addq $0x10d0, %r14           # imm = 0x10D0
movl %ecx, 0x114(%r14)
callq 0x43dce
movq 0x5c38(%rax), %rax
movslq 0x114(%r14), %rcx
imulq $0x3700, %rcx, %rcx     # imm = 0x3700
movsd 0x3020(%rax,%rcx), %xmm0
movsd %xmm0, 0x58(%r14)
callq 0x43dce
movq 0x5c38(%rax), %rax
movslq 0x114(%r14), %rcx
imulq $0x3700, %rcx, %rcx     # imm = 0x3700
movsd 0x3098(%rax,%rcx), %xmm0
movsd %xmm0, 0x60(%r14)
movq (%rbx), %rax
movq 0x8(%rbx), %rdi
movsd 0x4688(%rax,%r13), %xmm0
movsd %xmm0, 0x1148(%rdi,%r13)
movsd 0x4690(%rax,%r13), %xmm0
movsd %xmm0, 0x1150(%rdi,%r13)
movsd 0x46a0(%rax,%r13), %xmm0
movsd %xmm0, 0x1160(%rdi,%r13)
movsd 0x4698(%rax,%r13), %xmm0
movsd %xmm0, 0x1158(%rdi,%r13)
incq %r15
cmpq $0xc, %r15
jne 0x5a76f
movl 0x2110(%rdi), %eax
testl %eax, %eax
jle 0x5adc6
decl %eax
imulq $0x178, %rax, %rax      # imm = 0x178
movb $0x1, 0x21d(%rdi,%rax)
movl 0x2114(%rdi), %eax
testl %eax, %eax
jle 0x5ade1
decl %eax
imulq $0x178, %rax, %rax      # imm = 0x178
movb $0x1, 0x1245(%rdi,%rax)
movq %rbx, %rdi
callq 0x5bae8
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movups 0x3578(%rsi), %xmm0
xorps 0xe21a(%rip), %xmm0     # 0x69020
leaq -0x40(%rbp), %r14
movups %xmm0, (%r14)
movsd 0xe242(%rip), %xmm0     # 0x69058
movq %r14, %rsi
xorl %edx, %edx
callq 0xf572
movq 0x8(%rbx), %rdi
addq $0x30, %rdi
movq (%rbx), %rax
movups 0x35a0(%rax), %xmm0
xorps 0xe1e7(%rip), %xmm0     # 0x69020
movups %xmm0, (%r14)
leaq -0x40(%rbp), %rsi
xorl %edx, %edx
movsd 0xe20d(%rip), %xmm0     # 0x69058
callq 0xf53c
movq (%rbx), %rax
movq 0x8(%rbx), %rdi
movl $0x1, %r12d
movl $0xa8, %r13d
leaq -0x1(%r12), %rcx
imulq $0x178, %rcx, %r14      # imm = 0x178
movb 0x36fa(%rax,%r14), %cl
movb %cl, 0x1ba(%rdi,%r14)
testb %cl, %cl
jne 0x5aecd
leaq (%rdi,%r14), %r15
addq $0xa8, %r15
leaq 0x8(%r15), %rsi
movl 0x18(%r15), %edx
xorpd %xmm0, %xmm0
movq %r15, %rdi
callq 0xf572
leaq 0x30(%r15), %rsi
movl 0x40(%r15), %edx
xorpd %xmm0, %xmm0
movq %r15, %rdi
callq 0xf53c
xorl %eax, %eax
movq %rax, 0xa8(%r15)
movq %rax, 0xc0(%r15)
movq (%rbx), %rax
movq 0x8(%rbx), %rdi
movl 0x38(%rax,%r12,4), %ecx
cmpl %ecx, 0x1bc(%rdi,%r14)
movq %r12, -0x30(%rbp)
je 0x5af4b
leaq (%rdi,%r14), %r15
addq $0xa8, %r15
movl %ecx, 0x114(%r15)
callq 0x43dce
movq 0x5c38(%rax), %rax
movslq 0x114(%r15), %rcx
imulq $0x3700, %rcx, %rcx     # imm = 0x3700
movsd 0x3020(%rax,%rcx), %xmm0
movsd %xmm0, 0x58(%r15)
callq 0x43dce
movq 0x5c38(%rax), %rax
movslq 0x114(%r15), %rcx
imulq $0x3700, %rcx, %rcx     # imm = 0x3700
movsd 0x3098(%rax,%rcx), %xmm0
movsd %xmm0, 0x60(%r15)
movq (%rbx), %rax
movq 0x8(%rbx), %rdi
addq %r13, %rdi
addq %r14, %rdi
movups 0x35f0(%rax,%r14), %xmm0
movaps 0xe0bf(%rip), %xmm1     # 0x69020
xorps %xmm1, %xmm0
movups %xmm0, -0x40(%rbp)
leaq -0x40(%rbp), %r15
movq %r15, %rsi
xorl %edx, %edx
movsd 0xe0df(%rip), %xmm0     # 0x69058
callq 0xf572
movq 0x8(%rbx), %rdi
addq %r14, %rdi
addq %r13, %rdi
movq (%rbx), %rax
movups 0x3618(%rax,%r14), %xmm0
xorps 0xe085(%rip), %xmm0     # 0x69020
movups %xmm0, -0x40(%rbp)
movq %r15, %rsi
xorl %edx, %edx
movsd 0xe0ac(%rip), %xmm0     # 0x69058
callq 0xf53c
movq 0x8(%rbx), %r12
addq %r14, %r12
movq (%rbx), %rax
movsd 0x3698(%rax,%r14), %xmm0
movsd 0xe07b(%rip), %xmm1     # 0x69048
addsd %xmm1, %xmm0
movsd 0xe087(%rip), %xmm2     # 0x69060
ucomisd %xmm0, %xmm2
jbe 0x5affb
movsd 0xe089(%rip), %xmm3     # 0x69070
movsd 0xe079(%rip), %xmm4     # 0x69068
addsd %xmm3, %xmm0
ucomisd %xmm0, %xmm2
ja 0x5afef
jmp 0x5b01b
ucomisd %xmm1, %xmm0
movsd 0xe069(%rip), %xmm3     # 0x69070
movsd 0xe059(%rip), %xmm4     # 0x69068
jb 0x5b01b
addsd %xmm4, %xmm0
ucomisd %xmm1, %xmm0
jae 0x5b011
ucomisd %xmm0, %xmm2
jbe 0x5b0c6
addsd %xmm3, %xmm0
ucomisd %xmm0, %xmm2
ja 0x5b025
addq %r13, %r12
leaq (%rax,%r14), %r13
addq $0x35e8, %r13           # imm = 0x35E8
movsd %xmm0, 0xb0(%r12)
movl $0x0, 0xb8(%r12)
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0xc0(%r12)
callq 0x49360
movq %rax, %r15
callq 0x49360
movsd 0xdfe6(%rip), %xmm2     # 0x69060
movsd 0x98(%r13), %xmm1
maxsd 0x3168(%r15), %xmm1
movsd 0x3160(%rax), %xmm0
minsd %xmm1, %xmm0
movsd 0xdfa8(%rip), %xmm1     # 0x69048
addsd %xmm1, %xmm0
ucomisd %xmm0, %xmm2
jbe 0x5b0d6
movsd 0xdfbe(%rip), %xmm3     # 0x69070
movsd 0xdfae(%rip), %xmm4     # 0x69068
addsd %xmm3, %xmm0
ucomisd %xmm0, %xmm2
ja 0x5b0ba
jmp 0x5b108
ucomisd %xmm1, %xmm0
jb 0x5b02f
addsd %xmm4, %xmm0
jmp 0x5b0c6
ucomisd %xmm1, %xmm0
jae 0x5b0ee
movsd 0xdf8c(%rip), %xmm3     # 0x69070
movsd 0xdf7c(%rip), %xmm4     # 0x69068
jmp 0x5b108
movsd 0xdf7a(%rip), %xmm3     # 0x69070
movsd 0xdf6a(%rip), %xmm4     # 0x69068
addsd %xmm4, %xmm0
ucomisd %xmm1, %xmm0
jae 0x5b0fe
ucomisd %xmm0, %xmm2
jbe 0x5b290
addsd %xmm3, %xmm0
ucomisd %xmm0, %xmm2
ja 0x5b112
movsd %xmm0, 0x98(%r12)
movl $0x0, 0xa0(%r12)
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0xa8(%r12)
movq (%rbx), %rax
movq 0x8(%rbx), %rdi
movl 0x3758(%rax,%r14), %ecx
movl 0x218(%rdi,%r14), %edx
testl %edx, %edx
je 0x5b169
cmpl $0x2, %ecx
jne 0x5b176
cmpl $0x1, %edx
jne 0x5b176
leaq (%rdi,%r14), %rdx
addq $0x218, %rdx            # imm = 0x218
movl %ecx, (%rdx)
movb 0x4722(%rax,%r14), %cl
movb %cl, 0x11e2(%rdi,%r14)
testb %cl, %cl
jne 0x5b1d4
leaq (%rdi,%r14), %r15
addq $0x10d0, %r15           # imm = 0x10D0
leaq 0x8(%r15), %rsi
movl 0x18(%r15), %edx
xorpd %xmm0, %xmm0
movq %r15, %rdi
callq 0xf572
leaq 0x30(%r15), %rsi
movl 0x40(%r15), %edx
xorpd %xmm0, %xmm0
movq %r15, %rdi
callq 0xf53c
xorl %eax, %eax
movq %rax, 0xa8(%r15)
movq %rax, 0xc0(%r15)
movq (%rbx), %rax
movq 0x8(%rbx), %rdi
movl $0x10d0, %r12d          # imm = 0x10D0
addq %r14, %rdi
addq %r12, %rdi
movups 0x4618(%rax,%r14), %xmm0
movaps 0xde30(%rip), %xmm1     # 0x69020
xorps %xmm1, %xmm0
movups %xmm0, -0x40(%rbp)
leaq -0x40(%rbp), %r15
movq %r15, %rsi
xorl %edx, %edx
movsd 0xde50(%rip), %xmm0     # 0x69058
callq 0xf572
movq 0x8(%rbx), %rdi
addq %r14, %rdi
movl $0x10d0, %r13d          # imm = 0x10D0
addq %r12, %rdi
movq (%rbx), %rax
movups 0x4640(%rax,%r14), %xmm0
xorps 0xddf0(%rip), %xmm0     # 0x69020
movups %xmm0, -0x40(%rbp)
movq %r15, %rsi
xorl %edx, %edx
movsd 0xde17(%rip), %xmm0     # 0x69058
callq 0xf53c
movq 0x8(%rbx), %r12
addq %r14, %r12
movq (%rbx), %rax
movsd 0x46c0(%rax,%r14), %xmm0
movsd 0xdde6(%rip), %xmm1     # 0x69048
addsd %xmm1, %xmm0
movsd 0xddf2(%rip), %xmm2     # 0x69060
ucomisd %xmm0, %xmm2
jbe 0x5b2a0
movsd 0xddf4(%rip), %xmm3     # 0x69070
movsd 0xdde4(%rip), %xmm4     # 0x69068
addsd %xmm3, %xmm0
ucomisd %xmm0, %xmm2
ja 0x5b284
jmp 0x5b2c0
ucomisd %xmm1, %xmm0
jb 0x5b11c
addsd %xmm4, %xmm0
jmp 0x5b290
ucomisd %xmm1, %xmm0
movsd 0xddc4(%rip), %xmm3     # 0x69070
movsd 0xddb4(%rip), %xmm4     # 0x69068
jb 0x5b2c0
addsd %xmm4, %xmm0
ucomisd %xmm1, %xmm0
jae 0x5b2b6
ucomisd %xmm0, %xmm2
jbe 0x5b371
addsd %xmm3, %xmm0
ucomisd %xmm0, %xmm2
ja 0x5b2ca
addq %r13, %r12
leaq (%rax,%r14), %r13
addq $0x4610, %r13           # imm = 0x4610
movsd %xmm0, 0xb0(%r12)
movl $0x0, 0xb8(%r12)
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0xc0(%r12)
callq 0x49360
movq %rax, %r15
callq 0x49360
movsd 0xdd41(%rip), %xmm2     # 0x69060
movsd 0x98(%r13), %xmm1
maxsd 0x3168(%r15), %xmm1
movsd 0x3160(%rax), %xmm0
minsd %xmm1, %xmm0
movsd 0xdd03(%rip), %xmm1     # 0x69048
addsd %xmm1, %xmm0
ucomisd %xmm0, %xmm2
jbe 0x5b381
movl $0xa8, %r13d
movsd 0xdd13(%rip), %xmm3     # 0x69070
movsd 0xdd03(%rip), %xmm4     # 0x69068
addsd %xmm3, %xmm0
ucomisd %xmm0, %xmm2
ja 0x5b365
jmp 0x5b3a7
ucomisd %xmm1, %xmm0
jb 0x5b2d4
addsd %xmm4, %xmm0
jmp 0x5b371
ucomisd %xmm1, %xmm0
movl $0xa8, %r13d
movsd 0xdcdd(%rip), %xmm3     # 0x69070
movsd 0xdccd(%rip), %xmm4     # 0x69068
jb 0x5b3a7
addsd %xmm4, %xmm0
ucomisd %xmm1, %xmm0
jae 0x5b39d
ucomisd %xmm0, %xmm2
jbe 0x5b427
addsd %xmm3, %xmm0
ucomisd %xmm0, %xmm2
ja 0x5b3ad
movsd %xmm0, 0x98(%r12)
movl $0x0, 0xa0(%r12)
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0xa8(%r12)
movq (%rbx), %rax
movq 0x8(%rbx), %rdi
movl 0x4780(%rax,%r14), %ecx
movl 0x1240(%rdi,%r14), %edx
testl %edx, %edx
je 0x5b404
cmpl $0x2, %ecx
jne 0x5b411
cmpl $0x1, %edx
jne 0x5b411
leaq (%rdi,%r14), %rdx
addq $0x1240, %rdx           # imm = 0x1240
movl %ecx, (%rdx)
movq -0x30(%rbp), %r12
incq %r12
cmpq $0xc, %r12
jne 0x5ae63
jmp 0x5adab
ucomisd %xmm1, %xmm0
jb 0x5b3b7
addsd %xmm4, %xmm0
jmp 0x5b427
cmpl $0x0, 0x3588(%rsi)
jne 0x5b94e
addq $0x3578, %rsi           # imm = 0x3578
movq 0x8(%rbx), %rax
movq 0x8(%rax), %r15
movl 0x14b90(%r15), %eax
movl %eax, %ecx
addl $0x9, %ecx
movslq %ecx, %rcx
imulq $0x66666667, %rcx, %rcx # imm = 0x66666667
movq %rcx, %rdx
shrq $0x3f, %rdx
sarq $0x22, %rcx
addl %edx, %ecx
addl %ecx, %ecx
leal (%rcx,%rcx,4), %ecx
negl %ecx
addl %ecx, %eax
addl $0x9, %eax
cltq
imulq $0x2128, %rax, %r12     # imm = 0x2128
leaq (%r15,%r12), %r14
addq $0x30, %r14
xorl %r13d, %r13d
movsd 0xdbbe(%rip), %xmm0     # 0x69058
movq %r14, %rdi
xorl %edx, %edx
callq 0xf572
movl $0x0, 0x70(%r14)
movl $0x35a0, %esi           # imm = 0x35A0
addq (%rbx), %rsi
movq %r14, %rdi
xorl %edx, %edx
movsd 0xdb97(%rip), %xmm0     # 0x69058
callq 0xf53c
movq %r13, 0x28(%r14)
movq %r13, 0x50(%r14)
leaq (%r15,%r12), %rax
addq $0xa8, %rax
movq %rax, -0x50(%rbp)
leaq (%r15,%r12), %rax
addq $0x10d0, %rax           # imm = 0x10D0
movq %rax, -0x48(%rbp)
movq (%rbx), %rax
movl $0x1, %r15d
leaq -0x1(%r15), %rcx
imulq $0x178, %rcx, %r12      # imm = 0x178
movq -0x50(%rbp), %rdx
leaq (%rdx,%r12), %r14
movb 0x36fa(%rax,%r12), %cl
movb %cl, 0x112(%rdx,%r12)
testb %cl, %cl
jne 0x5b555
leaq 0x8(%r14), %rsi
movl 0x18(%r14), %edx
xorpd %xmm0, %xmm0
movq %r14, %rdi
callq 0xf572
leaq 0x30(%r14), %rsi
movl 0x40(%r14), %edx
xorpd %xmm0, %xmm0
movq %r14, %rdi
callq 0xf53c
xorl %eax, %eax
movq %rax, 0xa8(%r14)
movq %rax, 0xc0(%r14)
movq (%rbx), %rax
leaq (%rax,%r12), %rsi
addq $0x35f0, %rsi           # imm = 0x35F0
movq %r14, %rdi
xorl %edx, %edx
movsd 0xdaeb(%rip), %xmm0     # 0x69058
callq 0xf572
movl $0x0, 0x70(%r14)
movq (%rbx), %rax
leaq (%rax,%r12), %rsi
addq $0x3618, %rsi           # imm = 0x3618
movq %r14, %rdi
xorl %edx, %edx
movsd 0xdac3(%rip), %xmm0     # 0x69058
callq 0xf53c
xorl %eax, %eax
movq %rax, 0x28(%r14)
movq %rax, 0x50(%r14)
movq (%rbx), %rax
movsd 0x3698(%rax,%r12), %xmm0
movsd 0xdaa7(%rip), %xmm1     # 0x69060
ucomisd %xmm0, %xmm1
movq %r15, -0x30(%rbp)
jbe 0x5b5d7
movsd 0xdaa5(%rip), %xmm2     # 0x69070
addsd %xmm2, %xmm0
ucomisd %xmm0, %xmm1
ja 0x5b5cb
jmp 0x5b5f7
movsd 0xda69(%rip), %xmm1     # 0x69048
ucomisd %xmm1, %xmm0
movsd 0xda7d(%rip), %xmm2     # 0x69068
jb 0x5b5f7
addsd %xmm2, %xmm0
ucomisd %xmm1, %xmm0
jae 0x5b5ed
leaq (%rax,%r12), %r13
addq $0x35e8, %r13           # imm = 0x35E8
movsd %xmm0, 0xb0(%r14)
movl $0x0, 0xb8(%r14)
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0xc0(%r14)
callq 0x49360
movq %rax, %r15
callq 0x49360
movsd 0x98(%r13), %xmm1
maxsd 0x3168(%r15), %xmm1
movsd 0x3160(%rax), %xmm0
minsd %xmm1, %xmm0
movsd 0xda06(%rip), %xmm1     # 0x69060
ucomisd %xmm0, %xmm1
jbe 0x5b678
movq -0x30(%rbp), %rdx
movsd 0xda04(%rip), %xmm2     # 0x69070
addsd %xmm2, %xmm0
ucomisd %xmm0, %xmm1
ja 0x5b66c
jmp 0x5b69c
movsd 0xd9c8(%rip), %xmm1     # 0x69048
ucomisd %xmm1, %xmm0
movq -0x30(%rbp), %rdx
jb 0x5b69c
movsd 0xd9d6(%rip), %xmm2     # 0x69068
addsd %xmm2, %xmm0
ucomisd %xmm1, %xmm0
jae 0x5b692
movsd %xmm0, 0x98(%r14)
movl $0x0, 0xa0(%r14)
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0xa8(%r14)
movl 0x14(%rbx), %ecx
movq (%rbx), %rax
cmpq %rcx, %rdx
je 0x5b6ef
movsd 0x3660(%rax,%r12), %xmm0
movsd %xmm0, 0x78(%r14)
movsd 0x3670(%rax,%r12), %xmm0
movsd %xmm0, 0x88(%r14)
movq -0x48(%rbp), %rdx
leaq (%rdx,%r12), %r14
movb 0x4722(%rax,%r12), %cl
movb %cl, 0x112(%rdx,%r12)
testb %cl, %cl
jne 0x5b746
leaq 0x8(%r14), %rsi
movl 0x18(%r14), %edx
xorpd %xmm0, %xmm0
movq %r14, %rdi
callq 0xf572
leaq 0x30(%r14), %rsi
movl 0x40(%r14), %edx
xorpd %xmm0, %xmm0
movq %r14, %rdi
callq 0xf53c
xorl %eax, %eax
movq %rax, 0xa8(%r14)
movq %rax, 0xc0(%r14)
movq (%rbx), %rax
movl 0x4724(%rax,%r12), %ecx
cmpl %ecx, 0x114(%r14)
je 0x5b7b3
movl %ecx, 0x114(%r14)
callq 0x43dce
movq 0x5c38(%rax), %rax
movslq 0x114(%r14), %rcx
imulq $0x3700, %rcx, %rcx     # imm = 0x3700
movsd 0x3020(%rax,%rcx), %xmm0
movsd %xmm0, 0x58(%r14)
callq 0x43dce
movq 0x5c38(%rax), %rax
movslq 0x114(%r14), %rcx
imulq $0x3700, %rcx, %rcx     # imm = 0x3700
movsd 0x3098(%rax,%rcx), %xmm0
movsd %xmm0, 0x60(%r14)
movq (%rbx), %rax
leaq (%rax,%r12), %rsi
addq $0x4618, %rsi           # imm = 0x4618
movq %r14, %rdi
xorl %edx, %edx
movsd 0xd88d(%rip), %xmm0     # 0x69058
callq 0xf572
movl $0x0, 0x70(%r14)
movq (%rbx), %rax
leaq (%rax,%r12), %rsi
addq $0x4640, %rsi           # imm = 0x4640
movq %r14, %rdi
xorl %edx, %edx
movsd 0xd865(%rip), %xmm0     # 0x69058
callq 0xf53c
xorl %eax, %eax
movq %rax, 0x28(%r14)
movq %rax, 0x50(%r14)
movq (%rbx), %rax
movsd 0x46c0(%rax,%r12), %xmm0
movsd 0xd849(%rip), %xmm1     # 0x69060
ucomisd %xmm0, %xmm1
jbe 0x5b831
movsd 0xd84b(%rip), %xmm2     # 0x69070
addsd %xmm2, %xmm0
ucomisd %xmm0, %xmm1
ja 0x5b825
jmp 0x5b851
movsd 0xd80f(%rip), %xmm1     # 0x69048
ucomisd %xmm1, %xmm0
movsd 0xd823(%rip), %xmm2     # 0x69068
jb 0x5b851
addsd %xmm2, %xmm0
ucomisd %xmm1, %xmm0
jae 0x5b847
leaq (%rax,%r12), %r13
addq $0x4610, %r13           # imm = 0x4610
movsd %xmm0, 0xb0(%r14)
movl $0x0, 0xb8(%r14)
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0xc0(%r14)
callq 0x49360
movq %rax, %r15
callq 0x49360
movsd 0x98(%r13), %xmm1
maxsd 0x3168(%r15), %xmm1
movsd 0x3160(%rax), %xmm0
minsd %xmm1, %xmm0
movsd 0xd7ac(%rip), %xmm1     # 0x69060
ucomisd %xmm0, %xmm1
jbe 0x5b8d2
movq -0x30(%rbp), %r15
movsd 0xd7aa(%rip), %xmm2     # 0x69070
addsd %xmm2, %xmm0
ucomisd %xmm0, %xmm1
ja 0x5b8c6
jmp 0x5b8f6
movsd 0xd76e(%rip), %xmm1     # 0x69048
ucomisd %xmm1, %xmm0
movq -0x30(%rbp), %r15
jb 0x5b8f6
movsd 0xd77c(%rip), %xmm2     # 0x69068
addsd %xmm2, %xmm0
ucomisd %xmm1, %xmm0
jae 0x5b8ec
movsd %xmm0, 0x98(%r14)
movl $0x0, 0xa0(%r14)
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0xa8(%r14)
movq (%rbx), %rax
movsd 0x4688(%rax,%r12), %xmm0
movsd %xmm0, 0x78(%r14)
movsd 0x4698(%rax,%r12), %xmm0
movsd %xmm0, 0x88(%r14)
incq %r15
cmpq $0xc, %r15
jne 0x5b4f3
movq %rbx, %rdi
movl $0x1, %esi
callq 0x5c666
movq 0x8(%rbx), %r14
xorl %r15d, %r15d
xorl %r12d, %r12d
xorl %r13d, %r13d
movq (%rbx), %rax
movl 0x3c(%rax,%r12,4), %eax
cmpl %eax, 0x1bc(%r14,%r13)
je 0x5b9e2
movl %eax, 0x1bc(%r14,%r13)
callq 0x43dce
movq 0x5c38(%rax), %rax
movslq 0x1bc(%r14,%r13), %rcx
imulq $0x3700, %rcx, %rcx     # imm = 0x3700
movsd 0x3020(%rax,%rcx), %xmm0
movsd %xmm0, 0x100(%r14,%r13)
callq 0x43dce
movq 0x5c38(%rax), %rax
movslq 0x1bc(%r14,%r13), %rcx
imulq $0x3700, %rcx, %rcx     # imm = 0x3700
movsd 0x3098(%rax,%rcx), %xmm0
movsd %xmm0, 0x108(%r14,%r13)
movq 0x8(%rbx), %r14
movb %r15b, 0x21d(%r14,%r13)
movb %r15b, 0x1245(%r14,%r13)
addq $0x178, %r13            # imm = 0x178
incq %r12
cmpq $0xb, %r12
jne 0x5b968
movl 0x2110(%r14), %eax
testl %eax, %eax
jle 0x5ba29
leaq 0xa8(%r14), %rcx
decl %eax
imulq $0x178, %rax, %rax      # imm = 0x178
movb $0x1, 0x175(%rcx,%rax)
movl 0x2114(%r14), %eax
testl %eax, %eax
jle 0x5ba4d
addq $0x10d0, %r14           # imm = 0x10D0
decl %eax
imulq $0x178, %rax, %rax      # imm = 0x178
movb $0x1, 0x175(%r14,%rax)
movq %rbx, %rdi
callq 0x5ca26
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x5d778
movq (%rbx), %rax
cmpb $0x1, 0x3382(%rax)
jne 0x5ba75
movq %rbx, %rdi
callq 0x5d7ae
movq %rbx, %rdi
callq 0x5d834
movq (%rbx), %rax
cmpb $0x1, 0x3382(%rax)
jne 0x5baa9
movq %rbx, %rdi
callq 0x5df34
movq %rbx, %rdi
callq 0x5dfe0
movq %rbx, %rdi
callq 0x5f0e4
movq %rbx, %rdi
callq 0x6064e
movq %rbx, %rdi
callq 0x60756
movq %rbx, %rdi
callq 0x609b6
movq %rbx, %rdi
callq 0x60fae
movq %rbx, %rdi
callq 0x5bae8
movq %rbx, %rdi
callq 0x61146
movq %rbx, %rdi
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x6166c
nop