Advertisement
Guest User

Untitled

a guest
Mar 31st, 2020
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.96 KB | None | 0 0
  1. void __fastcall UFGBlueprintFunctionLibrary::GetAllDescriptorsSorted(UObject *worldContext, TArray<TSubclassOf<UFGItemDescriptor>,FDefaultAllocator> *out_descriptors)
  2. {
  3.   TArray<FFieldNodeBase *,FDefaultAllocator> *v2; // rdi
  4.   AFGRecipeManager *v3; // rbx
  5.   TSubclassOf<UFGRecipe> *v4; // r12
  6.   FScriptContainerElement *v5; // r13
  7.   TSubclassOf<UFGRecipe> v6; // rbx
  8.   FScriptContainerElement *v7; // rsi
  9.   FScriptContainerElement *v8; // r15
  10.   FScriptContainerElement *v9; // rcx
  11.   __int64 v10; // r14
  12.   FScriptContainerElement *v11; // rbx
  13.   FScriptContainerElement *v12; // r14
  14.   FScriptContainerElement *v13; // rcx
  15.   __int64 v14; // rsi
  16.   unsigned __int64 v15; // rdx
  17.   TSubclassOf<UFGItemDescriptor> *v16; // rcx
  18.   TSubclassOf<UFGItemDescriptor> inClass[2]; // [rsp+18h] [rbp-49h]
  19.   TSubclassOf<UFGItemDescriptor> Item[2]; // [rsp+28h] [rbp-39h]
  20.   TArray<TSubclassOf<UFGRecipe>,FDefaultAllocator> out_recipes; // [rsp+38h] [rbp-29h]
  21.   TArray<FItemAmount,FDefaultAllocator> result; // [rsp+48h] [rbp-19h]
  22.   TArray<FItemAmount,FDefaultAllocator> v21; // [rsp+58h] [rbp-9h]
  23.   TSubclassOf<UFGItemDescriptor> **v22; // [rsp+68h] [rbp+7h]
  24.   TArray<FFieldNodeBase *,FDefaultAllocator> *v23; // [rsp+70h] [rbp+Fh]
  25.   TSubclassOf<UFGItemDescriptor> **v24; // [rsp+78h] [rbp+17h]
  26.   TArray<FFieldNodeBase *,FDefaultAllocator> *v25; // [rsp+80h] [rbp+1Fh]
  27.   TDereferenceWrapper<TSubclassOf<UFGItemDescriptor>,<lambda_e49dd30e190d69d6bd0272809d4b7675> > Predicate; // [rsp+D0h] [rbp+6Fh]
  28.   TSubclassOf<UFGItemDescriptor> *v27; // [rsp+D8h] [rbp+77h]
  29.   TSubclassOf<UFGItemDescriptor> *v28; // [rsp+E0h] [rbp+7Fh]
  30.  
  31.   v2 = (TArray<FFieldNodeBase *,FDefaultAllocator> *)out_descriptors;
  32.   v3 = AFGRecipeManager::Get(worldContext);
  33.   if ( !v3 )
  34.   {
  35.     UFGBlueprintFunctionLibrary::GetAllDescriptorsSorted_::_6_::Impl::ExecCheckImplInternal();
  36.     __debugbreak();
  37.   }
  38.   out_recipes = (TArray<TSubclassOf<UFGRecipe>,FDefaultAllocator>)0i64;
  39.   AFGRecipeManager::GetAllAvailableRecipes(v3, &out_recipes);
  40.   v4 = (TSubclassOf<UFGRecipe> *)out_recipes.AllocatorInstance.Data;
  41.   v5 = &out_recipes.AllocatorInstance.Data[8 * out_recipes.ArrayNum];
  42.   if ( out_recipes.AllocatorInstance.Data != v5 )
  43.   {
  44.     do
  45.     {
  46.       v6.Class = v4->Class;
  47.       UFGRecipe::GetIngredients(&result, (TSubclassOf<UFGRecipe>)v4->Class);
  48.       v7 = result.AllocatorInstance.Data;
  49.       v8 = &result.AllocatorInstance.Data[16 * result.ArrayNum];
  50.       if ( result.AllocatorInstance.Data != v8 )
  51.       {
  52.         do
  53.         {
  54.           *(_OWORD *)&inClass[0].Class = *(_OWORD *)v7;
  55.           if ( UFGBlueprintFunctionLibrary::CanBeOnConveyor(inClass[0])
  56.             && TArray<TSubclassOf<UFGItemDescriptor>,FDefaultAllocator>::Find(
  57.                  (TArray<TSubclassOf<UFGItemDescriptor>,FDefaultAllocator> *)v2,
  58.                  inClass) == -1 )
  59.           {
  60.             v9 = v2->AllocatorInstance.Data;
  61.             v27 = inClass;
  62.             if ( inClass >= (TSubclassOf<UFGItemDescriptor> *)v9
  63.               && inClass < (TSubclassOf<UFGItemDescriptor> *)&v9[8 * v2->ArrayMax] )
  64.             {
  65.               v23 = v2;
  66.               v22 = &v27;
  67.               DispatchCheckVerify<void,_lambda_ebb70ce0c499c94aeda6f5fde0450dd8_>((TArray<FLwsWebSocket *,FDefaultAllocator>::CheckAddress::__l6::<lambda_c14eee4c936ba7f517f13cd43e252409> *)&v22);
  68.               __debugbreak();
  69.             }
  70.             v10 = v2->ArrayNum;
  71.             v2->ArrayNum = v10 + 1;
  72.             if ( (signed int)v10 + 1 > v2->ArrayMax )
  73.               TArray<USoundNodeQualityLevel *,FDefaultAllocator>::ResizeGrow(v2, v10);
  74.             *(TSubclassOf<UFGItemDescriptor> *)&v2->AllocatorInstance.Data[8 * v10] = inClass[0];
  75.           }
  76.           v7 += 16;
  77.         }
  78.         while ( v7 != v8 );
  79.         v7 = result.AllocatorInstance.Data;
  80.       }
  81.       if ( v7 )
  82.         FMemory::Free(v7);
  83.       UFGRecipe::GetProducts(&v21, v6, 0);
  84.       v11 = v21.AllocatorInstance.Data;
  85.       v12 = &v21.AllocatorInstance.Data[16 * v21.ArrayNum];
  86.       if ( v21.AllocatorInstance.Data != v12 )
  87.       {
  88.         do
  89.         {
  90.           *(_OWORD *)&Item[0].Class = *(_OWORD *)v11;
  91.           if ( UFGBlueprintFunctionLibrary::CanBeOnConveyor(Item[0])
  92.             && TArray<TSubclassOf<UFGItemDescriptor>,FDefaultAllocator>::Find(
  93.                  (TArray<TSubclassOf<UFGItemDescriptor>,FDefaultAllocator> *)v2,
  94.                  Item) == -1 )
  95.           {
  96.             v13 = v2->AllocatorInstance.Data;
  97.             v28 = Item;
  98.             if ( Item >= (TSubclassOf<UFGItemDescriptor> *)v13
  99.               && Item < (TSubclassOf<UFGItemDescriptor> *)&v13[8 * v2->ArrayMax] )
  100.             {
  101.               v25 = v2;
  102.               v24 = &v28;
  103.               DispatchCheckVerify<void,_lambda_ebb70ce0c499c94aeda6f5fde0450dd8_>((TArray<FLwsWebSocket *,FDefaultAllocator>::CheckAddress::__l6::<lambda_c14eee4c936ba7f517f13cd43e252409> *)&v24);
  104.               __debugbreak();
  105.             }
  106.             v14 = v2->ArrayNum;
  107.             v2->ArrayNum = v14 + 1;
  108.             if ( (signed int)v14 + 1 > v2->ArrayMax )
  109.               TArray<USoundNodeQualityLevel *,FDefaultAllocator>::ResizeGrow(v2, v14);
  110.             *(TSubclassOf<UFGItemDescriptor> *)&v2->AllocatorInstance.Data[8 * v14] = Item[0];
  111.           }
  112.           v11 += 16;
  113.         }
  114.         while ( v11 != v12 );
  115.         v11 = v21.AllocatorInstance.Data;
  116.       }
  117.       if ( v11 )
  118.         FMemory::Free(v11);
  119.       ++v4;
  120.     }
  121.     while ( v4 != (TSubclassOf<UFGRecipe> *)v5 );
  122.   }
  123.   v15 = v2->ArrayNum;
  124.   v16 = (TSubclassOf<UFGItemDescriptor> *)v2->AllocatorInstance.Data;
  125.   LOBYTE(Predicate.Predicate) = 0;
  126.   AlgoImpl::IntroSortInternal_TSubclassOf_UFGItemDescriptor__FIdentityFunctor_TDereferenceWrapper_TSubclassOf_UFGItemDescriptor___lambda_e49dd30e190d69d6bd0272809d4b7675_____(
  127.     v16,
  128.     v15,
  129.     0,
  130.     (TDereferenceWrapper<TSubclassOf<UFGItemDescriptor>,<lambda_e49dd30e190d69d6bd0272809d4b7675> >)&Predicate);
  131.   if ( out_recipes.AllocatorInstance.Data )
  132.     FMemory::Free(out_recipes.AllocatorInstance.Data);
  133. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement