// File: /workspace/github_cpp_makefile_star2_O1/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 0x5df46
callq 0x450ba
cmpb $0x0, 0x31a5(%rax)
jne 0x5bfce
callq 0x450ba
cmpb $0x0, 0x31a6(%rax)
jne 0x5bfce
movq (%rbx), %rsi
cmpb $0x1, 0x8(%rsi)
jne 0x5cd14
movq (%rbx), %rsi
cmpb $0x1, 0x8(%rsi)
jne 0x5bff3
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 0x5c6da
addq $0x3578, %rsi           # imm = 0x3578
movsd 0xf044(%rip), %xmm0     # 0x6b058
xorl %edx, %edx
callq 0xf682
movq 0x8(%rbx), %rdi
addq $0x30, %rdi
movl $0x35a0, %esi           # imm = 0x35A0
addq (%rbx), %rsi
xorl %edx, %edx
movsd 0xf023(%rip), %xmm0     # 0x6b058
callq 0xf64c
movl $0x1, %r15d
movl $0xa8, %r12d
movq (%rbx), %rcx
movq 0x8(%rbx), %rax
leaq -0x1(%r15), %rdx
imulq $0x178, %rdx, %r13      # imm = 0x178
movb 0x36fa(%rcx,%r13), %cl
movb %cl, 0x1ba(%rax,%r13)
testb %cl, %cl
jne 0x5c0af
leaq (%rax,%r13), %r14
addq $0xa8, %r14
leaq 0x8(%r14), %rsi
movl 0x18(%r14), %edx
xorpd %xmm0, %xmm0
movq %r14, %rdi
callq 0xf682
leaq 0x30(%r14), %rsi
movl 0x40(%r14), %edx
xorpd %xmm0, %xmm0
movq %r14, %rdi
callq 0xf64c
xorl %eax, %eax
movq %rax, 0xa8(%r14)
movq %rax, 0xc0(%r14)
movq (%rbx), %rax
movq 0x8(%rbx), %rcx
movq %r15, -0x30(%rbp)
movl 0x38(%rax,%r15,4), %eax
cmpl %eax, 0x1bc(%rcx,%r13)
je 0x5c12d
leaq (%rcx,%r13), %r14
addq $0xa8, %r14
movl %eax, 0x114(%r14)
callq 0x450ba
movq 0x5c38(%rax), %rax
movslq 0x114(%r14), %rcx
imulq $0x3700, %rcx, %rcx     # imm = 0x3700
movsd 0x3020(%rax,%rcx), %xmm0
movsd %xmm0, 0x58(%r14)
callq 0x450ba
movq 0x5c38(%rax), %rax
movslq 0x114(%r14), %rcx
imulq $0x3700, %rcx, %rcx     # imm = 0x3700
movsd 0x3098(%rax,%rcx), %xmm0
movsd %xmm0, 0x60(%r14)
movq 0x8(%rbx), %rdi
addq %r13, %rdi
addq %r12, %rdi
movq (%rbx), %rax
leaq (%rax,%r13), %rsi
addq $0x35f0, %rsi           # imm = 0x35F0
xorl %edx, %edx
movsd 0xef09(%rip), %xmm0     # 0x6b058
callq 0xf682
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 0xeee2(%rip), %xmm0     # 0x6b058
callq 0xf64c
movq 0x8(%rbx), %r15
addq %r13, %r15
movq (%rbx), %rax
movsd 0x3698(%rax,%r13), %xmm0
movsd 0xeec9(%rip), %xmm1     # 0x6b060
ucomisd %xmm0, %xmm1
jbe 0x5c1b1
movsd 0xeecb(%rip), %xmm2     # 0x6b070
addsd %xmm2, %xmm0
ucomisd %xmm0, %xmm1
ja 0x5c1a5
jmp 0x5c1d1
movsd 0xee8f(%rip), %xmm1     # 0x6b048
ucomisd %xmm1, %xmm0
movsd 0xeea3(%rip), %xmm2     # 0x6b068
jb 0x5c1d1
addsd %xmm2, %xmm0
ucomisd %xmm1, %xmm0
jae 0x5c1c7
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 0x4a75c
movq %rax, %r14
callq 0x4a75c
movsd 0x98(%r12), %xmm1
maxsd 0x3168(%r14), %xmm1
movsd 0x3160(%rax), %xmm0
minsd %xmm1, %xmm0
movsd 0xee28(%rip), %xmm1     # 0x6b060
ucomisd %xmm0, %xmm1
jbe 0x5c252
movsd 0xee2a(%rip), %xmm2     # 0x6b070
addsd %xmm2, %xmm0
ucomisd %xmm0, %xmm1
ja 0x5c246
jmp 0x5c272
movsd 0xedee(%rip), %xmm1     # 0x6b048
ucomisd %xmm1, %xmm0
jb 0x5c272
movsd 0xee00(%rip), %xmm2     # 0x6b068
addsd %xmm2, %xmm0
ucomisd %xmm1, %xmm0
jae 0x5c268
movsd %xmm0, 0x98(%r15)
movl $0x0, 0xa0(%r15)
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0xa8(%r15)
movq (%rbx), %rcx
movq 0x8(%rbx), %rax
movl 0x3758(%rcx,%r13), %edx
movl 0x218(%rax,%r13), %esi
testl %esi, %esi
je 0x5c2bc
cmpl $0x2, %edx
jne 0x5c2c9
cmpl $0x1, %esi
jne 0x5c2c9
leaq (%rax,%r13), %rsi
addq $0x218, %rsi            # imm = 0x218
movl %edx, (%rsi)
movb 0x4722(%rcx,%r13), %cl
movb %cl, 0x11e2(%rax,%r13)
testb %cl, %cl
jne 0x5c320
leaq (%rax,%r13), %r14
addq $0x10d0, %r14           # imm = 0x10D0
leaq 0x8(%r14), %rsi
movl 0x18(%r14), %edx
xorpd %xmm0, %xmm0
movq %r14, %rdi
callq 0xf682
leaq 0x30(%r14), %rsi
movl 0x40(%r14), %edx
xorpd %xmm0, %xmm0
movq %r14, %rdi
callq 0xf64c
xorl %eax, %eax
movq %rax, 0xa8(%r14)
movq %rax, 0xc0(%r14)
movq 0x8(%rbx), %rdi
addq %r13, %rdi
movl $0x10d0, %r15d          # imm = 0x10D0
addq %r15, %rdi
movq (%rbx), %rax
leaq (%rax,%r13), %rsi
addq $0x4618, %rsi           # imm = 0x4618
xorl %edx, %edx
movsd 0xed10(%rip), %xmm0     # 0x6b058
callq 0xf682
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 0xece3(%rip), %xmm0     # 0x6b058
callq 0xf64c
movq 0x8(%rbx), %r15
addq %r13, %r15
movq (%rbx), %rax
movsd 0x46c0(%rax,%r13), %xmm0
movsd 0xecca(%rip), %xmm1     # 0x6b060
ucomisd %xmm0, %xmm1
jbe 0x5c3b0
movsd 0xeccc(%rip), %xmm2     # 0x6b070
addsd %xmm2, %xmm0
ucomisd %xmm0, %xmm1
ja 0x5c3a4
jmp 0x5c3d0
movsd 0xec90(%rip), %xmm1     # 0x6b048
ucomisd %xmm1, %xmm0
movsd 0xeca4(%rip), %xmm2     # 0x6b068
jb 0x5c3d0
addsd %xmm2, %xmm0
ucomisd %xmm1, %xmm0
jae 0x5c3c6
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 0x4a75c
movq %rax, %r14
callq 0x4a75c
movsd 0x98(%r12), %xmm1
maxsd 0x3168(%r14), %xmm1
movsd 0x3160(%rax), %xmm0
minsd %xmm1, %xmm0
movsd 0xec29(%rip), %xmm1     # 0x6b060
ucomisd %xmm0, %xmm1
jbe 0x5c457
movl $0xa8, %r12d
movsd 0xec25(%rip), %xmm2     # 0x6b070
addsd %xmm2, %xmm0
ucomisd %xmm0, %xmm1
ja 0x5c44b
jmp 0x5c47d
movsd 0xebe9(%rip), %xmm1     # 0x6b048
ucomisd %xmm1, %xmm0
movl $0xa8, %r12d
jb 0x5c47d
movsd 0xebf5(%rip), %xmm2     # 0x6b068
addsd %xmm2, %xmm0
ucomisd %xmm1, %xmm0
jae 0x5c473
movsd %xmm0, 0x98(%r15)
movl $0x0, 0xa0(%r15)
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0xa8(%r15)
movq (%rbx), %rcx
movq 0x8(%rbx), %rax
movl 0x4780(%rcx,%r13), %edx
movl 0x1240(%rax,%r13), %esi
testl %esi, %esi
je 0x5c4c7
cmpl $0x2, %edx
jne 0x5c4d4
cmpl $0x1, %esi
jne 0x5c4d4
leaq (%rax,%r13), %rsi
addq $0x1240, %rsi           # imm = 0x1240
movl %edx, (%rsi)
cmpb $0x1, 0x8(%rcx)
movq -0x30(%rbp), %r15
jne 0x5c67c
movl 0x36fc(%rcx,%r13), %ecx
cmpl %ecx, 0x1bc(%rax,%r13)
je 0x5c558
leaq (%rax,%r13), %r14
addq $0xa8, %r14
movl %ecx, 0x114(%r14)
callq 0x450ba
movq 0x5c38(%rax), %rax
movslq 0x114(%r14), %rcx
imulq $0x3700, %rcx, %rcx     # imm = 0x3700
movsd 0x3020(%rax,%rcx), %xmm0
movsd %xmm0, 0x58(%r14)
callq 0x450ba
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), %rcx
movq 0x8(%rbx), %rax
movsd 0x3660(%rcx,%r13), %xmm0
movsd %xmm0, 0x120(%rax,%r13)
movsd 0x3668(%rcx,%r13), %xmm0
movsd %xmm0, 0x128(%rax,%r13)
movsd 0x3678(%rcx,%r13), %xmm0
movsd %xmm0, 0x138(%rax,%r13)
movsd 0x3670(%rcx,%r13), %xmm0
movsd %xmm0, 0x130(%rax,%r13)
movl 0x4724(%rcx,%r13), %ecx
cmpl %ecx, 0x11e4(%rax,%r13)
je 0x5c625
leaq (%rax,%r13), %r14
addq $0x10d0, %r14           # imm = 0x10D0
movl %ecx, 0x114(%r14)
callq 0x450ba
movq 0x5c38(%rax), %rax
movslq 0x114(%r14), %rcx
imulq $0x3700, %rcx, %rcx     # imm = 0x3700
movsd 0x3020(%rax,%rcx), %xmm0
movsd %xmm0, 0x58(%r14)
callq 0x450ba
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), %rcx
movsd 0x4688(%rax,%r13), %xmm0
movsd %xmm0, 0x1148(%rcx,%r13)
movsd 0x4690(%rax,%r13), %xmm0
movsd %xmm0, 0x1150(%rcx,%r13)
movsd 0x46a0(%rax,%r13), %xmm0
movsd %xmm0, 0x1160(%rcx,%r13)
movsd 0x4698(%rax,%r13), %xmm0
movsd %xmm0, 0x1158(%rcx,%r13)
incq %r15
cmpq $0xc, %r15
jne 0x5c046
movq 0x8(%rbx), %rax
movslq 0x2110(%rax), %rcx
testq %rcx, %rcx
jle 0x5c6a8
imulq $0x178, %rcx, %rcx      # imm = 0x178
movb $0x1, 0xa5(%rax,%rcx)
movslq 0x2114(%rax), %rcx
testq %rcx, %rcx
jle 0x5c6c3
imulq $0x178, %rcx, %rcx      # imm = 0x178
movb $0x1, 0x10cd(%rax,%rcx)
movq %rbx, %rdi
callq 0x5d3be
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movups 0x3578(%rsi), %xmm0
xorps 0xe938(%rip), %xmm0     # 0x6b020
leaq -0x40(%rbp), %r14
movups %xmm0, (%r14)
movsd 0xe960(%rip), %xmm0     # 0x6b058
movq %r14, %rsi
xorl %edx, %edx
callq 0xf682
movq 0x8(%rbx), %rdi
addq $0x30, %rdi
movq (%rbx), %rax
movups 0x35a0(%rax), %xmm0
xorps 0xe905(%rip), %xmm0     # 0x6b020
movups %xmm0, (%r14)
leaq -0x40(%rbp), %rsi
xorl %edx, %edx
movsd 0xe92b(%rip), %xmm0     # 0x6b058
callq 0xf64c
movl $0x1, %r12d
movl $0xa8, %r13d
movq (%rbx), %rcx
movq 0x8(%rbx), %rax
leaq -0x1(%r12), %rdx
imulq $0x178, %rdx, %r14      # imm = 0x178
movb 0x36fa(%rcx,%r14), %cl
movb %cl, 0x1ba(%rax,%r14)
testb %cl, %cl
jne 0x5c7a8
leaq (%rax,%r14), %r15
addq $0xa8, %r15
leaq 0x8(%r15), %rsi
movl 0x18(%r15), %edx
xorpd %xmm0, %xmm0
movq %r15, %rdi
callq 0xf682
leaq 0x30(%r15), %rsi
movl 0x40(%r15), %edx
xorpd %xmm0, %xmm0
movq %r15, %rdi
callq 0xf64c
xorl %eax, %eax
movq %rax, 0xa8(%r15)
movq %rax, 0xc0(%r15)
movq (%rbx), %rax
movq 0x8(%rbx), %rcx
movq %r12, -0x30(%rbp)
movl 0x38(%rax,%r12,4), %eax
cmpl %eax, 0x1bc(%rcx,%r14)
je 0x5c826
leaq (%rcx,%r14), %r15
addq $0xa8, %r15
movl %eax, 0x114(%r15)
callq 0x450ba
movq 0x5c38(%rax), %rax
movslq 0x114(%r15), %rcx
imulq $0x3700, %rcx, %rcx     # imm = 0x3700
movsd 0x3020(%rax,%rcx), %xmm0
movsd %xmm0, 0x58(%r15)
callq 0x450ba
movq 0x5c38(%rax), %rax
movslq 0x114(%r15), %rcx
imulq $0x3700, %rcx, %rcx     # imm = 0x3700
movsd 0x3098(%rax,%rcx), %xmm0
movsd %xmm0, 0x60(%r15)
movq 0x8(%rbx), %rdi
addq %r14, %rdi
addq %r13, %rdi
movq (%rbx), %rax
movups 0x35f0(%rax,%r14), %xmm0
movaps 0xe7dd(%rip), %xmm1     # 0x6b020
xorps %xmm1, %xmm0
movups %xmm0, -0x40(%rbp)
leaq -0x40(%rbp), %r15
movq %r15, %rsi
xorl %edx, %edx
movsd 0xe7fd(%rip), %xmm0     # 0x6b058
callq 0xf682
movq 0x8(%rbx), %rdi
addq %r14, %rdi
addq %r13, %rdi
movq (%rbx), %rax
movups 0x3618(%rax,%r14), %xmm0
xorps 0xe7a3(%rip), %xmm0     # 0x6b020
movups %xmm0, -0x40(%rbp)
movq %r15, %rsi
xorl %edx, %edx
movsd 0xe7ca(%rip), %xmm0     # 0x6b058
callq 0xf64c
movq 0x8(%rbx), %r12
addq %r14, %r12
movq (%rbx), %rax
movsd 0x3698(%rax,%r14), %xmm0
movsd 0xe799(%rip), %xmm1     # 0x6b048
addsd %xmm1, %xmm0
movsd 0xe7a5(%rip), %xmm2     # 0x6b060
ucomisd %xmm0, %xmm2
jbe 0x5c8dd
movsd 0xe7a7(%rip), %xmm3     # 0x6b070
movsd 0xe797(%rip), %xmm4     # 0x6b068
addsd %xmm3, %xmm0
ucomisd %xmm0, %xmm2
ja 0x5c8d1
jmp 0x5c8fd
ucomisd %xmm1, %xmm0
movsd 0xe787(%rip), %xmm3     # 0x6b070
movsd 0xe777(%rip), %xmm4     # 0x6b068
jb 0x5c8fd
addsd %xmm4, %xmm0
ucomisd %xmm1, %xmm0
jae 0x5c8f3
ucomisd %xmm0, %xmm2
jbe 0x5c9a8
addsd %xmm3, %xmm0
ucomisd %xmm0, %xmm2
ja 0x5c907
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 0x4a75c
movq %rax, %r15
callq 0x4a75c
movsd 0xe704(%rip), %xmm2     # 0x6b060
movsd 0x98(%r13), %xmm1
movsd 0x3160(%rax), %xmm0
maxsd 0x3168(%r15), %xmm1
minsd %xmm1, %xmm0
movsd 0xe6c6(%rip), %xmm1     # 0x6b048
addsd %xmm1, %xmm0
ucomisd %xmm0, %xmm2
jbe 0x5c9b8
movsd 0xe6dc(%rip), %xmm3     # 0x6b070
movsd 0xe6cc(%rip), %xmm4     # 0x6b068
addsd %xmm3, %xmm0
ucomisd %xmm0, %xmm2
ja 0x5c99c
jmp 0x5c9ea
ucomisd %xmm1, %xmm0
jb 0x5c911
addsd %xmm4, %xmm0
jmp 0x5c9a8
ucomisd %xmm1, %xmm0
jae 0x5c9d0
movsd 0xe6aa(%rip), %xmm3     # 0x6b070
movsd 0xe69a(%rip), %xmm4     # 0x6b068
jmp 0x5c9ea
movsd 0xe698(%rip), %xmm3     # 0x6b070
movsd 0xe688(%rip), %xmm4     # 0x6b068
addsd %xmm4, %xmm0
ucomisd %xmm1, %xmm0
jae 0x5c9e0
ucomisd %xmm0, %xmm2
jbe 0x5cb72
addsd %xmm3, %xmm0
ucomisd %xmm0, %xmm2
ja 0x5c9f4
movsd %xmm0, 0x98(%r12)
movl $0x0, 0xa0(%r12)
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0xa8(%r12)
movq (%rbx), %rcx
movq 0x8(%rbx), %rax
movl 0x3758(%rcx,%r14), %edx
movl 0x218(%rax,%r14), %esi
testl %esi, %esi
je 0x5ca4b
cmpl $0x2, %edx
jne 0x5ca58
cmpl $0x1, %esi
jne 0x5ca58
leaq (%rax,%r14), %rsi
addq $0x218, %rsi            # imm = 0x218
movl %edx, (%rsi)
movb 0x4722(%rcx,%r14), %cl
movb %cl, 0x11e2(%rax,%r14)
testb %cl, %cl
jne 0x5caaf
leaq (%rax,%r14), %r15
addq $0x10d0, %r15           # imm = 0x10D0
leaq 0x8(%r15), %rsi
movl 0x18(%r15), %edx
xorpd %xmm0, %xmm0
movq %r15, %rdi
callq 0xf682
leaq 0x30(%r15), %rsi
movl 0x40(%r15), %edx
xorpd %xmm0, %xmm0
movq %r15, %rdi
callq 0xf64c
xorl %eax, %eax
movq %rax, 0xa8(%r15)
movq %rax, 0xc0(%r15)
movq 0x8(%rbx), %rdi
addq %r14, %rdi
movl $0x10d0, %r12d          # imm = 0x10D0
addq %r12, %rdi
movq (%rbx), %rax
movups 0x4618(%rax,%r14), %xmm0
movaps 0xe54e(%rip), %xmm1     # 0x6b020
xorps %xmm1, %xmm0
movups %xmm0, -0x40(%rbp)
leaq -0x40(%rbp), %r15
movq %r15, %rsi
xorl %edx, %edx
movsd 0xe56e(%rip), %xmm0     # 0x6b058
callq 0xf682
movq 0x8(%rbx), %rdi
addq %r14, %rdi
movl $0x10d0, %r13d          # imm = 0x10D0
addq %r12, %rdi
movq (%rbx), %rax
movups 0x4640(%rax,%r14), %xmm0
xorps 0xe50e(%rip), %xmm0     # 0x6b020
movups %xmm0, -0x40(%rbp)
movq %r15, %rsi
xorl %edx, %edx
movsd 0xe535(%rip), %xmm0     # 0x6b058
callq 0xf64c
movq 0x8(%rbx), %r12
addq %r14, %r12
movq (%rbx), %rax
movsd 0x46c0(%rax,%r14), %xmm0
movsd 0xe504(%rip), %xmm1     # 0x6b048
addsd %xmm1, %xmm0
movsd 0xe510(%rip), %xmm2     # 0x6b060
ucomisd %xmm0, %xmm2
jbe 0x5cb82
movsd 0xe512(%rip), %xmm3     # 0x6b070
movsd 0xe502(%rip), %xmm4     # 0x6b068
addsd %xmm3, %xmm0
ucomisd %xmm0, %xmm2
ja 0x5cb66
jmp 0x5cba2
ucomisd %xmm1, %xmm0
jb 0x5c9fe
addsd %xmm4, %xmm0
jmp 0x5cb72
ucomisd %xmm1, %xmm0
movsd 0xe4e2(%rip), %xmm3     # 0x6b070
movsd 0xe4d2(%rip), %xmm4     # 0x6b068
jb 0x5cba2
addsd %xmm4, %xmm0
ucomisd %xmm1, %xmm0
jae 0x5cb98
ucomisd %xmm0, %xmm2
jbe 0x5cc53
addsd %xmm3, %xmm0
ucomisd %xmm0, %xmm2
ja 0x5cbac
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 0x4a75c
movq %rax, %r15
callq 0x4a75c
movsd 0xe45f(%rip), %xmm2     # 0x6b060
movsd 0x98(%r13), %xmm1
movsd 0x3160(%rax), %xmm0
maxsd 0x3168(%r15), %xmm1
minsd %xmm1, %xmm0
movsd 0xe421(%rip), %xmm1     # 0x6b048
addsd %xmm1, %xmm0
ucomisd %xmm0, %xmm2
jbe 0x5cc63
movl $0xa8, %r13d
movsd 0xe431(%rip), %xmm3     # 0x6b070
movsd 0xe421(%rip), %xmm4     # 0x6b068
addsd %xmm3, %xmm0
ucomisd %xmm0, %xmm2
ja 0x5cc47
jmp 0x5cc89
ucomisd %xmm1, %xmm0
jb 0x5cbb6
addsd %xmm4, %xmm0
jmp 0x5cc53
ucomisd %xmm1, %xmm0
movl $0xa8, %r13d
movsd 0xe3fb(%rip), %xmm3     # 0x6b070
movsd 0xe3eb(%rip), %xmm4     # 0x6b068
jb 0x5cc89
addsd %xmm4, %xmm0
ucomisd %xmm1, %xmm0
jae 0x5cc7f
ucomisd %xmm0, %xmm2
jbe 0x5cd08
addsd %xmm3, %xmm0
ucomisd %xmm0, %xmm2
ja 0x5cc8f
movsd %xmm0, 0x98(%r12)
movl $0x0, 0xa0(%r12)
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0xa8(%r12)
movq (%rbx), %rax
movq 0x8(%rbx), %rcx
movl 0x4780(%rax,%r14), %eax
movl 0x1240(%rcx,%r14), %edx
testl %edx, %edx
je 0x5cce6
cmpl $0x2, %eax
jne 0x5ccf2
cmpl $0x1, %edx
jne 0x5ccf2
addq %r14, %rcx
addq $0x1240, %rcx           # imm = 0x1240
movl %eax, (%rcx)
movq -0x30(%rbp), %r12
incq %r12
cmpq $0xc, %r12
jne 0x5c73e
jmp 0x5c689
ucomisd %xmm1, %xmm0
jb 0x5cc99
addsd %xmm4, %xmm0
jmp 0x5cd08
cmpl $0x0, 0x3588(%rsi)
jne 0x5d232
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 0xe2dd(%rip), %xmm0     # 0x6b058
movq %r14, %rdi
xorl %edx, %edx
callq 0xf682
movl $0x0, 0x70(%r14)
movl $0x35a0, %esi           # imm = 0x35A0
addq (%rbx), %rsi
movq %r14, %rdi
xorl %edx, %edx
movsd 0xe2b6(%rip), %xmm0     # 0x6b058
callq 0xf64c
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)
movl $0x1, %r15d
leaq -0x1(%r15), %rax
imulq $0x178, %rax, %r12      # imm = 0x178
movq -0x50(%rbp), %rcx
leaq (%rcx,%r12), %r14
movq (%rbx), %rax
movb 0x36fa(%rax,%r12), %al
movb %al, 0x112(%rcx,%r12)
testb %al, %al
jne 0x5ce33
leaq 0x8(%r14), %rsi
movl 0x18(%r14), %edx
xorpd %xmm0, %xmm0
movq %r14, %rdi
callq 0xf682
leaq 0x30(%r14), %rsi
movl 0x40(%r14), %edx
xorpd %xmm0, %xmm0
movq %r14, %rdi
callq 0xf64c
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 0xe20a(%rip), %xmm0     # 0x6b058
callq 0xf682
movl $0x0, 0x70(%r14)
movq (%rbx), %rax
leaq (%rax,%r12), %rsi
addq $0x3618, %rsi           # imm = 0x3618
movq %r14, %rdi
xorl %edx, %edx
movsd 0xe1e2(%rip), %xmm0     # 0x6b058
callq 0xf64c
xorl %eax, %eax
movq %rax, 0x28(%r14)
movq %rax, 0x50(%r14)
movq (%rbx), %rax
movsd 0x3698(%rax,%r12), %xmm0
movsd 0xe1c6(%rip), %xmm1     # 0x6b060
ucomisd %xmm0, %xmm1
movq %r15, -0x30(%rbp)
jbe 0x5ceb8
movsd 0xe1c4(%rip), %xmm2     # 0x6b070
addsd %xmm2, %xmm0
ucomisd %xmm0, %xmm1
ja 0x5ceac
jmp 0x5ced8
movsd 0xe188(%rip), %xmm1     # 0x6b048
ucomisd %xmm1, %xmm0
movsd 0xe19c(%rip), %xmm2     # 0x6b068
jb 0x5ced8
addsd %xmm2, %xmm0
ucomisd %xmm1, %xmm0
jae 0x5cece
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 0x4a75c
movq %rax, %r15
callq 0x4a75c
movsd 0x98(%r13), %xmm1
maxsd 0x3168(%r15), %xmm1
movsd 0x3160(%rax), %xmm0
minsd %xmm1, %xmm0
movsd 0xe125(%rip), %xmm1     # 0x6b060
ucomisd %xmm0, %xmm1
jbe 0x5cf59
movq -0x30(%rbp), %rcx
movsd 0xe123(%rip), %xmm2     # 0x6b070
addsd %xmm2, %xmm0
ucomisd %xmm0, %xmm1
ja 0x5cf4d
jmp 0x5cf7d
movsd 0xe0e7(%rip), %xmm1     # 0x6b048
ucomisd %xmm1, %xmm0
movq -0x30(%rbp), %rcx
jb 0x5cf7d
movsd 0xe0f5(%rip), %xmm2     # 0x6b068
addsd %xmm2, %xmm0
ucomisd %xmm1, %xmm0
jae 0x5cf73
movsd %xmm0, 0x98(%r14)
movl $0x0, 0xa0(%r14)
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0xa8(%r14)
movl 0x14(%rbx), %eax
cmpq %rax, %rcx
je 0x5cfd0
movq (%rbx), %rax
movsd 0x3660(%rax,%r12), %xmm0
movsd %xmm0, 0x78(%r14)
movsd 0x3670(%rax,%r12), %xmm0
movsd %xmm0, 0x88(%r14)
movq -0x48(%rbp), %rcx
leaq (%rcx,%r12), %r14
movq (%rbx), %rax
movb 0x4722(%rax,%r12), %al
movb %al, 0x112(%rcx,%r12)
testb %al, %al
jne 0x5d027
leaq 0x8(%r14), %rsi
movl 0x18(%r14), %edx
xorpd %xmm0, %xmm0
movq %r14, %rdi
callq 0xf682
leaq 0x30(%r14), %rsi
movl 0x40(%r14), %edx
xorpd %xmm0, %xmm0
movq %r14, %rdi
callq 0xf64c
xorl %eax, %eax
movq %rax, 0xa8(%r14)
movq %rax, 0xc0(%r14)
movq (%rbx), %rax
movl 0x4724(%rax,%r12), %eax
cmpl %eax, 0x114(%r14)
je 0x5d094
movl %eax, 0x114(%r14)
callq 0x450ba
movq 0x5c38(%rax), %rax
movslq 0x114(%r14), %rcx
imulq $0x3700, %rcx, %rcx     # imm = 0x3700
movsd 0x3020(%rax,%rcx), %xmm0
movsd %xmm0, 0x58(%r14)
callq 0x450ba
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 0xdfa9(%rip), %xmm0     # 0x6b058
callq 0xf682
movl $0x0, 0x70(%r14)
movq (%rbx), %rax
leaq (%rax,%r12), %rsi
addq $0x4640, %rsi           # imm = 0x4640
movq %r14, %rdi
xorl %edx, %edx
movsd 0xdf81(%rip), %xmm0     # 0x6b058
callq 0xf64c
xorl %eax, %eax
movq %rax, 0x28(%r14)
movq %rax, 0x50(%r14)
movq (%rbx), %rax
movsd 0x46c0(%rax,%r12), %xmm0
movsd 0xdf65(%rip), %xmm1     # 0x6b060
ucomisd %xmm0, %xmm1
jbe 0x5d115
movsd 0xdf67(%rip), %xmm2     # 0x6b070
addsd %xmm2, %xmm0
ucomisd %xmm0, %xmm1
ja 0x5d109
jmp 0x5d135
movsd 0xdf2b(%rip), %xmm1     # 0x6b048
ucomisd %xmm1, %xmm0
movsd 0xdf3f(%rip), %xmm2     # 0x6b068
jb 0x5d135
addsd %xmm2, %xmm0
ucomisd %xmm1, %xmm0
jae 0x5d12b
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 0x4a75c
movq %rax, %r15
callq 0x4a75c
movsd 0x98(%r13), %xmm1
maxsd 0x3168(%r15), %xmm1
movsd 0x3160(%rax), %xmm0
minsd %xmm1, %xmm0
movsd 0xdec8(%rip), %xmm1     # 0x6b060
ucomisd %xmm0, %xmm1
jbe 0x5d1b6
movq -0x30(%rbp), %r15
movsd 0xdec6(%rip), %xmm2     # 0x6b070
addsd %xmm2, %xmm0
ucomisd %xmm0, %xmm1
ja 0x5d1aa
jmp 0x5d1da
movsd 0xde8a(%rip), %xmm1     # 0x6b048
ucomisd %xmm1, %xmm0
movq -0x30(%rbp), %r15
jb 0x5d1da
movsd 0xde98(%rip), %xmm2     # 0x6b068
addsd %xmm2, %xmm0
ucomisd %xmm1, %xmm0
jae 0x5d1d0
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 0x5cdd1
movq %rbx, %rdi
movl $0x1, %esi
callq 0x5e026
xorl %r14d, %r14d
xorl %r15d, %r15d
xorl %r12d, %r12d
movq (%rbx), %rax
movq 0x8(%rbx), %r13
movl 0x3c(%rax,%r15,4), %eax
cmpl %eax, 0x1bc(%r13,%r12)
je 0x5d2c2
movl %eax, 0x1bc(%r13,%r12)
callq 0x450ba
movq 0x5c38(%rax), %rax
movslq 0x1bc(%r13,%r12), %rcx
imulq $0x3700, %rcx, %rcx     # imm = 0x3700
movsd 0x3020(%rax,%rcx), %xmm0
movsd %xmm0, 0x100(%r13,%r12)
callq 0x450ba
movq 0x5c38(%rax), %rax
movslq 0x1bc(%r13,%r12), %rcx
imulq $0x3700, %rcx, %rcx     # imm = 0x3700
movsd 0x3098(%rax,%rcx), %xmm0
movsd %xmm0, 0x108(%r13,%r12)
movq 0x8(%rbx), %rax
movb %r14b, 0x21d(%rax,%r12)
movb %r14b, 0x1245(%rax,%r12)
addq $0x178, %r12            # imm = 0x178
incq %r15
cmpq $0xb, %r15
jne 0x5d248
movq 0x8(%rbx), %rax
movslq 0x2110(%rax), %rcx
testq %rcx, %rcx
jle 0x5d309
imulq $0x178, %rcx, %rcx      # imm = 0x178
movb $0x1, 0xa5(%rax,%rcx)
movslq 0x2114(%rax), %rcx
testq %rcx, %rcx
jle 0x5d324
imulq $0x178, %rcx, %rcx      # imm = 0x178
movb $0x1, 0x10cd(%rax,%rcx)
movq %rbx, %rdi
callq 0x5e3e6
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x5f16a
movq (%rbx), %rax
cmpb $0x1, 0x3382(%rax)
jne 0x5d34c
movq %rbx, %rdi
callq 0x5f1a0
movq %rbx, %rdi
callq 0x5f226
movq (%rbx), %rax
cmpb $0x1, 0x3382(%rax)
jne 0x5d380
movq %rbx, %rdi
callq 0x5f926
movq %rbx, %rdi
callq 0x5f9d2
movq %rbx, %rdi
callq 0x60d00
movq %rbx, %rdi
callq 0x6261c
movq %rbx, %rdi
callq 0x62732
movq %rbx, %rdi
callq 0x6297e
movq %rbx, %rdi
callq 0x62f76
movq %rbx, %rdi
callq 0x5d3be
movq %rbx, %rdi
callq 0x630e6
movq %rbx, %rdi
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x6360e