// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/annotationsketch/style.c
// Function: gt_style_set_color
void gt_style_set_color(GtStyle *sty, const char *section, const char *key,
                        const GtColor *color)
{
#ifndef NDEBUG
  int stack_size;
#endif
  int i = 0;
  gt_assert(sty && section && key && color);
  gt_rwlock_wrlock(sty->lock);
#ifndef NDEBUG
  stack_size = lua_gettop(sty->L);
#endif
  i = style_find_section_for_setting(sty, section);
  lua_getfield(sty->L, -1, key);
  i++;
  if (lua_isnil(sty->L, -1)) {
    lua_pop(sty->L, 1);
    style_lua_new_table(sty->L, key);
    lua_getfield(sty->L, -1, key);
  }
  lua_pushstring(sty->L, "red");
  lua_pushnumber(sty->L, color->red);
  lua_settable(sty->L, -3);
  lua_pushstring(sty->L, "green");
  lua_pushnumber(sty->L, color->green);
  lua_settable(sty->L, -3);
  lua_pushstring(sty->L, "blue");
  lua_pushnumber(sty->L, color->blue);
  lua_settable(sty->L, -3);
  lua_pushstring(sty->L, "alpha");
  lua_pushnumber(sty->L, color->alpha);
  lua_settable(sty->L, -3);
  lua_pop(sty->L, i);
  gt_assert(lua_gettop(sty->L) == stack_size);
  gt_rwlock_unlock(sty->lock);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rsi, %xmm0
movq %rdi, %xmm1
punpcklqdq %xmm0, %xmm1    # xmm1 = xmm1[0],xmm0[0]
movq %rcx, %xmm0
movq %rdx, %xmm2
punpcklqdq %xmm0, %xmm2    # xmm2 = xmm2[0],xmm0[0]
pxor %xmm0, %xmm0
pcmpeqd %xmm0, %xmm2
pcmpeqd %xmm0, %xmm1
movdqa %xmm1, %xmm0
shufps $0xdd, %xmm2, %xmm0     # xmm0 = xmm0[1,3],xmm2[1,3]
shufps $0x88, %xmm2, %xmm1     # xmm1 = xmm1[0,2],xmm2[0,2]
andps %xmm0, %xmm1
movmskps %xmm1, %eax
testl %eax, %eax
jne 0x53fd6
movq %rcx, %r14
movq %rdx, %r15
movq %rsi, %r12
movq %rdi, %rbx
movq 0x10(%rdi), %rdi
callq 0x3d934
movq (%rbx), %rdi
callq 0x578c5
movl %eax, %ebp
movq %rbx, %rdi
movq %r12, %rsi
callq 0x53fe0
movq (%rbx), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movq %r15, %rdx
callq 0x58b98
movq (%rbx), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x57c5c
testl %eax, %eax
jne 0x53f05
movq (%rbx), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x578d2
movq (%rbx), %rdi
movq %r15, %rsi
callq 0x540a4
movq (%rbx), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movq %r15, %rdx
callq 0x58b98
movq (%rbx), %rdi
leaq 0x9ca4a(%rip), %rsi     # 0xf0959
callq 0x58568
movq (%rbx), %rdi
movsd (%r14), %xmm0
callq 0x58362
movq (%rbx), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x58f22
movq (%rbx), %rdi
leaq 0x981af(%rip), %rsi     # 0xec0e7
callq 0x58568
movq (%rbx), %rdi
movsd 0x8(%r14), %xmm0
callq 0x58362
movq (%rbx), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x58f22
movq (%rbx), %rdi
leaq 0x9818b(%rip), %rsi     # 0xec0ed
callq 0x58568
movq (%rbx), %rdi
movsd 0x10(%r14), %xmm0
callq 0x58362
movq (%rbx), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x58f22
movq (%rbx), %rdi
leaq 0xa9304(%rip), %rsi     # 0xfd290
callq 0x58568
movq (%rbx), %rdi
movsd 0x18(%r14), %xmm0
callq 0x58362
movq (%rbx), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x58f22
movq (%rbx), %rdi
movl $0xfffffffc, %esi       # imm = 0xFFFFFFFC
callq 0x578d2
movq (%rbx), %rdi
callq 0x578c5
cmpl %ebp, %eax
jne 0x53fdb
movq 0x10(%rbx), %rdi
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x3d94f
callq 0x1804c
callq 0x18085