XmScasOp

INT64 __fastcall XmScasOp(INT64 a1){
  int v2; 
  INT64 result; 
  INT64 *StringAddress; 
  INT64 v5; 
  v2 = 1;
  if( *(_BYTE *)(a1 + 139) )
  {
    if( *(_BYTE *)(a1 + 137) )
      v2 = *(_DWORD *)(a1 + 28);
    else
      v2 = *(unsigned __int16 *)(a1 + 28);
  }
  result = XmSetSourceValue(a1, (UINT16 *)(a1 + 24));
  do
  {
    if( !v2 )
      break;
    StringAddress = XmGetStringAddress(a1, 0i64, 7ui64);
    XmSetDestinationValue(a1, (UINT16 *)StringAddress);
    result = XmCompareOperands(v5);
    --v2;
  }
  while( ((*(_DWORD *)(a1 + 16) & 0x40) != 0) == *(_BYTE *)(a1 + 141) );
  if( *(_BYTE *)(a1 + 139) )
  {
    if( *(_BYTE *)(a1 + 137) )
      *(_DWORD *)(a1 + 28) = v2;
    else
      *(_WORD *)(a1 + 28) = v2;
  }
  return result;
}

Referenced by:

No references.