XmAddOperands
INT64 __fastcall XmAddOperands(INT64 a1, INT64 a2){
int v2;
char v3;
char v5;
INT64 v6;
unsigned int v7;
int v8;
unsigned int v9;
INT64 result;
unsigned int v11;
v2 = *(_DWORD *)(a1 + 120);
v11 = 0;
v3 = a2;
if( !v2 )
{
v5 = 7;
LOBYTE(v11) = *(_BYTE *)(a1 + 104) + *(_BYTE *)(a1 + 108) + a2;
goto LABEL_4;
}
if( v2 != 3 )
{
v5 = 15;
LOWORD(v11) = *(_WORD *)(a1 + 104) + *(_WORD *)(a1 + 108) + a2;
LABEL_4:
v6 = v11;
goto LABEL_5;
}
v5 = 31;
v6 = (unsigned int)(a2 + *(_DWORD *)(a1 + 108) + *(_DWORD *)(a1 + 104));
LABEL_5:
XmStoreResult(a1, v6);
v9 = *(_DWORD *)(a1 + 16);
if( *(_DWORD *)(a1 + 124) != 30 )
v9 = v8 | v9 & 0xFFFFFFFE;
result = -v7;
*(_DWORD *)(a1 + 16) = (v7 == 0 ? 0x40 : 0) | v9 & 0xFFFFF72B | (v3
+ (*(_BYTE *)(a1 + 104) & 0xF)
+ (*(_DWORD *)(a1 + 108) & 0xF)) & 0x10 | (4 * (((*((_BYTE *)XmBitCount + (v7 & 0xF)) + *((_BYTE *)XmBitCount + ((unsigned __int8)v7 >> 4))) & 1) == 0)) & 0x3F | (((v7 >> v5) & 1 | (16 * (((unsigned __int8)v8 ^ (unsigned __int8)((v7 ^ *(_DWORD *)(a1 + 104) ^ *(_DWORD *)(a1 + 108)) >> v5)) & 1))) << 7);
return result;
}Referenced by:
XmAdcOp
XmAddOp
XmIncOp
XmXaddOp