char __fastcall ASBPlayerCharacter::CalcCharacterStatus(
        ASBPlayerCharacter *this,
        FSBPlayerCalcStatusResults *OutResults,
        const FSBPlayerStatusMasterData *InStatusMasterData,
        const FSBPlayerEquipWeaponParameterCache *InEquipWeaponParamCache,
        const FString *IgnoreUniqueID,
        const FString *AddEquipUniqueID,
        int InLevelSyncTarget,
        const FSBPlayerStatusMasterData *InOriginalStatusMasterData,
        bool InUseStorage)
{
  UWorld *v12; // rax
  wchar_t *v14; // rdi
  wchar_t *v15; // rbx
  ESkillActionPosition v16; // r8d
  ASBPlayerController *SBPlayerController; // rcx
  int ArrayNum; // ecx
  int v19; // ebx
  int v20; // eax
  bool v21; // zf
  int v22; // eax
  unsigned __int8 ImagineElementAttribute; // al
  int ItemIndexFromUniqueID; // eax
  ESkillActionPosition v25; // r8d
  int v26; // ecx
  int v27; // eax
  bool v28; // zf
  int v29; // eax
  unsigned __int8 v30; // al
  int v31; // eax
  FScriptContainerElement *Data; // rdx
  FScriptContainerElement *v33; // rax
  FScriptContainerElement *v34; // rdx
  FScriptContainerElement *v35; // rax
  FScriptContainerElement *v36; // rdx
  FScriptContainerElement *v37; // rax
  FScriptContainerElement *v38; // rdx
  FScriptContainerElement *v39; // rax
  FScriptContainerElement *v40; // rdx
  FScriptContainerElement *v41; // rax
  bool v42; // cc
  USBOwnItemListContainer *EquipmentBag; // rax
  const FOwnItemInfo *Item; // rax
  FImagineParameter *v45; // rax
  __int64 v46; // r13
  __int64 v47; // r13
  __int64 v48; // r13
  __int64 v49; // r13
  __int64 v50; // r13
  USBOwnItemListContainer *Storage; // rax
  const FOwnItemInfo *v52; // rax
  __int128 v53; // xmm1
  __int128 v54; // xmm0
  __int128 v55; // xmm1
  __int128 v56; // xmm0
  __int128 v57; // xmm1
  __m128i si128; // xmm0
  __int64 v59; // r13
  USBOwnItemListContainer *v60; // rax
  const FOwnItemInfo *v61; // rax
  TArray<int,TSizedDefaultAllocator<32> > *v62; // r14
  int ArrayMax; // ecx
  FScriptContainerElement *v64; // rcx
  USBOwnItemListContainer *v65; // rax
  const FOwnItemInfo *v66; // rax
  TArray<int,TSizedDefaultAllocator<32> > *v67; // r14
  int v68; // ecx
  const FSBPlayerEquipWeaponParameterCache *v69; // rax
  int v70; // r14d
  __int64 Key; // rcx
  const FSBPlayerStatusMasterData *v72; // r13
  const FSBPlayerStatusMasterCommonData *StatusMasterCommonData; // rax
  int primary_rate_floor; // r14d
  int primary_rate_limit; // r15d
  const FSBEffectiveStatusParam *EffectiveStatusParam; // rax
  USBPCClassComponentBase *PlayerCharacterClassComponent; // rcx
  float v78; // xmm6_4
  ESBPassiveStatusParamCalcType AddSTR; // r8d
  float PassiveArtsModifyParamValue; // xmm0_4
  float v81; // xmm3_4
  ESBPassiveArtsModifyCategory v82; // edx
  ESBPassiveStatusParamCalcType v83; // r8d
  float v84; // xmm0_4
  int v85; // eax
  const FSBEffectiveStatusParam *v86; // rax
  ESBPassiveArtsModifyCategory v87; // edx
  USBPCClassComponentBase *v88; // rcx
  ESBPassiveStatusParamCalcType AddVIT; // r8d
  float v90; // xmm0_4
  float v91; // xmm3_4
  int v92; // edx
  ESBPassiveStatusParamCalcType v93; // r8d
  float v94; // xmm0_4
  int v95; // eax
  const FSBEffectiveStatusParam *v96; // rax
  ESBPassiveArtsModifyCategory v97; // edx
  USBPCClassComponentBase *v98; // rcx
  ESBPassiveStatusParamCalcType AddDEX; // r8d
  float v100; // xmm0_4
  float v101; // xmm3_4
  ESBPassiveArtsModifyCategory v102; // edx
  ESBPassiveStatusParamCalcType v103; // r8d
  float v104; // xmm0_4
  int v105; // eax
  const FSBEffectiveStatusParam *v106; // rax
  ESBPassiveArtsModifyCategory v107; // edx
  USBPCClassComponentBase *v108; // rcx
  ESBPassiveStatusParamCalcType AddINT; // r8d
  float v110; // xmm0_4
  float v111; // xmm3_4
  ESBPassiveArtsModifyCategory v112; // edx
  ESBPassiveStatusParamCalcType v113; // r8d
  float v114; // xmm0_4
  int v115; // eax
  const FSBEffectiveStatusParam *v116; // rax
  ESBPassiveArtsModifyCategory v117; // edx
  USBPCClassComponentBase *v118; // rcx
  ESBPassiveStatusParamCalcType AddMND; // r8d
  float v120; // xmm0_4
  float v121; // xmm3_4
  ESBPassiveArtsModifyCategory v122; // edx
  ESBPassiveStatusParamCalcType v123; // r8d
  float v124; // xmm0_4
  int v125; // edx
  const FSBPlayerStatusMasterCommonData *v126; // rax
  __int64 v127; // kr00_8
  int v128; // r14d
  const FSBEffectiveStatusParam *v129; // rax
  ESBPassiveArtsModifyCategory v130; // edx
  ESBPassiveStatusParamCalcType v131; // r8d
  USBPCClassComponentBase *v132; // rcx
  int AddAttackPower; // r15d
  float v134; // xmm3_4
  unsigned int v135; // ecx
  __m128i v136; // xmm2
  USBBattleStatusComponent *BattleStatusComp; // rcx
  const FSBEffectiveStatusParam *v138; // rax
  ESBPassiveArtsModifyCategory v139; // edx
  ESBPassiveStatusParamCalcType v140; // r8d
  USBPCClassComponentBase *v141; // rcx
  int AddPercentAttackPower; // r15d
  float v143; // xmm1_4
  const FSBPlayerStatusMasterCommonData *v144; // rdx
  int ap_rate_floor; // ecx
  int v146; // eax
  int v147; // r14d
  const FSBEffectiveStatusParam *v148; // rax
  ESBPassiveArtsModifyCategory v149; // edx
  ESBPassiveStatusParamCalcType v150; // r8d
  USBPCClassComponentBase *v151; // rcx
  int AddDefencePower; // r15d
  float v153; // xmm0_4
  USBBattleStatusComponent *v154; // rcx
  const FSBEffectiveStatusParam *v155; // rax
  ESBPassiveArtsModifyCategory v156; // edx
  ESBPassiveStatusParamCalcType v157; // r8d
  USBPCClassComponentBase *v158; // rcx
  int AddPercentDefencePower; // r15d
  float v160; // xmm1_4
  const FSBPlayerStatusMasterCommonData *v161; // rdx
  int dp_rate_floor; // ecx
  int v163; // eax
  int v164; // r14d
  const FSBEffectiveStatusParam *v165; // rax
  ESBPassiveArtsModifyCategory v166; // edx
  ESBPassiveStatusParamCalcType v167; // r8d
  USBPCClassComponentBase *v168; // rcx
  int AddRecuperativePower; // r15d
  ESBPassiveArtsModifyCategory v170; // edx
  ESBPassiveStatusParamCalcType v171; // r8d
  float v172; // xmm0_4
  USBPCClassComponentBase *v173; // rcx
  int v174; // r15d
  float v175; // xmm0_4
  const FSBPlayerStatusMasterCommonData *v176; // rdx
  int rp_rate_floor; // ecx
  int v178; // r14d
  const FSBEffectiveStatusParam *v179; // rax
  ESBPassiveArtsModifyCategory v180; // edx
  ESBPassiveStatusParamCalcType v181; // r8d
  USBPCClassComponentBase *v182; // rcx
  int AddCriticalHitRate; // r15d
  float v184; // xmm1_4
  int cr_limit; // ecx
  const FSBPlayerStatusMasterCommonData *v186; // rax
  int v187; // ecx
  int v188; // r14d
  int AddCriticalHitPower; // ecx
  int v190; // ebx
  const FSBEffectiveStatusParam *v191; // rax
  ESBPassiveArtsModifyCategory v192; // edx
  ESBPassiveStatusParamCalcType v193; // r8d
  USBPCClassComponentBase *v194; // rcx
  int AddHp; // r14d
  float v196; // xmm1_4
  int v197; // r15d
  const FSBEffectiveStatusParam *v198; // rax
  ESBPassiveArtsModifyCategory v199; // edx
  ESBPassiveStatusParamCalcType v200; // r8d
  USBPCClassComponentBase *v201; // rcx
  int AddPercentHp; // r14d
  float v203; // xmm1_4
  const FSBPlayerStatusMasterCommonData *v204; // rdx
  int hp_rate_floor; // ecx
  int v206; // eax
  int v207; // ebx
  const FSBEffectiveStatusParam *v208; // rax
  ESBPassiveArtsModifyCategory v209; // edx
  ESBPassiveStatusParamCalcType v210; // r8d
  USBPCClassComponentBase *v211; // rcx
  int AddStamina; // r14d
  int v213; // r14d
  int AddPercentStamina; // edx
  const FSBPlayerStatusMasterCommonData *v215; // rax
  int st_rate_floor; // ecx
  int v217; // edx
  FScriptContainerElement *v218; // rcx
  TArray<int,TSizedDefaultAllocator<32> > Src; // [rsp+40h] [rbp-C0h] BYREF
  ASBPlayerCharacter::CalcCharacterStatus::__l14::<lambda_81db98153d4ace040c9b8bf8c7bd285f> v220; // [rsp+50h] [rbp-B0h] BYREF
  char v221; // [rsp+51h] [rbp-AFh] BYREF
  char v222[6]; // [rsp+52h] [rbp-AEh] BYREF
  TArray<int,TSizedDefaultAllocator<32> > WeaponStatus; // [rsp+58h] [rbp-A8h] BYREF
  int v224; // [rsp+68h] [rbp-98h]
  USBNetworkDataCache *NetworkDataCache; // [rsp+70h] [rbp-90h] BYREF
  int v226; // [rsp+78h] [rbp-88h]
  __int64 v227; // [rsp+80h] [rbp-80h]
  int v228; // [rsp+88h] [rbp-78h]
  int v229; // [rsp+8Ch] [rbp-74h]
  __m128i v230; // [rsp+90h] [rbp-70h]
  __m128i v231; // [rsp+A0h] [rbp-60h]
  __int128 v232; // [rsp+B0h] [rbp-50h]
  __int128 v233; // [rsp+C0h] [rbp-40h]
  __int128 v234; // [rsp+D0h] [rbp-30h]
  __int64 v235; // [rsp+E0h] [rbp-20h]
  float v236; // [rsp+E8h] [rbp-18h]
  TArray<wchar_t,TSizedDefaultAllocator<32> > v237; // [rsp+F0h] [rbp-10h] BYREF
  TArray<wchar_t,TSizedDefaultAllocator<32> > v238; // [rsp+100h] [rbp+0h] BYREF
  TArray<wchar_t,TSizedDefaultAllocator<32> > v239; // [rsp+110h] [rbp+10h] BYREF
  TArray<wchar_t,TSizedDefaultAllocator<32> > v240; // [rsp+120h] [rbp+20h] BYREF
  TArray<wchar_t,TSizedDefaultAllocator<32> > v241; // [rsp+130h] [rbp+30h] BYREF
  __int64 v242; // [rsp+140h] [rbp+40h]
  int v243; // [rsp+148h] [rbp+48h]
  int v244; // [rsp+14Ch] [rbp+4Ch]
  __m128i v245; // [rsp+150h] [rbp+50h]
  __m128i v246; // [rsp+160h] [rbp+60h]
  FString ImagineArts2UniqueID; // [rsp+1B0h] [rbp+B0h] BYREF
  FString ImagineArts1UniqueID; // [rsp+1C0h] [rbp+C0h] BYREF
  USBWeaponManager *WeaponManager; // [rsp+1D0h] [rbp+D0h]
  const FSBPlayerEquipWeaponParameterCache *v250; // [rsp+1D8h] [rbp+D8h]
  _QWORD GetImagineParam[2]; // [rsp+1E0h] [rbp+E0h] BYREF
  int v252; // [rsp+1F0h] [rbp+F0h]
  FImagineParameter InImagineParam; // [rsp+200h] [rbp+100h] BYREF
  FImagineParameter result; // [rsp+270h] [rbp+170h] BYREF
  __int128 v255; // [rsp+2E0h] [rbp+1E0h]
  __int128 v256; // [rsp+2F0h] [rbp+1F0h]
  __int128 v257; // [rsp+300h] [rbp+200h]
  __int128 v258; // [rsp+310h] [rbp+210h]
  __int128 v259; // [rsp+320h] [rbp+220h]
  __int128 v260; // [rsp+330h] [rbp+230h]
  __int64 v261; // [rsp+340h] [rbp+240h]
  float HyouiAbilityScale4; // [rsp+348h] [rbp+248h]
  __int64 v263; // [rsp+350h] [rbp+250h]
  __int64 v264; // [rsp+358h] [rbp+258h]
  __int64 v265; // [rsp+360h] [rbp+260h]
  __int64 v266; // [rsp+368h] [rbp+268h]
  __int64 v267; // [rsp+370h] [rbp+270h]
  __int64 v268; // [rsp+378h] [rbp+278h]
  __int64 v269; // [rsp+380h] [rbp+280h]
  __int64 v270; // [rsp+388h] [rbp+288h]
  __int64 v271; // [rsp+390h] [rbp+290h]
  __int64 v272; // [rsp+398h] [rbp+298h]
  TArray<int,TSizedDefaultAllocator<32> > v273; // [rsp+3A0h] [rbp+2A0h] BYREF
  FString UniqueID; // [rsp+3B0h] [rbp+2B0h] BYREF
  int v275; // [rsp+3C0h] [rbp+2C0h]
  int v276; // [rsp+3C4h] [rbp+2C4h]
  int v277; // [rsp+3C8h] [rbp+2C8h]
  int v278; // [rsp+3CCh] [rbp+2CCh]
  int v279; // [rsp+3D0h] [rbp+2D0h]
  int v280; // [rsp+3D4h] [rbp+2D4h]
  FString v281; // [rsp+420h] [rbp+320h] BYREF
  int v282; // [rsp+430h] [rbp+330h]
  int v283; // [rsp+434h] [rbp+334h]
  int v284; // [rsp+438h] [rbp+338h]
  int v285; // [rsp+43Ch] [rbp+33Ch]
  int v286; // [rsp+440h] [rbp+340h]
  int v287; // [rsp+444h] [rbp+344h]
  FString v288; // [rsp+490h] [rbp+390h] BYREF
  int v289; // [rsp+4A0h] [rbp+3A0h]
  int v290; // [rsp+4A4h] [rbp+3A4h]
  int v291; // [rsp+4A8h] [rbp+3A8h]
  int v292; // [rsp+4ACh] [rbp+3ACh]
  int v293; // [rsp+4B0h] [rbp+3B0h]
  int v294; // [rsp+4B4h] [rbp+3B4h]
  FString v295; // [rsp+500h] [rbp+400h] BYREF
  int v296; // [rsp+510h] [rbp+410h]
  int v297; // [rsp+514h] [rbp+414h]
  int v298; // [rsp+518h] [rbp+418h]
  int v299; // [rsp+51Ch] [rbp+41Ch]
  int v300; // [rsp+520h] [rbp+420h]
  int v301; // [rsp+524h] [rbp+424h]
  FString v302; // [rsp+570h] [rbp+470h] BYREF
  int v303; // [rsp+580h] [rbp+480h]
  int v304; // [rsp+584h] [rbp+484h]
  int v305; // [rsp+588h] [rbp+488h]
  int v306; // [rsp+58Ch] [rbp+48Ch]
  int v307; // [rsp+590h] [rbp+490h]
  int v308; // [rsp+594h] [rbp+494h]
  FImagineParameter v309; // [rsp+5E0h] [rbp+4E0h] BYREF
  FImagineParameter v310; // [rsp+64Ch] [rbp+54Ch] BYREF
  wchar_t v311[128]; // [rsp+6C0h] [rbp+5C0h] BYREF
  void *v312; // [rsp+7C0h] [rbp+6C0h]
  wchar_t *v313; // [rsp+7C8h] [rbp+6C8h]
  int v314; // [rsp+7D0h] [rbp+6D0h]
  wchar_t Dest[128]; // [rsp+7E0h] [rbp+6E0h] BYREF
  void *v316; // [rsp+8E0h] [rbp+7E0h]
  wchar_t *v317; // [rsp+8E8h] [rbp+7E8h]
  int v318; // [rsp+8F0h] [rbp+7F0h]

  v21 = this->Role.Value == 3;
  v250 = InEquipWeaponParamCache;
  if ( !v21 || !InStatusMasterData || !this->StatusMasterCommonData )
    return 0;
  if ( this->GetWorld(this)->NetDriver )
  {
    v12 = this->GetWorld(this);
    if ( !v12->NetDriver->IsServer(v12->NetDriver) )
    {
      if ( IsEnableEnsureStop() )
      {
        DispOnEnsureChecked();
        v220 = 0;
        if ( DispatchCheckVerify_bool__lambda_81db98153d4ace040c9b8bf8c7bd285f_(&v220) )
          __debugbreak();
      }
      else if ( !IsForceIgnoreLog() )
      {
        if ( LogSkyBlue.Verbosity >= Error )
        {
          v318 = 70;
          v316 = 0LL;
          v317 = Dest;
          if ( !FGenericPlatformString::Convert<char,wchar_t>(
                  Dest,
                  71,
                  "E:/testEnv/project/SkyBlue/Source/SkyBlue/Player/SBPlayerCharacter.cpp",
                  71,
                  0x3Fu) )
          {
            `TStringConvert<char,wchar_t>::Convert'::`6'::Impl::ExecCheckImplInternal();
            __debugbreak();
          }
          v14 = v317;
          v312 = 0LL;
          v314 = 5;
          v313 = v311;
          if ( !FGenericPlatformString::Convert<char,wchar_t>(v311, 6, "false", 6, 0x3Fu) )
          {
            `TStringConvert<char,wchar_t>::Convert'::`6'::Impl::ExecCheckImplInternal();
            __debugbreak();
          }
          v15 = v313;
          if ( !byte_14CC43343 )
          {
            FLogTrace::OutputLogMessageSpec(
              &byte_14CC43343,
              &LogSkyBlue,
              Error,
              "E:/testEnv/project/SkyBlue/Source/SkyBlue/Player/SBPlayerCharacter.cpp",
              1835,
              L"!!!ensuresb(nonstop)!!! %s [File:%s] [Line: %i]");
            byte_14CC43343 = 1;
          }
          FLogTrace::OutputLogMessage<wchar_t *,wchar_t *,int>(&byte_14CC43343, v15, v14, 1835);
          FMsg::Logf_InternalImpl(
            0LL,
            0,
            &LogSkyBlue.CategoryName,
            Error,
            L"!!!ensuresb(nonstop)!!! %s [File:%s] [Line: %i]",
            v15,
            v14,
            1835);
          if ( v312 )
            FMemory::Free(v312);
          if ( v316 )
            FMemory::Free(v316);
        }
        DispOnEnsureChecked();
      }
      return 0;
    }
  }
  if ( !this->GetWorld(this) )
    return 0;
  WeaponManager = USBBlueprintFunctionLibrary::GetWeaponManager();
  if ( !WeaponManager )
    return 0;
  SBPlayerController = this->SBPlayerController;
  if ( !SBPlayerController )
    return 0;
  NetworkDataCache = SBPlayerController->NetworkDataCache;
  if ( !NetworkDataCache )
    return 0;
  LOBYTE(v16) = 9;
  GetImagineParam[0] = IgnoreUniqueID;
  GetImagineParam[1] = &NetworkDataCache;
  v252 = InLevelSyncTarget;
  FSBSkillAction::GetImagineUniqueID(&this->SkillAction, &ImagineArts1UniqueID, v16);
  ArrayNum = ImagineArts1UniqueID.Data.ArrayNum;
  v19 = 0;
  if ( ImagineArts1UniqueID.Data.ArrayNum <= 1
    || ((v20 = IgnoreUniqueID->Data.ArrayNum, ImagineArts1UniqueID.Data.ArrayNum == v20)
      ? (v22 = FGenericPlatformStricmp::Stricmp(
                 (const wchar_t *)ImagineArts1UniqueID.Data.AllocatorInstance.Data,
                 (const wchar_t *)IgnoreUniqueID->Data.AllocatorInstance.Data),
         ArrayNum = ImagineArts1UniqueID.Data.ArrayNum,
         v21 = v22 == 0)
      : (v21 = ImagineArts1UniqueID.Data.ArrayNum + v20 == 1),
        v21) )
  {
    memset(&result, 0, 40);
    *(_QWORD *)&result.StatusTimescale = 1065353216LL;
    *(_QWORD *)&result.AbilityScale1 = 1065353216LL;
    *(_QWORD *)&result.AbilityScale2 = 1065353216LL;
    *(_QWORD *)&result.AbilityScale3 = 1065353216LL;
    *(_QWORD *)&result.AbilityScale4 = 1065353216LL;
    *(_QWORD *)&result.HyouiAbilityScale1 = 1065353216LL;
    *(_QWORD *)&result.HyouiAbilityScale2 = 1065353216LL;
    *(_QWORD *)&result.HyouiAbilityScale3 = 1065353216LL;
    result.HyouiAbilityScale4 = 1.0;
  }
  else
  {
    USBImagineBlueprintFunctionLibrary::CalcImagineParam(
      &result,
      NetworkDataCache,
      &ImagineArts1UniqueID,
      InLevelSyncTarget,
      0);
    ArrayNum = ImagineArts1UniqueID.Data.ArrayNum;
  }
  ImagineElementAttribute = 0;
  if ( ArrayNum > 1 )
  {
    ItemIndexFromUniqueID = ASBPlayerCharacter::GetItemIndexFromUniqueID(this, &ImagineArts1UniqueID);
    ImagineElementAttribute = ASBPlayerCharacter::GetImagineElementAttribute(this, ItemIndexFromUniqueID);
  }
  FSBPlayerBattleImagineParam::RegsterData(&OutResults->BattleImagine1, &result, (ESBAttribute)ImagineElementAttribute);
  LOBYTE(v25) = 10;
  FSBSkillAction::GetImagineUniqueID(&this->SkillAction, &ImagineArts2UniqueID, v25);
  v26 = ImagineArts2UniqueID.Data.ArrayNum;
  if ( ImagineArts2UniqueID.Data.ArrayNum <= 1
    || ((v27 = IgnoreUniqueID->Data.ArrayNum, ImagineArts2UniqueID.Data.ArrayNum == v27)
      ? (v29 = FGenericPlatformStricmp::Stricmp(
                 (const wchar_t *)ImagineArts2UniqueID.Data.AllocatorInstance.Data,
                 (const wchar_t *)IgnoreUniqueID->Data.AllocatorInstance.Data),
         v26 = ImagineArts2UniqueID.Data.ArrayNum,
         v28 = v29 == 0)
      : (v28 = ImagineArts2UniqueID.Data.ArrayNum + v27 == 1),
        v28) )
  {
    memset(&InImagineParam, 0, 40);
    *(_QWORD *)&InImagineParam.StatusTimescale = 1065353216LL;
    *(_QWORD *)&InImagineParam.AbilityScale1 = 1065353216LL;
    *(_QWORD *)&InImagineParam.AbilityScale2 = 1065353216LL;
    *(_QWORD *)&InImagineParam.AbilityScale3 = 1065353216LL;
    *(_QWORD *)&InImagineParam.AbilityScale4 = 1065353216LL;
    *(_QWORD *)&InImagineParam.HyouiAbilityScale1 = 1065353216LL;
    *(_QWORD *)&InImagineParam.HyouiAbilityScale2 = 1065353216LL;
    *(_QWORD *)&InImagineParam.HyouiAbilityScale3 = 1065353216LL;
    InImagineParam.HyouiAbilityScale4 = 1.0;
  }
  else
  {
    USBImagineBlueprintFunctionLibrary::CalcImagineParam(
      &InImagineParam,
      NetworkDataCache,
      &ImagineArts2UniqueID,
      InLevelSyncTarget,
      0);
    v26 = ImagineArts2UniqueID.Data.ArrayNum;
  }
  v30 = 0;
  if ( v26 > 1 )
  {
    v31 = ASBPlayerCharacter::GetItemIndexFromUniqueID(this, &ImagineArts2UniqueID);
    v30 = ASBPlayerCharacter::GetImagineElementAttribute(this, v31);
  }
  FSBPlayerBattleImagineParam::RegsterData(&OutResults->BattleImagine2, &InImagineParam, (ESBAttribute)v30);
  if ( !this->EquipPassiveImagineList.ArrayNum )
    goto LABEL_49;
  Data = this->EquipPassiveImagineList.AllocatorInstance.Data;
  v33 = &Data[24 * this->EquipPassiveImagineList.ArrayNum];
  if ( Data == v33 )
    goto LABEL_49;
  while ( Data[16] )
  {
    Data += 24;
    if ( Data == v33 )
      goto LABEL_49;
  }
  if ( Data )
  {
    v237.AllocatorInstance.Data = 0LL;
    v46 = *(int *)&Data[8];
    Src.AllocatorInstance.Data = *(FScriptContainerElement **)Data;
    v237.ArrayNum = v46;
    if ( (_DWORD)v46 )
    {
      TArray<wchar_t,TSizedDefaultAllocator<32>>::ResizeForCopy(&v237, v46, 0);
      memcpy(v237.AllocatorInstance.Data, Src.AllocatorInstance.Data, 2 * v46);
    }
    else
    {
      v237.ArrayMax = 0;
    }
  }
  else
  {
LABEL_49:
    v237.AllocatorInstance.Data = 0LL;
    v271 = 0LL;
    *(_QWORD *)&v237.ArrayNum = 0LL;
    v272 = 0LL;
  }
  lambda_e07443517ed7c31492a565330ca4feda_::operator()((FImagineParameter *)GetImagineParam, &UniqueID);
  if ( v237.AllocatorInstance.Data )
    FMemory::Free(v237.AllocatorInstance.Data);
  if ( !this->EquipPassiveImagineList.ArrayNum )
    goto LABEL_56;
  v34 = this->EquipPassiveImagineList.AllocatorInstance.Data;
  v35 = &v34[24 * this->EquipPassiveImagineList.ArrayNum];
  if ( v34 == v35 )
    goto LABEL_56;
  while ( *(_BYTE *)&v34[16] != 1 )
  {
    v34 += 24;
    if ( v34 == v35 )
      goto LABEL_56;
  }
  if ( v34 )
  {
    v238.AllocatorInstance.Data = 0LL;
    v47 = *(int *)&v34[8];
    Src.AllocatorInstance.Data = *(FScriptContainerElement **)v34;
    v238.ArrayNum = v47;
    if ( (_DWORD)v47 )
    {
      TArray<wchar_t,TSizedDefaultAllocator<32>>::ResizeForCopy(&v238, v47, 0);
      memcpy(v238.AllocatorInstance.Data, Src.AllocatorInstance.Data, 2 * v47);
    }
    else
    {
      v238.ArrayMax = 0;
    }
  }
  else
  {
LABEL_56:
    v238.AllocatorInstance.Data = 0LL;
    v263 = 0LL;
    *(_QWORD *)&v238.ArrayNum = 0LL;
    v264 = 0LL;
  }
  lambda_e07443517ed7c31492a565330ca4feda_::operator()((FImagineParameter *)GetImagineParam, &v281);
  if ( v238.AllocatorInstance.Data )
    FMemory::Free(v238.AllocatorInstance.Data);
  if ( !this->EquipPassiveImagineList.ArrayNum )
    goto LABEL_63;
  v36 = this->EquipPassiveImagineList.AllocatorInstance.Data;
  v37 = &v36[24 * this->EquipPassiveImagineList.ArrayNum];
  if ( v36 == v37 )
    goto LABEL_63;
  while ( *(_BYTE *)&v36[16] != 2 )
  {
    v36 += 24;
    if ( v36 == v37 )
      goto LABEL_63;
  }
  if ( v36 )
  {
    v239.AllocatorInstance.Data = 0LL;
    v48 = *(int *)&v36[8];
    Src.AllocatorInstance.Data = *(FScriptContainerElement **)v36;
    v239.ArrayNum = v48;
    if ( (_DWORD)v48 )
    {
      TArray<wchar_t,TSizedDefaultAllocator<32>>::ResizeForCopy(&v239, v48, 0);
      memcpy(v239.AllocatorInstance.Data, Src.AllocatorInstance.Data, 2 * v48);
    }
    else
    {
      v239.ArrayMax = 0;
    }
  }
  else
  {
LABEL_63:
    v239.AllocatorInstance.Data = 0LL;
    v265 = 0LL;
    *(_QWORD *)&v239.ArrayNum = 0LL;
    v266 = 0LL;
  }
  lambda_e07443517ed7c31492a565330ca4feda_::operator()((FImagineParameter *)GetImagineParam, &v288);
  if ( v239.AllocatorInstance.Data )
    FMemory::Free(v239.AllocatorInstance.Data);
  if ( !this->EquipPassiveImagineList.ArrayNum )
    goto LABEL_70;
  v38 = this->EquipPassiveImagineList.AllocatorInstance.Data;
  v39 = &v38[24 * this->EquipPassiveImagineList.ArrayNum];
  if ( v38 == v39 )
    goto LABEL_70;
  while ( *(_BYTE *)&v38[16] != 3 )
  {
    v38 += 24;
    if ( v38 == v39 )
      goto LABEL_70;
  }
  if ( v38 )
  {
    v240.AllocatorInstance.Data = 0LL;
    v49 = *(int *)&v38[8];
    Src.AllocatorInstance.Data = *(FScriptContainerElement **)v38;
    v240.ArrayNum = v49;
    if ( (_DWORD)v49 )
    {
      TArray<wchar_t,TSizedDefaultAllocator<32>>::ResizeForCopy(&v240, v49, 0);
      memcpy(v240.AllocatorInstance.Data, Src.AllocatorInstance.Data, 2 * v49);
    }
    else
    {
      v240.ArrayMax = 0;
    }
  }
  else
  {
LABEL_70:
    v240.AllocatorInstance.Data = 0LL;
    v267 = 0LL;
    *(_QWORD *)&v240.ArrayNum = 0LL;
    v268 = 0LL;
  }
  lambda_e07443517ed7c31492a565330ca4feda_::operator()((FImagineParameter *)GetImagineParam, &v295);
  if ( v240.AllocatorInstance.Data )
    FMemory::Free(v240.AllocatorInstance.Data);
  if ( !this->EquipPassiveImagineList.ArrayNum )
    goto LABEL_77;
  v40 = this->EquipPassiveImagineList.AllocatorInstance.Data;
  v41 = &v40[24 * this->EquipPassiveImagineList.ArrayNum];
  if ( v40 == v41 )
    goto LABEL_77;
  while ( *(_BYTE *)&v40[16] != 4 )
  {
    v40 += 24;
    if ( v40 == v41 )
      goto LABEL_77;
  }
  if ( v40 )
  {
    v241.AllocatorInstance.Data = 0LL;
    v50 = *(int *)&v40[8];
    Src.AllocatorInstance.Data = *(FScriptContainerElement **)v40;
    v241.ArrayNum = v50;
    if ( (_DWORD)v50 )
    {
      TArray<wchar_t,TSizedDefaultAllocator<32>>::ResizeForCopy(&v241, v50, 0);
      memcpy(v241.AllocatorInstance.Data, Src.AllocatorInstance.Data, 2 * v50);
    }
    else
    {
      v241.ArrayMax = 0;
    }
  }
  else
  {
LABEL_77:
    v241.AllocatorInstance.Data = 0LL;
    v269 = 0LL;
    *(_QWORD *)&v241.ArrayNum = 0LL;
    v270 = 0LL;
  }
  lambda_e07443517ed7c31492a565330ca4feda_::operator()((FImagineParameter *)GetImagineParam, &v302);
  if ( v241.AllocatorInstance.Data )
    FMemory::Free(v241.AllocatorInstance.Data);
  v42 = AddEquipUniqueID->Data.ArrayNum <= 1;
  v256 = 0LL;
  *(_QWORD *)((char *)&v255 + 4) = 0LL;
  HIDWORD(v255) = 0;
  v226 = 0;
  LODWORD(Src.AllocatorInstance.Data) = 0;
  if ( !v42 )
  {
    EquipmentBag = USBNetworkDataCache::GetEquipmentBag(NetworkDataCache);
    if ( EquipmentBag )
    {
      Item = USBOwnItemListContainer::FindItem(EquipmentBag, AddEquipUniqueID);
      if ( Item )
      {
        if ( Item->ItemType != ItemType_Imagine )
          goto LABEL_111;
        v45 = USBImagineBlueprintFunctionLibrary::CalcImagineParam(
                &v309,
                NetworkDataCache,
                AddEquipUniqueID,
                InLevelSyncTarget,
                0);
      }
      else
      {
        if ( !InUseStorage )
          goto LABEL_111;
        Storage = USBNetworkDataCache::GetStorage(NetworkDataCache, 0);
        if ( !Storage )
          goto LABEL_111;
        v52 = USBOwnItemListContainer::FindItem(Storage, AddEquipUniqueID);
        if ( !v52 || v52->ItemType != ItemType_Imagine )
          goto LABEL_111;
        v45 = USBImagineBlueprintFunctionLibrary::CalcImagineParam(
                &v310,
                NetworkDataCache,
                AddEquipUniqueID,
                InLevelSyncTarget,
                1);
      }
      v53 = *(_OWORD *)&v45->Vit;
      v255 = *(_OWORD *)&v45->Level;
      v54 = *(_OWORD *)&v45->Skill;
      v256 = v53;
      v55 = *(_OWORD *)&v45->AbilityScale1;
      v257 = v54;
      v56 = *(_OWORD *)&v45->AbilityScale3;
      v258 = v55;
      v57 = *(_OWORD *)&v45->HyouiAbilityScale1;
      v259 = v56;
      *(_QWORD *)&v56 = *(_QWORD *)&v45->HyouiAbilityScale3;
      HyouiAbilityScale4 = v45->HyouiAbilityScale4;
      LODWORD(Src.AllocatorInstance.Data) = DWORD1(v257);
      v226 = v257;
      v261 = v56;
      v260 = v57;
    }
  }
LABEL_111:
  si128 = _mm_load_si128((const __m128i *)&result);
  v231.m128i_i64[1] = *(_QWORD *)&result.StatusTimescale;
  v230.m128i_i32[0] = InImagineParam.Vit + _mm_cvtsi128_si32(*(__m128i *)&result.Vit);
  v230.m128i_i32[1] = InImagineParam.Dex + result.Dex;
  v230.m128i_i32[2] = InImagineParam.Int + result.Int;
  v230.m128i_i32[3] = InImagineParam.Mnd + result.Mnd;
  v231.m128i_i32[0] = InImagineParam.Skill + _mm_cvtsi128_si32(*(__m128i *)&result.Skill);
  v231.m128i_i32[1] = InImagineParam.Attribute + result.Attribute;
  HIDWORD(v242) = HIDWORD(UniqueID.Data.AllocatorInstance.Data) + InImagineParam.Attack + si128.m128i_i32[1];
  v243 = UniqueID.Data.ArrayNum + InImagineParam.Defense + si128.m128i_i32[2];
  v244 = UniqueID.Data.ArrayMax + InImagineParam.Str + si128.m128i_i32[3];
  v246.m128i_i64[1] = *(_QWORD *)&result.StatusTimescale;
  v245.m128i_i32[0] = v275 + _mm_cvtsi128_si32(v230);
  v245.m128i_i32[1] = v276 + InImagineParam.Dex + result.Dex;
  v245.m128i_i32[2] = v277 + InImagineParam.Int + result.Int;
  v245.m128i_i32[3] = v278 + InImagineParam.Mnd + result.Mnd;
  v246.m128i_i32[0] = v279 + _mm_cvtsi128_si32(v231);
  v246.m128i_i32[1] = v280 + InImagineParam.Attribute + result.Attribute;
  v231.m128i_i64[1] = *(_QWORD *)&result.StatusTimescale;
  v230.m128i_i32[0] = v282 + _mm_cvtsi128_si32(v245);
  v230.m128i_i32[1] = v283 + v245.m128i_i32[1];
  v230.m128i_i32[2] = v284 + v245.m128i_i32[2];
  v230.m128i_i32[3] = v285 + v245.m128i_i32[3];
  v231.m128i_i32[0] = v286 + _mm_cvtsi128_si32(v246);
  v231.m128i_i32[1] = v287 + v246.m128i_i32[1];
  HIDWORD(v242) += HIDWORD(v288.Data.AllocatorInstance.Data) + HIDWORD(v281.Data.AllocatorInstance.Data);
  v243 += v288.Data.ArrayNum + v281.Data.ArrayNum;
  v244 += v288.Data.ArrayMax + v281.Data.ArrayMax;
  v246.m128i_i64[1] = *(_QWORD *)&result.StatusTimescale;
  v245.m128i_i32[0] = v289 + _mm_cvtsi128_si32(v230);
  v245.m128i_i32[1] += v290 + v283;
  v245.m128i_i32[2] += v291 + v284;
  v245.m128i_i32[3] += v292 + v285;
  v246.m128i_i32[0] = v293 + _mm_cvtsi128_si32(v231);
  v246.m128i_i32[1] += v294 + v287;
  v231.m128i_i64[1] = *(_QWORD *)&result.StatusTimescale;
  v230.m128i_i32[0] = v296 + _mm_cvtsi128_si32(v245);
  v230.m128i_i32[1] = v297 + v245.m128i_i32[1];
  v230.m128i_i32[2] = v298 + v245.m128i_i32[2];
  v230.m128i_i32[3] = v299 + v245.m128i_i32[3];
  LODWORD(v242) = si128.m128i_i32[0];
  v231.m128i_i32[0] = v300 + _mm_cvtsi128_si32(v246);
  v231.m128i_i32[1] = v301 + v246.m128i_i32[1];
  HIDWORD(v242) += HIDWORD(v302.Data.AllocatorInstance.Data) + HIDWORD(v295.Data.AllocatorInstance.Data);
  v243 += v302.Data.ArrayNum + v295.Data.ArrayNum;
  v244 += v302.Data.ArrayMax + v295.Data.ArrayMax;
  v245.m128i_i32[0] = v303 + _mm_cvtsi128_si32(v230);
  v246.m128i_i64[1] = *(_QWORD *)&result.StatusTimescale;
  v245.m128i_i32[1] += v304 + v297;
  v245.m128i_i32[2] += v305 + v298;
  v245.m128i_i32[3] += v306 + v299;
  v236 = result.HyouiAbilityScale4;
  v227 = v242;
  v246.m128i_i32[0] = v307 + _mm_cvtsi128_si32(v231);
  v246.m128i_i32[1] += v308 + v301;
  v224 = v256 + _mm_cvtsi128_si32(v245);
  v228 = DWORD2(v255) + v243;
  v229 = HIDWORD(v255) + v244;
  v230.m128i_i32[1] = DWORD1(v256) + v245.m128i_i32[1];
  v230.m128i_i32[2] = DWORD2(v256) + v245.m128i_i32[2];
  v230.m128i_i32[3] = HIDWORD(v256) + v245.m128i_i32[3];
  v231.m128i_i64[1] = *(_QWORD *)&result.StatusTimescale;
  v230.m128i_i32[0] = v224;
  v231.m128i_i32[0] = v226 + _mm_cvtsi128_si32(v246);
  v231.m128i_i32[1] = LODWORD(Src.AllocatorInstance.Data) + v246.m128i_i32[1];
  v233 = *(_OWORD *)&result.AbilityScale3;
  v234 = *(_OWORD *)&result.HyouiAbilityScale1;
  v59 = v250->Status.ArrayNum;
  Src.AllocatorInstance.Data = v250->Status.AllocatorInstance.Data;
  v232 = *(_OWORD *)&result.AbilityScale1;
  v235 = *(_QWORD *)&result.HyouiAbilityScale3;
  HIDWORD(v227) = HIDWORD(v242) + DWORD1(v255);
  WeaponStatus.AllocatorInstance.Data = 0LL;
  WeaponStatus.ArrayNum = v59;
  if ( (_DWORD)v59 )
  {
    TArray<int,TSizedDefaultAllocator<32>>::ResizeForCopy(&WeaponStatus, v59, 0);
    memcpy(WeaponStatus.AllocatorInstance.Data, Src.AllocatorInstance.Data, 4 * v59);
  }
  else
  {
    WeaponStatus.ArrayMax = 0;
  }
  if ( AddEquipUniqueID->Data.ArrayNum > 1 )
  {
    v60 = USBNetworkDataCache::GetEquipmentBag(NetworkDataCache);
    if ( v60 )
    {
      v61 = USBOwnItemListContainer::FindItem(v60, AddEquipUniqueID);
      if ( v61 )
      {
        if ( v61->ItemType != ItemType_Weapon )
          goto LABEL_140;
        v62 = USBWeaponManager::GetWeaponStatus(
                WeaponManager,
                &Src,
                this->SBPlayerController,
                AddEquipUniqueID,
                InLevelSyncTarget);
        if ( &WeaponStatus != v62 )
        {
          if ( WeaponStatus.AllocatorInstance.Data )
            FMemory::Free(WeaponStatus.AllocatorInstance.Data);
          WeaponStatus.AllocatorInstance.Data = v62->AllocatorInstance.Data;
          v62->AllocatorInstance.Data = 0LL;
          WeaponStatus.ArrayNum = v62->ArrayNum;
          ArrayMax = v62->ArrayMax;
          WeaponStatus.ArrayMax = ArrayMax;
          if ( WeaponStatus.ArrayNum != v62->ArrayNum || ArrayMax != v62->ArrayMax )
          {
            v221 = 0;
            DispatchCheckVerify<void,_lambda_1860231b32e7aea02590a5410d7a2cf1_>((TArray<int,TSizedDefaultAllocator<32> >::MoveOrCopy::__l11::<lambda_1860231b32e7aea02590a5410d7a2cf1> *)&v221);
            __debugbreak();
            v224 = v230.m128i_i32[0];
          }
          *(_QWORD *)&v62->ArrayNum = 0LL;
        }
        v64 = Src.AllocatorInstance.Data;
      }
      else
      {
        if ( !InUseStorage )
          goto LABEL_140;
        v65 = USBNetworkDataCache::GetStorage(NetworkDataCache, 0);
        if ( !v65 )
          goto LABEL_140;
        v66 = USBOwnItemListContainer::FindItem(v65, AddEquipUniqueID);
        if ( !v66 || v66->ItemType != ItemType_Weapon )
          goto LABEL_140;
        v67 = USBWeaponManager::GetWeaponStatus(
                WeaponManager,
                &v273,
                this->SBPlayerController,
                AddEquipUniqueID,
                InLevelSyncTarget);
        if ( &WeaponStatus != v67 )
        {
          if ( WeaponStatus.AllocatorInstance.Data )
            FMemory::Free(WeaponStatus.AllocatorInstance.Data);
          WeaponStatus.AllocatorInstance.Data = v67->AllocatorInstance.Data;
          v67->AllocatorInstance.Data = 0LL;
          WeaponStatus.ArrayNum = v67->ArrayNum;
          v68 = v67->ArrayMax;
          WeaponStatus.ArrayMax = v68;
          if ( WeaponStatus.ArrayNum != v67->ArrayNum || v68 != v67->ArrayMax )
          {
            v222[0] = 0;
            DispatchCheckVerify<void,_lambda_1860231b32e7aea02590a5410d7a2cf1_>((TArray<int,TSizedDefaultAllocator<32> >::MoveOrCopy::__l11::<lambda_1860231b32e7aea02590a5410d7a2cf1> *)v222);
            __debugbreak();
            v224 = v230.m128i_i32[0];
          }
          *(_QWORD *)&v67->ArrayNum = 0LL;
        }
        v64 = v273.AllocatorInstance.Data;
      }
      if ( v64 )
        FMemory::Free(v64);
    }
  }
LABEL_140:
  v42 = WeaponStatus.ArrayNum <= 7;
  v69 = v250;
  *(_OWORD *)OutResults->Weapon.AttributeType.TrueValue = *(_OWORD *)v250->ElementType.TrueValue;
  *(_QWORD *)&OutResults->Weapon.AttributeType.bLock = *(_QWORD *)&v69->ElementType.bLock;
  if ( v42 )
    v70 = 0;
  else
    v70 = *(_DWORD *)&WeaponStatus.AllocatorInstance.Data[28];
  if ( OutResults->Weapon.AttributeValue.bLock )
  {
    `FSBSecureValue<int>::Set'::`6'::Impl::ExecCheckImplInternal();
    __debugbreak();
    v224 = v230.m128i_i32[0];
  }
  Key = OutResults->Weapon.AttributeValue.Key;
  OutResults->Weapon.AttributeValue.Value = v70;
  LOBYTE(OutResults->Weapon.AttributeValue.Value) = Key ^ v70;
  v72 = InStatusMasterData;
  BYTE1(OutResults->Weapon.AttributeValue.Value) ^= BYTE1(Key);
  BYTE2(OutResults->Weapon.AttributeValue.Value) ^= BYTE2(Key);
  HIBYTE(OutResults->Weapon.AttributeValue.Value) ^= BYTE3(Key);
  OutResults->Weapon.AttributeValue.TrueValue = v70;
  StatusMasterCommonData = this->StatusMasterCommonData;
  primary_rate_floor = StatusMasterCommonData->primary_rate_floor;
  primary_rate_limit = StatusMasterCommonData->primary_rate_limit;
  if ( InOriginalStatusMasterData )
    v72 = InOriginalStatusMasterData;
  OutResults->Chara.Level = this->Level;
  EffectiveStatusParam = USBBattleStatusComponent::GetEffectiveStatusParam(this->BattleStatusComp, Total);
  PlayerCharacterClassComponent = this->PlayerCharacterClassComponent;
  v78 = 0.0;
  AddSTR = EffectiveStatusParam->ImportantParam.AddSTR;
  LODWORD(Src.AllocatorInstance.Data) = AddSTR;
  if ( PlayerCharacterClassComponent )
  {
    LOBYTE(AddSTR) = 1;
    PassiveArtsModifyParamValue = USBPCClassComponentBase::GetPassiveArtsModifyParamValue(
                                    PlayerCharacterClassComponent,
                                    (ESBPassiveArtsModifyCategory)1,
                                    AddSTR);
    PlayerCharacterClassComponent = this->PlayerCharacterClassComponent;
    v81 = PassiveArtsModifyParamValue;
    AddSTR = (ESBPassiveStatusParamCalcType)Src.AllocatorInstance.Data;
  }
  else
  {
    v81 = 0.0;
  }
  if ( WeaponStatus.ArrayNum <= 2 )
    v82 = 0;
  else
    v82 = *(_DWORD *)&WeaponStatus.AllocatorInstance.Data[8];
  v83 = (int)(float)((float)((float)v82 + (float)v229) + (float)((float)AddSTR + v81));
  LODWORD(Src.AllocatorInstance.Data) = v83;
  if ( PlayerCharacterClassComponent )
  {
    LOBYTE(v83) = 2;
    LOBYTE(v82) = 1;
    v84 = USBPCClassComponentBase::GetPassiveArtsModifyParamValue(PlayerCharacterClassComponent, v82, v83);
    v83 = (ESBPassiveStatusParamCalcType)Src.AllocatorInstance.Data;
  }
  else
  {
    v84 = 0.0;
  }
  if ( (int)v84 >= primary_rate_floor )
  {
    v85 = primary_rate_limit;
    if ( (int)v84 < primary_rate_limit )
      v85 = (int)v84;
  }
  else
  {
    v85 = primary_rate_floor;
  }
  OutResults->Chara.STR = v83 + (v85 + 100) * InStatusMasterData->Str / 100;
  v86 = USBBattleStatusComponent::GetEffectiveStatusParam(this->BattleStatusComp, Total);
  v88 = this->PlayerCharacterClassComponent;
  AddVIT = v86->ImportantParam.AddVIT;
  LODWORD(Src.AllocatorInstance.Data) = AddVIT;
  if ( v88 )
  {
    LOBYTE(AddVIT) = 1;
    LOBYTE(v87) = 2;
    v90 = USBPCClassComponentBase::GetPassiveArtsModifyParamValue(v88, v87, AddVIT);
    v88 = this->PlayerCharacterClassComponent;
    v91 = v90;
    AddVIT = (ESBPassiveStatusParamCalcType)Src.AllocatorInstance.Data;
  }
  else
  {
    v91 = 0.0;
  }
  if ( WeaponStatus.ArrayNum <= 3 )
    v92 = 0;
  else
    v92 = *(_DWORD *)&WeaponStatus.AllocatorInstance.Data[12];
  v93 = (int)(float)((float)((float)v92 + (float)v224) + (float)((float)AddVIT + v91));
  LODWORD(Src.AllocatorInstance.Data) = v93;
  if ( v88 )
  {
    LOBYTE(v93) = 2;
    v94 = USBPCClassComponentBase::GetPassiveArtsModifyParamValue(v88, (ESBPassiveArtsModifyCategory)2, v93);
    v93 = (ESBPassiveStatusParamCalcType)Src.AllocatorInstance.Data;
  }
  else
  {
    v94 = 0.0;
  }
  if ( (int)v94 >= primary_rate_floor )
  {
    v95 = primary_rate_limit;
    if ( (int)v94 < primary_rate_limit )
      v95 = (int)v94;
  }
  else
  {
    v95 = primary_rate_floor;
  }
  OutResults->Chara.VIT = v93 + (v95 + 100) * v72->Vit / 100;
  v96 = USBBattleStatusComponent::GetEffectiveStatusParam(this->BattleStatusComp, Total);
  v98 = this->PlayerCharacterClassComponent;
  AddDEX = v96->ImportantParam.AddDEX;
  LODWORD(Src.AllocatorInstance.Data) = AddDEX;
  if ( v98 )
  {
    LOBYTE(AddDEX) = 1;
    LOBYTE(v97) = 3;
    v100 = USBPCClassComponentBase::GetPassiveArtsModifyParamValue(v98, v97, AddDEX);
    v98 = this->PlayerCharacterClassComponent;
    v101 = v100;
    AddDEX = (ESBPassiveStatusParamCalcType)Src.AllocatorInstance.Data;
  }
  else
  {
    v101 = 0.0;
  }
  if ( WeaponStatus.ArrayNum <= 4 )
    v102 = 0;
  else
    v102 = *(_DWORD *)&WeaponStatus.AllocatorInstance.Data[16];
  v103 = (int)(float)((float)((float)v102 + (float)v230.m128i_i32[1]) + (float)((float)AddDEX + v101));
  LODWORD(Src.AllocatorInstance.Data) = v103;
  if ( v98 )
  {
    LOBYTE(v103) = 2;
    LOBYTE(v102) = 3;
    v104 = USBPCClassComponentBase::GetPassiveArtsModifyParamValue(v98, v102, v103);
    v103 = (ESBPassiveStatusParamCalcType)Src.AllocatorInstance.Data;
  }
  else
  {
    v104 = 0.0;
  }
  if ( (int)v104 >= primary_rate_floor )
  {
    v105 = primary_rate_limit;
    if ( (int)v104 < primary_rate_limit )
      v105 = (int)v104;
  }
  else
  {
    v105 = primary_rate_floor;
  }
  OutResults->Chara.DEX = v103 + (v105 + 100) * InStatusMasterData->Dex / 100;
  v106 = USBBattleStatusComponent::GetEffectiveStatusParam(this->BattleStatusComp, Total);
  v108 = this->PlayerCharacterClassComponent;
  AddINT = v106->ImportantParam.AddINT;
  LODWORD(Src.AllocatorInstance.Data) = AddINT;
  if ( v108 )
  {
    LOBYTE(AddINT) = 1;
    LOBYTE(v107) = 5;
    v110 = USBPCClassComponentBase::GetPassiveArtsModifyParamValue(v108, v107, AddINT);
    v108 = this->PlayerCharacterClassComponent;
    v111 = v110;
    AddINT = (ESBPassiveStatusParamCalcType)Src.AllocatorInstance.Data;
  }
  else
  {
    v111 = 0.0;
  }
  if ( WeaponStatus.ArrayNum <= 5 )
    v112 = 0;
  else
    v112 = *(_DWORD *)&WeaponStatus.AllocatorInstance.Data[20];
  v113 = (int)(float)((float)((float)v112 + (float)v230.m128i_i32[2]) + (float)((float)AddINT + v111));
  LODWORD(Src.AllocatorInstance.Data) = v113;
  if ( v108 )
  {
    LOBYTE(v113) = 2;
    LOBYTE(v112) = 5;
    v114 = USBPCClassComponentBase::GetPassiveArtsModifyParamValue(v108, v112, v113);
    v113 = (ESBPassiveStatusParamCalcType)Src.AllocatorInstance.Data;
  }
  else
  {
    v114 = 0.0;
  }
  if ( (int)v114 >= primary_rate_floor )
  {
    v115 = primary_rate_limit;
    if ( (int)v114 < primary_rate_limit )
      v115 = (int)v114;
  }
  else
  {
    v115 = primary_rate_floor;
  }
  OutResults->Chara.INT = v113 + (v115 + 100) * InStatusMasterData->Int / 100;
  v116 = USBBattleStatusComponent::GetEffectiveStatusParam(this->BattleStatusComp, Total);
  v118 = this->PlayerCharacterClassComponent;
  AddMND = v116->ImportantParam.AddMND;
  LODWORD(Src.AllocatorInstance.Data) = AddMND;
  if ( v118 )
  {
    LOBYTE(AddMND) = 1;
    LOBYTE(v117) = 4;
    v120 = USBPCClassComponentBase::GetPassiveArtsModifyParamValue(v118, v117, AddMND);
    v118 = this->PlayerCharacterClassComponent;
    v121 = v120;
    AddMND = (ESBPassiveStatusParamCalcType)Src.AllocatorInstance.Data;
  }
  else
  {
    v121 = 0.0;
  }
  if ( WeaponStatus.ArrayNum <= 6 )
    v122 = 0;
  else
    v122 = *(_DWORD *)&WeaponStatus.AllocatorInstance.Data[24];
  v123 = (int)(float)((float)((float)v122 + (float)v230.m128i_i32[3]) + (float)((float)AddMND + v121));
  LODWORD(Src.AllocatorInstance.Data) = v123;
  if ( v118 )
  {
    LOBYTE(v123) = 2;
    LOBYTE(v122) = 4;
    v124 = USBPCClassComponentBase::GetPassiveArtsModifyParamValue(v118, v122, v123);
    v123 = (ESBPassiveStatusParamCalcType)Src.AllocatorInstance.Data;
  }
  else
  {
    v124 = 0.0;
  }
  if ( (int)v124 >= primary_rate_floor )
  {
    primary_rate_floor = primary_rate_limit;
    if ( (int)v124 < primary_rate_limit )
      primary_rate_floor = (int)v124;
  }
  v125 = v123 + (primary_rate_floor + 100) * InStatusMasterData->Mnd / 100;
  OutResults->Chara.MND = v125;
  v126 = this->StatusMasterCommonData;
  if ( v126->attack_type == 1 )
    v127 = 1374389535LL
         * (OutResults->Chara.DEX * v126->dex_factor_of_ap + OutResults->Chara.STR * v126->str_factor_of_ap);
  else
    v127 = 1374389535LL * (OutResults->Chara.INT * v126->int_factor_of_ap + v126->mnd_factor_of_ap * v125);
  v128 = (HIDWORD(v127) >> 31) + (SHIDWORD(v127) >> 5) + InStatusMasterData->AP;
  v129 = USBBattleStatusComponent::GetEffectiveStatusParam(this->BattleStatusComp, Total);
  v132 = this->PlayerCharacterClassComponent;
  AddAttackPower = v129->ImportantParam.AddAttackPower;
  if ( v132 )
  {
    LOBYTE(v131) = 1;
    LOBYTE(v130) = 9;
    v134 = USBPCClassComponentBase::GetPassiveArtsModifyParamValue(v132, v130, v131);
  }
  else
  {
    v134 = 0.0;
  }
  if ( WeaponStatus.ArrayNum <= 0 )
    v135 = 0;
  else
    v135 = *(_DWORD *)WeaponStatus.AllocatorInstance.Data;
  v136 = _mm_cvtsi32_si128(v135);
  BattleStatusComp = this->BattleStatusComp;
  LODWORD(Src.AllocatorInstance.Data) = (int)(float)((float)(_mm_cvtepi32_ps(v136).m128_f32[0] + (float)SHIDWORD(v227))
                                                   + (float)((float)AddAttackPower + v134));
  v138 = USBBattleStatusComponent::GetEffectiveStatusParam(BattleStatusComp, Total);
  v141 = this->PlayerCharacterClassComponent;
  AddPercentAttackPower = v138->ImportantParam.AddPercentAttackPower;
  if ( v141 )
  {
    LOBYTE(v140) = 2;
    LOBYTE(v139) = 9;
    v143 = USBPCClassComponentBase::GetPassiveArtsModifyParamValue(v141, v139, v140);
  }
  else
  {
    v143 = 0.0;
  }
  v144 = this->StatusMasterCommonData;
  ap_rate_floor = v144->ap_rate_floor;
  v146 = (int)(float)((float)AddPercentAttackPower + v143);
  if ( v146 >= ap_rate_floor )
  {
    ap_rate_floor = v144->ap_rate_limit;
    if ( v146 < ap_rate_floor )
      ap_rate_floor = (int)(float)((float)AddPercentAttackPower + v143);
  }
  OutResults->Chara.AttackPower = LODWORD(Src.AllocatorInstance.Data) + v128 * (ap_rate_floor + 100) / 100;
  v147 = v72->DP
       + (OutResults->Chara.STR * this->StatusMasterCommonData->str_factor_of_dp
        + OutResults->Chara.VIT * this->StatusMasterCommonData->vit_factor_of_dp)
       / 100;
  v148 = USBBattleStatusComponent::GetEffectiveStatusParam(this->BattleStatusComp, Total);
  v151 = this->PlayerCharacterClassComponent;
  AddDefencePower = v148->ImportantParam.AddDefencePower;
  if ( v151 )
  {
    LOBYTE(v150) = 1;
    LOBYTE(v149) = 10;
    v153 = USBPCClassComponentBase::GetPassiveArtsModifyParamValue(v151, v149, v150);
  }
  else
  {
    v153 = 0.0;
  }
  v154 = this->BattleStatusComp;
  LODWORD(Src.AllocatorInstance.Data) = (int)(float)((float)((float)AddDefencePower + v153) + (float)v228);
  v155 = USBBattleStatusComponent::GetEffectiveStatusParam(v154, Total);
  v158 = this->PlayerCharacterClassComponent;
  AddPercentDefencePower = v155->ImportantParam.AddPercentDefencePower;
  if ( v158 )
  {
    LOBYTE(v157) = 2;
    LOBYTE(v156) = 10;
    v160 = USBPCClassComponentBase::GetPassiveArtsModifyParamValue(v158, v156, v157);
  }
  else
  {
    v160 = 0.0;
  }
  v161 = this->StatusMasterCommonData;
  dp_rate_floor = v161->dp_rate_floor;
  v163 = (int)(float)((float)AddPercentDefencePower + v160);
  if ( v163 >= dp_rate_floor )
  {
    dp_rate_floor = v161->dp_rate_limit;
    if ( v163 < dp_rate_floor )
      dp_rate_floor = (int)(float)((float)AddPercentDefencePower + v160);
  }
  OutResults->Chara.DefensePower = LODWORD(Src.AllocatorInstance.Data) + v147 * (dp_rate_floor + 100) / 100;
  v164 = InStatusMasterData->RP
       + (OutResults->Chara.MND * this->StatusMasterCommonData->mnd_factor_of_rp
        + OutResults->Chara.INT * this->StatusMasterCommonData->int_factor_of_rp)
       / 100;
  v165 = USBBattleStatusComponent::GetEffectiveStatusParam(this->BattleStatusComp, Total);
  v168 = this->PlayerCharacterClassComponent;
  AddRecuperativePower = v165->ImportantParam.AddRecuperativePower;
  if ( v168 )
  {
    LOBYTE(v167) = 1;
    LOBYTE(v166) = 11;
    v172 = USBPCClassComponentBase::GetPassiveArtsModifyParamValue(v168, v166, v167);
    v173 = this->PlayerCharacterClassComponent;
    v174 = (int)(float)((float)AddRecuperativePower + v172);
    if ( v173 )
    {
      LOBYTE(v171) = 2;
      LOBYTE(v170) = 11;
      v175 = USBPCClassComponentBase::GetPassiveArtsModifyParamValue(v173, v170, v171);
      goto LABEL_240;
    }
  }
  else
  {
    v174 = (int)(float)AddRecuperativePower;
  }
  v175 = 0.0;
LABEL_240:
  v176 = this->StatusMasterCommonData;
  rp_rate_floor = v176->rp_rate_floor;
  if ( (int)v175 >= rp_rate_floor )
  {
    rp_rate_floor = v176->rp_rate_limit;
    if ( (int)v175 < rp_rate_floor )
      rp_rate_floor = (int)v175;
  }
  OutResults->Chara.RecoveryPower = v174 + v164 * (rp_rate_floor + 100) / 100;
  v178 = (int)(float)(powf(
                        (float)(OutResults->Chara.DEX * this->StatusMasterCommonData->dex_factor_of_cr
                              + OutResults->Chara.MND * this->StatusMasterCommonData->mnd_factor_of_cr)
                      * 0.0099999998,
                        (float)this->StatusMasterCommonData->dex_decay_rate_of_cr * 0.0099999998)
                    + (float)InStatusMasterData->CR);
  v179 = USBBattleStatusComponent::GetEffectiveStatusParam(this->BattleStatusComp, Total);
  v182 = this->PlayerCharacterClassComponent;
  AddCriticalHitRate = v179->ImportantParam.AddCriticalHitRate;
  if ( v182 )
  {
    LOBYTE(v181) = 1;
    LOBYTE(v180) = 12;
    v184 = USBPCClassComponentBase::GetPassiveArtsModifyParamValue(v182, v180, v181);
  }
  else
  {
    v184 = 0.0;
  }
  cr_limit = this->StatusMasterCommonData->cr_limit;
  if ( v178 + (int)(float)((float)AddCriticalHitRate + v184) <= cr_limit )
    cr_limit = v178 + (int)(float)((float)AddCriticalHitRate + v184);
  OutResults->Chara.CriticalRate = cr_limit;
  v186 = this->StatusMasterCommonData;
  if ( v186->attack_type == 1 )
    v187 = OutResults->Chara.STR * v186->str_factor_of_cp;
  else
    v187 = OutResults->Chara.INT * v186->int_factor_of_cp;
  v188 = v187 / 100 + InStatusMasterData->CP;
  AddCriticalHitPower = USBBattleStatusComponent::GetEffectiveStatusParam(this->BattleStatusComp, Total)->ImportantParam.AddCriticalHitPower;
  if ( WeaponStatus.ArrayNum > 1 )
    v19 = *(_DWORD *)&WeaponStatus.AllocatorInstance.Data[4];
  OutResults->Chara.CriticalPower = v188 + v19 + AddCriticalHitPower;
  v190 = v72->Hp + OutResults->Chara.VIT * this->StatusMasterCommonData->vit_factor_of_hp / 100;
  v191 = USBBattleStatusComponent::GetEffectiveStatusParam(this->BattleStatusComp, Total);
  v194 = this->PlayerCharacterClassComponent;
  AddHp = v191->ImportantParam.AddHp;
  if ( v194 )
  {
    LOBYTE(v193) = 1;
    LOBYTE(v192) = 7;
    v196 = USBPCClassComponentBase::GetPassiveArtsModifyParamValue(v194, v192, v193);
  }
  else
  {
    v196 = 0.0;
  }
  v197 = (int)(float)((float)AddHp + v196);
  v198 = USBBattleStatusComponent::GetEffectiveStatusParam(this->BattleStatusComp, Total);
  v201 = this->PlayerCharacterClassComponent;
  AddPercentHp = v198->ImportantParam.AddPercentHp;
  if ( v201 )
  {
    LOBYTE(v200) = 2;
    LOBYTE(v199) = 7;
    v203 = USBPCClassComponentBase::GetPassiveArtsModifyParamValue(v201, v199, v200);
  }
  else
  {
    v203 = 0.0;
  }
  v204 = this->StatusMasterCommonData;
  hp_rate_floor = v204->hp_rate_floor;
  v206 = (int)(float)((float)AddPercentHp + v203);
  if ( v206 >= hp_rate_floor )
  {
    hp_rate_floor = v204->hp_rate_limit;
    if ( v206 < hp_rate_floor )
      hp_rate_floor = (int)(float)((float)AddPercentHp + v203);
  }
  OutResults->Chara.MaxHitPoint = v197 + v190 * (hp_rate_floor + 100) / 100;
  v207 = this->StatusMasterCommonData->st_base_value
       + OutResults->Chara.VIT * this->StatusMasterCommonData->vit_factor_of_st / 100;
  v208 = USBBattleStatusComponent::GetEffectiveStatusParam(this->BattleStatusComp, Total);
  v211 = this->PlayerCharacterClassComponent;
  AddStamina = v208->ImportantParam.AddStamina;
  if ( v211 )
  {
    LOBYTE(v210) = 1;
    LOBYTE(v209) = 13;
    v78 = USBPCClassComponentBase::GetPassiveArtsModifyParamValue(v211, v209, v210);
  }
  v213 = (int)(float)((float)AddStamina + v78);
  AddPercentStamina = USBBattleStatusComponent::GetEffectiveStatusParam(this->BattleStatusComp, Total)->ImportantParam.AddPercentStamina;
  v215 = this->StatusMasterCommonData;
  st_rate_floor = v215->st_rate_floor;
  if ( AddPercentStamina >= st_rate_floor )
  {
    st_rate_floor = v215->st_rate_limit;
    if ( AddPercentStamina < st_rate_floor )
      st_rate_floor = AddPercentStamina;
  }
  v217 = (unsigned __int64)(1374389535LL * v207 * (st_rate_floor + 100)) >> 32;
  v218 = WeaponStatus.AllocatorInstance.Data;
  OutResults->Chara.MaxStamina = v213 + ((unsigned int)v217 >> 31) + (v217 >> 5);
  if ( v218 )
    FMemory::Free(v218);
  if ( ImagineArts2UniqueID.Data.AllocatorInstance.Data )
    FMemory::Free(ImagineArts2UniqueID.Data.AllocatorInstance.Data);
  if ( ImagineArts1UniqueID.Data.AllocatorInstance.Data )
    FMemory::Free(ImagineArts1UniqueID.Data.AllocatorInstance.Data);
  return 1;
}