ExpQueryModuleInformationEx
INT64 __fastcall ExpQueryModuleInformationEx(INT64 a1, _WORD *a2, UINT64 a3, INT64 a4, UINT64 *a5){
unsigned int v5;
_WORD *v6;
INT16 v7;
unsigned int v8;
unsigned int v9;
UINT64 *v10;
PVOID *i;
unsigned int v12;
int v14;
v14 = a4;
v5 = a3;
v6 = a2;
v7 = 0;
v8 = 0;
v9 = 2;
if( (unsigned int)a3 < 2 )
{
v10 = a5;
if( a5 )
*(_DWORD *)a5 = 2;
v8 = -1073741820;
}
else
{
*a2 = 0;
v10 = a5;
}
for( i = (PVOID *)PsLoadedModuleList; i != &PsLoadedModuleList; i = (PVOID *)*i )
{
v12 = v9 + 320;
if( v9 + 320 < v9 )
return 3221225473i64;
v9 += 320;
if( v5 < v12 )
{
if( v10 )
*(_DWORD *)v10 = v12;
v8 = -1073741820;
}
else
{
*v6 = 320;
ExpConvertLdrEntryToModuleInfo((INT64)i, v7, (INT64)v6);
if( v14 )
*((_DWORD *)v6 + 77) = 0;
v6 += 160;
*v6 = 0;
}
++v7;
}
if( v10 )
*(_DWORD *)v10 = v9;
return v8;
}Referenced by:
ExpQuerySystemInformation