XmGroup45General

NTSTATUS __stdcall XmGroup45General(INT64 a1){
  VOID *v2; 
  UINT16 *v3; 
  UINT16 *v4; 
  int v5; 
  VOID *v6; 
  int v7; 
  int v8; 
  INT64 *OffsetAddress; 
  INT64 v11; 

  LODWORD(v11) = 0;
  XmSetDataType((VOID *)a1);
  LODWORD(v3) = XmEvaluateAddressSpecifier(a1, &v11, v2);
  v4 = v3;
  if( v3 )
  {
    v5 = v11;
    if( *(_BYTE *)(a1 + 81) == 18 )
    {
      v5 = v11 & 1;
      LODWORD(v11) = v5;
    }
    *(_DWORD *)(a1 + 124) += v5;
    if( *(_DWORD *)(a1 + 124) == 36 )
    {
      XmSetSourceValue(a1, v4);
    }
    else
    {
      XmSetDestinationValue(a1, v4);
      if( (((_DWORD)v11 - 3) & 0xFFFFFFFD) == 0 )
      {
        if( *(_BYTE *)(a1 + 142) )
          longjmp((unsigned __int64 *)(a1 + 160), (VOID *)0xB, v6);
        v7 = *(_DWORD *)(a1 + 120);
        v8 = *(_DWORD *)(a1 + 128) + 1;
        *(_DWORD *)(a1 + 120) = 1;
        OffsetAddress = XmGetOffsetAddress(a1, v7 + v8, v6);
        XmSetSourceValue(a1, (UINT16 *)OffsetAddress);
        *(_WORD *)(a1 + 82) = *(_WORD *)(a1 + 108);
        *(_DWORD *)(a1 + 120) = v7;
      }
    }
    LODWORD(v3) = 1;
  }
  return(int)v3;
}

Referenced by:

No references.