rem: *dst++ = sample << 4;
add: *dst++ = sample >> 12; }
context: DoMasterVolume ( void *buffer,                 struct AHIPrivAudioCtrl *audioctrl ){  LONG *dst = buffer;  int   cnt;  LONG  vol;  LONG  sample;  cnt = audioctrl->ac.ahiac_BuffSamples;  switch(audioctrl->ac.ahiac_BuffType)  {    case AHIST_M32S:      break;    case AHIST_S32S:      cnt *= 2;      break;    default:      return; // Panic  }  vol = audioctrl->ahiac_SetMasterVolume >> 8;  while(cnt > 0)  {    cnt--;        sample = (*dst >> 12) * vol;    if(sample > (LONG) 0x07ffffff)      sample = 0x07ffffff;    else if(sample < (LONG) 0xf8000000)      sample = 0xf8000000;    *dst++ = sample << 4;  }}