XmSxxOp

_WORD *__fastcall XmSxxOp(INT64 a1){
  unsigned int v1; 
  int v2; 
  int v3; 
  int v4; 
  int v5; 
  int v6; 
  int v7; 
  int v8; 
  unsigned int v9; 
  int v10; 
  v1 = 0;
  v2 = *(_DWORD *)(a1 + 108) >> 1;
  if( !v2 )
  {
    v10 = *(_DWORD *)(a1 + 16) >> 11;
    goto LABEL_18;
  }
  v3 = v2 - 1;
  if( !v3 )
  {
    v10 = *(_DWORD *)(a1 + 16);
    goto LABEL_18;
  }
  v4 = v3 - 1;
  if( !v4 )
  {
    v10 = *(_DWORD *)(a1 + 16) >> 6;
    goto LABEL_18;
  }
  v5 = v4 - 1;
  if( !v5 )
  {
    v10 = *(_DWORD *)(a1 + 16) | (*(_DWORD *)(a1 + 16) >> 6);
    goto LABEL_18;
  }
  v6 = v5 - 1;
  if( !v6 )
  {
    v9 = *(_DWORD *)(a1 + 16);
    goto LABEL_11;
  }
  v7 = v6 - 1;
  if( !v7 )
  {
    v10 = *(_DWORD *)(a1 + 16) >> 2;
    goto LABEL_18;
  }
  v8 = v7 - 1;
  if( !v8 )
  {
    v9 = *(_DWORD *)(a1 + 16) ^ (*(_DWORD *)(a1 + 16) >> 4);
LABEL_11:
    v10 = v9 >> 7;
LABEL_18:
    v1 = v10 & 1;
    return XmStoreResult(a1, *(_DWORD *)(a1 + 108) & 1 ^ v1);
  }
  if( v8 == 1 )
    v1 = (*(_DWORD *)(a1 + 16) & 0x40 | ((unsigned int)(*(_DWORD *)(a1 + 16) ^ (*(_DWORD *)(a1 + 16) >> 4)) >> 1) & 0x40) >> 6;
  return XmStoreResult(a1, *(_DWORD *)(a1 + 108) & 1 ^ v1);
}

Referenced by:

No references.