[Asm] 纯文本查看 复制代码
void __thiscall sub_4816A0(int *this, const struct QString *a2, char *a3, _DWORD *a4)
{
int v5; // eax
int (__thiscall ***v6)(_DWORD, char *); // ecx
char *v7; // esi
int (__thiscall ***v8)(_DWORD, char *); // ecx
int (__thiscall ***v9)(_DWORD, char *); // ecx
_DWORD *v10; // esi
int v11; // eax
struct QListData::Data *v12; // esi
char v13; // [esp-78h] [ebp-140h] BYREF
int v14; // [esp-74h] [ebp-13Ch]
int v15; // [esp-70h] [ebp-138h]
int v16; // [esp-6Ch] [ebp-134h]
int v17; // [esp-68h] [ebp-130h]
int v18; // [esp-64h] [ebp-12Ch]
int v19; // [esp-60h] [ebp-128h]
int v20; // [esp-5Ch] [ebp-124h]
int v21; // [esp-58h] [ebp-120h]
_DWORD *v22; // [esp-54h] [ebp-11Ch]
char v23; // [esp-50h] [ebp-118h] BYREF
int v24; // [esp-4Ch] [ebp-114h]
int v25; // [esp-48h] [ebp-110h]
int v26; // [esp-44h] [ebp-10Ch]
int v27; // [esp-40h] [ebp-108h]
int v28; // [esp-3Ch] [ebp-104h]
int v29; // [esp-38h] [ebp-100h]
int v30; // [esp-34h] [ebp-FCh]
int v31; // [esp-30h] [ebp-F8h]
char *v32; // [esp-2Ch] [ebp-F4h]
_DWORD v33[9]; // [esp-28h] [ebp-F0h] BYREF
_DWORD *v34; // [esp-4h] [ebp-CCh]
char v35[36]; // [esp+10h] [ebp-B8h] BYREF
char *v36; // [esp+34h] [ebp-94h]
char v37[36]; // [esp+38h] [ebp-90h] BYREF
char *v38; // [esp+5Ch] [ebp-6Ch]
char v39[36]; // [esp+60h] [ebp-68h] BYREF
char *v40; // [esp+84h] [ebp-44h]
char v41[8]; // [esp+88h] [ebp-40h] BYREF
char *v42; // [esp+90h] [ebp-38h]
char *v43; // [esp+94h] [ebp-34h]
char *v44; // [esp+98h] [ebp-30h]
char *v45; // [esp+9Ch] [ebp-2Ch] BYREF
char v46[4]; // [esp+A0h] [ebp-28h] BYREF
char v47[4]; // [esp+A4h] [ebp-24h] BYREF
char v48[4]; // [esp+A8h] [ebp-20h] BYREF
struct QListData::Data *v49; // [esp+ACh] [ebp-1Ch] BYREF
char v50[4]; // [esp+B0h] [ebp-18h] BYREF
char *v51; // [esp+B4h] [ebp-14h] BYREF
_DWORD *v52; // [esp+B8h] [ebp-10h] BYREF
int v53; // [esp+C4h] [ebp-4h]
QString::QString((QString *)v46);
v5 = *this;
v53 = 0;
(*(void (__thiscall **)(int *, char *))(v5 + 176))(this, v46);
QUrlQuery::QUrlQuery((QUrlQuery *)v47);
v49 = (struct QListData::Data *)QListData::shared_null;
LOBYTE(v53) = 2;
v52 = (_DWORD *)QString::fromAscii_helper("final", 5);
LOBYTE(v53) = 3;
v45 = (char *)QString::fromAscii_helper("stage", 5);
QString::QString((QString *)v50, (const struct QString *)&v45);
QString::QString((QString *)&v51, (const struct QString *)&v52);
LOBYTE(v53) = 5;
sub_47FFC0(v50);
QString::~QString(&v51);
QString::~QString(v50);
QString::~QString(&v45);
LOBYTE(v53) = 2;
QString::~QString(&v52);
v52 = (_DWORD *)QString::fromAscii_helper("GUID", 4);
QString::QString((QString *)v50, (const struct QString *)&v52);
QString::QString((QString *)&v51, (const struct QString *)v46);
LOBYTE(v53) = 7;
sub_47FFC0(v50);
QString::~QString(&v51);
QString::~QString(v50);
LOBYTE(v53) = 2;
QString::~QString(&v52);
v52 = (_DWORD *)QString::fromAscii_helper("licenseKey", 10);
QString::QString((QString *)v50, (const struct QString *)&v52);
QString::QString((QString *)&v51, a2);
LOBYTE(v53) = 9;
sub_47FFC0(v50);
QString::~QString(&v51);
QString::~QString(v50);
LOBYTE(v53) = 2;
QString::~QString(&v52);
v52 = (_DWORD *)QString::fromAscii_helper("mandatory", 9);
LOBYTE(v53) = 10;
a2 = (const struct QString *)QString::fromAscii_helper("type", 4);
QString::QString((QString *)v50, (const struct QString *)&a2);
QString::QString((QString *)&v51, (const struct QString *)&v52);
LOBYTE(v53) = 12;
sub_47FFC0(v50);
QString::~QString(&v51);
QString::~QString(v50);
QString::~QString(&a2);
LOBYTE(v53) = 2;
QString::~QString(&v52);
QUrlQuery::setQueryItems(v47, &v49);
QUrl::QUrl(v48, &dword_210D1F0, 0);
LOBYTE(v53) = 13;
QUrl::setQuery((QUrl *)v48, (const struct QUrlQuery *)v47);
v52 = v33;
v33[0] = &std::_Func_impl_no_alloc<am::network::_lambda_2__,void,__int64,__int64>::`vftable';
v34 = v33;
v45 = &v23;
v40 = 0;
v42 = &v23;
v44 = v39;
LOBYTE(v53) = 15;
v6 = (int (__thiscall ***)(_DWORD, char *))a4[9];
if ( v6 )
v40 = (char *)(**v6)(v6, v39);
v32 = 0;
LOBYTE(v53) = 17;
v7 = (char *)operator new(0x30u);
v44 = v7;
*(_DWORD *)v7 = &std::_Func_impl_no_alloc<_lambda_dba5996b9f8665ff2e6a79b215df2364_,void,enum QNetworkReply::NetworkError,QNetworkReply const &>::`vftable';
v43 = v7 + 8;
*((_DWORD *)v7 + 11) = 0;
LOBYTE(v53) = 19;
if ( v40 )
*((_DWORD *)v7 + 11) = (**(int (__thiscall ***)(char *, int))v40)(v40, (int)(v7 + 8));
v32 = v7;
if ( v40 )
{
(*(void (__stdcall **)(bool))(*(_DWORD *)v40 + 16))(v40 != v39);
v40 = 0;
}
v36 = 0;
v43 = &v13;
v42 = v35;
v44 = &v13;
v51 = v35;
LOBYTE(v53) = 21;
v8 = (int (__thiscall ***)(_DWORD, char *))*((_DWORD *)a3 + 9);
if ( v8 )
v36 = (char *)(**v8)(v8, v35);
v38 = 0;
a3 = v37;
LOBYTE(v53) = 23;
v9 = (int (__thiscall ***)(_DWORD, char *))a4[9];
if ( v9 )
v38 = (char *)(**v9)(v9, v37);
v22 = 0;
LOBYTE(v53) = 25;
v10 = operator new(0x58u);
a4 = v10;
*v10 = &std::_Func_impl_no_alloc<_lambda_6f3c224a544940d59ed9cc168ca4a415_,void,QByteArray const &,am::qt::TaskCancellationToken &>::`vftable';
a3 = (char *)(v10 + 2);
v51 = (char *)(v10 + 2);
v10[11] = 0;
LOBYTE(v53) = 27;
if ( v36 )
v10[11] = (**(int (__thiscall ***)(char *, int))v36)(v36, (int)(v10 + 2));
v51 = (char *)(v10 + 12);
v10[21] = 0;
LOBYTE(v53) = 29;
if ( v38 )
v10[21] = (**(int (__thiscall ***)(char *, int))v38)(v38, (int)(v10 + 12));
v22 = v10;
if ( v38 )
{
(*(void (__stdcall **)(bool))(*(_DWORD *)v38 + 16))(v38 != v37);
v38 = 0;
}
if ( v36 )
{
(*(void (__stdcall **)(bool))(*(_DWORD *)v36 + 16))(v36 != v35);
v36 = 0;
}
LOBYTE(v53) = 30;
v11 = sub_CA5660(&a2, v48);
LOBYTE(v53) = 32;
sub_CA49A0(
v41,
v11,
v13,
v14,
v15,
v16,
v17,
v18,
v19,
v20,
v21,
v22,
v23,
v24,
v25,
v26,
v27,
v28,
v29,
v30,
v31,
v32,
v33[0],
v33[1],
v33[2],
v33[3],
v33[4],
v33[5],
v33[6],
v33[7],
v33[8],
v34);
sub_CC2750(v41);
QNetworkRequest::~QNetworkRequest((QNetworkRequest *)&a2);
QUrl::~QUrl((QUrl *)v48);
LOBYTE(v53) = 33;
if ( !*(_DWORD *)v49 || *(_DWORD *)v49 != -1 && !_InterlockedDecrement((volatile signed __int32 *)v49) )
{
v12 = v49;
sub_481C70((char *)v49 + 4 * *((_DWORD *)v49 + 2) + 16, (char *)v49 + 4 * *((_DWORD *)v49 + 3) + 16);
QListData::dispose(v12);
}
QUrlQuery::~QUrlQuery((QUrlQuery *)v47);
QString::~QString(v46);
}