void alcon2009_draw_rectangle(unsigned char *image, int width, int height,
                              int x1, int y1, int x2, int y2, unsigned char r,
                              unsigned char g, unsigned char b) {
  int i, w;
  for (i = y1; i <= y2; i++) {
    for (w = 0; w < 4; w++) {
      int xx1 = x1 - w;
      int xx2 = x2 + w;
      if (y1 >= 0 && y1 < height) {
        if (xx1 >= 0 && xx1 < width) {
          image[(xx1 + i * width) * 3 + 0] = r;
          image[(xx1 + i * width) * 3 + 1] = g;
          image[(xx1 + i * width) * 3 + 2] = b;
        }
        if (xx2 >= 0 && xx2 < width) {
          image[(xx2 + i * width) * 3 + 0] = r;
          image[(xx2 + i * width) * 3 + 1] = g;
          image[(xx2 + i * width) * 3 + 2] = b;
        }
      }
    }
  }
  for (i = x1 - 4 + 1; i <= x2 + 4 - 1; i++) {
    for (w = 0; w < 4; w++) {
      int yy1 = y1 - w;
      int yy2 = y2 + w;
      if (x1 >= 0 && x1 < width) {
        if (yy1 >= 0 && yy1 < height) {
          image[(i + yy1 * width) * 3 + 0] = r;
          image[(i + yy1 * width) * 3 + 1] = g;
          image[(i + yy1 * width) * 3 + 2] = b;
        }
        if (yy2 >= 0 && yy2 < height) {
          image[(i + yy2 * width) * 3 + 0] = r;
          image[(i + yy2 * width) * 3 + 1] = g;
          image[(i + yy2 * width) * 3 + 2] = b;
        }
      }
    }
  }
}


