XmCmpxchgOp

NTSTATUS __stdcall XmCmpxchgOp(INT64 a1){
  int v1; 
  INT64 v3; 
  unsigned __int16 *v4; 
  int v5; 
  int v6; 
  unsigned int v7; 
  _DWORD *v8; 
  int v9; 

  v1 = *(_DWORD *)(a1 + 120);
  v3 = *(unsigned int *)(a1 + 104);
  v4 = (unsigned __int16 *)(a1 + 24);
  if( v1 )
  {
    if( v1 == 3 )
      v5 = *(_DWORD *)v4;
    else
      v5 = *v4;
  }
  else
  {
    v5 = *(unsigned __int8 *)v4;
  }
  v6 = *(_DWORD *)(a1 + 16);
  if( (_DWORD)v3 == v5 )
  {
    v3 = *(unsigned int *)(a1 + 108);
    v7 = v6 | 0x40;
  }
  else
  {
    *(_QWORD *)(a1 + 88) = v4;
    v7 = v6 & 0xFFFFFFBF;
  }
  *(_DWORD *)(a1 + 16) = v7;
  XmStoreResult(a1, v3);
  v8[27] = v8[26];
  v8[26] = v9;
  return XmSubOperands(v8, 0);
}

Referenced by:

No references.