INT64 __fastcall XmGeneralRegister(INT64 a1, INT64 a2, VOID *a3){
INT64 result;
INT64 v5;
LODWORD(v5) = 0;
*(_DWORD *)(a1 + 120) = *(_BYTE *)(a1 + 138) != 0 ? 3 : 1;
XmEvaluateAddressSpecifier(a1, &v5, a3);
if( !*(_BYTE *)(a1 + 142) )
longjmp((_JBTYPE *)(a1 + 160), 10i64);
XmSetSourceValue(a1, (UINT16 *)(a1 + 4 * ((unsigned int)v5 + 6i64)));
result = 1i64;
*(_QWORD *)(a1 + 88) = a1 + 4 * ((unsigned int)v5 + 6i64);
return result;
}