void updatepins(int score, int round) {
  int sizeofBox = 16;
  int sizeofXs = 5;
  int rowoffset2 = (4 * sizeofBox - 3 * sizeofBox) / 2;
  int rowoffset3 = rowoffset2 + (3 * sizeofBox - 2 * sizeofBox) / 2;
  int rowoffset4 = rowoffset3 + (2 * sizeofBox - sizeofBox) / 2;
  int boxnum;
  int horzposition = (320 - 20) / 2;
  int offset;
  offset = (sizeofBox - sizeofXs) / 2;
  drawX(horzposition + offset, 40 + offset, 5, 0);
  drawX(horzposition + offset + sizeofBox, 40 + offset, 5, 0);
  drawX(horzposition + offset + sizeofBox * 2, 40 + offset, 5, 0);
  drawX(horzposition + offset + sizeofBox * 3, 40 + offset, 5, 0);
  drawX(horzposition + offset + rowoffset2, 40 + offset + sizeofBox, 5, 0);
  drawX(horzposition + offset + rowoffset2 + sizeofBox, 40 + offset + sizeofBox,
        5, 0);
  drawX(horzposition + offset + rowoffset2 + sizeofBox * 2,
        40 + offset + sizeofBox, 5, 0);
  drawX(horzposition + offset + rowoffset3, 40 + offset + sizeofBox * 2, 5, 0);
  drawX(horzposition + offset + rowoffset3 + sizeofBox,
        40 + offset + sizeofBox * 2, 5, 0);
  drawX(horzposition + offset + rowoffset4, 40 + offset + sizeofBox * 3, 5, 0);
  if (score == 1) {
    drawX(horzposition + offset, 40 + offset, 5, 0XFFFF);
  }
  if (score == 2) {
    drawX(horzposition + offset, 40 + offset, 5, 0XFFFF);
    drawX(horzposition + offset + rowoffset2, 40 + offset + sizeofBox, 5,
          0XFFFF);
  }
  if (score == 3) {
    drawX(horzposition + offset, 40 + offset, 5, 0XFFFF);
    drawX(horzposition + offset + sizeofBox, 40 + offset, 5, 0XFFFF);
    drawX(horzposition + offset + rowoffset2, 40 + offset + sizeofBox, 5,
          0XFFFF);
  }
  if (score == 4) {
    drawX(horzposition + offset, 40 + offset, 5, 0XFFFF);
    drawX(horzposition + offset + sizeofBox, 40 + offset, 5, 0XFFFF);
    drawX(horzposition + offset + rowoffset2, 40 + offset + sizeofBox, 5,
          0XFFFF);
    drawX(horzposition + offset + rowoffset2 + sizeofBox,
          40 + offset + sizeofBox, 5, 0xFFFF);
  }
  if (score == 5) {
    drawX(horzposition + offset, 40 + offset, 5, 0XFFFF);
    drawX(horzposition + offset + sizeofBox, 40 + offset, 5, 0XFFFF);
    drawX(horzposition + offset + sizeofBox * 2, 40 + offset, 5, 0XFFFF);
    drawX(horzposition + offset + rowoffset2, 40 + offset + sizeofBox, 5,
          0XFFFF);
    drawX(horzposition + offset + rowoffset2 + sizeofBox,
          40 + offset + sizeofBox, 5, 0xFFFF);
  }
  if (score == 6) {
    drawX(horzposition + offset, 40 + offset, 5, 0XFFFF);
    drawX(horzposition + offset + sizeofBox, 40 + offset, 5, 0XFFFF);
    drawX(horzposition + offset + sizeofBox * 2, 40 + offset, 5, 0XFFFF);
    drawX(horzposition + offset + rowoffset2, 40 + offset + sizeofBox, 5,
          0XFFFF);
    drawX(horzposition + offset + rowoffset2 + sizeofBox,
          40 + offset + sizeofBox, 5, 0xFFFF);
    drawX(horzposition + offset + rowoffset3, 40 + offset + sizeofBox * 2, 5,
          0XFFFF);
  }
  if (score == 7) {
    drawX(horzposition + offset, 40 + offset, 5, 0XFFFF);
    drawX(horzposition + offset + sizeofBox, 40 + offset, 5, 0XFFFF);
    drawX(horzposition + offset + sizeofBox * 2, 40 + offset, 5, 0XFFFF);
    drawX(horzposition + offset + rowoffset2, 40 + offset + sizeofBox, 5,
          0XFFFF);
    drawX(horzposition + offset + rowoffset2 + sizeofBox,
          40 + offset + sizeofBox, 5, 0xFFFF);
    drawX(horzposition + offset + rowoffset3, 40 + offset + sizeofBox * 2, 5,
          0XFFFF);
    drawX(horzposition + offset + rowoffset3 + sizeofBox,
          40 + offset + sizeofBox * 2, 5, 0XFFFF);
  }
  if (score == 8) {
    drawX(horzposition + offset, 40 + offset, 5, 0XFFFF);
    drawX(horzposition + offset + sizeofBox, 40 + offset, 5, 0XFFFF);
    drawX(horzposition + offset + sizeofBox * 2, 40 + offset, 5, 0XFFFF);
    drawX(horzposition + offset + rowoffset2, 40 + offset + sizeofBox, 5,
          0XFFFF);
    drawX(horzposition + offset + rowoffset2 + sizeofBox,
          40 + offset + sizeofBox, 5, 0xFFFF);
    drawX(horzposition + offset + rowoffset3, 40 + offset + sizeofBox * 2, 5,
          0XFFFF);
    drawX(horzposition + offset + rowoffset3 + sizeofBox,
          40 + offset + sizeofBox * 2, 5, 0XFFFF);
    drawX(horzposition + offset + rowoffset4, 40 + offset + sizeofBox * 3, 5,
          0XFFFF);
  }
  if (score == 9) {
    drawX(horzposition + offset, 40 + offset, 5, 0XFFFF);
    drawX(horzposition + offset + sizeofBox, 40 + offset, 5, 0XFFFF);
    drawX(horzposition + offset + sizeofBox * 2, 40 + offset, 5, 0XFFFF);
    drawX(horzposition + offset + rowoffset2, 40 + offset + sizeofBox, 5,
          0XFFFF);
    drawX(horzposition + offset + rowoffset2 + sizeofBox,
          40 + offset + sizeofBox, 5, 0xFFFF);
    drawX(horzposition + offset + rowoffset2 + sizeofBox * 2,
          40 + offset + sizeofBox, 5, 0xFFFF);
    drawX(horzposition + offset + rowoffset3, 40 + offset + sizeofBox * 2, 5,
          0XFFFF);
    drawX(horzposition + offset + rowoffset3 + sizeofBox,
          40 + offset + sizeofBox * 2, 5, 0XFFFF);
    drawX(horzposition + offset + rowoffset4, 40 + offset + sizeofBox * 3, 5,
          0XFFFF);
  }
  if (score == 10) {
    drawX(horzposition + offset, 40 + offset, 5, 0XFFFF);
    drawX(horzposition + offset + sizeofBox, 40 + offset, 5, 0XFFFF);
    drawX(horzposition + offset + sizeofBox * 2, 40 + offset, 5, 0XFFFF);
    drawX(horzposition + offset + sizeofBox * 3, 40 + offset, 5, 0XFFFF);
    drawX(horzposition + offset + rowoffset2, 40 + offset + sizeofBox, 5,
          0XFFFF);
    drawX(horzposition + offset + rowoffset2 + sizeofBox,
          40 + offset + sizeofBox, 5, 0xFFFF);
    drawX(horzposition + offset + rowoffset2 + sizeofBox * 2,
          40 + offset + sizeofBox, 5, 0xFFFF);
    drawX(horzposition + offset + rowoffset3, 40 + offset + sizeofBox * 2, 5,
          0XFFFF);
    drawX(horzposition + offset + rowoffset3 + sizeofBox,
          40 + offset + sizeofBox * 2, 5, 0XFFFF);
    drawX(horzposition + offset + rowoffset4, 40 + offset + sizeofBox * 3, 5,
          0XFFFF);
  }
}


