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

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ fprintf(int /*<<< orphan*/, char *);
scalar_t__ isspace(char);
int /*<<< orphan*/ stderr;
int strlen(char *);
int stringlist_get_tok_indices(char *line, int *index0, int *index1,
                               int *string0, int *string1, int *aux_type0,
                               int *aux_type1, int *aux_val0, int *aux_val1) {
  int cursor, slen, aux_val_is_string;
  if (line == NULL)
    return (-1);
  cursor = 0;
  slen = strlen(line);
  while ((cursor < slen) && (isspace(line[cursor]) || ((line[cursor]) == '\t')))
    cursor++;
  if (cursor == slen) {
    fprintf(stderr, "stringlist_get_tok_indices: error reading from file, is "
                    "input line all blank?\n");
    return (-1);
  }
  *index0 = cursor;
  while ((cursor < slen) &&
         (!(isspace(line[cursor]) || ((line[cursor]) == '\t'))))
    cursor++;
  if (cursor == slen) {
    fprintf(stderr, "stringlist_get_tok_indices: error reading from file, does "
                    "line end immeidiately after the index number?\n");
    return (-1);
  }
  *index1 = cursor - 1;
  while ((cursor < slen) && (isspace(line[cursor]) || ((line[cursor]) == '\t')))
    cursor++;
  if (cursor == slen) {
    fprintf(stderr, "stringlist_get_tok_indices: error reading from file, does "
                    "line have ONLY the index number, no string?\n");
    return (-1);
  }
  if (line[cursor] != '"') {
    fprintf(stderr, "stringlist_get_tok_indices: error reading from file, does "
                    "string NOT start with a quote sign?\n");
    return (-1);
  }
  cursor++;
  *string0 = cursor;
  while ((cursor < slen) &&
         (!((line[cursor] == '"') && (line[cursor - 1] != '\\'))))
    cursor++;
  if (cursor == slen) {
    fprintf(stderr, "stringlist_get_tok_indices: error reading from file, does "
                    "string not end with a quote sign?\n");
    return (-1);
  }
  *string1 = cursor - 1;
  cursor++;
  while ((cursor < slen) && (isspace(line[cursor]) || ((line[cursor]) == '\t')))
    cursor++;
  if (cursor == slen) {
    fprintf(stderr, "stringlist_get_tok_indices: error reading from file, does "
                    "line end before specifying an aux_type?\n");
    return (-1);
  }
  *aux_type0 = cursor;
  while ((cursor < slen) &&
         (!(isspace(line[cursor]) || ((line[cursor]) == '\t'))))
    cursor++;
  if (cursor == slen) {
    fprintf(stderr, "stringlist_get_tok_indices: error reading from file, does "
                    "line end immediately after the aux_type?\n");
    return (-1);
  }
  *aux_type1 = cursor - 1;
  while ((cursor < slen) && (isspace(line[cursor]) || ((line[cursor]) == '\t')))
    cursor++;
  if (cursor == slen) {
    fprintf(stderr, "stringlist_get_tok_indices: error reading from file, does "
                    "line end before an aux_val is specified?\n");
    return (-1);
  }
  aux_val_is_string = (line[cursor] == '"');
  if (aux_val_is_string) {
    cursor++;
    *aux_val0 = cursor;
    while ((cursor < slen) &&
           (!((line[cursor] == '"') && (line[cursor - 1] != '\\'))))
      cursor++;
    if (cursor == slen) {
      fprintf(stderr, "stringlist_get_tok_indices: error reading from file, "
                      "does the string-valued aux_val NOT end with a quote?\n");
      return (-1);
    }
    *aux_val1 = cursor - 1;
  } else {
    *aux_val0 = cursor;
    while ((cursor < slen) &&
           (!(isspace(line[cursor]) || ((line[cursor]) == '\t'))))
      cursor++;
    *aux_val1 = cursor - 1;
  }
  return (0);
}


