void form(char *program) {
  char tokens[4096][256];
  char states[4096][256];
  int ntok = 0;
  int dq = 0;
  int sq = 0;
  int ininclude = 0;
  int slash = 0;
  int sharp = 0;
  int bs = 0;
  int eolc = 0;
  int longc = 0;
  int qmark = 0;
  char first = '\0';
  char prev = '\0';
  char three = 0;
  int j = 0;
  char rach[] = "// /*";
  char c = '\0';
  for (int i = 0; i < strlen(program); i++) {
    prev = c;
    c = program[i];
    if (c == 0)
      break;
    if (bs) {
      if (c == '\n') {
        bs = 0;
        continue;
      } else {
        bs = 0;
        if (!eolc && !longc) {
          tokens[ntok][j++] = '\\';
          tokens[ntok][j++] = c;
        }
        continue;
      }
    }
    if (c == '\\') {
      bs = 1;
      continue;
    }
    if (eolc) {
      if (c == '\n') {
        eolc = 0;
        if (j) {
          j = 0;
          ntok++;
        };
        continue;
      } else {
        continue;
      }
    }
    if (longc) {
      if (c == '/' && longc == 2) {
        longc = 0;
        if (!sharp)
          if (j) {
            j = 0;
            ntok++;
          };
        continue;
      }
      if (c == '*') {
        longc = 2;
        continue;
      } else {
        continue;
      }
    }
    if (sq) {
      if (c == '\'') {
        tokens[ntok][j++] += '\'';
        sq = 0;
        if (j) {
          j = 0;
          ntok++;
        };
        continue;
      } else {
        tokens[ntok][j++] += c;
        continue;
      }
    }
    if (dq) {
      if (c == '"') {
        tokens[ntok][j++] += '"';
        dq = 0;
        if (j) {
          j = 0;
          ntok++;
        };
        continue;
      } else {
        tokens[ntok][j++] += c;
        continue;
      }
    }
    if (c == ' ' && !sharp && !sharp && !sharp && !sharp) {
      if (j) {
        j = 0;
        ntok++;
      };
      continue;
    }
    if (c == '\n' && !sharp) {
      if (j) {
        j = 0;
        ntok++;
      };
      continue;
    }
    if (c == '\n' && sharp) {
      sharp = 0;
      if (j) {
        j = 0;
        ntok++;
      };
      continue;
    }
    if (c == '#') {
      sharp = 1;
      tokens[ntok][j++] = c;
      continue;
    }
    if (c == '/' && first == '/') {
      first = '\0';
      eolc = 1;
      continue;
    }
    if (c == '*' && first == '/') {
      first = '\0';
      longc = 1;
      continue;
    }
    if (c != '/' && c != '\n' && sharp) {
      tokens[ntok][j++] += c;
      continue;
    }
    if (!first && index("()[];,?:", c)) {
      if (j) {
        j = 0;
        ntok++;
      };
      tokens[ntok][j++] = c;
      if (j) {
        j = 0;
        ntok++;
      };
      continue;
    }
    if (first) {
      if (first == '<' || first == '>') {
        if (three) {
          if (j) {
            j = 0;
            ntok++;
          };
          tokens[ntok][j++] = three;
          tokens[ntok][j++] = first;
          first = 0;
          three = 0;
          if (c == '=') {
            tokens[ntok][j++] = c;
            if (j) {
              j = 0;
              ntok++;
            };
          } else {
            if (j) {
              j = 0;
              ntok++;
            };
            if (index("/^+*%-=<>!&|", c)) {
              first = c;
            } else {
              first = 0;
              tokens[ntok][j++] = c;
            }
          }
          continue;
        }
        if (!three & first == c) {
          three = c;
          continue;
        }
      }
      char zee[4] = {first, c, ' ', 0};
      char *p =
          strstr("== ^= && || &= |= /= ++ -- += *= %= -= << >> <= >= != ", zee);
      if (p) {
        if (j) {
          j = 0;
          ntok++;
        };
        tokens[ntok][j++] = first;
        tokens[ntok][j++] = c;
        first = 0;
        if (j) {
          j = 0;
          ntok++;
        };
        continue;
      } else {
        if (j) {
          j = 0;
          ntok++;
        };
        tokens[ntok][j++] = first;
        if (j) {
          j = 0;
          ntok++;
        };
        if (c == '"') {
          first = 0;
          goto dqon;
        }
        if (c == '\'') {
          first = 0;
          goto sqon;
        }
        if (index("/^+*%-=<>!&|", c)) {
          first = c;
        } else {
          first = 0;
          tokens[ntok][j++] = c;
        }
        continue;
      }
    }
    if (index("/^+*%-=<>!&|", c) && !first) {
      first = c;
      continue;
    }
    if (c == '"') {
    dqon:
      dq = 1;
      if (j) {
        j = 0;
        ntok++;
      };
      tokens[ntok][j++] = c;
      continue;
    }
    if (c == '\'') {
    sqon:
      sq = 1;
      if (j) {
        j = 0;
        ntok++;
      };
      tokens[ntok][j++] = c;
      continue;
    }
    tokens[ntok][j++] = c;
  }
  for (int i = 0; i < ntok; ++i) {
    printf("%s\n", tokens[i]);
  }
}


