func: static int CVE_2011_0021_PATCHED_DecodeScroll( decoder_sys_t *p_cdg, const uint8_t *p_data, int b_copy ) uint8_t copy [ CDG_SCREEN_PITCH * CDG_SCREEN_HEIGHT ] ; int i_shifth ; int i_shiftv ; p_cdg -> i_offseth = p_data [ 1 ] & 0x7; if ( p_cdg -> i_offseth >= CDG_SCREEN_BORDER_WIDTH )  p_cdg -> i_offseth = CDG_SCREEN_BORDER_WIDTH - 1; p_cdg -> i_offsetv = p_data [ 2 ] & 0xf; if ( p_cdg -> i_offsetv >= CDG_SCREEN_BORDER_HEIGHT )  p_cdg -> i_offsetv = CDG_SCREEN_BORDER_HEIGHT - 1; switch ( ( p_data [ 1 ] >> 4 ) & 0x3 )  i_shifth = 6; i_shifth = - 6; i_shifth = 0; switch ( ( p_data [ 2 ] >> 4 ) & 0x3 )  i_shiftv = 12; i_shiftv = - 12; i_shiftv = 0; if ( i_shifth == 0 && i_shiftv == 0 )  memcpy ( copy , p_cdg -> screen , sizeof ( p_cdg -> screen ) ); p_cdg -> screen [ dy * CDG_SCREEN_PITCH + dx ] = copy [ y * CDG_SCREEN_PITCH + x ]; 