XmGroup45General

INT64 __fastcall XmGroup45General(INT64 a1){
  VOID *v2; 
  INT64 result; 
  UINT16 *v4; 
  int v5; 
  int v6; 
  int v7; 
  INT64 *OffsetAddress; 
  INT64 v9; 
  LODWORD(v9) = 0;
  XmSetDataType(a1);
  result = XmEvaluateAddressSpecifier(a1, &v9, v2);
  v4 = (UINT16 *)result;
  if( result )
  {
    v5 = v9;
    if( *(_BYTE *)(a1 + 81) == 18 )
    {
      v5 = v9 & 1;
      LODWORD(v9) = v5;
    }
    *(_DWORD *)(a1 + 124) += v5;
    if( *(_DWORD *)(a1 + 124) == 36 )
    {
      XmSetSourceValue(a1, v4);
    }
    else
    {
      XmSetDestinationValue(a1, v4);
      if( (((_DWORD)v9 - 3) & 0xFFFFFFFD) == 0 )
      {
        if( *(_BYTE *)(a1 + 142) )
          longjmp((_JBTYPE *)(a1 + 160), 11i64);
        v6 = *(_DWORD *)(a1 + 120);
        v7 = *(_DWORD *)(a1 + 128) + 1;
        *(_DWORD *)(a1 + 120) = 1;
        OffsetAddress = XmGetOffsetAddress(a1, v6 + v7);
        XmSetSourceValue(a1, (UINT16 *)OffsetAddress);
        *(_WORD *)(a1 + 82) = *(_WORD *)(a1 + 108);
        *(_DWORD *)(a1 + 120) = v6;
      }
    }
    return 1i64;
  }
  return result;
}

Referenced by:

No references.