Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- __int64 __usercall ParseAndRunConsoleCommand@<rax>(__int64 *a1@<rdx>, __int64 a2@<rbx>, __int64 a3@<rdi>)
- {
- __int64 v3; // rax
- unsigned __int8 v4; // si
- __int64 CFunction; // rax
- __int64 CFunctionCopy; // r15
- _WORD *v7; // rbx
- unsigned __int16 *v8; // rcx
- int v9; // ecx
- unsigned __int16 *v10; // rcx
- __int64 v11; // rbx
- __int64 v12; // rdi
- __int64 v13; // r14
- unsigned int v14; // er8
- unsigned int v15; // edx
- __int64 v16; // rbx
- __int64 v17; // rax
- size_t v18; // rsi
- void *v19; // rax
- __int64 v20; // rcx
- char *v21; // rdx
- __int64 v22; // rdi
- __int64 v23; // r14
- unsigned int v24; // er8
- unsigned int v25; // edx
- __int64 v26; // rbx
- __int64 v27; // rax
- size_t v28; // rsi
- void *v29; // rax
- unsigned __int64 v30; // r9
- unsigned int v31; // edx
- signed __int64 v32; // r8
- __int64 v33; // rbx
- bool v34; // zf
- __int64 v35; // rcx
- __int64 v36; // rdi
- TWString *v37; // rcx
- _WORD *v39; // [rsp+18h] [rbp-49h]
- __int64 v40; // [rsp+20h] [rbp-41h]
- unsigned int v41; // [rsp+28h] [rbp-39h]
- char v42; // [rsp+30h] [rbp-31h]
- int v43; // [rsp+38h] [rbp-29h]
- char v44; // [rsp+40h] [rbp-21h]
- int v45; // [rsp+48h] [rbp-19h]
- char v46; // [rsp+50h] [rbp-11h]
- char v47; // [rsp+58h] [rbp-9h]
- char v48; // [rsp+68h] [rbp+7h]
- char v49; // [rsp+78h] [rbp+17h]
- __int64 v50; // [rsp+88h] [rbp+27h]
- __int64 v51; // [rsp+90h] [rbp+2Fh]
- __int64 v52; // [rsp+D0h] [rbp+6Fh]
- __int64 v53; // [rsp+E0h] [rbp+7Fh]
- if ( *((_DWORD *)a1 + 2) > 1u )
- v3 = *a1;
- TWString::TWString((TWString *)&v48);
- if ( !(unsigned __int8)sub_14007F3E0(&v39, (__int64)&v48) )
- {
- v4 = 0;
- goto LABEL_73;
- }
- sub_140030CE0((int *)&v46, (__int64)&v48);
- if ( !gClassManager )
- CClassManager::CreateSingleton();
- CFunction = FindGlobalFunction((__int64)gClassManager, (int *)&v46);
- CFunctionCopy = CFunction;
- if ( !CFunction || !(*(_BYTE *)(CFunction + 20) & 1) && !((*(_WORD *)(CFunction + 20) >> 8) & 1) )
- {
- v4 = 0;
- goto LABEL_73;
- }
- v52 = a2;
- v53 = a3;
- v40 = 0i64;
- v41 = 0;
- if ( (unsigned __int8)sub_14007F250(&v39, L"(") )
- {
- v7 = v39;
- if ( *v39 )
- {
- while ( 1 )
- {
- if ( (unsigned __int8)sub_140051BD0(&v39) )
- {
- TWString::TWString((TWString *)&v44);
- v8 = v39;
- if ( *v39 > 0x20u )
- {
- while ( !v45 || (unsigned int)(v45 - 1) < 1 )
- {
- LODWORD(v52) = *v8;
- AppendString_Probably((__int64)&v44, &v52);
- if ( (unsigned __int8)sub_14002A6B0(&v44, L")") )
- {
- TWString::_TWString((TWString *)&v44);
- goto LABEL_59;
- }
- v8 = v39;
- if ( *v39 <= 0x20u )
- break;
- }
- }
- TWString::_TWString((TWString *)&v44);
- }
- v9 = v41;
- v39 = v7;
- if ( v41 == *(_DWORD *)(CFunctionCopy + 0x28) )
- goto LABEL_29;
- if ( v41 )
- {
- if ( (unsigned __int8)sub_140051BD0(&v39) )
- {
- TWString::TWString((TWString *)&v42);
- v10 = v39;
- if ( *v39 > 0x20u )
- {
- while ( !v43 || (unsigned int)(v43 - 1) < 1 )
- {
- LODWORD(v53) = *v10;
- AppendString_Probably((__int64)&v42, &v53);
- if ( (unsigned __int8)sub_14002A6B0(&v42, L",") )
- {
- TWString::_TWString((TWString *)&v42);
- v9 = v41;
- goto LABEL_31;
- }
- v10 = v39;
- if ( *v39 <= 0x20u )
- break;
- }
- }
- TWString::_TWString((TWString *)&v42);
- }
- v9 = v41;
- v39 = v7;
- goto LABEL_29;
- }
- LABEL_31:
- v11 = *(_QWORD *)(*(_QWORD *)(CFunctionCopy + 0x20) + 8i64 * v9);
- TWString::TWString((TWString *)&v47);
- if ( (unsigned __int8)sub_14007F3E0(&v39, (__int64)&v47) )
- break;
- if ( !(*(_DWORD *)(v11 + 0x24) & 0x400) )
- {
- TWString::_TWString((TWString *)&v47);
- v9 = v41;
- v4 = 0;
- goto LABEL_64;
- }
- v22 = v40;
- v23 = v41;
- v24 = v41++ + 1;
- if ( v40 )
- {
- if ( (unsigned __int64)(v40 - *((_QWORD *)Allocator_PROBABLY + 1544)) >= *((_QWORD *)Allocator_PROBABLY + 1545)
- - *((_QWORD *)Allocator_PROBABLY + 1544) )
- v25 = (*(_DWORD *)(v40 - 8) & 0xFFFFFFFC) - 16;
- else
- v25 = *(_DWORD *)((v40 & 0xFFFFFFFFFFFF0000ui64) + 0x20);
- }
- else
- {
- v25 = 0;
- }
- if ( v24 > v25 / 0xC )
- {
- v26 = v40;
- v27 = v24 + (v24 >> 1);
- v28 = 12 * v27;
- v29 = (void *)PossiblyRealloc(v40, 12 * (signed int)v27, 4);
- v22 = (__int64)v29;
- if ( !v26 && v29 )
- memset(v29, 0, v28);
- v40 = v22;
- }
- v20 = v22 + 12 * v23;
- if ( v20 )
- {
- v21 = (char *)&pAlwaysTheSamePointer;
- LABEL_57:
- sub_140029350(v20, (__int64)v21);
- }
- LABEL_58:
- TWString::_TWString((TWString *)&v47);
- v7 = v39;
- if ( !*v39 )
- goto LABEL_59;
- }
- v12 = v40;
- v13 = v41;
- v14 = v41++ + 1;
- if ( v40 )
- {
- if ( (unsigned __int64)(v40 - *((_QWORD *)Allocator_PROBABLY + 1544)) >= *((_QWORD *)Allocator_PROBABLY + 1545)
- - *((_QWORD *)Allocator_PROBABLY + 1544) )
- v15 = (*(_DWORD *)(v40 - 8) & 0xFFFFFFFC) - 16;
- else
- v15 = *(_DWORD *)((v40 & 0xFFFFFFFFFFFF0000ui64) + 0x20);
- }
- else
- {
- v15 = 0;
- }
- if ( v14 > v15 / 0xC )
- {
- v16 = v40;
- v17 = v14 + (v14 >> 1);
- v18 = 12 * v17;
- v19 = (void *)PossiblyRealloc(v40, 12 * (signed int)v17, 4);
- v12 = (__int64)v19;
- if ( !v16 && v19 )
- memset(v19, 0, v18);
- v40 = v12;
- }
- v20 = v12 + 12 * v13;
- if ( !v20 )
- goto LABEL_58;
- v21 = &v47;
- goto LABEL_57;
- }
- } // //function doestn contains eny args
- //
- LABEL_59:
- v9 = v41;
- v30 = *(unsigned int *)(CFunctionCopy + 0x28);
- v31 = v41;
- if ( v41 >= v30 )
- {
- LABEL_63:
- TWString::TWString((TWString *)&v49);
- InvokeFunction(CFunctionCopy, 0i64, (__int64)&v40, (__int64)&v49);
- v4 = 1;
- TWString::_TWString((TWString *)&v49);
- v9 = v41;
- }
- else
- {
- v32 = *(_QWORD *)(CFunctionCopy + 0x20) + 8i64 * v41;
- while ( *(_DWORD *)(*(_QWORD *)v32 + 36i64) & 0x400 )
- {
- ++v31;
- v32 += 8i64;
- if ( v31 >= v30 )
- goto LABEL_63;
- }
- LABEL_29:
- v4 = 0;
- }
- LABEL_64:
- v33 = (unsigned int)v9;
- v34 = v9 == 0;
- v35 = v40;
- if ( !v34 )
- {
- v36 = v40 + 12 * (v33 - 1);
- if ( v33 )
- {
- do
- {
- v37 = (TWString *)v36;
- v36 -= 12i64;
- TWString::_TWString(v37);
- --v33;
- }
- while ( v33 );
- v35 = v40;
- }
- }
- if ( v35 )
- {
- v50 = v35;
- v51 = 0i64;
- sub_14001ED80((__int64)Allocator_PROBABLY, &v50);
- _InterlockedExchangeAdd64(&qword_1429026A0, -(signed int)v51);
- v41 = 0;
- v40 = 0i64;
- }
- LABEL_73:
- TWString::_TWString((TWString *)&v48);
- return v4;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement