#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_rectangle(float *, int, int, int, int, int, int, float);
void stopnice_k(float *sl, int w, int h) {
  int j, n, w1, h1;
  float s, s1, s2;
  n = 8;
  w1 = w / n / 3;
  h1 = w1;
  if (h1 > h / 20)
    h1 = h / 20;
  for (j = 0; j < n; j++) {
    s = ((float)j + 0.5) / (float)n;
    draw_rectangle(sl, w, h, j * w / n, 0, w / n, h, s);
    s1 = s - 0.01;
    if (s1 < 0.0)
      s1 = 0.0;
    s2 = s + 0.01;
    if (s2 > 1.0)
      s2 = 1.0;
    draw_rectangle(sl, w, h, j * w / n + w1, 1 * h / 16, w1, h1, s1);
    draw_rectangle(sl, w, h, j * w / n + w1, 2 * h / 16, w1, h1, s2);
    s1 = s - 0.02;
    if (s1 < 0.0)
      s1 = 0.0;
    s2 = s + 0.02;
    if (s2 > 1.0)
      s2 = 1.0;
    draw_rectangle(sl, w, h, j * w / n + w1, 4 * h / 16, w1, h1, s1);
    draw_rectangle(sl, w, h, j * w / n + w1, 5 * h / 16, w1, h1, s2);
    s1 = s - 0.05;
    if (s1 < 0.0)
      s1 = 0.0;
    s2 = s + 0.05;
    if (s2 > 1.0)
      s2 = 1.0;
    draw_rectangle(sl, w, h, j * w / n + w1, 7 * h / 16, w1, h1, s1);
    draw_rectangle(sl, w, h, j * w / n + w1, 8 * h / 16, w1, h1, s2);
    s1 = s - 0.1;
    if (s1 < 0.0)
      s1 = 0.0;
    s2 = s + 0.1;
    if (s2 > 1.0)
      s2 = 1.0;
    draw_rectangle(sl, w, h, j * w / n + w1, 10 * h / 16, w1, h1, s1);
    draw_rectangle(sl, w, h, j * w / n + w1, 11 * h / 16, w1, h1, s2);
    s1 = s - 0.2;
    if (s1 < 0.0)
      s1 = 0.0;
    s2 = s + 0.2;
    if (s2 > 1.0)
      s2 = 1.0;
    draw_rectangle(sl, w, h, j * w / n + w1, 13 * h / 16, w1, w1, s1);
    draw_rectangle(sl, w, h, j * w / n + w1, 14 * h / 16, w1, w1, s2);
  }
}


