Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 7.70 KB | None | 0 0
  1. __int64 __usercall ParseAndRunConsoleCommand@<rax>(__int64 *a1@<rdx>, __int64 a2@<rbx>, __int64 a3@<rdi>)
  2. {
  3.   __int64 v3; // rax
  4.   unsigned __int8 v4; // si
  5.   __int64 CFunction; // rax
  6.   __int64 CFunctionCopy; // r15
  7.   _WORD *v7; // rbx
  8.   unsigned __int16 *v8; // rcx
  9.   int v9; // ecx
  10.   unsigned __int16 *v10; // rcx
  11.   __int64 v11; // rbx
  12.   __int64 v12; // rdi
  13.   __int64 v13; // r14
  14.   unsigned int v14; // er8
  15.   unsigned int v15; // edx
  16.   __int64 v16; // rbx
  17.   __int64 v17; // rax
  18.   size_t v18; // rsi
  19.   void *v19; // rax
  20.   __int64 v20; // rcx
  21.   char *v21; // rdx
  22.   __int64 v22; // rdi
  23.   __int64 v23; // r14
  24.   unsigned int v24; // er8
  25.   unsigned int v25; // edx
  26.   __int64 v26; // rbx
  27.   __int64 v27; // rax
  28.   size_t v28; // rsi
  29.   void *v29; // rax
  30.   unsigned __int64 v30; // r9
  31.   unsigned int v31; // edx
  32.   signed __int64 v32; // r8
  33.   __int64 v33; // rbx
  34.   bool v34; // zf
  35.   __int64 v35; // rcx
  36.   __int64 v36; // rdi
  37.   TWString *v37; // rcx
  38.   _WORD *v39; // [rsp+18h] [rbp-49h]
  39.   __int64 v40; // [rsp+20h] [rbp-41h]
  40.   unsigned int v41; // [rsp+28h] [rbp-39h]
  41.   char v42; // [rsp+30h] [rbp-31h]
  42.   int v43; // [rsp+38h] [rbp-29h]
  43.   char v44; // [rsp+40h] [rbp-21h]
  44.   int v45; // [rsp+48h] [rbp-19h]
  45.   char v46; // [rsp+50h] [rbp-11h]
  46.   char v47; // [rsp+58h] [rbp-9h]
  47.   char v48; // [rsp+68h] [rbp+7h]
  48.   char v49; // [rsp+78h] [rbp+17h]
  49.   __int64 v50; // [rsp+88h] [rbp+27h]
  50.   __int64 v51; // [rsp+90h] [rbp+2Fh]
  51.   __int64 v52; // [rsp+D0h] [rbp+6Fh]
  52.   __int64 v53; // [rsp+E0h] [rbp+7Fh]
  53.  
  54.   if ( *((_DWORD *)a1 + 2) > 1u )
  55.     v3 = *a1;
  56.   TWString::TWString((TWString *)&v48);
  57.   if ( !(unsigned __int8)sub_14007F3E0(&v39, (__int64)&v48) )
  58.   {
  59.     v4 = 0;
  60.     goto LABEL_73;
  61.   }
  62.   sub_140030CE0((int *)&v46, (__int64)&v48);
  63.   if ( !gClassManager )
  64.     CClassManager::CreateSingleton();
  65.   CFunction = FindGlobalFunction((__int64)gClassManager, (int *)&v46);
  66.   CFunctionCopy = CFunction;
  67.   if ( !CFunction || !(*(_BYTE *)(CFunction + 20) & 1) && !((*(_WORD *)(CFunction + 20) >> 8) & 1) )
  68.   {
  69.     v4 = 0;
  70.     goto LABEL_73;
  71.   }
  72.   v52 = a2;
  73.   v53 = a3;
  74.   v40 = 0i64;
  75.   v41 = 0;
  76.   if ( (unsigned __int8)sub_14007F250(&v39, L"(") )
  77.   {
  78.     v7 = v39;
  79.     if ( *v39 )
  80.     {
  81.       while ( 1 )
  82.       {
  83.         if ( (unsigned __int8)sub_140051BD0(&v39) )
  84.         {
  85.           TWString::TWString((TWString *)&v44);
  86.           v8 = v39;
  87.           if ( *v39 > 0x20u )
  88.           {
  89.             while ( !v45 || (unsigned int)(v45 - 1) < 1 )
  90.             {
  91.               LODWORD(v52) = *v8;
  92.               AppendString_Probably((__int64)&v44, &v52);
  93.               if ( (unsigned __int8)sub_14002A6B0(&v44, L")") )
  94.               {
  95.                 TWString::_TWString((TWString *)&v44);
  96.                 goto LABEL_59;
  97.               }
  98.               v8 = v39;
  99.               if ( *v39 <= 0x20u )
  100.                 break;
  101.             }
  102.           }
  103.           TWString::_TWString((TWString *)&v44);
  104.         }
  105.         v9 = v41;
  106.         v39 = v7;
  107.         if ( v41 == *(_DWORD *)(CFunctionCopy + 0x28) )
  108.           goto LABEL_29;
  109.         if ( v41 )
  110.         {
  111.           if ( (unsigned __int8)sub_140051BD0(&v39) )
  112.           {
  113.             TWString::TWString((TWString *)&v42);
  114.             v10 = v39;
  115.             if ( *v39 > 0x20u )
  116.             {
  117.               while ( !v43 || (unsigned int)(v43 - 1) < 1 )
  118.               {
  119.                 LODWORD(v53) = *v10;
  120.                 AppendString_Probably((__int64)&v42, &v53);
  121.                 if ( (unsigned __int8)sub_14002A6B0(&v42, L",") )
  122.                 {
  123.                   TWString::_TWString((TWString *)&v42);
  124.                   v9 = v41;
  125.                   goto LABEL_31;
  126.                 }
  127.                 v10 = v39;
  128.                 if ( *v39 <= 0x20u )
  129.                   break;
  130.               }
  131.             }
  132.             TWString::_TWString((TWString *)&v42);
  133.           }
  134.           v9 = v41;
  135.           v39 = v7;
  136.           goto LABEL_29;
  137.         }
  138. LABEL_31:
  139.         v11 = *(_QWORD *)(*(_QWORD *)(CFunctionCopy + 0x20) + 8i64 * v9);
  140.         TWString::TWString((TWString *)&v47);
  141.         if ( (unsigned __int8)sub_14007F3E0(&v39, (__int64)&v47) )
  142.           break;
  143.         if ( !(*(_DWORD *)(v11 + 0x24) & 0x400) )
  144.         {
  145.           TWString::_TWString((TWString *)&v47);
  146.           v9 = v41;
  147.           v4 = 0;
  148.           goto LABEL_64;
  149.         }
  150.         v22 = v40;
  151.         v23 = v41;
  152.         v24 = v41++ + 1;
  153.         if ( v40 )
  154.         {
  155.           if ( (unsigned __int64)(v40 - *((_QWORD *)Allocator_PROBABLY + 1544)) >= *((_QWORD *)Allocator_PROBABLY + 1545)
  156.                                                                                  - *((_QWORD *)Allocator_PROBABLY + 1544) )
  157.             v25 = (*(_DWORD *)(v40 - 8) & 0xFFFFFFFC) - 16;
  158.           else
  159.             v25 = *(_DWORD *)((v40 & 0xFFFFFFFFFFFF0000ui64) + 0x20);
  160.         }
  161.         else
  162.         {
  163.           v25 = 0;
  164.         }
  165.         if ( v24 > v25 / 0xC )
  166.         {
  167.           v26 = v40;
  168.           v27 = v24 + (v24 >> 1);
  169.           v28 = 12 * v27;
  170.           v29 = (void *)PossiblyRealloc(v40, 12 * (signed int)v27, 4);
  171.           v22 = (__int64)v29;
  172.           if ( !v26 && v29 )
  173.             memset(v29, 0, v28);
  174.           v40 = v22;
  175.         }
  176.         v20 = v22 + 12 * v23;
  177.         if ( v20 )
  178.         {
  179.           v21 = (char *)&pAlwaysTheSamePointer;
  180. LABEL_57:
  181.           sub_140029350(v20, (__int64)v21);
  182.         }
  183. LABEL_58:
  184.         TWString::_TWString((TWString *)&v47);
  185.         v7 = v39;
  186.         if ( !*v39 )
  187.           goto LABEL_59;
  188.       }
  189.       v12 = v40;
  190.       v13 = v41;
  191.       v14 = v41++ + 1;
  192.       if ( v40 )
  193.       {
  194.         if ( (unsigned __int64)(v40 - *((_QWORD *)Allocator_PROBABLY + 1544)) >= *((_QWORD *)Allocator_PROBABLY + 1545)
  195.                                                                                - *((_QWORD *)Allocator_PROBABLY + 1544) )
  196.           v15 = (*(_DWORD *)(v40 - 8) & 0xFFFFFFFC) - 16;
  197.         else
  198.           v15 = *(_DWORD *)((v40 & 0xFFFFFFFFFFFF0000ui64) + 0x20);
  199.       }
  200.       else
  201.       {
  202.         v15 = 0;
  203.       }
  204.       if ( v14 > v15 / 0xC )
  205.       {
  206.         v16 = v40;
  207.         v17 = v14 + (v14 >> 1);
  208.         v18 = 12 * v17;
  209.         v19 = (void *)PossiblyRealloc(v40, 12 * (signed int)v17, 4);
  210.         v12 = (__int64)v19;
  211.         if ( !v16 && v19 )
  212.           memset(v19, 0, v18);
  213.         v40 = v12;
  214.       }
  215.       v20 = v12 + 12 * v13;
  216.       if ( !v20 )
  217.         goto LABEL_58;
  218.       v21 = &v47;
  219.       goto LABEL_57;
  220.     }
  221.   }                                             // //function doestn contains eny args
  222.                                                 //
  223. LABEL_59:
  224.   v9 = v41;
  225.   v30 = *(unsigned int *)(CFunctionCopy + 0x28);
  226.   v31 = v41;
  227.   if ( v41 >= v30 )
  228.   {
  229. LABEL_63:
  230.     TWString::TWString((TWString *)&v49);
  231.  
  232.     InvokeFunction(CFunctionCopy, 0i64, (__int64)&v40, (__int64)&v49);
  233.     v4 = 1;
  234.     TWString::_TWString((TWString *)&v49);
  235.     v9 = v41;
  236.   }
  237.   else
  238.   {
  239.     v32 = *(_QWORD *)(CFunctionCopy + 0x20) + 8i64 * v41;
  240.     while ( *(_DWORD *)(*(_QWORD *)v32 + 36i64) & 0x400 )
  241.     {
  242.       ++v31;
  243.       v32 += 8i64;
  244.       if ( v31 >= v30 )
  245.         goto LABEL_63;
  246.     }
  247. LABEL_29:
  248.     v4 = 0;
  249.   }
  250. LABEL_64:
  251.   v33 = (unsigned int)v9;
  252.   v34 = v9 == 0;
  253.   v35 = v40;
  254.   if ( !v34 )
  255.   {
  256.     v36 = v40 + 12 * (v33 - 1);
  257.     if ( v33 )
  258.     {
  259.       do
  260.       {
  261.         v37 = (TWString *)v36;
  262.         v36 -= 12i64;
  263.         TWString::_TWString(v37);
  264.         --v33;
  265.       }
  266.       while ( v33 );
  267.       v35 = v40;
  268.     }
  269.   }
  270.   if ( v35 )
  271.   {
  272.     v50 = v35;
  273.     v51 = 0i64;
  274.     sub_14001ED80((__int64)Allocator_PROBABLY, &v50);
  275.     _InterlockedExchangeAdd64(&qword_1429026A0, -(signed int)v51);
  276.     v41 = 0;
  277.     v40 = 0i64;
  278.   }
  279. LABEL_73:
  280.   TWString::_TWString((TWString *)&v48);
  281.   return v4;
  282. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement