能力值:
( LV2,RANK:10 )
|
-
-
[求助]新人 尝试对手游进行解包寻找计算公式 遇到大量问题
long double __usercall Unit__CalculateHunterDamage@<Q0>(__int64 a1@<X0>, _BYTE *a2@<X1>, __int128 *a3@<X8>)
{
_BYTE *v3; // x20
__int64 v4; // x21
__int128 *v5; // x19
__int64 v6; // x0
__int64 v7; // x21
__int64 v8; // x0
__int64 v9; // x22
__int64 v10; // x0
__int64 v11; // x0
__int64 v12; // x21
__int64 v13; // x8
unsigned __int64 v14; // x10
unsigned int *v15; // x11
signed __int64 v16; // x0
long double result; // q0
__int128 v18; // q1
__int128 v19; // q2
__int128 v20; // q3
signed int v21; // [xsp-10h] [xbp-D0h]
__int128 v22; // [xsp+0h] [xbp-C0h]
__int128 v23; // [xsp+10h] [xbp-B0h]
long double v24; // [xsp+20h] [xbp-A0h]
__int128 v25; // [xsp+30h] [xbp-90h]
__int128 v26; // [xsp+40h] [xbp-80h]
__int128 v27; // [xsp+50h] [xbp-70h]
long double v28; // [xsp+60h] [xbp-60h]
__int128 v29; // [xsp+70h] [xbp-50h]
v3 = a2;
v4 = a1;
v5 = a3;
if ( !(byte_2C422D1 & 1) )
{
sub_ABE424(MEMORY[0x7983B7F040]);
byte_2C422D1 = 1;
}
*(_OWORD *)&v28 = 0u;
v29 = 0u;
v26 = 0u;
v27 = 0u;
v6 = System_Collections_Generic_KeyNotFoundException___ctor_20872292(v4);
if ( !v6 )
sub_AE98C4(0LL);
v7 = System_Threading_Interlocked__CompareExchange_20877444(v6);
while ( 1 )
{
if ( !v7 )
sub_AE98C4(0LL);
if ( !(System_Net_NetworkCredential__InternalGetDomain(v7) & 1) )
break;
if ( !v7 )
sub_AE98C4(0LL);
v8 = System_Collections_Generic_IntrospectiveSortUtilities__ThrowOrIgnoreBadComparer(v7);
v9 = v8;
if ( !v8 )
sub_AE98C4(0LL);
if ( (*(__int64 (**)(void))(*(_QWORD *)v8 + 392LL))() )
{
v10 = ((__int64 (__fastcall *)(__int64))System_Xml_Schema_XmlSchemaObjectCollection__OnSet)(v9);
if ( v10 )
{
*v3 = 1;
(*(void (**)(void))(*(_QWORD *)v10 + 456LL))();
v28 = v24;
v29 = v25;
v26 = v22;
v27 = v23;
v21 = 96;
goto LABEL_17;
}
}
}
v21 = 82;
LABEL_17:
v11 = sub_AF793C(v7, MEMORY[0x7983B8C960]);
v12 = v11;
if ( v11 )
{
v13 = *(_QWORD *)v11;
if ( *(_WORD *)(*(_QWORD *)v11 + 286LL) )
{
v14 = 0LL;
v15 = (unsigned int *)(*(_QWORD *)(v13 + 176) + 8LL);
while ( *((_QWORD *)v15 - 1) != MEMORY[0x7983B8C960] )
{
++v14;
v15 += 4;
if ( v14 >= *(unsigned __int16 *)(*(_QWORD *)v11 + 286LL) )
goto LABEL_22;
}
v16 = v13 + 16LL * *v15 + 296;
}
else
{
LABEL_22:
v16 = sub_AB6DBC(v11);
}
(*(void (__fastcall **)(__int64, _QWORD))v16)(v12, *(_QWORD *)(v16 + 8));
}
if ( v21 == 96 )
{
result = v28;
v18 = v29;
v19 = v26;
v20 = v27;
*((long double *)v5 + 2) = v28;
v5[3] = v18;
*v5 = v19;
v5[1] = v20;
}
else
{
*(_OWORD *)&result = 0uLL;
*v3 = 0;
v5[2] = 0u;
v5[3] = 0u;
*v5 = 0u;
v5[1] = 0u;
}
return result;
} 现在的伪代码长这个样 完全看不出 找不到运算和公式的样子。。
最后于 2020-10-8 15:06
被unnamed233编辑
,原因:
|