PdcPortOpenCommon
INT64 __fastcall PdcPortOpenCommon(
INT64 a1,
INT64 a2,
INT64 a3,
INT64 *a4,
INT64 a5,
INT64 a6,
INT64 a7,
INT64 a8,
CHAR **a9){
void *v11;
_QWORD *PoolWithTag;
_QWORD *v13;
INT64 v14;
_DWORD *v15;
NTSTATUS v16;
INT64 result[5];
int v19;
int v20;
int v21;
memset((INT64)result, 0i64);
v11 = 0i64;
*a9 = 0i64;
PoolWithTag = ExAllocatePoolWithTag(PagedPool, 0x6E8ui64, 0x50636450ui64);
v13 = PoolWithTag;
if( !PoolWithTag )
goto LABEL_9;
memset((INT64)PoolWithTag, 0i64);
v13[1] = 0i64;
v14 = *a4;
*((_DWORD *)v13 + 4) = 68;
*((_DWORD *)v13 + 5) = 4;
*(_DWORD *)v13 = 1348691024;
v13[218] = a3;
v13[219] = v14;
result[1] = 0i64;
result[2] = 0i64;
v20 = 68;
v21 = 4;
v19 = 5;
result[0] = 52429560i64;
v15 = ExAllocatePoolWithTag(PagedPool, 0xB8ui64, 0x50636450ui64);
v11 = v15;
if( !v15 )
{
LABEL_9:
v16 = -1073741801;
LABEL_10:
if( v13 )
PdcpPortReleaseResources(v13);
goto LABEL_6;
}
*v15 = 1;
*((_QWORD *)v15 + 2) = v13;
*((_QWORD *)v15 + 1) = result;
v16 = ZwPowerInformation(VerifySystemPolicyDc|0x40, v15, 0xB8u, 0i64, 0);
if( v16 >= 0 )
{
*a9 = (CHAR *)v13;
v16 = 0;
}
if( v16 < 0 )
goto LABEL_10;
LABEL_6:
if( v11 )
ExFreePoolWithTag(v11, 0);
return(unsigned int)v16;
}Referenced by:
PdcTaskClientRegister