XmMoveXxGeneral
NTSTATUS __stdcall XmMoveXxGeneral(INT64 a1, INT64 a2, VOID *a3){
int v3;
UINT16 *v5;
int v6;
int v7;
int v8;
__int64 v9;
INT64 v11;
v3 = *(_DWORD *)(a1 + 112) & 1;
LODWORD(v11) = 0;
*(_DWORD *)(a1 + 120) = v3;
LODWORD(v5) = XmEvaluateAddressSpecifier(a1, &v11, a3);
if( v5 )
{
XmSetSourceValue(a1, v5);
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)v11 + 6i64;
*(_DWORD *)(a1 + 120) = v8;
LODWORD(v5) = 1;
*(_QWORD *)(a1 + 88) = a1 + 4 * v9;
}
return(int)v5;
}Referenced by:
No references.