XmLoopOp

INT64 __fastcall XmLoopOp(INT64 a1){
  int v1; 
  unsigned int v2; 
  char v3; 
  __int64 v4; 
  int v5; 
  unsigned int v6; 
  INT64 result; 
  unsigned int v8; 
  v1 = *(_DWORD *)(a1 + 28);
  *(_QWORD *)(a1 + 88) = a1 + 28;
  v2 = v1 - 1;
  v3 = *(_BYTE *)(a1 + 137);
  if( !v3 )
    v2 = (unsigned __int16)v2;
  *(_DWORD *)(a1 + 120) = v3 != 0 ? 3 : 1;
  XmStoreResult(a1, v2);
  if( (*(_DWORD *)(v4 + 112) & 3) != 0 )
  {
    if( (*(_DWORD *)(v4 + 112) & 3) != v6 )
    {
      result = v6;
      goto LABEL_6;
    }
    v8 = *(_DWORD *)(v4 + 16) >> 6;
  }
  else
  {
    v8 = ~(*(_DWORD *)(v4 + 16) >> 6);
  }
  result = v6 & v8;
LABEL_6:
  if( (_DWORD)result )
  {
    if( v5 )
    {
      result = *(unsigned __int16 *)(v4 + 104);
      *(_DWORD *)(v4 + 20) = result;
    }
  }
  return result;
}

Referenced by:

No references.