#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ draw_gradient(float *, int, int, int, int, int, int, double,
                                 double, int /*<<< orphan*/);
int /*<<< orphan*/ draw_rectangle(float *, int, int, int /*<<< orphan*/,
                                  int /*<<< orphan*/, int, int, double);
void trakovi(float *sl, int w, int h) {
  int i, h1;
  draw_rectangle(sl, w, h, 0, 0, w, h, 0.5);
  h1 = h / 64;
  for (i = 0; i < 4; i++) {
    draw_gradient(sl, w, h, w / 8, (7 + 2 * i) * h1, 3 * w / 4, h1, 0.0, 0.99,
                  0);
    draw_gradient(sl, w, h, w / 8, (8 + 2 * i) * h1, 3 * w / 4, h1, 0.01, 1.0,
                  0);
  }
  for (i = 0; i < 4; i++) {
    draw_gradient(sl, w, h, w / 8, (21 + 2 * i) * h1, 3 * w / 4, h1, 0.0, 0.98,
                  0);
    draw_gradient(sl, w, h, w / 8, (22 + 2 * i) * h1, 3 * w / 4, h1, 0.02, 1.0,
                  0);
  }
  for (i = 0; i < 4; i++) {
    draw_gradient(sl, w, h, w / 8, (35 + 2 * i) * h1, 3 * w / 4, h1, 0.0, 0.95,
                  0);
    draw_gradient(sl, w, h, w / 8, (36 + 2 * i) * h1, 3 * w / 4, h1, 0.05, 1.0,
                  0);
  }
  for (i = 0; i < 4; i++) {
    draw_gradient(sl, w, h, w / 8, (49 + 2 * i) * h1, 3 * w / 4, h1, 0.0, 0.90,
                  0);
    draw_gradient(sl, w, h, w / 8, (50 + 2 * i) * h1, 3 * w / 4, h1, 0.1, 1.0,
                  0);
  }
}


