附上IDA中的代码 看起来像是除法之类的函数 但是不能确定 有没有大佬帮忙研究下
int __fastcall sub_2BC(unsigned int a1_16, unsigned int a2_n1, unsigned int a3_16, int a4_0)
{
char v4; // cf@1
unsigned __int8 v5; // cf@6
unsigned __int8 v6; // cf@7
unsigned __int8 v7; // cf@8
unsigned __int8 v8; // cf@9
unsigned __int8 v9; // cf@10
unsigned __int8 v10; // cf@11
char v11; // zf@11
do
{
v4 = a3_16 >= a2_n1 >> 8;
if ( a3_16 <= a2_n1 >> 8 )
a3_16 <<= 8;
}
while ( !v4 );
if ( a3_16 > a2_n1 >> 1 )
goto LABEL_34;
v5 = a3_16 >= a2_n1 >> 2;
if ( a3_16 > a2_n1 >> 2 )
goto LABEL_32;
v6 = a3_16 >= a2_n1 >> 3;
if ( a3_16 > a2_n1 >> 3 )
goto LABEL_29;
v7 = a3_16 >= a2_n1 >> 4;
if ( a3_16 > a2_n1 >> 4 )
goto LABEL_26;
v8 = a3_16 >= a2_n1 >> 5;
if ( a3_16 > a2_n1 >> 5 )
goto LABEL_23;
v9 = a3_16 >= a2_n1 >> 6;
if ( a3_16 > a2_n1 >> 6 )
goto LABEL_20;
v10 = a3_16 >= a2_n1 >> 7;
v11 = a3_16 == a2_n1 >> 7;
if ( a3_16 > a2_n1 >> 7 )
goto LABEL_17;
do
{
if ( !v11 & v10 )
a3_16 >>= 8;
a4_0 += (a2_n1 >= a3_16 << 7) + a4_0;
if ( a2_n1 >= a3_16 << 7 )
a2_n1 -= a3_16 << 7;
v10 = a2_n1 >= a3_16 << 6;
LABEL_17:
a4_0 += v10 + a4_0;
if ( v10 )
a2_n1 -= a3_16 << 6;
v9 = a2_n1 >= 32 * a3_16;
LABEL_20:
a4_0 += v9 + a4_0;
if ( v9 )
a2_n1 -= 32 * a3_16;
v8 = a2_n1 >= 16 * a3_16;
LABEL_23:
a4_0 += v8 + a4_0;
if ( v8 )
a2_n1 -= 16 * a3_16;
v7 = a2_n1 >= 8 * a3_16;
LABEL_26:
a4_0 += v7 + a4_0;
if ( v7 )
a2_n1 -= 8 * a3_16;
v6 = a2_n1 >= 4 * a3_16;
LABEL_29:
a4_0 += v6 + a4_0;
if ( v6 )
a2_n1 -= 4 * a3_16;
v5 = a2_n1 >= 2 * a3_16;
LABEL_32:
a4_0 += v5 + a4_0;
if ( v5 )
a2_n1 -= 2 * a3_16;
LABEL_34:
a4_0 += (a2_n1 >= a3_16) + a4_0;
if ( a2_n1 >= a3_16 )
a2_n1 -= a3_16;
v10 = a3_16 >= a1_16;
v11 = a3_16 == a1_16;
}
while ( a3_16 != a1_16 );
return a4_0;
}
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课