RaspAllocateMemory

VOID *__stdcall RaspAllocateMemory(UINT64 Size, _BG_RASTERIZER_WORKSPACE *Workspace){
  __int64 v3; 
  unsigned __int64 v4; 
  VOID *Memory; 

  v3 = *(_QWORD *)Workspace;
  v4 = (*((_QWORD *)Workspace + 2) + 15i64) & 0xFFFFFFFFFFFFFFF0ui64;
  if( *(_QWORD *)Workspace )
  {
    if( Size > *((_QWORD *)Workspace + 1) - v4 )
    {
      return 0i64;
    }
    else
    {
      *((_QWORD *)Workspace + 2) = v4 + Size;
      return(VOID *)(v3 + v4);
    }
  }
  else
  {
    Memory = BgpFwAllocateMemory(Size);
    if( Memory )
      *((_QWORD *)Workspace + 2) = v4 + Size;
  }
  return Memory;
}

Referenced by:

RaspCreatePointList
RaspCreateSegmentList
RaspGetCompositeGlyphList
RaspGetXExtent
RaspInitializeCompositeGlyphData
RaspInitializeGlyphData
RaspInterpolatePoint
RaspLoadEmptyGlyph
RaspRectangleCreate
RaspScanConvert