x86 assembly (clang, -O0):
<updatepins>:
push   %rbp
mov    %rsp,%rbp
sub    $0x30,%rsp
mov    %edi,-0x4(%rbp)
mov    %esi,-0x8(%rbp)
movl   $0x10,-0xc(%rbp)
movl   $0x5,-0x10(%rbp)
mov    -0xc(%rbp),%eax
shl    $0x2,%eax
imul   $0x3,-0xc(%rbp),%ecx
sub    %ecx,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
mov    %eax,-0x30(%rbp)
imul   $0x3,-0xc(%rbp),%eax
mov    -0xc(%rbp),%ecx
shl    $0x1,%ecx
sub    %ecx,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x30(%rbp),%eax
add    %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
mov    %eax,-0x2c(%rbp)
mov    -0xc(%rbp),%eax
shl    $0x1,%eax
sub    -0xc(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x2c(%rbp),%eax
add    %ecx,%eax
mov    %eax,-0x1c(%rbp)
movl   $0x96,-0x24(%rbp)
mov    -0xc(%rbp),%eax
sub    -0x10(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,-0x28(%rbp)
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    $0x5,%edx
xor    %ecx,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0xc(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    $0x5,%edx
xor    %ecx,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
mov    -0xc(%rbp),%eax
shl    $0x1,%eax
add    %eax,%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    $0x5,%edx
xor    %ecx,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
imul   $0x3,-0xc(%rbp),%eax
add    %eax,%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    $0x5,%edx
xor    %ecx,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0x14(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
add    -0xc(%rbp),%esi
mov    $0x5,%edx
xor    %ecx,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0x14(%rbp),%edi
add    -0xc(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
add    -0xc(%rbp),%esi
mov    $0x5,%edx
xor    %ecx,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0x14(%rbp),%edi
mov    -0xc(%rbp),%eax
shl    $0x1,%eax
add    %eax,%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
add    -0xc(%rbp),%esi
mov    $0x5,%edx
xor    %ecx,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0x18(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    -0xc(%rbp),%eax
shl    $0x1,%eax
add    %eax,%esi
mov    $0x5,%edx
xor    %ecx,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0x18(%rbp),%edi
add    -0xc(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    -0xc(%rbp),%eax
shl    $0x1,%eax
add    %eax,%esi
mov    $0x5,%edx
xor    %ecx,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0x1c(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
imul   $0x3,-0xc(%rbp),%eax
add    %eax,%esi
mov    $0x5,%edx
xor    %ecx,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
cmpl   $0x1,-0x4(%rbp)
jne    131b <updatepins+0x20b>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
cmpl   $0x2,-0x4(%rbp)
jne    1365 <updatepins+0x255>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0x14(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
add    -0xc(%rbp),%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
cmpl   $0x3,-0x4(%rbp)
jne    13cf <updatepins+0x2bf>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0xc(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0x14(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
add    -0xc(%rbp),%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
cmpl   $0x4,-0x4(%rbp)
jne    145f <updatepins+0x34f>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0xc(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0x14(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
add    -0xc(%rbp),%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0x14(%rbp),%edi
add    -0xc(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
add    -0xc(%rbp),%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
cmpl   $0x5,-0x4(%rbp)
jne    1514 <updatepins+0x404>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0xc(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
mov    -0xc(%rbp),%eax
shl    $0x1,%eax
add    %eax,%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0x14(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
add    -0xc(%rbp),%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0x14(%rbp),%edi
add    -0xc(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
add    -0xc(%rbp),%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
cmpl   $0x6,-0x4(%rbp)
jne    15f1 <updatepins+0x4e1>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0xc(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
mov    -0xc(%rbp),%eax
shl    $0x1,%eax
add    %eax,%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0x14(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
add    -0xc(%rbp),%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0x14(%rbp),%edi
add    -0xc(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
add    -0xc(%rbp),%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0x18(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    -0xc(%rbp),%eax
shl    $0x1,%eax
add    %eax,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
cmpl   $0x7,-0x4(%rbp)
jne    16f9 <updatepins+0x5e9>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0xc(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
mov    -0xc(%rbp),%eax
shl    $0x1,%eax
add    %eax,%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0x14(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
add    -0xc(%rbp),%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0x14(%rbp),%edi
add    -0xc(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
add    -0xc(%rbp),%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0x18(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    -0xc(%rbp),%eax
shl    $0x1,%eax
add    %eax,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0x18(%rbp),%edi
add    -0xc(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    -0xc(%rbp),%eax
shl    $0x1,%eax
add    %eax,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
cmpl   $0x8,-0x4(%rbp)
jne    1827 <updatepins+0x717>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0xc(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
mov    -0xc(%rbp),%eax
shl    $0x1,%eax
add    %eax,%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0x14(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
add    -0xc(%rbp),%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0x14(%rbp),%edi
add    -0xc(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
add    -0xc(%rbp),%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0x18(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    -0xc(%rbp),%eax
shl    $0x1,%eax
add    %eax,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0x18(%rbp),%edi
add    -0xc(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    -0xc(%rbp),%eax
shl    $0x1,%eax
add    %eax,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0x1c(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
imul   $0x3,-0xc(%rbp),%eax
add    %eax,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
cmpl   $0x9,-0x4(%rbp)
jne    1980 <updatepins+0x870>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0xc(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
mov    -0xc(%rbp),%eax
shl    $0x1,%eax
add    %eax,%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0x14(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
add    -0xc(%rbp),%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0x14(%rbp),%edi
add    -0xc(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
add    -0xc(%rbp),%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0x14(%rbp),%edi
mov    -0xc(%rbp),%eax
shl    $0x1,%eax
add    %eax,%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
add    -0xc(%rbp),%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0x18(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    -0xc(%rbp),%eax
shl    $0x1,%eax
add    %eax,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0x18(%rbp),%edi
add    -0xc(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    -0xc(%rbp),%eax
shl    $0x1,%eax
add    %eax,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0x1c(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
imul   $0x3,-0xc(%rbp),%eax
add    %eax,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
cmpl   $0xa,-0x4(%rbp)
jne    1afc <updatepins+0x9ec>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0xc(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
mov    -0xc(%rbp),%eax
shl    $0x1,%eax
add    %eax,%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
imul   $0x3,-0xc(%rbp),%eax
add    %eax,%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0x14(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
add    -0xc(%rbp),%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0x14(%rbp),%edi
add    -0xc(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
add    -0xc(%rbp),%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0x14(%rbp),%edi
mov    -0xc(%rbp),%eax
shl    $0x1,%eax
add    %eax,%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
add    -0xc(%rbp),%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0x18(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    -0xc(%rbp),%eax
shl    $0x1,%eax
add    %eax,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0x18(%rbp),%edi
add    -0xc(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
mov    -0xc(%rbp),%eax
shl    $0x1,%eax
add    %eax,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
mov    -0x24(%rbp),%edi
add    -0x28(%rbp),%edi
add    -0x1c(%rbp),%edi
mov    -0x28(%rbp),%esi
add    $0x28,%esi
imul   $0x3,-0xc(%rbp),%eax
add    %eax,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
mov    $0x0,%al
call   1030 <drawX@plt>
add    $0x30,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<updatepins>:
push   %rbx
mov    %edi,%ebx
mov    $0x9b,%edi
mov    $0x2d,%esi
mov    $0x5,%edx
xor    %ecx,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xab,%edi
mov    $0x2d,%esi
mov    $0x5,%edx
xor    %ecx,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xbb,%edi
mov    $0x2d,%esi
mov    $0x5,%edx
xor    %ecx,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xcb,%edi
mov    $0x2d,%esi
mov    $0x5,%edx
xor    %ecx,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xa3,%edi
mov    $0x3d,%esi
mov    $0x5,%edx
xor    %ecx,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xb3,%edi
mov    $0x3d,%esi
mov    $0x5,%edx
xor    %ecx,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xc3,%edi
mov    $0x3d,%esi
mov    $0x5,%edx
xor    %ecx,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xab,%edi
mov    $0x4d,%esi
mov    $0x5,%edx
xor    %ecx,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xbb,%edi
mov    $0x4d,%esi
mov    $0x5,%edx
xor    %ecx,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xb3,%edi
mov    $0x5d,%esi
mov    $0x5,%edx
xor    %ecx,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
add    $0xffffffff,%ebx
cmp    $0x9,%ebx
ja     122a <updatepins+0x11a>
lea    0xdee(%rip),%rax
movslq (%rax,%rbx,4),%rcx
add    %rax,%rcx
jmp    *%rcx
mov    $0x9b,%edi
mov    $0x2d,%esi
jmp    1607 <updatepins+0x4f7>
pop    %rbx
ret
mov    $0x9b,%edi
jmp    1253 <updatepins+0x143>
mov    $0x9b,%edi
mov    $0x2d,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xab,%edi
mov    $0x2d,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xa3,%edi
jmp    1306 <updatepins+0x1f6>
mov    $0x9b,%edi
mov    $0x2d,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xab,%edi
jmp    12d0 <updatepins+0x1c0>
mov    $0x9b,%edi
mov    $0x2d,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xab,%edi
mov    $0x2d,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xbb,%edi
mov    $0x2d,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xa3,%edi
mov    $0x3d,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xb3,%edi
mov    $0x3d,%esi
jmp    1607 <updatepins+0x4f7>
mov    $0x9b,%edi
mov    $0x2d,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xab,%edi
mov    $0x2d,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xbb,%edi
mov    $0x2d,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xa3,%edi
mov    $0x3d,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xb3,%edi
mov    $0x3d,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xab,%edi
mov    $0x4d,%esi
jmp    1607 <updatepins+0x4f7>
mov    $0x9b,%edi
mov    $0x2d,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xab,%edi
mov    $0x2d,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xbb,%edi
mov    $0x2d,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xa3,%edi
mov    $0x3d,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xb3,%edi
mov    $0x3d,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xab,%edi
mov    $0x4d,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xbb,%edi
mov    $0x4d,%esi
jmp    1607 <updatepins+0x4f7>
mov    $0x9b,%edi
mov    $0x2d,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xab,%edi
mov    $0x2d,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xbb,%edi
mov    $0x2d,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xa3,%edi
mov    $0x3d,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xb3,%edi
jmp    15b1 <updatepins+0x4a1>
mov    $0x9b,%edi
mov    $0x2d,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xab,%edi
mov    $0x2d,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xbb,%edi
mov    $0x2d,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xcb,%edi
jmp    1560 <updatepins+0x450>
mov    $0x9b,%edi
mov    $0x2d,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xab,%edi
mov    $0x2d,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xbb,%edi
mov    $0x2d,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xa3,%edi
mov    $0x3d,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xb3,%edi
mov    $0x3d,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xc3,%edi
mov    $0x3d,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xab,%edi
mov    $0x4d,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xbb,%edi
mov    $0x4d,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
xor    %eax,%eax
call   1030 <drawX@plt>
mov    $0xb3,%edi
mov    $0x5d,%esi
mov    $0x5,%edx
mov    $0xffff,%ecx
xor    %eax,%eax
pop    %rbx
jmp    1030 <drawX@plt>

LLVM IR (-O0):
define void @updatepins(i32 %0, i32 %1) {
%3 = alloca i32
%4 = alloca i32
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
%9 = alloca i32
%10 = alloca i32
%11 = alloca i32
%12 = alloca i32
store i32 %0, i32* %3
store i32 %1, i32* %4
store i32 16, i32* %5
store i32 5, i32* %6
%13 = load i32, i32* %5
%14 = mul nsw i32 4, %13
%15 = load i32, i32* %5
%16 = mul nsw i32 3, %15
%17 = sub nsw i32 %14, %16
%18 = sdiv i32 %17, 2
store i32 %18, i32* %7
%19 = load i32, i32* %7
%20 = load i32, i32* %5
%21 = mul nsw i32 3, %20
%22 = load i32, i32* %5
%23 = mul nsw i32 2, %22
%24 = sub nsw i32 %21, %23
%25 = sdiv i32 %24, 2
%26 = add nsw i32 %19, %25
store i32 %26, i32* %8
%27 = load i32, i32* %8
%28 = load i32, i32* %5
%29 = mul nsw i32 2, %28
%30 = load i32, i32* %5
%31 = sub nsw i32 %29, %30
%32 = sdiv i32 %31, 2
%33 = add nsw i32 %27, %32
store i32 %33, i32* %9
store i32 150, i32* %11
%34 = load i32, i32* %5
%35 = load i32, i32* %6
%36 = sub nsw i32 %34, %35
%37 = sdiv i32 %36, 2
store i32 %37, i32* %12
%38 = load i32, i32* %11
%39 = load i32, i32* %12
%40 = add nsw i32 %38, %39
%41 = load i32, i32* %12
%42 = add nsw i32 40, %41
%43 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %40, i32 %42, i32 5, i32 0)
%44 = load i32, i32* %11
%45 = load i32, i32* %12
%46 = add nsw i32 %44, %45
%47 = load i32, i32* %5
%48 = add nsw i32 %46, %47
%49 = load i32, i32* %12
%50 = add nsw i32 40, %49
%51 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %48, i32 %50, i32 5, i32 0)
%52 = load i32, i32* %11
%53 = load i32, i32* %12
%54 = add nsw i32 %52, %53
%55 = load i32, i32* %5
%56 = mul nsw i32 %55, 2
%57 = add nsw i32 %54, %56
%58 = load i32, i32* %12
%59 = add nsw i32 40, %58
%60 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %57, i32 %59, i32 5, i32 0)
%61 = load i32, i32* %11
%62 = load i32, i32* %12
%63 = add nsw i32 %61, %62
%64 = load i32, i32* %5
%65 = mul nsw i32 %64, 3
%66 = add nsw i32 %63, %65
%67 = load i32, i32* %12
%68 = add nsw i32 40, %67
%69 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %66, i32 %68, i32 5, i32 0)
%70 = load i32, i32* %11
%71 = load i32, i32* %12
%72 = add nsw i32 %70, %71
%73 = load i32, i32* %7
%74 = add nsw i32 %72, %73
%75 = load i32, i32* %12
%76 = add nsw i32 40, %75
%77 = load i32, i32* %5
%78 = add nsw i32 %76, %77
%79 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %74, i32 %78, i32 5, i32 0)
%80 = load i32, i32* %11
%81 = load i32, i32* %12
%82 = add nsw i32 %80, %81
%83 = load i32, i32* %7
%84 = add nsw i32 %82, %83
%85 = load i32, i32* %5
%86 = add nsw i32 %84, %85
%87 = load i32, i32* %12
%88 = add nsw i32 40, %87
%89 = load i32, i32* %5
%90 = add nsw i32 %88, %89
%91 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %86, i32 %90, i32 5, i32 0)
%92 = load i32, i32* %11
%93 = load i32, i32* %12
%94 = add nsw i32 %92, %93
%95 = load i32, i32* %7
%96 = add nsw i32 %94, %95
%97 = load i32, i32* %5
%98 = mul nsw i32 %97, 2
%99 = add nsw i32 %96, %98
%100 = load i32, i32* %12
%101 = add nsw i32 40, %100
%102 = load i32, i32* %5
%103 = add nsw i32 %101, %102
%104 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %99, i32 %103, i32 5, i32 0)
%105 = load i32, i32* %11
%106 = load i32, i32* %12
%107 = add nsw i32 %105, %106
%108 = load i32, i32* %8
%109 = add nsw i32 %107, %108
%110 = load i32, i32* %12
%111 = add nsw i32 40, %110
%112 = load i32, i32* %5
%113 = mul nsw i32 %112, 2
%114 = add nsw i32 %111, %113
%115 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %109, i32 %114, i32 5, i32 0)
%116 = load i32, i32* %11
%117 = load i32, i32* %12
%118 = add nsw i32 %116, %117
%119 = load i32, i32* %8
%120 = add nsw i32 %118, %119
%121 = load i32, i32* %5
%122 = add nsw i32 %120, %121
%123 = load i32, i32* %12
%124 = add nsw i32 40, %123
%125 = load i32, i32* %5
%126 = mul nsw i32 %125, 2
%127 = add nsw i32 %124, %126
%128 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %122, i32 %127, i32 5, i32 0)
%129 = load i32, i32* %11
%130 = load i32, i32* %12
%131 = add nsw i32 %129, %130
%132 = load i32, i32* %9
%133 = add nsw i32 %131, %132
%134 = load i32, i32* %12
%135 = add nsw i32 40, %134
%136 = load i32, i32* %5
%137 = mul nsw i32 %136, 3
%138 = add nsw i32 %135, %137
%139 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %133, i32 %138, i32 5, i32 0)
%140 = load i32, i32* %3
%141 = icmp eq i32 %140, 1
br i1 %141, label %142, label %149
142: ; preds = %2
%143 = load i32, i32* %11
%144 = load i32, i32* %12
%145 = add nsw i32 %143, %144
%146 = load i32, i32* %12
%147 = add nsw i32 40, %146
%148 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %145, i32 %147, i32 5, i32 65535)
br label %149
149: ; preds = %142, %2
%150 = load i32, i32* %3
%151 = icmp eq i32 %150, 2
br i1 %151, label %152, label %169
152: ; preds = %149
%153 = load i32, i32* %11
%154 = load i32, i32* %12
%155 = add nsw i32 %153, %154
%156 = load i32, i32* %12
%157 = add nsw i32 40, %156
%158 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %155, i32 %157, i32 5, i32 65535)
%159 = load i32, i32* %11
%160 = load i32, i32* %12
%161 = add nsw i32 %159, %160
%162 = load i32, i32* %7
%163 = add nsw i32 %161, %162
%164 = load i32, i32* %12
%165 = add nsw i32 40, %164
%166 = load i32, i32* %5
%167 = add nsw i32 %165, %166
%168 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %163, i32 %167, i32 5, i32 65535)
br label %169
169: ; preds = %152, %149
%170 = load i32, i32* %3
%171 = icmp eq i32 %170, 3
br i1 %171, label %172, label %197
172: ; preds = %169
%173 = load i32, i32* %11
%174 = load i32, i32* %12
%175 = add nsw i32 %173, %174
%176 = load i32, i32* %12
%177 = add nsw i32 40, %176
%178 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %175, i32 %177, i32 5, i32 65535)
%179 = load i32, i32* %11
%180 = load i32, i32* %12
%181 = add nsw i32 %179, %180
%182 = load i32, i32* %5
%183 = add nsw i32 %181, %182
%184 = load i32, i32* %12
%185 = add nsw i32 40, %184
%186 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %183, i32 %185, i32 5, i32 65535)
%187 = load i32, i32* %11
%188 = load i32, i32* %12
%189 = add nsw i32 %187, %188
%190 = load i32, i32* %7
%191 = add nsw i32 %189, %190
%192 = load i32, i32* %12
%193 = add nsw i32 40, %192
%194 = load i32, i32* %5
%195 = add nsw i32 %193, %194
%196 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %191, i32 %195, i32 5, i32 65535)
br label %197
197: ; preds = %172, %169
%198 = load i32, i32* %3
%199 = icmp eq i32 %198, 4
br i1 %199, label %200, label %237
200: ; preds = %197
%201 = load i32, i32* %11
%202 = load i32, i32* %12
%203 = add nsw i32 %201, %202
%204 = load i32, i32* %12
%205 = add nsw i32 40, %204
%206 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %203, i32 %205, i32 5, i32 65535)
%207 = load i32, i32* %11
%208 = load i32, i32* %12
%209 = add nsw i32 %207, %208
%210 = load i32, i32* %5
%211 = add nsw i32 %209, %210
%212 = load i32, i32* %12
%213 = add nsw i32 40, %212
%214 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %211, i32 %213, i32 5, i32 65535)
%215 = load i32, i32* %11
%216 = load i32, i32* %12
%217 = add nsw i32 %215, %216
%218 = load i32, i32* %7
%219 = add nsw i32 %217, %218
%220 = load i32, i32* %12
%221 = add nsw i32 40, %220
%222 = load i32, i32* %5
%223 = add nsw i32 %221, %222
%224 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %219, i32 %223, i32 5, i32 65535)
%225 = load i32, i32* %11
%226 = load i32, i32* %12
%227 = add nsw i32 %225, %226
%228 = load i32, i32* %7
%229 = add nsw i32 %227, %228
%230 = load i32, i32* %5
%231 = add nsw i32 %229, %230
%232 = load i32, i32* %12
%233 = add nsw i32 40, %232
%234 = load i32, i32* %5
%235 = add nsw i32 %233, %234
%236 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %231, i32 %235, i32 5, i32 65535)
br label %237
237: ; preds = %200, %197
%238 = load i32, i32* %3
%239 = icmp eq i32 %238, 5
br i1 %239, label %240, label %286
240: ; preds = %237
%241 = load i32, i32* %11
%242 = load i32, i32* %12
%243 = add nsw i32 %241, %242
%244 = load i32, i32* %12
%245 = add nsw i32 40, %244
%246 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %243, i32 %245, i32 5, i32 65535)
%247 = load i32, i32* %11
%248 = load i32, i32* %12
%249 = add nsw i32 %247, %248
%250 = load i32, i32* %5
%251 = add nsw i32 %249, %250
%252 = load i32, i32* %12
%253 = add nsw i32 40, %252
%254 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %251, i32 %253, i32 5, i32 65535)
%255 = load i32, i32* %11
%256 = load i32, i32* %12
%257 = add nsw i32 %255, %256
%258 = load i32, i32* %5
%259 = mul nsw i32 %258, 2
%260 = add nsw i32 %257, %259
%261 = load i32, i32* %12
%262 = add nsw i32 40, %261
%263 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %260, i32 %262, i32 5, i32 65535)
%264 = load i32, i32* %11
%265 = load i32, i32* %12
%266 = add nsw i32 %264, %265
%267 = load i32, i32* %7
%268 = add nsw i32 %266, %267
%269 = load i32, i32* %12
%270 = add nsw i32 40, %269
%271 = load i32, i32* %5
%272 = add nsw i32 %270, %271
%273 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %268, i32 %272, i32 5, i32 65535)
%274 = load i32, i32* %11
%275 = load i32, i32* %12
%276 = add nsw i32 %274, %275
%277 = load i32, i32* %7
%278 = add nsw i32 %276, %277
%279 = load i32, i32* %5
%280 = add nsw i32 %278, %279
%281 = load i32, i32* %12
%282 = add nsw i32 40, %281
%283 = load i32, i32* %5
%284 = add nsw i32 %282, %283
%285 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %280, i32 %284, i32 5, i32 65535)
br label %286
286: ; preds = %240, %237
%287 = load i32, i32* %3
%288 = icmp eq i32 %287, 6
br i1 %288, label %289, label %346
289: ; preds = %286
%290 = load i32, i32* %11
%291 = load i32, i32* %12
%292 = add nsw i32 %290, %291
%293 = load i32, i32* %12
%294 = add nsw i32 40, %293
%295 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %292, i32 %294, i32 5, i32 65535)
%296 = load i32, i32* %11
%297 = load i32, i32* %12
%298 = add nsw i32 %296, %297
%299 = load i32, i32* %5
%300 = add nsw i32 %298, %299
%301 = load i32, i32* %12
%302 = add nsw i32 40, %301
%303 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %300, i32 %302, i32 5, i32 65535)
%304 = load i32, i32* %11
%305 = load i32, i32* %12
%306 = add nsw i32 %304, %305
%307 = load i32, i32* %5
%308 = mul nsw i32 %307, 2
%309 = add nsw i32 %306, %308
%310 = load i32, i32* %12
%311 = add nsw i32 40, %310
%312 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %309, i32 %311, i32 5, i32 65535)
%313 = load i32, i32* %11
%314 = load i32, i32* %12
%315 = add nsw i32 %313, %314
%316 = load i32, i32* %7
%317 = add nsw i32 %315, %316
%318 = load i32, i32* %12
%319 = add nsw i32 40, %318
%320 = load i32, i32* %5
%321 = add nsw i32 %319, %320
%322 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %317, i32 %321, i32 5, i32 65535)
%323 = load i32, i32* %11
%324 = load i32, i32* %12
%325 = add nsw i32 %323, %324
%326 = load i32, i32* %7
%327 = add nsw i32 %325, %326
%328 = load i32, i32* %5
%329 = add nsw i32 %327, %328
%330 = load i32, i32* %12
%331 = add nsw i32 40, %330
%332 = load i32, i32* %5
%333 = add nsw i32 %331, %332
%334 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %329, i32 %333, i32 5, i32 65535)
%335 = load i32, i32* %11
%336 = load i32, i32* %12
%337 = add nsw i32 %335, %336
%338 = load i32, i32* %8
%339 = add nsw i32 %337, %338
%340 = load i32, i32* %12
%341 = add nsw i32 40, %340
%342 = load i32, i32* %5
%343 = mul nsw i32 %342, 2
%344 = add nsw i32 %341, %343
%345 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %339, i32 %344, i32 5, i32 65535)
br label %346
346: ; preds = %289, %286
%347 = load i32, i32* %3
%348 = icmp eq i32 %347, 7
br i1 %348, label %349, label %419
349: ; preds = %346
%350 = load i32, i32* %11
%351 = load i32, i32* %12
%352 = add nsw i32 %350, %351
%353 = load i32, i32* %12
%354 = add nsw i32 40, %353
%355 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %352, i32 %354, i32 5, i32 65535)
%356 = load i32, i32* %11
%357 = load i32, i32* %12
%358 = add nsw i32 %356, %357
%359 = load i32, i32* %5
%360 = add nsw i32 %358, %359
%361 = load i32, i32* %12
%362 = add nsw i32 40, %361
%363 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %360, i32 %362, i32 5, i32 65535)
%364 = load i32, i32* %11
%365 = load i32, i32* %12
%366 = add nsw i32 %364, %365
%367 = load i32, i32* %5
%368 = mul nsw i32 %367, 2
%369 = add nsw i32 %366, %368
%370 = load i32, i32* %12
%371 = add nsw i32 40, %370
%372 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %369, i32 %371, i32 5, i32 65535)
%373 = load i32, i32* %11
%374 = load i32, i32* %12
%375 = add nsw i32 %373, %374
%376 = load i32, i32* %7
%377 = add nsw i32 %375, %376
%378 = load i32, i32* %12
%379 = add nsw i32 40, %378
%380 = load i32, i32* %5
%381 = add nsw i32 %379, %380
%382 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %377, i32 %381, i32 5, i32 65535)
%383 = load i32, i32* %11
%384 = load i32, i32* %12
%385 = add nsw i32 %383, %384
%386 = load i32, i32* %7
%387 = add nsw i32 %385, %386
%388 = load i32, i32* %5
%389 = add nsw i32 %387, %388
%390 = load i32, i32* %12
%391 = add nsw i32 40, %390
%392 = load i32, i32* %5
%393 = add nsw i32 %391, %392
%394 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %389, i32 %393, i32 5, i32 65535)
%395 = load i32, i32* %11
%396 = load i32, i32* %12
%397 = add nsw i32 %395, %396
%398 = load i32, i32* %8
%399 = add nsw i32 %397, %398
%400 = load i32, i32* %12
%401 = add nsw i32 40, %400
%402 = load i32, i32* %5
%403 = mul nsw i32 %402, 2
%404 = add nsw i32 %401, %403
%405 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %399, i32 %404, i32 5, i32 65535)
%406 = load i32, i32* %11
%407 = load i32, i32* %12
%408 = add nsw i32 %406, %407
%409 = load i32, i32* %8
%410 = add nsw i32 %408, %409
%411 = load i32, i32* %5
%412 = add nsw i32 %410, %411
%413 = load i32, i32* %12
%414 = add nsw i32 40, %413
%415 = load i32, i32* %5
%416 = mul nsw i32 %415, 2
%417 = add nsw i32 %414, %416
%418 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %412, i32 %417, i32 5, i32 65535)
br label %419
419: ; preds = %349, %346
%420 = load i32, i32* %3
%421 = icmp eq i32 %420, 8
br i1 %421, label %422, label %503
422: ; preds = %419
%423 = load i32, i32* %11
%424 = load i32, i32* %12
%425 = add nsw i32 %423, %424
%426 = load i32, i32* %12
%427 = add nsw i32 40, %426
%428 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %425, i32 %427, i32 5, i32 65535)
%429 = load i32, i32* %11
%430 = load i32, i32* %12
%431 = add nsw i32 %429, %430
%432 = load i32, i32* %5
%433 = add nsw i32 %431, %432
%434 = load i32, i32* %12
%435 = add nsw i32 40, %434
%436 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %433, i32 %435, i32 5, i32 65535)
%437 = load i32, i32* %11
%438 = load i32, i32* %12
%439 = add nsw i32 %437, %438
%440 = load i32, i32* %5
%441 = mul nsw i32 %440, 2
%442 = add nsw i32 %439, %441
%443 = load i32, i32* %12
%444 = add nsw i32 40, %443
%445 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %442, i32 %444, i32 5, i32 65535)
%446 = load i32, i32* %11
%447 = load i32, i32* %12
%448 = add nsw i32 %446, %447
%449 = load i32, i32* %7
%450 = add nsw i32 %448, %449
%451 = load i32, i32* %12
%452 = add nsw i32 40, %451
%453 = load i32, i32* %5
%454 = add nsw i32 %452, %453
%455 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %450, i32 %454, i32 5, i32 65535)
%456 = load i32, i32* %11
%457 = load i32, i32* %12
%458 = add nsw i32 %456, %457
%459 = load i32, i32* %7
%460 = add nsw i32 %458, %459
%461 = load i32, i32* %5
%462 = add nsw i32 %460, %461
%463 = load i32, i32* %12
%464 = add nsw i32 40, %463
%465 = load i32, i32* %5
%466 = add nsw i32 %464, %465
%467 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %462, i32 %466, i32 5, i32 65535)
%468 = load i32, i32* %11
%469 = load i32, i32* %12
%470 = add nsw i32 %468, %469
%471 = load i32, i32* %8
%472 = add nsw i32 %470, %471
%473 = load i32, i32* %12
%474 = add nsw i32 40, %473
%475 = load i32, i32* %5
%476 = mul nsw i32 %475, 2
%477 = add nsw i32 %474, %476
%478 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %472, i32 %477, i32 5, i32 65535)
%479 = load i32, i32* %11
%480 = load i32, i32* %12
%481 = add nsw i32 %479, %480
%482 = load i32, i32* %8
%483 = add nsw i32 %481, %482
%484 = load i32, i32* %5
%485 = add nsw i32 %483, %484
%486 = load i32, i32* %12
%487 = add nsw i32 40, %486
%488 = load i32, i32* %5
%489 = mul nsw i32 %488, 2
%490 = add nsw i32 %487, %489
%491 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %485, i32 %490, i32 5, i32 65535)
%492 = load i32, i32* %11
%493 = load i32, i32* %12
%494 = add nsw i32 %492, %493
%495 = load i32, i32* %9
%496 = add nsw i32 %494, %495
%497 = load i32, i32* %12
%498 = add nsw i32 40, %497
%499 = load i32, i32* %5
%500 = mul nsw i32 %499, 3
%501 = add nsw i32 %498, %500
%502 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %496, i32 %501, i32 5, i32 65535)
br label %503
503: ; preds = %422, %419
%504 = load i32, i32* %3
%505 = icmp eq i32 %504, 9
br i1 %505, label %506, label %600
506: ; preds = %503
%507 = load i32, i32* %11
%508 = load i32, i32* %12
%509 = add nsw i32 %507, %508
%510 = load i32, i32* %12
%511 = add nsw i32 40, %510
%512 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %509, i32 %511, i32 5, i32 65535)
%513 = load i32, i32* %11
%514 = load i32, i32* %12
%515 = add nsw i32 %513, %514
%516 = load i32, i32* %5
%517 = add nsw i32 %515, %516
%518 = load i32, i32* %12
%519 = add nsw i32 40, %518
%520 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %517, i32 %519, i32 5, i32 65535)
%521 = load i32, i32* %11
%522 = load i32, i32* %12
%523 = add nsw i32 %521, %522
%524 = load i32, i32* %5
%525 = mul nsw i32 %524, 2
%526 = add nsw i32 %523, %525
%527 = load i32, i32* %12
%528 = add nsw i32 40, %527
%529 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %526, i32 %528, i32 5, i32 65535)
%530 = load i32, i32* %11
%531 = load i32, i32* %12
%532 = add nsw i32 %530, %531
%533 = load i32, i32* %7
%534 = add nsw i32 %532, %533
%535 = load i32, i32* %12
%536 = add nsw i32 40, %535
%537 = load i32, i32* %5
%538 = add nsw i32 %536, %537
%539 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %534, i32 %538, i32 5, i32 65535)
%540 = load i32, i32* %11
%541 = load i32, i32* %12
%542 = add nsw i32 %540, %541
%543 = load i32, i32* %7
%544 = add nsw i32 %542, %543
%545 = load i32, i32* %5
%546 = add nsw i32 %544, %545
%547 = load i32, i32* %12
%548 = add nsw i32 40, %547
%549 = load i32, i32* %5
%550 = add nsw i32 %548, %549
%551 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %546, i32 %550, i32 5, i32 65535)
%552 = load i32, i32* %11
%553 = load i32, i32* %12
%554 = add nsw i32 %552, %553
%555 = load i32, i32* %7
%556 = add nsw i32 %554, %555
%557 = load i32, i32* %5
%558 = mul nsw i32 %557, 2
%559 = add nsw i32 %556, %558
%560 = load i32, i32* %12
%561 = add nsw i32 40, %560
%562 = load i32, i32* %5
%563 = add nsw i32 %561, %562
%564 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %559, i32 %563, i32 5, i32 65535)
%565 = load i32, i32* %11
%566 = load i32, i32* %12
%567 = add nsw i32 %565, %566
%568 = load i32, i32* %8
%569 = add nsw i32 %567, %568
%570 = load i32, i32* %12
%571 = add nsw i32 40, %570
%572 = load i32, i32* %5
%573 = mul nsw i32 %572, 2
%574 = add nsw i32 %571, %573
%575 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %569, i32 %574, i32 5, i32 65535)
%576 = load i32, i32* %11
%577 = load i32, i32* %12
%578 = add nsw i32 %576, %577
%579 = load i32, i32* %8
%580 = add nsw i32 %578, %579
%581 = load i32, i32* %5
%582 = add nsw i32 %580, %581
%583 = load i32, i32* %12
%584 = add nsw i32 40, %583
%585 = load i32, i32* %5
%586 = mul nsw i32 %585, 2
%587 = add nsw i32 %584, %586
%588 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %582, i32 %587, i32 5, i32 65535)
%589 = load i32, i32* %11
%590 = load i32, i32* %12
%591 = add nsw i32 %589, %590
%592 = load i32, i32* %9
%593 = add nsw i32 %591, %592
%594 = load i32, i32* %12
%595 = add nsw i32 40, %594
%596 = load i32, i32* %5
%597 = mul nsw i32 %596, 3
%598 = add nsw i32 %595, %597
%599 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %593, i32 %598, i32 5, i32 65535)
br label %600
600: ; preds = %506, %503
%601 = load i32, i32* %3
%602 = icmp eq i32 %601, 10
br i1 %602, label %603, label %706
603: ; preds = %600
%604 = load i32, i32* %11
%605 = load i32, i32* %12
%606 = add nsw i32 %604, %605
%607 = load i32, i32* %12
%608 = add nsw i32 40, %607
%609 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %606, i32 %608, i32 5, i32 65535)
%610 = load i32, i32* %11
%611 = load i32, i32* %12
%612 = add nsw i32 %610, %611
%613 = load i32, i32* %5
%614 = add nsw i32 %612, %613
%615 = load i32, i32* %12
%616 = add nsw i32 40, %615
%617 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %614, i32 %616, i32 5, i32 65535)
%618 = load i32, i32* %11
%619 = load i32, i32* %12
%620 = add nsw i32 %618, %619
%621 = load i32, i32* %5
%622 = mul nsw i32 %621, 2
%623 = add nsw i32 %620, %622
%624 = load i32, i32* %12
%625 = add nsw i32 40, %624
%626 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %623, i32 %625, i32 5, i32 65535)
%627 = load i32, i32* %11
%628 = load i32, i32* %12
%629 = add nsw i32 %627, %628
%630 = load i32, i32* %5
%631 = mul nsw i32 %630, 3
%632 = add nsw i32 %629, %631
%633 = load i32, i32* %12
%634 = add nsw i32 40, %633
%635 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %632, i32 %634, i32 5, i32 65535)
%636 = load i32, i32* %11
%637 = load i32, i32* %12
%638 = add nsw i32 %636, %637
%639 = load i32, i32* %7
%640 = add nsw i32 %638, %639
%641 = load i32, i32* %12
%642 = add nsw i32 40, %641
%643 = load i32, i32* %5
%644 = add nsw i32 %642, %643
%645 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %640, i32 %644, i32 5, i32 65535)
%646 = load i32, i32* %11
%647 = load i32, i32* %12
%648 = add nsw i32 %646, %647
%649 = load i32, i32* %7
%650 = add nsw i32 %648, %649
%651 = load i32, i32* %5
%652 = add nsw i32 %650, %651
%653 = load i32, i32* %12
%654 = add nsw i32 40, %653
%655 = load i32, i32* %5
%656 = add nsw i32 %654, %655
%657 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %652, i32 %656, i32 5, i32 65535)
%658 = load i32, i32* %11
%659 = load i32, i32* %12
%660 = add nsw i32 %658, %659
%661 = load i32, i32* %7
%662 = add nsw i32 %660, %661
%663 = load i32, i32* %5
%664 = mul nsw i32 %663, 2
%665 = add nsw i32 %662, %664
%666 = load i32, i32* %12
%667 = add nsw i32 40, %666
%668 = load i32, i32* %5
%669 = add nsw i32 %667, %668
%670 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %665, i32 %669, i32 5, i32 65535)
%671 = load i32, i32* %11
%672 = load i32, i32* %12
%673 = add nsw i32 %671, %672
%674 = load i32, i32* %8
%675 = add nsw i32 %673, %674
%676 = load i32, i32* %12
%677 = add nsw i32 40, %676
%678 = load i32, i32* %5
%679 = mul nsw i32 %678, 2
%680 = add nsw i32 %677, %679
%681 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %675, i32 %680, i32 5, i32 65535)
%682 = load i32, i32* %11
%683 = load i32, i32* %12
%684 = add nsw i32 %682, %683
%685 = load i32, i32* %8
%686 = add nsw i32 %684, %685
%687 = load i32, i32* %5
%688 = add nsw i32 %686, %687
%689 = load i32, i32* %12
%690 = add nsw i32 40, %689
%691 = load i32, i32* %5
%692 = mul nsw i32 %691, 2
%693 = add nsw i32 %690, %692
%694 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %688, i32 %693, i32 5, i32 65535)
%695 = load i32, i32* %11
%696 = load i32, i32* %12
%697 = add nsw i32 %695, %696
%698 = load i32, i32* %9
%699 = add nsw i32 %697, %698
%700 = load i32, i32* %12
%701 = add nsw i32 40, %700
%702 = load i32, i32* %5
%703 = mul nsw i32 %702, 3
%704 = add nsw i32 %701, %703
%705 = call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 %699, i32 %704, i32 5, i32 65535)
br label %706
706: ; preds = %603, %600
ret void
}

