XmCmpsOp

VOID __stdcall XmCmpsOp(INT64 a1){
  int v2; 
  INT64 *StringAddress; 
  INT64 v4; 
  INT64 *v5; 
  INT64 v6; 

  v2 = 1;
  if( !*(_BYTE *)(a1 + 139) )
    goto LABEL_5;
  if( *(_BYTE *)(a1 + 137) )
    v2 = *(_DWORD *)(a1 + 28);
  else
    v2 = *(unsigned __int16 *)(a1 + 28);
  while( v2 )
  {
LABEL_5:
    StringAddress = XmGetStringAddress(a1, *(unsigned int *)(a1 + 116), 6ui64);
    XmSetSourceValue(a1, (UINT16 *)StringAddress);
    v5 = XmGetStringAddress(v4, 0i64, 7ui64);
    XmSetDestinationValue(a1, (UINT16 *)v5);
    XmCompareOperands(v6);
    --v2;
    if( ((*(_DWORD *)(a1 + 16) & 0x40) != 0) != *(_BYTE *)(a1 + 141) )
      break;
  }
  if( *(_BYTE *)(a1 + 139) )
  {
    if( *(_BYTE *)(a1 + 137) )
      *(_DWORD *)(a1 + 28) = v2;
    else
      *(_WORD *)(a1 + 28) = v2;
  }
}

Referenced by:

No references.