XmMoveXxGeneral
INT64 __fastcall XmMoveXxGeneral(INT64 a1, INT64 a2, VOID *a3){
int v3;
INT64 result;
int v6;
int v7;
int v8;
__int64 v9;
INT64 v10;
v3 = *(_DWORD *)(a1 + 112) & 1;
LODWORD(v10) = 0;
*(_DWORD *)(a1 + 120) = v3;
result = XmEvaluateAddressSpecifier(a1, &v10, a3);
if( result )
{
XmSetSourceValue(a1, (UINT16 *)result);
v6 = *(_DWORD *)(a1 + 112) & 8;
if( *(_DWORD *)(a1 + 120) )
{
if( v6 )
v7 = *(__int16 *)(a1 + 108);
else
v7 = *(unsigned __int16 *)(a1 + 108);
}
else if( v6 )
{
v7 = *(char *)(a1 + 108);
}
else
{
v7 = *(unsigned __int8 *)(a1 + 108);
}
*(_DWORD *)(a1 + 108) = v7;
if( *(_BYTE *)(a1 + 138) )
{
v8 = 3;
}
else
{
*(_WORD *)(a1 + 110) = 0;
v8 = 1;
}
v9 = (unsigned int)v10 + 6i64;
*(_DWORD *)(a1 + 120) = v8;
result = 1i64;
*(_QWORD *)(a1 + 88) = a1 + 4 * v9;
}
return result;
}Referenced by:
No references.