VfHalAllocateMapRegisters
__int64 __fastcall VfHalAllocateMapRegisters(ULONG_PTR a1, __int64 a2, unsigned int a3, char **a4){
__int64 v5;
unsigned int v6;
INT64 v8;
int MapRegisters;
LIST_ENTRY *AdapterInformationInternal;
CHAR *MapRegisterFile;
v5 = a3;
v6 = a2;
if( !VfRealHalAllocateMapRegisters )
return 3221225473i64;
MapRegisters = VfRealHalAllocateMapRegisters(a1, a2, a3);
if( MapRegisters >= 0 )
{
LOBYTE(v8) = 1;
AdapterInformationInternal = ViGetAdapterInformationInternal((DMA_ADAPTER *)a1, v8);
if( AdapterInformationInternal )
{
if( (_DWORD)v5 )
{
do
{
if( BYTE1(AdapterInformationInternal[2].Flink)
|| (MapRegisterFile = ViAllocateMapRegisterFile((INT64)AdapterInformationInternal, v6)) == 0i64 )
{
if( !*a4 )
*a4 = (char *)-559026163i64;
}
else
{
*((_QWORD *)MapRegisterFile + 6) = *a4;
*a4 = MapRegisterFile;
}
ADD_MAP_REGISTERS((__int64)AdapterInformationInternal, v6, 1);
a4 += 2;
--v5;
}
while( v5 );
}
}
}
return(unsigned int)MapRegisters;
}Referenced by:
No references.