XmRcrOp

_WORD *__fastcall XmRcrOp(_DWORD *a1){
  int v2; 
  int v3; 
  unsigned int v4; 
  char v5; 
  unsigned int v6; 
  int v7; 
  int v8; 
  _WORD *result; 
  __int64 v10; 
  int v11; 
  v2 = 8 * a1[30];
  v3 = a1[27];
  v4 = a1[26];
  v5 = v2 + 7;
  v6 = (v3 & 0x1Fu) % (v2 + 9);
  v7 = a1[4] & 1;
  if( v6 )
  {
    if( v6 == 1 )
      a1[4] ^= ((unsigned __int16)a1[4] ^ (unsigned __int16)(((unsigned __int16)v7 ^ (unsigned __int16)(v4 >> v5)) << 11)) & 0x800;
    do
    {
      v8 = v4 & 1;
      v4 = (v4 >> 1) | (v7 << v5);
      v7 = v8;
      --v6;
    }
    while( v6 );
  }
  result = XmStoreResult((INT64)a1, v4);
  *(_DWORD *)(v10 + 16) = v11 | *(_DWORD *)(v10 + 16) & 0xFFFFFFFE;
  return result;
}

Referenced by:

No references.