XmBoundOp

NTSTATUS __stdcall XmBoundOp(INT64 a1){
  VOID *v1; 
  unsigned int v2; 
  INT64 *OffsetAddress; 
  NTSTATUS v5; 
  __int64 v6; 
  VOID *v7; 
  INT64 *v8; 
  unsigned __int64 v9; 
  int v10; 
  NTSTATUS *v11; 
  NTSTATUS result; 
  bool v13; 

  v2 = *(_DWORD *)(a1 + 108);
  OffsetAddress = XmGetOffsetAddress(a1, v2, v1);
  XmSetSourceValue(a1, (UINT16 *)OffsetAddress);
  v5 = *(_DWORD *)(a1 + 108);
  v8 = XmGetOffsetAddress(v6, v2 + *(_DWORD *)(a1 + 120) + 1, v7);
  XmSetSourceValue(a1, (UINT16 *)v8);
  v10 = *(_DWORD *)(a1 + 108);
  v11 = *(NTSTATUS **)(a1 + 88);
  if( *(_DWORD *)(a1 + 120) == 3 )
  {
    result = *v11;
    if( result < v5 )
      goto LABEL_7;
    v13 = result <= v10 + 4;
  }
  else
  {
    v9 = (unsigned int)*(__int16 *)v11;
    if( *(__int16 *)v11 < (__int16)v5 )
      goto LABEL_7;
    result = (__int16)v10;
    v13 = (int)v9 <= (__int16)v10 + (__int16)(*(_WORD *)(a1 + 120) + 1);
  }
  if( !v13 )
LABEL_7:
    longjmp((unsigned __int64 *)(a1 + 160), (VOID *)0xD, (VOID *)v9);
  return result;
}

Referenced by:

No references.