HalpPicSetLineState
INT64 __fastcall HalpPicSetLineState(_DWORD *a1, INT64 a2, INT64 a3){
bool v6;
_DWORD *v7;
int v8;
unsigned __int16 v9;
int v10;
int v11;
int v12;
int v13;
if( *(_BYTE *)(a3 + 4) )
return 3221225659i64;
v6 = 0;
v7 = (_DWORD *)(a2 + 4);
if( *a1 == 45056 )
{
v6 = *v7 == 2;
v8 = 0;
}
else
{
v8 = 8;
}
v9 = READ_PORT_USHORT_PAIR(0x4D0u, 0x4D1u);
if( *(_DWORD *)(a3 + 8) || v6 )
v10 = v9 & ~(1 << (v8 + *(_BYTE *)(a2 + 4)));
else
v10 = v9 | (1 << (v8 + *(_BYTE *)v7));
WRITE_PORT_USHORT_PAIR(0x4D0u, 0x4D1u, v10);
v11 = (unsigned __int16)READ_PORT_USHORT_PAIR(0x21u, 0xA1u);
HalpIoDelay();
v12 = v8 + *v7;
if( (*(_DWORD *)(a3 + 12) & 1) != 0 )
v13 = v11 & ~(1 << v12);
else
v13 = v11 | (1 << v12);
WRITE_PORT_USHORT_PAIR(0x21u, 0xA1u, v13);
HalpIoDelay();
return 0i64;
}Referenced by:
No references.