PiDmGetObjectListCallback
__int64 __fastcall PiDmGetObjectListCallback(__int64 a1, __int64 a2, _BYTE *a3){
__int64(__fastcall *v5)(__int64, _QWORD, char *);
int v6;
__int64 v8;
unsigned int v9;
unsigned int v10;
UINT64 dwFlags;
char v12;
*a3 = 0;
v5 = *(__int64(__fastcall **)(__int64, _QWORD, char *))a2;
v6 = 0;
v12 = 0;
if( !v5 || (v6 = v5(a1, *(_QWORD *)(a2 + 8), &v12), v6 >= 0) && v12 )
{
v8 = -1i64;
do
++v8;
while( *(_WORD *)(*(_QWORD *)(a1 + 16) + 2 * v8) );
v9 = *(_DWORD *)(a2 + 24);
v10 = v8 + 1;
*(_DWORD *)(a2 + 28) += v10;
if( v9 > v10 )
{
LODWORD(dwFlags) = 2304;
RtlStringCchCopyExW(*(WCHAR **)(a2 + 16), v9, *(WCHAR **)(a1 + 16), 0i64, 0i64, dwFlags);
*(_QWORD *)(a2 + 16) += 2i64 * v10;
*(_DWORD *)(a2 + 24) -= v10;
}
}
return(unsigned int)v6;
}Referenced by:
No references.