x86 assembly (clang, -O0):
<trakovi>:
push   %rbp
mov    %rsp,%rbp
sub    $0x50,%rsp
mov    %rdi,-0x8(%rbp)
mov    %esi,-0xc(%rbp)
mov    %edx,-0x10(%rbp)
mov    -0x8(%rbp),%rdi
mov    -0xc(%rbp),%esi
mov    -0x10(%rbp),%edx
mov    -0xc(%rbp),%r9d
mov    -0x10(%rbp),%eax
xor    %r8d,%r8d
movsd  0xeb2(%rip),%xmm0
mov    %r8d,%ecx
mov    %eax,(%rsp)
call   1030 <draw_rectangle@plt>
mov    -0x10(%rbp),%eax
mov    $0x40,%ecx
cltd
idiv   %ecx
mov    %eax,-0x18(%rbp)
movl   $0x0,-0x14(%rbp)
cmpl   $0x4,-0x14(%rbp)
jge    124b <trakovi+0x12b>
mov    -0x8(%rbp),%rdi
mov    -0xc(%rbp),%esi
mov    -0x10(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0xc(%rbp),%eax
mov    $0x8,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x14(%rbp),%r8d
shl    $0x1,%r8d
add    $0x7,%r8d
imul   -0x18(%rbp),%r8d
imul   $0x3,-0xc(%rbp),%eax
mov    $0x4,%r9d
cltd
idiv   %r9d
mov    -0x20(%rbp),%edx
mov    %eax,%r9d
mov    -0x18(%rbp),%eax
xorps  %xmm0,%xmm0
movsd  0xe83(%rip),%xmm1
xor    %r10d,%r10d
mov    %eax,(%rsp)
movl   $0x0,0x8(%rsp)
call   1040 <draw_gradient@plt>
mov    -0x8(%rbp),%rdi
mov    -0xc(%rbp),%esi
mov    -0x10(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0xc(%rbp),%eax
mov    $0x8,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x14(%rbp),%r8d
shl    $0x1,%r8d
add    $0x8,%r8d
imul   -0x18(%rbp),%r8d
imul   $0x3,-0xc(%rbp),%eax
mov    $0x4,%r9d
cltd
idiv   %r9d
mov    -0x1c(%rbp),%edx
mov    %eax,%r9d
mov    -0x18(%rbp),%eax
movsd  0xe1e(%rip),%xmm0
movsd  0xde6(%rip),%xmm1
xor    %r10d,%r10d
mov    %eax,(%rsp)
movl   $0x0,0x8(%rsp)
call   1040 <draw_gradient@plt>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    116e <trakovi+0x4e>
movl   $0x0,-0x14(%rbp)
cmpl   $0x4,-0x14(%rbp)
jge    132f <trakovi+0x20f>
mov    -0x8(%rbp),%rdi
mov    -0xc(%rbp),%esi
mov    -0x10(%rbp),%eax
mov    %eax,-0x28(%rbp)
mov    -0xc(%rbp),%eax
mov    $0x8,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x14(%rbp),%r8d
shl    $0x1,%r8d
add    $0x15,%r8d
imul   -0x18(%rbp),%r8d
imul   $0x3,-0xc(%rbp),%eax
mov    $0x4,%r9d
cltd
idiv   %r9d
mov    -0x28(%rbp),%edx
mov    %eax,%r9d
mov    -0x18(%rbp),%eax
xorps  %xmm0,%xmm0
movsd  0xd8f(%rip),%xmm1
xor    %r10d,%r10d
mov    %eax,(%rsp)
movl   $0x0,0x8(%rsp)
call   1040 <draw_gradient@plt>
mov    -0x8(%rbp),%rdi
mov    -0xc(%rbp),%esi
mov    -0x10(%rbp),%eax
mov    %eax,-0x24(%rbp)
mov    -0xc(%rbp),%eax
mov    $0x8,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x14(%rbp),%r8d
shl    $0x1,%r8d
add    $0x16,%r8d
imul   -0x18(%rbp),%r8d
imul   $0x3,-0xc(%rbp),%eax
mov    $0x4,%r9d
cltd
idiv   %r9d
mov    -0x24(%rbp),%edx
mov    %eax,%r9d
mov    -0x18(%rbp),%eax
movsd  0xd2a(%rip),%xmm0
movsd  0xd02(%rip),%xmm1
xor    %r10d,%r10d
mov    %eax,(%rsp)
movl   $0x0,0x8(%rsp)
call   1040 <draw_gradient@plt>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    1252 <trakovi+0x132>
movl   $0x0,-0x14(%rbp)
cmpl   $0x4,-0x14(%rbp)
jge    1413 <trakovi+0x2f3>
mov    -0x8(%rbp),%rdi
mov    -0xc(%rbp),%esi
mov    -0x10(%rbp),%eax
mov    %eax,-0x30(%rbp)
mov    -0xc(%rbp),%eax
mov    $0x8,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x14(%rbp),%r8d
shl    $0x1,%r8d
add    $0x23,%r8d
imul   -0x18(%rbp),%r8d
imul   $0x3,-0xc(%rbp),%eax
mov    $0x4,%r9d
cltd
idiv   %r9d
mov    -0x30(%rbp),%edx
mov    %eax,%r9d
mov    -0x18(%rbp),%eax
xorps  %xmm0,%xmm0
movsd  0xc9b(%rip),%xmm1
xor    %r10d,%r10d
mov    %eax,(%rsp)
movl   $0x0,0x8(%rsp)
call   1040 <draw_gradient@plt>
mov    -0x8(%rbp),%rdi
mov    -0xc(%rbp),%esi
mov    -0x10(%rbp),%eax
mov    %eax,-0x2c(%rbp)
mov    -0xc(%rbp),%eax
mov    $0x8,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x14(%rbp),%r8d
shl    $0x1,%r8d
add    $0x24,%r8d
imul   -0x18(%rbp),%r8d
imul   $0x3,-0xc(%rbp),%eax
mov    $0x4,%r9d
cltd
idiv   %r9d
mov    -0x2c(%rbp),%edx
mov    %eax,%r9d
mov    -0x18(%rbp),%eax
movsd  0xc36(%rip),%xmm0
movsd  0xc1e(%rip),%xmm1
xor    %r10d,%r10d
mov    %eax,(%rsp)
movl   $0x0,0x8(%rsp)
call   1040 <draw_gradient@plt>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    1336 <trakovi+0x216>
movl   $0x0,-0x14(%rbp)
cmpl   $0x4,-0x14(%rbp)
jge    14f7 <trakovi+0x3d7>
mov    -0x8(%rbp),%rdi
mov    -0xc(%rbp),%esi
mov    -0x10(%rbp),%eax
mov    %eax,-0x38(%rbp)
mov    -0xc(%rbp),%eax
mov    $0x8,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x14(%rbp),%r8d
shl    $0x1,%r8d
add    $0x31,%r8d
imul   -0x18(%rbp),%r8d
imul   $0x3,-0xc(%rbp),%eax
mov    $0x4,%r9d
cltd
idiv   %r9d
mov    -0x38(%rbp),%edx
mov    %eax,%r9d
mov    -0x18(%rbp),%eax
xorps  %xmm0,%xmm0
movsd  0xba7(%rip),%xmm1
xor    %r10d,%r10d
mov    %eax,(%rsp)
movl   $0x0,0x8(%rsp)
call   1040 <draw_gradient@plt>
mov    -0x8(%rbp),%rdi
mov    -0xc(%rbp),%esi
mov    -0x10(%rbp),%eax
mov    %eax,-0x34(%rbp)
mov    -0xc(%rbp),%eax
mov    $0x8,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x14(%rbp),%r8d
shl    $0x1,%r8d
add    $0x32,%r8d
imul   -0x18(%rbp),%r8d
imul   $0x3,-0xc(%rbp),%eax
mov    $0x4,%r9d
cltd
idiv   %r9d
mov    -0x34(%rbp),%edx
mov    %eax,%r9d
mov    -0x18(%rbp),%eax
movsd  0xb3a(%rip),%xmm0
movsd  0xb3a(%rip),%xmm1
xor    %r10d,%r10d
mov    %eax,(%rsp)
movl   $0x0,0x8(%rsp)
call   1040 <draw_gradient@plt>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    141a <trakovi+0x2fa>
add    $0x50,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<trakovi>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x48,%rsp
mov    %edx,%ebp
mov    %esi,%r14d
sub    $0x8,%rsp
movsd  0xec1(%rip),%xmm0
mov    %rdi,%r15
xor    %ecx,%ecx
xor    %r8d,%r8d
mov    %esi,%r9d
push   %rbp
call   1030 <draw_rectangle@plt>
add    $0x10,%rsp
lea    0x3f(%rbp),%r13d
test   %ebp,%ebp
cmovns %ebp,%r13d
sar    $0x6,%r13d
lea    0x7(%r14),%r12d
test   %r14d,%r14d
cmovns %r14d,%r12d
sar    $0x3,%r12d
lea    (%r14,%r14,2),%eax
lea    (%r14,%r14,2),%ecx
add    $0x3,%ecx
test   %eax,%eax
cmovns %eax,%ecx
sar    $0x2,%ecx
mov    %ecx,%ebx
lea    0x0(,%r13,8),%eax
mov    %rax,0x28(%rsp)
mov    %eax,%r8d
sub    %r13d,%r8d
movsd  0xe67(%rip),%xmm1
xorps  %xmm0,%xmm0
mov    %r15,%rdi
mov    %r14d,%esi
mov    %ebp,%edx
mov    %r12d,%ecx
mov    %ebx,%r9d
push   $0x0
push   %r13
call   1040 <draw_gradient@plt>
add    $0x10,%rsp
movsd  0xe49(%rip),%xmm0
movsd  0xe49(%rip),%xmm1
mov    %r15,%rdi
mov    %r14d,%esi
mov    %ebp,%edx
mov    %r12d,%ecx
mov    0x28(%rsp),%r8
mov    %ebx,%r9d
push   $0x0
push   %r13
call   1040 <draw_gradient@plt>
add    $0x10,%rsp
lea    0x0(%r13,%r13,8),%r8d
mov    %r8,0x30(%rsp)
xorps  %xmm0,%xmm0
mov    %r15,%rdi
mov    %r14d,%esi
mov    %ebp,%edx
mov    %r12d,%ecx
mov    %ebx,%r9d
movsd  0xdf6(%rip),%xmm1
push   $0x0
push   %r13
call   1040 <draw_gradient@plt>
add    $0x10,%rsp
lea    0x0(%r13,%r13,1),%eax
lea    (%rax,%rax,4),%r8d
mov    %r15,%rdi
mov    %r14d,%esi
mov    %ebp,%edx
mov    %r12d,%ecx
mov    %ebx,%r9d
movsd  0xdd2(%rip),%xmm0
movsd  0xdd2(%rip),%xmm1
push   $0x0
push   %r13
call   1040 <draw_gradient@plt>
add    $0x10,%rsp
lea    0x0(%r13,%r13,4),%eax
mov    %rax,0x20(%rsp)
lea    0x0(%r13,%rax,2),%r8d
xorps  %xmm0,%xmm0
mov    %r15,%rdi
mov    %r14d,%esi
mov    %ebp,%edx
mov    %rbp,0x10(%rsp)
mov    %r12d,%ecx
mov    %ebx,%r9d
movsd  0xd88(%rip),%xmm1
push   $0x0
push   %r13
call   1040 <draw_gradient@plt>
add    $0x10,%rsp
lea    0x0(,%r13,4),%eax
mov    %rax,0x40(%rsp)
lea    (%rax,%rax,2),%r8d
mov    %r15,%rdi
mov    %r14d,%esi
mov    %r14,0x18(%rsp)
mov    %ebp,%edx
mov    %r12d,%ecx
mov    %ebx,%r9d
movsd  0xd57(%rip),%xmm0
movsd  0xd57(%rip),%xmm1
push   $0x0
push   %r13
call   1040 <draw_gradient@plt>
add    $0x10,%rsp
lea    0x0(%r13,%r13,2),%eax
mov    %rax,0x38(%rsp)
lea    0x0(%r13,%rax,4),%r8d
xorps  %xmm0,%xmm0
mov    %r15,%rdi
mov    %r14d,%esi
mov    0x10(%rsp),%rbp
mov    %ebp,%edx
mov    %r12d,%ecx
mov    %ebx,%r9d
mov    %ebx,(%rsp)
movsd  0xd0a(%rip),%xmm1
push   $0x0
push   %r13
call   1040 <draw_gradient@plt>
add    $0x10,%rsp
mov    %r13d,%r8d
shl    $0x4,%r8d
sub    %r13d,%r8d
sub    %r13d,%r8d
mov    %r15,0x8(%rsp)
mov    %r15,%rdi
mov    %r14d,%esi
mov    %ebp,%edx
mov    %r12d,%ecx
mov    %r12d,%r14d
mov    %r12d,0x4(%rsp)
mov    %ebx,%r9d
movsd  0xcd5(%rip),%xmm0
movsd  0xcd5(%rip),%xmm1
push   $0x0
push   %r13
call   1040 <draw_gradient@plt>
add    $0x10,%rsp
mov    0x20(%rsp),%rax
lea    0x0(%r13,%rax,4),%r15d
movsd  0xcbe(%rip),%xmm1
xorps  %xmm0,%xmm0
mov    0x8(%rsp),%rbp
mov    %rbp,%rdi
mov    0x18(%rsp),%rbx
mov    %ebx,%esi
mov    0x10(%rsp),%r12
mov    %r12d,%edx
mov    %r14d,%ecx
mov    %r15d,%r8d
mov    (%rsp),%r14d
mov    %r14d,%r9d
push   $0x0
push   %r13
call   1040 <draw_gradient@plt>
add    $0x10,%rsp
add    %r13d,%r15d
movsd  0xc87(%rip),%xmm0
mov    %rbp,%rdi
mov    %ebx,%esi
mov    %r12,%rbx
mov    %ebx,%edx
mov    0x4(%rsp),%r12d
mov    %r12d,%ecx
mov    %r15d,%r8d
mov    %r14d,%r15d
mov    %r14d,%r9d
movsd  0xc54(%rip),%xmm1
push   $0x0
push   %r13
call   1040 <draw_gradient@plt>
add    $0x10,%rsp
mov    0x38(%rsp),%r8
shl    $0x3,%r8d
sub    %r13d,%r8d
xorps  %xmm0,%xmm0
mov    %rbp,%rdi
mov    0x18(%rsp),%r14
mov    %r14d,%esi
mov    %ebx,%edx
mov    %r12d,%ecx
mov    %r15d,%r9d
movsd  0xc25(%rip),%xmm1
push   $0x0
push   %r13
call   1040 <draw_gradient@plt>
add    $0x10,%rsp
mov    0x28(%rsp),%rax
lea    (%rax,%rax,2),%r8d
mov    %rbp,%rdi
mov    %r14d,%esi
mov    %ebx,%edx
mov    %r12d,%ecx
mov    %r15d,%r9d
movsd  0xc01(%rip),%xmm0
movsd  0xbe9(%rip),%xmm1
push   $0x0
push   %r13
call   1040 <draw_gradient@plt>
add    $0x10,%rsp
mov    0x20(%rsp),%rax
lea    (%rax,%rax,4),%ebp
xorps  %xmm0,%xmm0
mov    0x8(%rsp),%rbx
mov    %rbx,%rdi
mov    %r14d,%esi
mov    0x10(%rsp),%rdx
mov    %r12d,%ecx
mov    %ebp,%r8d
mov    %r15d,%r9d
movsd  0xbb8(%rip),%xmm1
push   $0x0
push   %r13
call   1040 <draw_gradient@plt>
add    $0x10,%rsp
add    %r13d,%ebp
mov    %rbx,%rdi
mov    %r14d,%esi
mov    %r14,%rbx
mov    0x10(%rsp),%r14
mov    %r14d,%edx
mov    %r12d,%ecx
mov    %ebp,%r8d
mov    %r15d,%r9d
movsd  0xb8e(%rip),%xmm0
movsd  0xb76(%rip),%xmm1
push   $0x0
push   %r13
call   1040 <draw_gradient@plt>
add    $0x10,%rsp
mov    0x30(%rsp),%rax
lea    (%rax,%rax,2),%r15d
xorps  %xmm0,%xmm0
mov    0x8(%rsp),%rbp
mov    %rbp,%rdi
mov    %ebx,%esi
mov    %r14d,%edx
mov    0x4(%rsp),%ecx
mov    %r15d,%r8d
mov    (%rsp),%r9d
movsd  0xb45(%rip),%xmm1
push   $0x0
push   %r13
call   1040 <draw_gradient@plt>
add    $0x10,%rsp
add    %r13d,%r15d
mov    %rbp,%rdi
mov    %ebx,%esi
mov    %r14d,%edx
mov    0x4(%rsp),%r12d
mov    %r12d,%ecx
mov    %r15d,%r8d
mov    (%rsp),%r15d
mov    %r15d,%r9d
movsd  0xb1b(%rip),%xmm0
movsd  0xb03(%rip),%xmm1
push   $0x0
push   %r13
call   1040 <draw_gradient@plt>
add    $0x10,%rsp
imul   $0x23,%r13d,%r8d
movsd  0xb02(%rip),%xmm1
xorps  %xmm0,%xmm0
mov    0x8(%rsp),%rbp
mov    %rbp,%rdi
mov    %ebx,%esi
mov    %r14d,%edx
mov    %r12d,%ecx
mov    %r15d,%r9d
push   $0x0
push   %r13
call   1040 <draw_gradient@plt>
add    $0x10,%rsp
mov    0x40(%rsp),%rax
lea    (%rax,%rax,8),%r8d
movsd  0xad6(%rip),%xmm0
mov    %rbp,%rdi
mov    %ebx,%esi
mov    %r14,%rbx
mov    %ebx,%edx
mov    %r12d,%ecx
mov    %r15d,%r9d
movsd  0xa9e(%rip),%xmm1
push   $0x0
push   %r13
call   1040 <draw_gradient@plt>
add    $0x10,%rsp
mov    0x30(%rsp),%rax
lea    0x0(%r13,%rax,4),%r8d
xorps  %xmm0,%xmm0
mov    %rbp,%rdi
mov    0x18(%rsp),%r14
mov    %r14d,%esi
mov    %ebx,%edx
mov    %r12d,%ecx
mov    %r15d,%r9d
movsd  0xa81(%rip),%xmm1
push   $0x0
push   %r13
call   1040 <draw_gradient@plt>
add    $0x10,%rsp
imul   $0x26,%r13d,%r8d
mov    %rbp,%rdi
mov    %r14d,%esi
mov    %ebx,%edx
mov    %r12d,%ecx
mov    %r15d,%r9d
movsd  0xa62(%rip),%xmm0
movsd  0xa3a(%rip),%xmm1
push   $0x0
push   %r13
call   1040 <draw_gradient@plt>
add    $0x10,%rsp
imul   $0x27,%r13d,%r8d
xorps  %xmm0,%xmm0
mov    %rbp,%rdi
mov    %r14d,%esi
mov    %ebx,%edx
mov    %r12d,%ecx
mov    %r15d,%r9d
movsd  0xa28(%rip),%xmm1
push   $0x0
push   %r13
call   1040 <draw_gradient@plt>
add    $0x10,%rsp
mov    0x28(%rsp),%rax
lea    (%rax,%rax,4),%r8d
mov    %rbp,%rdi
mov    %r14d,%esi
mov    %ebx,%edx
mov    %r12d,%ecx
mov    %r15d,%r9d
movsd  0xa04(%rip),%xmm0
movsd  0x9dc(%rip),%xmm1
push   $0x0
push   %r13
call   1040 <draw_gradient@plt>
add    $0x10,%rsp
mov    0x20(%rsp),%rax
lea    0x0(%r13,%rax,8),%r8d
xorps  %xmm0,%xmm0
mov    %rbp,%rdi
mov    %r14d,%esi
mov    %ebx,%edx
mov    %r12d,%ecx
mov    %r15d,%r9d
movsd  0x9c4(%rip),%xmm1
push   $0x0
push   %r13
call   1040 <draw_gradient@plt>
add    $0x10,%rsp
imul   $0x2a,%r13d,%r8d
mov    %rbp,%rdi
mov    %r14d,%esi
mov    %ebx,%edx
mov    %r12d,%ecx
mov    %r15d,%r9d
movsd  0x9a5(%rip),%xmm0
movsd  0x97d(%rip),%xmm1
push   $0x0
push   %r13
call   1040 <draw_gradient@plt>
add    $0x10,%rsp
imul   $0x31,%r13d,%r8d
movsd  0x98c(%rip),%xmm1
xorps  %xmm0,%xmm0
mov    %rbp,%rdi
mov    %r14d,%esi
mov    %ebx,%edx
mov    %r12d,%ecx
mov    %r15d,%r9d
push   $0x0
push   %r13
call   1040 <draw_gradient@plt>
add    $0x10,%rsp
imul   $0x32,%r13d,%r8d
movsd  0x96a(%rip),%xmm0
mov    %rbp,%rdi
mov    %r14d,%esi
mov    %ebx,%edx
mov    %r12d,%ecx
mov    %r15d,%r9d
movsd  0x924(%rip),%xmm1
push   $0x0
push   %r13
call   1040 <draw_gradient@plt>
add    $0x10,%rsp
imul   $0x33,%r13d,%r8d
xorps  %xmm0,%xmm0
mov    %rbp,%rdi
mov    %r14d,%esi
mov    %ebx,%edx
mov    %r12d,%ecx
mov    %r15d,%r9d
movsd  0x922(%rip),%xmm1
push   $0x0
push   %r13
call   1040 <draw_gradient@plt>
add    $0x10,%rsp
imul   $0x34,%r13d,%r8d
mov    %rbp,%rdi
mov    %r14d,%esi
mov    %ebx,%edx
mov    %r12d,%ecx
mov    %r15d,%r9d
movsd  0x903(%rip),%xmm0
movsd  0x8cb(%rip),%xmm1
push   $0x0
push   %r13
call   1040 <draw_gradient@plt>
add    $0x10,%rsp
imul   $0x35,%r13d,%r8d
xorps  %xmm0,%xmm0
mov    %rbp,%rdi
mov    %r14d,%esi
mov    %ebx,%edx
mov    %r12d,%ecx
mov    %r15d,%r9d
movsd  0x8c9(%rip),%xmm1
push   $0x0
push   %r13
call   1040 <draw_gradient@plt>
add    $0x10,%rsp
imul   $0x36,%r13d,%r8d
mov    %rbp,%rdi
mov    %r14d,%esi
mov    %ebx,%edx
mov    %r12d,%ecx
mov    %r15d,%r9d
movsd  0x8aa(%rip),%xmm0
movsd  0x872(%rip),%xmm1
push   $0x0
push   %r13
call   1040 <draw_gradient@plt>
add    $0x10,%rsp
imul   $0x37,%r13d,%r8d
xorps  %xmm0,%xmm0
mov    %rbp,%rdi
mov    %r14d,%esi
mov    %ebx,%edx
mov    %r12d,%ecx
mov    %r15d,%r9d
movsd  0x870(%rip),%xmm1
push   $0x0
push   %r13
call   1040 <draw_gradient@plt>
add    $0x10,%rsp
imul   $0x38,%r13d,%r8d
mov    %rbp,%rdi
mov    %r14d,%esi
mov    %ebx,%edx
mov    %r12d,%ecx
mov    %r15d,%r9d
movsd  0x851(%rip),%xmm0
movsd  0x819(%rip),%xmm1
push   $0x0
push   %r13
call   1040 <draw_gradient@plt>
add    $0x58,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
define void @trakovi(float* %0, i32 %1, i32 %2) {
%4 = alloca float*
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
store float* %0, float** %4
store i32 %1, i32* %5
store i32 %2, i32* %6
%9 = load float*, float** %4
%10 = load i32, i32* %5
%11 = load i32, i32* %6
%12 = load i32, i32* %5
%13 = load i32, i32* %6
%14 = call i32 @draw_rectangle(float* %9, i32 %10, i32 %11, i32 0, i32 0, i32 %12, i32 %13, double 5.000000e-01)
%15 = load i32, i32* %6
%16 = sdiv i32 %15, 64
store i32 %16, i32* %8
store i32 0, i32* %7
br label %17
17: ; preds = %51, %3
%18 = load i32, i32* %7
%19 = icmp slt i32 %18, 4
br i1 %19, label %20, label %54
20: ; preds = %17
%21 = load float*, float** %4
%22 = load i32, i32* %5
%23 = load i32, i32* %6
%24 = load i32, i32* %5
%25 = sdiv i32 %24, 8
%26 = load i32, i32* %7
%27 = mul nsw i32 2, %26
%28 = add nsw i32 7, %27
%29 = load i32, i32* %8
%30 = mul nsw i32 %28, %29
%31 = load i32, i32* %5
%32 = mul nsw i32 3, %31
%33 = sdiv i32 %32, 4
%34 = load i32, i32* %8
%35 = call i32 @draw_gradient(float* %21, i32 %22, i32 %23, i32 %25, i32 %30, i32 %33, i32 %34, double 0.000000e+00, double 0x3FEFAE147AE147AE, i32 0)
%36 = load float*, float** %4
%37 = load i32, i32* %5
%38 = load i32, i32* %6
%39 = load i32, i32* %5
%40 = sdiv i32 %39, 8
%41 = load i32, i32* %7
%42 = mul nsw i32 2, %41
%43 = add nsw i32 8, %42
%44 = load i32, i32* %8
%45 = mul nsw i32 %43, %44
%46 = load i32, i32* %5
%47 = mul nsw i32 3, %46
%48 = sdiv i32 %47, 4
%49 = load i32, i32* %8
%50 = call i32 @draw_gradient(float* %36, i32 %37, i32 %38, i32 %40, i32 %45, i32 %48, i32 %49, double 1.000000e-02, double 1.000000e+00, i32 0)
br label %51
51: ; preds = %20
%52 = load i32, i32* %7
%53 = add nsw i32 %52, 1
store i32 %53, i32* %7
br label %17
54: ; preds = %17
store i32 0, i32* %7
br label %55
55: ; preds = %89, %54
%56 = load i32, i32* %7
%57 = icmp slt i32 %56, 4
br i1 %57, label %58, label %92
58: ; preds = %55
%59 = load float*, float** %4
%60 = load i32, i32* %5
%61 = load i32, i32* %6
%62 = load i32, i32* %5
%63 = sdiv i32 %62, 8
%64 = load i32, i32* %7
%65 = mul nsw i32 2, %64
%66 = add nsw i32 21, %65
%67 = load i32, i32* %8
%68 = mul nsw i32 %66, %67
%69 = load i32, i32* %5
%70 = mul nsw i32 3, %69
%71 = sdiv i32 %70, 4
%72 = load i32, i32* %8
%73 = call i32 @draw_gradient(float* %59, i32 %60, i32 %61, i32 %63, i32 %68, i32 %71, i32 %72, double 0.000000e+00, double 0x3FEF5C28F5C28F5C, i32 0)
%74 = load float*, float** %4
%75 = load i32, i32* %5
%76 = load i32, i32* %6
%77 = load i32, i32* %5
%78 = sdiv i32 %77, 8
%79 = load i32, i32* %7
%80 = mul nsw i32 2, %79
%81 = add nsw i32 22, %80
%82 = load i32, i32* %8
%83 = mul nsw i32 %81, %82
%84 = load i32, i32* %5
%85 = mul nsw i32 3, %84
%86 = sdiv i32 %85, 4
%87 = load i32, i32* %8
%88 = call i32 @draw_gradient(float* %74, i32 %75, i32 %76, i32 %78, i32 %83, i32 %86, i32 %87, double 2.000000e-02, double 1.000000e+00, i32 0)
br label %89
89: ; preds = %58
%90 = load i32, i32* %7
%91 = add nsw i32 %90, 1
store i32 %91, i32* %7
br label %55
92: ; preds = %55
store i32 0, i32* %7
br label %93
93: ; preds = %127, %92
%94 = load i32, i32* %7
%95 = icmp slt i32 %94, 4
br i1 %95, label %96, label %130
96: ; preds = %93
%97 = load float*, float** %4
%98 = load i32, i32* %5
%99 = load i32, i32* %6
%100 = load i32, i32* %5
%101 = sdiv i32 %100, 8
%102 = load i32, i32* %7
%103 = mul nsw i32 2, %102
%104 = add nsw i32 35, %103
%105 = load i32, i32* %8
%106 = mul nsw i32 %104, %105
%107 = load i32, i32* %5
%108 = mul nsw i32 3, %107
%109 = sdiv i32 %108, 4
%110 = load i32, i32* %8
%111 = call i32 @draw_gradient(float* %97, i32 %98, i32 %99, i32 %101, i32 %106, i32 %109, i32 %110, double 0.000000e+00, double 0x3FEE666666666666, i32 0)
%112 = load float*, float** %4
%113 = load i32, i32* %5
%114 = load i32, i32* %6
%115 = load i32, i32* %5
%116 = sdiv i32 %115, 8
%117 = load i32, i32* %7
%118 = mul nsw i32 2, %117
%119 = add nsw i32 36, %118
%120 = load i32, i32* %8
%121 = mul nsw i32 %119, %120
%122 = load i32, i32* %5
%123 = mul nsw i32 3, %122
%124 = sdiv i32 %123, 4
%125 = load i32, i32* %8
%126 = call i32 @draw_gradient(float* %112, i32 %113, i32 %114, i32 %116, i32 %121, i32 %124, i32 %125, double 5.000000e-02, double 1.000000e+00, i32 0)
br label %127
127: ; preds = %96
%128 = load i32, i32* %7
%129 = add nsw i32 %128, 1
store i32 %129, i32* %7
br label %93
130: ; preds = %93
store i32 0, i32* %7
br label %131
131: ; preds = %165, %130
%132 = load i32, i32* %7
%133 = icmp slt i32 %132, 4
br i1 %133, label %134, label %168
134: ; preds = %131
%135 = load float*, float** %4
%136 = load i32, i32* %5
%137 = load i32, i32* %6
%138 = load i32, i32* %5
%139 = sdiv i32 %138, 8
%140 = load i32, i32* %7
%141 = mul nsw i32 2, %140
%142 = add nsw i32 49, %141
%143 = load i32, i32* %8
%144 = mul nsw i32 %142, %143
%145 = load i32, i32* %5
%146 = mul nsw i32 3, %145
%147 = sdiv i32 %146, 4
%148 = load i32, i32* %8
%149 = call i32 @draw_gradient(float* %135, i32 %136, i32 %137, i32 %139, i32 %144, i32 %147, i32 %148, double 0.000000e+00, double 9.000000e-01, i32 0)
%150 = load float*, float** %4
%151 = load i32, i32* %5
%152 = load i32, i32* %6
%153 = load i32, i32* %5
%154 = sdiv i32 %153, 8
%155 = load i32, i32* %7
%156 = mul nsw i32 2, %155
%157 = add nsw i32 50, %156
%158 = load i32, i32* %8
%159 = mul nsw i32 %157, %158
%160 = load i32, i32* %5
%161 = mul nsw i32 3, %160
%162 = sdiv i32 %161, 4
%163 = load i32, i32* %8
%164 = call i32 @draw_gradient(float* %150, i32 %151, i32 %152, i32 %154, i32 %159, i32 %162, i32 %163, double 1.000000e-01, double 1.000000e+00, i32 0)
br label %165
165: ; preds = %134
%166 = load i32, i32* %7
%167 = add nsw i32 %166, 1
store i32 %167, i32* %7
br label %131
168: ; preds = %131
ret void
}

LLVM IR (-O2):
define void @trakovi(float* %0, i32 %1, i32 %2) {
%4 = tail call i32 @draw_rectangle(float* %0, i32 %1, i32 %2, i32 0, i32 0, i32 %1, i32 %2, double 5.000000e-01)
%5 = sdiv i32 %2, 64
%6 = sdiv i32 %1, 8
%7 = mul nsw i32 %1, 3
%8 = sdiv i32 %7, 4
%9 = mul nsw i32 %5, 7
%10 = tail call i32 @draw_gradient(float* %0, i32 %1, i32 %2, i32 %6, i32 %9, i32 %8, i32 %5, double 0.000000e+00, double 0x3FEFAE147AE147AE, i32 0)
%11 = shl nsw i32 %5, 3
%12 = tail call i32 @draw_gradient(float* %0, i32 %1, i32 %2, i32 %6, i32 %11, i32 %8, i32 %5, double 1.000000e-02, double 1.000000e+00, i32 0)
%13 = mul nsw i32 %5, 9
%14 = tail call i32 @draw_gradient(float* %0, i32 %1, i32 %2, i32 %6, i32 %13, i32 %8, i32 %5, double 0.000000e+00, double 0x3FEFAE147AE147AE, i32 0)
%15 = mul nsw i32 %5, 10
%16 = tail call i32 @draw_gradient(float* %0, i32 %1, i32 %2, i32 %6, i32 %15, i32 %8, i32 %5, double 1.000000e-02, double 1.000000e+00, i32 0)
%17 = mul nsw i32 %5, 11
%18 = tail call i32 @draw_gradient(float* %0, i32 %1, i32 %2, i32 %6, i32 %17, i32 %8, i32 %5, double 0.000000e+00, double 0x3FEFAE147AE147AE, i32 0)
%19 = mul nsw i32 %5, 12
%20 = tail call i32 @draw_gradient(float* %0, i32 %1, i32 %2, i32 %6, i32 %19, i32 %8, i32 %5, double 1.000000e-02, double 1.000000e+00, i32 0)
%21 = mul nsw i32 %5, 13
%22 = tail call i32 @draw_gradient(float* %0, i32 %1, i32 %2, i32 %6, i32 %21, i32 %8, i32 %5, double 0.000000e+00, double 0x3FEFAE147AE147AE, i32 0)
%23 = mul nsw i32 %5, 14
%24 = tail call i32 @draw_gradient(float* %0, i32 %1, i32 %2, i32 %6, i32 %23, i32 %8, i32 %5, double 1.000000e-02, double 1.000000e+00, i32 0)
%25 = mul nsw i32 %5, 21
%26 = tail call i32 @draw_gradient(float* %0, i32 %1, i32 %2, i32 %6, i32 %25, i32 %8, i32 %5, double 0.000000e+00, double 0x3FEF5C28F5C28F5C, i32 0)
%27 = mul nsw i32 %5, 22
%28 = tail call i32 @draw_gradient(float* %0, i32 %1, i32 %2, i32 %6, i32 %27, i32 %8, i32 %5, double 2.000000e-02, double 1.000000e+00, i32 0)
%29 = mul nsw i32 %5, 23
%30 = tail call i32 @draw_gradient(float* %0, i32 %1, i32 %2, i32 %6, i32 %29, i32 %8, i32 %5, double 0.000000e+00, double 0x3FEF5C28F5C28F5C, i32 0)
%31 = mul nsw i32 %5, 24
%32 = tail call i32 @draw_gradient(float* %0, i32 %1, i32 %2, i32 %6, i32 %31, i32 %8, i32 %5, double 2.000000e-02, double 1.000000e+00, i32 0)
%33 = mul nsw i32 %5, 25
%34 = tail call i32 @draw_gradient(float* %0, i32 %1, i32 %2, i32 %6, i32 %33, i32 %8, i32 %5, double 0.000000e+00, double 0x3FEF5C28F5C28F5C, i32 0)
%35 = mul nsw i32 %5, 26
%36 = tail call i32 @draw_gradient(float* %0, i32 %1, i32 %2, i32 %6, i32 %35, i32 %8, i32 %5, double 2.000000e-02, double 1.000000e+00, i32 0)
%37 = mul nsw i32 %5, 27
%38 = tail call i32 @draw_gradient(float* %0, i32 %1, i32 %2, i32 %6, i32 %37, i32 %8, i32 %5, double 0.000000e+00, double 0x3FEF5C28F5C28F5C, i32 0)
%39 = mul nsw i32 %5, 28
%40 = tail call i32 @draw_gradient(float* %0, i32 %1, i32 %2, i32 %6, i32 %39, i32 %8, i32 %5, double 2.000000e-02, double 1.000000e+00, i32 0)
%41 = mul nsw i32 %5, 35
%42 = tail call i32 @draw_gradient(float* %0, i32 %1, i32 %2, i32 %6, i32 %41, i32 %8, i32 %5, double 0.000000e+00, double 0x3FEE666666666666, i32 0)
%43 = mul nsw i32 %5, 36
%44 = tail call i32 @draw_gradient(float* %0, i32 %1, i32 %2, i32 %6, i32 %43, i32 %8, i32 %5, double 5.000000e-02, double 1.000000e+00, i32 0)
%45 = mul nsw i32 %5, 37
%46 = tail call i32 @draw_gradient(float* %0, i32 %1, i32 %2, i32 %6, i32 %45, i32 %8, i32 %5, double 0.000000e+00, double 0x3FEE666666666666, i32 0)
%47 = mul nsw i32 %5, 38
%48 = tail call i32 @draw_gradient(float* %0, i32 %1, i32 %2, i32 %6, i32 %47, i32 %8, i32 %5, double 5.000000e-02, double 1.000000e+00, i32 0)
%49 = mul nsw i32 %5, 39
%50 = tail call i32 @draw_gradient(float* %0, i32 %1, i32 %2, i32 %6, i32 %49, i32 %8, i32 %5, double 0.000000e+00, double 0x3FEE666666666666, i32 0)
%51 = mul nsw i32 %5, 40
%52 = tail call i32 @draw_gradient(float* %0, i32 %1, i32 %2, i32 %6, i32 %51, i32 %8, i32 %5, double 5.000000e-02, double 1.000000e+00, i32 0)
%53 = mul nsw i32 %5, 41
%54 = tail call i32 @draw_gradient(float* %0, i32 %1, i32 %2, i32 %6, i32 %53, i32 %8, i32 %5, double 0.000000e+00, double 0x3FEE666666666666, i32 0)
%55 = mul nsw i32 %5, 42
%56 = tail call i32 @draw_gradient(float* %0, i32 %1, i32 %2, i32 %6, i32 %55, i32 %8, i32 %5, double 5.000000e-02, double 1.000000e+00, i32 0)
%57 = mul nsw i32 %5, 49
%58 = tail call i32 @draw_gradient(float* %0, i32 %1, i32 %2, i32 %6, i32 %57, i32 %8, i32 %5, double 0.000000e+00, double 9.000000e-01, i32 0)
%59 = mul nsw i32 %5, 50
%60 = tail call i32 @draw_gradient(float* %0, i32 %1, i32 %2, i32 %6, i32 %59, i32 %8, i32 %5, double 1.000000e-01, double 1.000000e+00, i32 0)
%61 = mul nsw i32 %5, 51
%62 = tail call i32 @draw_gradient(float* %0, i32 %1, i32 %2, i32 %6, i32 %61, i32 %8, i32 %5, double 0.000000e+00, double 9.000000e-01, i32 0)
%63 = mul nsw i32 %5, 52
%64 = tail call i32 @draw_gradient(float* %0, i32 %1, i32 %2, i32 %6, i32 %63, i32 %8, i32 %5, double 1.000000e-01, double 1.000000e+00, i32 0)
%65 = mul nsw i32 %5, 53
%66 = tail call i32 @draw_gradient(float* %0, i32 %1, i32 %2, i32 %6, i32 %65, i32 %8, i32 %5, double 0.000000e+00, double 9.000000e-01, i32 0)
%67 = mul nsw i32 %5, 54
%68 = tail call i32 @draw_gradient(float* %0, i32 %1, i32 %2, i32 %6, i32 %67, i32 %8, i32 %5, double 1.000000e-01, double 1.000000e+00, i32 0)
%69 = mul nsw i32 %5, 55
%70 = tail call i32 @draw_gradient(float* %0, i32 %1, i32 %2, i32 %6, i32 %69, i32 %8, i32 %5, double 0.000000e+00, double 9.000000e-01, i32 0)
%71 = mul nsw i32 %5, 56
%72 = tail call i32 @draw_gradient(float* %0, i32 %1, i32 %2, i32 %6, i32 %71, i32 %8, i32 %5, double 1.000000e-01, double 1.000000e+00, i32 0)
ret void
}