PopPlInitComponents
__int64 __fastcall PopPlInitComponents(
INT64 a1,
INT128 *a2,
unsigned __int64 a3,
INT64 a4,
UINT64 a5,
__int64 a6,
__int64 a7){
VOID **PoolWithTag;
unsigned __int64 v8;
INT128 *v11;
NTSTATUS inited;
unsigned __int64 v14;
unsigned __int64 i;
CHAR *v17;
v17 = 0i64;
PoolWithTag = 0i64;
v8 = 0i64;
v11 = a2;
if( a3 )
{
if( (unsigned __int64)&a2[6 * a3] <= a5 )
{
PoolWithTag = ExAllocatePoolWithTag(0x200ui64, 8 * a3, 1817210704i64);
if( PoolWithTag )
{
inited = 0;
v14 = 0i64;
if( a3 )
{
while( 1 )
{
inited = PopPlInitComponent(a1, v11, a4, a5, &v17);
if( inited < 0 )
break;
++v14;
PoolWithTag[v8] = v17;
v11 += 6;
++v8;
if( v14 >= a3 )
goto LABEL_14;
}
for( i = 0i64; i < v8; ++i )
ExFreePoolWithTag(PoolWithTag[i], 0x6C506F50u);
ExFreePoolWithTag(PoolWithTag, 0x6C506F50u);
PoolWithTag = 0i64;
v8 = 0i64;
}
}
else
{
inited = -1073741670;
}
}
else
{
inited = -1073741306;
}
}
else
{
inited = 0;
}
LABEL_14:
*(_QWORD *)a7 = PoolWithTag;
*(_QWORD *)a6 = v8;
return(unsigned int)inited;
}Referenced by:
PopPlInitDevice