RtlTimelineBitmapMerge

INT64 __fastcall RtlTimelineBitmapMerge(UINT64 *a1, UINT64 *a2){
  INT64 result; 
  unsigned int v4; 
  unsigned int v5; 
  unsigned int v6; 
  result = *(unsigned int *)a2;
  v4 = *(_DWORD *)a1;
  if( (unsigned int)result > v4 )
  {
    *(_DWORD *)a1 = result;
    if( (unsigned int)result - v4 >= 0x20 )
    {
      v6 = 0;
      *((_DWORD *)a1 + 1) = 0;
    }
    else
    {
      *((_DWORD *)a1 + 1) <<= result - v4;
      v6 = *((_DWORD *)a1 + 1);
    }
    result = v6 | *((_DWORD *)a2 + 1);
    *((_DWORD *)a1 + 1) = result;
  }
  else
  {
    v5 = v4 - result;
    if( v5 < 0x20 )
    {
      result = (unsigned int)(*((_DWORD *)a2 + 1) << v5);
      *((_DWORD *)a1 + 1) |= result;
    }
  }
  return result;
}

Referenced by:

KeFoldProcessStatisticsThread