x86 assembly (clang, -O0):
<stopnice_k>:
push   %rbp
mov    %rsp,%rbp
sub    $0x70,%rsp
mov    %rdi,-0x8(%rbp)
mov    %esi,-0xc(%rbp)
mov    %edx,-0x10(%rbp)
movl   $0x8,-0x18(%rbp)
mov    -0xc(%rbp),%eax
cltd
idivl  -0x18(%rbp)
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
mov    %eax,-0x30(%rbp)
mov    -0x10(%rbp),%eax
mov    $0x14,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x30(%rbp),%eax
cmp    %ecx,%eax
jle    116d <stopnice_k+0x5d>
mov    -0x10(%rbp),%eax
mov    $0x14,%ecx
cltd
idiv   %ecx
mov    %eax,-0x20(%rbp)
movl   $0x0,-0x14(%rbp)
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
jge    1737 <stopnice_k+0x627>
cvtsi2ssl -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xe77(%rip),%xmm1
addsd  %xmm1,%xmm0
cvtsi2ssl -0x18(%rbp),%xmm1
cvtss2sd %xmm1,%xmm1
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x24(%rbp)
mov    -0x8(%rbp),%rdi
mov    -0xc(%rbp),%esi
mov    -0x10(%rbp),%eax
mov    %eax,-0x34(%rbp)
mov    -0x14(%rbp),%eax
imul   -0xc(%rbp),%eax
cltd
idivl  -0x18(%rbp)
mov    %eax,%ecx
mov    -0xc(%rbp),%eax
cltd
idivl  -0x18(%rbp)
mov    -0x34(%rbp),%edx
mov    %eax,%r9d
mov    -0x10(%rbp),%eax
movss  -0x24(%rbp),%xmm0
xor    %r8d,%r8d
mov    %eax,(%rsp)
call   1030 <draw_rectangle@plt>
movss  -0x24(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xe0a(%rip),%xmm1
subsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x28(%rbp)
movss  -0x28(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
xorps  %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jbe    1221 <stopnice_k+0x111>
xorps  %xmm0,%xmm0
movss  %xmm0,-0x28(%rbp)
movss  -0x24(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xdce(%rip),%xmm1
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x2c(%rbp)
movss  -0x2c(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xdc0(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1267 <stopnice_k+0x157>
movss  0xdd6(%rip),%xmm0
movss  %xmm0,-0x2c(%rbp)
mov    -0x8(%rbp),%rdi
mov    -0xc(%rbp),%esi
mov    -0x10(%rbp),%eax
mov    %eax,-0x3c(%rbp)
mov    -0x14(%rbp),%eax
imul   -0xc(%rbp),%eax
cltd
idivl  -0x18(%rbp)
mov    %eax,%ecx
add    -0x1c(%rbp),%ecx
mov    -0x10(%rbp),%eax
shl    $0x0,%eax
mov    $0x10,%r8d
cltd
idiv   %r8d
mov    -0x3c(%rbp),%edx
mov    %eax,%r8d
mov    -0x1c(%rbp),%r9d
mov    -0x20(%rbp),%eax
movss  -0x28(%rbp),%xmm0
mov    %eax,(%rsp)
call   1030 <draw_rectangle@plt>
mov    -0x8(%rbp),%rdi
mov    -0xc(%rbp),%esi
mov    -0x10(%rbp),%eax
mov    %eax,-0x38(%rbp)
mov    -0x14(%rbp),%eax
imul   -0xc(%rbp),%eax
cltd
idivl  -0x18(%rbp)
mov    %eax,%ecx
add    -0x1c(%rbp),%ecx
mov    -0x10(%rbp),%eax
shl    $0x1,%eax
mov    $0x10,%r8d
cltd
idiv   %r8d
mov    -0x38(%rbp),%edx
mov    %eax,%r8d
mov    -0x1c(%rbp),%r9d
mov    -0x20(%rbp),%eax
movss  -0x2c(%rbp),%xmm0
mov    %eax,(%rsp)
call   1030 <draw_rectangle@plt>
movss  -0x24(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xd12(%rip),%xmm1
subsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x28(%rbp)
movss  -0x28(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
xorps  %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jbe    1331 <stopnice_k+0x221>
xorps  %xmm0,%xmm0
movss  %xmm0,-0x28(%rbp)
movss  -0x24(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xcd6(%rip),%xmm1
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x2c(%rbp)
movss  -0x2c(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xcb0(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1377 <stopnice_k+0x267>
movss  0xcc6(%rip),%xmm0
movss  %xmm0,-0x2c(%rbp)
mov    -0x8(%rbp),%rdi
mov    -0xc(%rbp),%esi
mov    -0x10(%rbp),%eax
mov    %eax,-0x44(%rbp)
mov    -0x14(%rbp),%eax
imul   -0xc(%rbp),%eax
cltd
idivl  -0x18(%rbp)
mov    %eax,%ecx
add    -0x1c(%rbp),%ecx
mov    -0x10(%rbp),%eax
shl    $0x2,%eax
mov    $0x10,%r8d
cltd
idiv   %r8d
mov    -0x44(%rbp),%edx
mov    %eax,%r8d
mov    -0x1c(%rbp),%r9d
mov    -0x20(%rbp),%eax
movss  -0x28(%rbp),%xmm0
mov    %eax,(%rsp)
call   1030 <draw_rectangle@plt>
mov    -0x8(%rbp),%rdi
mov    -0xc(%rbp),%esi
mov    -0x10(%rbp),%eax
mov    %eax,-0x40(%rbp)
mov    -0x14(%rbp),%eax
imul   -0xc(%rbp),%eax
cltd
idivl  -0x18(%rbp)
mov    %eax,%ecx
add    -0x1c(%rbp),%ecx
imul   $0x5,-0x10(%rbp),%eax
mov    $0x10,%r8d
cltd
idiv   %r8d
mov    -0x40(%rbp),%edx
mov    %eax,%r8d
mov    -0x1c(%rbp),%r9d
mov    -0x20(%rbp),%eax
movss  -0x2c(%rbp),%xmm0
mov    %eax,(%rsp)
call   1030 <draw_rectangle@plt>
movss  -0x24(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xc0c(%rip),%xmm1
subsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x28(%rbp)
movss  -0x28(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
xorps  %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jbe    143f <stopnice_k+0x32f>
xorps  %xmm0,%xmm0
movss  %xmm0,-0x28(%rbp)
movss  -0x24(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xbd0(%rip),%xmm1
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x2c(%rbp)
movss  -0x2c(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xba2(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1485 <stopnice_k+0x375>
movss  0xbb8(%rip),%xmm0
movss  %xmm0,-0x2c(%rbp)
mov    -0x8(%rbp),%rdi
mov    -0xc(%rbp),%esi
mov    -0x10(%rbp),%eax
mov    %eax,-0x4c(%rbp)
mov    -0x14(%rbp),%eax
imul   -0xc(%rbp),%eax
cltd
idivl  -0x18(%rbp)
mov    %eax,%ecx
add    -0x1c(%rbp),%ecx
imul   $0x7,-0x10(%rbp),%eax
mov    $0x10,%r8d
cltd
idiv   %r8d
mov    -0x4c(%rbp),%edx
mov    %eax,%r8d
mov    -0x1c(%rbp),%r9d
mov    -0x20(%rbp),%eax
movss  -0x28(%rbp),%xmm0
mov    %eax,(%rsp)
call   1030 <draw_rectangle@plt>
mov    -0x8(%rbp),%rdi
mov    -0xc(%rbp),%esi
mov    -0x10(%rbp),%eax
mov    %eax,-0x48(%rbp)
mov    -0x14(%rbp),%eax
imul   -0xc(%rbp),%eax
cltd
idivl  -0x18(%rbp)
mov    %eax,%ecx
add    -0x1c(%rbp),%ecx
mov    -0x10(%rbp),%eax
shl    $0x3,%eax
mov    $0x10,%r8d
cltd
idiv   %r8d
mov    -0x48(%rbp),%edx
mov    %eax,%r8d
mov    -0x1c(%rbp),%r9d
mov    -0x20(%rbp),%eax
movss  -0x2c(%rbp),%xmm0
mov    %eax,(%rsp)
call   1030 <draw_rectangle@plt>
movss  -0x24(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xb06(%rip),%xmm1
subsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x28(%rbp)
movss  -0x28(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
xorps  %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jbe    154d <stopnice_k+0x43d>
xorps  %xmm0,%xmm0
movss  %xmm0,-0x28(%rbp)
movss  -0x24(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xaca(%rip),%xmm1
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x2c(%rbp)
movss  -0x2c(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xa94(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1593 <stopnice_k+0x483>
movss  0xaaa(%rip),%xmm0
movss  %xmm0,-0x2c(%rbp)
mov    -0x8(%rbp),%rdi
mov    -0xc(%rbp),%esi
mov    -0x10(%rbp),%eax
mov    %eax,-0x54(%rbp)
mov    -0x14(%rbp),%eax
imul   -0xc(%rbp),%eax
cltd
idivl  -0x18(%rbp)
mov    %eax,%ecx
add    -0x1c(%rbp),%ecx
imul   $0xa,-0x10(%rbp),%eax
mov    $0x10,%r8d
cltd
idiv   %r8d
mov    -0x54(%rbp),%edx
mov    %eax,%r8d
mov    -0x1c(%rbp),%r9d
mov    -0x20(%rbp),%eax
movss  -0x28(%rbp),%xmm0
mov    %eax,(%rsp)
call   1030 <draw_rectangle@plt>
mov    -0x8(%rbp),%rdi
mov    -0xc(%rbp),%esi
mov    -0x10(%rbp),%eax
mov    %eax,-0x50(%rbp)
mov    -0x14(%rbp),%eax
imul   -0xc(%rbp),%eax
cltd
idivl  -0x18(%rbp)
mov    %eax,%ecx
add    -0x1c(%rbp),%ecx
imul   $0xb,-0x10(%rbp),%eax
mov    $0x10,%r8d
cltd
idiv   %r8d
mov    -0x50(%rbp),%edx
mov    %eax,%r8d
mov    -0x1c(%rbp),%r9d
mov    -0x20(%rbp),%eax
movss  -0x2c(%rbp),%xmm0
mov    %eax,(%rsp)
call   1030 <draw_rectangle@plt>
movss  -0x24(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xa02(%rip),%xmm1
subsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x28(%rbp)
movss  -0x28(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
xorps  %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jbe    1659 <stopnice_k+0x549>
xorps  %xmm0,%xmm0
movss  %xmm0,-0x28(%rbp)
movss  -0x24(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x9c6(%rip),%xmm1
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x2c(%rbp)
movss  -0x2c(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x988(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    169f <stopnice_k+0x58f>
movss  0x99e(%rip),%xmm0
movss  %xmm0,-0x2c(%rbp)
mov    -0x8(%rbp),%rdi
mov    -0xc(%rbp),%esi
mov    -0x10(%rbp),%eax
mov    %eax,-0x5c(%rbp)
mov    -0x14(%rbp),%eax
imul   -0xc(%rbp),%eax
cltd
idivl  -0x18(%rbp)
mov    %eax,%ecx
add    -0x1c(%rbp),%ecx
imul   $0xd,-0x10(%rbp),%eax
mov    $0x10,%r8d
cltd
idiv   %r8d
mov    -0x5c(%rbp),%edx
mov    %eax,%r8d
mov    -0x1c(%rbp),%r9d
mov    -0x1c(%rbp),%eax
movss  -0x28(%rbp),%xmm0
mov    %eax,(%rsp)
call   1030 <draw_rectangle@plt>
mov    -0x8(%rbp),%rdi
mov    -0xc(%rbp),%esi
mov    -0x10(%rbp),%eax
mov    %eax,-0x58(%rbp)
mov    -0x14(%rbp),%eax
imul   -0xc(%rbp),%eax
cltd
idivl  -0x18(%rbp)
mov    %eax,%ecx
add    -0x1c(%rbp),%ecx
imul   $0xe,-0x10(%rbp),%eax
mov    $0x10,%r8d
cltd
idiv   %r8d
mov    -0x58(%rbp),%edx
mov    %eax,%r8d
mov    -0x1c(%rbp),%r9d
mov    -0x1c(%rbp),%eax
movss  -0x2c(%rbp),%xmm0
mov    %eax,(%rsp)
call   1030 <draw_rectangle@plt>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    1174 <stopnice_k+0x64>
add    $0x70,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<stopnice_k>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x68,%rsp
lea    0x3(%rdx),%r8d
test   %edx,%edx
cmovns %edx,%r8d
lea    0x7(%rdx),%ebx
test   %edx,%edx
cmovns %edx,%ebx
lea    0xf(%rdx),%ebp
test   %edx,%edx
cmovns %edx,%ebp
lea    0x7(%rsi),%eax
test   %esi,%esi
cmovns %esi,%eax
sar    $0x3,%eax
mov    %eax,0x34(%rsp)
mov    %rsi,0x58(%rsp)
movslq %esi,%rax
imul   $0x2aaaaaab,%rax,%r15
mov    %r15,%rax
sar    $0x22,%rax
shr    $0x3f,%r15
add    %eax,%r15d
movslq %edx,%rax
imul   $0x66666667,%rax,%rsi
mov    %rsi,%rcx
sar    $0x23,%rcx
shr    $0x3f,%rsi
add    %ecx,%esi
cmp    %esi,%r15d
cmovle %r15d,%esi
mov    %rsi,0x48(%rsp)
sar    $0x4,%ebp
mov    %ebp,0x38(%rsp)
sar    $0x3,%ebx
mov    %ebx,0x3c(%rsp)
sar    $0x2,%r8d
mov    %r8d,0x40(%rsp)
lea    (%rax,%rax,4),%esi
add    $0xf,%esi
lea    (%rax,%rax,4),%ecx
test   %ecx,%ecx
cmovns %ecx,%esi
sar    $0x4,%esi
mov    %esi,0x30(%rsp)
lea    0x0(,%rax,8),%esi
sub    %eax,%esi
lea    0xf(%rsi),%ebp
test   %esi,%esi
cmovns %esi,%ebp
sar    $0x4,%ebp
mov    %ebp,0x2c(%rsp)
mov    %eax,%esi
shr    $0x1f,%esi
mov    %rdx,0x50(%rsp)
add    %edx,%esi
sar    %esi
mov    %esi,0x28(%rsp)
lea    (%rax,%rax,1),%edx
lea    (%rdx,%rdx,4),%esi
lea    (%rdx,%rdx,4),%edx
add    $0xf,%edx
test   %esi,%esi
cmovns %esi,%edx
sar    $0x4,%edx
mov    %edx,0x24(%rsp)
lea    (%rax,%rcx,2),%edx
lea    (%rax,%rcx,2),%ecx
add    $0xf,%ecx
test   %edx,%edx
cmovns %edx,%ecx
mov    %rdi,%r12
sar    $0x4,%ecx
mov    %ecx,0x20(%rsp)
lea    (%rax,%rax,2),%ecx
lea    (%rax,%rcx,4),%edx
lea    (%rax,%rcx,4),%esi
add    $0xf,%esi
test   %edx,%edx
cmovns %edx,%esi
mov    %eax,%ecx
shl    $0x4,%ecx
sub    %eax,%ecx
sub    %eax,%ecx
sar    $0x4,%esi
mov    %esi,0x1c(%rsp)
test   %ecx,%ecx
lea    0xf(%rcx),%eax
cmovns %ecx,%eax
sar    $0x4,%eax
mov    %eax,0x18(%rsp)
xor    %eax,%eax
xor    %ecx,%ecx
mov    0x50(%rsp),%r14
mov    0x58(%rsp),%rbx
mov    0x48(%rsp),%r13
mov    %ecx,0x44(%rsp)
mov    %rax,0x60(%rsp)
xorps  %xmm0,%xmm0
cvtsi2ss %ecx,%xmm0
cvtss2sd %xmm0,%xmm0
addsd  0xd94(%rip),%xmm0
mulsd  0xd94(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,0x10(%rsp)
lea    0x7(%rax),%ebp
test   %eax,%eax
cmovns %eax,%ebp
sar    $0x3,%ebp
mov    %r14d,(%rsp)
mov    %r12,%rdi
mov    %ebx,%esi
mov    %r14d,%edx
mov    %ebp,%ecx
xor    %r8d,%r8d
mov    0x34(%rsp),%r9d
call   1030 <draw_rectangle@plt>
movss  0x10(%rsp),%xmm0
xorps  %xmm2,%xmm2
cvtss2sd %xmm0,%xmm2
movsd  %xmm2,0x10(%rsp)
movaps %xmm2,%xmm0
addsd  0xd4e(%rip),%xmm0
xorps  %xmm1,%xmm1
cvtsd2ss %xmm0,%xmm1
xorps  %xmm0,%xmm0
maxss  %xmm1,%xmm0
movaps %xmm2,%xmm1
addsd  0xd3d(%rip),%xmm1
cvtsd2ss %xmm1,%xmm1
movss  0xd79(%rip),%xmm2
minss  %xmm1,%xmm2
movss  %xmm2,0xc(%rsp)
add    %r15d,%ebp
mov    %r13d,(%rsp)
mov    %r12,%rdi
mov    %ebx,%esi
mov    %r14d,%edx
mov    %ebp,%ecx
mov    0x38(%rsp),%r8d
mov    %r15d,%r9d
call   1030 <draw_rectangle@plt>
mov    %r13d,(%rsp)
mov    %r12,%rdi
mov    %ebx,%esi
mov    %r14d,%edx
mov    %ebp,%ecx
mov    0x3c(%rsp),%r8d
mov    %r15d,%r9d
movss  0xc(%rsp),%xmm0
call   1030 <draw_rectangle@plt>
movsd  0x10(%rsp),%xmm2
movapd %xmm2,%xmm0
addsd  0xcde(%rip),%xmm0
xorps  %xmm1,%xmm1
cvtsd2ss %xmm0,%xmm1
xorps  %xmm0,%xmm0
maxss  %xmm1,%xmm0
movapd %xmm2,%xmm1
addsd  0xccc(%rip),%xmm1
cvtsd2ss %xmm1,%xmm1
movss  0xcf8(%rip),%xmm2
minss  %xmm1,%xmm2
movss  %xmm2,0xc(%rsp)
mov    %r13d,(%rsp)
mov    %r12,%rdi
mov    %ebx,%esi
mov    %r14d,%edx
mov    %ebp,%ecx
mov    0x40(%rsp),%r8d
mov    %r15d,%r9d
call   1030 <draw_rectangle@plt>
mov    %r13d,(%rsp)
mov    %r12,%rdi
mov    %ebx,%esi
mov    %r14d,%edx
mov    %ebp,%ecx
mov    0x30(%rsp),%r8d
mov    %r15d,%r9d
movss  0xc(%rsp),%xmm0
call   1030 <draw_rectangle@plt>
movsd  0x10(%rsp),%xmm2
movapd %xmm2,%xmm0
addsd  0xc70(%rip),%xmm0
xorps  %xmm1,%xmm1
cvtsd2ss %xmm0,%xmm1
xorps  %xmm0,%xmm0
maxss  %xmm1,%xmm0
movapd %xmm2,%xmm1
addsd  0xc5e(%rip),%xmm1
cvtsd2ss %xmm1,%xmm1
movss  0xc7a(%rip),%xmm2
minss  %xmm1,%xmm2
movss  %xmm2,0xc(%rsp)
mov    %r13d,(%rsp)
mov    %r12,%rdi
mov    %ebx,%esi
mov    %r14d,%edx
mov    %ebp,%ecx
mov    0x2c(%rsp),%r8d
mov    %r15d,%r9d
call   1030 <draw_rectangle@plt>
mov    %r13d,(%rsp)
mov    %r12,%rdi
mov    %ebx,%esi
mov    %r14d,%edx
mov    %ebp,%ecx
mov    0x28(%rsp),%r8d
mov    %r15d,%r9d
movss  0xc(%rsp),%xmm0
call   1030 <draw_rectangle@plt>
movsd  0x10(%rsp),%xmm2
movapd %xmm2,%xmm0
addsd  0xc02(%rip),%xmm0
xorps  %xmm1,%xmm1
cvtsd2ss %xmm0,%xmm1
xorps  %xmm0,%xmm0
maxss  %xmm1,%xmm0
movapd %xmm2,%xmm1
addsd  0xbf0(%rip),%xmm1
cvtsd2ss %xmm1,%xmm1
movss  0xbfc(%rip),%xmm2
minss  %xmm1,%xmm2
movss  %xmm2,0xc(%rsp)
mov    %r13d,(%rsp)
mov    %r12,%rdi
mov    %ebx,%esi
mov    %r14d,%edx
mov    %ebp,%ecx
mov    0x24(%rsp),%r8d
mov    %r15d,%r9d
call   1030 <draw_rectangle@plt>
mov    %r13d,(%rsp)
mov    %r12,%rdi
mov    %ebx,%esi
mov    %r14d,%edx
mov    %ebp,%ecx
mov    0x20(%rsp),%r8d
mov    %r15d,%r9d
movss  0xc(%rsp),%xmm0
call   1030 <draw_rectangle@plt>
movsd  0x10(%rsp),%xmm2
movapd %xmm2,%xmm0
addsd  0xb94(%rip),%xmm0
xorps  %xmm1,%xmm1
cvtsd2ss %xmm0,%xmm1
xorps  %xmm0,%xmm0
maxss  %xmm1,%xmm0
addsd  0xb86(%rip),%xmm2
xorps  %xmm1,%xmm1
cvtsd2ss %xmm2,%xmm1
movss  0xb7f(%rip),%xmm2
minss  %xmm1,%xmm2
movss  %xmm2,0x10(%rsp)
mov    %r15d,(%rsp)
mov    %r12,%rdi
mov    %ebx,%esi
mov    %r14d,%edx
mov    %ebp,%ecx
mov    0x1c(%rsp),%r8d
mov    %r15d,%r9d
call   1030 <draw_rectangle@plt>
mov    %r15d,(%rsp)
mov    %r12,%rdi
mov    %ebx,%esi
mov    %r14d,%edx
mov    %ebp,%ecx
mov    0x18(%rsp),%r8d
mov    %r15d,%r9d
movss  0x10(%rsp),%xmm0
call   1030 <draw_rectangle@plt>
mov    0x44(%rsp),%ecx
mov    0x60(%rsp),%rax
add    $0x1,%ecx
add    %ebx,%eax
cmp    $0x8,%ecx
jne    1250 <stopnice_k+0x140>
add    $0x68,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
define void @stopnice_k(float* %0, i32 %1, i32 %2) {
%4 = alloca float*
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
%9 = alloca i32
%10 = alloca i32
%11 = alloca float
%12 = alloca float
%13 = alloca float
store float* %0, float** %4
store i32 %1, i32* %5
store i32 %2, i32* %6
store i32 8, i32* %8
%14 = load i32, i32* %5
%15 = load i32, i32* %8
%16 = sdiv i32 %14, %15
%17 = sdiv i32 %16, 3
store i32 %17, i32* %9
%18 = load i32, i32* %9
store i32 %18, i32* %10
%19 = load i32, i32* %10
%20 = load i32, i32* %6
%21 = sdiv i32 %20, 20
%22 = icmp sgt i32 %19, %21
br i1 %22, label %23, label %26
23: ; preds = %3
%24 = load i32, i32* %6
%25 = sdiv i32 %24, 20
store i32 %25, i32* %10
br label %26
26: ; preds = %23, %3
store i32 0, i32* %7
br label %27
27: ; preds = %315, %26
%28 = load i32, i32* %7
%29 = load i32, i32* %8
%30 = icmp slt i32 %28, %29
br i1 %30, label %31, label %318
31: ; preds = %27
%32 = load i32, i32* %7
%33 = sitofp i32 %32 to float
%34 = fpext float %33 to double
%35 = fadd double %34, 5.000000e-01
%36 = load i32, i32* %8
%37 = sitofp i32 %36 to float
%38 = fpext float %37 to double
%39 = fdiv double %35, %38
%40 = fptrunc double %39 to float
store float %40, float* %11
%41 = load float*, float** %4
%42 = load i32, i32* %5
%43 = load i32, i32* %6
%44 = load i32, i32* %7
%45 = load i32, i32* %5
%46 = mul nsw i32 %44, %45
%47 = load i32, i32* %8
%48 = sdiv i32 %46, %47
%49 = load i32, i32* %5
%50 = load i32, i32* %8
%51 = sdiv i32 %49, %50
%52 = load i32, i32* %6
%53 = load float, float* %11
%54 = call i32 @draw_rectangle(float* %41, i32 %42, i32 %43, i32 %48, i32 0, i32 %51, i32 %52, float %53)
%55 = load float, float* %11
%56 = fpext float %55 to double
%57 = fsub double %56, 1.000000e-02
%58 = fptrunc double %57 to float
store float %58, float* %12
%59 = load float, float* %12
%60 = fpext float %59 to double
%61 = fcmp olt double %60, 0.000000e+00
br i1 %61, label %62, label %63
62: ; preds = %31
store float 0.000000e+00, float* %12
br label %63
63: ; preds = %62, %31
%64 = load float, float* %11
%65 = fpext float %64 to double
%66 = fadd double %65, 1.000000e-02
%67 = fptrunc double %66 to float
store float %67, float* %13
%68 = load float, float* %13
%69 = fpext float %68 to double
%70 = fcmp ogt double %69, 1.000000e+00
br i1 %70, label %71, label %72
71: ; preds = %63
store float 1.000000e+00, float* %13
br label %72
72: ; preds = %71, %63
%73 = load float*, float** %4
%74 = load i32, i32* %5
%75 = load i32, i32* %6
%76 = load i32, i32* %7
%77 = load i32, i32* %5
%78 = mul nsw i32 %76, %77
%79 = load i32, i32* %8
%80 = sdiv i32 %78, %79
%81 = load i32, i32* %9
%82 = add nsw i32 %80, %81
%83 = load i32, i32* %6
%84 = mul nsw i32 1, %83
%85 = sdiv i32 %84, 16
%86 = load i32, i32* %9
%87 = load i32, i32* %10
%88 = load float, float* %12
%89 = call i32 @draw_rectangle(float* %73, i32 %74, i32 %75, i32 %82, i32 %85, i32 %86, i32 %87, float %88)
%90 = load float*, float** %4
%91 = load i32, i32* %5
%92 = load i32, i32* %6
%93 = load i32, i32* %7
%94 = load i32, i32* %5
%95 = mul nsw i32 %93, %94
%96 = load i32, i32* %8
%97 = sdiv i32 %95, %96
%98 = load i32, i32* %9
%99 = add nsw i32 %97, %98
%100 = load i32, i32* %6
%101 = mul nsw i32 2, %100
%102 = sdiv i32 %101, 16
%103 = load i32, i32* %9
%104 = load i32, i32* %10
%105 = load float, float* %13
%106 = call i32 @draw_rectangle(float* %90, i32 %91, i32 %92, i32 %99, i32 %102, i32 %103, i32 %104, float %105)
%107 = load float, float* %11
%108 = fpext float %107 to double
%109 = fsub double %108, 2.000000e-02
%110 = fptrunc double %109 to float
store float %110, float* %12
%111 = load float, float* %12
%112 = fpext float %111 to double
%113 = fcmp olt double %112, 0.000000e+00
br i1 %113, label %114, label %115
114: ; preds = %72
store float 0.000000e+00, float* %12
br label %115
115: ; preds = %114, %72
%116 = load float, float* %11
%117 = fpext float %116 to double
%118 = fadd double %117, 2.000000e-02
%119 = fptrunc double %118 to float
store float %119, float* %13
%120 = load float, float* %13
%121 = fpext float %120 to double
%122 = fcmp ogt double %121, 1.000000e+00
br i1 %122, label %123, label %124
123: ; preds = %115
store float 1.000000e+00, float* %13
br label %124
124: ; preds = %123, %115
%125 = load float*, float** %4
%126 = load i32, i32* %5
%127 = load i32, i32* %6
%128 = load i32, i32* %7
%129 = load i32, i32* %5
%130 = mul nsw i32 %128, %129
%131 = load i32, i32* %8
%132 = sdiv i32 %130, %131
%133 = load i32, i32* %9
%134 = add nsw i32 %132, %133
%135 = load i32, i32* %6
%136 = mul nsw i32 4, %135
%137 = sdiv i32 %136, 16
%138 = load i32, i32* %9
%139 = load i32, i32* %10
%140 = load float, float* %12
%141 = call i32 @draw_rectangle(float* %125, i32 %126, i32 %127, i32 %134, i32 %137, i32 %138, i32 %139, float %140)
%142 = load float*, float** %4
%143 = load i32, i32* %5
%144 = load i32, i32* %6
%145 = load i32, i32* %7
%146 = load i32, i32* %5
%147 = mul nsw i32 %145, %146
%148 = load i32, i32* %8
%149 = sdiv i32 %147, %148
%150 = load i32, i32* %9
%151 = add nsw i32 %149, %150
%152 = load i32, i32* %6
%153 = mul nsw i32 5, %152
%154 = sdiv i32 %153, 16
%155 = load i32, i32* %9
%156 = load i32, i32* %10
%157 = load float, float* %13
%158 = call i32 @draw_rectangle(float* %142, i32 %143, i32 %144, i32 %151, i32 %154, i32 %155, i32 %156, float %157)
%159 = load float, float* %11
%160 = fpext float %159 to double
%161 = fsub double %160, 5.000000e-02
%162 = fptrunc double %161 to float
store float %162, float* %12
%163 = load float, float* %12
%164 = fpext float %163 to double
%165 = fcmp olt double %164, 0.000000e+00
br i1 %165, label %166, label %167
166: ; preds = %124
store float 0.000000e+00, float* %12
br label %167
167: ; preds = %166, %124
%168 = load float, float* %11
%169 = fpext float %168 to double
%170 = fadd double %169, 5.000000e-02
%171 = fptrunc double %170 to float
store float %171, float* %13
%172 = load float, float* %13
%173 = fpext float %172 to double
%174 = fcmp ogt double %173, 1.000000e+00
br i1 %174, label %175, label %176
175: ; preds = %167
store float 1.000000e+00, float* %13
br label %176
176: ; preds = %175, %167
%177 = load float*, float** %4
%178 = load i32, i32* %5
%179 = load i32, i32* %6
%180 = load i32, i32* %7
%181 = load i32, i32* %5
%182 = mul nsw i32 %180, %181
%183 = load i32, i32* %8
%184 = sdiv i32 %182, %183
%185 = load i32, i32* %9
%186 = add nsw i32 %184, %185
%187 = load i32, i32* %6
%188 = mul nsw i32 7, %187
%189 = sdiv i32 %188, 16
%190 = load i32, i32* %9
%191 = load i32, i32* %10
%192 = load float, float* %12
%193 = call i32 @draw_rectangle(float* %177, i32 %178, i32 %179, i32 %186, i32 %189, i32 %190, i32 %191, float %192)
%194 = load float*, float** %4
%195 = load i32, i32* %5
%196 = load i32, i32* %6
%197 = load i32, i32* %7
%198 = load i32, i32* %5
%199 = mul nsw i32 %197, %198
%200 = load i32, i32* %8
%201 = sdiv i32 %199, %200
%202 = load i32, i32* %9
%203 = add nsw i32 %201, %202
%204 = load i32, i32* %6
%205 = mul nsw i32 8, %204
%206 = sdiv i32 %205, 16
%207 = load i32, i32* %9
%208 = load i32, i32* %10
%209 = load float, float* %13
%210 = call i32 @draw_rectangle(float* %194, i32 %195, i32 %196, i32 %203, i32 %206, i32 %207, i32 %208, float %209)
%211 = load float, float* %11
%212 = fpext float %211 to double
%213 = fsub double %212, 1.000000e-01
%214 = fptrunc double %213 to float
store float %214, float* %12
%215 = load float, float* %12
%216 = fpext float %215 to double
%217 = fcmp olt double %216, 0.000000e+00
br i1 %217, label %218, label %219
218: ; preds = %176
store float 0.000000e+00, float* %12
br label %219
219: ; preds = %218, %176
%220 = load float, float* %11
%221 = fpext float %220 to double
%222 = fadd double %221, 1.000000e-01
%223 = fptrunc double %222 to float
store float %223, float* %13
%224 = load float, float* %13
%225 = fpext float %224 to double
%226 = fcmp ogt double %225, 1.000000e+00
br i1 %226, label %227, label %228
227: ; preds = %219
store float 1.000000e+00, float* %13
br label %228
228: ; preds = %227, %219
%229 = load float*, float** %4
%230 = load i32, i32* %5
%231 = load i32, i32* %6
%232 = load i32, i32* %7
%233 = load i32, i32* %5
%234 = mul nsw i32 %232, %233
%235 = load i32, i32* %8
%236 = sdiv i32 %234, %235
%237 = load i32, i32* %9
%238 = add nsw i32 %236, %237
%239 = load i32, i32* %6
%240 = mul nsw i32 10, %239
%241 = sdiv i32 %240, 16
%242 = load i32, i32* %9
%243 = load i32, i32* %10
%244 = load float, float* %12
%245 = call i32 @draw_rectangle(float* %229, i32 %230, i32 %231, i32 %238, i32 %241, i32 %242, i32 %243, float %244)
%246 = load float*, float** %4
%247 = load i32, i32* %5
%248 = load i32, i32* %6
%249 = load i32, i32* %7
%250 = load i32, i32* %5
%251 = mul nsw i32 %249, %250
%252 = load i32, i32* %8
%253 = sdiv i32 %251, %252
%254 = load i32, i32* %9
%255 = add nsw i32 %253, %254
%256 = load i32, i32* %6
%257 = mul nsw i32 11, %256
%258 = sdiv i32 %257, 16
%259 = load i32, i32* %9
%260 = load i32, i32* %10
%261 = load float, float* %13
%262 = call i32 @draw_rectangle(float* %246, i32 %247, i32 %248, i32 %255, i32 %258, i32 %259, i32 %260, float %261)
%263 = load float, float* %11
%264 = fpext float %263 to double
%265 = fsub double %264, 2.000000e-01
%266 = fptrunc double %265 to float
store float %266, float* %12
%267 = load float, float* %12
%268 = fpext float %267 to double
%269 = fcmp olt double %268, 0.000000e+00
br i1 %269, label %270, label %271
270: ; preds = %228
store float 0.000000e+00, float* %12
br label %271
271: ; preds = %270, %228
%272 = load float, float* %11
%273 = fpext float %272 to double
%274 = fadd double %273, 2.000000e-01
%275 = fptrunc double %274 to float
store float %275, float* %13
%276 = load float, float* %13
%277 = fpext float %276 to double
%278 = fcmp ogt double %277, 1.000000e+00
br i1 %278, label %279, label %280
279: ; preds = %271
store float 1.000000e+00, float* %13
br label %280
280: ; preds = %279, %271
%281 = load float*, float** %4
%282 = load i32, i32* %5
%283 = load i32, i32* %6
%284 = load i32, i32* %7
%285 = load i32, i32* %5
%286 = mul nsw i32 %284, %285
%287 = load i32, i32* %8
%288 = sdiv i32 %286, %287
%289 = load i32, i32* %9
%290 = add nsw i32 %288, %289
%291 = load i32, i32* %6
%292 = mul nsw i32 13, %291
%293 = sdiv i32 %292, 16
%294 = load i32, i32* %9
%295 = load i32, i32* %9
%296 = load float, float* %12
%297 = call i32 @draw_rectangle(float* %281, i32 %282, i32 %283, i32 %290, i32 %293, i32 %294, i32 %295, float %296)
%298 = load float*, float** %4
%299 = load i32, i32* %5
%300 = load i32, i32* %6
%301 = load i32, i32* %7
%302 = load i32, i32* %5
%303 = mul nsw i32 %301, %302
%304 = load i32, i32* %8
%305 = sdiv i32 %303, %304
%306 = load i32, i32* %9
%307 = add nsw i32 %305, %306
%308 = load i32, i32* %6
%309 = mul nsw i32 14, %308
%310 = sdiv i32 %309, 16
%311 = load i32, i32* %9
%312 = load i32, i32* %9
%313 = load float, float* %13
%314 = call i32 @draw_rectangle(float* %298, i32 %299, i32 %300, i32 %307, i32 %310, i32 %311, i32 %312, float %313)
br label %315
315: ; preds = %280
%316 = load i32, i32* %7
%317 = add nsw i32 %316, 1
store i32 %317, i32* %7
br label %27
318: ; preds = %27
ret void
}

LLVM IR (-O2):
define void @stopnice_k(float* %0, i32 %1, i32 %2) {
%4 = sdiv i32 %1, 8
%5 = sdiv i32 %1, 24
%6 = sdiv i32 %2, 20
%7 = icmp sgt i32 %5, %6
%8 = select i1 %7, i32 %6, i32 %5
%9 = sdiv i32 %2, 16
%10 = sdiv i32 %2, 8
%11 = sdiv i32 %2, 4
%12 = mul nsw i32 %2, 5
%13 = sdiv i32 %12, 16
%14 = mul nsw i32 %2, 7
%15 = sdiv i32 %14, 16
%16 = sdiv i32 %2, 2
%17 = mul nsw i32 %2, 10
%18 = sdiv i32 %17, 16
%19 = mul nsw i32 %2, 11
%20 = sdiv i32 %19, 16
%21 = mul nsw i32 %2, 13
%22 = sdiv i32 %21, 16
%23 = mul nsw i32 %2, 14
%24 = sdiv i32 %23, 16
br label %25
25: ; preds = %3, %25
%26 = phi i32 [ 0, %3 ], [ %87, %25 ]
%27 = sitofp i32 %26 to float
%28 = fpext float %27 to double
%29 = fadd double %28, 5.000000e-01
%30 = fmul double %29, 1.250000e-01
%31 = fptrunc double %30 to float
%32 = mul nsw i32 %26, %1
%33 = sdiv i32 %32, 8
%34 = tail call i32 @draw_rectangle(float* %0, i32 %1, i32 %2, i32 %33, i32 0, i32 %4, i32 %2, float %31)
%35 = fpext float %31 to double
%36 = fadd double %35, -1.000000e-02
%37 = fptrunc double %36 to float
%38 = fcmp olt float %37, 0.000000e+00
%39 = select i1 %38, float 0.000000e+00, float %37
%40 = fadd double %35, 1.000000e-02
%41 = fptrunc double %40 to float
%42 = fcmp ogt float %41, 1.000000e+00
%43 = select i1 %42, float 1.000000e+00, float %41
%44 = add nsw i32 %33, %5
%45 = tail call i32 @draw_rectangle(float* %0, i32 %1, i32 %2, i32 %44, i32 %9, i32 %5, i32 %8, float %39)
%46 = tail call i32 @draw_rectangle(float* %0, i32 %1, i32 %2, i32 %44, i32 %10, i32 %5, i32 %8, float %43)
%47 = fadd double %35, -2.000000e-02
%48 = fptrunc double %47 to float
%49 = fcmp olt float %48, 0.000000e+00
%50 = select i1 %49, float 0.000000e+00, float %48
%51 = fadd double %35, 2.000000e-02
%52 = fptrunc double %51 to float
%53 = fcmp ogt float %52, 1.000000e+00
%54 = select i1 %53, float 1.000000e+00, float %52
%55 = tail call i32 @draw_rectangle(float* %0, i32 %1, i32 %2, i32 %44, i32 %11, i32 %5, i32 %8, float %50)
%56 = tail call i32 @draw_rectangle(float* %0, i32 %1, i32 %2, i32 %44, i32 %13, i32 %5, i32 %8, float %54)
%57 = fadd double %35, -5.000000e-02
%58 = fptrunc double %57 to float
%59 = fcmp olt float %58, 0.000000e+00
%60 = select i1 %59, float 0.000000e+00, float %58
%61 = fadd double %35, 5.000000e-02
%62 = fptrunc double %61 to float
%63 = fcmp ogt float %62, 1.000000e+00
%64 = select i1 %63, float 1.000000e+00, float %62
%65 = tail call i32 @draw_rectangle(float* %0, i32 %1, i32 %2, i32 %44, i32 %15, i32 %5, i32 %8, float %60)
%66 = tail call i32 @draw_rectangle(float* %0, i32 %1, i32 %2, i32 %44, i32 %16, i32 %5, i32 %8, float %64)
%67 = fadd double %35, -1.000000e-01
%68 = fptrunc double %67 to float
%69 = fcmp olt float %68, 0.000000e+00
%70 = select i1 %69, float 0.000000e+00, float %68
%71 = fadd double %35, 1.000000e-01
%72 = fptrunc double %71 to float
%73 = fcmp ogt float %72, 1.000000e+00
%74 = select i1 %73, float 1.000000e+00, float %72
%75 = tail call i32 @draw_rectangle(float* %0, i32 %1, i32 %2, i32 %44, i32 %18, i32 %5, i32 %8, float %70)
%76 = tail call i32 @draw_rectangle(float* %0, i32 %1, i32 %2, i32 %44, i32 %20, i32 %5, i32 %8, float %74)
%77 = fadd double %35, -2.000000e-01
%78 = fptrunc double %77 to float
%79 = fcmp olt float %78, 0.000000e+00
%80 = select i1 %79, float 0.000000e+00, float %78
%81 = fadd double %35, 2.000000e-01
%82 = fptrunc double %81 to float
%83 = fcmp ogt float %82, 1.000000e+00
%84 = select i1 %83, float 1.000000e+00, float %82
%85 = tail call i32 @draw_rectangle(float* %0, i32 %1, i32 %2, i32 %44, i32 %22, i32 %5, i32 %5, float %80)
%86 = tail call i32 @draw_rectangle(float* %0, i32 %1, i32 %2, i32 %44, i32 %24, i32 %5, i32 %5, float %84)
%87 = add nuw nsw i32 %26, 1
%88 = icmp eq i32 %87, 8
br i1 %88, label %89, label %25
89: ; preds = %25
ret void
}