LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/annotationsketch/graphics.c
// Function: gt_graphics_draw_text_right_p
void gt_graphics_draw_text_right_p(GtGraphics *g,
                                   GraphicsDrawTextFuncParams *params)
{
  gt_assert(g && g->c_class && params && params->txt);
  gt_rwlock_wrlock(g->pvt->lock);
  g->c_class->draw_text_right(g, params->x, params->y, params->txt);
  gt_rwlock_unlock(g->pvt->lock);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x40095
movq 0x10(%rsp), %rax
cmpq $0x0, (%rax)
je 0x40095
cmpq $0x0, 0x8(%rsp)
je 0x40095
movq 0x8(%rsp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x400cd
movq 0x173f3c(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x11dfc0(%rip), %rsi    # 0x15e066
leaq 0x12807e(%rip), %rdx    # 0x16812b
leaq 0x1280f6(%rip), %rcx    # 0x1681aa
leaq 0x127ce9(%rip), %r8     # 0x167da4
movl $0x1d7, %r9d            # imm = 0x1D7
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x400cf
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x1c100
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq 0x20(%rax), %rax
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rcx
movsd (%rcx), %xmm0
movq 0x8(%rsp), %rcx
movsd 0x8(%rcx), %xmm1
movq 0x8(%rsp), %rcx
movq 0x10(%rcx), %rsi
callq *%rax
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x1c1a0
addq $0x18, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/annotationsketch/graphics.c
// Function: gt_graphics_draw_colored_text_p
void gt_graphics_draw_colored_text_p(GtGraphics *g,
                                     GraphicsDrawColoredTextFuncParams *params)
{
  gt_assert(g && g->c_class && params && params->txt);
  gt_rwlock_wrlock(g->pvt->lock);
  g->c_class->draw_colored_text(g, params->x, params->y, params->col,
                                params->txt);
  gt_rwlock_unlock(g->pvt->lock);
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
cmpq $0x0, 0x30(%rsp)
je 0x40165
movq 0x30(%rsp), %rax
cmpq $0x0, (%rax)
je 0x40165
cmpq $0x0, 0x28(%rsp)
je 0x40165
movq 0x28(%rsp), %rax
cmpq $0x0, 0x30(%rax)
jne 0x4019d
movq 0x173e6c(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x11def0(%rip), %rsi    # 0x15e066
leaq 0x127fae(%rip), %rdx    # 0x16812b
leaq 0x128044(%rip), %rcx    # 0x1681c8
leaq 0x127c19(%rip), %r8     # 0x167da4
movl $0x1e7, %r9d            # imm = 0x1E7
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x4019f
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x1c100
movq 0x30(%rsp), %rax
movq (%rax), %rax
movq 0x28(%rax), %rax
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rcx
movsd (%rcx), %xmm0
movq 0x28(%rsp), %rcx
movsd 0x8(%rcx), %xmm1
movq 0x28(%rsp), %rcx
addq $0x10, %rcx
movq 0x28(%rsp), %rdx
movq 0x30(%rdx), %rsi
movq (%rcx), %rdx
movq %rdx, (%rsp)
movq 0x8(%rcx), %rdx
movq %rdx, 0x8(%rsp)
movq 0x10(%rcx), %rdx
movq %rdx, 0x10(%rsp)
movq 0x18(%rcx), %rcx
movq %rcx, 0x18(%rsp)
callq *%rax
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x1c1a0
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/annotationsketch/graphics.c
// Function: gt_graphics_set_margins_p
void gt_graphics_set_margins_p(GtGraphics *g,
                               GraphicsSetMarginsFuncParams *params)
{
  gt_assert(g && g->c_class && params);
  gt_rwlock_wrlock(g->pvt->lock);
  g->c_class->set_margins(g, params->margin_x, params->margin_y);
  gt_rwlock_unlock(g->pvt->lock);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x40259
movq 0x10(%rsp), %rax
cmpq $0x0, (%rax)
je 0x40259
cmpq $0x0, 0x8(%rsp)
jne 0x40291
movq 0x173d78(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x11ddfc(%rip), %rsi    # 0x15e066
leaq 0x127f77(%rip), %rdx    # 0x1681e8
leaq 0x127f8a(%rip), %rcx    # 0x168202
leaq 0x127b25(%rip), %r8     # 0x167da4
movl $0x1f6, %r9d            # imm = 0x1F6
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x40293
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x1c100
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq 0x70(%rax), %rax
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rcx
movsd (%rcx), %xmm0
movq 0x8(%rsp), %rcx
movsd 0x8(%rcx), %xmm1
callq *%rax
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x1c1a0
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/annotationsketch/graphics.c
// Function: gt_graphics_draw_line_p
void gt_graphics_draw_line_p(GtGraphics *g,
                             GraphicsDrawLineToFuncParams *params)
{
  gt_assert(g && g->c_class && params);
  gt_rwlock_wrlock(g->pvt->lock);
  g->c_class->draw_line(g, params->x, params->y, params->xto, params->yto,
                        params->color, params->stroke_width);
  gt_rwlock_unlock(g->pvt->lock);
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
cmpq $0x0, 0x30(%rsp)
je 0x40319
movq 0x30(%rsp), %rax
cmpq $0x0, (%rax)
je 0x40319
cmpq $0x0, 0x28(%rsp)
jne 0x40351
movq 0x173cb8(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x11dd3c(%rip), %rsi    # 0x15e066
leaq 0x127eb7(%rip), %rdx    # 0x1681e8
leaq 0x127ee4(%rip), %rcx    # 0x16821c
leaq 0x127a65(%rip), %r8     # 0x167da4
movl $0x208, %r9d            # imm = 0x208
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x40353
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x1c100
movq 0x30(%rsp), %rax
movq (%rax), %rax
movq 0x88(%rax), %rax
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rcx
movsd (%rcx), %xmm0
movq 0x28(%rsp), %rcx
movsd 0x8(%rcx), %xmm1
movq 0x28(%rsp), %rcx
movsd 0x10(%rcx), %xmm2
movq 0x28(%rsp), %rcx
movsd 0x18(%rcx), %xmm3
movq 0x28(%rsp), %rcx
addq $0x20, %rcx
movq 0x28(%rsp), %rdx
movsd 0x40(%rdx), %xmm4
movq (%rcx), %rdx
movq %rdx, (%rsp)
movq 0x8(%rcx), %rdx
movq %rdx, 0x8(%rsp)
movq 0x10(%rcx), %rdx
movq %rdx, 0x10(%rsp)
movq 0x18(%rcx), %rcx
movq %rcx, 0x18(%rsp)
callq *%rax
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x1c1a0
addq $0x38, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/annotationsketch/graphics.c
// Function: gt_graphics_draw_horizontal_line_p
void gt_graphics_draw_horizontal_line_p(GtGraphics *g,
                                        GraphicsDrawLineFuncParams *params)
{
  gt_assert(g && g->c_class && params);
  gt_rwlock_wrlock(g->pvt->lock);
  g->c_class->draw_horizontal_line(g, params->x, params->y, params->color,
                                   params->len, params->stroke_width);
  gt_rwlock_unlock(g->pvt->lock);
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
cmpq $0x0, 0x30(%rsp)
je 0x40419
movq 0x30(%rsp), %rax
cmpq $0x0, (%rax)
je 0x40419
cmpq $0x0, 0x28(%rsp)
jne 0x40451
movq 0x173bb8(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x11dc3c(%rip), %rsi    # 0x15e066
leaq 0x127db7(%rip), %rdx    # 0x1681e8
leaq 0x127dfc(%rip), %rcx    # 0x168234
leaq 0x127965(%rip), %r8     # 0x167da4
movl $0x21a, %r9d            # imm = 0x21A
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x40453
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x1c100
movq 0x30(%rsp), %rax
movq (%rax), %rax
movq 0x78(%rax), %rax
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rcx
movsd (%rcx), %xmm0
movq 0x28(%rsp), %rcx
movsd 0x8(%rcx), %xmm1
movq 0x28(%rsp), %rcx
addq $0x10, %rcx
movq 0x28(%rsp), %rdx
movsd 0x30(%rdx), %xmm2
movq 0x28(%rsp), %rdx
movsd 0x38(%rdx), %xmm3
movq (%rcx), %rdx
movq %rdx, (%rsp)
movq 0x8(%rcx), %rdx
movq %rdx, 0x8(%rsp)
movq 0x10(%rcx), %rdx
movq %rdx, 0x10(%rsp)
movq 0x18(%rcx), %rcx
movq %rcx, 0x18(%rsp)
callq *%rax
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x1c1a0
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/annotationsketch/graphics.c
// Function: gt_graphics_draw_vertical_line_p
void gt_graphics_draw_vertical_line_p(GtGraphics *g,
                                      GraphicsDrawLineFuncParams *params)
{
  gt_assert(g && g->c_class && params);
  gt_rwlock_wrlock(g->pvt->lock);
  g->c_class->draw_vertical_line(g, params->x, params->y, params->color,
                                 params->len, params->stroke_width);
  gt_rwlock_unlock(g->pvt->lock);
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
cmpq $0x0, 0x30(%rsp)
je 0x40519
movq 0x30(%rsp), %rax
cmpq $0x0, (%rax)
je 0x40519
cmpq $0x0, 0x28(%rsp)
jne 0x40551
movq 0x173ab8(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x11db3c(%rip), %rsi    # 0x15e066
leaq 0x127cb7(%rip), %rdx    # 0x1681e8
leaq 0x127d1f(%rip), %rcx    # 0x168257
leaq 0x127865(%rip), %r8     # 0x167da4
movl $0x224, %r9d            # imm = 0x224
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x40553
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x1c100
movq 0x30(%rsp), %rax
movq (%rax), %rax
movq 0x80(%rax), %rax
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rcx
movsd (%rcx), %xmm0
movq 0x28(%rsp), %rcx
movsd 0x8(%rcx), %xmm1
movq 0x28(%rsp), %rcx
addq $0x10, %rcx
movq 0x28(%rsp), %rdx
movsd 0x30(%rdx), %xmm2
movq 0x28(%rsp), %rdx
movsd 0x38(%rdx), %xmm3
movq (%rcx), %rdx
movq %rdx, (%rsp)
movq 0x8(%rcx), %rdx
movq %rdx, 0x8(%rsp)
movq 0x10(%rcx), %rdx
movq %rdx, 0x10(%rsp)
movq 0x18(%rcx), %rcx
movq %rcx, 0x18(%rsp)
callq *%rax
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x1c1a0
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/annotationsketch/graphics.c
// Function: gt_graphics_draw_box_p
void gt_graphics_draw_box_p(GtGraphics *g, GraphicsDrawBoxFuncParams *params)
{
  gt_assert(g && g->c_class && params);
  gt_rwlock_wrlock(g->pvt->lock);
  g->c_class->draw_box(g, params->x, params->y, params->width, params->height,
                       params->fill_color, params->arrow_status,
                       params->arrow_width, params->stroke_width,
                       params->stroke_color, params->dashed);
  gt_rwlock_unlock(g->pvt->lock);
}

// Assembly:
subq $0x58, %rsp
movq %rdi, 0x50(%rsp)
movq %rsi, 0x48(%rsp)
cmpq $0x0, 0x50(%rsp)
je 0x40619
movq 0x50(%rsp), %rax
cmpq $0x0, (%rax)
je 0x40619
cmpq $0x0, 0x48(%rsp)
jne 0x40651
movq 0x1739b8(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x11da3c(%rip), %rsi    # 0x15e066
leaq 0x127bb7(%rip), %rdx    # 0x1681e8
leaq 0x127c40(%rip), %rcx    # 0x168278
leaq 0x127765(%rip), %r8     # 0x167da4
movl $0x23a, %r9d            # imm = 0x23A
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x40653
movq 0x50(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x1c100
movq 0x50(%rsp), %rax
movq (%rax), %rax
movq 0x90(%rax), %rax
movq 0x50(%rsp), %rdi
movq 0x48(%rsp), %rcx
movsd (%rcx), %xmm0
movq 0x48(%rsp), %rcx
movsd 0x8(%rcx), %xmm1
movq 0x48(%rsp), %rcx
movsd 0x10(%rcx), %xmm2
movq 0x48(%rsp), %rcx
movsd 0x18(%rcx), %xmm3
movq 0x48(%rsp), %r8
addq $0x20, %r8
movq 0x48(%rsp), %rcx
movl 0x74(%rcx), %esi
movq 0x48(%rsp), %rcx
movsd 0x40(%rcx), %xmm4
movq 0x48(%rsp), %rcx
movsd 0x48(%rcx), %xmm5
movq 0x48(%rsp), %rdx
addq $0x50, %rdx
movq 0x48(%rsp), %rcx
cmpl $0x0, 0x70(%rcx)
setne %cl
movups (%rdx), %xmm6
movups 0x10(%rdx), %xmm7
movq %rsp, %rdx
movups %xmm7, 0x30(%rdx)
movups %xmm6, 0x20(%rdx)
movups (%r8), %xmm6
movups 0x10(%r8), %xmm7
movups %xmm7, 0x10(%rdx)
movups %xmm6, (%rdx)
movzbl %cl, %edx
andl $0x1, %edx
callq *%rax
movq 0x50(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x1c1a0
addq $0x58, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/annotationsketch/graphics.c
// Function: gt_graphics_draw_dashes_p
void gt_graphics_draw_dashes_p(GtGraphics *g,
                               GraphicsDrawSimpleFuncParams *params)
{
  gt_assert(g && g->c_class && params);
  gt_rwlock_wrlock(g->pvt->lock);
  g->c_class->draw_dashes(g, params->x, params->y, params->width,
                          params->height, params->arrow_status,
                          params->arrow_width, params->stroke_width,
                          params->stroke_color);
  gt_rwlock_unlock(g->pvt->lock);
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
cmpq $0x0, 0x30(%rsp)
je 0x40749
movq 0x30(%rsp), %rax
cmpq $0x0, (%rax)
je 0x40749
cmpq $0x0, 0x28(%rsp)
jne 0x40781
movq 0x173888(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x11d90c(%rip), %rsi    # 0x15e066
leaq 0x127a87(%rip), %rdx    # 0x1681e8
leaq 0x127b27(%rip), %rcx    # 0x16828f
leaq 0x127635(%rip), %r8     # 0x167da4
movl $0x251, %r9d            # imm = 0x251
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x40783
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x1c100
movq 0x30(%rsp), %rax
movq (%rax), %rax
movq 0x98(%rax), %rax
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rcx
movsd (%rcx), %xmm0
movq 0x28(%rsp), %rcx
movsd 0x8(%rcx), %xmm1
movq 0x28(%rsp), %rcx
movsd 0x10(%rcx), %xmm2
movq 0x28(%rsp), %rcx
movsd 0x18(%rcx), %xmm3
movq 0x28(%rsp), %rcx
movl 0x50(%rcx), %esi
movq 0x28(%rsp), %rcx
movsd 0x20(%rcx), %xmm4
movq 0x28(%rsp), %rcx
movsd 0x28(%rcx), %xmm5
movq 0x28(%rsp), %rcx
addq $0x30, %rcx
movq (%rcx), %rdx
movq %rdx, (%rsp)
movq 0x8(%rcx), %rdx
movq %rdx, 0x8(%rsp)
movq 0x10(%rcx), %rdx
movq %rdx, 0x10(%rsp)
movq 0x18(%rcx), %rcx
movq %rcx, 0x18(%rsp)
callq *%rax
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x1c1a0
addq $0x38, %rsp
retq
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/annotationsketch/graphics.c
// Function: gt_graphics_draw_rectangle_p
void gt_graphics_draw_rectangle_p(GtGraphics *g,
                                  GraphicsDrawRectFuncParams *params)
{
  gt_assert(g && g->c_class && params);
  gt_rwlock_wrlock(g->pvt->lock);
  g->c_class->draw_rectangle(g, params->x, params->y, params->filled,
                             params->fill_color, params->outlined,
                             params->outline_color, params->outline_width,
                             params->width, params->height);
  gt_rwlock_unlock(g->pvt->lock);
}

// Assembly:
subq $0x58, %rsp
movq %rdi, 0x50(%rsp)
movq %rsi, 0x48(%rsp)
cmpq $0x0, 0x50(%rsp)
je 0x40969
movq 0x50(%rsp), %rax
cmpq $0x0, (%rax)
je 0x40969
cmpq $0x0, 0x48(%rsp)
jne 0x409a1
movq 0x173668(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x11d6ec(%rip), %rsi    # 0x15e066
leaq 0x127867(%rip), %rdx    # 0x1681e8
leaq 0x12793a(%rip), %rcx    # 0x1682c2
leaq 0x127415(%rip), %r8     # 0x167da4
movl $0x275, %r9d            # imm = 0x275
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x409a3
movq 0x50(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x1c100
movq 0x50(%rsp), %rax
movq (%rax), %rax
movq 0xa8(%rax), %rax
movq 0x50(%rsp), %rdi
movq 0x48(%rsp), %rcx
movsd (%rcx), %xmm0
movq 0x48(%rsp), %rcx
movsd 0x8(%rcx), %xmm1
movq 0x48(%rsp), %rcx
movb 0x68(%rcx), %sil
movq 0x48(%rsp), %r8
addq $0x10, %r8
movq 0x48(%rsp), %rcx
movb 0x69(%rcx), %dl
movq 0x48(%rsp), %rcx
addq $0x30, %rcx
movq 0x48(%rsp), %r9
movsd 0x50(%r9), %xmm2
movq 0x48(%rsp), %r9
movsd 0x58(%r9), %xmm3
movq 0x48(%rsp), %r9
movsd 0x60(%r9), %xmm4
andb $0x1, %sil
andb $0x1, %dl
movzbl %sil, %esi
movq (%r8), %r9
movq %r9, (%rsp)
movq 0x8(%r8), %r9
movq %r9, 0x8(%rsp)
movq 0x10(%r8), %r9
movq %r9, 0x10(%rsp)
movq 0x18(%r8), %r8
movq %r8, 0x18(%rsp)
movzbl %dl, %edx
movq (%rcx), %r8
movq %r8, 0x20(%rsp)
movq 0x8(%rcx), %r8
movq %r8, 0x28(%rsp)
movq 0x10(%rcx), %r8
movq %r8, 0x30(%rsp)
movq 0x18(%rcx), %rcx
movq %rcx, 0x38(%rsp)
callq *%rax
movq 0x50(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x1c1a0
addq $0x58, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/annotationsketch/graphics.c
// Function: gt_graphics_draw_arrowhead_p
void gt_graphics_draw_arrowhead_p(GtGraphics *g,
                                  GraphicsDrawArrowheadFuncParams *params)
{
  gt_assert(g && g->c_class && params);
  gt_rwlock_wrlock(g->pvt->lock);
  g->c_class->draw_arrowhead(g, params->x, params->y, params->col,
                             params->arrow_status);
  gt_rwlock_unlock(g->pvt->lock);
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
cmpq $0x0, 0x30(%rsp)
je 0x40ab9
movq 0x30(%rsp), %rax
cmpq $0x0, (%rax)
je 0x40ab9
cmpq $0x0, 0x28(%rsp)
jne 0x40af1
movq 0x173518(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x11d59c(%rip), %rsi    # 0x15e066
leaq 0x127717(%rip), %rdx    # 0x1681e8
leaq 0x127807(%rip), %rcx    # 0x1682df
leaq 0x1272c5(%rip), %r8     # 0x167da4
movl $0x288, %r9d            # imm = 0x288
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x40af3
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x1c100
movq 0x30(%rsp), %rax
movq (%rax), %rax
movq 0xb0(%rax), %rax
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rcx
movsd (%rcx), %xmm0
movq 0x28(%rsp), %rcx
movsd 0x8(%rcx), %xmm1
movq 0x28(%rsp), %rcx
addq $0x10, %rcx
movq 0x28(%rsp), %rdx
movl 0x30(%rdx), %esi
movq (%rcx), %rdx
movq %rdx, (%rsp)
movq 0x8(%rcx), %rdx
movq %rdx, 0x8(%rsp)
movq 0x10(%rcx), %rdx
movq %rdx, 0x10(%rsp)
movq 0x18(%rcx), %rcx
movq %rcx, 0x18(%rsp)
callq *%rax
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x1c1a0
addq $0x38, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/annotationsketch/graphics.c
// Function: gt_graphics_draw_curve_data_p
void gt_graphics_draw_curve_data_p(GtGraphics *g,
                                   GraphicsDrawCurveFuncParams *params,
                                   double *data,
                                   GtUword rngstart,
                                   GtUword rngend,
                                   GtUword ndata,
                                   GtUword height)
{
  GtRange rng;
  gt_assert(g && g->c_class && params);
  gt_rwlock_wrlock(g->pvt->lock);
  rng.start = rngstart;
  rng.end = rngend;
  g->c_class->draw_curve(g, params->x, params->y, params->color, data,
                         ndata, rng, height);
  gt_rwlock_unlock(g->pvt->lock);
}

// Assembly:
subq $0x68, %rsp
movq 0x70(%rsp), %rax
movq %rdi, 0x60(%rsp)
movq %rsi, 0x58(%rsp)
movq %rdx, 0x50(%rsp)
movq %rcx, 0x48(%rsp)
movq %r8, 0x40(%rsp)
movq %r9, 0x38(%rsp)
cmpq $0x0, 0x60(%rsp)
je 0x40bc2
movq 0x60(%rsp), %rax
cmpq $0x0, (%rax)
je 0x40bc2
cmpq $0x0, 0x58(%rsp)
jne 0x40bfa
movq 0x17340f(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x11d493(%rip), %rsi    # 0x15e066
leaq 0x12760e(%rip), %rdx    # 0x1681e8
leaq 0x12771b(%rip), %rcx    # 0x1682fc
leaq 0x1271bc(%rip), %r8     # 0x167da4
movl $0x29e, %r9d            # imm = 0x29E
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x40bfc
movq 0x60(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x1c100
movq 0x48(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x40(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0x60(%rsp), %rax
movq (%rax), %rax
movq 0xb8(%rax), %rax
movq 0x60(%rsp), %rdi
movq 0x58(%rsp), %rcx
movsd (%rcx), %xmm0
movq 0x58(%rsp), %rcx
movsd 0x8(%rcx), %xmm1
movq 0x58(%rsp), %r10
addq $0x10, %r10
movq 0x50(%rsp), %rsi
movq 0x38(%rsp), %rdx
movq 0x70(%rsp), %r9
movq 0x28(%rsp), %rcx
movq 0x30(%rsp), %r8
movq (%r10), %r11
movq %r11, (%rsp)
movq 0x8(%r10), %r11
movq %r11, 0x8(%rsp)
movq 0x10(%r10), %r11
movq %r11, 0x10(%rsp)
movq 0x18(%r10), %r10
movq %r10, 0x18(%rsp)
callq *%rax
movq 0x60(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x1c1a0
addq $0x68, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/annotationsketch/graphics_cairo.c
// Function: gt_graphics_cairo_set_font
void gt_graphics_cairo_set_font(GtGraphics *gg, const char *family,
                                FontSlant slant, FontWeight weight, double size)
{
  char buf[BUFSIZ];
  GtGraphicsCairo *g = gt_graphics_cairo_cast(gg);
  gt_assert(g && family && g->layout);

  snprintf(buf, BUFSIZ, "%s %s %s %d",
           family,
           (slant == SLANT_ITALIC) ? "Italic" : "",
           (weight == WEIGHT_BOLD) ? "Bold" : "",
           (int) size);
  g->desc = pango_font_description_from_string(buf);
  gt_assert(g->desc);
  pango_layout_set_font_description(g->layout, g->desc);
  pango_font_description_free(g->desc);
  g->font_height = (int) size;
}

// Assembly:
subq $0x2038, %rsp           # imm = 0x2038
movq %rdi, 0x2030(%rsp)
movq %rsi, 0x2028(%rsp)
movl %edx, 0x2024(%rsp)
movl %ecx, 0x2020(%rsp)
movsd %xmm0, 0x2018(%rsp)
callq 0x40e60
movq %rax, %rdi
movq 0x2030(%rsp), %rsi
callq 0x3e730
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
je 0x40d17
cmpq $0x0, 0x2028(%rsp)
je 0x40d17
movq 0x8(%rsp), %rax
cmpq $0x0, 0x78(%rax)
jne 0x40d4f
movq 0x1732ba(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x11d33e(%rip), %rsi    # 0x15e066
leaq 0x127649(%rip), %rdx    # 0x168378
leaq 0x12765b(%rip), %rcx    # 0x168391
leaq 0x12766f(%rip), %r8     # 0x1683ac
movl $0x50, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x40d51
leaq 0x10(%rsp), %rdi
movq 0x2028(%rsp), %rcx
movl 0x2024(%rsp), %edx
leaq 0x12b177(%rip), %r8     # 0x16bee3
leaq 0x12766b(%rip), %rax    # 0x1683de
cmpl $0x1, %edx
cmoveq %rax, %r8
movl 0x2020(%rsp), %edx
leaq 0x12b15b(%rip), %r9     # 0x16bee3
leaq 0x127656(%rip), %rax    # 0x1683e5
cmpl $0x1, %edx
cmoveq %rax, %r9
cvttsd2si 0x2018(%rsp), %eax
movl $0x2000, %esi           # imm = 0x2000
leaq 0x127627(%rip), %rdx    # 0x1683d2
movl %eax, (%rsp)
movb $0x0, %al
callq 0xb9d0
leaq 0x10(%rsp), %rdi
callq 0xbad0
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x80(%rax)
movq 0x8(%rsp), %rax
cmpq $0x0, 0x80(%rax)
jne 0x40e15
movq 0x1731f4(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x11d278(%rip), %rsi    # 0x15e066
leaq 0x1275f5(%rip), %rdx    # 0x1683ea
leaq 0x127595(%rip), %rcx    # 0x168391
leaq 0x1275a9(%rip), %r8     # 0x1683ac
movl $0x58, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x40e17
movq 0x8(%rsp), %rax
movq 0x78(%rax), %rdi
movq 0x8(%rsp), %rax
movq 0x80(%rax), %rsi
callq 0xbc10
movq 0x8(%rsp), %rax
movq 0x80(%rax), %rdi
callq 0xb4a0
cvttsd2si 0x2018(%rsp), %ecx
movq 0x8(%rsp), %rax
movl %ecx, 0x88(%rax)
addq $0x2038, %rsp           # imm = 0x2038
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/annotationsketch/graphics_cairo.c
// Function: str_write_func
static cairo_status_t str_write_func(void *closure, const unsigned char *data,
                                     unsigned int length)
{
  GtStr *stream = closure;
  gt_assert(stream);
  gt_str_append_cstr_nt(stream, (char*) data, length);
  return CAIRO_STATUS_SUCCESS;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movl %edx, 0x14(%rsp)
movq 0x20(%rsp), %rax
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
jne 0x413dc
movq 0x172c2d(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x11ccb1(%rip), %rsi    # 0x15e066
leaq 0x1274d5(%rip), %rdx    # 0x168891
leaq 0x1275ca(%rip), %rcx    # 0x16898d
leaq 0x126fe2(%rip), %r8     # 0x1683ac
movl $0x43, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x413de
movq 0x8(%rsp), %rdi
movq 0x18(%rsp), %rsi
movl 0x14(%rsp), %eax
movl %eax, %edx
callq 0x19290
xorl %eax, %eax
addq $0x28, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/annotationsketch/graphics_cairo.c
// Function: gt_graphics_cairo_set_background_color
int gt_graphics_cairo_set_background_color(GtGraphics *gg, GtColor color)
{
  GtGraphicsCairo *g = gt_graphics_cairo_cast(gg);
  gt_assert(g);
  if (g->type != GT_GRAPHICS_PNG)
  {
    /* blending with a background is only supported with image output type */
    return -1;
  }
  else
  {
    g->bg_color.red = color.red;
    g->bg_color.green = color.green;
    g->bg_color.blue = color.blue;
    g->bg_color.alpha = color.alpha;
    return 0;
  }
}

// Assembly:
subq $0x28, %rsp
leaq 0x30(%rsp), %rax
movq %rax, 0x8(%rsp)
movq %rdi, 0x18(%rsp)
callq 0x40e60
movq %rax, %rdi
movq 0x18(%rsp), %rsi
callq 0x3e730
movq %rax, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0x4146a
movq 0x172b9f(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x11cc23(%rip), %rsi    # 0x15e066
leaq 0x1269b5(%rip), %rdx    # 0x167dff
leaq 0x127098(%rip), %rcx    # 0x1684e9
leaq 0x126f54(%rip), %r8     # 0x1683ac
movl $0x99, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x4146c
movq 0x10(%rsp), %rax
cmpl $0x1, 0x48(%rax)
je 0x41481
movl $0xffffffff, 0x24(%rsp) # imm = 0xFFFFFFFF
jmp 0x414c9
movq 0x8(%rsp), %rax
movsd (%rax), %xmm0
movq 0x10(%rsp), %rcx
movsd %xmm0, 0x20(%rcx)
movsd 0x8(%rax), %xmm0
movq 0x10(%rsp), %rcx
movsd %xmm0, 0x28(%rcx)
movsd 0x10(%rax), %xmm0
movq 0x10(%rsp), %rcx
movsd %xmm0, 0x30(%rcx)
movsd 0x18(%rax), %xmm0
movq 0x10(%rsp), %rax
movsd %xmm0, 0x38(%rax)
movl $0x0, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/annotationsketch/graphics_cairo.c
// Function: gt_graphics_cairo_draw_text
void gt_graphics_cairo_draw_text(GtGraphics *gg, double x, double y,
                                 const char *text)
{
  PangoRectangle ink;
  GtGraphicsCairo *g = gt_graphics_cairo_cast(gg);
  gt_assert(g && text && g->layout);

  pango_layout_set_text(g->layout, text, -1);

  /* get text extents */
  pango_layout_get_pixel_extents(g->layout, &ink, NULL);

  if (gt_double_smaller_double(g->width, x+ink.width))
    return;

  cairo_set_source_rgb(g->cr, 0, 0, 0);
  cairo_move_to(g->cr, x, y-g->font_height);
  pango_cairo_show_layout(g->cr, g->layout);
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movsd %xmm0, 0x28(%rsp)
movsd %xmm1, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
callq 0x40e60
movq %rax, %rdi
movq 0x30(%rsp), %rsi
callq 0x3e730
movq %rax, (%rsp)
cmpq $0x0, (%rsp)
je 0x4152a
cmpq $0x0, 0x18(%rsp)
je 0x4152a
movq (%rsp), %rax
cmpq $0x0, 0x78(%rax)
jne 0x41562
movq 0x172aa7(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x11cb2b(%rip), %rsi    # 0x15e066
leaq 0x126fce(%rip), %rdx    # 0x168510
leaq 0x126fde(%rip), %rcx    # 0x168527
leaq 0x126e5c(%rip), %r8     # 0x1683ac
movl $0xae, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x41564
movq (%rsp), %rax
movq 0x78(%rax), %rdi
movq 0x18(%rsp), %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0xb180
movq (%rsp), %rax
movq 0x78(%rax), %rdi
leaq 0x8(%rsp), %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0xb3a0
movq (%rsp), %rax
movsd 0x68(%rax), %xmm0
movsd 0x28(%rsp), %xmm1
cvtsi2sdl 0x10(%rsp), %xmm2
addsd %xmm2, %xmm1
callq 0x8c360
testb $0x1, %al
jne 0x415b5
jmp 0x415b7
jmp 0x4160b
movq (%rsp), %rax
movq 0x10(%rax), %rdi
xorps %xmm2, %xmm2
movaps %xmm2, %xmm0
movaps %xmm2, %xmm1
callq 0xb3c0
movq (%rsp), %rax
movq 0x10(%rax), %rdi
movsd 0x28(%rsp), %xmm0
movsd 0x20(%rsp), %xmm1
movq (%rsp), %rax
cvtsi2sdl 0x88(%rax), %xmm2
subsd %xmm2, %xmm1
callq 0xb220
movq (%rsp), %rax
movq 0x10(%rax), %rdi
movq (%rsp), %rax
movq 0x78(%rax), %rsi
callq 0xbbd0
addq $0x38, %rsp
retq
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/annotationsketch/graphics_cairo.c
// Function: gt_graphics_cairo_draw_text_clip
void gt_graphics_cairo_draw_text_clip(GtGraphics *gg, double x, double y,
                                      const char *text)
{
  GtGraphicsCairo *g = gt_graphics_cairo_cast(gg);
  gt_assert(g && text && g->layout);

  pango_layout_set_text(g->layout, text, -1);

  cairo_save(g->cr);
  cairo_rectangle(g->cr,
                  g->margin_x,
                  g->margin_y,
                  g->width-2*g->margin_x,
                  g->height-2*g->margin_y);
  cairo_clip(g->cr);
  cairo_set_source_rgb(g->cr, 0, 0, 0);
  cairo_move_to(g->cr, x, y-g->font_height);
  pango_cairo_show_layout(g->cr, g->layout);
  cairo_restore(g->cr);
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movsd %xmm0, 0x18(%rsp)
movsd %xmm1, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
callq 0x40e60
movq %rax, %rdi
movq 0x20(%rsp), %rsi
callq 0x3e730
movq %rax, (%rsp)
cmpq $0x0, (%rsp)
je 0x4165a
cmpq $0x0, 0x8(%rsp)
je 0x4165a
movq (%rsp), %rax
cmpq $0x0, 0x78(%rax)
jne 0x41692
movq 0x172977(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x11c9fb(%rip), %rsi    # 0x15e066
leaq 0x126e9e(%rip), %rdx    # 0x168510
leaq 0x126eca(%rip), %rcx    # 0x168543
leaq 0x126d2c(%rip), %r8     # 0x1683ac
movl $0xc1, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x41694
movq (%rsp), %rax
movq 0x78(%rax), %rdi
movq 0x8(%rsp), %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0xb180
movq (%rsp), %rax
movq 0x10(%rax), %rdi
callq 0xb3b0
movq (%rsp), %rax
movq 0x10(%rax), %rdi
movq (%rsp), %rax
movsd 0x50(%rax), %xmm0
movq (%rsp), %rax
movsd 0x58(%rax), %xmm1
movq (%rsp), %rax
movsd 0x68(%rax), %xmm2
movq (%rsp), %rax
movsd 0x50(%rax), %xmm3
addsd %xmm3, %xmm3
subsd %xmm3, %xmm2
movq (%rsp), %rax
movsd 0x60(%rax), %xmm3
movq (%rsp), %rax
movsd 0x58(%rax), %xmm4
addsd %xmm4, %xmm4
subsd %xmm4, %xmm3
callq 0xb2c0
movq (%rsp), %rax
movq 0x10(%rax), %rdi
callq 0xbb10
movq (%rsp), %rax
movq 0x10(%rax), %rdi
xorps %xmm2, %xmm2
movaps %xmm2, %xmm0
movaps %xmm2, %xmm1
callq 0xb3c0
movq (%rsp), %rax
movq 0x10(%rax), %rdi
movsd 0x18(%rsp), %xmm0
movsd 0x10(%rsp), %xmm1
movq (%rsp), %rax
cvtsi2sdl 0x88(%rax), %xmm2
subsd %xmm2, %xmm1
callq 0xb220
movq (%rsp), %rax
movq 0x10(%rax), %rdi
movq (%rsp), %rax
movq 0x78(%rax), %rsi
callq 0xbbd0
movq (%rsp), %rax
movq 0x10(%rax), %rdi
callq 0xba10
addq $0x28, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/annotationsketch/graphics_cairo.c
// Function: gt_graphics_cairo_draw_text_centered
void gt_graphics_cairo_draw_text_centered(GtGraphics *gg, double x, double y,
                                          const char *text)
{
  PangoRectangle ink;
  GtGraphicsCairo *g = gt_graphics_cairo_cast(gg);
  gt_assert(g && text && g->layout);

  pango_layout_set_text(g->layout, text, -1);

  /* get text extents */
  pango_layout_get_pixel_extents(g->layout, &ink, NULL);

  cairo_set_source_rgb(g->cr, 0, 0, 0);
  /* draw text w/ its center at the given coords */
  cairo_move_to(g->cr, x-(ink.width/2)-1, y-g->font_height);
  pango_cairo_show_layout(g->cr, g->layout);
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movsd %xmm0, 0x28(%rsp)
movsd %xmm1, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
callq 0x40e60
movq %rax, %rdi
movq 0x30(%rsp), %rsi
callq 0x3e730
movq %rax, (%rsp)
cmpq $0x0, (%rsp)
je 0x417ca
cmpq $0x0, 0x18(%rsp)
je 0x417ca
movq (%rsp), %rax
cmpq $0x0, 0x78(%rax)
jne 0x41802
movq 0x172807(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x11c88b(%rip), %rsi    # 0x15e066
leaq 0x126d2e(%rip), %rdx    # 0x168510
leaq 0x126d7b(%rip), %rcx    # 0x168564
leaq 0x126bbc(%rip), %r8     # 0x1683ac
movl $0xd7, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x41804
movq (%rsp), %rax
movq 0x78(%rax), %rdi
movq 0x18(%rsp), %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0xb180
movq (%rsp), %rax
movq 0x78(%rax), %rdi
leaq 0x8(%rsp), %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0xb3a0
movq (%rsp), %rax
movq 0x10(%rax), %rdi
xorps %xmm2, %xmm2
movaps %xmm2, %xmm0
movaps %xmm2, %xmm1
callq 0xb3c0
movq (%rsp), %rax
movq 0x10(%rax), %rdi
movsd 0x28(%rsp), %xmm0
movl 0x10(%rsp), %eax
movl $0x2, %ecx
cltd
idivl %ecx
cvtsi2sd %eax, %xmm1
subsd %xmm1, %xmm0
movsd 0x11cf97(%rip), %xmm1   # 0x15e808
subsd %xmm1, %xmm0
movsd 0x20(%rsp), %xmm1
movq (%rsp), %rax
cvtsi2sdl 0x88(%rax), %xmm2
subsd %xmm2, %xmm1
callq 0xb220
movq (%rsp), %rax
movq 0x10(%rax), %rdi
movq (%rsp), %rax
movq 0x78(%rax), %rsi
callq 0xbbd0
addq $0x38, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/annotationsketch/graphics_cairo.c
// Function: gt_graphics_cairo_draw_text_right
void gt_graphics_cairo_draw_text_right(GtGraphics *gg, double x, double y,
                                       const char *text)
{
  PangoRectangle ink;
  GtGraphicsCairo *g = gt_graphics_cairo_cast(gg);
  gt_assert(g && text && g->layout);

  pango_layout_set_text(g->layout, text, -1);

  /* get text extents */
  pango_layout_get_pixel_extents(g->layout, &ink, NULL);

  cairo_set_source_rgb(g->cr, 0, 0, 0);
  /* draw text w/ its right end at the given coords */
  cairo_move_to(g->cr, x-(ink.width)-1, y-g->font_height);
  pango_cairo_show_layout(g->cr, g->layout);
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movsd %xmm0, 0x28(%rsp)
movsd %xmm1, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
callq 0x40e60
movq %rax, %rdi
movq 0x30(%rsp), %rsi
callq 0x3e730
movq %rax, (%rsp)
cmpq $0x0, (%rsp)
je 0x418fa
cmpq $0x0, 0x18(%rsp)
je 0x418fa
movq (%rsp), %rax
cmpq $0x0, 0x78(%rax)
jne 0x41932
movq 0x1726d7(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x11c75b(%rip), %rsi    # 0x15e066
leaq 0x126bfe(%rip), %rdx    # 0x168510
leaq 0x126c70(%rip), %rcx    # 0x168589
leaq 0x126a8c(%rip), %r8     # 0x1683ac
movl $0xe9, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x41934
movq (%rsp), %rax
movq 0x78(%rax), %rdi
movq 0x18(%rsp), %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0xb180
movq (%rsp), %rax
movq 0x78(%rax), %rdi
leaq 0x8(%rsp), %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0xb3a0
movq (%rsp), %rax
movq 0x10(%rax), %rdi
xorps %xmm2, %xmm2
movaps %xmm2, %xmm0
movaps %xmm2, %xmm1
callq 0xb3c0
movq (%rsp), %rax
movq 0x10(%rax), %rdi
movsd 0x28(%rsp), %xmm0
cvtsi2sdl 0x10(%rsp), %xmm1
subsd %xmm1, %xmm0
movsd 0x11ce71(%rip), %xmm1   # 0x15e808
subsd %xmm1, %xmm0
movsd 0x20(%rsp), %xmm1
movq (%rsp), %rax
cvtsi2sdl 0x88(%rax), %xmm2
subsd %xmm2, %xmm1
callq 0xb220
movq (%rsp), %rax
movq 0x10(%rax), %rdi
movq (%rsp), %rax
movq 0x78(%rax), %rsi
callq 0xbbd0
addq $0x38, %rsp
retq
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/annotationsketch/graphics_cairo.c
// Function: gt_graphics_cairo_draw_colored_text
void gt_graphics_cairo_draw_colored_text(GtGraphics *gg, double x, double y,
                                         GtColor color, const char *text)
{
  GtGraphicsCairo *g = gt_graphics_cairo_cast(gg);
  gt_assert(g && text && g->layout);

  pango_layout_set_text(g->layout, text, -1);

  cairo_set_source_rgb(g->cr, color.red, color.green, color.blue);
  cairo_move_to(g->cr, x, y-g->font_height);
  pango_cairo_show_layout(g->cr, g->layout);
}

// Assembly:
subq $0x38, %rsp
leaq 0x40(%rsp), %rax
movq %rax, 0x8(%rsp)
movq %rdi, 0x30(%rsp)
movsd %xmm0, 0x28(%rsp)
movsd %xmm1, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
callq 0x40e60
movq %rax, %rdi
movq 0x30(%rsp), %rsi
callq 0x3e730
movq %rax, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x41a27
cmpq $0x0, 0x18(%rsp)
je 0x41a27
movq 0x10(%rsp), %rax
cmpq $0x0, 0x78(%rax)
jne 0x41a5f
movq 0x1725aa(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x11c62e(%rip), %rsi    # 0x15e066
leaq 0x126ad1(%rip), %rdx    # 0x168510
leaq 0x126b65(%rip), %rcx    # 0x1685ab
leaq 0x12695f(%rip), %r8     # 0x1683ac
movl $0xfa, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x41a61
movq 0x10(%rsp), %rax
movq 0x78(%rax), %rdi
movq 0x18(%rsp), %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0xb180
movq 0x8(%rsp), %rax
movq 0x10(%rsp), %rcx
movq 0x10(%rcx), %rdi
movsd (%rax), %xmm0
movsd 0x8(%rax), %xmm1
movsd 0x10(%rax), %xmm2
callq 0xb3c0
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rdi
movsd 0x28(%rsp), %xmm0
movsd 0x20(%rsp), %xmm1
movq 0x10(%rsp), %rax
cvtsi2sdl 0x88(%rax), %xmm2
subsd %xmm2, %xmm1
callq 0xb220
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rdi
movq 0x10(%rsp), %rax
movq 0x78(%rax), %rsi
callq 0xbbd0
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/annotationsketch/graphics_cairo.c
// Function: gt_graphics_cairo_set_margins
void gt_graphics_cairo_set_margins(GtGraphics *gg, double margin_x,
                                   double margin_y)
{
  GtGraphicsCairo *g = gt_graphics_cairo_cast(gg);
  gt_assert(g);
  g->margin_x = margin_x;
  g->margin_y = margin_y;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movsd %xmm0, 0x18(%rsp)
movsd %xmm1, 0x10(%rsp)
callq 0x40e60
movq %rax, %rdi
movq 0x20(%rsp), %rsi
callq 0x3e730
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
jne 0x41d5c
movq 0x1722ad(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x11c331(%rip), %rsi    # 0x15e066
leaq 0x1260c3(%rip), %rdx    # 0x167dff
leaq 0x12690f(%rip), %rcx    # 0x168652
leaq 0x126662(%rip), %r8     # 0x1683ac
movl $0x123, %r9d            # imm = 0x123
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x41d5e
movsd 0x18(%rsp), %xmm0
movq 0x8(%rsp), %rax
movsd %xmm0, 0x50(%rax)
movsd 0x10(%rsp), %xmm0
movq 0x8(%rsp), %rax
movsd %xmm0, 0x58(%rax)
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/annotationsketch/graphics_cairo.c
// Function: gt_graphics_cairo_draw_line
void gt_graphics_cairo_draw_line(GtGraphics *gg, double x, double y,
                                 double xto, double yto, GtColor color,
                                 double stroke_width)
{
  GtGraphicsCairo *g = gt_graphics_cairo_cast(gg);
  gt_assert(g);
  cairo_save(g->cr);
  cairo_move_to(g->cr, x, rnd_to_nhalf(y));
  cairo_line_to(g->cr, xto, rnd_to_nhalf(yto));
  cairo_set_line_width(g->cr, stroke_width);
  cairo_set_source_rgba(g->cr, color.red, color.green, color.blue, color.alpha);
  cairo_stroke(g->cr);
  cairo_restore(g->cr);
}

// Assembly:
subq $0x68, %rsp
leaq 0x70(%rsp), %rax
movq %rax, 0x28(%rsp)
movq %rdi, 0x60(%rsp)
movsd %xmm0, 0x58(%rsp)
movsd %xmm1, 0x50(%rsp)
movsd %xmm2, 0x48(%rsp)
movsd %xmm3, 0x40(%rsp)
movsd %xmm4, 0x38(%rsp)
callq 0x40e60
movq %rax, %rdi
movq 0x60(%rsp), %rsi
callq 0x3e730
movq %rax, 0x30(%rsp)
cmpq $0x0, 0x30(%rsp)
jne 0x41e18
movq 0x1721f1(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x11c275(%rip), %rsi    # 0x15e066
leaq 0x126007(%rip), %rdx    # 0x167dff
leaq 0x126871(%rip), %rcx    # 0x168670
leaq 0x1265a6(%rip), %r8     # 0x1683ac
movl $0x12d, %r9d            # imm = 0x12D
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x41e1a
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0xb3b0
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x8(%rsp)
movsd 0x58(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
movsd 0x1259ce(%rip), %xmm0   # 0x167818
addsd 0x50(%rsp), %xmm0
callq 0xba80
movq 0x8(%rsp), %rdi
movaps %xmm0, %xmm1
movsd 0x10(%rsp), %xmm0
movsd 0x1259ad(%rip), %xmm2   # 0x167818
addsd %xmm2, %xmm1
callq 0xb220
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x18(%rsp)
movsd 0x48(%rsp), %xmm0
movsd %xmm0, 0x20(%rsp)
movsd 0x125982(%rip), %xmm0   # 0x167818
addsd 0x40(%rsp), %xmm0
callq 0xba80
movq 0x18(%rsp), %rdi
movaps %xmm0, %xmm1
movsd 0x20(%rsp), %xmm0
movsd 0x125961(%rip), %xmm2   # 0x167818
addsd %xmm2, %xmm1
callq 0xb740
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rdi
movsd 0x38(%rsp), %xmm0
callq 0xb0a0
movq 0x28(%rsp), %rax
movq 0x30(%rsp), %rcx
movq 0x10(%rcx), %rdi
movsd (%rax), %xmm0
movsd 0x8(%rax), %xmm1
movsd 0x10(%rax), %xmm2
movsd 0x18(%rax), %xmm3
callq 0xb360
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0xbb80
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0xba10
addq $0x68, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/annotationsketch/graphics_cairo.c
// Function: gt_graphics_cairo_draw_horizontal_line
void gt_graphics_cairo_draw_horizontal_line(GtGraphics *gg, double x, double y,
                                            GtColor color, double width,
                                            double stroke_width)
{
  GtGraphicsCairo *g = gt_graphics_cairo_cast(gg);
  gt_assert(g);
  cairo_save(g->cr);
  cairo_set_line_width(g->cr, 1);
  cairo_move_to(g->cr, x, rnd_to_nhalf(y));
  cairo_rel_line_to(g->cr, width, 0);
  cairo_set_line_width(g->cr, stroke_width);
  cairo_set_source_rgba(g->cr, color.red, color.green, color.blue, color.alpha);
  cairo_stroke(g->cr);
  cairo_restore(g->cr);
}

// Assembly:
subq $0x48, %rsp
leaq 0x50(%rsp), %rax
movq %rax, 0x10(%rsp)
movq %rdi, 0x40(%rsp)
movsd %xmm0, 0x38(%rsp)
movsd %xmm1, 0x30(%rsp)
movsd %xmm2, 0x28(%rsp)
movsd %xmm3, 0x20(%rsp)
callq 0x40e60
movq %rax, %rdi
movq 0x40(%rsp), %rsi
callq 0x3e730
movq %rax, 0x18(%rsp)
cmpq $0x0, 0x18(%rsp)
jne 0x41fa2
movq 0x172067(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x11c0eb(%rip), %rsi    # 0x15e066
leaq 0x125e7d(%rip), %rdx    # 0x167dff
leaq 0x126703(%rip), %rcx    # 0x16868c
leaq 0x12641c(%rip), %r8     # 0x1683ac
movl $0x13c, %r9d            # imm = 0x13C
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x41fa4
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0xb3b0
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rdi
movsd 0x11c845(%rip), %xmm0   # 0x15e808
callq 0xb0a0
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, (%rsp)
movsd 0x38(%rsp), %xmm0
movsd %xmm0, 0x8(%rsp)
movsd 0x12582f(%rip), %xmm0   # 0x167818
addsd 0x30(%rsp), %xmm0
callq 0xba80
movq (%rsp), %rdi
movaps %xmm0, %xmm1
movsd 0x8(%rsp), %xmm0
movsd 0x12580f(%rip), %xmm2   # 0x167818
addsd %xmm2, %xmm1
callq 0xb220
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rdi
movsd 0x28(%rsp), %xmm0
xorps %xmm1, %xmm1
callq 0xb930
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rdi
movsd 0x20(%rsp), %xmm0
callq 0xb0a0
movq 0x10(%rsp), %rax
movq 0x18(%rsp), %rcx
movq 0x10(%rcx), %rdi
movsd (%rax), %xmm0
movsd 0x8(%rax), %xmm1
movsd 0x10(%rax), %xmm2
movsd 0x18(%rax), %xmm3
callq 0xb360
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0xbb80
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0xba10
addq $0x48, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/annotationsketch/graphics_cairo.c
// Function: gt_graphics_cairo_draw_vertical_line
void gt_graphics_cairo_draw_vertical_line(GtGraphics *gg, double x, double y,
                                          GtColor color, double length,
                                          double stroke_width)
{
  GtGraphicsCairo *g = gt_graphics_cairo_cast(gg);
  gt_assert(g);
  cairo_save(g->cr);
  cairo_move_to(g->cr, rnd_to_nhalf(x), rnd_to_nhalf(y));
  cairo_set_line_width(g->cr, 1);
  cairo_rel_line_to(g->cr, 0, floor(length));
  cairo_set_line_width(g->cr, stroke_width);
  cairo_set_source_rgba(g->cr, color.red, color.green, color.blue, color.alpha);
  cairo_stroke(g->cr);
  cairo_restore(g->cr);
}

// Assembly:
subq $0x58, %rsp
leaq 0x60(%rsp), %rax
movq %rax, 0x20(%rsp)
movq %rdi, 0x50(%rsp)
movsd %xmm0, 0x48(%rsp)
movsd %xmm1, 0x40(%rsp)
movsd %xmm2, 0x38(%rsp)
movsd %xmm3, 0x30(%rsp)
callq 0x40e60
movq %rax, %rdi
movq 0x50(%rsp), %rsi
callq 0x3e730
movq %rax, 0x28(%rsp)
cmpq $0x0, 0x28(%rsp)
jne 0x42112
movq 0x171ef7(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x11bf7b(%rip), %rsi    # 0x15e066
leaq 0x125d0d(%rip), %rdx    # 0x167dff
leaq 0x1265ba(%rip), %rcx    # 0x1686b3
leaq 0x1262ac(%rip), %r8     # 0x1683ac
movl $0x14c, %r9d            # imm = 0x14C
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x42114
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0xb3b0
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x8(%rsp)
movsd 0x1256e0(%rip), %xmm0   # 0x167818
addsd 0x48(%rsp), %xmm0
callq 0xba80
movsd 0x1256cd(%rip), %xmm1   # 0x167818
addsd %xmm1, %xmm0
movsd %xmm0, 0x10(%rsp)
movsd 0x1256bb(%rip), %xmm0   # 0x167818
addsd 0x40(%rsp), %xmm0
callq 0xba80
movq 0x8(%rsp), %rdi
movaps %xmm0, %xmm1
movsd 0x10(%rsp), %xmm0
movsd 0x12569a(%rip), %xmm2   # 0x167818
addsd %xmm2, %xmm1
callq 0xb220
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rdi
movsd 0x11c670(%rip), %xmm0   # 0x15e808
callq 0xb0a0
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x18(%rsp)
movsd 0x38(%rsp), %xmm0
callq 0xba80
movq 0x18(%rsp), %rdi
movaps %xmm0, %xmm1
xorps %xmm0, %xmm0
callq 0xb930
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rdi
movsd 0x30(%rsp), %xmm0
callq 0xb0a0
movq 0x20(%rsp), %rax
movq 0x28(%rsp), %rcx
movq 0x10(%rcx), %rdi
movsd (%rax), %xmm0
movsd 0x8(%rax), %xmm1
movsd 0x10(%rax), %xmm2
movsd 0x18(%rax), %xmm3
callq 0xb360
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0xbb80
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0xba10
addq $0x58, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/annotationsketch/graphics_cairo.c
// Function: gt_graphics_cairo_get_text_width
double gt_graphics_cairo_get_text_width(GtGraphics *gg, const char* text)
{
  PangoRectangle rect;
  GtGraphicsCairo *g = gt_graphics_cairo_cast(gg);
  gt_assert(g && text && g->layout);

  pango_layout_set_text(g->layout, text, -1);
  /* get text extents */

  pango_layout_get_pixel_extents(g->layout, &rect, NULL);

  gt_assert(gt_double_smaller_double(0, rect.width));
  return rect.width;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
callq 0x40e60
movq %rax, %rdi
movq 0x20(%rsp), %rsi
callq 0x3e730
movq %rax, (%rsp)
cmpq $0x0, (%rsp)
je 0x4226e
cmpq $0x0, 0x18(%rsp)
je 0x4226e
movq (%rsp), %rax
cmpq $0x0, 0x78(%rax)
jne 0x422a6
movq 0x171d63(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x11bde7(%rip), %rsi    # 0x15e066
leaq 0x12628a(%rip), %rdx    # 0x168510
leaq 0x12644b(%rip), %rcx    # 0x1686d8
leaq 0x126118(%rip), %r8     # 0x1683ac
movl $0x15b, %r9d            # imm = 0x15B
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x422a8
movq (%rsp), %rax
movq 0x78(%rax), %rdi
movq 0x18(%rsp), %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0xb180
movq (%rsp), %rax
movq 0x78(%rax), %rdi
leaq 0x8(%rsp), %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0xb3a0
cvtsi2sdl 0x10(%rsp), %xmm1
xorps %xmm0, %xmm0
callq 0x8c360
testb $0x1, %al
jne 0x4231f
movq 0x171cea(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x11bd6e(%rip), %rsi    # 0x15e066
leaq 0x1263fa(%rip), %rdx    # 0x1686f9
leaq 0x1263d2(%rip), %rcx    # 0x1686d8
leaq 0x12609f(%rip), %r8     # 0x1683ac
movl $0x162, %r9d            # imm = 0x162
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x42321
cvtsi2sdl 0x10(%rsp), %xmm0
addq $0x28, %rsp
retq
nopl (%rax)