void __fastcall AI_AI_PlayerNormal::calc(AI_AI_PlayerNormal *this)
{
  // [COLLAPSED LOCAL DECLARATIONS. PRESS KEYPAD CTRL-"+" TO EXPAND]

  Player::handleSpawnBomb_2(this->_._.actor.player);
  Player::handleSpawnBomb(this->_._.actor.player);
  if ( sub_71011DE4BC(&this->_, v2) & 1 )
    return;
  v3 = Actor::getInfo578_fieldA_60(this->_._.actor.actor);
  if ( !v3 )
    return;
  v4.player = (Player *)this->_._.actor;
  v5 = *(_DWORD *)&v4.player->_._.field_C98;
  if ( v5 & 0x40 || v5 & 0x80 )
  {
    Player::x_8(v4.player);
    AI_AI_PlayerNormal::changeState(this, "待機", 0LL);
    return;
  }
  if ( LOBYTE(v4.player->_._.field_1348) )
  {
    LOBYTE(v4.player->_._.field_1348) = 0;
    if ( ((__int64 (*)(void))this->_._.actor.player->vptr->_.isRiding)() & 1 )
    {
      v6 = ((__int64 (*)(void))this->_._.actor.player->vptr->_.pe.g.a.getPlayerRideInfo)();
      if ( !BaseProcLink::x_1((BaseProcLink *)(v6 + 0x18), *(ActorBase **)(v6 + 8)) )
      {
        v7 = BaseProcLink::acquireActorEx((BaseProcLink *)(v6 + 0x18), 0LL, *(ActorBase **)(v6 + 8));
        v8 = __ldar((unsigned __int8 *)&unk_71025AE4E8);
        v9 = v7;
        if ( !((unsigned __int64)&unk_71025AE4E8 & 1) && (unsigned int)_cxa_guard_acquire_0(&unk_71025AE4E8) )
        {
          Actor::rttiInfo = (__int64)&off_71023545C0;
          _cxa_guard_release_0(&unk_71025AE4E8);
        }
        if ( v9 && v9->vtable->checkDerivedRuntimeTypeInfo((Actor *)v9, &Actor::rttiInfo) )
        {
          v10 = this->_._.actor.actor;
          v11 = (__int64)v9[4].vtable;
          *(_DWORD *)&acc.fromOtherThread = 0x3000007;
          Actor::sendMessageMaybe(v10, v11, (__int64)&acc, 0LL, 1);
        }
      }
    }
    v12 = 0LL;
    do
    {
      v13 = &acc.fromOtherThread + v12;
      BaseProcLink::ctor((BaseProcLink *)((char *)&acc.actor + v12));
      v12 += 0x50LL;
      *((_QWORD *)v13 + 5) = 0xFFFFFFFFFFFFFFFFLL;
      *((_QWORD *)v13 + 6) = 0LL;
      *((_QWORD *)v13 + 7) = 0LL;
    }
    while ( v12 != 0xA00 );
    v461 = 0;
    a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt;
    *(_QWORD *)&a2.idMaybe = "IsNoDamage";
    sub_7100D17D84((evt::ActionContext::Entry *)&acc, 1, (__int64)&a2, 0xFFFFFFFF);
    a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt;
    *(_QWORD *)&a2.idMaybe = "IsWhiteFade";
    sub_7100D17D84((evt::ActionContext::Entry *)&acc, 1, (__int64)&a2, 0xFFFFFFFF);
    AI_AI_PlayerNormal::changeState(this, "奈落", (__int64)&acc);
    v14 = 0xA00LL;
    do
    {
      v15 = &acc.fromOtherThread + v14;
      *((_QWORD *)v15 + 0xFFFFFFFB) = 0xFFFFFFFFFFFFFFFFLL;
      *((_QWORD *)v15 + 0xFFFFFFFC) = 0LL;
      *((_QWORD *)v15 + 0xFFFFFFFD) = 0LL;
      BaseProcLink::reset((BaseProcLink *)((char *)&acc + v14 - 0x48));
      v14 -= 0x50LL;
    }
    while ( v14 );
    return;
  }
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"死亡";
  if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
  {
    v16 = this->_._.vptr.base->AI_AIOrActionBase__m26((AI_AIOrActionBase *)this);
    if ( !((*(__int64 (**)(void))(*(_QWORD *)v16 + 0x30LL))() & 1) )
    {
      v17 = this->_._.vptr.base->AI_AIOrActionBase__m26((AI_AIOrActionBase *)this);
      if ( !((*(__int64 (**)(void))(*(_QWORD *)v17 + 0x28LL))() & 1)
        && !((*(__int64 (__fastcall **)(__int64))(*(_QWORD *)v17 + 0x20LL))(v17) & 1) )
      {
        return;
      }
    }
    if ( ((__int64 (*)(void))this->_._.actor.player->vptr->_.isRiding)() & 1 )
    {
      v18 = 0LL;
      do
      {
        v19 = &acc.fromOtherThread + v18;
        BaseProcLink::ctor((BaseProcLink *)((char *)&acc.actor + v18));
        v18 += 0x50LL;
        *((_QWORD *)v19 + 5) = 0xFFFFFFFFFFFFFFFFLL;
        *((_QWORD *)v19 + 6) = 0LL;
        *((_QWORD *)v19 + 7) = 0LL;
      }
      while ( v18 != 0xA00 );
      a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt;
      v461 = 0;
      *(_QWORD *)&a2.idMaybe = "HasToPlayRidingOnAS";
      sub_7100D17D84((evt::ActionContext::Entry *)&acc, 0, (__int64)&a2, 0xFFFFFFFF);
      AI_AI_PlayerNormal::changeState(this, "騎乗", (__int64)&acc);
      v20 = 0xA00LL;
      do
      {
        v21 = &acc.fromOtherThread + v20;
        *((_QWORD *)v21 + 0xFFFFFFFB) = 0xFFFFFFFFFFFFFFFFLL;
        *((_QWORD *)v21 + 0xFFFFFFFC) = 0LL;
        *((_QWORD *)v21 + 0xFFFFFFFD) = 0LL;
        BaseProcLink::reset((BaseProcLink *)((char *)&acc + v20 - 0x48));
        v20 -= 0x50LL;
      }
      while ( v20 );
      return;
    }
    goto LABEL_884;
  }
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"溺れる";
  if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1
    || (a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt,
        *(_QWORD *)&a2.idMaybe = "奈落",
        AI_AIBase::compareState(&this->_, (sead::SafeString *)&a2) & 1) )
  {
    v22 = this->_._.vptr.base->AI_AIOrActionBase__m26((AI_AIOrActionBase *)this);
    if ( !((*(__int64 (**)(void))(*(_QWORD *)v22 + 0x28LL))() & 1)
      && !((*(__int64 (__fastcall **)(__int64))(*(_QWORD *)v22 + 0x20LL))(v22) & 1) )
    {
      return;
    }
    v23 = ActorBase::x_0((ActorBase *)this->_._.actor.player);
    v24.player = (Player *)this->_._.actor;
    if ( v23 )
    {
      v25 = ActorBase::x_0((ActorBase *)v24.player);
      v26 = __ldar((unsigned __int8 *)&unk_71025AE4E8);
      v27 = v25;
      if ( !((unsigned __int64)&unk_71025AE4E8 & 1) && (unsigned int)_cxa_guard_acquire_0(&unk_71025AE4E8) )
      {
        Actor::rttiInfo = (__int64)&off_71023545C0;
        _cxa_guard_release_0(&unk_71025AE4E8);
      }
      if ( !v27 || !v27->vtable->checkDerivedRuntimeTypeInfo((Actor *)v27, &Actor::rttiInfo) )
        return;
      v29 = v27->_.name.s._.vptr;
      v28 = &v27->_;
      v29->assureTermination(&v28->name.s._);
      v28->name.s._.vptr->assureTermination(&v28->name.s._);
      v30 = v28->name.s._.cstr;
      if ( v30 != "Npc_Zora030" )
      {
        v31 = 0LL;
        do
        {
          v32 = (unsigned __int8)v30[v31];
          if ( v32 != (unsigned __int8)aNpcZora030[v31] )
            break;
          if ( v32 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
            goto LABEL_1118;
          ++v31;
        }
        while ( v31 < 0x80001 );
        return;
      }
LABEL_1118:
      v45 = "ゾーラに掴まる";
      goto changeState;
    }
    v41 = ASList::x_1(v24.player->_._._.g.a.ASList, 0LL, 0);
    ((void (*)(void))v41->vptr->assureTermination)();
    v41->vptr->assureTermination(v41);
    v42 = v41->cstr;
    if ( v42 != "Wait" )
    {
      v43 = 0LL;
      do
      {
        v44 = (unsigned __int8)v42[v43];
        if ( v44 != (unsigned __int8)aWait[v43] )
          break;
        if ( v44 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
          goto LABEL_884;
        ++v43;
      }
      while ( v43 < 0x80001 );
      goto LABEL_64;
    }
LABEL_884:
    v45 = "待機";
    goto changeState;
  }
  v33 = (_DWORD *)((__int64 (*)(void))this->_._.actor.player->vptr->_.pe.g.a.getLife)();
  if ( v33 && *v33 <= 0 && !(sub_7100886BFC((__int64)this->_._.actor.player) & 1) )
  {
    v45 = "死亡";
    goto changeState;
  }
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"奈落開始待ち";
  if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1
    || (a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt,
        *(_QWORD *)&a2.idMaybe = "イベント開始待ち",
        AI_AIBase::compareState(&this->_, (sead::SafeString *)&a2) & 1) )
  {
    v34 = this->_._.vptr.base->AI_AIOrActionBase__m26((AI_AIOrActionBase *)this);
    if ( !((*(__int64 (**)(void))(*(_QWORD *)v34 + 0x28LL))() & 1)
      && !((*(__int64 (__fastcall **)(__int64))(*(_QWORD *)v34 + 0x20LL))(v34) & 1) )
    {
      return;
    }
    if ( ((__int64 (*)(void))this->_._.actor.player->vptr->_.isRiding)() & 1 )
    {
      v35 = PlayerInfo::sInstance;
      v36 = ((__int64 (*)(void))this->_._.actor.player->vptr->_.pe.g.a.getPlayerRideInfo)();
      PlayerInfo::__auto2(v35, v36 + 0x18);
      v37 = 0LL;
      do
      {
        v38 = &acc.fromOtherThread + v37;
        BaseProcLink::ctor((BaseProcLink *)((char *)&acc.actor + v37));
        v37 += 0x50LL;
        *((_QWORD *)v38 + 5) = 0xFFFFFFFFFFFFFFFFLL;
        *((_QWORD *)v38 + 6) = 0LL;
        *((_QWORD *)v38 + 7) = 0LL;
      }
      while ( v37 != 0xA00 );
      a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt;
      v461 = 0;
      *(_QWORD *)&a2.idMaybe = "HasToPlayRidingOnAS";
      sub_7100D17D84((evt::ActionContext::Entry *)&acc, 0, (__int64)&a2, 0xFFFFFFFF);
      AI_AI_PlayerNormal::changeState(this, "騎乗", (__int64)&acc);
      v39 = 0xA00LL;
      do
      {
        v40 = &acc.fromOtherThread + v39;
        *((_QWORD *)v40 + 0xFFFFFFFB) = 0xFFFFFFFFFFFFFFFFLL;
        *((_QWORD *)v40 + 0xFFFFFFFC) = 0LL;
        *((_QWORD *)v40 + 0xFFFFFFFD) = 0LL;
        BaseProcLink::reset((BaseProcLink *)((char *)&acc + v39 - 0x48));
        v39 -= 0x50LL;
      }
      while ( v39 );
      return;
    }
LABEL_112:
    if ( !(((__int64 (*)(void))this->_._.actor.player->vptr->_.PlayerBase__m199)() & 1) )
      goto LABEL_884;
LABEL_113:
    v45 = "しゃがみ待機";
    goto changeState;
  }
  if ( !sForceEnableGlidingSurfingRupee && !sIsDungeon )
  {
    if ( getFlag_IsGet_PlayerStole2(0) )
    {
      if ( !(getFlag_FirstTouchdown(0) & 1) )
      {
        if ( (PlacementMgr::x_0(PlacementMgr::sInstance, &this->_._.actor.player->_._.actorPosCopy, (__int64)&acc),
              *(_DWORD *)&acc.fromOtherThread != 4)
          && *(_DWORD *)&acc.fromOtherThread != 3
          || (unsigned int)(*((_DWORD *)&acc.fromOtherThread + 1) - 5) >= 2 )
        {
          setFlag_FirstTouchdown(1LL, 0);
        }
      }
    }
    else
    {
      v52 = this->_._.actor.player;
      v53 = v52->_._.actorPosCopy.x;
      if ( v53 < -1600.0 || v53 > -350.0 || (v54 = v52->_._.actorPosCopy.z, v54 < 1400.0) || v54 > 2400.0 )
      {
        v45 = "奈落開始待ち";
        *(_QWORD *)&v52->_.respawnPosVec3.x = 0x437D50B6C47F6EA2LL;
        v52->_.respawnPosVec3.z = 1792.6;
        *(_DWORD *)&this->_._.actor.player->_._.disableFairies |= 0x40000u;
        goto changeState;
      }
    }
  }
  v46 = this->_._.actor.player;
  if ( LODWORD(v46->_.field_1CA4) == 1
    || (v47 = ((__int64 (*)(void))v46->vptr->_.pe.g.a.m127)(),
        (*(unsigned int (**)(void))(*(_QWORD *)v47 + 0x38LL))() == 0x15) )
  {
    if ( AI_AI_PlayerNormal::lifeStuff(this) & 1 )
      return;
    this->_._.actor.player->_._.isNoStandSquat |= 0x200000000uLL;
  }
  if ( getFlag_LastBossIncompleteGanonGenerateFlag(0) )
  {
    v48.player = (Player *)this->_._.actor;
    if ( v48.player->_._.actorPosCopy.y < 170.0 )
    {
      v49 = Actor::getInfo578_fieldA_60(v48.actor);
      if ( !v49 )
        return;
      *(_QWORD *)&acc.fromOtherThread = 0x433F0000C37E0000LL;
      LODWORD(acc.actor) = 0xC4804000;
      warpActorToPosition(v49, (__int64)&acc);
      return;
    }
  }
  if ( aocManager::sInstance->version >= 0x300
    && isBalladOfHeroesStep02AndNot03()
    && !eventMgrHasActiveEvent()
    && !sIsCDungeon )
  {
    v50 = oneHitObliteratorHasEscaped(1);
    v51.player = (Player *)this->_._.actor;
    if ( v50 == 1 )
    {
      *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
      acc.actor = (ActorBase *)"Demo605_0";
      a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt;
      *(_QWORD *)&a2.idMaybe = "Demo605_0";
LABEL_120:
      evt::callEvent_0(v51.actor, (sead::SafeString *)&acc, (sead::SafeString *)&a2, 0, 0);
      return;
    }
    v55 = v51.player->_._.actorPosCopy.x;
    if ( v55 < -1900.0 || v55 > 0.0 || (v56 = v51.player->_._.actorPosCopy.z, v56 < 1100.0) || v56 > 3000.0 )
    {
      *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
      acc.actor = (ActorBase *)"Demo605_0";
      a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt;
      *(_QWORD *)&a2.idMaybe = "Demo605_1";
      goto LABEL_120;
    }
    if ( !(getFlag_HeroSoulProhibition(0) & 1) )
      setFlag_HeroSoulProhibition(1LL, 0);
    if ( !(sub_71008E6C30(0LL) & 1) )
      sub_71008E6CDC(1LL, 0);
  }
  if ( LODWORD(this->_._.actor.player->_.field_1CA4) == 5 )
  {
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"坂滑り";
    if ( !(AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1) )
    {
      if ( sub_71008353B8(this) & 1 )
        return;
    }
  }
  v57.player = (Player *)this->_._.actor;
  if ( v57.player->_._.isOnSurfaceFlag & 0x10 || v57.player->_._.field_C3C & 0x400000 )
  {
    v60 = v57.player->_._._.g.a.actorParam->_.gParamList;
    v61 = v60->res.numObjects;
    v62 = v60->res.objects;
    if ( v61 > 0x15 )
      v62 = (BgparamlistObjects *)((char *)v62 + 0xA8);
    v63 = v62->system[0x29]._.obj.field_28;
    v57.player->_.field_1EA4 = 0xBF800000;
    v57.player->_.field_1EA0 = v63;
    HIDWORD(v57.player->_.field_1E98) = v63;
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"攻撃";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
      goto LABEL_112;
    a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt;
    *(_QWORD *)&a2.idMaybe = "着地後攻撃";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&a2) & 1 )
      goto LABEL_112;
    state.vptr = &sead::SafeString::vt;
    state.cstr = "武器投げ";
    if ( AI_AIBase::compareState(&this->_, &state) & 1 )
      goto LABEL_112;
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"サイドステップ着地";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1
      || (a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt,
          *(_QWORD *)&a2.idMaybe = "バク転着地",
          AI_AIBase::compareState(&this->_, (sead::SafeString *)&a2) & 1) )
    {
      if ( this->_._.actor.player->_._.slowTimeFlagsMaybe & 0x100 )
        goto LABEL_884;
    }
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"ジャンプ斬り";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
      goto LABEL_118;
    if ( Player::x_35(this->_._.actor.player) )
      goto LABEL_106;
  }
  else if ( Player::x_35(v57.player) )
  {
LABEL_106:
    v58 = *(_DWORD *)this->equipNoiseValue;
    v59.player = (Player *)this->_._.actor;
    goto LABEL_135;
  }
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"攻撃";
  if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1
    || (a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt,
        *(_QWORD *)&a2.idMaybe = "着地後攻撃",
        AI_AIBase::compareState(&this->_, (sead::SafeString *)&a2) & 1) )
  {
    v59.player = (Player *)this->_._.actor;
    if ( v59.player->_._.field_CEB & 0x10 )
      goto LABEL_135;
    goto LABEL_130;
  }
  state.vptr = &sead::SafeString::vt;
  state.cstr = "ジャンプ斬り";
  if ( AI_AIBase::compareState(&this->_, &state) & 1 )
  {
    v59.player = (Player *)this->_._.actor;
    goto LABEL_129;
  }
  v449.vptr = &sead::SafeString::vt;
  v449.cstr = "馬上ジャンプ攻撃";
  v64 = AI_AIBase::compareState(&this->_, &v449);
  v59.player = (Player *)this->_._.actor;
  if ( v64 & 1 )
  {
LABEL_129:
    if ( v59.player->_._.field_CEB & 0x10 )
      goto LABEL_135;
LABEL_130:
    v65 = this->attackNoiseValue;
LABEL_131:
    v66 = *(_DWORD *)v65;
    goto LABEL_135;
  }
  v67 = ((__int64 (*)(void))v59.player->vptr->_.PlayerBase__m179)();
  v59.player = (Player *)this->_._.actor;
  if ( v67 & 1 && HIDWORD(v59.player->_.field_1F84) )
  {
    v65 = this->arrowReadyNoiseValue;
    goto LABEL_131;
  }
