XmRclOp

VOID __stdcall XmRclOp(INT64 a1){
  int v1; 
  char v2; 
  unsigned int v3; 
  unsigned int v4; 
  int v5; 
  unsigned int v6; 
  int v7; 
  __int64 v8; 
  unsigned __int8 v9; 

  v1 = *(_DWORD *)(a1 + 120);
  v2 = 8 * v1 + 7;
  v3 = *(_DWORD *)(a1 + 104);
  v4 = (*(_DWORD *)(a1 + 108) & 0x1Fu) % (8 * v1 + 9);
  v5 = *(_DWORD *)(a1 + 16) & 1;
  v6 = v4;
  if( v4 )
  {
    if( v4 == 1 )
      *(_DWORD *)(a1 + 16) ^= ((unsigned __int16)*(_DWORD *)(a1 + 16) ^ (unsigned __int16)(((unsigned __int16)(v3 >> v2) ^ (unsigned __int16)(v3 >> (v2 - 1))) << 11)) & 0x800;
    do
    {
      v7 = v3 >> v2;
      v3 = v5 | (((1 << v2) - 1) | (1 << v2)) & (2 * v3);
      v5 = v7;
      --v6;
    }
    while( v6 );
  }
  XmStoreResult(a1, v3);
  *(_DWORD *)(v8 + 16) ^= (v9 ^ (unsigned __int8)*(_DWORD *)(v8 + 16)) & 1;
}

Referenced by:

No references.