__int16 __usercall sub_10005BA1<ax>(unsigned int a1<ebx>, signed int a2, char (**a3)[3], __int16 a4, char *a5)
{
__int16 v5; // di@1
char *v6; // eax@2
signed int v7; // esi@4
__int16 v9; // [sp+32Ch] [bp-Ch]@2
char (**v10)[3]; // [sp+330h] [bp-8h]@2
char v11; // [sp+8h] [bp-330h]@2
char *v12; // [sp+334h] [bp-4h]@4
v5 = -1;
if ( a3 )
{
v10 = a3;
v6 = a5;
v9 = a4;
}
else
{
v9 = 33;
v10 = &off_10019E50;
v6 = &v11;
}
v12 = v6;
sub_10005588((signed int)&v9);
v7 = a2;
if ( *(_WORD *)(a2 + 24) == 1 )
{
v5 = sub_100056AC(a1, a2, (int)&v9);
*(_WORD *)(v7 + 26) = 1;
}
else
{
if ( *(_WORD *)(a2 + 24) == 3 )
{
v5 = sub_100058A1(a2, (int)&v9);
*(_WORD *)(v7 + 26) = 3;
}
}
return v5;
}
signed int __stdcall DecompressWave(int a1, int a2, __int16 a3, int a4)
{
signed int result; // eax@1
result = 0;
if ( !a1 )
result = -128;
if ( a2 )
{
if ( !a4 )
result = -128;
}
if ( !(_WORD)result )
{
if ( *(_WORD *)(a1 + 24) == 3 )
result = sub_10005BA1(a1, a2, a3, a4);//这边调用了上面的函数
else
result = sub_10005D9B(a1);
}
return result;
}
DecompressWave函数为什么是那么奇怪的数字呢……
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)