x86 assembly (clang, -O0):
<form>:
push   %rbp
mov    %rsp,%rbp
sub    $0x200070,%rsp
mov    %rdi,-0x8(%rbp)
movl   $0x0,-0x200014(%rbp)
movl   $0x0,-0x200018(%rbp)
movl   $0x0,-0x20001c(%rbp)
movl   $0x0,-0x200020(%rbp)
movl   $0x0,-0x200024(%rbp)
movl   $0x0,-0x200028(%rbp)
movl   $0x0,-0x20002c(%rbp)
movl   $0x0,-0x200030(%rbp)
movl   $0x0,-0x200034(%rbp)
movl   $0x0,-0x200038(%rbp)
movb   $0x0,-0x200039(%rbp)
movb   $0x0,-0x20003a(%rbp)
movb   $0x0,-0x20003b(%rbp)
movl   $0x0,-0x200040(%rbp)
mov    0xe28(%rip),%eax
mov    %eax,-0x200046(%rbp)
mov    0xe1f(%rip),%ax
mov    %ax,-0x200042(%rbp)
movb   $0x0,-0x200047(%rbp)
movl   $0x0,-0x20004c(%rbp)
movslq -0x20004c(%rbp),%rax
mov    %rax,-0x200068(%rbp)
mov    -0x8(%rbp),%rdi
call   1030 <strlen@plt>
mov    %rax,%rcx
mov    -0x200068(%rbp),%rax
cmp    %rcx,%rax
jae    1e45 <form+0xd05>
mov    -0x200047(%rbp),%al
mov    %al,-0x20003a(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x20004c(%rbp),%rcx
mov    (%rax,%rcx,1),%al
mov    %al,-0x200047(%rbp)
movsbl -0x200047(%rbp),%eax
cmp    $0x0,%eax
jne    125c <form+0x11c>
jmp    1e45 <form+0xd05>
cmpl   $0x0,-0x20002c(%rbp)
je     1310 <form+0x1d0>
movsbl -0x200047(%rbp),%eax
cmp    $0xa,%eax
jne    1288 <form+0x148>
movl   $0x0,-0x20002c(%rbp)
jmp    1e31 <form+0xcf1>
movl   $0x0,-0x20002c(%rbp)
cmpl   $0x0,-0x200030(%rbp)
jne    130b <form+0x1cb>
cmpl   $0x0,-0x200034(%rbp)
jne    130b <form+0x1cb>
movslq -0x200014(%rbp),%rcx
lea    -0x100010(%rbp),%rax
shl    $0x8,%rcx
add    %rcx,%rax
mov    -0x200040(%rbp),%ecx
mov    %ecx,%edx
add    $0x1,%edx
mov    %edx,-0x200040(%rbp)
movslq %ecx,%rcx
movb   $0x5c,(%rax,%rcx,1)
mov    -0x200047(%rbp),%dl
movslq -0x200014(%rbp),%rcx
lea    -0x100010(%rbp),%rax
shl    $0x8,%rcx
add    %rcx,%rax
mov    -0x200040(%rbp),%ecx
mov    %ecx,%esi
add    $0x1,%esi
mov    %esi,-0x200040(%rbp)
movslq %ecx,%rcx
mov    %dl,(%rax,%rcx,1)
jmp    1e31 <form+0xcf1>
movsbl -0x200047(%rbp),%eax
cmp    $0x5c,%eax
jne    132f <form+0x1ef>
movl   $0x1,-0x20002c(%rbp)
jmp    1e31 <form+0xcf1>
cmpl   $0x0,-0x200030(%rbp)
je     1386 <form+0x246>
movsbl -0x200047(%rbp),%eax
cmp    $0xa,%eax
jne    1381 <form+0x241>
movl   $0x0,-0x200030(%rbp)
cmpl   $0x0,-0x200040(%rbp)
je     137c <form+0x23c>
movl   $0x0,-0x200040(%rbp)
mov    -0x200014(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x200014(%rbp)
jmp    1e31 <form+0xcf1>
jmp    1e31 <form+0xcf1>
cmpl   $0x0,-0x200034(%rbp)
je     141b <form+0x2db>
movsbl -0x200047(%rbp),%eax
cmp    $0x2f,%eax
jne    13f7 <form+0x2b7>
cmpl   $0x2,-0x200034(%rbp)
jne    13f7 <form+0x2b7>
movl   $0x0,-0x200034(%rbp)
cmpl   $0x0,-0x200028(%rbp)
jne    13f2 <form+0x2b2>
cmpl   $0x0,-0x200040(%rbp)
je     13ed <form+0x2ad>
movl   $0x0,-0x200040(%rbp)
mov    -0x200014(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x200014(%rbp)
jmp    13f2 <form+0x2b2>
jmp    1e31 <form+0xcf1>
movsbl -0x200047(%rbp),%eax
cmp    $0x2a,%eax
jne    1416 <form+0x2d6>
movl   $0x2,-0x200034(%rbp)
jmp    1e31 <form+0xcf1>
jmp    1e31 <form+0xcf1>
cmpl   $0x0,-0x20001c(%rbp)
je     14de <form+0x39e>
movsbl -0x200047(%rbp),%eax
cmp    $0x27,%eax
jne    14a0 <form+0x360>
movslq -0x200014(%rbp),%rcx
lea    -0x100010(%rbp),%rax
shl    $0x8,%rcx
add    %rcx,%rax
mov    -0x200040(%rbp),%ecx
mov    %ecx,%edx
add    $0x1,%edx
mov    %edx,-0x200040(%rbp)
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%edx
add    $0x27,%edx
mov    %dl,(%rax,%rcx,1)
movl   $0x0,-0x20001c(%rbp)
cmpl   $0x0,-0x200040(%rbp)
je     149b <form+0x35b>
movl   $0x0,-0x200040(%rbp)
mov    -0x200014(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x200014(%rbp)
jmp    1e31 <form+0xcf1>
movsbl -0x200047(%rbp),%esi
movslq -0x200014(%rbp),%rcx
lea    -0x100010(%rbp),%rax
shl    $0x8,%rcx
add    %rcx,%rax
mov    -0x200040(%rbp),%ecx
mov    %ecx,%edx
add    $0x1,%edx
mov    %edx,-0x200040(%rbp)
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%edx
add    %esi,%edx
mov    %dl,(%rax,%rcx,1)
jmp    1e31 <form+0xcf1>
cmpl   $0x0,-0x200018(%rbp)
je     15a1 <form+0x461>
movsbl -0x200047(%rbp),%eax
cmp    $0x22,%eax
jne    1563 <form+0x423>
movslq -0x200014(%rbp),%rcx
lea    -0x100010(%rbp),%rax
shl    $0x8,%rcx
add    %rcx,%rax
mov    -0x200040(%rbp),%ecx
mov    %ecx,%edx
add    $0x1,%edx
mov    %edx,-0x200040(%rbp)
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%edx
add    $0x22,%edx
mov    %dl,(%rax,%rcx,1)
movl   $0x0,-0x200018(%rbp)
cmpl   $0x0,-0x200040(%rbp)
je     155e <form+0x41e>
movl   $0x0,-0x200040(%rbp)
mov    -0x200014(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x200014(%rbp)
jmp    1e31 <form+0xcf1>
movsbl -0x200047(%rbp),%esi
movslq -0x200014(%rbp),%rcx
lea    -0x100010(%rbp),%rax
shl    $0x8,%rcx
add    %rcx,%rax
mov    -0x200040(%rbp),%ecx
mov    %ecx,%edx
add    $0x1,%edx
mov    %edx,-0x200040(%rbp)
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%edx
add    %esi,%edx
mov    %dl,(%rax,%rcx,1)
jmp    1e31 <form+0xcf1>
movsbl -0x200047(%rbp),%eax
cmp    $0x20,%eax
jne    1610 <form+0x4d0>
cmpl   $0x0,-0x200028(%rbp)
jne    1610 <form+0x4d0>
cmpl   $0x0,-0x200028(%rbp)
jne    1610 <form+0x4d0>
cmpl   $0x0,-0x200028(%rbp)
jne    1610 <form+0x4d0>
cmpl   $0x0,-0x200028(%rbp)
jne    1610 <form+0x4d0>
cmpl   $0x0,-0x200040(%rbp)
je     160b <form+0x4cb>
movl   $0x0,-0x200040(%rbp)
mov    -0x200014(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x200014(%rbp)
jmp    1e31 <form+0xcf1>
movsbl -0x200047(%rbp),%eax
cmp    $0xa,%eax
jne    1658 <form+0x518>
cmpl   $0x0,-0x200028(%rbp)
jne    1658 <form+0x518>
cmpl   $0x0,-0x200040(%rbp)
je     1653 <form+0x513>
movl   $0x0,-0x200040(%rbp)
mov    -0x200014(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x200014(%rbp)
jmp    1e31 <form+0xcf1>
movsbl -0x200047(%rbp),%eax
cmp    $0xa,%eax
jne    16aa <form+0x56a>
cmpl   $0x0,-0x200028(%rbp)
je     16aa <form+0x56a>
movl   $0x0,-0x200028(%rbp)
cmpl   $0x0,-0x200040(%rbp)
je     16a5 <form+0x565>
movl   $0x0,-0x200040(%rbp)
mov    -0x200014(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x200014(%rbp)
jmp    1e31 <form+0xcf1>
movsbl -0x200047(%rbp),%eax
cmp    $0x23,%eax
jne    16fb <form+0x5bb>
movl   $0x1,-0x200028(%rbp)
mov    -0x200047(%rbp),%dl
movslq -0x200014(%rbp),%rcx
lea    -0x100010(%rbp),%rax
shl    $0x8,%rcx
add    %rcx,%rax
mov    -0x200040(%rbp),%ecx
mov    %ecx,%esi
add    $0x1,%esi
mov    %esi,-0x200040(%rbp)
movslq %ecx,%rcx
mov    %dl,(%rax,%rcx,1)
jmp    1e31 <form+0xcf1>
movsbl -0x200047(%rbp),%eax
cmp    $0x2f,%eax
jne    1731 <form+0x5f1>
movsbl -0x200039(%rbp),%eax
cmp    $0x2f,%eax
jne    1731 <form+0x5f1>
movb   $0x0,-0x200039(%rbp)
movl   $0x1,-0x200030(%rbp)
jmp    1e31 <form+0xcf1>
movsbl -0x200047(%rbp),%eax
cmp    $0x2a,%eax
jne    1767 <form+0x627>
movsbl -0x200039(%rbp),%eax
cmp    $0x2f,%eax
jne    1767 <form+0x627>
movb   $0x0,-0x200039(%rbp)
movl   $0x1,-0x200034(%rbp)
jmp    1e31 <form+0xcf1>
movsbl -0x200047(%rbp),%eax
cmp    $0x2f,%eax
je     17d2 <form+0x692>
movsbl -0x200047(%rbp),%eax
cmp    $0xa,%eax
je     17d2 <form+0x692>
cmpl   $0x0,-0x200028(%rbp)
je     17d2 <form+0x692>
movsbl -0x200047(%rbp),%esi
movslq -0x200014(%rbp),%rcx
lea    -0x100010(%rbp),%rax
shl    $0x8,%rcx
add    %rcx,%rax
mov    -0x200040(%rbp),%ecx
mov    %ecx,%edx
add    $0x1,%edx
mov    %edx,-0x200040(%rbp)
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%edx
add    %esi,%edx
mov    %dl,(%rax,%rcx,1)
jmp    1e31 <form+0xcf1>
cmpb   $0x0,-0x200039(%rbp)
jne    187f <form+0x73f>
movsbl -0x200047(%rbp),%esi
lea    0x819(%rip),%rdi
call   1050 <index@plt>
cmp    $0x0,%rax
je     187f <form+0x73f>
cmpl   $0x0,-0x200040(%rbp)
je     1822 <form+0x6e2>
movl   $0x0,-0x200040(%rbp)
mov    -0x200014(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x200014(%rbp)
mov    -0x200047(%rbp),%dl
movslq -0x200014(%rbp),%rcx
lea    -0x100010(%rbp),%rax
shl    $0x8,%rcx
add    %rcx,%rax
mov    -0x200040(%rbp),%ecx
mov    %ecx,%esi
add    $0x1,%esi
mov    %esi,-0x200040(%rbp)
movslq %ecx,%rcx
mov    %dl,(%rax,%rcx,1)
cmpl   $0x0,-0x200040(%rbp)
je     187a <form+0x73a>
movl   $0x0,-0x200040(%rbp)
mov    -0x200014(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x200014(%rbp)
jmp    1e31 <form+0xcf1>
cmpb   $0x0,-0x200039(%rbp)
je     1ccc <form+0xb8c>
movsbl -0x200039(%rbp),%eax
cmp    $0x3c,%eax
je     18ac <form+0x76c>
movsbl -0x200039(%rbp),%eax
cmp    $0x3e,%eax
jne    1aa0 <form+0x960>
cmpb   $0x0,-0x20003b(%rbp)
je     1a55 <form+0x915>
cmpl   $0x0,-0x200040(%rbp)
je     18df <form+0x79f>
movl   $0x0,-0x200040(%rbp)
mov    -0x200014(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x200014(%rbp)
mov    -0x20003b(%rbp),%dl
movslq -0x200014(%rbp),%rcx
lea    -0x100010(%rbp),%rax
shl    $0x8,%rcx
add    %rcx,%rax
mov    -0x200040(%rbp),%ecx
mov    %ecx,%esi
add    $0x1,%esi
mov    %esi,-0x200040(%rbp)
movslq %ecx,%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x200039(%rbp),%dl
movslq -0x200014(%rbp),%rcx
lea    -0x100010(%rbp),%rax
shl    $0x8,%rcx
add    %rcx,%rax
mov    -0x200040(%rbp),%ecx
mov    %ecx,%esi
add    $0x1,%esi
mov    %esi,-0x200040(%rbp)
movslq %ecx,%rcx
mov    %dl,(%rax,%rcx,1)
movb   $0x0,-0x200039(%rbp)
movb   $0x0,-0x20003b(%rbp)
movsbl -0x200047(%rbp),%eax
cmp    $0x3d,%eax
jne    19be <form+0x87e>
mov    -0x200047(%rbp),%dl
movslq -0x200014(%rbp),%rcx
lea    -0x100010(%rbp),%rax
shl    $0x8,%rcx
add    %rcx,%rax
mov    -0x200040(%rbp),%ecx
mov    %ecx,%esi
add    $0x1,%esi
mov    %esi,-0x200040(%rbp)
movslq %ecx,%rcx
mov    %dl,(%rax,%rcx,1)
cmpl   $0x0,-0x200040(%rbp)
je     19b9 <form+0x879>
movl   $0x0,-0x200040(%rbp)
mov    -0x200014(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x200014(%rbp)
jmp    1a50 <form+0x910>
cmpl   $0x0,-0x200040(%rbp)
je     19e4 <form+0x8a4>
movl   $0x0,-0x200040(%rbp)
mov    -0x200014(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x200014(%rbp)
movsbl -0x200047(%rbp),%esi
lea    0x61d(%rip),%rdi
call   1050 <index@plt>
cmp    $0x0,%rax
je     1a12 <form+0x8d2>
mov    -0x200047(%rbp),%al
mov    %al,-0x200039(%rbp)
jmp    1a4b <form+0x90b>
movb   $0x0,-0x200039(%rbp)
mov    -0x200047(%rbp),%dl
movslq -0x200014(%rbp),%rcx
lea    -0x100010(%rbp),%rax
shl    $0x8,%rcx
add    %rcx,%rax
mov    -0x200040(%rbp),%ecx
mov    %ecx,%esi
add    $0x1,%esi
mov    %esi,-0x200040(%rbp)
movslq %ecx,%rcx
mov    %dl,(%rax,%rcx,1)
jmp    1a50 <form+0x910>
jmp    1e31 <form+0xcf1>
cmpb   $0x0,-0x20003b(%rbp)
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%eax
movsbl -0x200039(%rbp),%ecx
movsbl -0x200047(%rbp),%edx
cmp    %edx,%ecx
sete   %cl
and    $0x1,%cl
movzbl %cl,%ecx
and    %ecx,%eax
cmp    $0x0,%eax
je     1a9b <form+0x95b>
mov    -0x200047(%rbp),%al
mov    %al,-0x20003b(%rbp)
jmp    1e31 <form+0xcf1>
jmp    1aa0 <form+0x960>
mov    -0x200039(%rbp),%al
mov    %al,-0x200050(%rbp)
mov    -0x200047(%rbp),%al
mov    %al,-0x20004f(%rbp)
movb   $0x20,-0x20004e(%rbp)
movb   $0x0,-0x20004d(%rbp)
lea    -0x200050(%rbp),%rsi
lea    0x548(%rip),%rdi
call   1060 <strstr@plt>
mov    %rax,-0x200058(%rbp)
cmpq   $0x0,-0x200058(%rbp)
je     1baa <form+0xa6a>
cmpl   $0x0,-0x200040(%rbp)
je     1b14 <form+0x9d4>
movl   $0x0,-0x200040(%rbp)
mov    -0x200014(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x200014(%rbp)
mov    -0x200039(%rbp),%dl
movslq -0x200014(%rbp),%rcx
lea    -0x100010(%rbp),%rax
shl    $0x8,%rcx
add    %rcx,%rax
mov    -0x200040(%rbp),%ecx
mov    %ecx,%esi
add    $0x1,%esi
mov    %esi,-0x200040(%rbp)
movslq %ecx,%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x200047(%rbp),%dl
movslq -0x200014(%rbp),%rcx
lea    -0x100010(%rbp),%rax
shl    $0x8,%rcx
add    %rcx,%rax
mov    -0x200040(%rbp),%ecx
mov    %ecx,%esi
add    $0x1,%esi
mov    %esi,-0x200040(%rbp)
movslq %ecx,%rcx
mov    %dl,(%rax,%rcx,1)
movb   $0x0,-0x200039(%rbp)
cmpl   $0x0,-0x200040(%rbp)
je     1ba5 <form+0xa65>
movl   $0x0,-0x200040(%rbp)
mov    -0x200014(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x200014(%rbp)
jmp    1e31 <form+0xcf1>
cmpl   $0x0,-0x200040(%rbp)
je     1bd0 <form+0xa90>
movl   $0x0,-0x200040(%rbp)
mov    -0x200014(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x200014(%rbp)
mov    -0x200039(%rbp),%dl
movslq -0x200014(%rbp),%rcx
lea    -0x100010(%rbp),%rax
shl    $0x8,%rcx
add    %rcx,%rax
mov    -0x200040(%rbp),%ecx
mov    %ecx,%esi
add    $0x1,%esi
mov    %esi,-0x200040(%rbp)
movslq %ecx,%rcx
mov    %dl,(%rax,%rcx,1)
cmpl   $0x0,-0x200040(%rbp)
je     1c28 <form+0xae8>
movl   $0x0,-0x200040(%rbp)
mov    -0x200014(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x200014(%rbp)
movsbl -0x200047(%rbp),%eax
cmp    $0x22,%eax
jne    1c44 <form+0xb04>
movb   $0x0,-0x200039(%rbp)
jmp    1d1c <form+0xbdc>
movsbl -0x200047(%rbp),%eax
cmp    $0x27,%eax
jne    1c60 <form+0xb20>
movb   $0x0,-0x200039(%rbp)
jmp    1d98 <form+0xc58>
movsbl -0x200047(%rbp),%esi
lea    0x3a1(%rip),%rdi
call   1050 <index@plt>
cmp    $0x0,%rax
je     1c8e <form+0xb4e>
mov    -0x200047(%rbp),%al
mov    %al,-0x200039(%rbp)
jmp    1cc7 <form+0xb87>
movb   $0x0,-0x200039(%rbp)
mov    -0x200047(%rbp),%dl
movslq -0x200014(%rbp),%rcx
lea    -0x100010(%rbp),%rax
shl    $0x8,%rcx
add    %rcx,%rax
mov    -0x200040(%rbp),%ecx
mov    %ecx,%esi
add    $0x1,%esi
mov    %esi,-0x200040(%rbp)
movslq %ecx,%rcx
mov    %dl,(%rax,%rcx,1)
jmp    1e31 <form+0xcf1>
movsbl -0x200047(%rbp),%esi
lea    0x335(%rip),%rdi
call   1050 <index@plt>
cmp    $0x0,%rax
je     1d07 <form+0xbc7>
cmpb   $0x0,-0x200039(%rbp)
jne    1d07 <form+0xbc7>
mov    -0x200047(%rbp),%al
mov    %al,-0x200039(%rbp)
jmp    1e31 <form+0xcf1>
movsbl -0x200047(%rbp),%eax
cmp    $0x22,%eax
jne    1d83 <form+0xc43>
jmp    1d1c <form+0xbdc>
movl   $0x1,-0x200018(%rbp)
cmpl   $0x0,-0x200040(%rbp)
je     1d4c <form+0xc0c>
movl   $0x0,-0x200040(%rbp)
mov    -0x200014(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x200014(%rbp)
mov    -0x200047(%rbp),%dl
movslq -0x200014(%rbp),%rcx
lea    -0x100010(%rbp),%rax
shl    $0x8,%rcx
add    %rcx,%rax
mov    -0x200040(%rbp),%ecx
mov    %ecx,%esi
add    $0x1,%esi
mov    %esi,-0x200040(%rbp)
movslq %ecx,%rcx
mov    %dl,(%rax,%rcx,1)
jmp    1e31 <form+0xcf1>
movsbl -0x200047(%rbp),%eax
cmp    $0x27,%eax
jne    1dff <form+0xcbf>
jmp    1d98 <form+0xc58>
movl   $0x1,-0x20001c(%rbp)
cmpl   $0x0,-0x200040(%rbp)
je     1dc8 <form+0xc88>
movl   $0x0,-0x200040(%rbp)
mov    -0x200014(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x200014(%rbp)
mov    -0x200047(%rbp),%dl
movslq -0x200014(%rbp),%rcx
lea    -0x100010(%rbp),%rax
shl    $0x8,%rcx
add    %rcx,%rax
mov    -0x200040(%rbp),%ecx
mov    %ecx,%esi
add    $0x1,%esi
mov    %esi,-0x200040(%rbp)
movslq %ecx,%rcx
mov    %dl,(%rax,%rcx,1)
jmp    1e31 <form+0xcf1>
mov    -0x200047(%rbp),%dl
movslq -0x200014(%rbp),%rcx
lea    -0x100010(%rbp),%rax
shl    $0x8,%rcx
add    %rcx,%rax
mov    -0x200040(%rbp),%ecx
mov    %ecx,%esi
add    $0x1,%esi
mov    %esi,-0x200040(%rbp)
movslq %ecx,%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x20004c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20004c(%rbp)
jmp    11fd <form+0xbd>
movl   $0x0,-0x20005c(%rbp)
mov    -0x20005c(%rbp),%eax
cmp    -0x200014(%rbp),%eax
jge    1e98 <form+0xd58>
movslq -0x20005c(%rbp),%rax
lea    -0x100010(%rbp),%rsi
shl    $0x8,%rax
add    %rax,%rsi
lea    0x1d6(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x20005c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20005c(%rbp)
jmp    1e4f <form+0xd0f>
add    $0x200070,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<form>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x100038,%rsp
mov    (%rdi),%r12b
test   %r12b,%r12b
je     18b5 <form+0x775>
mov    %rdi,%rbx
movl   $0x0,0xc(%rsp)
mov    $0x1,%ebp
movl   $0x0,0x24(%rsp)
xor    %r14d,%r14d
xor    %r13d,%r13d
xor    %r15d,%r15d
movl   $0x0,0x10(%rsp)
movl   $0x0,0x14(%rsp)
movl   $0x0,0x28(%rsp)
movl   $0x0,0x8(%rsp)
xor    %eax,%eax
mov    %rax,0x18(%rsp)
cs nopw 0x0(%rax,%rax,1)
nop
test   %r14d,%r14d
jne    1200 <form+0xc0>
mov    $0x1,%r14d
cmp    $0x5c,%r12b
je     13f0 <form+0x2b0>
test   %r13d,%r13d
je     124c <form+0x10c>
cmp    $0xa,%r12b
jne    128d <form+0x14d>
cmpl   $0x1,0x8(%rsp)
mov    0x18(%rsp),%rax
sbb    $0xffffffff,%eax
mov    %rax,0x18(%rsp)
xor    %r14d,%r14d
xor    %r13d,%r13d
jmp    13df <form+0x29f>
cs nopw 0x0(%rax,%rax,1)
nop
xor    %r14d,%r14d
cmp    $0xa,%r12b
je     13f0 <form+0x2b0>
mov    %r13d,%eax
or     %r15d,%eax
jne    13f0 <form+0x2b0>
movslq 0x18(%rsp),%rax
movslq 0x8(%rsp),%rcx
shl    $0x8,%rax
add    %rsp,%rax
add    $0x30,%rax
movb   $0x5c,(%rcx,%rax,1)
lea    0x2(%rcx),%edx
mov    %edx,0x8(%rsp)
mov    %r12b,0x1(%rcx,%rax,1)
xor    %r14d,%r14d
xor    %r13d,%r13d
xor    %r15d,%r15d
jmp    13f0 <form+0x2b0>
test   %r15d,%r15d
je     129b <form+0x15b>
cmp    $0x2f,%r12b
jne    12ef <form+0x1af>
cmp    $0x2,%r15d
jne    12ef <form+0x1af>
xor    %r14d,%r14d
cmpl   $0x0,0x24(%rsp)
mov    0x18(%rsp),%rax
jne    1241 <form+0x101>
cmpl   $0x0,0x8(%rsp)
je     1241 <form+0x101>
add    $0x1,%eax
mov    %rax,0x18(%rsp)
movl   $0x0,0x24(%rsp)
jmp    12e1 <form+0x1a1>
mov    $0x1,%r13d
xor    %r14d,%r14d
jmp    13f0 <form+0x2b0>
cmpl   $0x0,0xc(%rsp)
je     1307 <form+0x1c7>
mov    0x18(%rsp),%rdx
movslq %edx,%rax
cmp    $0x27,%r12b
jne    1354 <form+0x214>
mov    0x8(%rsp),%esi
movslq %esi,%rcx
shl    $0x8,%rax
add    %rsp,%rax
add    $0x30,%rax
addb   $0x27,(%rcx,%rax,1)
xor    %eax,%eax
cmp    $0xffffffff,%esi
setne  %al
add    %eax,%edx
mov    %rdx,0x18(%rsp)
movl   $0x0,0xc(%rsp)
xor    %r14d,%r14d
xor    %r13d,%r13d
xor    %r15d,%r15d
jmp    13df <form+0x29f>
cmp    $0x2a,%r12b
mov    $0x2,%eax
cmove  %eax,%r15d
xor    %r14d,%r14d
xor    %r13d,%r13d
jmp    13f0 <form+0x2b0>
cmpl   $0x0,0x10(%rsp)
mov    0x18(%rsp),%r14
mov    0x28(%rsp),%ecx
je     1381 <form+0x241>
movslq %r14d,%rax
cmp    $0x22,%r12b
jne    1418 <form+0x2d8>
mov    0x8(%rsp),%edx
movslq %edx,%rcx
shl    $0x8,%rax
add    %rsp,%rax
add    $0x30,%rax
addb   $0x22,(%rcx,%rax,1)
xor    %eax,%eax
cmp    $0xffffffff,%edx
setne  %al
add    %eax,%r14d
mov    %r14,0x18(%rsp)
movl   $0x0,0xc(%rsp)
jmp    13ce <form+0x28e>
mov    0x8(%rsp),%edx
movslq %edx,%rcx
add    $0x1,%edx
mov    %edx,0x8(%rsp)
shl    $0x8,%rax
add    %rsp,%rax
add    $0x30,%rax
add    %r12b,(%rcx,%rax,1)
xor    %r14d,%r14d
movl   $0x1,0xc(%rsp)
jmp    1241 <form+0x101>
cmp    $0x20,%r12b
jne    138e <form+0x24e>
cmpl   $0x0,0x24(%rsp)
je     13b0 <form+0x270>
cmp    $0xa,%r12b
jne    139b <form+0x25b>
cmpl   $0x0,0x24(%rsp)
je     13b0 <form+0x270>
cmp    $0xa,%r12b
jne    144a <form+0x30a>
cmpl   $0x0,0x24(%rsp)
je     144a <form+0x30a>
cmpl   $0x1,0x8(%rsp)
sbb    $0xffffffff,%r14d
mov    %r14,0x18(%rsp)
movl   $0x0,0xc(%rsp)
movl   $0x0,0x24(%rsp)
xor    %r14d,%r14d
xor    %r13d,%r13d
xor    %r15d,%r15d
movl   $0x0,0x10(%rsp)
movl   $0x0,0x8(%rsp)
nopw   0x0(%rax,%rax,1)
mov    %rbx,%rdi
call   1040 <strlen@plt>
cmp    %rbp,%rax
jbe    188c <form+0x74c>
movzbl (%rbx,%rbp,1),%r12d
add    $0x1,%rbp
test   %r12b,%r12b
jne    11b0 <form+0x70>
jmp    188c <form+0x74c>
mov    0x8(%rsp),%edx
movslq %edx,%rcx
add    $0x1,%edx
mov    %edx,0x8(%rsp)
shl    $0x8,%rax
add    %rsp,%rax
add    $0x30,%rax
add    %r12b,(%rcx,%rax,1)
movl   $0x1,0x10(%rsp)
movl   $0x0,0xc(%rsp)
jmp    123e <form+0xfe>
cmp    $0x23,%r12b
jne    1496 <form+0x356>
movslq %r14d,%rax
mov    0x8(%rsp),%edx
movslq %edx,%rcx
add    $0x1,%edx
mov    %edx,0x8(%rsp)
shl    $0x8,%rax
add    %rsp,%rax
add    $0x30,%rax
movb   $0x23,(%rcx,%rax,1)
movl   $0x1,0x24(%rsp)
movl   $0x0,0xc(%rsp)
xor    %r14d,%r14d
xor    %r13d,%r13d
xor    %r15d,%r15d
movl   $0x0,0x10(%rsp)
jmp    13f0 <form+0x2b0>
cmp    $0x2f,%r12b
mov    0x14(%rsp),%eax
jne    14ba <form+0x37a>
cmp    $0x2f,%al
jne    14ba <form+0x37a>
movl   $0x0,0xc(%rsp)
mov    $0x1,%r13d
xor    %r14d,%r14d
xor    %r15d,%r15d
jmp    14d8 <form+0x398>
cmp    $0x2a,%r12b
jne    14ed <form+0x3ad>
cmp    $0x2f,%al
jne    14ed <form+0x3ad>
movl   $0x0,0xc(%rsp)
mov    $0x1,%r15d
xor    %r14d,%r14d
xor    %r13d,%r13d
movl   $0x0,0x10(%rsp)
movl   $0x0,0x14(%rsp)
jmp    13f0 <form+0x2b0>
cmpl   $0x0,0x24(%rsp)
je     1504 <form+0x3c4>
cmp    $0xa,%r12b
je     1504 <form+0x3c4>
cmp    $0x2f,%r12b
jne    15d6 <form+0x496>
movsbl %r12b,%r13d
test   %al,%al
je     157b <form+0x43b>
mov    %eax,%r15d
and    $0xfd,%al
cmp    $0x3c,%al
jne    1680 <form+0x540>
test   %cl,%cl
je     164c <form+0x50c>
cmpl   $0x1,0x8(%rsp)
sbb    $0xffffffff,%r14d
movslq %r14d,%rax
shl    $0x8,%rax
mov    %cl,0x30(%rsp,%rax,1)
mov    0x14(%rsp),%ecx
mov    %cl,0x31(%rsp,%rax,1)
cmp    $0x3d,%r12b
jne    173d <form+0x5fd>
movb   $0x3d,0x32(%rsp,%rax,1)
add    $0x1,%r14d
mov    %r14,0x18(%rsp)
movl   $0x0,0xc(%rsp)
xor    %r14d,%r14d
xor    %r13d,%r13d
xor    %r15d,%r15d
movl   $0x0,0x10(%rsp)
movl   $0x0,0x14(%rsp)
jmp    1778 <form+0x638>
lea    0xa7e(%rip),%rdi
mov    %r13d,%esi
call   1050 <index@plt>
test   %rax,%rax
je     15fb <form+0x4bb>
cmpl   $0x1,0x8(%rsp)
sbb    $0xffffffff,%r14d
movslq %r14d,%r14
mov    %r14,%rax
shl    $0x8,%rax
mov    %r12b,0x30(%rsp,%rax,1)
add    $0x1,%r14d
mov    %r14,0x18(%rsp)
movl   $0x0,0xc(%rsp)
xor    %r14d,%r14d
xor    %r13d,%r13d
xor    %r15d,%r15d
movl   $0x0,0x10(%rsp)
movl   $0x0,0x14(%rsp)
jmp    13df <form+0x29f>
movslq %r14d,%rax
mov    0x8(%rsp),%edx
movslq %edx,%rcx
shl    $0x8,%rax
add    %rsp,%rax
add    $0x30,%rax
add    %r12b,(%rcx,%rax,1)
add    $0x1,%edx
mov    %edx,0x8(%rsp)
jmp    1470 <form+0x330>
lea    0xa07(%rip),%rdi
mov    %r13d,%esi
call   1050 <index@plt>
movl   $0x0,0xc(%rsp)
test   %rax,%rax
jne    16dd <form+0x59d>
cmp    $0x27,%r12b
je     1807 <form+0x6c7>
cmp    $0x22,%r12b
jne    1857 <form+0x717>
cmpl   $0x0,0x8(%rsp)
je     1711 <form+0x5d1>
mov    0x18(%rsp),%rax
add    $0x1,%eax
mov    %rax,0x18(%rsp)
jmp    1711 <form+0x5d1>
movl   $0x0,0xc(%rsp)
mov    0x14(%rsp),%r15d
cmp    %r12b,%r15b
jne    1680 <form+0x540>
xor    %r14d,%r14d
xor    %r13d,%r13d
xor    %r15d,%r15d
movl   $0x0,0x10(%rsp)
mov    %r12d,%eax
mov    %eax,0x14(%rsp)
mov    %r12d,0x28(%rsp)
jmp    13f0 <form+0x2b0>
mov    %r15b,0x2c(%rsp)
mov    %r12b,0x2d(%rsp)
movw   $0x20,0x2e(%rsp)
lea    0x97e(%rip),%rdi
lea    0x2c(%rsp),%rsi
call   1060 <strstr@plt>
cmpl   $0x1,0x8(%rsp)
sbb    $0xffffffff,%r14d
movslq %r14d,%rcx
shl    $0x8,%rcx
mov    %r15b,0x30(%rsp,%rcx,1)
test   %rax,%rax
je     16f8 <form+0x5b8>
mov    %r12b,0x31(%rsp,%rcx,1)
add    $0x1,%r14d
mov    %r14,0x18(%rsp)
xor    %r12d,%r12d
movl   $0x0,0x8(%rsp)
movl   $0x0,0xc(%rsp)
xor    %r14d,%r14d
xor    %r13d,%r13d
xor    %r15d,%r15d
movl   $0x0,0x10(%rsp)
mov    %r12d,0x14(%rsp)
jmp    13f0 <form+0x2b0>
add    $0x1,%r14d
mov    %r14,0x18(%rsp)
cmp    $0x27,%r12b
je     181b <form+0x6db>
cmp    $0x22,%r12b
jne    1785 <form+0x645>
movslq 0x18(%rsp),%rax
shl    $0x8,%rax
mov    %r12b,0x30(%rsp,%rax,1)
movl   $0x1,0x10(%rsp)
movl   $0x0,0xc(%rsp)
xor    %r14d,%r14d
xor    %r13d,%r13d
xor    %r15d,%r15d
jmp    1842 <form+0x702>
add    $0x1,%r14d
mov    %r14,0x18(%rsp)
lea    0x8bc(%rip),%rdi
mov    %r13d,%esi
call   1050 <index@plt>
movl   $0x0,0xc(%rsp)
test   %rax,%rax
je     17c3 <form+0x683>
xor    %r14d,%r14d
xor    %r13d,%r13d
xor    %r15d,%r15d
movl   $0x0,0x10(%rsp)
mov    %r12d,0x14(%rsp)
movl   $0x0,0x28(%rsp)
jmp    13df <form+0x29f>
lea    0x87d(%rip),%rdi
mov    %r13d,%esi
call   1050 <index@plt>
movl   $0x0,0x8(%rsp)
test   %rax,%rax
jne    16d5 <form+0x595>
movslq 0x18(%rsp),%rax
shl    $0x8,%rax
mov    %r12b,0x30(%rsp,%rax,1)
movl   $0x1,0x8(%rsp)
xor    %r12d,%r12d
jmp    16d5 <form+0x595>
movslq 0x18(%rsp),%rax
shl    $0x8,%rax
mov    %r12b,0x30(%rsp,%rax,1)
movl   $0x1,0x8(%rsp)
movl   $0x0,0xc(%rsp)
xor    %r14d,%r14d
xor    %r13d,%r13d
xor    %r15d,%r15d
movl   $0x0,0x10(%rsp)
movl   $0x0,0x14(%rsp)
movl   $0x0,0x28(%rsp)
jmp    13f0 <form+0x2b0>
cmpl   $0x0,0x8(%rsp)
je     181b <form+0x6db>
mov    0x18(%rsp),%rax
add    $0x1,%eax
mov    %rax,0x18(%rsp)
movslq 0x18(%rsp),%rax
shl    $0x8,%rax
mov    %r12b,0x30(%rsp,%rax,1)
xor    %r14d,%r14d
movl   $0x1,0xc(%rsp)
xor    %r13d,%r13d
xor    %r15d,%r15d
movl   $0x0,0x10(%rsp)
movl   $0x0,0x14(%rsp)
movl   $0x1,0x8(%rsp)
jmp    13f0 <form+0x2b0>
movslq 0x18(%rsp),%rax
mov    0x8(%rsp),%edx
movslq %edx,%rcx
add    $0x1,%edx
mov    %edx,0x8(%rsp)
shl    $0x8,%rax
add    %rsp,%rax
add    $0x30,%rax
mov    %r12b,(%rcx,%rax,1)
movl   $0x0,0xc(%rsp)
xor    %r14d,%r14d
xor    %r13d,%r13d
jmp    14b5 <form+0x375>
mov    0x18(%rsp),%rax
test   %eax,%eax
jle    18b5 <form+0x775>
mov    %eax,%ebp
lea    0x30(%rsp),%rbx
nopl   0x0(%rax)
mov    %rbx,%rdi
call   1030 <puts@plt>
add    $0x100,%rbx
add    $0xffffffffffffffff,%rbp
jne    18a0 <form+0x760>
add    $0x100038,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@__const.form.rach = [6 x i8] c"// /*\00"
@.str = [9 x i8] c"()[];,?:\00"
@.str.1 = [13 x i8] c"/^+*%-=<>!&|\00"
@.str.2 = [55 x i8] c"== ^= && || &= |= /= ++ -- += *= %= -= << >> <= >= != \00"
@.str.3 = [4 x i8] c"%s\0A\00"
define void @form(i8* %0) {
%2 = alloca i8*
%3 = alloca [4096 x [256 x i8]]
%4 = alloca [4096 x [256 x i8]]
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
%9 = alloca i32
%10 = alloca i32
%11 = alloca i32
%12 = alloca i32
%13 = alloca i32
%14 = alloca i32
%15 = alloca i8
%16 = alloca i8
%17 = alloca i8
%18 = alloca i32
%19 = alloca [6 x i8]
%20 = alloca i8
%21 = alloca i32
%22 = alloca [4 x i8]
%23 = alloca i8*
%24 = alloca i32
store i8* %0, i8** %2
store i32 0, i32* %5
store i32 0, i32* %6
store i32 0, i32* %7
store i32 0, i32* %8
store i32 0, i32* %9
store i32 0, i32* %10
store i32 0, i32* %11
store i32 0, i32* %12
store i32 0, i32* %13
store i32 0, i32* %14
store i8 0, i8* %15
store i8 0, i8* %16
store i8 0, i8* %17
store i32 0, i32* %18
%25 = bitcast [6 x i8]* %19 to i8*
store i8 0, i8* %20
store i32 0, i32* %21
br label %26
26: ; preds = %576, %1
%27 = load i32, i32* %21
%28 = sext i32 %27 to i64
%29 = load i8*, i8** %2
%30 = call i64 @strlen(i8* %29)
%31 = icmp ult i64 %28, %30
br i1 %31, label %32, label %579
32: ; preds = %26
%33 = load i8, i8* %20
store i8 %33, i8* %16
%34 = load i8*, i8** %2
%35 = load i32, i32* %21
%36 = sext i32 %35 to i64
%37 = getelementptr inbounds i8, i8* %34, i64 %36
%38 = load i8, i8* %37
store i8 %38, i8* %20
%39 = load i8, i8* %20
%40 = sext i8 %39 to i32
%41 = icmp eq i32 %40, 0
br i1 %41, label %42, label %43
42: ; preds = %32
br label %579
43: ; preds = %32
%44 = load i32, i32* %11
%45 = icmp ne i32 %44, 0
br i1 %45, label %46, label %74
46: ; preds = %43
%47 = load i8, i8* %20
%48 = sext i8 %47 to i32
%49 = icmp eq i32 %48, 10
br i1 %49, label %50, label %51
50: ; preds = %46
store i32 0, i32* %11
br label %576
51: ; preds = %46
store i32 0, i32* %11
%52 = load i32, i32* %12
%53 = icmp ne i32 %52, 0
br i1 %53, label %73, label %54
54: ; preds = %51
%55 = load i32, i32* %13
%56 = icmp ne i32 %55, 0
br i1 %56, label %73, label %57
57: ; preds = %54
%58 = load i32, i32* %5
%59 = sext i32 %58 to i64
%60 = getelementptr inbounds [4096 x [256 x i8]], [4096 x [256 x i8]]* %3, i64 0, i64 %59
%61 = load i32, i32* %18
%62 = add nsw i32 %61, 1
store i32 %62, i32* %18
%63 = sext i32 %61 to i64
%64 = getelementptr inbounds [256 x i8], [256 x i8]* %60, i64 0, i64 %63
store i8 92, i8* %64
%65 = load i8, i8* %20
%66 = load i32, i32* %5
%67 = sext i32 %66 to i64
%68 = getelementptr inbounds [4096 x [256 x i8]], [4096 x [256 x i8]]* %3, i64 0, i64 %67
%69 = load i32, i32* %18
%70 = add nsw i32 %69, 1
store i32 %70, i32* %18
%71 = sext i32 %69 to i64
%72 = getelementptr inbounds [256 x i8], [256 x i8]* %68, i64 0, i64 %71
store i8 %65, i8* %72
br label %73
73: ; preds = %57, %54, %51
br label %576
74: ; preds = %43
%75 = load i8, i8* %20
%76 = sext i8 %75 to i32
%77 = icmp eq i32 %76, 92
br i1 %77, label %78, label %79
78: ; preds = %74
store i32 1, i32* %11
br label %576
79: ; preds = %74
%80 = load i32, i32* %12
%81 = icmp ne i32 %80, 0
br i1 %81, label %82, label %94
82: ; preds = %79
%83 = load i8, i8* %20
%84 = sext i8 %83 to i32
%85 = icmp eq i32 %84, 10
br i1 %85, label %86, label %93
86: ; preds = %82
store i32 0, i32* %12
%87 = load i32, i32* %18
%88 = icmp ne i32 %87, 0
br i1 %88, label %89, label %92
89: ; preds = %86
store i32 0, i32* %18
%90 = load i32, i32* %5
%91 = add nsw i32 %90, 1
store i32 %91, i32* %5
br label %92
92: ; preds = %89, %86
br label %576
93: ; preds = %82
br label %576
94: ; preds = %79
%95 = load i32, i32* %13
%96 = icmp ne i32 %95, 0
br i1 %96, label %97, label %121
97: ; preds = %94
%98 = load i8, i8* %20
%99 = sext i8 %98 to i32
%100 = icmp eq i32 %99, 47
br i1 %100, label %101, label %115
101: ; preds = %97
%102 = load i32, i32* %13
%103 = icmp eq i32 %102, 2
br i1 %103, label %104, label %115
104: ; preds = %101
store i32 0, i32* %13
%105 = load i32, i32* %10
%106 = icmp ne i32 %105, 0
br i1 %106, label %114, label %107
107: ; preds = %104
%108 = load i32, i32* %18
%109 = icmp ne i32 %108, 0
br i1 %109, label %110, label %113
110: ; preds = %107
store i32 0, i32* %18
%111 = load i32, i32* %5
%112 = add nsw i32 %111, 1
store i32 %112, i32* %5
br label %113
113: ; preds = %110, %107
br label %114
114: ; preds = %113, %104
br label %576
115: ; preds = %101, %97
%116 = load i8, i8* %20
%117 = sext i8 %116 to i32
%118 = icmp eq i32 %117, 42
br i1 %118, label %119, label %120
119: ; preds = %115
store i32 2, i32* %13
br label %576
120: ; preds = %115
br label %576
121: ; preds = %94
%122 = load i32, i32* %7
%123 = icmp ne i32 %122, 0
br i1 %123, label %124, label %160
124: ; preds = %121
%125 = load i8, i8* %20
%126 = sext i8 %125 to i32
%127 = icmp eq i32 %126, 39
br i1 %127, label %128, label %146
128: ; preds = %124
%129 = load i32, i32* %5
%130 = sext i32 %129 to i64
%131 = getelementptr inbounds [4096 x [256 x i8]], [4096 x [256 x i8]]* %3, i64 0, i64 %130
%132 = load i32, i32* %18
%133 = add nsw i32 %132, 1
store i32 %133, i32* %18
%134 = sext i32 %132 to i64
%135 = getelementptr inbounds [256 x i8], [256 x i8]* %131, i64 0, i64 %134
%136 = load i8, i8* %135
%137 = sext i8 %136 to i32
%138 = add nsw i32 %137, 39
%139 = trunc i32 %138 to i8
store i8 %139, i8* %135
store i32 0, i32* %7
%140 = load i32, i32* %18
%141 = icmp ne i32 %140, 0
br i1 %141, label %142, label %145
142: ; preds = %128
store i32 0, i32* %18
%143 = load i32, i32* %5
%144 = add nsw i32 %143, 1
store i32 %144, i32* %5
br label %145
145: ; preds = %142, %128
br label %576
146: ; preds = %124
%147 = load i8, i8* %20
%148 = sext i8 %147 to i32
%149 = load i32, i32* %5
%150 = sext i32 %149 to i64
%151 = getelementptr inbounds [4096 x [256 x i8]], [4096 x [256 x i8]]* %3, i64 0, i64 %150
%152 = load i32, i32* %18
%153 = add nsw i32 %152, 1
store i32 %153, i32* %18
%154 = sext i32 %152 to i64
%155 = getelementptr inbounds [256 x i8], [256 x i8]* %151, i64 0, i64 %154
%156 = load i8, i8* %155
%157 = sext i8 %156 to i32
%158 = add nsw i32 %157, %148
%159 = trunc i32 %158 to i8
store i8 %159, i8* %155
br label %576
160: ; preds = %121
%161 = load i32, i32* %6
%162 = icmp ne i32 %161, 0
br i1 %162, label %163, label %199
163: ; preds = %160
%164 = load i8, i8* %20
%165 = sext i8 %164 to i32
%166 = icmp eq i32 %165, 34
br i1 %166, label %167, label %185
167: ; preds = %163
%168 = load i32, i32* %5
%169 = sext i32 %168 to i64
%170 = getelementptr inbounds [4096 x [256 x i8]], [4096 x [256 x i8]]* %3, i64 0, i64 %169
%171 = load i32, i32* %18
%172 = add nsw i32 %171, 1
store i32 %172, i32* %18
%173 = sext i32 %171 to i64
%174 = getelementptr inbounds [256 x i8], [256 x i8]* %170, i64 0, i64 %173
%175 = load i8, i8* %174
%176 = sext i8 %175 to i32
%177 = add nsw i32 %176, 34
%178 = trunc i32 %177 to i8
store i8 %178, i8* %174
store i32 0, i32* %6
%179 = load i32, i32* %18
%180 = icmp ne i32 %179, 0
br i1 %180, label %181, label %184
181: ; preds = %167
store i32 0, i32* %18
%182 = load i32, i32* %5
%183 = add nsw i32 %182, 1
store i32 %183, i32* %5
br label %184
184: ; preds = %181, %167
br label %576
185: ; preds = %163
%186 = load i8, i8* %20
%187 = sext i8 %186 to i32
%188 = load i32, i32* %5
%189 = sext i32 %188 to i64
%190 = getelementptr inbounds [4096 x [256 x i8]], [4096 x [256 x i8]]* %3, i64 0, i64 %189
%191 = load i32, i32* %18
%192 = add nsw i32 %191, 1
store i32 %192, i32* %18
%193 = sext i32 %191 to i64
%194 = getelementptr inbounds [256 x i8], [256 x i8]* %190, i64 0, i64 %193
%195 = load i8, i8* %194
%196 = sext i8 %195 to i32
%197 = add nsw i32 %196, %187
%198 = trunc i32 %197 to i8
store i8 %198, i8* %194
br label %576
199: ; preds = %160
%200 = load i8, i8* %20
%201 = sext i8 %200 to i32
%202 = icmp eq i32 %201, 32
br i1 %202, label %203, label %222
203: ; preds = %199
%204 = load i32, i32* %10
%205 = icmp ne i32 %204, 0
br i1 %205, label %222, label %206
206: ; preds = %203
%207 = load i32, i32* %10
%208 = icmp ne i32 %207, 0
br i1 %208, label %222, label %209
209: ; preds = %206
%210 = load i32, i32* %10
%211 = icmp ne i32 %210, 0
br i1 %211, label %222, label %212
212: ; preds = %209
%213 = load i32, i32* %10
%214 = icmp ne i32 %213, 0
br i1 %214, label %222, label %215
215: ; preds = %212
%216 = load i32, i32* %18
%217 = icmp ne i32 %216, 0
br i1 %217, label %218, label %221
218: ; preds = %215
store i32 0, i32* %18
%219 = load i32, i32* %5
%220 = add nsw i32 %219, 1
store i32 %220, i32* %5
br label %221
221: ; preds = %218, %215
br label %576
222: ; preds = %212, %209, %206, %203, %199
%223 = load i8, i8* %20
%224 = sext i8 %223 to i32
%225 = icmp eq i32 %224, 10
br i1 %225, label %226, label %236
226: ; preds = %222
%227 = load i32, i32* %10
%228 = icmp ne i32 %227, 0
br i1 %228, label %236, label %229
229: ; preds = %226
%230 = load i32, i32* %18
%231 = icmp ne i32 %230, 0
br i1 %231, label %232, label %235
232: ; preds = %229
store i32 0, i32* %18
%233 = load i32, i32* %5
%234 = add nsw i32 %233, 1
store i32 %234, i32* %5
br label %235
235: ; preds = %232, %229
br label %576
236: ; preds = %226, %222
%237 = load i8, i8* %20
%238 = sext i8 %237 to i32
%239 = icmp eq i32 %238, 10
br i1 %239, label %240, label %250
240: ; preds = %236
%241 = load i32, i32* %10
%242 = icmp ne i32 %241, 0
br i1 %242, label %243, label %250
243: ; preds = %240
store i32 0, i32* %10
%244 = load i32, i32* %18
%245 = icmp ne i32 %244, 0
br i1 %245, label %246, label %249
246: ; preds = %243
store i32 0, i32* %18
%247 = load i32, i32* %5
%248 = add nsw i32 %247, 1
store i32 %248, i32* %5
br label %249
249: ; preds = %246, %243
br label %576
250: ; preds = %240, %236
%251 = load i8, i8* %20
%252 = sext i8 %251 to i32
%253 = icmp eq i32 %252, 35
br i1 %253, label %254, label %263
254: ; preds = %250
store i32 1, i32* %10
%255 = load i8, i8* %20
%256 = load i32, i32* %5
%257 = sext i32 %256 to i64
%258 = getelementptr inbounds [4096 x [256 x i8]], [4096 x [256 x i8]]* %3, i64 0, i64 %257
%259 = load i32, i32* %18
%260 = add nsw i32 %259, 1
store i32 %260, i32* %18
%261 = sext i32 %259 to i64
%262 = getelementptr inbounds [256 x i8], [256 x i8]* %258, i64 0, i64 %261
store i8 %255, i8* %262
br label %576
263: ; preds = %250
%264 = load i8, i8* %20
%265 = sext i8 %264 to i32
%266 = icmp eq i32 %265, 47
br i1 %266, label %267, label %272
267: ; preds = %263
%268 = load i8, i8* %15
%269 = sext i8 %268 to i32
%270 = icmp eq i32 %269, 47
br i1 %270, label %271, label %272
271: ; preds = %267
store i8 0, i8* %15
store i32 1, i32* %12
br label %576
272: ; preds = %267, %263
%273 = load i8, i8* %20
%274 = sext i8 %273 to i32
%275 = icmp eq i32 %274, 42
br i1 %275, label %276, label %281
276: ; preds = %272
%277 = load i8, i8* %15
%278 = sext i8 %277 to i32
%279 = icmp eq i32 %278, 47
br i1 %279, label %280, label %281
280: ; preds = %276
store i8 0, i8* %15
store i32 1, i32* %13
br label %576
281: ; preds = %276, %272
%282 = load i8, i8* %20
%283 = sext i8 %282 to i32
%284 = icmp ne i32 %283, 47
br i1 %284, label %285, label %306
285: ; preds = %281
%286 = load i8, i8* %20
%287 = sext i8 %286 to i32
%288 = icmp ne i32 %287, 10
br i1 %288, label %289, label %306
289: ; preds = %285
%290 = load i32, i32* %10
%291 = icmp ne i32 %290, 0
br i1 %291, label %292, label %306
292: ; preds = %289
%293 = load i8, i8* %20
%294 = sext i8 %293 to i32
%295 = load i32, i32* %5
%296 = sext i32 %295 to i64
%297 = getelementptr inbounds [4096 x [256 x i8]], [4096 x [256 x i8]]* %3, i64 0, i64 %296
%298 = load i32, i32* %18
%299 = add nsw i32 %298, 1
store i32 %299, i32* %18
%300 = sext i32 %298 to i64
%301 = getelementptr inbounds [256 x i8], [256 x i8]* %297, i64 0, i64 %300
%302 = load i8, i8* %301
%303 = sext i8 %302 to i32
%304 = add nsw i32 %303, %294
%305 = trunc i32 %304 to i8
store i8 %305, i8* %301
br label %576
306: ; preds = %289, %285, %281
%307 = load i8, i8* %15
%308 = icmp ne i8 %307, 0
br i1 %308, label %335, label %309
309: ; preds = %306
%310 = load i8, i8* %20
%311 = sext i8 %310 to i32
%312 = call i8* @index(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str, i64 0, i64 0), i32 %311)
%313 = icmp ne i8* %312, null
br i1 %313, label %314, label %335
314: ; preds = %309
%315 = load i32, i32* %18
%316 = icmp ne i32 %315, 0
br i1 %316, label %317, label %320
317: ; preds = %314
store i32 0, i32* %18
%318 = load i32, i32* %5
%319 = add nsw i32 %318, 1
store i32 %319, i32* %5
br label %320
320: ; preds = %317, %314
%321 = load i8, i8* %20
%322 = load i32, i32* %5
%323 = sext i32 %322 to i64
%324 = getelementptr inbounds [4096 x [256 x i8]], [4096 x [256 x i8]]* %3, i64 0, i64 %323
%325 = load i32, i32* %18
%326 = add nsw i32 %325, 1
store i32 %326, i32* %18
%327 = sext i32 %325 to i64
%328 = getelementptr inbounds [256 x i8], [256 x i8]* %324, i64 0, i64 %327
store i8 %321, i8* %328
%329 = load i32, i32* %18
%330 = icmp ne i32 %329, 0
br i1 %330, label %331, label %334
331: ; preds = %320
store i32 0, i32* %18
%332 = load i32, i32* %5
%333 = add nsw i32 %332, 1
store i32 %333, i32* %5
br label %334
334: ; preds = %331, %320
br label %576
335: ; preds = %309, %306
%336 = load i8, i8* %15
%337 = icmp ne i8 %336, 0
br i1 %337, label %338, label %517
338: ; preds = %335
%339 = load i8, i8* %15
%340 = sext i8 %339 to i32
%341 = icmp eq i32 %340, 60
br i1 %341, label %346, label %342
342: ; preds = %338
%343 = load i8, i8* %15
%344 = sext i8 %343 to i32
%345 = icmp eq i32 %344, 62
br i1 %345, label %346, label %430
346: ; preds = %342, %338
%347 = load i8, i8* %17
%348 = icmp ne i8 %347, 0
br i1 %348, label %349, label %414
349: ; preds = %346
%350 = load i32, i32* %18
%351 = icmp ne i32 %350, 0
br i1 %351, label %352, label %355
352: ; preds = %349
store i32 0, i32* %18
%353 = load i32, i32* %5
%354 = add nsw i32 %353, 1
store i32 %354, i32* %5
br label %355
355: ; preds = %352, %349
%356 = load i8, i8* %17
%357 = load i32, i32* %5
%358 = sext i32 %357 to i64
%359 = getelementptr inbounds [4096 x [256 x i8]], [4096 x [256 x i8]]* %3, i64 0, i64 %358
%360 = load i32, i32* %18
%361 = add nsw i32 %360, 1
store i32 %361, i32* %18
%362 = sext i32 %360 to i64
%363 = getelementptr inbounds [256 x i8], [256 x i8]* %359, i64 0, i64 %362
store i8 %356, i8* %363
%364 = load i8, i8* %15
%365 = load i32, i32* %5
%366 = sext i32 %365 to i64
%367 = getelementptr inbounds [4096 x [256 x i8]], [4096 x [256 x i8]]* %3, i64 0, i64 %366
%368 = load i32, i32* %18
%369 = add nsw i32 %368, 1
store i32 %369, i32* %18
%370 = sext i32 %368 to i64
%371 = getelementptr inbounds [256 x i8], [256 x i8]* %367, i64 0, i64 %370
store i8 %364, i8* %371
store i8 0, i8* %15
store i8 0, i8* %17
%372 = load i8, i8* %20
%373 = sext i8 %372 to i32
%374 = icmp eq i32 %373, 61
br i1 %374, label %375, label %390
375: ; preds = %355
%376 = load i8, i8* %20
%377 = load i32, i32* %5
%378 = sext i32 %377 to i64
%379 = getelementptr inbounds [4096 x [256 x i8]], [4096 x [256 x i8]]* %3, i64 0, i64 %378
%380 = load i32, i32* %18
%381 = add nsw i32 %380, 1
store i32 %381, i32* %18
%382 = sext i32 %380 to i64
%383 = getelementptr inbounds [256 x i8], [256 x i8]* %379, i64 0, i64 %382
store i8 %376, i8* %383
%384 = load i32, i32* %18
%385 = icmp ne i32 %384, 0
br i1 %385, label %386, label %389
386: ; preds = %375
store i32 0, i32* %18
%387 = load i32, i32* %5
%388 = add nsw i32 %387, 1
store i32 %388, i32* %5
br label %389
389: ; preds = %386, %375
br label %413
390: ; preds = %355
%391 = load i32, i32* %18
%392 = icmp ne i32 %391, 0
br i1 %392, label %393, label %396
393: ; preds = %390
store i32 0, i32* %18
%394 = load i32, i32* %5
%395 = add nsw i32 %394, 1
store i32 %395, i32* %5
br label %396
396: ; preds = %393, %390
%397 = load i8, i8* %20
%398 = sext i8 %397 to i32
%399 = call i8* @index(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1, i64 0, i64 0), i32 %398)
%400 = icmp ne i8* %399, null
br i1 %400, label %401, label %403
401: ; preds = %396
%402 = load i8, i8* %20
store i8 %402, i8* %15
br label %412
403: ; preds = %396
store i8 0, i8* %15
%404 = load i8, i8* %20
%405 = load i32, i32* %5
%406 = sext i32 %405 to i64
%407 = getelementptr inbounds [4096 x [256 x i8]], [4096 x [256 x i8]]* %3, i64 0, i64 %406
%408 = load i32, i32* %18
%409 = add nsw i32 %408, 1
store i32 %409, i32* %18
%410 = sext i32 %408 to i64
%411 = getelementptr inbounds [256 x i8], [256 x i8]* %407, i64 0, i64 %410
store i8 %404, i8* %411
br label %412
412: ; preds = %403, %401
br label %413
413: ; preds = %412, %389
br label %576
414: ; preds = %346
%415 = load i8, i8* %17
%416 = icmp ne i8 %415, 0
%417 = xor i1 %416, true
%418 = zext i1 %417 to i32
%419 = load i8, i8* %15
%420 = sext i8 %419 to i32
%421 = load i8, i8* %20
%422 = sext i8 %421 to i32
%423 = icmp eq i32 %420, %422
%424 = zext i1 %423 to i32
%425 = and i32 %418, %424
%426 = icmp ne i32 %425, 0
br i1 %426, label %427, label %429
427: ; preds = %414
%428 = load i8, i8* %20
store i8 %428, i8* %17
br label %576
429: ; preds = %414
br label %430
430: ; preds = %429, %342
%431 = getelementptr inbounds [4 x i8], [4 x i8]* %22, i64 0, i64 0
%432 = load i8, i8* %15
store i8 %432, i8* %431
%433 = getelementptr inbounds i8, i8* %431, i64 1
%434 = load i8, i8* %20
store i8 %434, i8* %433
%435 = getelementptr inbounds i8, i8* %433, i64 1
store i8 32, i8* %435
%436 = getelementptr inbounds i8, i8* %435, i64 1
store i8 0, i8* %436
%437 = getelementptr inbounds [4 x i8], [4 x i8]* %22, i64 0, i64 0
%438 = call i8* @strstr(i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.2, i64 0, i64 0), i8* %437)
store i8* %438, i8** %23
%439 = load i8*, i8** %23
%440 = icmp ne i8* %439, null
br i1 %440, label %441, label %470
441: ; preds = %430
%442 = load i32, i32* %18
%443 = icmp ne i32 %442, 0
br i1 %443, label %444, label %447
444: ; preds = %441
store i32 0, i32* %18
%445 = load i32, i32* %5
%446 = add nsw i32 %445, 1
store i32 %446, i32* %5
br label %447
447: ; preds = %444, %441
%448 = load i8, i8* %15
%449 = load i32, i32* %5
%450 = sext i32 %449 to i64
%451 = getelementptr inbounds [4096 x [256 x i8]], [4096 x [256 x i8]]* %3, i64 0, i64 %450
%452 = load i32, i32* %18
%453 = add nsw i32 %452, 1
store i32 %453, i32* %18
%454 = sext i32 %452 to i64
%455 = getelementptr inbounds [256 x i8], [256 x i8]* %451, i64 0, i64 %454
store i8 %448, i8* %455
%456 = load i8, i8* %20
%457 = load i32, i32* %5
%458 = sext i32 %457 to i64
%459 = getelementptr inbounds [4096 x [256 x i8]], [4096 x [256 x i8]]* %3, i64 0, i64 %458
%460 = load i32, i32* %18
%461 = add nsw i32 %460, 1
store i32 %461, i32* %18
%462 = sext i32 %460 to i64
%463 = getelementptr inbounds [256 x i8], [256 x i8]* %459, i64 0, i64 %462
store i8 %456, i8* %463
store i8 0, i8* %15
%464 = load i32, i32* %18
%465 = icmp ne i32 %464, 0
br i1 %465, label %466, label %469
466: ; preds = %447
store i32 0, i32* %18
%467 = load i32, i32* %5
%468 = add nsw i32 %467, 1
store i32 %468, i32* %5
br label %469
469: ; preds = %466, %447
br label %576
470: ; preds = %430
%471 = load i32, i32* %18
%472 = icmp ne i32 %471, 0
br i1 %472, label %473, label %476
473: ; preds = %470
store i32 0, i32* %18
%474 = load i32, i32* %5
%475 = add nsw i32 %474, 1
store i32 %475, i32* %5
br label %476
476: ; preds = %473, %470
%477 = load i8, i8* %15
%478 = load i32, i32* %5
%479 = sext i32 %478 to i64
%480 = getelementptr inbounds [4096 x [256 x i8]], [4096 x [256 x i8]]* %3, i64 0, i64 %479
%481 = load i32, i32* %18
%482 = add nsw i32 %481, 1
store i32 %482, i32* %18
%483 = sext i32 %481 to i64
%484 = getelementptr inbounds [256 x i8], [256 x i8]* %480, i64 0, i64 %483
store i8 %477, i8* %484
%485 = load i32, i32* %18
%486 = icmp ne i32 %485, 0
br i1 %486, label %487, label %490
487: ; preds = %476
store i32 0, i32* %18
%488 = load i32, i32* %5
%489 = add nsw i32 %488, 1
store i32 %489, i32* %5
br label %490
490: ; preds = %487, %476
%491 = load i8, i8* %20
%492 = sext i8 %491 to i32
%493 = icmp eq i32 %492, 34
br i1 %493, label %494, label %495
494: ; preds = %490
store i8 0, i8* %15
br label %532
495: ; preds = %490
%496 = load i8, i8* %20
%497 = sext i8 %496 to i32
%498 = icmp eq i32 %497, 39
br i1 %498, label %499, label %500
499: ; preds = %495
store i8 0, i8* %15
br label %552
500: ; preds = %495
%501 = load i8, i8* %20
%502 = sext i8 %501 to i32
%503 = call i8* @index(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1, i64 0, i64 0), i32 %502)
%504 = icmp ne i8* %503, null
br i1 %504, label %505, label %507
505: ; preds = %500
%506 = load i8, i8* %20
store i8 %506, i8* %15
br label %516
507: ; preds = %500
store i8 0, i8* %15
%508 = load i8, i8* %20
%509 = load i32, i32* %5
%510 = sext i32 %509 to i64
%511 = getelementptr inbounds [4096 x [256 x i8]], [4096 x [256 x i8]]* %3, i64 0, i64 %510
%512 = load i32, i32* %18
%513 = add nsw i32 %512, 1
store i32 %513, i32* %18
%514 = sext i32 %512 to i64
%515 = getelementptr inbounds [256 x i8], [256 x i8]* %511, i64 0, i64 %514
store i8 %508, i8* %515
br label %516
516: ; preds = %507, %505
br label %576
517: ; preds = %335
%518 = load i8, i8* %20
%519 = sext i8 %518 to i32
%520 = call i8* @index(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1, i64 0, i64 0), i32 %519)
%521 = icmp ne i8* %520, null
br i1 %521, label %522, label %527
522: ; preds = %517
%523 = load i8, i8* %15
%524 = icmp ne i8 %523, 0
br i1 %524, label %527, label %525
525: ; preds = %522
%526 = load i8, i8* %20
store i8 %526, i8* %15
br label %576
527: ; preds = %522, %517
%528 = load i8, i8* %20
%529 = sext i8 %528 to i32
%530 = icmp eq i32 %529, 34
br i1 %530, label %531, label %547
531: ; preds = %527
br label %532
532: ; preds = %531, %494
store i32 1, i32* %6
%533 = load i32, i32* %18
%534 = icmp ne i32 %533, 0
br i1 %534, label %535, label %538
535: ; preds = %532
store i32 0, i32* %18
%536 = load i32, i32* %5
%537 = add nsw i32 %536, 1
store i32 %537, i32* %5
br label %538
538: ; preds = %535, %532
%539 = load i8, i8* %20
%540 = load i32, i32* %5
%541 = sext i32 %540 to i64
%542 = getelementptr inbounds [4096 x [256 x i8]], [4096 x [256 x i8]]* %3, i64 0, i64 %541
%543 = load i32, i32* %18
%544 = add nsw i32 %543, 1
store i32 %544, i32* %18
%545 = sext i32 %543 to i64
%546 = getelementptr inbounds [256 x i8], [256 x i8]* %542, i64 0, i64 %545
store i8 %539, i8* %546
br label %576
547: ; preds = %527
%548 = load i8, i8* %20
%549 = sext i8 %548 to i32
%550 = icmp eq i32 %549, 39
br i1 %550, label %551, label %567
551: ; preds = %547
br label %552
552: ; preds = %551, %499
store i32 1, i32* %7
%553 = load i32, i32* %18
%554 = icmp ne i32 %553, 0
br i1 %554, label %555, label %558
555: ; preds = %552
store i32 0, i32* %18
%556 = load i32, i32* %5
%557 = add nsw i32 %556, 1
store i32 %557, i32* %5
br label %558
558: ; preds = %555, %552
%559 = load i8, i8* %20
%560 = load i32, i32* %5
%561 = sext i32 %560 to i64
%562 = getelementptr inbounds [4096 x [256 x i8]], [4096 x [256 x i8]]* %3, i64 0, i64 %561
%563 = load i32, i32* %18
%564 = add nsw i32 %563, 1
store i32 %564, i32* %18
%565 = sext i32 %563 to i64
%566 = getelementptr inbounds [256 x i8], [256 x i8]* %562, i64 0, i64 %565
store i8 %559, i8* %566
br label %576
567: ; preds = %547
%568 = load i8, i8* %20
%569 = load i32, i32* %5
%570 = sext i32 %569 to i64
%571 = getelementptr inbounds [4096 x [256 x i8]], [4096 x [256 x i8]]* %3, i64 0, i64 %570
%572 = load i32, i32* %18
%573 = add nsw i32 %572, 1
store i32 %573, i32* %18
%574 = sext i32 %572 to i64
%575 = getelementptr inbounds [256 x i8], [256 x i8]* %571, i64 0, i64 %574
store i8 %568, i8* %575
br label %576
576: ; preds = %567, %558, %538, %525, %516, %469, %427, %413, %334, %292, %280, %271, %254, %249, %235, %221, %185, %184, %146, %145, %120, %119, %114, %93, %92, %78, %73, %50
%577 = load i32, i32* %21
%578 = add nsw i32 %577, 1
store i32 %578, i32* %21
br label %26
579: ; preds = %42, %26
store i32 0, i32* %24
br label %580
580: ; preds = %590, %579
%581 = load i32, i32* %24
%582 = load i32, i32* %5
%583 = icmp slt i32 %581, %582
br i1 %583, label %584, label %593
584: ; preds = %580
%585 = load i32, i32* %24
%586 = sext i32 %585 to i64
%587 = getelementptr inbounds [4096 x [256 x i8]], [4096 x [256 x i8]]* %3, i64 0, i64 %586
%588 = getelementptr inbounds [256 x i8], [256 x i8]* %587, i64 0, i64 0
%589 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.3, i64 0, i64 0), i8* %588)
br label %590
590: ; preds = %584
%591 = load i32, i32* %24
%592 = add nsw i32 %591, 1
store i32 %592, i32* %24
br label %580
593: ; preds = %580
ret void
}

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