x86 assembly (clang, -O0):
push   %rbp
mov    %rsp,%rbp
mov    0x28(%rbp),%al
mov    0x20(%rbp),%al
mov    0x18(%rbp),%al
mov    0x10(%rbp),%eax
mov    %rdi,-0x8(%rbp)
mov    %esi,-0xc(%rbp)
mov    %edx,-0x10(%rbp)
mov    %ecx,-0x14(%rbp)
mov    %r8d,-0x18(%rbp)
mov    %r9d,-0x1c(%rbp)
mov    -0x18(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
cmp    0x10(%rbp),%eax
jg     1281 <alcon2009_draw_rectangle+0x181>
movl   $0x0,-0x24(%rbp)
cmpl   $0x4,-0x24(%rbp)
jge    126e <alcon2009_draw_rectangle+0x16e>
mov    -0x14(%rbp),%eax
sub    -0x24(%rbp),%eax
mov    %eax,-0x28(%rbp)
mov    -0x1c(%rbp),%eax
add    -0x24(%rbp),%eax
mov    %eax,-0x2c(%rbp)
cmpl   $0x0,-0x18(%rbp)
jl     125b <alcon2009_draw_rectangle+0x15b>
mov    -0x18(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    125b <alcon2009_draw_rectangle+0x15b>
cmpl   $0x0,-0x28(%rbp)
jl     11e3 <alcon2009_draw_rectangle+0xe3>
mov    -0x28(%rbp),%eax
cmp    -0xc(%rbp),%eax
jge    11e3 <alcon2009_draw_rectangle+0xe3>
mov    0x18(%rbp),%dl
mov    -0x8(%rbp),%rax
mov    -0x28(%rbp),%ecx
mov    -0x20(%rbp),%esi
imul   -0xc(%rbp),%esi
add    %esi,%ecx
imul   $0x3,%ecx,%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
mov    %dl,(%rax,%rcx,1)
mov    0x20(%rbp),%dl
mov    -0x8(%rbp),%rax
mov    -0x28(%rbp),%ecx
mov    -0x20(%rbp),%esi
imul   -0xc(%rbp),%esi
add    %esi,%ecx
imul   $0x3,%ecx,%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    %dl,(%rax,%rcx,1)
mov    0x28(%rbp),%dl
mov    -0x8(%rbp),%rax
mov    -0x28(%rbp),%ecx
mov    -0x20(%rbp),%esi
imul   -0xc(%rbp),%esi
add    %esi,%ecx
imul   $0x3,%ecx,%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
mov    %dl,(%rax,%rcx,1)
cmpl   $0x0,-0x2c(%rbp)
jl     1256 <alcon2009_draw_rectangle+0x156>
mov    -0x2c(%rbp),%eax
cmp    -0xc(%rbp),%eax
jge    1256 <alcon2009_draw_rectangle+0x156>
mov    0x18(%rbp),%dl
mov    -0x8(%rbp),%rax
mov    -0x2c(%rbp),%ecx
mov    -0x20(%rbp),%esi
imul   -0xc(%rbp),%esi
add    %esi,%ecx
imul   $0x3,%ecx,%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
mov    %dl,(%rax,%rcx,1)
mov    0x20(%rbp),%dl
mov    -0x8(%rbp),%rax
mov    -0x2c(%rbp),%ecx
mov    -0x20(%rbp),%esi
imul   -0xc(%rbp),%esi
add    %esi,%ecx
imul   $0x3,%ecx,%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    %dl,(%rax,%rcx,1)
mov    0x28(%rbp),%dl
mov    -0x8(%rbp),%rax
mov    -0x2c(%rbp),%ecx
mov    -0x20(%rbp),%esi
imul   -0xc(%rbp),%esi
add    %esi,%ecx
imul   $0x3,%ecx,%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
mov    %dl,(%rax,%rcx,1)
jmp    125b <alcon2009_draw_rectangle+0x15b>
jmp    1260 <alcon2009_draw_rectangle+0x160>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    113e <alcon2009_draw_rectangle+0x3e>
jmp    1273 <alcon2009_draw_rectangle+0x173>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    112b <alcon2009_draw_rectangle+0x2b>
mov    -0x14(%rbp),%eax
sub    $0x4,%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
mov    -0x1c(%rbp),%ecx
add    $0x4,%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     13eb <alcon2009_draw_rectangle+0x2eb>
movl   $0x0,-0x24(%rbp)
cmpl   $0x4,-0x24(%rbp)
jge    13d8 <alcon2009_draw_rectangle+0x2d8>
mov    -0x18(%rbp),%eax
sub    -0x24(%rbp),%eax
mov    %eax,-0x30(%rbp)
mov    0x10(%rbp),%eax
add    -0x24(%rbp),%eax
mov    %eax,-0x34(%rbp)
cmpl   $0x0,-0x14(%rbp)
jl     13c5 <alcon2009_draw_rectangle+0x2c5>
mov    -0x14(%rbp),%eax
cmp    -0xc(%rbp),%eax
jge    13c5 <alcon2009_draw_rectangle+0x2c5>
cmpl   $0x0,-0x30(%rbp)
jl     134d <alcon2009_draw_rectangle+0x24d>
mov    -0x30(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    134d <alcon2009_draw_rectangle+0x24d>
mov    0x18(%rbp),%dl
mov    -0x8(%rbp),%rax
mov    -0x20(%rbp),%ecx
mov    -0x30(%rbp),%esi
imul   -0xc(%rbp),%esi
add    %esi,%ecx
imul   $0x3,%ecx,%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
mov    %dl,(%rax,%rcx,1)
mov    0x20(%rbp),%dl
mov    -0x8(%rbp),%rax
mov    -0x20(%rbp),%ecx
mov    -0x30(%rbp),%esi
imul   -0xc(%rbp),%esi
add    %esi,%ecx
imul   $0x3,%ecx,%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    %dl,(%rax,%rcx,1)
mov    0x28(%rbp),%dl
mov    -0x8(%rbp),%rax
mov    -0x20(%rbp),%ecx
mov    -0x30(%rbp),%esi
imul   -0xc(%rbp),%esi
add    %esi,%ecx
imul   $0x3,%ecx,%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
mov    %dl,(%rax,%rcx,1)
cmpl   $0x0,-0x34(%rbp)
jl     13c0 <alcon2009_draw_rectangle+0x2c0>
mov    -0x34(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    13c0 <alcon2009_draw_rectangle+0x2c0>
mov    0x18(%rbp),%dl
mov    -0x8(%rbp),%rax
mov    -0x20(%rbp),%ecx
mov    -0x34(%rbp),%esi
imul   -0xc(%rbp),%esi
add    %esi,%ecx
imul   $0x3,%ecx,%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
mov    %dl,(%rax,%rcx,1)
mov    0x20(%rbp),%dl
mov    -0x8(%rbp),%rax
mov    -0x20(%rbp),%ecx
mov    -0x34(%rbp),%esi
imul   -0xc(%rbp),%esi
add    %esi,%ecx
imul   $0x3,%ecx,%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    %dl,(%rax,%rcx,1)
mov    0x28(%rbp),%dl
mov    -0x8(%rbp),%rax
mov    -0x20(%rbp),%ecx
mov    -0x34(%rbp),%esi
imul   -0xc(%rbp),%esi
add    %esi,%ecx
imul   $0x3,%ecx,%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
mov    %dl,(%rax,%rcx,1)
jmp    13c5 <alcon2009_draw_rectangle+0x2c5>
jmp    13ca <alcon2009_draw_rectangle+0x2ca>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    12a8 <alcon2009_draw_rectangle+0x1a8>
jmp    13dd <alcon2009_draw_rectangle+0x2dd>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    128d <alcon2009_draw_rectangle+0x18d>
pop    %rbp
ret

x86 assembly (clang, -O2):
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
mov    %rcx,-0x30(%rsp)
mov    %edx,-0x3c(%rsp)
mov    0x50(%rsp),%r10b
mov    0x48(%rsp),%r11b
mov    0x40(%rsp),%al
movslq %r8d,%rcx
mov    %rcx,-0x38(%rsp)
movslq %esi,%rcx
mov    %rcx,-0x10(%rsp)
cmp    0x38(%rsp),%r8d
jle    1157 <alcon2009_draw_rectangle+0x57>
mov    -0x30(%rsp),%rdx
lea    -0x3(%rdx),%esi
lea    0x3(%r9),%ecx
cmp    %ecx,%esi
jle    1351 <alcon2009_draw_rectangle+0x251>
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
mov    -0x38(%rsp),%rdx
test   %edx,%edx
setns  %cl
cmp    -0x3c(%rsp),%edx
setl   %bl
and    %cl,%bl
movslq -0x30(%rsp),%rbp
movslq %r9d,%rdx
mov    -0x10(%rsp),%r15
cmp    %r15d,%ebp
setl   %sil
setle  %r8b
test   %ebp,%ebp
setns  %cl
setg   %r14b
and    %sil,%cl
mov    %cl,-0x3e(%rsp)
test   %edx,%edx
setns  %sil
cmp    %r15d,%edx
setl   %cl
and    %sil,%cl
mov    %cl,-0x40(%rsp)
lea    0x1(%rdx),%rsi
and    %r8b,%r14b
mov    %r14b,-0x3f(%rsp)
cmp    $0xffffffff,%edx
setge  %r8b
cmp    %r15,%rsi
setl   %cl
and    %r8b,%cl
mov    %cl,-0x43(%rsp)
lea    -0x2(%rbp),%rcx
lea    0x2(%rdx),%rsi
cmp    $0x2,%ebp
setge  %r8b
cmp    %r15,%rcx
setl   %cl
and    %r8b,%cl
mov    %cl,-0x41(%rsp)
cmp    $0xfffffffe,%edx
setge  %r8b
cmp    %r15,%rsi
setl   %cl
and    %r8b,%cl
mov    %cl,-0x42(%rsp)
lea    -0x3(%rbp),%rcx
lea    0x3(%rdx),%r8
cmp    $0x3,%ebp
setge  %r14b
cmp    %r15,%rcx
setl   %r12b
and    %r14b,%r12b
cmp    $0xfffffffd,%edx
setge  %r14b
cmp    %r15,%r8
setl   %r13b
and    %r14b,%r13b
mov    -0x38(%rsp),%rsi
imul   %r15,%rsi
add    %rsi,%rdx
lea    (%rdx,%rdx,2),%r8
lea    0x2(%rdi),%rdx
lea    (%r15,%r15,2),%r15
add    %rbp,%rsi
lea    (%rsi,%rsi,2),%r14
mov    -0x43(%rsp),%cl
mov    0x38(%rsp),%ebp
sub    -0x38(%rsp),%ebp
add    $0x1,%ebp
jmp    125c <alcon2009_draw_rectangle+0x15c>
nop
add    %r15,%rdx
add    $0xffffffff,%ebp
je     1138 <alcon2009_draw_rectangle+0x38>
test   %bl,%bl
je     1250 <alcon2009_draw_rectangle+0x150>
cmpb   $0x0,-0x3e(%rsp)
jne    12a0 <alcon2009_draw_rectangle+0x1a0>
cmpb   $0x0,-0x40(%rsp)
jne    12b5 <alcon2009_draw_rectangle+0x1b5>
cmpb   $0x0,-0x3f(%rsp)
jne    12ca <alcon2009_draw_rectangle+0x1ca>
test   %cl,%cl
jne    12dd <alcon2009_draw_rectangle+0x1dd>
cmpb   $0x0,-0x41(%rsp)
jne    12f3 <alcon2009_draw_rectangle+0x1f3>
cmpb   $0x0,-0x42(%rsp)
jne    130d <alcon2009_draw_rectangle+0x20d>
test   %r12b,%r12b
jne    1325 <alcon2009_draw_rectangle+0x225>
test   %r13b,%r13b
je     1250 <alcon2009_draw_rectangle+0x150>
jmp    133d <alcon2009_draw_rectangle+0x23d>
xchg   %ax,%ax
mov    %al,-0x2(%rdx,%r14,1)
mov    %r11b,-0x1(%rdx,%r14,1)
mov    %r10b,(%rdx,%r14,1)
cmpb   $0x0,-0x40(%rsp)
je     126e <alcon2009_draw_rectangle+0x16e>
mov    %al,-0x2(%rdx,%r8,1)
mov    %r11b,-0x1(%rdx,%r8,1)
mov    %r10b,(%rdx,%r8,1)
cmpb   $0x0,-0x3f(%rsp)
je     1275 <alcon2009_draw_rectangle+0x175>
mov    %al,-0x5(%rdx,%r14,1)
mov    %r11b,-0x4(%rdx,%r14,1)
mov    %r10b,-0x3(%rdx,%r14,1)
test   %cl,%cl
je     1279 <alcon2009_draw_rectangle+0x179>
mov    %al,0x1(%rdx,%r8,1)
mov    %r11b,0x2(%rdx,%r8,1)
mov    %r10b,0x3(%rdx,%r8,1)
cmpb   $0x0,-0x41(%rsp)
je     1280 <alcon2009_draw_rectangle+0x180>
mov    %al,-0x8(%rdx,%r14,1)
mov    %r11b,-0x7(%rdx,%r14,1)
mov    %r10b,-0x6(%rdx,%r14,1)
cmpb   $0x0,-0x42(%rsp)
je     128b <alcon2009_draw_rectangle+0x18b>
mov    %al,0x4(%rdx,%r8,1)
mov    %r11b,0x5(%rdx,%r8,1)
mov    %r10b,0x6(%rdx,%r8,1)
test   %r12b,%r12b
je     1294 <alcon2009_draw_rectangle+0x194>
mov    %al,-0xb(%rdx,%r14,1)
mov    %r11b,-0xa(%rdx,%r14,1)
mov    %r10b,-0x9(%rdx,%r14,1)
test   %r13b,%r13b
je     1250 <alcon2009_draw_rectangle+0x150>
mov    %al,0x7(%rdx,%r8,1)
mov    %r11b,0x8(%rdx,%r8,1)
mov    %r10b,0x9(%rdx,%r8,1)
jmp    1250 <alcon2009_draw_rectangle+0x150>
test   %edx,%edx
setns  %cl
mov    %esi,-0x24(%rsp)
mov    -0x10(%rsp),%rsi
cmp    %esi,%edx
setl   %bl
and    %cl,%bl
mov    -0x3c(%rsp),%ebp
movslq %ebp,%r8
mov    0x38(%rsp),%r12d
movslq %r12d,%r15
mov    -0x38(%rsp),%rcx
cmp    %ebp,%ecx
setl   %r14b
setle  %r12b
test   %ecx,%ecx
setns  %dl
setg   %r13b
and    %r14b,%dl
mov    %dl,-0x3e(%rsp)
mov    %rcx,%rdx
imul   %rsi,%rdx
mov    %rdx,-0x18(%rsp)
mov    0x38(%rsp),%edx
test   %edx,%edx
setns  %r14b
cmp    %ebp,%edx
mov    %edx,%ebp
setl   %dl
and    %r14b,%dl
mov    %dl,-0x40(%rsp)
mov    %r15,%rdx
imul   %rsi,%rdx
mov    %rdx,-0x20(%rsp)
lea    0x1(%r15),%r14
and    %r12b,%r13b
mov    %r13b,-0x3f(%rsp)
mov    %ebp,%r12d
cmp    $0xffffffff,%ebp
setge  %bpl
cmp    %r8,%r14
setl   %dl
and    %bpl,%dl
mov    %dl,-0x41(%rsp)
lea    -0x2(%rcx),%rdx
mov    %rdx,-0x8(%rsp)
cmp    $0x2,%ecx
setge  %bpl
cmp    %r8,%rdx
setl   %dl
and    %bpl,%dl
mov    %dl,-0x42(%rsp)
lea    0x2(%r15),%rdx
cmp    $0xfffffffe,%r12d
setge  %bpl
cmp    %r8,%rdx
mov    %rdx,%r13
setl   %dl
and    %bpl,%dl
mov    %dl,-0x3c(%rsp)
mov    %rcx,%rbp
add    $0xfffffffffffffffd,%rbp
add    $0x3,%r15
cmp    $0x3,%ecx
setge  %dl
cmp    %r8,%rbp
setl   %r12b
and    %dl,%r12b
mov    %r12b,-0x43(%rsp)
cmpl   $0xfffffffd,0x38(%rsp)
setge  -0x3d(%rsp)
cmp    %r8,%r15
lea    -0x1(%rcx),%r12
setl   %cl
imul   %rsi,%r14
mov    %r13,%r8
imul   %rsi,%r8
imul   %rsi,%r15
imul   %rsi,%r12
mov    -0x8(%rsp),%r13
imul   %rsi,%r13
imul   %rsi,%rbp
movslq -0x24(%rsp),%rdx
add    %rdx,-0x20(%rsp)
lea    (%r14,%r14,2),%rsi
add    %rdx,-0x18(%rsp)
lea    (%rdx,%rdx,2),%r14
add    %r14,%rsi
lea    (%r8,%r8,2),%r8
add    %r14,%r8
lea    (%r15,%r15,2),%r15
add    %r14,%r15
lea    (%r12,%r12,2),%r12
add    %r14,%r12
lea    0x0(%r13,%r13,2),%r13
add    %r14,%r13
lea    0x0(,%rbp,2),%rdx
add    %rbp,%rdx
add    %r14,%rdx
sub    -0x30(%rsp),%r9d
and    -0x3d(%rsp),%cl
mov    -0x20(%rsp),%rbp
lea    0x0(,%rbp,2),%r14
add    %rbp,%r14
mov    -0x18(%rsp),%rbp
lea    0x0(%rbp,%rbp,2),%rbp
add    $0x7,%r9d
jmp    14fe <alcon2009_draw_rectangle+0x3fe>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
add    $0x3,%rdi
add    $0xffffffff,%r9d
je     114c <alcon2009_draw_rectangle+0x4c>
test   %bl,%bl
je     14f0 <alcon2009_draw_rectangle+0x3f0>
cmpb   $0x0,-0x3e(%rsp)
jne    1540 <alcon2009_draw_rectangle+0x440>
cmpb   $0x0,-0x40(%rsp)
jne    1554 <alcon2009_draw_rectangle+0x454>
cmpb   $0x0,-0x3f(%rsp)
jne    1569 <alcon2009_draw_rectangle+0x469>
cmpb   $0x0,-0x41(%rsp)
jne    157e <alcon2009_draw_rectangle+0x47e>
cmpb   $0x0,-0x42(%rsp)
jne    1592 <alcon2009_draw_rectangle+0x492>
cmpb   $0x0,-0x3c(%rsp)
jne    15a7 <alcon2009_draw_rectangle+0x4a7>
cmpb   $0x0,-0x43(%rsp)
jne    15c0 <alcon2009_draw_rectangle+0x4c0>
test   %cl,%cl
je     14f0 <alcon2009_draw_rectangle+0x3f0>
jmp    15d5 <alcon2009_draw_rectangle+0x4d5>
mov    %al,(%rdi,%rbp,1)
mov    %r11b,0x1(%rdi,%rbp,1)
mov    %r10b,0x2(%rdi,%rbp,1)
cmpb   $0x0,-0x40(%rsp)
je     1510 <alcon2009_draw_rectangle+0x410>
mov    %al,(%rdi,%r14,1)
mov    %r11b,0x1(%rdi,%r14,1)
mov    %r10b,0x2(%rdi,%r14,1)
cmpb   $0x0,-0x3f(%rsp)
je     1517 <alcon2009_draw_rectangle+0x417>
mov    %al,(%rdi,%r12,1)
mov    %r11b,0x1(%rdi,%r12,1)
mov    %r10b,0x2(%rdi,%r12,1)
cmpb   $0x0,-0x41(%rsp)
je     151e <alcon2009_draw_rectangle+0x41e>
mov    %al,(%rdi,%rsi,1)
mov    %r11b,0x1(%rdi,%rsi,1)
mov    %r10b,0x2(%rdi,%rsi,1)
cmpb   $0x0,-0x42(%rsp)
je     1525 <alcon2009_draw_rectangle+0x425>
mov    %al,(%rdi,%r13,1)
mov    %r11b,0x1(%rdi,%r13,1)
mov    %r10b,0x2(%rdi,%r13,1)
cmpb   $0x0,-0x3c(%rsp)
je     152c <alcon2009_draw_rectangle+0x42c>
mov    %al,(%rdi,%r8,1)
mov    %r11b,0x1(%rdi,%r8,1)
mov    %r10b,0x2(%rdi,%r8,1)
cmpb   $0x0,-0x43(%rsp)
je     1537 <alcon2009_draw_rectangle+0x437>
mov    %al,(%rdi,%rdx,1)
mov    %r11b,0x1(%rdi,%rdx,1)
mov    %r10b,0x2(%rdi,%rdx,1)
test   %cl,%cl
je     14f0 <alcon2009_draw_rectangle+0x3f0>
mov    %al,(%rdi,%r15,1)
mov    %r11b,0x1(%rdi,%r15,1)
mov    %r10b,0x2(%rdi,%r15,1)
jmp    14f0 <alcon2009_draw_rectangle+0x3f0>

LLVM IR (-O0):
define void @alcon2009_draw_rectangle(i8* %0, i32 %1, i32 %2, i32 %3, i32 %4, i32 %5, i32 %6, i8 zeroext %7, i8 zeroext %8, i8 zeroext %9) {
%11 = alloca i8*
%12 = alloca i32
%13 = alloca i32
%14 = alloca i32
%15 = alloca i32
%16 = alloca i32
%17 = alloca i32
%18 = alloca i8
%19 = alloca i8
%20 = alloca i8
%21 = alloca i32
%22 = alloca i32
%23 = alloca i32
%24 = alloca i32
%25 = alloca i32
%26 = alloca i32
store i8* %0, i8** %11
store i32 %1, i32* %12
store i32 %2, i32* %13
store i32 %3, i32* %14
store i32 %4, i32* %15
store i32 %5, i32* %16
store i32 %6, i32* %17
store i8 %7, i8* %18
store i8 %8, i8* %19
store i8 %9, i8* %20
%27 = load i32, i32* %15
store i32 %27, i32* %21
br label %28
28: ; preds = %137, %10
%29 = load i32, i32* %21
%30 = load i32, i32* %17
%31 = icmp sle i32 %29, %30
br i1 %31, label %32, label %140
32: ; preds = %28
store i32 0, i32* %22
br label %33
33: ; preds = %133, %32
%34 = load i32, i32* %22
%35 = icmp slt i32 %34, 4
br i1 %35, label %36, label %136
36: ; preds = %33
%37 = load i32, i32* %14
%38 = load i32, i32* %22
%39 = sub nsw i32 %37, %38
store i32 %39, i32* %23
%40 = load i32, i32* %16
%41 = load i32, i32* %22
%42 = add nsw i32 %40, %41
store i32 %42, i32* %24
%43 = load i32, i32* %15
%44 = icmp sge i32 %43, 0
br i1 %44, label %45, label %132
45: ; preds = %36
%46 = load i32, i32* %15
%47 = load i32, i32* %13
%48 = icmp slt i32 %46, %47
br i1 %48, label %49, label %132
49: ; preds = %45
%50 = load i32, i32* %23
%51 = icmp sge i32 %50, 0
br i1 %51, label %52, label %90
52: ; preds = %49
%53 = load i32, i32* %23
%54 = load i32, i32* %12
%55 = icmp slt i32 %53, %54
br i1 %55, label %56, label %90
56: ; preds = %52
%57 = load i8, i8* %18
%58 = load i8*, i8** %11
%59 = load i32, i32* %23
%60 = load i32, i32* %21
%61 = load i32, i32* %12
%62 = mul nsw i32 %60, %61
%63 = add nsw i32 %59, %62
%64 = mul nsw i32 %63, 3
%65 = add nsw i32 %64, 0
%66 = sext i32 %65 to i64
%67 = getelementptr inbounds i8, i8* %58, i64 %66
store i8 %57, i8* %67
%68 = load i8, i8* %19
%69 = load i8*, i8** %11
%70 = load i32, i32* %23
%71 = load i32, i32* %21
%72 = load i32, i32* %12
%73 = mul nsw i32 %71, %72
%74 = add nsw i32 %70, %73
%75 = mul nsw i32 %74, 3
%76 = add nsw i32 %75, 1
%77 = sext i32 %76 to i64
%78 = getelementptr inbounds i8, i8* %69, i64 %77
store i8 %68, i8* %78
%79 = load i8, i8* %20
%80 = load i8*, i8** %11
%81 = load i32, i32* %23
%82 = load i32, i32* %21
%83 = load i32, i32* %12
%84 = mul nsw i32 %82, %83
%85 = add nsw i32 %81, %84
%86 = mul nsw i32 %85, 3
%87 = add nsw i32 %86, 2
%88 = sext i32 %87 to i64
%89 = getelementptr inbounds i8, i8* %80, i64 %88
store i8 %79, i8* %89
br label %90
90: ; preds = %56, %52, %49
%91 = load i32, i32* %24
%92 = icmp sge i32 %91, 0
br i1 %92, label %93, label %131
93: ; preds = %90
%94 = load i32, i32* %24
%95 = load i32, i32* %12
%96 = icmp slt i32 %94, %95
br i1 %96, label %97, label %131
97: ; preds = %93
%98 = load i8, i8* %18
%99 = load i8*, i8** %11
%100 = load i32, i32* %24
%101 = load i32, i32* %21
%102 = load i32, i32* %12
%103 = mul nsw i32 %101, %102
%104 = add nsw i32 %100, %103
%105 = mul nsw i32 %104, 3
%106 = add nsw i32 %105, 0
%107 = sext i32 %106 to i64
%108 = getelementptr inbounds i8, i8* %99, i64 %107
store i8 %98, i8* %108
%109 = load i8, i8* %19
%110 = load i8*, i8** %11
%111 = load i32, i32* %24
%112 = load i32, i32* %21
%113 = load i32, i32* %12
%114 = mul nsw i32 %112, %113
%115 = add nsw i32 %111, %114
%116 = mul nsw i32 %115, 3
%117 = add nsw i32 %116, 1
%118 = sext i32 %117 to i64
%119 = getelementptr inbounds i8, i8* %110, i64 %118
store i8 %109, i8* %119
%120 = load i8, i8* %20
%121 = load i8*, i8** %11
%122 = load i32, i32* %24
%123 = load i32, i32* %21
%124 = load i32, i32* %12
%125 = mul nsw i32 %123, %124
%126 = add nsw i32 %122, %125
%127 = mul nsw i32 %126, 3
%128 = add nsw i32 %127, 2
%129 = sext i32 %128 to i64
%130 = getelementptr inbounds i8, i8* %121, i64 %129
store i8 %120, i8* %130
br label %131
131: ; preds = %97, %93, %90
br label %132
132: ; preds = %131, %45, %36
br label %133
133: ; preds = %132
%134 = load i32, i32* %22
%135 = add nsw i32 %134, 1
store i32 %135, i32* %22
br label %33
136: ; preds = %33
br label %137
137: ; preds = %136
%138 = load i32, i32* %21
%139 = add nsw i32 %138, 1
store i32 %139, i32* %21
br label %28
140: ; preds = %28
%141 = load i32, i32* %14
%142 = sub nsw i32 %141, 4
%143 = add nsw i32 %142, 1
store i32 %143, i32* %21
br label %144
144: ; preds = %255, %140
%145 = load i32, i32* %21
%146 = load i32, i32* %16
%147 = add nsw i32 %146, 4
%148 = sub nsw i32 %147, 1
%149 = icmp sle i32 %145, %148
br i1 %149, label %150, label %258
150: ; preds = %144
store i32 0, i32* %22
br label %151
151: ; preds = %251, %150
%152 = load i32, i32* %22
%153 = icmp slt i32 %152, 4
br i1 %153, label %154, label %254
154: ; preds = %151
%155 = load i32, i32* %15
%156 = load i32, i32* %22
%157 = sub nsw i32 %155, %156
store i32 %157, i32* %25
%158 = load i32, i32* %17
%159 = load i32, i32* %22
%160 = add nsw i32 %158, %159
store i32 %160, i32* %26
%161 = load i32, i32* %14
%162 = icmp sge i32 %161, 0
br i1 %162, label %163, label %250
163: ; preds = %154
%164 = load i32, i32* %14
%165 = load i32, i32* %12
%166 = icmp slt i32 %164, %165
br i1 %166, label %167, label %250
167: ; preds = %163
%168 = load i32, i32* %25
%169 = icmp sge i32 %168, 0
br i1 %169, label %170, label %208
170: ; preds = %167
%171 = load i32, i32* %25
%172 = load i32, i32* %13
%173 = icmp slt i32 %171, %172
br i1 %173, label %174, label %208
174: ; preds = %170
%175 = load i8, i8* %18
%176 = load i8*, i8** %11
%177 = load i32, i32* %21
%178 = load i32, i32* %25
%179 = load i32, i32* %12
%180 = mul nsw i32 %178, %179
%181 = add nsw i32 %177, %180
%182 = mul nsw i32 %181, 3
%183 = add nsw i32 %182, 0
%184 = sext i32 %183 to i64
%185 = getelementptr inbounds i8, i8* %176, i64 %184
store i8 %175, i8* %185
%186 = load i8, i8* %19
%187 = load i8*, i8** %11
%188 = load i32, i32* %21
%189 = load i32, i32* %25
%190 = load i32, i32* %12
%191 = mul nsw i32 %189, %190
%192 = add nsw i32 %188, %191
%193 = mul nsw i32 %192, 3
%194 = add nsw i32 %193, 1
%195 = sext i32 %194 to i64
%196 = getelementptr inbounds i8, i8* %187, i64 %195
store i8 %186, i8* %196
%197 = load i8, i8* %20
%198 = load i8*, i8** %11
%199 = load i32, i32* %21
%200 = load i32, i32* %25
%201 = load i32, i32* %12
%202 = mul nsw i32 %200, %201
%203 = add nsw i32 %199, %202
%204 = mul nsw i32 %203, 3
%205 = add nsw i32 %204, 2
%206 = sext i32 %205 to i64
%207 = getelementptr inbounds i8, i8* %198, i64 %206
store i8 %197, i8* %207
br label %208
208: ; preds = %174, %170, %167
%209 = load i32, i32* %26
%210 = icmp sge i32 %209, 0
br i1 %210, label %211, label %249
211: ; preds = %208
%212 = load i32, i32* %26
%213 = load i32, i32* %13
%214 = icmp slt i32 %212, %213
br i1 %214, label %215, label %249
215: ; preds = %211
%216 = load i8, i8* %18
%217 = load i8*, i8** %11
%218 = load i32, i32* %21
%219 = load i32, i32* %26
%220 = load i32, i32* %12
%221 = mul nsw i32 %219, %220
%222 = add nsw i32 %218, %221
%223 = mul nsw i32 %222, 3
%224 = add nsw i32 %223, 0
%225 = sext i32 %224 to i64
%226 = getelementptr inbounds i8, i8* %217, i64 %225
store i8 %216, i8* %226
%227 = load i8, i8* %19
%228 = load i8*, i8** %11
%229 = load i32, i32* %21
%230 = load i32, i32* %26
%231 = load i32, i32* %12
%232 = mul nsw i32 %230, %231
%233 = add nsw i32 %229, %232
%234 = mul nsw i32 %233, 3
%235 = add nsw i32 %234, 1
%236 = sext i32 %235 to i64
%237 = getelementptr inbounds i8, i8* %228, i64 %236
store i8 %227, i8* %237
%238 = load i8, i8* %20
%239 = load i8*, i8** %11
%240 = load i32, i32* %21
%241 = load i32, i32* %26
%242 = load i32, i32* %12
%243 = mul nsw i32 %241, %242
%244 = add nsw i32 %240, %243
%245 = mul nsw i32 %244, 3
%246 = add nsw i32 %245, 2
%247 = sext i32 %246 to i64
%248 = getelementptr inbounds i8, i8* %239, i64 %247
store i8 %238, i8* %248
br label %249
249: ; preds = %215, %211, %208
br label %250
250: ; preds = %249, %163, %154
br label %251
251: ; preds = %250
%252 = load i32, i32* %22
%253 = add nsw i32 %252, 1
store i32 %253, i32* %22
br label %151
254: ; preds = %151
br label %255
255: ; preds = %254
%256 = load i32, i32* %21
%257 = add nsw i32 %256, 1
store i32 %257, i32* %21
br label %144
258: ; preds = %144
ret void
}

LLVM IR (-O2):
define void @alcon2009_draw_rectangle(i8* nocapture writeonly %0, i32 %1, i32 %2, i32 %3, i32 %4, i32 %5, i32 %6, i8 zeroext %7, i8 zeroext %8, i8 zeroext %9) {
%11 = icmp sgt i32 %4, %6
br i1 %11, label %130, label %12
12: ; preds = %10
%13 = icmp sgt i32 %4, -1
%14 = icmp slt i32 %4, %2
%15 = and i1 %13, %14
%16 = sext i32 %3 to i64
%17 = sext i32 %1 to i64
%18 = sext i32 %5 to i64
%19 = sext i32 %4 to i64
%20 = add i32 %6, 1
%21 = icmp sgt i32 %3, -1
%22 = icmp slt i32 %3, %1
%23 = and i1 %21, %22
%24 = icmp sgt i32 %5, -1
%25 = icmp slt i32 %5, %1
%26 = and i1 %24, %25
%27 = add nsw i64 %16, -1
%28 = add nsw i64 %18, 1
%29 = icmp sgt i32 %3, 0
%30 = icmp sle i32 %3, %1
%31 = and i1 %29, %30
%32 = icmp sgt i32 %5, -2
%33 = icmp slt i64 %28, %17
%34 = and i1 %32, %33
%35 = add nsw i64 %16, -2
%36 = add nsw i64 %18, 2
%37 = icmp sgt i32 %3, 1
%38 = icmp slt i64 %35, %17
%39 = and i1 %37, %38
%40 = icmp sgt i32 %5, -3
%41 = icmp slt i64 %36, %17
%42 = and i1 %40, %41
%43 = add nsw i64 %16, -3
%44 = add nsw i64 %18, 3
%45 = icmp sgt i32 %3, 2
%46 = icmp slt i64 %43, %17
%47 = and i1 %45, %46
%48 = icmp sgt i32 %5, -4
%49 = icmp slt i64 %44, %17
%50 = and i1 %48, %49
br label %51
51: ; preds = %12, %126
%52 = phi i64 [ %19, %12 ], [ %127, %126 ]
%53 = mul nsw i64 %52, %17
br i1 %15, label %54, label %126
54: ; preds = %51
br i1 %23, label %55, label %63
55: ; preds = %54
%56 = add nsw i64 %53, %16
%57 = mul nsw i64 %56, 3
%58 = getelementptr inbounds i8, i8* %0, i64 %57
store i8 %7, i8* %58
%59 = add nsw i64 %57, 1
%60 = getelementptr inbounds i8, i8* %0, i64 %59
store i8 %8, i8* %60
%61 = add nsw i64 %57, 2
%62 = getelementptr inbounds i8, i8* %0, i64 %61
store i8 %9, i8* %62
br label %63
63: ; preds = %55, %54
br i1 %26, label %64, label %72
64: ; preds = %63
%65 = add nsw i64 %53, %18
%66 = mul nsw i64 %65, 3
%67 = getelementptr inbounds i8, i8* %0, i64 %66
store i8 %7, i8* %67
%68 = add nsw i64 %66, 1
%69 = getelementptr inbounds i8, i8* %0, i64 %68
store i8 %8, i8* %69
%70 = add nsw i64 %66, 2
%71 = getelementptr inbounds i8, i8* %0, i64 %70
store i8 %9, i8* %71
br label %72
72: ; preds = %63, %64
br i1 %31, label %73, label %81
73: ; preds = %72
%74 = add nsw i64 %27, %53
%75 = mul nsw i64 %74, 3
%76 = getelementptr inbounds i8, i8* %0, i64 %75
store i8 %7, i8* %76
%77 = add nsw i64 %75, 1
%78 = getelementptr inbounds i8, i8* %0, i64 %77
store i8 %8, i8* %78
%79 = add nsw i64 %75, 2
%80 = getelementptr inbounds i8, i8* %0, i64 %79
store i8 %9, i8* %80
br label %81
81: ; preds = %73, %72
br i1 %34, label %82, label %90
82: ; preds = %81
%83 = add nsw i64 %28, %53
%84 = mul nsw i64 %83, 3
%85 = getelementptr inbounds i8, i8* %0, i64 %84
store i8 %7, i8* %85
%86 = add nsw i64 %84, 1
%87 = getelementptr inbounds i8, i8* %0, i64 %86
store i8 %8, i8* %87
%88 = add nsw i64 %84, 2
%89 = getelementptr inbounds i8, i8* %0, i64 %88
store i8 %9, i8* %89
br label %90
90: ; preds = %82, %81
br i1 %39, label %91, label %99
91: ; preds = %90
%92 = add nsw i64 %35, %53
%93 = mul nsw i64 %92, 3
%94 = getelementptr inbounds i8, i8* %0, i64 %93
store i8 %7, i8* %94
%95 = add nsw i64 %93, 1
%96 = getelementptr inbounds i8, i8* %0, i64 %95
store i8 %8, i8* %96
%97 = add nsw i64 %93, 2
%98 = getelementptr inbounds i8, i8* %0, i64 %97
store i8 %9, i8* %98
br label %99
99: ; preds = %91, %90
br i1 %42, label %100, label %108
100: ; preds = %99
%101 = add nsw i64 %36, %53
%102 = mul nsw i64 %101, 3
%103 = getelementptr inbounds i8, i8* %0, i64 %102
store i8 %7, i8* %103
%104 = add nsw i64 %102, 1
%105 = getelementptr inbounds i8, i8* %0, i64 %104
store i8 %8, i8* %105
%106 = add nsw i64 %102, 2
%107 = getelementptr inbounds i8, i8* %0, i64 %106
store i8 %9, i8* %107
br label %108
108: ; preds = %100, %99
br i1 %47, label %109, label %117
109: ; preds = %108
%110 = add nsw i64 %43, %53
%111 = mul nsw i64 %110, 3
%112 = getelementptr inbounds i8, i8* %0, i64 %111
store i8 %7, i8* %112
%113 = add nsw i64 %111, 1
%114 = getelementptr inbounds i8, i8* %0, i64 %113
store i8 %8, i8* %114
%115 = add nsw i64 %111, 2
%116 = getelementptr inbounds i8, i8* %0, i64 %115
store i8 %9, i8* %116
br label %117
117: ; preds = %109, %108
br i1 %50, label %118, label %126
118: ; preds = %117
%119 = add nsw i64 %44, %53
%120 = mul nsw i64 %119, 3
%121 = getelementptr inbounds i8, i8* %0, i64 %120
store i8 %7, i8* %121
%122 = add nsw i64 %120, 1
%123 = getelementptr inbounds i8, i8* %0, i64 %122
store i8 %8, i8* %123
%124 = add nsw i64 %120, 2
%125 = getelementptr inbounds i8, i8* %0, i64 %124
store i8 %9, i8* %125
br label %126
126: ; preds = %51, %118, %117
%127 = add nsw i64 %52, 1
%128 = trunc i64 %127 to i32
%129 = icmp eq i32 %20, %128
br i1 %129, label %130, label %51
130: ; preds = %126, %10
%131 = add i32 %3, -3
%132 = add nsw i32 %5, 3
%133 = icmp sgt i32 %131, %132
br i1 %133, label %260, label %134
134: ; preds = %130
%135 = icmp sgt i32 %3, -1
%136 = icmp slt i32 %3, %1
%137 = and i1 %135, %136
%138 = sext i32 %4 to i64
%139 = sext i32 %1 to i64
%140 = sext i32 %2 to i64
%141 = sext i32 %6 to i64
%142 = sext i32 %131 to i64
%143 = add i32 %5, 4
%144 = icmp sgt i32 %4, -1
%145 = icmp slt i32 %4, %2
%146 = and i1 %144, %145
%147 = mul nsw i64 %138, %139
%148 = icmp sgt i32 %6, -1
%149 = icmp slt i32 %6, %2
%150 = and i1 %148, %149
%151 = mul nsw i64 %141, %139
%152 = add nsw i64 %138, -1
%153 = add nsw i64 %141, 1
%154 = icmp sgt i32 %4, 0
%155 = icmp sle i32 %4, %2
%156 = and i1 %154, %155
%157 = mul nsw i64 %152, %139
%158 = icmp sgt i32 %6, -2
%159 = icmp slt i64 %153, %140
%160 = and i1 %158, %159
%161 = mul nsw i64 %153, %139
%162 = add nsw i64 %138, -2
%163 = add nsw i64 %141, 2
%164 = icmp sgt i32 %4, 1
%165 = icmp slt i64 %162, %140
%166 = and i1 %164, %165
%167 = mul nsw i64 %162, %139
%168 = icmp sgt i32 %6, -3
%169 = icmp slt i64 %163, %140
%170 = and i1 %168, %169
%171 = mul nsw i64 %163, %139
%172 = add nsw i64 %138, -3
%173 = add nsw i64 %141, 3
%174 = icmp sgt i32 %4, 2
%175 = icmp slt i64 %172, %140
%176 = and i1 %174, %175
%177 = mul nsw i64 %172, %139
%178 = icmp sgt i32 %6, -4
%179 = icmp slt i64 %173, %140
%180 = and i1 %178, %179
%181 = mul nsw i64 %173, %139
br label %182
182: ; preds = %134, %256
%183 = phi i64 [ %142, %134 ], [ %257, %256 ]
br i1 %137, label %184, label %256
184: ; preds = %182
br i1 %146, label %185, label %193
185: ; preds = %184
%186 = add nsw i64 %147, %183
%187 = mul nsw i64 %186, 3
%188 = getelementptr inbounds i8, i8* %0, i64 %187
store i8 %7, i8* %188
%189 = add nsw i64 %187, 1
%190 = getelementptr inbounds i8, i8* %0, i64 %189
store i8 %8, i8* %190
%191 = add nsw i64 %187, 2
%192 = getelementptr inbounds i8, i8* %0, i64 %191
store i8 %9, i8* %192
br label %193
193: ; preds = %185, %184
br i1 %150, label %194, label %202
194: ; preds = %193
%195 = add nsw i64 %151, %183
%196 = mul nsw i64 %195, 3
%197 = getelementptr inbounds i8, i8* %0, i64 %196
store i8 %7, i8* %197
%198 = add nsw i64 %196, 1
%199 = getelementptr inbounds i8, i8* %0, i64 %198
store i8 %8, i8* %199
%200 = add nsw i64 %196, 2
%201 = getelementptr inbounds i8, i8* %0, i64 %200
store i8 %9, i8* %201
br label %202
202: ; preds = %193, %194
br i1 %156, label %203, label %211
203: ; preds = %202
%204 = add nsw i64 %157, %183
%205 = mul nsw i64 %204, 3
%206 = getelementptr inbounds i8, i8* %0, i64 %205
store i8 %7, i8* %206
%207 = add nsw i64 %205, 1
%208 = getelementptr inbounds i8, i8* %0, i64 %207
store i8 %8, i8* %208
%209 = add nsw i64 %205, 2
%210 = getelementptr inbounds i8, i8* %0, i64 %209
store i8 %9, i8* %210
br label %211
211: ; preds = %203, %202
br i1 %160, label %212, label %220
212: ; preds = %211
%213 = add nsw i64 %161, %183
%214 = mul nsw i64 %213, 3
%215 = getelementptr inbounds i8, i8* %0, i64 %214
store i8 %7, i8* %215
%216 = add nsw i64 %214, 1
%217 = getelementptr inbounds i8, i8* %0, i64 %216
store i8 %8, i8* %217
%218 = add nsw i64 %214, 2
%219 = getelementptr inbounds i8, i8* %0, i64 %218
store i8 %9, i8* %219
br label %220
220: ; preds = %212, %211
br i1 %166, label %221, label %229
221: ; preds = %220
%222 = add nsw i64 %167, %183
%223 = mul nsw i64 %222, 3
%224 = getelementptr inbounds i8, i8* %0, i64 %223
store i8 %7, i8* %224
%225 = add nsw i64 %223, 1
%226 = getelementptr inbounds i8, i8* %0, i64 %225
store i8 %8, i8* %226
%227 = add nsw i64 %223, 2
%228 = getelementptr inbounds i8, i8* %0, i64 %227
store i8 %9, i8* %228
br label %229
229: ; preds = %221, %220
br i1 %170, label %230, label %238
230: ; preds = %229
%231 = add nsw i64 %171, %183
%232 = mul nsw i64 %231, 3
%233 = getelementptr inbounds i8, i8* %0, i64 %232
store i8 %7, i8* %233
%234 = add nsw i64 %232, 1
%235 = getelementptr inbounds i8, i8* %0, i64 %234
store i8 %8, i8* %235
%236 = add nsw i64 %232, 2
%237 = getelementptr inbounds i8, i8* %0, i64 %236
store i8 %9, i8* %237
br label %238
238: ; preds = %230, %229
br i1 %176, label %239, label %247
239: ; preds = %238
%240 = add nsw i64 %177, %183
%241 = mul nsw i64 %240, 3
%242 = getelementptr inbounds i8, i8* %0, i64 %241
store i8 %7, i8* %242
%243 = add nsw i64 %241, 1
%244 = getelementptr inbounds i8, i8* %0, i64 %243
store i8 %8, i8* %244
%245 = add nsw i64 %241, 2
%246 = getelementptr inbounds i8, i8* %0, i64 %245
store i8 %9, i8* %246
br label %247
247: ; preds = %239, %238
br i1 %180, label %248, label %256
248: ; preds = %247
%249 = add nsw i64 %181, %183
%250 = mul nsw i64 %249, 3
%251 = getelementptr inbounds i8, i8* %0, i64 %250
store i8 %7, i8* %251
%252 = add nsw i64 %250, 1
%253 = getelementptr inbounds i8, i8* %0, i64 %252
store i8 %8, i8* %253
%254 = add nsw i64 %250, 2
%255 = getelementptr inbounds i8, i8* %0, i64 %254
store i8 %9, i8* %255
br label %256
256: ; preds = %182, %248, %247
%257 = add nsw i64 %183, 1
%258 = trunc i64 %257 to i32
%259 = icmp eq i32 %143, %258
br i1 %259, label %260, label %182
260: ; preds = %256, %130
ret void
}