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.