x86 assembly (clang, -O0):
<stringlist_get_tok_indices>:
push   %rbp
mov    %rsp,%rbp
sub    $0x60,%rsp
mov    0x20(%rbp),%rax
mov    0x18(%rbp),%rax
mov    0x10(%rbp),%rax
mov    %rdi,-0x10(%rbp)
mov    %rsi,-0x18(%rbp)
mov    %rdx,-0x20(%rbp)
mov    %rcx,-0x28(%rbp)
mov    %r8,-0x30(%rbp)
mov    %r9,-0x38(%rbp)
cmpq   $0x0,-0x10(%rbp)
jne    1173 <stringlist_get_tok_indices+0x43>
movl   $0xffffffff,-0x4(%rbp)
jmp    17af <stringlist_get_tok_indices+0x67f>
movl   $0x0,-0x3c(%rbp)
mov    -0x10(%rbp),%rdi
call   1030 <strlen@plt>
mov    %eax,-0x40(%rbp)
mov    -0x3c(%rbp),%ecx
xor    %eax,%eax
cmp    -0x40(%rbp),%ecx
mov    %al,-0x45(%rbp)
jge    11d5 <stringlist_get_tok_indices+0xa5>
mov    -0x10(%rbp),%rax
movslq -0x3c(%rbp),%rcx
movsbl (%rax,%rcx,1),%edi
call   1040 <isspace@plt>
mov    %rax,%rcx
mov    $0x1,%al
cmp    $0x0,%rcx
mov    %al,-0x46(%rbp)
jne    11cf <stringlist_get_tok_indices+0x9f>
mov    -0x10(%rbp),%rax
movslq -0x3c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x9,%eax
sete   %al
mov    %al,-0x46(%rbp)
mov    -0x46(%rbp),%al
mov    %al,-0x45(%rbp)
mov    -0x45(%rbp),%al
test   $0x1,%al
jne    11e5 <stringlist_get_tok_indices+0xb5>
jmp    11f3 <stringlist_get_tok_indices+0xc3>
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
jmp    1186 <stringlist_get_tok_indices+0x56>
mov    -0x3c(%rbp),%eax
cmp    -0x40(%rbp),%eax
jne    1220 <stringlist_get_tok_indices+0xf0>
mov    0x2dda(%rip),%rax
mov    (%rax),%edi
lea    0xdf1(%rip),%rsi
call   1050 <fprintf@plt>
movl   $0xffffffff,-0x4(%rbp)
jmp    17af <stringlist_get_tok_indices+0x67f>
mov    -0x3c(%rbp),%ecx
mov    -0x18(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
xor    %eax,%eax
cmp    -0x40(%rbp),%ecx
mov    %al,-0x47(%rbp)
jge    127a <stringlist_get_tok_indices+0x14a>
mov    -0x10(%rbp),%rax
movslq -0x3c(%rbp),%rcx
movsbl (%rax,%rcx,1),%edi
call   1040 <isspace@plt>
mov    %rax,%rcx
mov    $0x1,%al
cmp    $0x0,%rcx
mov    %al,-0x48(%rbp)
jne    1272 <stringlist_get_tok_indices+0x142>
mov    -0x10(%rbp),%rax
movslq -0x3c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x9,%eax
sete   %al
mov    %al,-0x48(%rbp)
mov    -0x48(%rbp),%al
xor    $0xff,%al
mov    %al,-0x47(%rbp)
mov    -0x47(%rbp),%al
test   $0x1,%al
jne    128a <stringlist_get_tok_indices+0x15a>
jmp    1298 <stringlist_get_tok_indices+0x168>
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
jmp    1229 <stringlist_get_tok_indices+0xf9>
mov    -0x3c(%rbp),%eax
cmp    -0x40(%rbp),%eax
jne    12c5 <stringlist_get_tok_indices+0x195>
mov    0x2d35(%rip),%rax
mov    (%rax),%edi
lea    0xd9b(%rip),%rsi
call   1050 <fprintf@plt>
movl   $0xffffffff,-0x4(%rbp)
jmp    17af <stringlist_get_tok_indices+0x67f>
mov    -0x3c(%rbp),%ecx
sub    $0x1,%ecx
mov    -0x20(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
xor    %eax,%eax
cmp    -0x40(%rbp),%ecx
mov    %al,-0x49(%rbp)
jge    1320 <stringlist_get_tok_indices+0x1f0>
mov    -0x10(%rbp),%rax
movslq -0x3c(%rbp),%rcx
movsbl (%rax,%rcx,1),%edi
call   1040 <isspace@plt>
mov    %rax,%rcx
mov    $0x1,%al
cmp    $0x0,%rcx
mov    %al,-0x4a(%rbp)
jne    131a <stringlist_get_tok_indices+0x1ea>
mov    -0x10(%rbp),%rax
movslq -0x3c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x9,%eax
sete   %al
mov    %al,-0x4a(%rbp)
mov    -0x4a(%rbp),%al
mov    %al,-0x49(%rbp)
mov    -0x49(%rbp),%al
test   $0x1,%al
jne    1330 <stringlist_get_tok_indices+0x200>
jmp    133e <stringlist_get_tok_indices+0x20e>
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
jmp    12d1 <stringlist_get_tok_indices+0x1a1>
mov    -0x3c(%rbp),%eax
cmp    -0x40(%rbp),%eax
jne    136b <stringlist_get_tok_indices+0x23b>
mov    0x2c8f(%rip),%rax
mov    (%rax),%edi
lea    0xd5e(%rip),%rsi
call   1050 <fprintf@plt>
movl   $0xffffffff,-0x4(%rbp)
jmp    17af <stringlist_get_tok_indices+0x67f>
mov    -0x10(%rbp),%rax
movslq -0x3c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x22,%eax
je     13a1 <stringlist_get_tok_indices+0x271>
mov    0x2c59(%rip),%rax
mov    (%rax),%edi
lea    0xd8f(%rip),%rsi
call   1050 <fprintf@plt>
movl   $0xffffffff,-0x4(%rbp)
jmp    17af <stringlist_get_tok_indices+0x67f>
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
mov    -0x3c(%rbp),%ecx
mov    -0x28(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
xor    %eax,%eax
cmp    -0x40(%rbp),%ecx
mov    %al,-0x4b(%rbp)
jge    1400 <stringlist_get_tok_indices+0x2d0>
mov    -0x10(%rbp),%rax
movslq -0x3c(%rbp),%rcx
movsbl (%rax,%rcx,1),%ecx
xor    %eax,%eax
cmp    $0x22,%ecx
mov    %al,-0x4c(%rbp)
jne    13f8 <stringlist_get_tok_indices+0x2c8>
mov    -0x10(%rbp),%rax
mov    -0x3c(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x5c,%eax
setne  %al
mov    %al,-0x4c(%rbp)
mov    -0x4c(%rbp),%al
xor    $0xff,%al
mov    %al,-0x4b(%rbp)
mov    -0x4b(%rbp),%al
test   $0x1,%al
jne    1410 <stringlist_get_tok_indices+0x2e0>
jmp    141e <stringlist_get_tok_indices+0x2ee>
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
jmp    13b3 <stringlist_get_tok_indices+0x283>
mov    -0x3c(%rbp),%eax
cmp    -0x40(%rbp),%eax
jne    144b <stringlist_get_tok_indices+0x31b>
mov    0x2baf(%rip),%rax
mov    (%rax),%edi
lea    0xd44(%rip),%rsi
call   1050 <fprintf@plt>
movl   $0xffffffff,-0x4(%rbp)
jmp    17af <stringlist_get_tok_indices+0x67f>
mov    -0x3c(%rbp),%ecx
sub    $0x1,%ecx
mov    -0x30(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
mov    -0x3c(%rbp),%ecx
xor    %eax,%eax
cmp    -0x40(%rbp),%ecx
mov    %al,-0x4d(%rbp)
jge    14af <stringlist_get_tok_indices+0x37f>
mov    -0x10(%rbp),%rax
movslq -0x3c(%rbp),%rcx
movsbl (%rax,%rcx,1),%edi
call   1040 <isspace@plt>
mov    %rax,%rcx
mov    $0x1,%al
cmp    $0x0,%rcx
mov    %al,-0x4e(%rbp)
jne    14a9 <stringlist_get_tok_indices+0x379>
mov    -0x10(%rbp),%rax
movslq -0x3c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x9,%eax
sete   %al
mov    %al,-0x4e(%rbp)
mov    -0x4e(%rbp),%al
mov    %al,-0x4d(%rbp)
mov    -0x4d(%rbp),%al
test   $0x1,%al
jne    14bf <stringlist_get_tok_indices+0x38f>
jmp    14cd <stringlist_get_tok_indices+0x39d>
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
jmp    1460 <stringlist_get_tok_indices+0x330>
mov    -0x3c(%rbp),%eax
cmp    -0x40(%rbp),%eax
jne    14fa <stringlist_get_tok_indices+0x3ca>
mov    0x2b00(%rip),%rax
mov    (%rax),%edi
lea    0xcf2(%rip),%rsi
call   1050 <fprintf@plt>
movl   $0xffffffff,-0x4(%rbp)
jmp    17af <stringlist_get_tok_indices+0x67f>
mov    -0x3c(%rbp),%ecx
mov    -0x38(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
xor    %eax,%eax
cmp    -0x40(%rbp),%ecx
mov    %al,-0x4f(%rbp)
jge    1554 <stringlist_get_tok_indices+0x424>
mov    -0x10(%rbp),%rax
movslq -0x3c(%rbp),%rcx
movsbl (%rax,%rcx,1),%edi
call   1040 <isspace@plt>
mov    %rax,%rcx
mov    $0x1,%al
cmp    $0x0,%rcx
mov    %al,-0x50(%rbp)
jne    154c <stringlist_get_tok_indices+0x41c>
mov    -0x10(%rbp),%rax
movslq -0x3c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x9,%eax
sete   %al
mov    %al,-0x50(%rbp)
mov    -0x50(%rbp),%al
xor    $0xff,%al
mov    %al,-0x4f(%rbp)
mov    -0x4f(%rbp),%al
test   $0x1,%al
jne    1564 <stringlist_get_tok_indices+0x434>
jmp    1572 <stringlist_get_tok_indices+0x442>
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
jmp    1503 <stringlist_get_tok_indices+0x3d3>
mov    -0x3c(%rbp),%eax
cmp    -0x40(%rbp),%eax
jne    159f <stringlist_get_tok_indices+0x46f>
mov    0x2a5b(%rip),%rax
mov    (%rax),%edi
lea    0xcb0(%rip),%rsi
call   1050 <fprintf@plt>
movl   $0xffffffff,-0x4(%rbp)
jmp    17af <stringlist_get_tok_indices+0x67f>
mov    -0x3c(%rbp),%ecx
sub    $0x1,%ecx
mov    0x10(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
xor    %eax,%eax
cmp    -0x40(%rbp),%ecx
mov    %al,-0x51(%rbp)
jge    15fa <stringlist_get_tok_indices+0x4ca>
mov    -0x10(%rbp),%rax
movslq -0x3c(%rbp),%rcx
movsbl (%rax,%rcx,1),%edi
call   1040 <isspace@plt>
mov    %rax,%rcx
mov    $0x1,%al
cmp    $0x0,%rcx
mov    %al,-0x52(%rbp)
jne    15f4 <stringlist_get_tok_indices+0x4c4>
mov    -0x10(%rbp),%rax
movslq -0x3c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x9,%eax
sete   %al
mov    %al,-0x52(%rbp)
mov    -0x52(%rbp),%al
mov    %al,-0x51(%rbp)
mov    -0x51(%rbp),%al
test   $0x1,%al
jne    160a <stringlist_get_tok_indices+0x4da>
jmp    1618 <stringlist_get_tok_indices+0x4e8>
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
jmp    15ab <stringlist_get_tok_indices+0x47b>
mov    -0x3c(%rbp),%eax
cmp    -0x40(%rbp),%eax
jne    1645 <stringlist_get_tok_indices+0x515>
mov    0x29b5(%rip),%rax
mov    (%rax),%edi
lea    0xc6e(%rip),%rsi
call   1050 <fprintf@plt>
movl   $0xffffffff,-0x4(%rbp)
jmp    17af <stringlist_get_tok_indices+0x67f>
mov    -0x10(%rbp),%rax
movslq -0x3c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x22,%eax
sete   %al
and    $0x1,%al
movzbl %al,%eax
mov    %eax,-0x44(%rbp)
cmpl   $0x0,-0x44(%rbp)
je     1724 <stringlist_get_tok_indices+0x5f4>
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
mov    -0x3c(%rbp),%ecx
mov    0x18(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
xor    %eax,%eax
cmp    -0x40(%rbp),%ecx
mov    %al,-0x53(%rbp)
jge    16c8 <stringlist_get_tok_indices+0x598>
mov    -0x10(%rbp),%rax
movslq -0x3c(%rbp),%rcx
movsbl (%rax,%rcx,1),%ecx
xor    %eax,%eax
cmp    $0x22,%ecx
mov    %al,-0x54(%rbp)
jne    16c0 <stringlist_get_tok_indices+0x590>
mov    -0x10(%rbp),%rax
mov    -0x3c(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x5c,%eax
setne  %al
mov    %al,-0x54(%rbp)
mov    -0x54(%rbp),%al
xor    $0xff,%al
mov    %al,-0x53(%rbp)
mov    -0x53(%rbp),%al
test   $0x1,%al
jne    16d8 <stringlist_get_tok_indices+0x5a8>
jmp    16e6 <stringlist_get_tok_indices+0x5b6>
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
jmp    167b <stringlist_get_tok_indices+0x54b>
mov    -0x3c(%rbp),%eax
cmp    -0x40(%rbp),%eax
jne    1713 <stringlist_get_tok_indices+0x5e3>
mov    0x28e7(%rip),%rax
mov    (%rax),%edi
lea    0xc04(%rip),%rsi
call   1050 <fprintf@plt>
movl   $0xffffffff,-0x4(%rbp)
jmp    17af <stringlist_get_tok_indices+0x67f>
mov    -0x3c(%rbp),%ecx
sub    $0x1,%ecx
mov    0x20(%rbp),%rax
mov    %ecx,(%rax)
jmp    17a8 <stringlist_get_tok_indices+0x678>
mov    -0x3c(%rbp),%ecx
mov    0x18(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
xor    %eax,%eax
cmp    -0x40(%rbp),%ecx
mov    %al,-0x55(%rbp)
jge    177e <stringlist_get_tok_indices+0x64e>
mov    -0x10(%rbp),%rax
movslq -0x3c(%rbp),%rcx
movsbl (%rax,%rcx,1),%edi
call   1040 <isspace@plt>
mov    %rax,%rcx
mov    $0x1,%al
cmp    $0x0,%rcx
mov    %al,-0x56(%rbp)
jne    1776 <stringlist_get_tok_indices+0x646>
mov    -0x10(%rbp),%rax
movslq -0x3c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x9,%eax
sete   %al
mov    %al,-0x56(%rbp)
mov    -0x56(%rbp),%al
xor    $0xff,%al
mov    %al,-0x55(%rbp)
mov    -0x55(%rbp),%al
test   $0x1,%al
jne    178e <stringlist_get_tok_indices+0x65e>
jmp    179c <stringlist_get_tok_indices+0x66c>
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
jmp    172d <stringlist_get_tok_indices+0x5fd>
mov    -0x3c(%rbp),%ecx
sub    $0x1,%ecx
mov    0x20(%rbp),%rax
mov    %ecx,(%rax)
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x60,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<stringlist_get_tok_indices>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x18,%rsp
mov    $0xffffffff,%eax
test   %rdi,%rdi
je     11be <stringlist_get_tok_indices+0x8e>
mov    %rdx,%r15
mov    %rsi,%r14
mov    %rdi,%rbx
mov    %rcx,0x10(%rsp)
mov    %r8,0x8(%rsp)
mov    %r9,(%rsp)
call   1030 <strlen@plt>
mov    %eax,%r13d
test   %eax,%eax
jle    11cd <stringlist_get_tok_indices+0x9d>
mov    %r13d,%ebp
xor    %r12d,%r12d
jmp    1189 <stringlist_get_tok_indices+0x59>
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
add    $0x1,%r12
cmp    %r12,%rbp
je     11a4 <stringlist_get_tok_indices+0x74>
movsbl (%rbx,%r12,1),%edi
call   1040 <isspace@plt>
test   %rax,%rax
jne    1180 <stringlist_get_tok_indices+0x50>
cmpb   $0x9,(%rbx,%r12,1)
je     1180 <stringlist_get_tok_indices+0x50>
cmp    %r13d,%r12d
jne    11d5 <stringlist_get_tok_indices+0xa5>
mov    0x2e35(%rip),%rax
mov    (%rax),%edi
lea    0xe4c(%rip),%rsi
call   1050 <fprintf@plt>
mov    $0xffffffff,%eax
add    $0x18,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
xor    %r12d,%r12d
cmp    %r13d,%r12d
je     11a4 <stringlist_get_tok_indices+0x74>
mov    %r12d,(%r14)
jge    1203 <stringlist_get_tok_indices+0xd3>
mov    %r12d,%ebp
add    %rbx,%rbp
movsbl 0x0(%rbp),%edi
call   1040 <isspace@plt>
test   %rax,%rax
jne    1203 <stringlist_get_tok_indices+0xd3>
cmpb   $0x9,0x0(%rbp)
je     1203 <stringlist_get_tok_indices+0xd3>
add    $0x1,%r12d
add    $0x1,%rbp
cmp    %r12d,%r13d
jg     11e0 <stringlist_get_tok_indices+0xb0>
jmp    1208 <stringlist_get_tok_indices+0xd8>
cmp    %r13d,%r12d
jne    121a <stringlist_get_tok_indices+0xea>
mov    0x2dd1(%rip),%rax
mov    (%rax),%edi
lea    0xe37(%rip),%rsi
jmp    11b4 <stringlist_get_tok_indices+0x84>
lea    -0x1(%r12),%eax
mov    %eax,(%r15)
cmp    %r13d,%r12d
jge    1251 <stringlist_get_tok_indices+0x121>
mov    %r12d,%ebp
add    %rbx,%rbp
jmp    123d <stringlist_get_tok_indices+0x10d>
nop
add    $0x1,%r12d
add    $0x1,%rbp
cmp    %r12d,%r13d
jle    1256 <stringlist_get_tok_indices+0x126>
movsbl 0x0(%rbp),%edi
call   1040 <isspace@plt>
test   %rax,%rax
jne    1230 <stringlist_get_tok_indices+0x100>
cmpb   $0x9,0x0(%rbp)
je     1230 <stringlist_get_tok_indices+0x100>
cmp    %r13d,%r12d
jne    126b <stringlist_get_tok_indices+0x13b>
mov    0x2d83(%rip),%rax
mov    (%rax),%edi
lea    0xe52(%rip),%rsi
jmp    11b4 <stringlist_get_tok_indices+0x84>
mov    %r12d,%eax
cmpb   $0x22,(%rbx,%rax,1)
jne    12be <stringlist_get_tok_indices+0x18e>
add    $0x1,%r12d
mov    0x10(%rsp),%rax
mov    %r12d,(%rax)
cmp    %r13d,%r12d
jge    12a4 <stringlist_get_tok_indices+0x174>
movslq %r12d,%r12
jmp    1293 <stringlist_get_tok_indices+0x163>
add    $0x1,%r12
cmp    %r12d,%r13d
je     12a9 <stringlist_get_tok_indices+0x179>
mov    %r12d,%eax
cmpb   $0x22,(%rbx,%rax,1)
jne    128a <stringlist_get_tok_indices+0x15a>
cmpb   $0x5c,-0x1(%rbx,%r12,1)
je     128a <stringlist_get_tok_indices+0x15a>
cmp    %r13d,%r12d
jne    12d3 <stringlist_get_tok_indices+0x1a3>
mov    0x2d30(%rip),%rax
mov    (%rax),%edi
lea    0xec5(%rip),%rsi
jmp    11b4 <stringlist_get_tok_indices+0x84>
mov    0x2d1b(%rip),%rax
mov    (%rax),%edi
lea    0xe51(%rip),%rsi
jmp    11b4 <stringlist_get_tok_indices+0x84>
lea    -0x1(%r12),%eax
mov    0x8(%rsp),%rcx
mov    %eax,(%rcx)
add    $0x1,%r12d
cmp    %r13d,%r12d
jge    1311 <stringlist_get_tok_indices+0x1e1>
movslq %r12d,%rbp
add    %rbx,%rbp
jmp    12fd <stringlist_get_tok_indices+0x1cd>
add    $0x1,%r12d
add    $0x1,%rbp
cmp    %r12d,%r13d
je     1316 <stringlist_get_tok_indices+0x1e6>
movsbl 0x0(%rbp),%edi
call   1040 <isspace@plt>
test   %rax,%rax
jne    12f0 <stringlist_get_tok_indices+0x1c0>
cmpb   $0x9,0x0(%rbp)
je     12f0 <stringlist_get_tok_indices+0x1c0>
cmp    %r13d,%r12d
jne    132b <stringlist_get_tok_indices+0x1fb>
mov    0x2cc3(%rip),%rax
mov    (%rax),%edi
lea    0xeb5(%rip),%rsi
jmp    11b4 <stringlist_get_tok_indices+0x84>
mov    (%rsp),%rax
mov    %r12d,(%rax)
jge    1367 <stringlist_get_tok_indices+0x237>
movslq %r12d,%rax
movslq %r13d,%r14
lea    (%rbx,%rax,1),%r15
sub    %rax,%r14
xor    %ebp,%ebp
movsbl (%r15,%rbp,1),%edi
call   1040 <isspace@plt>
test   %rax,%rax
jne    1364 <stringlist_get_tok_indices+0x234>
cmpb   $0x9,(%r15,%rbp,1)
je     1364 <stringlist_get_tok_indices+0x234>
add    $0x1,%rbp
cmp    %rbp,%r14
jne    1343 <stringlist_get_tok_indices+0x213>
jmp    136c <stringlist_get_tok_indices+0x23c>
add    %ebp,%r12d
cmp    %r13d,%r12d
jne    1381 <stringlist_get_tok_indices+0x251>
mov    0x2c6d(%rip),%rax
mov    (%rax),%edi
lea    0xec2(%rip),%rsi
jmp    11b4 <stringlist_get_tok_indices+0x84>
mov    0x50(%rsp),%rax
lea    -0x1(%r12),%ecx
mov    %ecx,(%rax)
cmp    %r13d,%r12d
jge    13bb <stringlist_get_tok_indices+0x28b>
movslq %r12d,%rbp
add    %rbx,%rbp
jmp    13a7 <stringlist_get_tok_indices+0x277>
add    $0x1,%r12d
add    $0x1,%rbp
cmp    %r12d,%r13d
je     13c0 <stringlist_get_tok_indices+0x290>
movsbl 0x0(%rbp),%edi
call   1040 <isspace@plt>
test   %rax,%rax
jne    139a <stringlist_get_tok_indices+0x26a>
cmpb   $0x9,0x0(%rbp)
je     139a <stringlist_get_tok_indices+0x26a>
cmp    %r13d,%r12d
jne    13d5 <stringlist_get_tok_indices+0x2a5>
mov    0x2c19(%rip),%rax
mov    (%rax),%edi
lea    0xed2(%rip),%rsi
jmp    11b4 <stringlist_get_tok_indices+0x84>
mov    0x58(%rsp),%rcx
movslq %r12d,%rax
cmpb   $0x22,(%rbx,%rax,1)
jne    1429 <stringlist_get_tok_indices+0x2f9>
add    $0x1,%r12d
mov    %r12d,(%rcx)
cmp    %r13d,%r12d
jge    140f <stringlist_get_tok_indices+0x2df>
movslq %r12d,%rax
add    %rax,%rbx
jmp    1404 <stringlist_get_tok_indices+0x2d4>
add    $0x1,%r12d
add    $0x1,%rbx
cmp    %r12d,%r13d
je     1414 <stringlist_get_tok_indices+0x2e4>
cmpb   $0x22,(%rbx)
jne    13f7 <stringlist_get_tok_indices+0x2c7>
cmpb   $0x5c,-0x1(%rbx)
je     13f7 <stringlist_get_tok_indices+0x2c7>
cmp    %r13d,%r12d
jne    1461 <stringlist_get_tok_indices+0x331>
mov    0x2bc5(%rip),%rax
mov    (%rax),%edi
lea    0xee2(%rip),%rsi
jmp    11b4 <stringlist_get_tok_indices+0x84>
mov    %r12d,(%rcx)
cmp    %r13d,%r12d
jge    1461 <stringlist_get_tok_indices+0x331>
movslq %r13d,%r14
add    %rax,%rbx
sub    %rax,%r14
xor    %ebp,%ebp
movsbl (%rbx,%rbp,1),%edi
call   1040 <isspace@plt>
test   %rax,%rax
jne    145e <stringlist_get_tok_indices+0x32e>
cmpb   $0x9,(%rbx,%rbp,1)
je     145e <stringlist_get_tok_indices+0x32e>
add    $0x1,%rbp
cmp    %rbp,%r14
jne    143c <stringlist_get_tok_indices+0x30c>
mov    %r13d,%r12d
jmp    1461 <stringlist_get_tok_indices+0x331>
add    %ebp,%r12d
mov    0x60(%rsp),%rax
add    $0xffffffff,%r12d
mov    %r12d,(%rax)
xor    %eax,%eax
jmp    11be <stringlist_get_tok_indices+0x8e>

LLVM IR (-O0):
@stderr = global i32 0
@.str = [79 x i8] c"stringlist_get_tok_indices: error reading from file, is input line all blank?\0A\00"
@.str.1 = [105 x i8] c"stringlist_get_tok_indices: error reading from file, does line end immeidiately after the index number?\0A\00"
@.str.2 = [103 x i8] c"stringlist_get_tok_indices: error reading from file, does line have ONLY the index number, no string?\0A\00"
@.str.3 = [95 x i8] c"stringlist_get_tok_indices: error reading from file, does string NOT start with a quote sign?\0A\00"
@.str.4 = [93 x i8] c"stringlist_get_tok_indices: error reading from file, does string not end with a quote sign?\0A\00"
@.str.5 = [99 x i8] c"stringlist_get_tok_indices: error reading from file, does line end before specifying an aux_type?\0A\00"
@.str.6 = [100 x i8] c"stringlist_get_tok_indices: error reading from file, does line end immediately after the aux_type?\0A\00"
@.str.7 = [100 x i8] c"stringlist_get_tok_indices: error reading from file, does line end before an aux_val is specified?\0A\00"
@.str.8 = [107 x i8] c"stringlist_get_tok_indices: error reading from file, does the string-valued aux_val NOT end with a quote?\0A\00"
define i32 @stringlist_get_tok_indices(i8* %0, i32* %1, i32* %2, i32* %3, i32* %4, i32* %5, i32* %6, i32* %7, i32* %8) {
%10 = alloca i32
%11 = alloca i8*
%12 = alloca i32*
%13 = alloca i32*
%14 = alloca i32*
%15 = alloca i32*
%16 = alloca i32*
%17 = alloca i32*
%18 = alloca i32*
%19 = alloca i32*
%20 = alloca i32
%21 = alloca i32
%22 = alloca i32
store i8* %0, i8** %11
store i32* %1, i32** %12
store i32* %2, i32** %13
store i32* %3, i32** %14
store i32* %4, i32** %15
store i32* %5, i32** %16
store i32* %6, i32** %17
store i32* %7, i32** %18
store i32* %8, i32** %19
%23 = load i8*, i8** %11
%24 = icmp eq i8* %23, null
br i1 %24, label %25, label %26
25: ; preds = %9
store i32 -1, i32* %10
br label %399
26: ; preds = %9
store i32 0, i32* %20
%27 = load i8*, i8** %11
%28 = call i32 @strlen(i8* %27)
store i32 %28, i32* %21
br label %29
29: ; preds = %53, %26
%30 = load i32, i32* %20
%31 = load i32, i32* %21
%32 = icmp slt i32 %30, %31
br i1 %32, label %33, label %51
33: ; preds = %29
%34 = load i8*, i8** %11
%35 = load i32, i32* %20
%36 = sext i32 %35 to i64
%37 = getelementptr inbounds i8, i8* %34, i64 %36
%38 = load i8, i8* %37
%39 = call i64 @isspace(i8 signext %38)
%40 = icmp ne i64 %39, 0
br i1 %40, label %49, label %41
41: ; preds = %33
%42 = load i8*, i8** %11
%43 = load i32, i32* %20
%44 = sext i32 %43 to i64
%45 = getelementptr inbounds i8, i8* %42, i64 %44
%46 = load i8, i8* %45
%47 = sext i8 %46 to i32
%48 = icmp eq i32 %47, 9
br label %49
49: ; preds = %41, %33
%50 = phi i1 [ true, %33 ], [ %48, %41 ]
br label %51
51: ; preds = %49, %29
%52 = phi i1 [ false, %29 ], [ %50, %49 ]
br i1 %52, label %53, label %56
53: ; preds = %51
%54 = load i32, i32* %20
%55 = add nsw i32 %54, 1
store i32 %55, i32* %20
br label %29
56: ; preds = %51
%57 = load i32, i32* %20
%58 = load i32, i32* %21
%59 = icmp eq i32 %57, %58
br i1 %59, label %60, label %63
60: ; preds = %56
%61 = load i32, i32* @stderr
%62 = call i32 @fprintf(i32 %61, i8* getelementptr inbounds ([79 x i8], [79 x i8]* @.str, i64 0, i64 0))
store i32 -1, i32* %10
br label %399
63: ; preds = %56
%64 = load i32, i32* %20
%65 = load i32*, i32** %12
store i32 %64, i32* %65
br label %66
66: ; preds = %91, %63
%67 = load i32, i32* %20
%68 = load i32, i32* %21
%69 = icmp slt i32 %67, %68
br i1 %69, label %70, label %89
70: ; preds = %66
%71 = load i8*, i8** %11
%72 = load i32, i32* %20
%73 = sext i32 %72 to i64
%74 = getelementptr inbounds i8, i8* %71, i64 %73
%75 = load i8, i8* %74
%76 = call i64 @isspace(i8 signext %75)
%77 = icmp ne i64 %76, 0
br i1 %77, label %86, label %78
78: ; preds = %70
%79 = load i8*, i8** %11
%80 = load i32, i32* %20
%81 = sext i32 %80 to i64
%82 = getelementptr inbounds i8, i8* %79, i64 %81
%83 = load i8, i8* %82
%84 = sext i8 %83 to i32
%85 = icmp eq i32 %84, 9
br label %86
86: ; preds = %78, %70
%87 = phi i1 [ true, %70 ], [ %85, %78 ]
%88 = xor i1 %87, true
br label %89
89: ; preds = %86, %66
%90 = phi i1 [ false, %66 ], [ %88, %86 ]
br i1 %90, label %91, label %94
91: ; preds = %89
%92 = load i32, i32* %20
%93 = add nsw i32 %92, 1
store i32 %93, i32* %20
br label %66
94: ; preds = %89
%95 = load i32, i32* %20
%96 = load i32, i32* %21
%97 = icmp eq i32 %95, %96
br i1 %97, label %98, label %101
98: ; preds = %94
%99 = load i32, i32* @stderr
%100 = call i32 @fprintf(i32 %99, i8* getelementptr inbounds ([105 x i8], [105 x i8]* @.str.1, i64 0, i64 0))
store i32 -1, i32* %10
br label %399
101: ; preds = %94
%102 = load i32, i32* %20
%103 = sub nsw i32 %102, 1
%104 = load i32*, i32** %13
store i32 %103, i32* %104
br label %105
105: ; preds = %129, %101
%106 = load i32, i32* %20
%107 = load i32, i32* %21
%108 = icmp slt i32 %106, %107
br i1 %108, label %109, label %127
109: ; preds = %105
%110 = load i8*, i8** %11
%111 = load i32, i32* %20
%112 = sext i32 %111 to i64
%113 = getelementptr inbounds i8, i8* %110, i64 %112
%114 = load i8, i8* %113
%115 = call i64 @isspace(i8 signext %114)
%116 = icmp ne i64 %115, 0
br i1 %116, label %125, label %117
117: ; preds = %109
%118 = load i8*, i8** %11
%119 = load i32, i32* %20
%120 = sext i32 %119 to i64
%121 = getelementptr inbounds i8, i8* %118, i64 %120
%122 = load i8, i8* %121
%123 = sext i8 %122 to i32
%124 = icmp eq i32 %123, 9
br label %125
125: ; preds = %117, %109
%126 = phi i1 [ true, %109 ], [ %124, %117 ]
br label %127
127: ; preds = %125, %105
%128 = phi i1 [ false, %105 ], [ %126, %125 ]
br i1 %128, label %129, label %132
129: ; preds = %127
%130 = load i32, i32* %20
%131 = add nsw i32 %130, 1
store i32 %131, i32* %20
br label %105
132: ; preds = %127
%133 = load i32, i32* %20
%134 = load i32, i32* %21
%135 = icmp eq i32 %133, %134
br i1 %135, label %136, label %139
136: ; preds = %132
%137 = load i32, i32* @stderr
%138 = call i32 @fprintf(i32 %137, i8* getelementptr inbounds ([103 x i8], [103 x i8]* @.str.2, i64 0, i64 0))
store i32 -1, i32* %10
br label %399
139: ; preds = %132
%140 = load i8*, i8** %11
%141 = load i32, i32* %20
%142 = sext i32 %141 to i64
%143 = getelementptr inbounds i8, i8* %140, i64 %142
%144 = load i8, i8* %143
%145 = sext i8 %144 to i32
%146 = icmp ne i32 %145, 34
br i1 %146, label %147, label %150
147: ; preds = %139
%148 = load i32, i32* @stderr
%149 = call i32 @fprintf(i32 %148, i8* getelementptr inbounds ([95 x i8], [95 x i8]* @.str.3, i64 0, i64 0))
store i32 -1, i32* %10
br label %399
150: ; preds = %139
%151 = load i32, i32* %20
%152 = add nsw i32 %151, 1
store i32 %152, i32* %20
%153 = load i32, i32* %20
%154 = load i32*, i32** %14
store i32 %153, i32* %154
br label %155
155: ; preds = %181, %150
%156 = load i32, i32* %20
%157 = load i32, i32* %21
%158 = icmp slt i32 %156, %157
br i1 %158, label %159, label %179
159: ; preds = %155
%160 = load i8*, i8** %11
%161 = load i32, i32* %20
%162 = sext i32 %161 to i64
%163 = getelementptr inbounds i8, i8* %160, i64 %162
%164 = load i8, i8* %163
%165 = sext i8 %164 to i32
%166 = icmp eq i32 %165, 34
br i1 %166, label %167, label %176
167: ; preds = %159
%168 = load i8*, i8** %11
%169 = load i32, i32* %20
%170 = sub nsw i32 %169, 1
%171 = sext i32 %170 to i64
%172 = getelementptr inbounds i8, i8* %168, i64 %171
%173 = load i8, i8* %172
%174 = sext i8 %173 to i32
%175 = icmp ne i32 %174, 92
br label %176
176: ; preds = %167, %159
%177 = phi i1 [ false, %159 ], [ %175, %167 ]
%178 = xor i1 %177, true
br label %179
179: ; preds = %176, %155
%180 = phi i1 [ false, %155 ], [ %178, %176 ]
br i1 %180, label %181, label %184
181: ; preds = %179
%182 = load i32, i32* %20
%183 = add nsw i32 %182, 1
store i32 %183, i32* %20
br label %155
184: ; preds = %179
%185 = load i32, i32* %20
%186 = load i32, i32* %21
%187 = icmp eq i32 %185, %186
br i1 %187, label %188, label %191
188: ; preds = %184
%189 = load i32, i32* @stderr
%190 = call i32 @fprintf(i32 %189, i8* getelementptr inbounds ([93 x i8], [93 x i8]* @.str.4, i64 0, i64 0))
store i32 -1, i32* %10
br label %399
191: ; preds = %184
%192 = load i32, i32* %20
%193 = sub nsw i32 %192, 1
%194 = load i32*, i32** %15
store i32 %193, i32* %194
%195 = load i32, i32* %20
%196 = add nsw i32 %195, 1
store i32 %196, i32* %20
br label %197
197: ; preds = %221, %191
%198 = load i32, i32* %20
%199 = load i32, i32* %21
%200 = icmp slt i32 %198, %199
br i1 %200, label %201, label %219
201: ; preds = %197
%202 = load i8*, i8** %11
%203 = load i32, i32* %20
%204 = sext i32 %203 to i64
%205 = getelementptr inbounds i8, i8* %202, i64 %204
%206 = load i8, i8* %205
%207 = call i64 @isspace(i8 signext %206)
%208 = icmp ne i64 %207, 0
br i1 %208, label %217, label %209
209: ; preds = %201
%210 = load i8*, i8** %11
%211 = load i32, i32* %20
%212 = sext i32 %211 to i64
%213 = getelementptr inbounds i8, i8* %210, i64 %212
%214 = load i8, i8* %213
%215 = sext i8 %214 to i32
%216 = icmp eq i32 %215, 9
br label %217
217: ; preds = %209, %201
%218 = phi i1 [ true, %201 ], [ %216, %209 ]
br label %219
219: ; preds = %217, %197
%220 = phi i1 [ false, %197 ], [ %218, %217 ]
br i1 %220, label %221, label %224
221: ; preds = %219
%222 = load i32, i32* %20
%223 = add nsw i32 %222, 1
store i32 %223, i32* %20
br label %197
224: ; preds = %219
%225 = load i32, i32* %20
%226 = load i32, i32* %21
%227 = icmp eq i32 %225, %226
br i1 %227, label %228, label %231
228: ; preds = %224
%229 = load i32, i32* @stderr
%230 = call i32 @fprintf(i32 %229, i8* getelementptr inbounds ([99 x i8], [99 x i8]* @.str.5, i64 0, i64 0))
store i32 -1, i32* %10
br label %399
231: ; preds = %224
%232 = load i32, i32* %20
%233 = load i32*, i32** %16
store i32 %232, i32* %233
br label %234
234: ; preds = %259, %231
%235 = load i32, i32* %20
%236 = load i32, i32* %21
%237 = icmp slt i32 %235, %236
br i1 %237, label %238, label %257
238: ; preds = %234
%239 = load i8*, i8** %11
%240 = load i32, i32* %20
%241 = sext i32 %240 to i64
%242 = getelementptr inbounds i8, i8* %239, i64 %241
%243 = load i8, i8* %242
%244 = call i64 @isspace(i8 signext %243)
%245 = icmp ne i64 %244, 0
br i1 %245, label %254, label %246
246: ; preds = %238
%247 = load i8*, i8** %11
%248 = load i32, i32* %20
%249 = sext i32 %248 to i64
%250 = getelementptr inbounds i8, i8* %247, i64 %249
%251 = load i8, i8* %250
%252 = sext i8 %251 to i32
%253 = icmp eq i32 %252, 9
br label %254
254: ; preds = %246, %238
%255 = phi i1 [ true, %238 ], [ %253, %246 ]
%256 = xor i1 %255, true
br label %257
257: ; preds = %254, %234
%258 = phi i1 [ false, %234 ], [ %256, %254 ]
br i1 %258, label %259, label %262
259: ; preds = %257
%260 = load i32, i32* %20
%261 = add nsw i32 %260, 1
store i32 %261, i32* %20
br label %234
262: ; preds = %257
%263 = load i32, i32* %20
%264 = load i32, i32* %21
%265 = icmp eq i32 %263, %264
br i1 %265, label %266, label %269
266: ; preds = %262
%267 = load i32, i32* @stderr
%268 = call i32 @fprintf(i32 %267, i8* getelementptr inbounds ([100 x i8], [100 x i8]* @.str.6, i64 0, i64 0))
store i32 -1, i32* %10
br label %399
269: ; preds = %262
%270 = load i32, i32* %20
%271 = sub nsw i32 %270, 1
%272 = load i32*, i32** %17
store i32 %271, i32* %272
br label %273
273: ; preds = %297, %269
%274 = load i32, i32* %20
%275 = load i32, i32* %21
%276 = icmp slt i32 %274, %275
br i1 %276, label %277, label %295
277: ; preds = %273
%278 = load i8*, i8** %11
%279 = load i32, i32* %20
%280 = sext i32 %279 to i64
%281 = getelementptr inbounds i8, i8* %278, i64 %280
%282 = load i8, i8* %281
%283 = call i64 @isspace(i8 signext %282)
%284 = icmp ne i64 %283, 0
br i1 %284, label %293, label %285
285: ; preds = %277
%286 = load i8*, i8** %11
%287 = load i32, i32* %20
%288 = sext i32 %287 to i64
%289 = getelementptr inbounds i8, i8* %286, i64 %288
%290 = load i8, i8* %289
%291 = sext i8 %290 to i32
%292 = icmp eq i32 %291, 9
br label %293
293: ; preds = %285, %277
%294 = phi i1 [ true, %277 ], [ %292, %285 ]
br label %295
295: ; preds = %293, %273
%296 = phi i1 [ false, %273 ], [ %294, %293 ]
br i1 %296, label %297, label %300
297: ; preds = %295
%298 = load i32, i32* %20
%299 = add nsw i32 %298, 1
store i32 %299, i32* %20
br label %273
300: ; preds = %295
%301 = load i32, i32* %20
%302 = load i32, i32* %21
%303 = icmp eq i32 %301, %302
br i1 %303, label %304, label %307
304: ; preds = %300
%305 = load i32, i32* @stderr
%306 = call i32 @fprintf(i32 %305, i8* getelementptr inbounds ([100 x i8], [100 x i8]* @.str.7, i64 0, i64 0))
store i32 -1, i32* %10
br label %399
307: ; preds = %300
%308 = load i8*, i8** %11
%309 = load i32, i32* %20
%310 = sext i32 %309 to i64
%311 = getelementptr inbounds i8, i8* %308, i64 %310
%312 = load i8, i8* %311
%313 = sext i8 %312 to i32
%314 = icmp eq i32 %313, 34
%315 = zext i1 %314 to i32
store i32 %315, i32* %22
%316 = load i32, i32* %22
%317 = icmp ne i32 %316, 0
br i1 %317, label %318, label %363
318: ; preds = %307
%319 = load i32, i32* %20
%320 = add nsw i32 %319, 1
store i32 %320, i32* %20
%321 = load i32, i32* %20
%322 = load i32*, i32** %18
store i32 %321, i32* %322
br label %323
323: ; preds = %349, %318
%324 = load i32, i32* %20
%325 = load i32, i32* %21
%326 = icmp slt i32 %324, %325
br i1 %326, label %327, label %347
327: ; preds = %323
%328 = load i8*, i8** %11
%329 = load i32, i32* %20
%330 = sext i32 %329 to i64
%331 = getelementptr inbounds i8, i8* %328, i64 %330
%332 = load i8, i8* %331
%333 = sext i8 %332 to i32
%334 = icmp eq i32 %333, 34
br i1 %334, label %335, label %344
335: ; preds = %327
%336 = load i8*, i8** %11
%337 = load i32, i32* %20
%338 = sub nsw i32 %337, 1
%339 = sext i32 %338 to i64
%340 = getelementptr inbounds i8, i8* %336, i64 %339
%341 = load i8, i8* %340
%342 = sext i8 %341 to i32
%343 = icmp ne i32 %342, 92
br label %344
344: ; preds = %335, %327
%345 = phi i1 [ false, %327 ], [ %343, %335 ]
%346 = xor i1 %345, true
br label %347
347: ; preds = %344, %323
%348 = phi i1 [ false, %323 ], [ %346, %344 ]
br i1 %348, label %349, label %352
349: ; preds = %347
%350 = load i32, i32* %20
%351 = add nsw i32 %350, 1
store i32 %351, i32* %20
br label %323
352: ; preds = %347
%353 = load i32, i32* %20
%354 = load i32, i32* %21
%355 = icmp eq i32 %353, %354
br i1 %355, label %356, label %359
356: ; preds = %352
%357 = load i32, i32* @stderr
%358 = call i32 @fprintf(i32 %357, i8* getelementptr inbounds ([107 x i8], [107 x i8]* @.str.8, i64 0, i64 0))
store i32 -1, i32* %10
br label %399
359: ; preds = %352
%360 = load i32, i32* %20
%361 = sub nsw i32 %360, 1
%362 = load i32*, i32** %19
store i32 %361, i32* %362
br label %398
363: ; preds = %307
%364 = load i32, i32* %20
%365 = load i32*, i32** %18
store i32 %364, i32* %365
br label %366
366: ; preds = %391, %363
%367 = load i32, i32* %20
%368 = load i32, i32* %21
%369 = icmp slt i32 %367, %368
br i1 %369, label %370, label %389
370: ; preds = %366
%371 = load i8*, i8** %11
%372 = load i32, i32* %20
%373 = sext i32 %372 to i64
%374 = getelementptr inbounds i8, i8* %371, i64 %373
%375 = load i8, i8* %374
%376 = call i64 @isspace(i8 signext %375)
%377 = icmp ne i64 %376, 0
br i1 %377, label %386, label %378
378: ; preds = %370
%379 = load i8*, i8** %11
%380 = load i32, i32* %20
%381 = sext i32 %380 to i64
%382 = getelementptr inbounds i8, i8* %379, i64 %381
%383 = load i8, i8* %382
%384 = sext i8 %383 to i32
%385 = icmp eq i32 %384, 9
br label %386
386: ; preds = %378, %370
%387 = phi i1 [ true, %370 ], [ %385, %378 ]
%388 = xor i1 %387, true
br label %389
389: ; preds = %386, %366
%390 = phi i1 [ false, %366 ], [ %388, %386 ]
br i1 %390, label %391, label %394
391: ; preds = %389
%392 = load i32, i32* %20
%393 = add nsw i32 %392, 1
store i32 %393, i32* %20
br label %366
394: ; preds = %389
%395 = load i32, i32* %20
%396 = sub nsw i32 %395, 1
%397 = load i32*, i32** %19
store i32 %396, i32* %397
br label %398
398: ; preds = %394, %359
store i32 0, i32* %10
br label %399
399: ; preds = %398, %356, %304, %266, %228, %188, %147, %136, %98, %60, %25
%400 = load i32, i32* %10
ret i32 %400
}

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