XmInt1aWriteConfigRegister

VOID __stdcall XmInt1aWriteConfigRegister(UINT64 NumberOfPtes){
  char v1; 
  int v3; 
  int v4; 
  int v5; 
  int v6; 
  int v7; 
  int v8; 
  int v9; 
  unsigned int v10; 
  int v11; 
  v1 = 0;
  v3 = *(unsigned __int8 *)(NumberOfPtes + 24);
  v11 = 0;
  if( (_BYTE)v3 == 12 && (*(_BYTE *)(NumberOfPtes + 36) & 1) != 0
    || (_BYTE)v3 == 13 && (*(_BYTE *)(NumberOfPtes + 36) & 3) != 0 )
  {
    *(_DWORD *)(NumberOfPtes + 16) |= 1u;
    *(_BYTE *)(NumberOfPtes + 25) = -121;
  }
  v4 = v3 - 11;
  if( v4 )
  {
    v5 = v4 - 1;
    if( v5 )
    {
      if( v5 != 1 )
      {
        v6 = 0;
        goto LABEL_14;
      }
      v7 = *(_DWORD *)(NumberOfPtes + 28);
      v6 = 4;
    }
    else
    {
      v7 = *(unsigned __int16 *)(NumberOfPtes + 28);
      v6 = 2;
    }
  }
  else
  {
    v7 = *(unsigned __int8 *)(NumberOfPtes + 28);
    v6 = 1;
  }
  v11 = v7;
LABEL_14:
  v8 = ((__int64(__fastcall *)(_QWORD, _QWORD, int *, _QWORD, int))XmSetPciData)(
         *(unsigned __int8 *)(NumberOfPtes + 37),
         (*(unsigned __int8 *)(NumberOfPtes + 36) >> 3) | (32 * (*(_BYTE *)(NumberOfPtes + 36) & 7u)),
         &v11,
         *(unsigned __int16 *)(NumberOfPtes + 52),
         v6);
  v9 = *(_DWORD *)(NumberOfPtes + 16);
  if( v8 )
  {
    v1 = -121;
    v10 = v9 | 1;
  }
  else
  {
    v10 = v9 & 0xFFFFFFFE;
  }
  *(_DWORD *)(NumberOfPtes + 16) = v10;
  *(_BYTE *)(NumberOfPtes + 25) = v1;
}

Referenced by:

XmExecuteInt1a