LABEL_135:
  ((void (__fastcall *)(_QWORD))sub_710086DCF8)((ActorPointer)v59.player);
  if ( this->_._.actor.player->_._.field_C98 & 2 )
  {
    v45 = "スイッチぶら下がり";
    goto changeState;
  }
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"凍る";
  if ( !(AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1) )
  {
    if ( this->_._.actor.player->_.gap_2558[0] & 8 )
    {
      v45 = "凍る";
      goto changeState;
    }
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"痺れる";
    if ( !(AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1)
      && this->_._.actor.player->_.gap_2558[0] & 0x10 )
    {
      v45 = "痺れる";
      goto changeState;
    }
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"怯む";
    if ( !(AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1) )
    {
      v72.player = (Player *)this->_._.actor;
      if ( v72.player->_.gap_2558[0] & 0x20 )
      {
        if ( !(*(_DWORD *)&v72.player->_._.field_CE4 & 0x80000000) )
        {
          if ( Player::isSurfingOnGround(v72.player) )
          {
            v45 = "怯む";
            goto changeState;
          }
LABEL_383:
          v45 = "大ダメージ";
          goto changeState;
        }
      }
    }
  }
  v68 = ((__int64 (*)(void))this->_._.actor.player->vptr->_.pe.g.a.m127)();
  v69 = __ldar((unsigned __int8 *)&unk_71025C94E8);
  v70 = (float *)v68;
  if ( !((unsigned __int64)&unk_71025C94E8 & 1) && (unsigned int)_cxa_guard_acquire_0(&unk_71025C94E8) )
  {
    qword_71025C94E0 = (__int64)&off_7102451C90;
    _cxa_guard_release_0(&unk_71025C94E8);
  }
  if ( v70 && (**(__int64 (__fastcall ***)(float *, __int64 *))v70)(v70, &qword_71025C94E0) & 1 )
  {
    if ( (*(unsigned int (__fastcall **)(float *))(*(_QWORD *)v70 + 0x38LL))(v70) == 6 )
    {
      v71 = (BaseProcLink *)(*(__int64 (__fastcall **)(float *))(*(_QWORD *)v70 + 0x120LL))(v70);
      acc.fromOtherThread = 0;
      acc.actor = 0LL;
      LOBYTE(v452) = 0;
      BaseProcLink::getActor(v71, &acc);
      if ( ActorAccessor::actorHasTag(&acc, Tag_IsPressHellObj) & 1 )
      {
        this->_._.actor.player->_._.field_D18 = 3;
        AI_AI_PlayerNormal::lifeStuff(this);
        ActorAccessor::dtor(&acc);
        return;
      }
      ActorAccessor::dtor(&acc);
    }
    if ( ((__int64 (*)(void))this->_._.actor.player->vptr->_.PlayerBase__m347)() & 1
      && !(*(unsigned int (__fastcall **)(float *))(*(_QWORD *)v70 + 0x20LL))(v70) )
    {
      if ( ((__int64 (*)(void))this->_._.actor.player->vptr->_.PlayerBase__m303)() & 1
        || (v73 = (*(__int64 (__fastcall **)(float *))(*(_QWORD *)v70 + 0x40LL))(v70), sub_7100736BD8(v73))
        || ((__int64 (*)(void))this->_._.actor.player->vptr->_.pe.g.a.anonymous_43)() & 1
        || ((__int64 (__fastcall *)(_QWORD))sub_710084BDEC)((ActorPointer)this->_._.actor.player) & 1
        && (*(unsigned int (__fastcall **)(float *))(*(_QWORD *)v70 + 0x40LL))(v70) != 0xD
        || !(((__int64 (__fastcall *)(_QWORD))sub_710087394C)((ActorPointer)this->_._.actor.player) & 1)
        && v70[0x8B] > 0.0
        && !*((_BYTE *)v70 + 0x230)
        && (*(unsigned int (__fastcall **)(float *))(*(_QWORD *)v70 + 0x40LL))(v70) != 0xD
        && (*(unsigned int (__fastcall **)(float *))(*(_QWORD *)v70 + 0x40LL))(v70) != 0xFFFFFFFF )
      {
        sub_7100873ACC((__int64)this->_._.actor.player);
      }
    }
    if ( (*(unsigned int (__fastcall **)(float *))(*(_QWORD *)v70 + 0x38LL))(v70) == 0xF )
      *(float *)&this->_._.actor.player->_.field_20D0 = this->_._.actor.player->_._.actorPosCopy.y;
    v74 = (*(__int64 (__fastcall **)(float *))(*(_QWORD *)v70 + 0x38LL))(v70);
    ASList::x_2(this->_._.actor.player->_._._.g.a.ASList, 0x42LL, 0x27, v74 == 9);
    v75 = (*(__int64 (__fastcall **)(float *))(*(_QWORD *)v70 + 0x40LL))(v70);
    if ( !*((_BYTE *)v70 + 0x232) )
    {
      switch ( v75 + 1 )
      {
        case 0:
        case 4:
        case 5:
        case 7:
        case 8:
        case 9:
        case 0x22:
          goto LABEL_202;
        case 1:
        case 3:
          goto LABEL_167;
        case 2:
          if ( ASList::x_7(this->_._.actor.player->_._._.g.a.ASList, 3LL, 2LL, sub_710002E82C, 0LL) & 1 )
            goto LABEL_200;
          goto LABEL_199;
        case 6:
          Player::x_16(this->_._.actor.player);
          ((void (__fastcall *)(_QWORD))sub_7100882478)((ActorPointer)this->_._.actor.player);
          v111 = (PlayerBase *)this->_._.actor.player;
          v112 = PlayerBase::getEquipmentTypeName(v111, 6u);
          v111->_.equipmentTypeName._.vptr->assureTermination(&v111->_.equipmentTypeName._);
          v111->_.equipmentTypeName._.vptr->assureTermination(&v111->_.equipmentTypeName._);
          v113 = v111->_.equipmentTypeName._.cstr;
          v112->vptr->assureTermination(v112);
          v114 = v112->cstr;
          if ( v113 == v114 )
            goto LABEL_270;
          v115 = v111->_.equipmentTypeName._.cstr;
          v116 = 1LL;
          while ( 2 )
          {
            v117 = (unsigned __int8)v115[v116 - 1];
            if ( v117 != (unsigned __int8)v114[v116 - 1] )
              goto LABEL_446;
            if ( v117 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
              break;
            if ( v116 >= 0x80001 )
              goto LABEL_446;
            v118 = (unsigned __int8)v115[v116];
            if ( v118 != (unsigned __int8)v114[v116] )
              goto LABEL_446;
            if ( v118 != (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
            {
              v116 += 2LL;
              continue;
            }
            break;
          }
LABEL_270:
          RuneMgr::setHandled(RuneMgr::sInstance);
          v119 = PlayerBase::getEquipmentTypeName((PlayerBase *)this->_._.actor.player, 0);
          v120.player = (Player *)this->_._.actor;
          v121 = v120.player->_._.equipmentTypeName._.cstr;
          ((void (*)(void))v119->vptr->assureTermination)();
          v122 = v119->cstr;
          if ( v121 == v122 )
            goto LABEL_446;
          v119->vptr->assureTermination(v119);
          v123 = 0LL;
          v124 = (signed __int64)(v119->cstr + 1);
          break;
        case 0xA:
        case 0xF:
          v45 = "ガード崩れ";
          goto changeState;
        case 0xB:
        case 0x17:
        case 0x18:
        case 0x1C:
        case 0x1F:
        case 0x20:
          goto LABEL_383;
        case 0xC:
        case 0xD:
          v45 = "ガードスリップ";
          goto changeState;
        case 0xE:
          v128 = this->_._.actor.player;
          if ( v128[0xC40] & 0x20
            || !((*(__int64 (**)(void))(*(_QWORD *)v128 + 0xAD8LL))() & 1)
            || (*(unsigned int (__fastcall **)(float *))(*(_QWORD *)v70 + 0x20LL))(v70) )
          {
            sub_71008883B8((__int64)this->_._.actor.player);
          }
          else
          {
            sub_7100873ACC((__int64)this->_._.actor.player);
          }
          return;
        case 0x11:
          goto LABEL_469;
        case 0x13:
          if ( ((__int64 (__fastcall *)(_QWORD))sub_71007A2604)((ActorPointer)this->_._.actor.player) & 1 )
            goto def_710082F8CC;
          goto LABEL_469;
        case 0x14:
          v109 = Rumble::sInstance;
          v110 = 2;
          goto LABEL_470;
        case 0x19:
          v45 = "水の遺物咆哮吹き飛び";
          goto changeState;
        case 0x1A:
        case 0x1B:
          *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
          acc.actor = (ActorBase *)"滑落";
          if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
            goto LABEL_202;
          a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt;
          *(_QWORD *)&a2.idMaybe = "ステップ攻撃";
          if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&a2) & 1 )
            goto LABEL_202;
          state.vptr = &sead::SafeString::vt;
          state.cstr = "盾サーフィン";
          if ( AI_AIBase::compareState(&this->_, &state) & 1 )
            goto LABEL_202;
          v449.vptr = &sead::SafeString::vt;
          v449.cstr = "ジャンプ斬り";
          if ( AI_AIBase::compareState(&this->_, &v449) & 1 )
            goto LABEL_202;
          *(_QWORD *)a6 = &sead::SafeString::vt;
          v448 = "馬上ジャンプ攻撃";
          if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)a6) & 1 )
            goto LABEL_202;
          v45 = "着地ダメージ";
          goto changeState;
        default:
def_710082F8CC:
          ((void (__fastcall *)(_QWORD))sub_7100888278)((ActorPointer)this->_._.actor.player);
          if ( ((__int64 (__fastcall *)(_QWORD))sub_71008738BC)((ActorPointer)this->_._.actor.player) & 1 )
            goto LABEL_383;
          if ( ((__int64 (__fastcall *)(_QWORD))sub_710087391C)((ActorPointer)this->_._.actor.player) & 1 )
            goto LABEL_383;
          v126 = this->_._.actor.player;
          if ( v126[0xCEC] & 2 )
            goto LABEL_383;
          if ( !((*(__int64 (**)(void))(*(_QWORD *)v126 + 0x588LL))() & 1)
            && !(((__int64 (*)(void))this->_._.actor.player->vptr->_.PlayerBase__m193_isShieldRide_Maybe)() & 1) )
          {
            v127 = this->_._.actor.player;
            if ( !(v127[0xC41] & 4) )
            {
              if ( (*(__int64 (**)(void))(*(_QWORD *)v127 + 0x5E0LL))() & 1 )
              {
                v45 = "泳ぎダメージ";
              }
              else if ( ((__int64 (__fastcall *)(_QWORD))sub_71008738EC)((ActorPointer)this->_._.actor.player) & 1 )
              {
                v45 = "中ダメージ";
              }
              else
              {
                v45 = "小ダメージ";
              }
              goto changeState;
            }
          }
          if ( ((__int64 (*)(void))this->_._.actor.player->vptr->_.isRiding)() & 1
            || ((__int64 (*)(void))this->_._.actor.player->vptr->_.PlayerBase__m193_isShieldRide_Maybe)() & 1 )
          {
            Player::x_23(this->_._.actor.player, "DamageS", 0, -1.0);
          }
          else
          {
            Player::switchToAnimSequenceMaybe(this->_._.actor.player, "DamageS", 1, -1.0);
          }
LABEL_469:
          v109 = Rumble::sInstance;
          v110 = 0;
LABEL_470:
          Rumble::__auto0(v109, v110, 1);
          goto LABEL_202;
      }
      while ( v119->cstr[v123] != sead::SafeStringBase<char>::cNullChar )
      {
        if ( *(unsigned __int8 *)(v124 + v123) == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
        {
          LODWORD(v123) = v123 + 1;
          break;
        }
        if ( *(unsigned __int8 *)(v124 + v123 + 1) == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
        {
          LODWORD(v123) = v123 + 2;
          break;
        }
        v125 = v123 + 2;
        v123 += 3LL;
        if ( v125 >= 0x80000 )
        {
          LODWORD(v123) = 0;
          break;
        }
      }
      v176 = v120.player->_._.equipmentTypeName.length;
      if ( (signed int)v123 >= v176 )
        LODWORD(v123) = v176 - 1;
      v177 = (signed int)v123;
      memcpy_0(v121, v122, (signed int)v123);
      v121[v177] = sead::SafeStringBase<char>::cNullChar;
LABEL_446:
      v178 = ASList::x_1(this->_._.actor.player->_._._.g.a.ASList, 1LL, 1u);
      ((void (*)(void))v178->vptr->assureTermination)();
      v178->vptr->assureTermination(v178);
      v179 = v178->cstr;
      if ( v179 == "DamageSUpper" )
      {
LABEL_452:
        if ( !(ASList::x(this->_._.actor.player->_._._.g.a.ASList, 0, 0LL, 1u, 1u, (char *)sub_71011638DC, 0LL, 1) & 1) )
          goto LABEL_202;
        Player::x_18(this->_._.actor.player, 1LL);
      }
      else
      {
        v180 = 0LL;
        do
        {
          v181 = (unsigned __int8)v179[v180];
          if ( v181 != (unsigned __int8)aDamagesupper[v180] )
            break;
          if ( v181 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
            goto LABEL_452;
          ++v180;
        }
        while ( v180 < 0x80001 );
      }
      Player::x_23(this->_._.actor.player, "DamageSUpper", 0, -1.0);
      goto LABEL_202;
    }
    *((_BYTE *)v70 + 0x232) = 0;
LABEL_167:
    v76.player = (Player *)this->_._.actor;
    if ( *(_WORD *)v76.player->_.gap_2558 & 0x300 )
    {
      if ( !(*(_WORD *)v76.player->_.gap_2558 & 0x100) )
        goto LABEL_170;
    }
    else
    {
      if ( (*(unsigned int (__fastcall **)(float *))(*(_QWORD *)v70 + 0x38LL))(v70) == 0x13
        || (*(unsigned int (__fastcall **)(float *))(*(_QWORD *)v70 + 0x38LL))(v70) == 0x14
        || (*(unsigned int (__fastcall **)(float *))(*(_QWORD *)v70 + 0x38LL))(v70) == 0xA )
      {
        goto LABEL_189;
      }
      v76.player = (Player *)this->_._.actor;
      if ( !(*(_WORD *)v76.player->_.gap_2558 & 0x100) )
        goto LABEL_170;
    }
    v77 = *(_DWORD *)&v76.player->_._.field_C44;
    if ( v77 & 0x800 )
    {
      v84 = v77 & 0xFFFFF7FF;
      v83 = 1;
      goto LABEL_192;
    }
LABEL_170:
    v78 = ASList::x_1(v76.player->_._._.g.a.ASList, 1LL, 1u);
    ((void (*)(void))v78->vptr->assureTermination)();
    v78->vptr->assureTermination(v78);
    v79 = v78->cstr;
    if ( v79 == "DamageSUpper" )
    {
LABEL_186:
      v83 = 0;
      if ( !(ASList::x(this->_._.actor.player->_._._.g.a.ASList, 0, 0LL, 1u, 1u, (char *)sub_71011638DC, 0LL, 1) & 1) )
      {
LABEL_193:
        v85 = ASList::x_1(this->_._.actor.player->_._._.g.a.ASList, 1LL, 1u);
        ((void (*)(void))v85->vptr->assureTermination)();
        v85->vptr->assureTermination(v85);
        v86 = v85->cstr;
        if ( v86 != "DamageSUpper" )
        {
          v87 = 0LL;
          do
          {
            v88 = (unsigned __int8)v86[v87];
            if ( v88 != (unsigned __int8)aDamagesupper[v87] )
              break;
            if ( v88 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
              goto LABEL_200;
            ++v87;
          }
          while ( v87 < 0x80001 );
          if ( !((v83 | (unsigned int)ASList::x_7(
                                        this->_._.actor.player->_._._.g.a.ASList,
                                        3LL,
                                        2LL,
                                        sub_710002E82C,
                                        0LL)) & 1) )
LABEL_199:
            ((void (__fastcall *)(_QWORD, _QWORD))sub_71008563F0)((ActorPointer)this->_._.actor.player, "FaceDamageS");
        }
LABEL_200:
        if ( ((__int64 (__fastcall *)(_QWORD))sub_71007D86B4)((ActorPointer)this->_._.actor.player) & 1 )
          Player::x_18(this->_._.actor.player, 1LL);
        goto LABEL_202;
      }
      Player::x_18(this->_._.actor.player, 1LL);
    }
    else
    {
      v80 = 0LL;
      do
      {
        v81 = (unsigned __int8)v79[v80];
        if ( v81 != (unsigned __int8)aDamagesupper[v80] )
          break;
        if ( v81 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
          goto LABEL_186;
        ++v80;
      }
      while ( v80 < 0x80001 );
      v82.player = (Player *)this->_._.actor;
      if ( !(v82.player->_._.field_CED & 0x20)
        || v82.player->_._.slowTimeFlagsMaybe & 0x10
        || ((__int64 (__fastcall *)(_QWORD))sub_7100890394)((ActorPointer)v82.player) & 1 )
      {
        goto LABEL_189;
      }
    }
    Player::x_23(this->_._.actor.player, "DamageSUpper", 0, -1.0);
    v76.player = (Player *)this->_._.actor;
    if ( !(v76.player->_.gap_2558[1] & 1) )
    {
LABEL_189:
      v83 = 0;
      goto LABEL_193;
    }
    v84 = *(_DWORD *)&v76.player->_._.field_C44 | 0x800;
    v83 = 0;
LABEL_192:
    *(_DWORD *)&v76.player->_._.field_C44 = v84;
    goto LABEL_193;
  }
LABEL_202:
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"掴まれる";
  if ( !(AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1) && this->field_140 )
  {
    if ( ((__int64 (__fastcall *)(_QWORD))sub_71005DC444)((ActorPointer)this->_._.actor.player) & 1 )
    {
      this->field_140 = 0;
      BaseProcLink::reset(&this->field_118);
      this->vtable_110[1].sub_7100012538(&this->vtable_110);
      v45 = "掴まれる";
      goto changeState;
    }
    if ( !ActorBase::x_0((ActorBase *)this->_._.actor.player) )
    {
      this->field_140 = 0;
      BaseProcLink::reset(&this->field_118);
      this->vtable_110[1].sub_7100012538(&this->vtable_110);
    }
  }
  v89.player = (Player *)this->_._.actor;
  v90 = *(_DWORD *)&v89.player->_._.field_CE4;
  if ( v90 & 0x400
    || *(_DWORD *)&v89.player->_._.field_CF0 & 0x18000 | *(_DWORD *)&v89.player->_._.field_CE4 & 0x40
    || v89.player->_.gap_2558[0] & 8
    || *(_BYTE *)(*(_QWORD *)(((__int64 (*)(void))v89.player->vptr->_.getAttachedTargetActor2)() + 0xB0) + 0x49LL) & 2 )
  {
    goto LABEL_316;
  }
  v91.player = (Player *)this->_._.actor;
  v92 = (~*(unsigned __int16 *)(v3 + 0x116) & 0x104) == 0;
  if ( v91.player->_._.isShieldRide & 0x80 )
  {
    if ( v91.player->_._._.g.a.field_68F[0] )
      v93 = *(float *)&v91.player->_._._.g.a.field_6F0 - v91.player->_._._.g.a.position.y;
    else
      v93 = 0.0;
    v92 = v93 > 1.4;
  }
  v94 = ((__int64 (*)(void))v91.player->vptr->_.PlayerBase__m186)();
  v95 = (__int64)this->_._.actor.player;
  if ( v94 & 1 )
  {
    if ( *(float *)(v95 + 0x1EB4) <= 0.00000011921 )
    {
      if ( *(float *)(v95 + 0x20D4) > (float)(*(float *)(v95 + 0x1774) + (float)((float)(1.4 + 0.05) + -0.2)) )
      {
        v96 = ASList::x_1(*(_QWORD *)(v95 + 0x560), 0LL, 0);
        ((void (*)(void))v96->vptr->assureTermination)();
        v96->vptr->assureTermination(v96);
        v97 = v96->cstr;
        if ( v97 != "GroundDownToWall" )
        {
          v98 = 0LL;
          do
          {
            v99 = (unsigned __int8)v97[v98];
            if ( v99 != (unsigned __int8)aGrounddowntowa[v98] )
              break;
            if ( v99 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
              goto LABEL_236;
            ++v98;
          }
          while ( v98 < 0x80001 );
          v95 = (__int64)this->_._.actor.player;
LABEL_233:
          v102 = sub_710086CAB8(v95);
          v103 = this->_._.actor.player;
          if ( v102 & 1 && !(v103[0xCFC] & 8) )
            goto LABEL_235;
          if ( (*(__int64 (**)(void))(*(_QWORD *)v103 + 0x888LL))() )
          {
            v105 = (ActorBase *)((__int64 (*)(void))this->_._.actor.player->vptr->_.PlayerBase__m273)();
            v106 = oneHitObliteratorCheckIsActor(v105, 0);
          }
          else
          {
            v106 = 0;
          }
          if ( *(_BYTE *)(v3 + 0x18C) == 1 )
            goto LABEL_316;
          v129 = (_DWORD *)((__int64 (*)(void))this->_._.actor.player->vptr->_.pe.g.a.getLife)();
          if ( v129 && *v129 > 4
            || Player::x_54(this->_._.actor.player)
            || ((__int64 (*)(void))this->_._.actor.player->vptr->hasFairy)() & 1 )
          {
            if ( !v106 )
            {
LABEL_300:
              if ( !(sub_71008E6D90(0LL) & 1) )
              {
                v130.player = (Player *)this->_._.actor;
                if ( !v130.player->_._._.g.a.field_1A0 )
                {
                  v131 = v130.player->_._._.g.a.placementObj;
                  if ( !v131 || !(v131->flags0 & 0x20000) )
                  {
                    *(_DWORD *)&v130.player->_._.field_CE4 |= 0x400u;
                    v132.player = (Player *)this->_._.actor;
                    if ( !(v132.player->_._.isBgCrossFoot & 8) )
                    {
LABEL_429:
                      callPlayerRespawnEvent(v132.actor);
                      *(_DWORD *)&this->_._.actor.player->_._.field_C44 |= 0x10u;
                      return;
                    }
                    *(_DWORD *)&v132.player->_._.field_CEC |= 0x100u;
LABEL_428:
                    v132.player = (Player *)this->_._.actor;
                    goto LABEL_429;
                  }
                }
              }
              goto LABEL_316;
            }
          }
          else if ( !((v106 | ~((unsigned int (*)(void))this->_._.actor.player->vptr->_.canUseMiphaGrace)()) & 1) )
          {
            goto LABEL_300;
          }
LABEL_312:
          v45 = "泳ぎ";
          this->_._.actor.player->_._.isNoStandSquat |= 0x200000000uLL;
          goto changeState;
        }
      }
LABEL_236:
      v95 = (__int64)this->_._.actor.player;
    }
  }
  else
  {
    v100 = Player::x_2(v95);
    v95 = (__int64)this->_._.actor.player;
    if ( !(v100 & 1) || *(_BYTE *)(v95 + 0xCFC) & 8 )
    {
      if ( v92 )
        goto LABEL_233;
    }
    else if ( *(_BYTE *)(v95 + 0x68F) )
    {
      if ( *(float *)(v95 + 0x1EA8) > *this->inWaterTimeForRagdoll )
      {
        LODWORD(acc.actor) = *(_DWORD *)(v95 + 0x1778);
        *(_QWORD *)&acc.fromOtherThread = *(_QWORD *)(v95 + 0x1770);
        *((_DWORD *)&acc.fromOtherThread + 1) = *(_DWORD *)(v95 + 0x20D4);
        a2.idMaybe = (int)acc.actor;
        a2.baseProcLinkData = *(BaseProcLinkData **)&acc.fromOtherThread;
        *((float *)&a2.baseProcLinkData + 1) = *((float *)&acc.fromOtherThread + 1) - 1.4;
        v101 = sub_710087F360(v95, (Vec3 *)&acc, (Vec3 *)&a2, 0LL, 0LL);
        v95 = (__int64)this->_._.actor.player;
        if ( !(v101 & 1) )
          goto LABEL_233;
      }
    }
  }
  if ( !(*(_BYTE *)(v95 + 0xCFC) & 8) )
    goto LABEL_316;
  v104 = *(_BYTE *)(v95 + 0x68F) ? *(float *)(v95 + 0x6F0) - *(float *)(v95 + 0x3B4) : 0.0;
  if ( v104 <= 1.4 )
    goto LABEL_316;
  if ( (*(__int64 (**)(void))(*(_QWORD *)v95 + 0x888LL))() )
  {
    v107 = (ActorBase *)((__int64 (*)(void))this->_._.actor.player->vptr->_.PlayerBase__m273)();
    v108 = oneHitObliteratorCheckIsActor(v107, 0);
  }
  else
  {
    v108 = 0;
  }
  v133 = (_DWORD *)((__int64 (*)(void))this->_._.actor.player->vptr->_.pe.g.a.getLife)();
  if ( v133 && *v133 > 4
    || Player::x_54(this->_._.actor.player)
    || ((__int64 (*)(void))this->_._.actor.player->vptr->hasFairy)() & 1 )
  {
    if ( v108 )
      goto LABEL_312;
  }
  else if ( (v108 | ~((unsigned int (*)(void))this->_._.actor.player->vptr->_.canUseMiphaGrace)()) & 1 )
  {
    goto LABEL_312;
  }
  if ( !(sub_71008E6D90(0LL) & 1) )
  {
    v134.player = (Player *)this->_._.actor;
    if ( !v134.player->_._._.g.a.field_1A0 )
    {
      v174 = v134.player->_._._.g.a.placementObj;
      if ( !v174 || !(v174->flags0 & 0x20000) )
      {
        *(_DWORD *)&v134.player->_._.field_CE4 |= 0x400u;
        *(_DWORD *)&this->_._.actor.player->_._.field_CEC |= 0x100u;
        goto LABEL_428;
      }
    }
  }
LABEL_316:
  if ( sub_7100835578(this) & 1 )
    return;
  v135 = this->_._.actor.player;
  v136 = v135[0x33B];
  if ( !(v136 & 0xC2)
    && !(v135[0x33C] & 0x200000 | v136 & 0x4080400 | v135[0x33C] & 0x10000 | v135[0x33C] & 0x800000)
    && !((*(__int64 (**)(void))(*(_QWORD *)v135 + 0x588LL))() & 1) )
  {
    v137 = (__int64)this->_._.actor.player;
    if ( !(*(_BYTE *)(v137 + 0x2558) & 0x18)
      && !(*(_BYTE *)(v137 + 0xCFC) & 1)
      && !(*(_BYTE *)(v137 + 0xC9A) & 1)
      && !(*(_BYTE *)(v137 + 0xC4A) & 0x10) )
    {
      LODWORD(state.cstr) = *(_DWORD *)(v137 + 0x1778);
      state.vptr = *(sead::SafeStringBase::vtable **)(v137 + 0x1770);
      v138 = 0.5;
      *((float *)&state.vptr + 1) = *((float *)&state.vptr + 1) + 0.5;
      LODWORD(v449.cstr) = *(_DWORD *)(v137 + 0x1778);
      v449.vptr = *(sead::SafeStringBase::vtable **)(v137 + 0x1770);
      if ( *(_BYTE *)(v137 + 0xCF3) & 8 )
        v138 = *this->toFallHeightForJustRush;
      *((float *)&v449.vptr + 1) = *((float *)&v449.vptr + 1) - v138;
      if ( !(sub_710087F360(v137, (Vec3 *)&state, (Vec3 *)&v449, 0LL, 0LL) & 1) )
      {
        v168 = (__int64)this->_._.actor.player;
        if ( *(_BYTE *)(v168 + 0xCF2) & 2 )
        {
          *((float *)&v449.vptr + 1) = *((float *)&v449.vptr + 1) + -5.0;
          if ( !(sub_710087F360(v168, (Vec3 *)&state, (Vec3 *)&v449, 0LL, &a2) & 1) )
            goto LABEL_118;
          v175.player = (Player *)this->_._.actor;
          sead::CriticalSection::lock(&v175.player->_._.field_C58);
          *(_DWORD *)&v175.player->_._.field_C98 |= 0x40000u;
          sead::CriticalSection::unlock(&v175.player->_._.field_C58);
          *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
          acc.actor = (ActorBase *)"坂滑り";
          if ( !(AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1) )
          {
            sub_71008353B8(this);
            return;
          }
        }
        else
        {
          if ( *(_BYTE *)(v168 + 0xD11)
            || *(float *)(v168 + 0x209C) <= 0.05
            || !(sub_7100F631EC(v3) & 1) && !(sub_7100F5F128(v3) & 1) )
          {
            goto LABEL_118;
          }
          v169 = j_getCurrentMapName();
          *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
          v170 = v169;
          acc.actor = (ActorBase *)"Dungeon124";
          ((void (*)(void))v169->vptr->assureTermination)();
          v170->vptr->assureTermination(v170);
          v171 = (ActorBase *)v170->cstr;
          (*(void (__fastcall **)(ActorAccessor *))(*(_QWORD *)&acc.fromOtherThread + 0x18LL))(&acc);
          if ( v171 == acc.actor )
          {
LABEL_466:
            sub_7100F5F598(v3, &a2);
            if ( *((float *)&a2.baseProcLinkData + 1) > 45.0 )
              goto LABEL_118;
          }
          else
          {
            v172 = v170->cstr;
            for ( i = 1LL; ; i += 2LL )
            {
              v182 = (unsigned __int8)v172[i - 1];
              if ( v182 != *((unsigned __int8 *)acc.actor + i - 1) )
                break;
              if ( v182 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
                goto LABEL_466;
              if ( i >= 0x80001 )
                break;
              v183 = (unsigned __int8)v172[i];
              if ( v183 != *((unsigned __int8 *)&acc.actor->vtable + i) )
                break;
              if ( v183 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
                goto LABEL_466;
            }
          }
        }
      }
    }
  }
  v139 = RuneMgr::sInstance;
  if ( !(RuneMgr::sInstance->flags & 0x20) )
  {
    *(_DWORD *)&this->_._.actor.player->_._.disableFairies &= 0xFF7FFFFF;
    if ( ((__int64 (__fastcall *)(_QWORD))sub_7100848F5C)((ActorPointer)this->_._.actor.player) & 1 )
    {
      if ( sub_71006771D8((__int64)v139, this->_._.actor.player) )
      {
        sub_710067587C(v139);
        this->_._.actor.player->_._.slowTimeFlagsMaybe &= 0xFFFFFFFD;
        this->_._.actor.player->_._.field_C3C |= 0x1000u;
        this->_._.actor.player->_._.field_C3C |= 0x400u;
        this->_._.actor.player->_.field_1FA8 = 0x3F800000;
        if ( getFlag_IsGet_PlayerStole2(0)
          || getFlag_IsPlayed_Demo010_0(0) & 1
          || ((__int64 (*)(void))this->_._.actor.player->vptr->_.PlayerBase__m199)() & 1
          || (v140 = this->_._.actor.player, v140[0xCF4] & 2)
          || (*(__int64 (**)(void))(*(_QWORD *)v140 + 0x588LL))() & 1 )
        {
          Player::x_38((PlayerBase *)this->_._.actor.player, 0);
          v141 = this->_._.actor.player;
          if ( !(v141->_._.field_CEC & 2) )
            Player::x_23(v141, "ItemScopeReady", 0, -1.0);
          return;
        }
LABEL_1068:
        v45 = "イベント開始待ち";
        goto changeState;
      }
    }
  }
  if ( !(v139->flags & 0x10) || !RuneMgr::isSelectedRune(v139, RuneType_Camera) )
  {
    v142.player = (Player *)this->_._.actor;
    if ( sub_71008BD430((__int64)v142.player->_._.controllerMaybe, 0x21u) )
    {
      if ( !(v142.player->_._.controllerMaybe->_.field_118 & 0xD000000000000LL)
        && Player::runeMgrCheckCanUseCamera(this->_._.actor.player) & 1
        && !(this->_._.actor.player->_._.field_CEC & 2) )
      {
        RuneMgr::setFieldD8(v139);
        this->_._.actor.player->_._.slowTimeFlagsMaybe &= 0xFFFFFFFD;
        AI_AI_PlayerNormal::equipmentRelatedChangeState(this, "カメラ");
        return;
      }
    }
  }
  if ( Player::isSurfingOnGround(this->_._.actor.player) )
  {
    if ( !(((__int64 (*)(void))this->_._.actor.player->vptr->_.PlayerBase__m226)() & 1) )
    {
      v143 = this->_._.actor.player;
      v144 = v143[0x33C];
      if ( !(v144 & 0x2000000)
        && !(v144 & 0x60000)
        && !(v143[0x33B] & 0x80000000)
        && !((*(__int64 (**)(void))(*(_QWORD *)v143 + 0x638LL))() & 1)
        && !(((__int64 (*)(void))this->_._.actor.player->vptr->_.isRiding)() & 1) )
      {
        v145 = this->_._.actor.player;
        if ( !(v145[0xCF2] & 0x80)
          && !(v145[0xCF4] & 2)
          && !((*(__int64 (**)(void))(*(_QWORD *)v145 + 0x4B8LL))() & 1)
          && !(((__int64 (*)(void))this->_._.actor.player->vptr->_.pe.g.field_4B8)() & 1)
          && !(((__int64 (*)(void))this->_._.actor.player->vptr->_.pe.g.field_4B8)() & 1) )
        {
          v146.player = (Player *)this->_._.actor;
          if ( !(v146.player->_._.slowTimeFlagsMaybe & 2) )
          {
            if ( v146.player->_._.field_CE9 & 0x10 )
            {
              if ( ((__int64 (*)(void))v146.player->vptr->_.PlayerBase__m200)() & 1 )
                goto LABEL_368;
              v146.player = (Player *)this->_._.actor;
            }
            v147 = v146.player->_._._.g.a.actorParam->_.gParamList;
            v148 = v147->res.numObjects;
            v149 = v147->res.objects;
            if ( v148 > 0x15 )
              v149 = (BgparamlistObjects *)((char *)v149 + 0xA8);
            if ( *((float *)&v146.player->_.field_20D0 + 1) < (float)(v146.player->_._.actorPosCopy.y
                                                                    + *(float *)&v149->system[0xF].sameGroupActorName.value.vptr)
              && sub_71008BD430((__int64)v146.player->_._.controllerMaybe, 0x11u) )
            {
              if ( AI_AI_PlayerNormal::x_6b(this) & 1 )
                return;
              v150 = this->_._.actor.player;
              if ( v150[0xD11] )
              {
                if ( Player::x_21(v150) & 1 )
                {
                  Player::x_33(this->_._.actor.player);
LABEL_650:
                  v219 = "しゃがみ待機";
                  goto LABEL_651;
                }
                *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
                acc.actor = (ActorBase *)"持上げ";
                if ( !(AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1) )
                {
                  v219 = "持上げ";
LABEL_651:
                  AI_AI_PlayerNormal::changeState(this, v219, 0LL);
                  goto LABEL_652;
                }
              }
              else
              {
                if ( (*(__int64 (**)(void))(*(_QWORD *)v150 + 0x598LL))() & 1 )
                  goto LABEL_650;
                v211 = (PlayerBase *)this->_._.actor.player;
                v212 = PlayerBase::getEquipmentTypeName(v211, 1u);
                v211->_.equipmentTypeName._.vptr->assureTermination(&v211->_.equipmentTypeName._);
                v211->_.equipmentTypeName._.vptr->assureTermination(&v211->_.equipmentTypeName._);
                v213 = v211->_.equipmentTypeName._.cstr;
                v212->vptr->assureTermination(v212);
                v214 = v212->cstr;
                if ( v213 == v214 )
                  goto LABEL_650;
                v215 = v211->_.equipmentTypeName._.cstr;
                for ( j = 1LL; ; j += 2LL )
                {
                  v217 = (unsigned __int8)v215[j - 1];
                  if ( v217 != (unsigned __int8)v214[j - 1] )
                    break;
                  if ( v217 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
                    goto LABEL_650;
                  if ( j >= 0x80001 )
                    break;
                  v218 = (unsigned __int8)v215[j];
                  if ( v218 != (unsigned __int8)v214[j] )
                    break;
                  if ( v218 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
                    goto LABEL_650;
                }
                if ( this->_._.actor.player->_._.slowTimeFlagsMaybe & 8 )
                  goto LABEL_650;
                AI_AI_PlayerNormal::equipmentRelatedChangeState(this, "しゃがみ待機");
              }
LABEL_652:
              ((void (__fastcall *)(_QWORD))sub_710087CFD8)((ActorPointer)this->_._.actor.player);
              Player::x_22(this->_._.actor.player);
              AI_AI_PlayerNormal::x_6b(this);
              return;
            }
          }
        }
      }
    }
  }
LABEL_368:
  v151 = (PlayerBase *)this->_._.actor.player;
  v152 = PlayerBase::getEquipmentTypeName(v151, 1u);
  v151->_.equipmentTypeName._.vptr->assureTermination(&v151->_.equipmentTypeName._);
  v151->_.equipmentTypeName._.vptr->assureTermination(&v151->_.equipmentTypeName._);
  v153 = v151->_.equipmentTypeName._.cstr;
  v152->vptr->assureTermination(v152);
  v154 = v152->cstr;
  if ( v153 == v154 )
  {
LABEL_376:
    if ( ((__int64 (__fastcall *)(_QWORD))sub_71008923D0)((ActorPointer)this->_._.actor.player) & 1
      && AI_AI_PlayerNormal::x_6f_a(this) & 1 )
    {
      return;
    }
  }
  else
  {
    v155 = v151->_.equipmentTypeName._.cstr;
    for ( k = 1LL; ; k += 2LL )
    {
      v157 = (unsigned __int8)v155[k - 1];
      if ( v157 != (unsigned __int8)v154[k - 1] )
        break;
      if ( v157 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
        goto LABEL_376;
      if ( k >= 0x80001 )
        break;
      v158 = (unsigned __int8)v155[k];
      if ( v158 != (unsigned __int8)v154[k] )
        break;
      if ( v158 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
        goto LABEL_376;
    }
  }
  if ( ((__int64 (__fastcall *)(_QWORD))sub_710084BD44)((ActorPointer)this->_._.actor.player) & 1
    && ((__int64 (__fastcall *)(_QWORD))sub_71008739A0)((ActorPointer)this->_._.actor.player) & 1 )
  {
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"ジャンプ斬り";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
      goto LABEL_383;
    a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt;
    *(_QWORD *)&a2.idMaybe = "馬上ジャンプ攻撃";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&a2) & 1 )
      goto LABEL_383;
    state.vptr = &sead::SafeString::vt;
    state.cstr = "落下攻撃";
    if ( AI_AIBase::compareState(&this->_, &state) & 1 )
      goto LABEL_383;
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"着地後攻撃";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
    {
      v45 = "跳ね返り";
      goto changeState;
    }
  }
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"攻撃";
  if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1
    || (a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt,
        *(_QWORD *)&a2.idMaybe = "着地後攻撃",
        AI_AIBase::compareState(&this->_, (sead::SafeString *)&a2) & 1)
    || ((state.vptr = &sead::SafeString::vt,
         state.cstr = "ジャンプ斬り",
         AI_AIBase::compareState(&this->_, &state) & 1)
     || (v449.vptr = &sead::SafeString::vt,
         v449.cstr = "馬上ジャンプ攻撃",
         AI_AIBase::compareState(&this->_, &v449) & 1))
    && Player::isSurfingOnGround(this->_._.actor.player) )
  {
    if ( AI_AI_PlayerNormal::x_7(this) & 1
      || ASList::x(this->_._.actor.player->_._._.g.a.ASList, 0x11u, 0LL, 0, 0, (char *)sub_71011638DC, 0LL, 1) & 1
      && (AI_AI_PlayerNormal::x_6c(this, 0LL) & 1 || AI_AI_PlayerNormal::x_6d(this, 0LL) & 1) )
    {
      return;
    }
    goto LABEL_486;
  }
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"落下";
  if ( !(AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1) )
  {
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"落下中の弓";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
      goto LABEL_408;
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"ジャンプ";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
      goto LABEL_1203;
    a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt;
    *(_QWORD *)&a2.idMaybe = "馬上ジャンプ";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&a2) & 1 )
      goto LABEL_1203;
    state.vptr = &sead::SafeString::vt;
    state.cstr = "壁ジャンプ";
    if ( AI_AIBase::compareState(&this->_, &state) & 1 )
      goto LABEL_1203;
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"パラショール滑空";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
      goto LABEL_1204;
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"スイッチぶら下がり";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
    {
      if ( sub_71008376E8(this) & 1 )
        return;
      goto LABEL_486;
    }
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"アイテム";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
    {
      if ( this->_._.actor.player->_._.field_CE4 & 1 && AI_AI_PlayerNormal::x_8(this, 0) & 1 )
        return;
      goto LABEL_486;
    }
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"ガードスリップ";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
    {
      if ( ASList::x(this->_._.actor.player->_._._.g.a.ASList, 0x2Du, 0LL, 0, 0, (char *)sub_71011638DC, 0LL, 1) & 1 )
      {
        v184 = this->_._.actor.player;
        if ( v184[0xC40] & 8
          && !((*(__int64 (**)(void))(*(_QWORD *)v184 + 0x708LL))() & 1)
          && sub_71008BD430((__int64)this->_._.actor.player->_._.controllerMaybe, 5u) )
        {
          v185 = "攻撃";
          goto LABEL_477;
        }
        if ( AI_AI_PlayerNormal::x_6c(this, 0LL) & 1 )
          return;
      }
      goto LABEL_486;
    }
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"しゃがみ待機";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1
      || (a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt,
          *(_QWORD *)&a2.idMaybe = "しゃがみ移動",
          AI_AIBase::compareState(&this->_, (sead::SafeString *)&a2) & 1) )
    {
      if ( AI_AI_PlayerNormal::x_6e(this) & 1 )
        return;
      ((void (__fastcall *)(_QWORD))sub_710087CFD8)((ActorPointer)this->_._.actor.player);
      Player::x_22(this->_._.actor.player);
      if ( AI_AI_PlayerNormal::x_6b(this) & 1 )
        return;
      goto LABEL_486;
    }
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"しゃがみステップ";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
    {
LABEL_1204:
      sub_710086B834((__int64)this->_._.actor.player);
      if ( sub_71008372BC(this) & 1 )
        return;
      goto LABEL_486;
    }
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"サイドステップ";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1
      || (a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt,
          *(_QWORD *)&a2.idMaybe = "バク転",
          AI_AIBase::compareState(&this->_, (sead::SafeString *)&a2) & 1) )
    {
LABEL_1203:
      v167 = (__int64)this->_._.actor.player;
      if ( *(_BYTE *)(v167 + 0xC46) & 0x20 )
        goto LABEL_486;
      sub_710086B834(v167);
      if ( sub_71008372BC(this) & 1 )
        return;
LABEL_408:
      sub_7100836EB0(this);
      goto LABEL_486;
    }
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"滑落";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
    {
      v202 = Player::isSurfingOnGround(this->_._.actor.player);
      v203.player = (Player *)this->_._.actor;
      v204 = *(_DWORD *)&v203.player->_._.field_CE4;
      if ( v202 )
        v205 = v204 & 0xFFFFFFFD;
      else
        v205 = v204 | 2;
      *(_DWORD *)&v203.player->_._.field_CE4 = v205;
      goto LABEL_486;
    }
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"着地";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
    {
      v220 = (PlayerBase *)this->_._.actor.player;
      v221 = PlayerBase::getEquipmentTypeName(v220, 0);
      v220->_.field_D60.vptr->assureTermination(&v220->_.field_D60);
      v220->_.field_D60.vptr->assureTermination(&v220->_.field_D60);
      v222 = v220->_.field_D60.cstr;
      v221->vptr->assureTermination(v221);
      v223 = v221->cstr;
      if ( v222 == v223 )
      {
LABEL_642:
        if ( AI_AI_PlayerNormal::handleMagnesisRuneStep2(this) & 1 || AI_AI_PlayerNormal::handleRuneStep2(this) )
          return;
      }
      else
      {
        v224 = v220->_.field_D60.cstr;
        for ( l = 1LL; ; l += 2LL )
        {
          v226 = (unsigned __int8)v224[l - 1];
          if ( v226 != (unsigned __int8)v223[l - 1] )
            break;
          if ( v226 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
            goto LABEL_642;
          if ( l >= 0x80001 )
            break;
          v227 = (unsigned __int8)v224[l];
          if ( v227 != (unsigned __int8)v223[l] )
            break;
          if ( v227 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
            goto LABEL_642;
        }
      }
      if ( AI_AI_PlayerNormal::x_0(this) & 1 )
        return;
      goto LABEL_486;
    }
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"サイドステップ着地";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1
      || (a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt,
          *(_QWORD *)&a2.idMaybe = "バク転着地",
          AI_AIBase::compareState(&this->_, (sead::SafeString *)&a2) & 1) )
    {
      v228 = (PlayerBase *)this->_._.actor.player;
      v229 = PlayerBase::getEquipmentTypeName(v228, 0);
      v228->_.field_D60.vptr->assureTermination(&v228->_.field_D60);
      v228->_.field_D60.vptr->assureTermination(&v228->_.field_D60);
      v230 = v228->_.field_D60.cstr;
      v229->vptr->assureTermination(v229);
      v231 = v229->cstr;
      if ( v230 == v231 )
      {
LABEL_664:
        if ( AI_AI_PlayerNormal::handleMagnesisRuneStep2(this) & 1 || AI_AI_PlayerNormal::handleRuneStep2(this) )
          return;
      }
      else
      {
        v232 = v228->_.field_D60.cstr;
        for ( m = 1LL; ; m += 2LL )
        {
          v234 = (unsigned __int8)v232[m - 1];
          if ( v234 != (unsigned __int8)v231[m - 1] )
            break;
          if ( v234 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
            goto LABEL_664;
          if ( m >= 0x80001 )
            break;
          v235 = (unsigned __int8)v232[m];
          if ( v235 != (unsigned __int8)v231[m] )
            break;
          if ( v235 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
            goto LABEL_664;
        }
      }
      goto LABEL_486;
    }
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"泳ぎ";
    if ( !(AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1) )
    {
      *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
      acc.actor = (ActorBase *)"ウェイクボード";
      if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1
        && this->_._.actor.player->_._.field_C92 & 0x40 )
      {
        goto LABEL_383;
      }
      goto LABEL_486;
    }
    if ( !Player::x_44(this->_._.actor.player)
      || ((__int64 (*)(void))this->_._.actor.player->vptr->_.PlayerBase__m189)() & 1 )
    {
      goto LABEL_486;
    }
    if ( ((__int64 (*)(void))this->_._.actor.player->vptr->_.PlayerBase__m273)() )
    {
      v236 = (ActorBase *)((__int64 (*)(void))this->_._.actor.player->vptr->_.PlayerBase__m273)();
      v237 = oneHitObliteratorCheckIsActor(v236, 0);
    }
    else
    {
      v237 = 0;
    }
    v239 = (_DWORD *)((__int64 (*)(void))this->_._.actor.player->vptr->_.pe.g.a.getLife)();
    if ( v239 && *v239 > 4
      || Player::x_54(this->_._.actor.player)
      || ((__int64 (*)(void))this->_._.actor.player->vptr->hasFairy)() & 1 )
    {
      if ( v237 )
      {
LABEL_710:
        this->_._.actor.player->_._.isNoStandSquat |= 0x200000000uLL;
        goto LABEL_486;
      }
    }
    else if ( (v237 | ~((unsigned int (*)(void))this->_._.actor.player->vptr->_.canUseMiphaGrace)()) & 1 )
    {
      goto LABEL_710;
    }
    if ( sub_71008E6D90(0LL) & 1 )
    {
LABEL_235:
      v45 = "泳ぎ";
      goto changeState;
    }
    goto LABEL_428;
  }
  if ( !(this->_._.actor.player->_._.field_C3C & 0x200000) )
  {
    sub_7100836EB0(this);
    v159 = (PlayerBase *)this->_._.actor.player;
    v160 = PlayerBase::getEquipmentTypeName(v159, 3u);
    v159->_.equipmentTypeName._.vptr->assureTermination(&v159->_.equipmentTypeName._);
    v159->_.equipmentTypeName._.vptr->assureTermination(&v159->_.equipmentTypeName._);
    v161 = v159->_.equipmentTypeName._.cstr;
    v160->vptr->assureTermination(v160);
    v162 = v160->cstr;
    if ( v161 == v162 )
      goto LABEL_406;
    v163 = v159->_.equipmentTypeName._.cstr;
    for ( n = 1LL; ; n += 2LL )
    {
      v165 = (unsigned __int8)v163[n - 1];
      if ( v165 != (unsigned __int8)v162[n - 1] )
        break;
      if ( v165 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
        goto LABEL_406;
      if ( n >= 0x80001 )
        break;
      v166 = (unsigned __int8)v163[n];
      if ( v166 != (unsigned __int8)v162[n] )
        break;
      if ( v166 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
        goto LABEL_406;
    }
  }
LABEL_486:
  v186 = this->_._.vptr.base->AI_AIOrActionBase__m26((AI_AIOrActionBase *)this);
  if ( !((*(__int64 (**)(void))(*(_QWORD *)v186 + 0x30LL))() & 1) )
    goto LABEL_494;
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"待機";
  if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1
    || (a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt,
        *(_QWORD *)&a2.idMaybe = "移動",
        AI_AIBase::compareState(&this->_, (sead::SafeString *)&a2) & 1) )
  {
LABEL_492:
    if ( AI_AI_PlayerNormal::x_0(this) & 1 )
      return;
LABEL_493:
    if ( AI_AI_PlayerNormal::x_8(this, 0) & 1 )
      return;
    goto LABEL_494;
  }
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"注目待機";
  if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1
    || (a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt,
        *(_QWORD *)&a2.idMaybe = "注目移動",
        AI_AIBase::compareState(&this->_, (sead::SafeString *)&a2) & 1) )
  {
    if ( this->_._.actor.player->_._.gap_D08 )
      goto LABEL_493;
    goto LABEL_492;
  }
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"梯子";
  if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
    goto LABEL_530;
  a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt;
  *(_QWORD *)&a2.idMaybe = "攻撃";
  if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&a2) & 1 )
    goto LABEL_530;
  state.vptr = &sead::SafeString::vt;
  state.cstr = "着地後攻撃";
  if ( AI_AIBase::compareState(&this->_, &state) & 1 )
    goto LABEL_530;
  v449.vptr = &sead::SafeString::vt;
  v449.cstr = "ガードスリップ";
  if ( AI_AIBase::compareState(&this->_, &v449) & 1 )
    goto LABEL_530;
  *(_QWORD *)a6 = &sead::SafeString::vt;
  v448 = "ガード崩れ";
  if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)a6) & 1 )
    goto LABEL_530;
  v446.vptr = &sead::SafeString::vt;
  v446.cstr = "持上げ";
  if ( AI_AIBase::compareState(&this->_, &v446) & 1 )
    goto LABEL_530;
  v445.vptr = &sead::SafeString::vt;
  v445.cstr = "小ダメージ";
  if ( AI_AIBase::compareState(&this->_, &v445) & 1 )
    goto LABEL_530;
  v444.vptr = &sead::SafeString::vt;
  v444.cstr = "中ダメージ";
  if ( AI_AIBase::compareState(&this->_, &v444) & 1 )
    goto LABEL_530;
  v443.vptr = &sead::SafeString::vt;
  v443.cstr = "ステップ攻撃";
  if ( AI_AIBase::compareState(&this->_, &v443) & 1 )
    goto LABEL_530;
  v442.vptr = &sead::SafeString::vt;
  v442.cstr = "馬上ジャンプ攻撃着地";
  if ( AI_AIBase::compareState(&this->_, &v442) & 1 )
    goto LABEL_530;
  v441.vptr = &sead::SafeString::vt;
  v441.cstr = "飛び込み着地";
  if ( AI_AIBase::compareState(&this->_, &v441) & 1 )
    goto LABEL_530;
  v440.vptr = &sead::SafeString::vt;
  v440.cstr = "素材をとる";
  if ( AI_AIBase::compareState(&this->_, &v440) & 1 )
    goto LABEL_530;
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"凍り解除";
  if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1
    || (a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt,
        *(_QWORD *)&a2.idMaybe = "大ダメージ起き上がり",
        AI_AIBase::compareState(&this->_, (sead::SafeString *)&a2) & 1) )
  {
    if ( ((__int64 (*)(void))this->_._.actor.player->vptr->_.PlayerBase__m199)() & 1 )
    {
      v210.player = (Player *)this->_._.actor;
      goto LABEL_628;
    }
    goto LABEL_530;
  }
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"ジャンプ斬り";
  if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1
    || (a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt,
        *(_QWORD *)&a2.idMaybe = "馬上ジャンプ攻撃",
        AI_AIBase::compareState(&this->_, (sead::SafeString *)&a2) & 1) )
  {
    if ( !Player::isSurfingOnGround(this->_._.actor.player)
      || !(ASList::x(this->_._.actor.player->_._._.g.a.ASList, 2u, 0LL, 0, 0, (char *)sub_71011638DC, 0LL, 1) & 1) )
    {
LABEL_671:
      if ( AI_AI_PlayerNormal::x(this) & 1 )
        return;
      goto LABEL_494;
    }
LABEL_530:
    if ( AI_AI_PlayerNormal::x_8(this, 1) & 1 )
      return;
    goto LABEL_494;
  }
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"武器投げ";
  if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
  {
    if ( Player::isSurfingOnGround(this->_._.actor.player) )
    {
      if ( !(((__int64 (*)(void))this->_._.actor.player->vptr->_.PlayerBase__m199)() & 1) )
        goto LABEL_530;
LABEL_681:
      if ( *(float *)&this->_._.actor.player->_.field_209C > 0.05 )
        goto LABEL_630;
      goto LABEL_494;
    }
    goto LABEL_494;
  }
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"着地";
  if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1
    || (a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt,
        *(_QWORD *)&a2.idMaybe = "サイドステップ着地",
        AI_AIBase::compareState(&this->_, (sead::SafeString *)&a2) & 1)
    || (state.vptr = &sead::SafeString::vt, state.cstr = "バク転着地",
                                            AI_AIBase::compareState(&this->_, &state) & 1) )
  {
    if ( sub_71008BD430((__int64)this->_._.actor.player->_._.controllerMaybe, 2u)
      || (v238 = this->_._.actor.player, v238[0x17F0]) )
    {
      if ( AI_AI_PlayerNormal::x_6c(this, 1LL) & 1 || AI_AI_PlayerNormal::x_6d(this, 1LL) & 1 )
        return;
      v238 = this->_._.actor.player;
    }
    if ( v238[0xC45] & 1 && !v238[0xD11] || !(AI_AI_PlayerNormal::x_1(this) & 1) )
      goto LABEL_530;
    return;
  }
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"着地ダメージ";
  if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
  {
    if ( ((__int64 (__fastcall *)(_QWORD))sub_7100892098)((ActorPointer)this->_._.actor.player) & 1
      && sub_7100834EE4((__int64)this) & 1 )
    {
      return;
    }
    goto LABEL_494;
  }
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"段差登り";
  if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
    goto LABEL_530;
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"坂滑り";
  if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
  {
    if ( AI_AI_PlayerNormal::x_6d(this, 0LL) & 1 )
      return;
    v246.player = (Player *)this->_._.actor;
    if ( v246.player->_.field_1850 <= 0.00000011921
      && *(float *)&v246.player->_.field_209C > 0.05
      && LODWORD(v246.player->_.field_1CA4) != 5
      && v246.player->_._._.g.a.velocity.y > 0.0 )
    {
      if ( !(sub_71008BD3BC(v246.player->_._.controllerMaybe, 0xDLL) & 1)
        || ((__int64 (__fastcall *)(ActorPointer))v246.player->vptr->_.PlayerBase__m202)(v246) & 1
        || v246.player->_._.field_C3C & 0x2000
        || ((__int64 (__fastcall *)(ActorPointer))v246.player->vptr->_.PlayerBase__m178)(v246) & 1 )
      {
        v247.player = (Player *)this->_._.actor;
        if ( *(float *)&v247.player->_.field_209C > 0.05 )
        {
          Player::x_5(this->_._.actor.player, (int *)&state);
          *(_DWORD *)&acc.fromOtherThread = *(_DWORD *)&v247.player->_.field_1C58[0x1C] - LODWORD(state.vptr);
          LODWORD(a2.baseProcLinkData) = 0x20000000;
          if ( (unsigned __int8)((__int64 (__fastcall *)(_QWORD, _QWORD, _QWORD))sub_7100869814)(
                                  (ActorPointer)v247.player,
                                  &acc,
                                  &a2) == 1 )
            Player::switchToAnimSequenceMaybe(this->_._.actor.player, "Brake", 1, -1.0);
        }
      }
      goto changeStateToMove;
    }
    goto LABEL_494;
  }
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"しゃがみ待機";
  if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
  {
    if ( AI_AI_PlayerNormal::x_7(this) & 1 )
      return;
    v250.player = (Player *)this->_._.actor;
    if ( v250.player->_._.isNoStandSquat & 0x200LL )
    {
      if ( sub_71008397E4(this) & 1 )
        return;
LABEL_799:
      if ( sub_7100839AC8(this) & 1 )
        return;
      goto LABEL_681;
    }
    if ( *(float *)&v250.player->_.field_209C <= 0.05 )
    {
      if ( AI_AI_PlayerNormal::x_6d(this, 0LL) & 1 )
        return;
      v250.player = (Player *)this->_._.actor;
    }
    if ( !(v250.player->_._.slowTimeFlagsMaybe & 0x80000)
      || ((__int64 (__fastcall *)(_QWORD))sub_71008840D4)((ActorPointer)v250.player) & 1 )
    {
      if ( AI_AI_PlayerNormal::x_6f_a(this) & 1 || AI_AI_PlayerNormal::x_6g(this) & 1 )
        return;
      goto LABEL_799;
    }
LABEL_844:
    v45 = "待機";
    this->_._.actor.player->_._.slowTimeFlagsMaybe &= 0xFFF7FFFF;
    goto changeState;
  }
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"しゃがみ移動";
  if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
  {
    if ( AI_AI_PlayerNormal::x_7(this) & 1 )
      return;
    v263.player = (Player *)this->_._.actor;
    if ( v263.player->_._.isNoStandSquat & 0x200LL )
    {
      if ( sub_71008397E4(this) & 1 )
        return;
    }
    else
    {
      v264 = sub_71008BD430((__int64)v263.player->_._.controllerMaybe, 0xAu);
      v265.player = (Player *)this->_._.actor;
      if ( v264 && *(float *)&v265.player->_.field_209C > 0.05 )
      {
        v45 = "しゃがみステップ";
        goto changeState;
      }
      if ( v265.player->_._.slowTimeFlagsMaybe & 0x80000
        && !(((__int64 (__fastcall *)(_QWORD))sub_71008840D4)((ActorPointer)v265.player) & 1) )
      {
        goto LABEL_844;
      }
      if ( AI_AI_PlayerNormal::x_6f_a(this) & 1 || AI_AI_PlayerNormal::x_6g(this) & 1 )
        return;
    }
    if ( sub_7100839AC8(this) & 1 )
      return;
    goto LABEL_494;
  }
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"しゃがみダメージ";
  if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
  {
    if ( *(float *)&this->_._.actor.player->_.field_209C > 0.05 )
    {
      v185 = "しゃがみ移動";
      goto LABEL_477;
    }
    goto LABEL_494;
  }
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"カメラ";
  if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
  {
    if ( AI_AI_PlayerNormal::x_7(this) & 1 )
      return;
    v269 = (PlayerBase *)this->_._.actor.player;
    v462 = PlayerBase::getEquipmentTypeName(v269, 1u);
    v269->_.equipmentTypeName._.vptr->assureTermination(&v269->_.equipmentTypeName._);
    v269->_.equipmentTypeName._.vptr->assureTermination(&v269->_.equipmentTypeName._);
    v270 = v269->_.equipmentTypeName._.cstr;
    v271 = v462;
    ((void (*)(void))v462->vptr->assureTermination)();
    v272 = v271->cstr;
    if ( v270 == v272 )
    {
LABEL_811:
      if ( AI_AI_PlayerNormal::x_10(this) & 1 )
      {
        *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
        acc.actor = (ActorBase *)"カメラ";
        if ( !(AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1) )
          return;
        goto LABEL_884;
      }
    }
    else
    {
      v273 = v269->_.equipmentTypeName._.cstr;
      for ( ii = 1LL; ; ii += 2LL )
      {
        v275 = (unsigned __int8)v273[ii - 1];
        if ( v275 != (unsigned __int8)v272[ii - 1] )
          break;
        if ( v275 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
          goto LABEL_811;
        if ( ii >= 0x80001 )
          break;
        v276 = (unsigned __int8)v273[ii];
        if ( v276 != (unsigned __int8)v272[ii] )
          break;
        if ( v276 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
          goto LABEL_811;
      }
    }
    goto LABEL_494;
  }
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"弓主観";
  if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
  {
    if ( AI_AI_PlayerNormal::x_7(this) & 1 || AI_AI_PlayerNormal::x_6(this) & 1 )
      return;
    if ( ((__int64 (__fastcall *)(_QWORD))sub_7100848F5C)((ActorPointer)this->_._.actor.player) & 1
      || !(((__int64 (*)(void))this->_._.actor.player->vptr->_.PlayerBase__m179)() & 1) )
    {
      goto LABEL_884;
    }
    goto LABEL_494;
  }
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"盾サーフィン";
  if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
  {
    sub_7100F5F598(v3, &acc);
    if ( *((float *)&acc.fromOtherThread + 1) < 0.0 )
      goto LABEL_671;
    goto LABEL_494;
  }
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"水中へ飛び込みジャンプ";
  if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
  {
    sub_7100F5F598(v3, &acc);
    if ( *((float *)&acc.fromOtherThread + 1) < 1.75 )
      goto LABEL_671;
    goto LABEL_494;
  }
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"ジャンプ";
  if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1
    || (a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt,
        *(_QWORD *)&a2.idMaybe = "馬上ジャンプ",
        AI_AIBase::compareState(&this->_, (sead::SafeString *)&a2) & 1)
    || (state.vptr = &sead::SafeString::vt, state.cstr = "壁ジャンプ",
                                            AI_AIBase::compareState(&this->_, &state) & 1) )
  {
    if ( AI_AI_PlayerNormal::x_0(this) & 1 )
      return;
    if ( sub_710083AF00(this) & 1 )
      return;
    sub_7100F5F598(v3, &acc);
    if ( *((float *)&acc.fromOtherThread + 1) < 0.0 && (sub_710083AFF4(this) & 1 || AI_AI_PlayerNormal::x(this) & 1) )
      return;
    v297 = (PlayerBase *)this->_._.actor.player;
    v462 = PlayerBase::getEquipmentTypeName(v297, 3u);
    v297->_.equipmentTypeName._.vptr->assureTermination(&v297->_.equipmentTypeName._);
    v297->_.equipmentTypeName._.vptr->assureTermination(&v297->_.equipmentTypeName._);
    v298 = v297->_.equipmentTypeName._.cstr;
    v299 = v462;
    ((void (*)(void))v462->vptr->assureTermination)();
    v300 = v299->cstr;
    if ( v298 == v300 )
    {
LABEL_904:
      *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
      acc.actor = (ActorBase *)"壁ジャンプ";
      if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
        goto LABEL_118;
    }
    else
    {
      v301 = v297->_.equipmentTypeName._.cstr;
      for ( jj = 1LL; ; jj += 2LL )
      {
        v303 = (unsigned __int8)v301[jj - 1];
        if ( v303 != (unsigned __int8)v300[jj - 1] )
          break;
        if ( v303 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
          goto LABEL_904;
        if ( jj >= 0x80001 )
          break;
        v304 = (unsigned __int8)v301[jj];
        if ( v304 != (unsigned __int8)v300[jj] )
          break;
        if ( v304 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
          goto LABEL_904;
      }
    }
    if ( Player::isSurfingOnGround(this->_._.actor.player) )
      goto LABEL_494;
    if ( !(PlayerBase::x_0((PlayerBase *)this->_._.actor.player) & 1) )
      goto LABEL_494;
    v305 = this->_._.actor.player;
    if ( !(Player::x_51(this->_._.actor.player) & 1) && !(Player::x_50(v305) & 1) )
      goto LABEL_494;
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"馬上ジャンプ";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
    {
      v45 = "馬上ジャンプ攻撃";
      goto changeState;
    }
    goto LABEL_924;
  }
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"落下";
  if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1
    || (a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt,
        *(_QWORD *)&a2.idMaybe = "落下中の弓",
        AI_AIBase::compareState(&this->_, (sead::SafeString *)&a2) & 1)
    || (state.vptr = &sead::SafeString::vt,
        state.cstr = "2段ジャンプ",
        AI_AIBase::compareState(&this->_, &state) & 1) )
  {
    if ( AI_AI_PlayerNormal::x_0(this) & 1 )
      return;
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"2段ジャンプ";
    if ( !(AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1)
      || (v306.player = (Player *)this->_._.actor,
          Player::x_5(this->_._.actor.player, (int *)&v449),
          LODWORD(a2.baseProcLinkData) = *(_DWORD *)&v306.player->_.field_1C58[0x1C] - LODWORD(v449.vptr),
          LODWORD(state.vptr) = 0x20000000,
          !(unsigned __int8)((__int64 (__fastcall *)(_QWORD, _QWORD, _QWORD))sub_7100869814)(
                              (ActorPointer)v306.player,
                              &a2,
                              &state)) )
    {
      if ( sub_710083AF00(this) & 1 )
        return;
    }
    if ( sub_710083AFF4(this) & 1 || AI_AI_PlayerNormal::x(this) & 1 )
      return;
    if ( Player::isSurfingOnGround(this->_._.actor.player) )
      goto LABEL_494;
    if ( !(PlayerBase::x_0((PlayerBase *)this->_._.actor.player) & 1) )
      goto LABEL_494;
    v307 = this->_._.actor.player;
    if ( !(Player::x_51(this->_._.actor.player) & 1) && !(Player::x_50(v307) & 1) )
      goto LABEL_494;
LABEL_924:
    v308.player = (Player *)this->_._.actor;
    if ( !(v308.player->_._.field_C3C & 0x200000) && *((float *)&v308.player->_.field_1E98 + 1) <= 0.00000011921 )
      goto LABEL_829;
    goto LABEL_494;
  }
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"サイドステップ";
  if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1
    || (a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt,
        *(_QWORD *)&a2.idMaybe = "バク転",
        AI_AIBase::compareState(&this->_, (sead::SafeString *)&a2) & 1) )
  {
    if ( !Player::isSurfingOnGround(this->_._.actor.player) )
    {
      if ( !LOBYTE(this->_._.actor.player->_._.field_D1C)
        && (sub_710083AF00(this) & 1 || AI_AI_PlayerNormal::x_0(this) & 1) )
      {
        return;
      }
      sub_7100F5F598(v3, &acc);
      if ( *((float *)&acc.fromOtherThread + 1) < 0.0 )
      {
        if ( AI_AI_PlayerNormal::x(this) & 1 )
          return;
      }
      if ( PlayerBase::x_0((PlayerBase *)this->_._.actor.player) & 1 )
      {
        v311 = this->_._.actor.player;
        if ( v311->_.field_1D70.x <= 0.00000011921
          && (Player::x_51(this->_._.actor.player) & 1 || Player::x_50(v311) & 1) )
        {
          v312.player = (Player *)this->_._.actor;
          if ( !LOBYTE(v312.player->_._.field_D1C)
            && !(v312.player->_._.field_C3C & 0x200000)
            && *((float *)&v312.player->_.field_1E98 + 1) <= 0.00000011921 )
          {
            goto LABEL_829;
          }
        }
      }
    }
    goto LABEL_494;
  }
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"壁駆け上がり";
  if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
  {
    ((void (__fastcall *)(_QWORD))sub_710087CFD8)((ActorPointer)this->_._.actor.player);
    v313.player = (Player *)this->_._.actor;
    if ( LOBYTE(v313.player->_.field_1CBC) == 9 )
    {
      v45 = "段差登り";
      goto changeState;
    }
    *(float *)&acc.actor = v313.player->_._.actorPosCopy.z;
    *(_QWORD *)&acc.fromOtherThread = *(_QWORD *)&v313.player->_._.actorPosCopy.x;
    a2.idMaybe = LODWORD(v313.player->_._.actorPosCopy.z);
    a2.baseProcLinkData = *(BaseProcLinkData **)&v313.player->_._.actorPosCopy.x;
    Player::x_5(v313.player, (int *)&state);
    sub_71011EEEE0((float *)&a2, &state, 0.35 * 3.0);
    if ( !(sub_710087F360((__int64)this->_._.actor.player, (Vec3 *)&acc, (Vec3 *)&a2, 0LL, 0LL) & 1) )
    {
      Player::x_5(this->_._.actor.player, (int *)&state);
      sub_71011EEEE0((float *)&a2, &state, -0.35);
      *(_DWORD *)&acc.fromOtherThread = a2.baseProcLinkData;
      LODWORD(acc.actor) = a2.idMaybe;
      *((float *)&acc.fromOtherThread + 1) = *((float *)&a2.baseProcLinkData + 1) + 1.8;
      v339 = (__int64)this->_._.actor.player;
      HIDWORD(a2.baseProcLinkData) = *(_DWORD *)(v339 + 0x1814);
      if ( sub_710087F360(v339, (Vec3 *)&acc, (Vec3 *)&a2, (Vec3 *)&state, 0LL) & 1 )
      {
        v340.player = (Player *)this->_._.actor;
        if ( (float)(*(float *)&v340.player->_.field_17F0[0x24] + 0.49) < *((float *)&state.vptr + 1)
          && v340.player->_._.actorPosCopy.y > *((float *)&state.vptr + 1) )
        {
          sub_7100F5F598(v3, &v449);
          HIDWORD(v449.vptr) = 0;
          sub_7100F5F6FC(v3, (float *)&v449);
          goto changeStateToMove;
        }
      }
    }
    goto LABEL_494;
  }
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"パラショール滑空";
  if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
  {
    sub_7100836EB0(this);
    v328 = (PlayerBase *)this->_._.actor.player;
    v462 = PlayerBase::getEquipmentTypeName(v328, 3u);
    v328->_.equipmentTypeName._.vptr->assureTermination(&v328->_.equipmentTypeName._);
    v328->_.equipmentTypeName._.vptr->assureTermination(&v328->_.equipmentTypeName._);
    v329 = v328->_.equipmentTypeName._.cstr;
    v330 = v462;
    ((void (*)(void))v462->vptr->assureTermination)();
    v331 = v330->cstr;
    if ( v329 != v331 )
    {
      v332 = v328->_.equipmentTypeName._.cstr;
      for ( kk = 1LL; ; kk += 2LL )
      {
        v334 = (unsigned __int8)v332[kk - 1];
        if ( v334 != (unsigned __int8)v331[kk - 1] )
          break;
        if ( v334 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
          goto LABEL_406;
        if ( kk >= 0x80001 )
          break;
        v335 = (unsigned __int8)v332[kk];
        if ( v335 != (unsigned __int8)v331[kk] )
          break;
        if ( v335 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
          goto LABEL_406;
      }
      if ( sub_71008BD430((__int64)this->_._.actor.player->_._.controllerMaybe, 0xEu) || *(_BYTE *)(v3 + 0x116) & 0x14 )
      {
        if ( this->_._.actor.player->_._.isShieldRide & 0x80 )
        {
          v45 = "盾サーフィン";
          goto changeState;
        }
        goto LABEL_118;
      }
      if ( PlayerBase::x_0((PlayerBase *)this->_._.actor.player) & 1 )
      {
        if ( Player::x_51(this->_._.actor.player) & 1 )
        {
          v377.player = (Player *)this->_._.actor;
          if ( !(v377.player->_._.field_C3C & 0x200000) && *((float *)&v377.player->_.field_1E98 + 1) <= 0.00000011921 )
            goto LABEL_829;
        }
      }
      if ( AI_AI_PlayerNormal::x_0(this) & 1 || sub_710083AF00(this) & 1 )
        return;
      goto LABEL_494;
    }
LABEL_406:
    v45 = "落下中の弓";
    goto changeState;
  }
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"コッコ滑空";
  if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
  {
    v371 = sub_71008BD430((__int64)this->_._.actor.player->_._.controllerMaybe, 0xEu);
    v372 = this->_._.actor.player;
    if ( v371 )
    {
      ((void (*)(void))v372->vptr->_.nullsub_2562)();
      goto LABEL_118;
    }
    if ( Player::x_51(v372) & 1 )
    {
      v376.player = (Player *)this->_._.actor;
      if ( !(v376.player->_._.field_C3C & 0x200000) && *((float *)&v376.player->_.field_1E98 + 1) <= 0.00000011921 )
      {
        AI_AI_PlayerNormal::changeState(this, "ジャンプ斬り", 0LL);
        ((void (*)(void))this->_._.actor.player->vptr->_.nullsub_2562)();
        return;
      }
    }
    goto LABEL_494;
  }
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"スーパージャンプ溜め";
  if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
  {
    if ( !Player::isSurfingOnGround(this->_._.actor.player) )
      goto LABEL_118;
    v375 = sub_71008BD430((__int64)this->_._.actor.player->_._.controllerMaybe, 0xEu);
    v188.player = (Player *)this->_._.actor;
    if ( v375 )
      goto LABEL_514;
    if ( !(sub_71008BD3BC(v188.player->_._.controllerMaybe, 2LL) & 1) )
    {
      v188.player = (Player *)this->_._.actor;
      if ( BYTE2(v188.player->_.field_1CBC) )
      {
        v45 = "スーパージャンプ";
        goto changeState;
      }
      goto LABEL_514;
    }
    goto LABEL_494;
  }
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"泳ぎ";
  if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
  {
    ((void (__fastcall *)(_QWORD))sub_710086BC30)((ActorPointer)this->_._.actor.player);
    if ( !sub_71008BD430((__int64)this->_._.actor.player->_._.controllerMaybe, 0) )
      goto LABEL_494;
    ui::sub_7100A95F5C((unsigned int)this->_._.actor.player->_.doCommandIdx);
    v380.player = (Player *)this->_._.actor;
    v381 = v380.player->_.doCommandIdx;
    if ( v381 != 0x3C )
    {
      if ( v381 == 0x3B )
      {
        Attention::__auto1(Attention::sInstance, 0LL);
        goto LABEL_1118;
      }
      if ( v381 == 0x12 )
      {
        if ( ((__int64 (__fastcall *)(_QWORD))sub_7100881078)((ActorPointer)v380.player) & 1 )
          *(_DWORD *)&this->_._.actor.player->_._.isBgCrossFoot |= 1u;
        Attention::__auto1(Attention::sInstance, 0LL);
        AI_AIBase::x_0(&this->_._.actor.player->_._._.g.a.actorAi->_, 5LL);
        goto LABEL_1068;
      }
      goto LABEL_494;
    }
    Attention::__auto1(Attention::sInstance, 0LL);
LABEL_1116:
    v45 = "滝登り";
    goto changeState;
  }
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"ゾーラに掴まる";
  if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
  {
    v387 = (PlayerBase *)this->_._.actor.player;
    v462 = PlayerBase::getEquipmentTypeName(v387, 0);
    v387->_.equipmentTypeName._.vptr->assureTermination(&v387->_.equipmentTypeName._);
    v387->_.equipmentTypeName._.vptr->assureTermination(&v387->_.equipmentTypeName._);
    v388 = v387->_.equipmentTypeName._.cstr;
    v389 = v387;
    v390 = v462;
    ((void (*)(void))v462->vptr->assureTermination)();
    v391 = v390->cstr;
    if ( v388 == v391 )
    {
LABEL_1092:
      if ( !(v389->_.slowTimeFlagsMaybe & 8)
        && sub_71008BD430((__int64)this->_._.actor.player->_._.controllerMaybe, 0xEu) )
      {
        goto LABEL_118;
      }
    }
    else
    {
      v392 = v389->_.equipmentTypeName._.cstr;
      for ( ll = 1LL; ; ll += 2LL )
      {
        v394 = (unsigned __int8)v392[ll - 1];
        if ( v394 != (unsigned __int8)v391[ll - 1] )
          break;
        if ( v394 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
          goto LABEL_1092;
        if ( ll >= 0x80001 )
          break;
        v395 = (unsigned __int8)v392[ll];
        if ( v395 != (unsigned __int8)v391[ll] )
          break;
        if ( v395 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
          goto LABEL_1092;
      }
    }
    v396 = (PlayerBase *)this->_._.actor.player;
    v462 = PlayerBase::getEquipmentTypeName(v396, 0);
    v396->_.field_D60.vptr->assureTermination(&v396->_.field_D60);
    v396->_.field_D60.vptr->assureTermination(&v396->_.field_D60);
    v397 = v396->_.field_D60.cstr;
    v398 = v462;
    ((void (*)(void))v462->vptr->assureTermination)();
    v399 = v398->cstr;
    if ( v397 == v399 )
    {
LABEL_1102:
      if ( AI_AI_PlayerNormal::handleMagnesisRuneStep2(this) & 1 || AI_AI_PlayerNormal::handleRuneStep2(this) )
        return;
    }
    else
    {
      v400 = v396->_.field_D60.cstr;
      for ( mm = 1LL; ; mm += 2LL )
      {
        v402 = (unsigned __int8)v400[mm - 1];
        if ( v402 != (unsigned __int8)v399[mm - 1] )
          break;
        if ( v402 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
          goto LABEL_1102;
        if ( mm >= 0x80001 )
          break;
        v403 = (unsigned __int8)v400[mm];
        if ( v403 != (unsigned __int8)v399[mm] )
          break;
        if ( v403 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
          goto LABEL_1102;
      }
    }
    if ( !HIBYTE(this->_._.actor.player->_.field_2078) )
      goto LABEL_494;
    if ( (unsigned int)sub_710086B194() != 0x1800023 )
      goto LABEL_494;
    this->_._.actor.player->_.doCommandIdx = 0x3C;
    if ( !sub_71008BD430((__int64)this->_._.actor.player->_._.controllerMaybe, 0) )
      goto LABEL_494;
    ui::sub_7100A95F5C((unsigned int)this->_._.actor.player->_.doCommandIdx);
    v404 = ActorBase::x_0((ActorBase *)this->_._.actor.player);
    v405 = __ldar((unsigned __int8 *)&unk_71025AE4E8);
    v406 = v404;
    if ( !((unsigned __int64)&unk_71025AE4E8 & 1) && (unsigned int)_cxa_guard_acquire_0(&unk_71025AE4E8) )
    {
      Actor::rttiInfo = (__int64)&off_71023545C0;
      _cxa_guard_release_0(&unk_71025AE4E8);
    }
    if ( v406 && !v406->vtable->checkDerivedRuntimeTypeInfo((Actor *)v406, &Actor::rttiInfo) )
      v406 = 0LL;
    if ( !ActorBase::x_0((ActorBase *)this->_._.actor.player) )
      goto LABEL_494;
    v407 = (__int64)v406[4].vtable;
    *(_DWORD *)&acc.fromOtherThread = 0x800006A;
    AI_AIOrActionBase::sendMessageMaybe(&this->_._, v407, (__int64)&acc, 0LL);
    goto LABEL_1116;
  }
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"騎乗";
  if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
  {
    if ( sub_710084CBE4((__int64)this->_._.actor.player) & 1
      && sub_71008BD430((__int64)this->_._.actor.player->_._.controllerMaybe, 2u) )
    {
      Player::x_8(this->_._.actor.player);
      v415 = 0LL;
      do
      {
        v416 = &acc.fromOtherThread + v415;
        BaseProcLink::ctor((BaseProcLink *)((char *)&acc.actor + v415));
        v415 += 0x50LL;
        *((_QWORD *)v416 + 5) = 0xFFFFFFFFFFFFFFFFLL;
        *((_QWORD *)v416 + 6) = 0LL;
        *((_QWORD *)v416 + 7) = 0LL;
      }
      while ( v415 != 0xA00 );
      a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt;
      v461 = 0;
      *(_QWORD *)&a2.idMaybe = "EnableSwordInput";
      sub_7100D17D84((evt::ActionContext::Entry *)&acc, 0, (__int64)&a2, 0xFFFFFFFF);
      AI_AI_PlayerNormal::changeState(this, "バク転", (__int64)&acc);
      v417 = 0xA00LL;
      do
      {
        v418 = &acc.fromOtherThread + v417;
        *((_QWORD *)v418 + 0xFFFFFFFB) = 0xFFFFFFFFFFFFFFFFLL;
        *((_QWORD *)v418 + 0xFFFFFFFC) = 0LL;
        *((_QWORD *)v418 + 0xFFFFFFFD) = 0LL;
        BaseProcLink::reset((BaseProcLink *)((char *)&acc + v417 - 0x48));
        v417 -= 0x50LL;
      }
      while ( v417 );
      return;
    }
    if ( ((__int64 (*)(void))this->_._.actor.player->vptr->_.PlayerBase__m292)() & 1
      && !(sub_71008BD3BC(this->_._.actor.player->_._.controllerMaybe, 2LL) & 1)
      && !(((__int64 (__fastcall *)(_QWORD))sub_71008744D4)((ActorPointer)this->_._.actor.player) & 1) )
    {
      v420 = 0LL;
      do
      {
        v421 = &acc.fromOtherThread + v420;
        BaseProcLink::ctor((BaseProcLink *)((char *)&acc.actor + v420));
        v420 += 0x50LL;
        *((_QWORD *)v421 + 5) = 0xFFFFFFFFFFFFFFFFLL;
        *((_QWORD *)v421 + 6) = 0LL;
        *((_QWORD *)v421 + 7) = 0LL;
      }
      while ( v420 != 0xA00 );
      v461 = 0;
      v422 = ((__int64 (*)(void))this->_._.actor.player->vptr->_.PlayerBase__m288)();
      a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt;
      *(_QWORD *)&a2.idMaybe = "JumpGear";
      sub_7100D17C0C((__int64)&acc, v422, (__int64)&a2, 0xFFFFFFFF);
      v423 = ((__int64 (*)(void))this->_._.actor.player->vptr->_.pe.g.a.getPlayerRideInfo)();
      if ( BaseProcLink::x_1((BaseProcLink *)(v423 + 0x18), *(ActorBase **)(v423 + 8)) )
      {
        v424 = 0LL;
      }
      else
      {
        v426 = BaseProcLink::acquireActorEx((BaseProcLink *)(v423 + 0x18), 0LL, *(ActorBase **)(v423 + 8));
        v427 = __ldar((unsigned __int8 *)&unk_71025AE4E8);
        v424 = (HorseBase *)v426;
        if ( !((unsigned __int64)&unk_71025AE4E8 & 1) && (unsigned int)_cxa_guard_acquire_0(&unk_71025AE4E8) )
        {
          Actor::rttiInfo = (__int64)&off_71023545C0;
          _cxa_guard_release_0(&unk_71025AE4E8);
        }
        if ( v424 && !v424->_.vptr->b.checkDerivedRuntimeTypeInfo(&v424->_, &Actor::rttiInfo) )
          v424 = 0LL;
      }
      v428 = __ldar((unsigned __int8 *)&unk_71025AEEC0);
      if ( !((unsigned __int64)&unk_71025AEEC0 & 1) && (unsigned int)_cxa_guard_acquire_0(&unk_71025AEEC0) )
      {
        HorseBase::rttiInfo = (__int64)&off_71023545A8;
        _cxa_guard_release_0(&unk_71025AEEC0);
      }
      if ( v424
        && v424->_.vptr->b.checkDerivedRuntimeTypeInfo(&v424->_, &HorseBase::rttiInfo)
        && (unsigned int)HorseBase::x(v424) == 6 )
      {
        a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt;
        *(_QWORD *)&a2.idMaybe = "IsLargeHorse";
        v429 = 1;
      }
      else
      {
        a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt;
        v429 = 0;
        *(_QWORD *)&a2.idMaybe = "IsLargeHorse";
      }
      sub_7100D17D84((evt::ActionContext::Entry *)&acc, v429, (__int64)&a2, 0xFFFFFFFF);
      HIBYTE(this->field_1A8) = 0;
      v431 = __ldar((unsigned __int8 *)&unk_71025AF460);
      if ( !((unsigned __int64)&unk_71025AF460 & 1) && (unsigned int)_cxa_guard_acquire_0(&unk_71025AF460) )
      {
        Motorcycle::rttiInfo = (__int64)&off_7102354590;
        _cxa_guard_release_0(&unk_71025AF460);
      }
      if ( v424
        && v424->_.vptr->b.checkDerivedRuntimeTypeInfo(&v424->_, &Motorcycle::rttiInfo)
        && sub_71008BD3BC(this->_._.actor.player->_._.controllerMaybe, 0xDLL) & 1
        && sub_71008BD3BC(this->_._.actor.player->_._.controllerMaybe, 5LL) & 1 )
      {
        HIBYTE(this->field_1A8) = 1;
      }
      AI_AI_PlayerNormal::changeState(this, "馬上ジャンプ", (__int64)&acc);
      v432 = 0xA00LL;
      do
      {
        v433 = &acc.fromOtherThread + v432;
        *((_QWORD *)v433 + 0xFFFFFFFB) = 0xFFFFFFFFFFFFFFFFLL;
        *((_QWORD *)v433 + 0xFFFFFFFC) = 0LL;
        *((_QWORD *)v433 + 0xFFFFFFFD) = 0LL;
        BaseProcLink::reset((BaseProcLink *)((char *)&acc + v432 - 0x48));
        v432 -= 0x50LL;
      }
      while ( v432 );
      return;
    }
    goto LABEL_494;
  }
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"操作";
  if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
  {
    if ( sub_71008BD430((__int64)this->_._.actor.player->_._.controllerMaybe, 0xEu) )
      goto LABEL_884;
    goto LABEL_494;
  }
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"滑落";
  if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
  {
    if ( !(sub_7100FBB4B4(this->_._.actor.player->_._._.g.a.info578) & 1) )
      goto LABEL_671;
    if ( *(float *)&this->_._.actor.player->_.field_209C > 0.05 )
    {
      sub_7100F626CC(v3, (__int64)&acc);
      v425.player = (Player *)this->_._.actor;
      *(ActorAccessor *)&v425.player->_.field_1B18_x = acc;
      *(_OWORD *)&v425.player->_.field_1B28_y = *(_OWORD *)&v452;
      *(_OWORD *)&v425.player->_.field_1B38_z = *(_OWORD *)&v455;
      if ( ((__int64 (__fastcall *)(_QWORD))sub_7100892098)((ActorPointer)this->_._.actor.player) & 1 )
        goto LABEL_790;
      goto LABEL_64;
    }
    goto LABEL_494;
  }
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"しゃがみステップ";
  if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
    goto LABEL_681;
  *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
  acc.actor = (ActorBase *)"木登り";
  if ( !(AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1) )
  {
LABEL_494:
    v187 = this->_._.vptr.base->AI_AIOrActionBase__m26((AI_AIOrActionBase *)this);
    if ( !((*(__int64 (**)(void))(*(_QWORD *)v187 + 0x28LL))() & 1)
      && !((*(__int64 (__fastcall **)(__int64))(*(_QWORD *)v187 + 0x20LL))(v187) & 1) )
    {
      goto LABEL_1122;
    }
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"梯子";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
      goto LABEL_1205;
    a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt;
    *(_QWORD *)&a2.idMaybe = "攻撃";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&a2) & 1 )
      goto LABEL_1205;
    state.vptr = &sead::SafeString::vt;
    state.cstr = "着地後攻撃";
    if ( AI_AIBase::compareState(&this->_, &state) & 1 )
      goto LABEL_1205;
    v449.vptr = &sead::SafeString::vt;
    v449.cstr = "ガードスリップ";
    if ( AI_AIBase::compareState(&this->_, &v449) & 1 )
      goto LABEL_1205;
    *(_QWORD *)a6 = &sead::SafeString::vt;
    v448 = "ガード崩れ";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)a6) & 1 )
      goto LABEL_1205;
    v446.vptr = &sead::SafeString::vt;
    v446.cstr = "持上げ";
    if ( AI_AIBase::compareState(&this->_, &v446) & 1 )
      goto LABEL_1205;
    v445.vptr = &sead::SafeString::vt;
    v445.cstr = "小ダメージ";
    if ( AI_AIBase::compareState(&this->_, &v445) & 1 )
      goto LABEL_1205;
    v444.vptr = &sead::SafeString::vt;
    v444.cstr = "中ダメージ";
    if ( AI_AIBase::compareState(&this->_, &v444) & 1 )
      goto LABEL_1205;
    v443.vptr = &sead::SafeString::vt;
    v443.cstr = "坂滑り着地";
    if ( AI_AIBase::compareState(&this->_, &v443) & 1 )
      goto LABEL_1205;
    v442.vptr = &sead::SafeString::vt;
    v442.cstr = "段差登り";
    if ( AI_AIBase::compareState(&this->_, &v442) & 1 )
      goto LABEL_1205;
    v441.vptr = &sead::SafeString::vt;
    v441.cstr = "ステップ攻撃";
    if ( AI_AIBase::compareState(&this->_, &v441) & 1 )
      goto LABEL_1205;
    v440.vptr = &sead::SafeString::vt;
    v440.cstr = "飛び込み着地";
    if ( AI_AIBase::compareState(&this->_, &v440) & 1 )
      goto LABEL_1205;
    v439.vptr = &sead::SafeString::vt;
    v439.cstr = "素材をとる";
    if ( AI_AIBase::compareState(&this->_, &v439) & 1 )
      goto LABEL_1205;
    v438.vptr = &sead::SafeString::vt;
    v438.cstr = "怯む";
    if ( AI_AIBase::compareState(&this->_, &v438) & 1
      || (v437.vptr = &sead::SafeString::vt, v437.cstr = "拾う", AI_AIBase::compareState(&this->_, &v437) & 1)
      || (v436.vptr = &sead::SafeString::vt,
          v436.cstr = "ドアを押して開ける",
          AI_AIBase::compareState(&this->_, &v436) & 1)
      || (v435.vptr = &sead::SafeString::vt,
          v435.cstr = "ドアを引いて開ける",
          AI_AIBase::compareState(&this->_, &v435) & 1) )
    {
LABEL_1205:
      if ( AI_AI_PlayerNormal::x_8(this, 0) & 1 )
        return;
    }
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"ジャンプ斬り";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1
      || (a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt,
          *(_QWORD *)&a2.idMaybe = "馬上ジャンプ攻撃",
          AI_AIBase::compareState(&this->_, (sead::SafeString *)&a2) & 1) )
    {
      if ( !Player::isSurfingOnGround(this->_._.actor.player) )
        goto LABEL_118;
      if ( AI_AI_PlayerNormal::x_8(this, 0) & 1 )
        return;
    }
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"泳ぎ";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
    {
      if ( Player::isSurfingOnGround(this->_._.actor.player) )
      {
LABEL_513:
        v188.player = (Player *)this->_._.actor;
LABEL_514:
        v189 = *(float *)&v188.player->_.field_209C;
        goto LABEL_515;
      }
LABEL_118:
      v45 = "落下";
      goto changeState;
    }
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"着地ダメージ";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
    {
      if ( LODWORD(this->_._.actor.player->_.field_1CA4) == 8 )
      {
LABEL_519:
        v45 = "木登り";
        goto changeState;
      }
      goto LABEL_546;
    }
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"武器投げ";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
    {
      if ( !Player::isSurfingOnGround(this->_._.actor.player) )
        goto LABEL_118;
      goto LABEL_545;
    }
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"凍り解除";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1
      || (a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt,
          *(_QWORD *)&a2.idMaybe = "大ダメージ起き上がり",
          AI_AIBase::compareState(&this->_, (sead::SafeString *)&a2) & 1)
      || (state.vptr = &sead::SafeString::vt, state.cstr = "痺れる", AI_AIBase::compareState(&this->_, &state) & 1) )
    {
      v190 = this->_._.vptr.base->AI_AIOrActionBase__m26((AI_AIOrActionBase *)this);
      if ( (*(__int64 (**)(void))(*(_QWORD *)v190 + 0x20LL))() & 1 )
      {
        *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
        acc.actor = (ActorBase *)"痺れる";
        if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
          goto LABEL_383;
      }
      v191 = ASList::x_1(this->_._.actor.player->_._._.g.a.ASList, 0LL, 0);
      ((void (*)(void))v191->vptr->assureTermination)();
      v191->vptr->assureTermination(v191);
      v192 = v191->cstr;
      if ( v192 != "DamageL" )
      {
        v193 = 0LL;
        do
        {
          v194 = (unsigned __int8)v192[v193];
          if ( v194 != (unsigned __int8)aDamagel[v193] )
            break;
          if ( v194 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
            goto LABEL_1121;
          ++v193;
        }
        while ( v193 < 0x80001 );
LABEL_545:
        if ( ((__int64 (*)(void))this->_._.actor.player->vptr->_.PlayerBase__m199)() & 1 )
          goto LABEL_113;
        goto LABEL_546;
      }
LABEL_1121:
      if ( sub_7100834EE4((__int64)this) & 1 )
        return;
      goto LABEL_1122;
    }
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"着地";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
    {
      if ( !sub_71008BD430((__int64)this->_._.actor.player->_._.controllerMaybe, 2u) )
      {
        v195 = this->_._.actor.player;
        if ( !v195[0x17F0] )
          goto LABEL_554;
      }
      if ( AI_AI_PlayerNormal::x_6c(this, 1LL) & 1 || AI_AI_PlayerNormal::x_6d(this, 1LL) & 1 )
        return;
LABEL_553:
      v195 = this->_._.actor.player;
LABEL_554:
      if ( (!(v195[0xC45] & 1) || v195[0xD11]) && AI_AI_PlayerNormal::x_1(this) & 1 )
        return;
LABEL_546:
      if ( AI_AI_PlayerNormal::x_8(this, 0) & 1 )
        return;
      goto LABEL_1122;
    }
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"壁登り";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
    {
      v196 = this->_._.vptr.base->AI_AIOrActionBase__m26((AI_AIOrActionBase *)this);
      v197 = (*(__int64 (**)(void))(*(_QWORD *)v196 + 0x20LL))();
      v198 = ((__int64 (*)(void))this->_._.actor.player->vptr->_.getAttachedTargetActor2)();
      v199 = *(_QWORD *)(v198 + 0xB0);
      if ( !(v197 & 1) )
      {
        if ( v199 )
        {
          v200 = *(_DWORD *)(v199 + 0x48);
          if ( v200 & 0x10000 )
            goto LABEL_519;
          if ( v200 & 0x8000 )
          {
            v45 = "待機";
            *(_DWORD *)&this->_._.actor.player->_._.disableFairies |= 0x80u;
            goto changeState;
          }
        }
        v201.player = (Player *)this->_._.actor;
        v189 = *(float *)&v201.player->_.field_209C;
        if ( *(_DWORD *)(v3 + 0x224) != HIDWORD(v201.player->_.field_1CD4) )
        {
LABEL_515:
          if ( v189 <= 0.05 )
            goto LABEL_884;
changeStateToMove:
          v45 = "移動";
          goto changeState;
        }
        goto LABEL_629;
      }
      if ( v199 )
      {
        if ( sub_7100EB166C(*(_QWORD *)(v198 + 0xB0)) & 1 )
        {
          if ( *(float *)(v199 + 0x170) > -135.0 )
          {
            v45 = "壁ジャンプ";
            goto changeState;
          }
          goto LABEL_118;
        }
        if ( *(_BYTE *)(v199 + 0x174) )
        {
          sub_7100F5F598(v3, &acc);
          v206.player = (Player *)this->_._.actor;
          v207 = sqrtf(
                   (float)(*(float *)&acc.fromOtherThread * *(float *)&acc.fromOtherThread)
                 + (float)(*(float *)&acc.actor * *(float *)&acc.actor))
               / 30.0;
          v206.player->_.field_20BC.x = v207;
          v206.player->_.field_20BC.y = v207;
          if ( this->_._.actor.player->_.field_20BC.x > 0.0 )
          {
            v208 = sead::MathCalcCommon<float>::atan2Idx(*(float *)&acc.fromOtherThread, *(float *)&acc.actor);
            v45 = "落下";
            *(_DWORD *)&this->_._.actor.player->_.field_1C58[0x10] = v208;
            goto changeState;
          }
          goto LABEL_118;
        }
      }
      v209.player = (Player *)this->_._.actor;
      if ( *(_DWORD *)(v3 + 0x224) != HIDWORD(v209.player->_.field_1CD4) )
        goto LABEL_603;
      ((void (__fastcall *)(_QWORD))sub_71008840E0)((ActorPointer)v209.player);
      v210.player = (Player *)this->_._.actor;
      if ( !(v210.player->_._.isNoStandSquat & 0x200LL) )
      {
        sub_7100F5F270(v3, LODWORD(v210.player->_.field_1CD4));
        v209.player = (Player *)this->_._.actor;
LABEL_603:
        v189 = *(float *)&v209.player->_.field_209C;
        goto LABEL_515;
      }
LABEL_628:
      v189 = *(float *)&v210.player->_.field_209C;
LABEL_629:
      if ( v189 <= 0.05 )
        goto LABEL_113;
LABEL_630:
      v45 = "しゃがみ移動";
      goto changeState;
    }
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"装備解除";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
    {
      v45 = (char *)this->field_60;
      goto changeState;
    }
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"坂滑り";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
    {
      v45 = "坂滑り着地";
      goto changeState;
    }
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"しゃがみ移動";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
      goto LABEL_113;
    a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt;
    *(_QWORD *)&a2.idMaybe = "しゃがみステップ";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&a2) & 1 )
      goto LABEL_113;
    state.vptr = &sead::SafeString::vt;
    state.cstr = "しゃがみダメージ";
    if ( AI_AIBase::compareState(&this->_, &state) & 1 )
      goto LABEL_113;
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"2段ジャンプ";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
      goto LABEL_595;
    a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt;
    *(_QWORD *)&a2.idMaybe = "落下";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&a2) & 1 )
      goto LABEL_595;
    state.vptr = &sead::SafeString::vt;
    state.cstr = "パラショール滑空";
    if ( AI_AIBase::compareState(&this->_, &state) & 1 )
      goto LABEL_595;
    v449.vptr = &sead::SafeString::vt;
    v449.cstr = "コッコ滑空";
    if ( AI_AIBase::compareState(&this->_, &v449) & 1 )
      goto LABEL_595;
    *(_QWORD *)a6 = &sead::SafeString::vt;
    v448 = "水中へ飛び込みジャンプ";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)a6) & 1 )
      goto LABEL_595;
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"ジャンプ";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1
      || (a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt,
          *(_QWORD *)&a2.idMaybe = "馬上ジャンプ",
          AI_AIBase::compareState(&this->_, (sead::SafeString *)&a2) & 1)
      || (state.vptr = &sead::SafeString::vt,
          state.cstr = "壁ジャンプ",
          AI_AIBase::compareState(&this->_, &state) & 1) )
    {
      if ( Player::isSurfingOnGround(this->_._.actor.player) )
        goto LABEL_596;
      if ( !(sub_7100882178((__int64)this->_._.actor.player) & 1) )
        goto LABEL_118;
LABEL_1122:
      *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
      acc.actor = (ActorBase *)"騎乗";
      if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1
        || Attention::__auto10(Attention::sInstance, 5LL) & 1 )
      {
        return;
      }
      BaseProcLink::ctor(&a2);
      if ( Attention::__auto3(Attention::sInstance, 5LL, 0LL, &a2) & 1 )
      {
        if ( ((__int64 (*)(void))this->_._.actor.player->vptr->_.PlayerBase__m200)() & 1 )
        {
          if ( !(((__int64 (*)(void))this->_._.actor.player->vptr->_.isRiding)() & 1) )
          {
            v408.player = (Player *)this->_._.actor;
            if ( !(*(_DWORD *)&v408.player->_._.field_CE4 & 0x80000000)
              && !(v408.player->_._.field_CEB & 2)
              && !(((__int64 (*)(void))v408.player->vptr->_.PlayerBase__m186)() & 1)
              && !(((__int64 (*)(void))this->_._.actor.player->vptr->_.PlayerBase__m187)() & 1) )
            {
              v409.player = (Player *)this->_._.actor;
              if ( !(v409.player->_._.field_CEF & 4)
                && !(v409.player->_._.field_C3C & 2)
                && Player::RideInfo::assignRideActor(&v409.player->_.rideInfo, &a2) & 1 )
              {
                v410.player = (Player *)this->_._.actor;
                v410.player->_.field_20BC.x = 0.0;
                v410.player->_.field_20BC.y = 0.0;
                PlayerInfo::__auto2(PlayerInfo::sInstance, &a2);
                v411 = 0LL;
                do
                {
                  v412 = &acc.fromOtherThread + v411;
                  BaseProcLink::ctor((BaseProcLink *)((char *)&acc.actor + v411));
                  v411 += 0x50LL;
                  *((_QWORD *)v412 + 5) = 0xFFFFFFFFFFFFFFFFLL;
                  *((_QWORD *)v412 + 6) = 0LL;
                  *((_QWORD *)v412 + 7) = 0LL;
                }
                while ( v411 != 0xA00 );
                state.vptr = &sead::SafeString::vt;
                v461 = 0;
                state.cstr = "HasToPlayRidingOnAS";
                sub_7100D17D84((evt::ActionContext::Entry *)&acc, 1, (__int64)&state, 0xFFFFFFFF);
                AI_AI_PlayerNormal::changeState(this, "騎乗", (__int64)&acc);
                v413 = 0xA00LL;
                do
                {
                  v414 = &acc.fromOtherThread + v413;
                  *((_QWORD *)v414 + 0xFFFFFFFB) = 0xFFFFFFFFFFFFFFFFLL;
                  *((_QWORD *)v414 + 0xFFFFFFFC) = 0LL;
                  *((_QWORD *)v414 + 0xFFFFFFFD) = 0LL;
                  BaseProcLink::reset((BaseProcLink *)((char *)&acc + v413 - 0x48));
                  v413 -= 0x50LL;
                }
                while ( v413 );
              }
            }
          }
        }
      }
      BaseProcLink::reset(&a2);
      return;
    }
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"落下ガードジャスト";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1
      || (a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt,
          *(_QWORD *)&a2.idMaybe = "壁滑り",
          AI_AIBase::compareState(&this->_, (sead::SafeString *)&a2) & 1) )
    {
LABEL_595:
      if ( !Player::isSurfingOnGround(this->_._.actor.player) )
        goto LABEL_118;
      goto LABEL_596;
    }
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"落下中の弓";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
    {
      v240.player = (Player *)this->_._.actor;
      v241 = PlayerBase::getEquipmentTypeName((PlayerBase *)v240.player, 0);
      v240.player->_._.equipmentTypeName._.vptr->assureTermination(&v240.player->_._.equipmentTypeName._);
      v240.player->_._.equipmentTypeName._.vptr->assureTermination(&v240.player->_._.equipmentTypeName._);
      v242 = v240.player->_._.equipmentTypeName._.cstr;
      v241->vptr->assureTermination(v241);
      v243 = v241->cstr;
      if ( v242 != v243 )
      {
        v244 = v240.player->_._.equipmentTypeName._.cstr;
        for ( nn = 1LL; ; nn += 2LL )
        {
          v248 = (unsigned __int8)v244[nn - 1];
          if ( v248 != (unsigned __int8)v243[nn - 1] )
            break;
          if ( v248 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
            goto LABEL_743;
          if ( nn >= 0x80001 )
            break;
          v249 = (unsigned __int8)v244[nn];
          if ( v249 != (unsigned __int8)v243[nn] )
            break;
          if ( v249 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
            goto LABEL_743;
        }
        goto LABEL_596;
      }
LABEL_743:
      if ( v240.player->_._.slowTimeFlagsMaybe & 8 )
      {
LABEL_596:
        sub_710083B0BC((__int64)this, 0);
        return;
      }
      goto LABEL_595;
    }
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"サイドステップ";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
    {
      v251 = this->_._.vptr.base->AI_AIOrActionBase__m26((AI_AIOrActionBase *)this);
      if ( (*(__int64 (**)(void))(*(_QWORD *)v251 + 0x20LL))() & 1 )
        goto LABEL_118;
      v252.player = (Player *)this->_._.actor;
      if ( !(v252.player->_._.field_C3C & 0x1000000) )
        goto LABEL_761;
      if ( !(((__int64 (__fastcall *)(_QWORD))sub_7100892098)((ActorPointer)this->_._.actor.player) & 1) )
      {
        v252.player = (Player *)this->_._.actor;
LABEL_761:
        v253 = PlayerBase::getEquipmentTypeName((PlayerBase *)v252.player, 1u);
        v252.player->_._.equipmentTypeName._.vptr->assureTermination(&v252.player->_._.equipmentTypeName._);
        v252.player->_._.equipmentTypeName._.vptr->assureTermination(&v252.player->_._.equipmentTypeName._);
        v254 = v252.player->_._.equipmentTypeName._.cstr;
        v253->vptr->assureTermination(v253);
        v255 = v253->cstr;
        if ( v254 != v255 )
        {
          v256 = v252.player->_._.equipmentTypeName._.cstr;
          for ( i1 = 1LL; ; i1 += 2LL )
          {
            v258 = (unsigned __int8)v256[i1 - 1];
            if ( v258 != (unsigned __int8)v255[i1 - 1] )
              break;
            if ( v258 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
              goto LABEL_769;
            if ( i1 >= 0x80001 )
              break;
            v259 = (unsigned __int8)v256[i1];
            if ( v259 != (unsigned __int8)v255[i1] )
              break;
            if ( v259 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
              goto LABEL_769;
          }
LABEL_772:
          v261 = this->_._.actor.player;
          if ( (!(v261[0xC45] & 1) || v261[0xD11]) && !(v261[0xC41] & 1) )
          {
            if ( AI_AI_PlayerNormal::x_1(this) & 1 )
              return;
            v261 = this->_._.actor.player;
          }
          if ( !(v261[0xC41] & 2) || !v261[0xD10] )
          {
            v262 = "サイドステップ着地";
LABEL_869:
            AI_AI_PlayerNormal::changeState(this, v262, 0LL);
            goto LABEL_1122;
          }
LABEL_867:
          v262 = "攻撃";
          goto LABEL_869;
        }
LABEL_769:
        v260.player = (Player *)this->_._.actor;
        if ( !v260.player->_._.weaponType
          || !(v260.player->_._.slowTimeFlagsMaybe & 0x100)
          || ((__int64 (__fastcall *)(_QWORD))sub_71008744D4)((ActorPointer)v260.player) & 1 )
        {
          goto LABEL_772;
        }
LABEL_874:
        v45 = "着地後攻撃";
        goto changeState;
      }
LABEL_790:
      v45 = "坂滑り";
      goto changeState;
    }
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"バク転";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
    {
      v266 = this->_._.vptr.base->AI_AIOrActionBase__m26((AI_AIOrActionBase *)this);
      if ( (*(__int64 (**)(void))(*(_QWORD *)v266 + 0x20LL))() & 1 )
        goto LABEL_118;
      v267.player = (Player *)this->_._.actor;
      if ( v267.player->_._.field_C3C & 0x1000000 )
      {
        if ( ((__int64 (__fastcall *)(_QWORD))sub_7100892098)((ActorPointer)this->_._.actor.player) & 1 )
          goto LABEL_790;
        v267.player = (Player *)this->_._.actor;
      }
      v288 = PlayerBase::getEquipmentTypeName((PlayerBase *)v267.player, 1u);
      v267.player->_._.equipmentTypeName._.vptr->assureTermination(&v267.player->_._.equipmentTypeName._);
      v267.player->_._.equipmentTypeName._.vptr->assureTermination(&v267.player->_._.equipmentTypeName._);
      v289 = v267.player->_._.equipmentTypeName._.cstr;
      v288->vptr->assureTermination(v288);
      v290 = v288->cstr;
      if ( v289 == v290 )
      {
LABEL_857:
        v295.player = (Player *)this->_._.actor;
        if ( v295.player->_._.weaponType
          && v295.player->_._.slowTimeFlagsMaybe & 0x100
          && !(((__int64 (__fastcall *)(_QWORD))sub_71008744D4)((ActorPointer)v295.player) & 1) )
        {
          goto LABEL_874;
        }
      }
      else
      {
        v291 = v267.player->_._.equipmentTypeName._.cstr;
        for ( i2 = 1LL; ; i2 += 2LL )
        {
          v293 = (unsigned __int8)v291[i2 - 1];
          if ( v293 != (unsigned __int8)v290[i2 - 1] )
            break;
          if ( v293 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
            goto LABEL_857;
          if ( i2 >= 0x80001 )
            break;
          v294 = (unsigned __int8)v291[i2];
          if ( v294 != (unsigned __int8)v290[i2] )
            break;
          if ( v294 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
            goto LABEL_857;
        }
      }
      v296 = this->_._.actor.player;
      if ( (!(v296[0xC45] & 1) || v296[0xD11]) && !(v296[0xC41] & 1) )
      {
        if ( AI_AI_PlayerNormal::x_1(this) & 1 )
          return;
        v296 = this->_._.actor.player;
      }
      if ( !(v296[0xC41] & 2) || !v296[0xD10] )
      {
        v262 = "バク転着地";
        goto LABEL_869;
      }
      goto LABEL_867;
    }
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"ステップガードジャスト";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
    {
      v268 = this->_._.vptr.base->AI_AIOrActionBase__m26((AI_AIOrActionBase *)this);
      if ( !((*(__int64 (**)(void))(*(_QWORD *)v268 + 0x20LL))() & 1) )
      {
        if ( LOBYTE(this->_._.actor.player->_._.field_D1C) == 1 )
          v45 = "バク転着地";
        else
          v45 = "サイドステップ着地";
        goto changeState;
      }
      goto LABEL_118;
    }
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"サイドステップ着地";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1
      || (a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt,
          *(_QWORD *)&a2.idMaybe = "バク転着地",
          AI_AIBase::compareState(&this->_, (sead::SafeString *)&a2) & 1) )
    {
      v277 = this->_._.vptr.base->AI_AIOrActionBase__m26((AI_AIOrActionBase *)this);
      if ( !((*(__int64 (**)(void))(*(_QWORD *)v277 + 0x20LL))() & 1) )
        goto LABEL_553;
      v278 = (PlayerBase *)this->_._.actor.player;
      v279 = PlayerBase::getEquipmentTypeName(v278, 1u);
      v278->_.equipmentTypeName._.vptr->assureTermination(&v278->_.equipmentTypeName._);
      v278->_.equipmentTypeName._.vptr->assureTermination(&v278->_.equipmentTypeName._);
      v280 = v278->_.equipmentTypeName._.cstr;
      v279->vptr->assureTermination(v279);
      v281 = v279->cstr;
      if ( v280 != v281 )
      {
        v282 = v278->_.equipmentTypeName._.cstr;
        for ( i3 = 1LL; ; i3 += 2LL )
        {
          v284 = (unsigned __int8)v282[i3 - 1];
          if ( v284 != (unsigned __int8)v281[i3 - 1] )
            break;
          if ( v284 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
            goto LABEL_825;
          if ( i3 >= 0x80001 )
            break;
          v285 = (unsigned __int8)v282[i3];
          if ( v285 != (unsigned __int8)v281[i3] )
            break;
          if ( v285 == (unsigned __int8)sead::SafeStringBase<char>::cNullChar )
            goto LABEL_825;
        }
        goto LABEL_553;
      }
LABEL_825:
      v286.player = (Player *)this->_._.actor;
      if ( v286.player->_._.slowTimeFlagsMaybe & 0x200 )
      {
        if ( !v286.player->_._.gap_D08 )
          return;
        v45 = "攻撃";
changeState:
        AI_AI_PlayerNormal::changeState(this, v45, 0LL);
        return;
      }
      if ( ((__int64 (__fastcall *)(_QWORD))sub_71008744D4)((ActorPointer)v286.player) & 1 )
        return;
      v287.player = (Player *)this->_._.actor;
      if ( v287.player->_._.field_C3C & 0x200000 || *((float *)&v287.player->_.field_1E98 + 1) > 0.00000011921 )
        return;
LABEL_829:
      v45 = "ジャンプ斬り";
      goto changeState;
    }
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"壁駆け上がり";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
    {
      if ( AI_AI_PlayerNormal::x_0(this) & 1 )
        return;
      goto LABEL_118;
    }
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"カメラ";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
      goto LABEL_884;
    a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt;
    *(_QWORD *)&a2.idMaybe = "小段差よじ登り壁つかみ";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&a2) & 1 )
      goto LABEL_884;
    state.vptr = &sead::SafeString::vt;
    state.cstr = "弓主観";
    if ( AI_AIBase::compareState(&this->_, &state) & 1 )
      goto LABEL_884;
    v449.vptr = &sead::SafeString::vt;
    v449.cstr = "座る";
    if ( AI_AIBase::compareState(&this->_, &v449) & 1 )
      goto LABEL_884;
    *(_QWORD *)a6 = &sead::SafeString::vt;
    v448 = "寝る";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)a6) & 1 )
      goto LABEL_884;
    v446.vptr = &sead::SafeString::vt;
    v446.cstr = "飾る待機";
    if ( AI_AIBase::compareState(&this->_, &v446) & 1 )
      goto LABEL_884;
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"アイテム";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
      goto LABEL_513;
    a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt;
    *(_QWORD *)&a2.idMaybe = "スーパージャンプ溜め";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&a2) & 1 )
      goto LABEL_513;
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"騎乗";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
    {
      v309 = this->_._.vptr.base->AI_AIOrActionBase__m26((AI_AIOrActionBase *)this);
      if ( (*(__int64 (**)(void))(*(_QWORD *)v309 + 0x20LL))() & 1 )
      {
        if ( !MotorcycleMgr::sInstance || !MotorcycleMgr::sInstance->field_17B )
        {
          v319 = ((__int64 (*)(void))this->_._.actor.player->vptr->_.pe.g.a.getPlayerRideInfo)();
          if ( !BaseProcLink::x_1((BaseProcLink *)(v319 + 0x18), *(ActorBase **)(v319 + 8)) )
          {
            v320 = BaseProcLink::acquireActorEx((BaseProcLink *)(v319 + 0x18), 0LL, *(ActorBase **)(v319 + 8));
            v321 = __ldar((unsigned __int8 *)&unk_71025AE4E8);
            v322 = v320;
            if ( !((unsigned __int64)&unk_71025AE4E8 & 1) && (unsigned int)_cxa_guard_acquire_0(&unk_71025AE4E8) )
            {
              Actor::rttiInfo = (__int64)&off_71023545C0;
              _cxa_guard_release_0(&unk_71025AE4E8);
            }
            if ( v322 && v322->vtable->checkDerivedRuntimeTypeInfo((Actor *)v322, &Actor::rttiInfo) )
            {
              v323 = Actor::getInfo578_fieldA_60((Actor *)v322);
              v324 = v323;
              if ( v323 )
              {
                sub_7100E8160C(v323, 0LL, 0LL, &a2);
                sub_7100F626E8(v324, &acc);
                v325 = a2.baseProcLinkData;
                v326 = (float)((float)(*(float *)&a2.baseProcLinkData * *(float *)&v452)
                             + (float)(*((float *)&a2.baseProcLinkData + 1) * *((float *)&v452 + 1)))
                     + (float)(*(float *)&a2.idMaybe * v453);
                *(float *)&a2.baseProcLinkData = *((float *)&acc.actor + 1)
                                               + (float)((float)((float)(*(float *)&a2.baseProcLinkData
                                                                       * *(float *)&acc.fromOtherThread)
                                                               + (float)(*((float *)&a2.baseProcLinkData + 1)
                                                                       * *((float *)&acc.fromOtherThread + 1)))
                                                       + (float)(*(float *)&a2.idMaybe * *(float *)&acc.actor));
                *((float *)&a2.baseProcLinkData + 1) = v454 + v326;
                *(float *)&a2.idMaybe = v458
                                      + (float)((float)((float)(*(float *)&v325 * v455)
                                                      + (float)(*((float *)&v325 + 1) * v456))
                                              + (float)(*(float *)&a2.idMaybe * v457));
                v327 = Actor::getInfo578_fieldA_60(this->_._.actor.actor);
                if ( v327 )
                  warpActorToPosition(v327, (__int64)&a2);
              }
              else
              {
                v345 = __ldar((unsigned __int8 *)&unk_71025AF460);
                if ( !((unsigned __int64)&unk_71025AF460 & 1) && (unsigned int)_cxa_guard_acquire_0(&unk_71025AF460) )
                {
                  Motorcycle::rttiInfo = (__int64)&off_7102354590;
                  _cxa_guard_release_0(&unk_71025AF460);
                }
                if ( v322->vtable->checkDerivedRuntimeTypeInfo((Actor *)v322, &Motorcycle::rttiInfo) )
                {
                  v346 = Actor::getInfo578_fieldA_60(this->_._.actor.actor);
                  if ( v346 )
                  {
                    LODWORD(state.vptr) = HIDWORD(v322[2]._.field_A8);
                    HIDWORD(state.vptr) = HIDWORD(v322[2]._.field_B8);
                    LODWORD(state.cstr) = HIDWORD(v322[2]._.field_C8);
                    a6[0] = 0.35;
                    sub_7100F62E74();
                    sub_7100FC95C0(
                      (__int64)&acc,
                      3u,
                      0,
                      *(_QWORD *)(*(_QWORD *)((char *)&v322[3]._.field_100 + 4) + 0x188LL),
                      0x80u,
                      a6[0],
                      0LL,
                      (__int64)&nullPosition,
                      &sead::SafeStringBase<char>::cEmptyString,
                      0);
                    sub_710007F868(v322);
                    a2.baseProcLinkData = (BaseProcLinkData *)__PAIR__(v348, v347);
                    a2.idMaybe = v349;
                    sub_7100FC8884(&acc, &a2, &state);
                    v350 = v452;
                    v460 = 0;
                    v351 = sub_7100E94134(8);
                    v352 = sub_7100E94118(8);
                    v353 = v352;
                    if ( (unsigned int)v352 >= 2 )
                      v353 = 0LL;
                    v354 = 4 * v353;
                    v355 = v350 + 0x1C;
                    v356 = v350 + 0x24;
                    *(_DWORD *)(v350 + 0x1C + v354) |= v351;
                    *(_DWORD *)(v350 + 0x24 + v354) &= ~v351;
                    v357 = sub_7100E94134(9);
                    v358 = sub_7100E94118(9);
                    v359 = v358;
                    if ( (unsigned int)v358 >= 2 )
                      v359 = 0LL;
                    v360 = 4 * v359;
                    *(_DWORD *)(v355 + v360) |= v357;
                    *(_DWORD *)(v356 + v360) &= ~v357;
                    v361 = sub_7100E94134(2);
                    v362 = sub_7100E94118(2);
                    v363 = v362;
                    if ( (unsigned int)v362 >= 2 )
                      v363 = 0LL;
                    v364 = 4 * v363;
                    *(_DWORD *)(v355 + v364) |= v361;
                    *(_DWORD *)(v356 + v364) &= ~v361;
                    v365 = sub_7100E94134(0xC);
                    v366 = sub_7100E94118(0xC);
                    v367 = v366;
                    if ( (unsigned int)v366 >= 2 )
                      v367 = 0LL;
                    v368 = 4 * v367;
                    *(_DWORD *)(v355 + v368) |= v365;
                    *(_DWORD *)(v356 + v368) &= ~v365;
                    (*(void (__fastcall **)(ActorAccessor *, signed __int64))(*(_QWORD *)&acc.fromOtherThread + 0x10LL))(
                      &acc,
                      1LL);
                    LODWORD(v449.cstr) = state.cstr;
                    v449.vptr = state.vptr;
                    if ( v459 )
                    {
                      sub_7100FC7774((__int64)&a2, v350 + 0x48, *(_DWORD *)(v350 + 0x18));
                      a2.baseProcLinkData = (BaseProcLinkData *)off_71024F8BB0;
                      sub_7100FC339C(&a2, &v449, &acc);
                    }
                    warpActorToPosition(v346, (__int64)&v449);
                    sub_7100FC97D8((__int64)&acc);
                  }
                }
              }
              v369 = (__int64)v322[4].vtable;
              *(_DWORD *)&acc.fromOtherThread = 0x3800029;
              AI_AIOrActionBase::sendMessageMaybe(&this->_._, v369, (__int64)&acc, 0LL);
            }
          }
          v370 = ((__int64 (*)(void))this->_._.actor.player->vptr->_.pe.g.a.getPlayerRideInfo)();
          v45 = "落下";
          *(_WORD *)(v370 + 0x30) |= 0x10u;
          goto changeState;
        }
        v310 = ((__int64 (*)(void))this->_._.actor.player->vptr->_.pe.g.a.getPlayerRideInfo)();
        if ( v310 )
          *(_WORD *)(v310 + 0x30) |= 0x10u;
        v185 = "イベント開始待ち";
LABEL_477:
        AI_AIBase::changeState(&this->_, v185, 0LL);
        return;
      }
      v314 = ((__int64 (*)(void))this->_._.actor.player->vptr->_.pe.g.a.getPlayerRideInfo)();
      v315 = BaseProcLink::acquireActorEx((BaseProcLink *)(v314 + 0x18), 0LL, *(ActorBase **)(v314 + 8));
      v316 = __ldar((unsigned __int8 *)&unk_71025AE4E8);
      v317 = v315;
      if ( !((unsigned __int64)&unk_71025AE4E8 & 1) && (unsigned int)_cxa_guard_acquire_0(&unk_71025AE4E8) )
      {
        Actor::rttiInfo = (__int64)&off_71023545C0;
        _cxa_guard_release_0(&unk_71025AE4E8);
      }
      if ( v317 )
      {
        if ( v317->vtable->checkDerivedRuntimeTypeInfo((Actor *)v317, &Actor::rttiInfo) )
        {
          v318 = ((__int64 (__fastcall *)(ActorBase *))v317->vtable[4].ActorBase__m11)(v317);
          if ( v318 )
          {
            if ( *(_DWORD *)(v318 + 0x188) & 0x400 )
            {
              Player::x_8(this->_._.actor.player);
              v341 = 0LL;
              do
              {
                v342 = &acc.fromOtherThread + v341;
                BaseProcLink::ctor((BaseProcLink *)((char *)&acc.actor + v341));
                v341 += 0x50LL;
                *((_QWORD *)v342 + 5) = 0xFFFFFFFFFFFFFFFFLL;
                *((_QWORD *)v342 + 6) = 0LL;
                *((_QWORD *)v342 + 7) = 0LL;
              }
              while ( v341 != 0xA00 );
              a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt;
              v461 = 0;
              *(_QWORD *)&a2.idMaybe = "EnableSwordInput";
              sub_7100D17D84((evt::ActionContext::Entry *)&acc, 0, (__int64)&a2, 0xFFFFFFFF);
              AI_AI_PlayerNormal::changeState(this, "バク転", (__int64)&acc);
              v343 = 0xA00LL;
              do
              {
                v344 = &acc.fromOtherThread + v343;
                *((_QWORD *)v344 + 0xFFFFFFFB) = 0xFFFFFFFFFFFFFFFFLL;
                *((_QWORD *)v344 + 0xFFFFFFFC) = 0LL;
                *((_QWORD *)v344 + 0xFFFFFFFD) = 0LL;
                BaseProcLink::reset((BaseProcLink *)((char *)&acc + v343 - 0x48));
                v343 -= 0x50LL;
              }
              while ( v343 );
              return;
            }
          }
        }
      }
      if ( !Player::isSurfingOnGround(this->_._.actor.player) )
        goto LABEL_118;
      if ( !(this->_._.actor.player->_._.horseFlagsMaybe & 0x20) )
        goto LABEL_884;
LABEL_1036:
      v45 = "着地";
      goto changeState;
    }
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"掴まれる";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
    {
      if ( Player::isSurfingOnGround(this->_._.actor.player) )
        goto LABEL_884;
      goto LABEL_118;
    }
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"盾サーフィン";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
    {
      v336 = this->_._.vptr.base->AI_AIOrActionBase__m26((AI_AIOrActionBase *)this);
      v337 = (*(__int64 (**)(void))(*(_QWORD *)v336 + 0x20LL))();
      v338 = (PlayerOrEnemy *)this->_._.actor.player;
      if ( v337 & 1 )
      {
        if ( !sub_710000759C(v338) && !Player::isSurfingOnGround(this->_._.actor.player) )
          goto LABEL_118;
        goto LABEL_1121;
      }
      if ( !Player::isSurfingOnGround((Player *)v338) )
        goto LABEL_118;
      v374.player = (Player *)this->_._.actor;
      if ( !(v374.player->_._.field_CE4 & 2) )
        goto LABEL_884;
      if ( v374.player->_._.field_C3C & 0x1000000
        && ((__int64 (__fastcall *)(_QWORD))sub_7100892098)((ActorPointer)v374.player) & 1 )
      {
        goto LABEL_790;
      }
      goto LABEL_1036;
    }
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"ウェイクボード";
    if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
    {
      v373 = this->_._.vptr.base->AI_AIOrActionBase__m26((AI_AIOrActionBase *)this);
      if ( (*(__int64 (**)(void))(*(_QWORD *)v373 + 0x20LL))() & 1 )
        goto LABEL_1121;
      if ( !Player::isSurfingOnGround(this->_._.actor.player) )
        goto LABEL_118;
      if ( !(this->_._.actor.player->_._.field_CE4 & 2) )
        goto LABEL_884;
      goto LABEL_1036;
    }
    *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
    acc.actor = (ActorBase *)"滑落";
    if ( !(AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1) )
    {
      *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
      acc.actor = (ActorBase *)"大ダメージ";
      if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
        goto LABEL_1121;
      a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt;
      *(_QWORD *)&a2.idMaybe = "打ち上げ";
      if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&a2) & 1 )
        goto LABEL_1121;
      *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
      acc.actor = (ActorBase *)"バリア吹き飛び";
      if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
        goto LABEL_118;
      a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt;
      *(_QWORD *)&a2.idMaybe = "水の遺物咆哮吹き飛び";
      if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&a2) & 1 )
        goto LABEL_118;
      state.vptr = &sead::SafeString::vt;
      state.cstr = "ゾーラに掴まる";
      if ( AI_AIBase::compareState(&this->_, &state) & 1 )
        goto LABEL_118;
      *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
      acc.actor = (ActorBase *)"スーパージャンプ";
      if ( !(AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1) )
      {
        *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
        acc.actor = (ActorBase *)"馬乗りジャンプ";
        if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
        {
          if ( !(((__int64 (*)(void))this->_._.actor.player->vptr->_.isRiding)() & 1)
            && Player::RideInfo::assignRideActor(
                 &this->_._.actor.player->_.rideInfo,
                 &PlayerInfo::sInstance->horseBaseProcLinkMaybe) & 1 )
          {
            v382.player = (Player *)this->_._.actor;
            v383 = 0LL;
            v382.player->_.field_20BC.x = 0.0;
            v382.player->_.field_20BC.y = 0.0;
            do
            {
              v384 = &acc.fromOtherThread + v383;
              BaseProcLink::ctor((BaseProcLink *)((char *)&acc.actor + v383));
              v383 += 0x50LL;
              *((_QWORD *)v384 + 5) = 0xFFFFFFFFFFFFFFFFLL;
              *((_QWORD *)v384 + 6) = 0LL;
              *((_QWORD *)v384 + 7) = 0LL;
            }
            while ( v383 != 0xA00 );
            a2.baseProcLinkData = (BaseProcLinkData *)&sead::SafeString::vt;
            v461 = 0;
            *(_QWORD *)&a2.idMaybe = "HasToPlayRidingOnAS";
            sub_7100D17D84((evt::ActionContext::Entry *)&acc, 1, (__int64)&a2, 0xFFFFFFFF);
            AI_AI_PlayerNormal::changeState(this, "騎乗", (__int64)&acc);
            v385 = 0xA00LL;
            do
            {
              v386 = &acc.fromOtherThread + v385;
              *((_QWORD *)v386 + 0xFFFFFFFB) = 0xFFFFFFFFFFFFFFFFLL;
              *((_QWORD *)v386 + 0xFFFFFFFC) = 0LL;
              *((_QWORD *)v386 + 0xFFFFFFFD) = 0LL;
              BaseProcLink::reset((BaseProcLink *)((char *)&acc + v385 - 0x48));
              v385 -= 0x50LL;
            }
            while ( v385 );
            return;
          }
          goto LABEL_118;
        }
        *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
        acc.actor = (ActorBase *)"凍る";
        if ( AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1 )
        {
          if ( !this->_._.actor.player->_.field_17F0[2] )
          {
            v45 = "凍り解除";
            goto changeState;
          }
          goto LABEL_1121;
        }
        *(_QWORD *)&acc.fromOtherThread = &sead::SafeString::vt;
        acc.actor = (ActorBase *)"滝登り";
        if ( !(AI_AIBase::compareState(&this->_, (sead::SafeString *)&acc) & 1) )
          goto LABEL_1122;
        v419 = this->_._.vptr.base->AI_AIOrActionBase__m26((AI_AIOrActionBase *)this);
        if ( (*(__int64 (**)(void))(*(_QWORD *)v419 + 0x20LL))() & 1 )
          goto LABEL_118;
      }
      v45 = "パラショール滑空";
      goto changeState;
    }
    v378.player = (Player *)this->_._.actor;
    if ( *(_BYTE *)(v3 + 0x116) & 4 && *(float *)&v378.player->_.field_1EA8 <= *this->inWaterTimeForRagdoll )
      goto LABEL_1122;
    if ( v378.player->_._.isBgCrossFoot & 8 )
    {
      sub_7100F5F598(v3, &acc);
      if ( *((float *)&acc.fromOtherThread + 1) <= -0.2 )
        goto LABEL_1122;
    }
    sub_7100F626CC(v3, (__int64)&acc);
    v379.player = (Player *)this->_._.actor;
    *(ActorAccessor *)&v379.player->_.field_1B18_x = acc;
    *(_OWORD *)&v379.player->_.field_1B28_y = *(_OWORD *)&v452;
    *(_OWORD *)&v379.player->_.field_1B38_z = *(_OWORD *)&v455;
LABEL_64:
    v45 = "大ダメージ起き上がり";
    goto changeState;
  }
  sub_710086BB68((__int64)this->_._.actor.player);
  if ( sub_71008BD430((__int64)this->_._.actor.player->_._.controllerMaybe, 0) )
  {
    ui::sub_7100A95F5C((unsigned int)this->_._.actor.player->_.doCommandIdx);
    v430 = this->_._.actor.player->_.doCommandIdx;
    if ( v430 == 0x27 || v430 == 0x12 )
    {
      Attention::__auto1(Attention::sInstance, 0LL);
      return;
    }
  }
  if ( !(AI_AI_PlayerNormal::x_6c(this, 0LL) & 1) )
  {
    if ( sub_71008BD430((__int64)this->_._.actor.player->_._.controllerMaybe, 0xEu) )
    {
      ((void (__fastcall *)(_QWORD))sub_710087CF54)((ActorPointer)this->_._.actor.player);
      if ( LOBYTE(this->_._.actor.player->_.field_1CBC) == 0xA )
      {
        v45 = "壁登り";
        goto changeState;
      }
    }
    goto LABEL_494;
  }
}