XmImulOp

INT64 __fastcall XmImulOp(INT64 *a1){
  int v1; 
  int v2; 
  __int64 v3; 
  char v4; 
  char v5; 
  bool v6; 
  int v7; 
  __int16 v8; 
  __int16 v9; 
  INT64 result; 
  __int64 v11; 
  v1 = *((_DWORD *)a1 + 30);
  if( v1 )
  {
    if( v1 == 3 )
    {
      v11 = *((int *)a1 + 26) * (__int64)*((int *)a1 + 27);
      XmStoreResult((INT64)a1, (unsigned int)(*((_DWORD *)a1 + 26) * *((_DWORD *)a1 + 27)));
      v6 = HIDWORD(v11) == v7 >> 31;
    }
    else
    {
      XmStoreResult((INT64)a1, (unsigned __int16)(*((_WORD *)a1 + 52) * *((_WORD *)a1 + 54)));
      v6 = v9 == (__int16)(v8 >> 15);
    }
  }
  else
  {
    XmStoreResult((INT64)a1, (unsigned __int8)(*((_BYTE *)a1 + 104) * *((_BYTE *)a1 + 108)));
    v6 = v5 == (char)(v4 >> 7);
  }
  LOBYTE(v2) = !v6;
  result = (v2 << 11) | v2 & 0xFFFFF7FF | *(_DWORD *)(v3 + 16) & 0xFFFFF7FE;
  *(_DWORD *)(v3 + 16) = result;
  return result;
}

Referenced by:

No references.