LLVM IR (-O2):
define void @updatepins(i32 %0, i32 %1) {
%3 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 155, i32 45, i32 5, i32 0)
%4 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 171, i32 45, i32 5, i32 0)
%5 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 187, i32 45, i32 5, i32 0)
%6 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 203, i32 45, i32 5, i32 0)
%7 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 163, i32 61, i32 5, i32 0)
%8 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 179, i32 61, i32 5, i32 0)
%9 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 195, i32 61, i32 5, i32 0)
%10 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 171, i32 77, i32 5, i32 0)
%11 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 187, i32 77, i32 5, i32 0)
%12 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 179, i32 93, i32 5, i32 0)
switch i32 %0, label %78 [
i32 1, label %13
i32 2, label %15
i32 3, label %18
i32 4, label %22
i32 5, label %27
i32 6, label %33
i32 7, label %40
i32 8, label %48
i32 9, label %57
i32 10, label %67
]
13: ; preds = %2
%14 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 155, i32 45, i32 5, i32 65535)
br label %78
15: ; preds = %2
%16 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 155, i32 45, i32 5, i32 65535)
%17 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 163, i32 61, i32 5, i32 65535)
br label %78
18: ; preds = %2
%19 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 155, i32 45, i32 5, i32 65535)
%20 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 171, i32 45, i32 5, i32 65535)
%21 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 163, i32 61, i32 5, i32 65535)
br label %78
22: ; preds = %2
%23 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 155, i32 45, i32 5, i32 65535)
%24 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 171, i32 45, i32 5, i32 65535)
%25 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 163, i32 61, i32 5, i32 65535)
%26 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 179, i32 61, i32 5, i32 65535)
br label %78
27: ; preds = %2
%28 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 155, i32 45, i32 5, i32 65535)
%29 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 171, i32 45, i32 5, i32 65535)
%30 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 187, i32 45, i32 5, i32 65535)
%31 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 163, i32 61, i32 5, i32 65535)
%32 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 179, i32 61, i32 5, i32 65535)
br label %78
33: ; preds = %2
%34 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 155, i32 45, i32 5, i32 65535)
%35 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 171, i32 45, i32 5, i32 65535)
%36 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 187, i32 45, i32 5, i32 65535)
%37 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 163, i32 61, i32 5, i32 65535)
%38 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 179, i32 61, i32 5, i32 65535)
%39 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 171, i32 77, i32 5, i32 65535)
br label %78
40: ; preds = %2
%41 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 155, i32 45, i32 5, i32 65535)
%42 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 171, i32 45, i32 5, i32 65535)
%43 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 187, i32 45, i32 5, i32 65535)
%44 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 163, i32 61, i32 5, i32 65535)
%45 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 179, i32 61, i32 5, i32 65535)
%46 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 171, i32 77, i32 5, i32 65535)
%47 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 187, i32 77, i32 5, i32 65535)
br label %78
48: ; preds = %2
%49 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 155, i32 45, i32 5, i32 65535)
%50 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 171, i32 45, i32 5, i32 65535)
%51 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 187, i32 45, i32 5, i32 65535)
%52 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 163, i32 61, i32 5, i32 65535)
%53 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 179, i32 61, i32 5, i32 65535)
%54 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 171, i32 77, i32 5, i32 65535)
%55 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 187, i32 77, i32 5, i32 65535)
%56 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 179, i32 93, i32 5, i32 65535)
br label %78
57: ; preds = %2
%58 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 155, i32 45, i32 5, i32 65535)
%59 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 171, i32 45, i32 5, i32 65535)
%60 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 187, i32 45, i32 5, i32 65535)
%61 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 163, i32 61, i32 5, i32 65535)
%62 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 179, i32 61, i32 5, i32 65535)
%63 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 195, i32 61, i32 5, i32 65535)
%64 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 171, i32 77, i32 5, i32 65535)
%65 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 187, i32 77, i32 5, i32 65535)
%66 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 179, i32 93, i32 5, i32 65535)
br label %78
67: ; preds = %2
%68 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 155, i32 45, i32 5, i32 65535)
%69 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 171, i32 45, i32 5, i32 65535)
%70 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 187, i32 45, i32 5, i32 65535)
%71 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 203, i32 45, i32 5, i32 65535)
%72 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 163, i32 61, i32 5, i32 65535)
%73 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 179, i32 61, i32 5, i32 65535)
%74 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 195, i32 61, i32 5, i32 65535)
%75 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 171, i32 77, i32 5, i32 65535)
%76 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 187, i32 77, i32 5, i32 65535)
%77 = tail call i32 (i32, i32, i32, i32, ...) bitcast (i32 (...)* @drawX to i32 (i32, i32, i32, i32, ...)*)(i32 179, i32 93, i32 5, i32 65535)
br label %78
78: ; preds = %57, %48, %40, %33, %27, %22, %18, %15, %13, %2, %67
ret void
}