#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 */
double atof(char *);
int atoi(char *);
int /*<<< orphan*/ filelist_tar_filename_proc(char *, int);
int /*<<< orphan*/ is_a_number(char *);
int /*<<< orphan*/ nexttoken(char *, char *, int *);
int /*<<< orphan*/ strcpy(char *, char *);
int /*<<< orphan*/ stricmp(char *, char *);
int strlen(char *);
char tolower(char);
int /*<<< orphan*/ wfile_noslash(char *, int /*<<< orphan*/ *);
int parse_tarline(char *buf, double *size, int *month, int *day, int *year,
                  int *hour, int *minute, int *second, int *attr,
                  char *filename, int dirstoo) {
  char tbuf[512];
  int i, j, created_by_filelist_function;
  static char *months[] = {"jan", "feb", "mar", "apr", "may", "jun",
                           "jul", "aug", "sep", "oct", "nov", "dec"};
  i = 0;
  (*attr) = 0;
  if (!nexttoken(tbuf, buf, &i))
    return (0);
  if (tolower(tbuf[0]) == 'l')
    (*attr) = (*attr) | 0x0020;
  for (j = 0; tolower(buf[j]) != 'w' && buf[j] != '\0'; j++)
    ;
  if (buf[j] == '\0')
    (*attr) = (*attr) | 0x0010;
  if (tolower(tbuf[0]) == 'd') {
    if (!dirstoo)
      return (0);
    (*attr) = (*attr) | 0x0002;
  }
  if (!nexttoken(tbuf, buf, &i))
    return (0);
  created_by_filelist_function = !stricmp(tbuf, "999/999");
  if (!nexttoken(tbuf, buf, &i))
    return (0);
  if (!is_a_number(tbuf))
    return (0);
  (*size) = atof(tbuf);
  if (!nexttoken(tbuf, buf, &i))
    return (0);
  for (j = 0; j < 12; j++)
    if (!stricmp(tbuf, months[j]))
      break;
  if (j < 12) {
    (*month) = j + 1;
    if (!nexttoken(tbuf, buf, &i))
      return (0);
    (*day) = atoi(tbuf);
    if (!nexttoken(tbuf, buf, &i))
      return (0);
    if (tbuf[2] != ':')
      return (0);
    tbuf[2] = '\0';
    (*hour) = atoi(tbuf);
    (*minute) = atoi(&tbuf[3]);
    (*second) = 0;
    if (!nexttoken(tbuf, buf, &i))
      return (0);
    (*year) = atoi(tbuf);
  } else {
    if (strlen(tbuf) != 10 || tbuf[4] != '-' || tbuf[7] != '-')
      return (0);
    tbuf[4] = '\0';
    tbuf[7] = '\0';
    (*day) = atoi(&tbuf[8]);
    (*month) = atoi(&tbuf[5]);
    (*year) = atoi(tbuf);
    if (!nexttoken(tbuf, buf, &i))
      return (0);
    if (strlen(tbuf) != 8 || tbuf[2] != ':' || tbuf[5] != ':')
      return (0);
    tbuf[2] = '\0';
    tbuf[5] = '\0';
    (*hour) = atoi(tbuf);
    (*minute) = atoi(&tbuf[3]);
    (*second) = atoi(&tbuf[6]);
  }
  if (strlen(&buf[i]) <= 0)
    return (0);
  strcpy(filename, &buf[i]);
  if (!created_by_filelist_function)
    filelist_tar_filename_proc(filename, (*attr));
  wfile_noslash(filename, NULL);
  return (-1);
}


x86 assembly (clang, -O0):
<parse_tarline>:
push   %rbp
mov    %rsp,%rbp
sub    $0x250,%rsp
mov    0x30(%rbp),%eax
mov    0x28(%rbp),%rax
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)
movl   $0x0,-0x244(%rbp)
mov    0x20(%rbp),%rax
movl   $0x0,(%rax)
lea    -0x240(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    -0x244(%rbp),%rdx
call   10b0 <nexttoken@plt>
cmp    $0x0,%eax
jne    1216 <parse_tarline+0x76>
movl   $0x0,-0x4(%rbp)
jmp    173c <parse_tarline+0x59c>
movsbl -0x240(%rbp),%edi
call   1070 <tolower@plt>
movsbl %al,%eax
cmp    $0x6c,%eax
jne    123d <parse_tarline+0x9d>
mov    0x20(%rbp),%rax
mov    (%rax),%ecx
or     $0x20,%ecx
mov    0x20(%rbp),%rax
mov    %ecx,(%rax)
movl   $0x0,-0x248(%rbp)
mov    -0x10(%rbp),%rax
movslq -0x248(%rbp),%rcx
movsbl (%rax,%rcx,1),%edi
call   1070 <tolower@plt>
movsbl %al,%ecx
xor    %eax,%eax
cmp    $0x77,%ecx
mov    %al,-0x24d(%rbp)
je     128a <parse_tarline+0xea>
mov    -0x10(%rbp),%rax
movslq -0x248(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x0,%eax
setne  %al
mov    %al,-0x24d(%rbp)
mov    -0x24d(%rbp),%al
test   $0x1,%al
jne    129d <parse_tarline+0xfd>
jmp    12b6 <parse_tarline+0x116>
jmp    12a2 <parse_tarline+0x102>
mov    -0x248(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x248(%rbp)
jmp    1247 <parse_tarline+0xa7>
mov    -0x10(%rbp),%rax
movslq -0x248(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x0,%eax
jne    12dd <parse_tarline+0x13d>
mov    0x20(%rbp),%rax
mov    (%rax),%ecx
or     $0x10,%ecx
mov    0x20(%rbp),%rax
mov    %ecx,(%rax)
movsbl -0x240(%rbp),%edi
call   1070 <tolower@plt>
movsbl %al,%eax
cmp    $0x64,%eax
jne    131a <parse_tarline+0x17a>
cmpl   $0x0,0x30(%rbp)
jne    130b <parse_tarline+0x16b>
movl   $0x0,-0x4(%rbp)
jmp    173c <parse_tarline+0x59c>
mov    0x20(%rbp),%rax
mov    (%rax),%ecx
or     $0x2,%ecx
mov    0x20(%rbp),%rax
mov    %ecx,(%rax)
lea    -0x240(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    -0x244(%rbp),%rdx
call   10b0 <nexttoken@plt>
cmp    $0x0,%eax
jne    1346 <parse_tarline+0x1a6>
movl   $0x0,-0x4(%rbp)
jmp    173c <parse_tarline+0x59c>
lea    -0x240(%rbp),%rdi
lea    0xcdc(%rip),%rsi
call   1050 <stricmp@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%eax
mov    %eax,-0x24c(%rbp)
lea    -0x240(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    -0x244(%rbp),%rdx
call   10b0 <nexttoken@plt>
cmp    $0x0,%eax
jne    1398 <parse_tarline+0x1f8>
movl   $0x0,-0x4(%rbp)
jmp    173c <parse_tarline+0x59c>
lea    -0x240(%rbp),%rdi
call   1080 <is_a_number@plt>
cmp    $0x0,%eax
jne    13b9 <parse_tarline+0x219>
movl   $0x0,-0x4(%rbp)
jmp    173c <parse_tarline+0x59c>
lea    -0x240(%rbp),%rdi
call   1040 <atof@plt>
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
lea    -0x240(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    -0x244(%rbp),%rdx
call   10b0 <nexttoken@plt>
cmp    $0x0,%eax
jne    13f9 <parse_tarline+0x259>
movl   $0x0,-0x4(%rbp)
jmp    173c <parse_tarline+0x59c>
movl   $0x0,-0x248(%rbp)
cmpl   $0xc,-0x248(%rbp)
jge    1455 <parse_tarline+0x2b5>
lea    -0x240(%rbp),%rdi
movslq -0x248(%rbp),%rcx
lea    0x2c5b(%rip),%rax
mov    (%rax,%rcx,8),%rsi
call   1050 <stricmp@plt>
cmp    $0x0,%eax
jne    143c <parse_tarline+0x29c>
jmp    1455 <parse_tarline+0x2b5>
jmp    1441 <parse_tarline+0x2a1>
mov    -0x248(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x248(%rbp)
jmp    1403 <parse_tarline+0x263>
cmpl   $0xc,-0x248(%rbp)
jge    157b <parse_tarline+0x3db>
mov    -0x248(%rbp),%ecx
add    $0x1,%ecx
mov    -0x20(%rbp),%rax
mov    %ecx,(%rax)
lea    -0x240(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    -0x244(%rbp),%rdx
call   10b0 <nexttoken@plt>
cmp    $0x0,%eax
jne    149d <parse_tarline+0x2fd>
movl   $0x0,-0x4(%rbp)
jmp    173c <parse_tarline+0x59c>
lea    -0x240(%rbp),%rdi
call   10a0 <atoi@plt>
mov    %eax,%ecx
mov    -0x28(%rbp),%rax
mov    %ecx,(%rax)
lea    -0x240(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    -0x244(%rbp),%rdx
call   10b0 <nexttoken@plt>
cmp    $0x0,%eax
jne    14dd <parse_tarline+0x33d>
movl   $0x0,-0x4(%rbp)
jmp    173c <parse_tarline+0x59c>
movsbl -0x23e(%rbp),%eax
cmp    $0x3a,%eax
je     14f9 <parse_tarline+0x359>
movl   $0x0,-0x4(%rbp)
jmp    173c <parse_tarline+0x59c>
movb   $0x0,-0x23e(%rbp)
lea    -0x240(%rbp),%rdi
call   10a0 <atoi@plt>
mov    %eax,%ecx
mov    -0x38(%rbp),%rax
mov    %ecx,(%rax)
lea    -0x240(%rbp),%rdi
add    $0x3,%rdi
call   10a0 <atoi@plt>
mov    %eax,%ecx
mov    0x10(%rbp),%rax
mov    %ecx,(%rax)
mov    0x18(%rbp),%rax
movl   $0x0,(%rax)
lea    -0x240(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    -0x244(%rbp),%rdx
call   10b0 <nexttoken@plt>
cmp    $0x0,%eax
jne    1562 <parse_tarline+0x3c2>
movl   $0x0,-0x4(%rbp)
jmp    173c <parse_tarline+0x59c>
lea    -0x240(%rbp),%rdi
call   10a0 <atoi@plt>
mov    %eax,%ecx
mov    -0x30(%rbp),%rax
mov    %ecx,(%rax)
jmp    16cd <parse_tarline+0x52d>
lea    -0x240(%rbp),%rdi
call   1060 <strlen@plt>
cmp    $0xa,%eax
jne    15b0 <parse_tarline+0x410>
movsbl -0x23c(%rbp),%eax
cmp    $0x2d,%eax
jne    15b0 <parse_tarline+0x410>
movsbl -0x239(%rbp),%eax
cmp    $0x2d,%eax
je     15bc <parse_tarline+0x41c>
movl   $0x0,-0x4(%rbp)
jmp    173c <parse_tarline+0x59c>
movb   $0x0,-0x23c(%rbp)
movb   $0x0,-0x239(%rbp)
lea    -0x240(%rbp),%rdi
add    $0x8,%rdi
call   10a0 <atoi@plt>
mov    %eax,%ecx
mov    -0x28(%rbp),%rax
mov    %ecx,(%rax)
lea    -0x240(%rbp),%rdi
add    $0x5,%rdi
call   10a0 <atoi@plt>
mov    %eax,%ecx
mov    -0x20(%rbp),%rax
mov    %ecx,(%rax)
lea    -0x240(%rbp),%rdi
call   10a0 <atoi@plt>
mov    %eax,%ecx
mov    -0x30(%rbp),%rax
mov    %ecx,(%rax)
lea    -0x240(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    -0x244(%rbp),%rdx
call   10b0 <nexttoken@plt>
cmp    $0x0,%eax
jne    163a <parse_tarline+0x49a>
movl   $0x0,-0x4(%rbp)
jmp    173c <parse_tarline+0x59c>
lea    -0x240(%rbp),%rdi
call   1060 <strlen@plt>
cmp    $0x8,%eax
jne    166f <parse_tarline+0x4cf>
movsbl -0x23e(%rbp),%eax
cmp    $0x3a,%eax
jne    166f <parse_tarline+0x4cf>
movsbl -0x23b(%rbp),%eax
cmp    $0x3a,%eax
je     167b <parse_tarline+0x4db>
movl   $0x0,-0x4(%rbp)
jmp    173c <parse_tarline+0x59c>
movb   $0x0,-0x23e(%rbp)
movb   $0x0,-0x23b(%rbp)
lea    -0x240(%rbp),%rdi
call   10a0 <atoi@plt>
mov    %eax,%ecx
mov    -0x38(%rbp),%rax
mov    %ecx,(%rax)
lea    -0x240(%rbp),%rdi
add    $0x3,%rdi
call   10a0 <atoi@plt>
mov    %eax,%ecx
mov    0x10(%rbp),%rax
mov    %ecx,(%rax)
lea    -0x240(%rbp),%rdi
add    $0x6,%rdi
call   10a0 <atoi@plt>
mov    %eax,%ecx
mov    0x18(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x10(%rbp),%rdi
movslq -0x244(%rbp),%rax
add    %rax,%rdi
call   1060 <strlen@plt>
cmp    $0x0,%eax
jg     16f5 <parse_tarline+0x555>
movl   $0x0,-0x4(%rbp)
jmp    173c <parse_tarline+0x59c>
mov    0x28(%rbp),%rdi
mov    -0x10(%rbp),%rsi
movslq -0x244(%rbp),%rax
add    %rax,%rsi
call   1030 <strcpy@plt>
cmpl   $0x0,-0x24c(%rbp)
jne    1728 <parse_tarline+0x588>
mov    0x28(%rbp),%rdi
mov    0x20(%rbp),%rax
mov    (%rax),%esi
call   1090 <filelist_tar_filename_proc@plt>
mov    0x28(%rbp),%rdi
xor    %eax,%eax
mov    %eax,%esi
call   10c0 <wfile_noslash@plt>
movl   $0xffffffff,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x250,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<parse_tarline>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x238,%rsp
mov    %r9,%r15
mov    %r8,%rbx
mov    %rcx,0x20(%rsp)
mov    %rdx,0x28(%rsp)
mov    %rsi,%r14
mov    %rdi,%r12
mov    0x280(%rsp),%r13
movl   $0x0,0xc(%rsp)
movl   $0x0,0x0(%r13)
lea    0x30(%rsp),%rdi
lea    0xc(%rsp),%rdx
mov    %r12,%rsi
call   10b0 <nexttoken@plt>
xor    %ebp,%ebp
test   %eax,%eax
je     1677 <parse_tarline+0x4d7>
mov    %rbx,0x18(%rsp)
movsbl 0x30(%rsp),%edi
call   1070 <tolower@plt>
cmp    $0x6c,%al
jne    1213 <parse_tarline+0x73>
orb    $0x20,0x0(%r13)
movsbl (%r12),%edi
call   1070 <tolower@plt>
mov    %r12,%rbx
cmp    $0x77,%al
je     1246 <parse_tarline+0xa6>
mov    %r12,%rbx
nopw   0x0(%rax,%rax,1)
cmpb   $0x0,(%rbx)
je     124b <parse_tarline+0xab>
movsbl 0x1(%rbx),%edi
add    $0x1,%rbx
call   1070 <tolower@plt>
cmp    $0x77,%al
jne    1230 <parse_tarline+0x90>
cmpb   $0x0,(%rbx)
jne    1250 <parse_tarline+0xb0>
orb    $0x10,0x0(%r13)
movsbl 0x30(%rsp),%edi
call   1070 <tolower@plt>
cmp    $0x64,%al
jne    1271 <parse_tarline+0xd1>
cmpl   $0x0,0x290(%rsp)
je     1677 <parse_tarline+0x4d7>
orb    $0x2,0x0(%r13)
lea    0x30(%rsp),%rdi
lea    0xc(%rsp),%rdx
mov    %r12,%rsi
call   10b0 <nexttoken@plt>
test   %eax,%eax
je     1677 <parse_tarline+0x4d7>
mov    %r15,0x10(%rsp)
lea    0xd99(%rip),%rsi
lea    0x30(%rsp),%r15
mov    %r15,%rdi
call   1050 <stricmp@plt>
mov    %eax,%ebx
lea    0xc(%rsp),%rdx
mov    %r15,%rdi
mov    %r12,%rsi
call   10b0 <nexttoken@plt>
test   %eax,%eax
je     1675 <parse_tarline+0x4d5>
lea    0x30(%rsp),%rdi
call   1080 <is_a_number@plt>
test   %eax,%eax
mov    $0x0,%ebp
je     1677 <parse_tarline+0x4d7>
mov    %ebx,%r15d
lea    0x30(%rsp),%rbx
mov    %rbx,%rdi
call   1040 <atof@plt>
movsd  %xmm0,(%r14)
lea    0xc(%rsp),%rdx
mov    %rbx,%rdi
mov    %r12,%rsi
call   10b0 <nexttoken@plt>
test   %eax,%eax
je     1677 <parse_tarline+0x4d7>
mov    0x278(%rsp),%rbp
mov    0x270(%rsp),%rbx
lea    0xce7(%rip),%rsi
lea    0x30(%rsp),%rdi
call   1050 <stricmp@plt>
test   %eax,%eax
je     1526 <parse_tarline+0x386>
lea    0xcd2(%rip),%rsi
lea    0x30(%rsp),%rdi
call   1050 <stricmp@plt>
test   %eax,%eax
mov    0x18(%rsp),%r13
je     1532 <parse_tarline+0x392>
lea    0xcb8(%rip),%rsi
lea    0x30(%rsp),%rdi
call   1050 <stricmp@plt>
test   %eax,%eax
je     1539 <parse_tarline+0x399>
lea    0xca3(%rip),%rsi
lea    0x30(%rsp),%rdi
call   1050 <stricmp@plt>
test   %eax,%eax
je     1540 <parse_tarline+0x3a0>
lea    0xc8e(%rip),%rsi
lea    0x30(%rsp),%rdi
call   1050 <stricmp@plt>
test   %eax,%eax
je     1547 <parse_tarline+0x3a7>
lea    0xc79(%rip),%rsi
lea    0x30(%rsp),%rdi
call   1050 <stricmp@plt>
test   %eax,%eax
je     154e <parse_tarline+0x3ae>
lea    0xc64(%rip),%rsi
lea    0x30(%rsp),%rdi
call   1050 <stricmp@plt>
test   %eax,%eax
je     1555 <parse_tarline+0x3b5>
lea    0xc4f(%rip),%rsi
lea    0x30(%rsp),%rdi
call   1050 <stricmp@plt>
test   %eax,%eax
je     155c <parse_tarline+0x3bc>
lea    0xc3a(%rip),%rsi
lea    0x30(%rsp),%rdi
call   1050 <stricmp@plt>
test   %eax,%eax
je     1563 <parse_tarline+0x3c3>
lea    0xc25(%rip),%rsi
lea    0x30(%rsp),%rdi
call   1050 <stricmp@plt>
test   %eax,%eax
je     156a <parse_tarline+0x3ca>
lea    0xc10(%rip),%rsi
lea    0x30(%rsp),%rdi
call   1050 <stricmp@plt>
test   %eax,%eax
je     1571 <parse_tarline+0x3d1>
lea    0xbfb(%rip),%rsi
lea    0x30(%rsp),%rdi
call   1050 <stricmp@plt>
test   %eax,%eax
je     1578 <parse_tarline+0x3d8>
lea    0x30(%rsp),%rdi
call   1060 <strlen@plt>
cmp    $0xa,%eax
jne    1675 <parse_tarline+0x4d5>
cmpb   $0x2d,0x34(%rsp)
jne    1675 <parse_tarline+0x4d5>
cmpb   $0x2d,0x37(%rsp)
jne    1675 <parse_tarline+0x4d5>
movb   $0x0,0x34(%rsp)
movb   $0x0,0x37(%rsp)
lea    0x38(%rsp),%rdi
call   10a0 <atoi@plt>
mov    0x20(%rsp),%rcx
mov    %eax,(%rcx)
lea    0x35(%rsp),%rdi
call   10a0 <atoi@plt>
mov    0x28(%rsp),%rcx
mov    %eax,(%rcx)
lea    0x30(%rsp),%r14
mov    %r14,%rdi
call   10a0 <atoi@plt>
mov    %eax,0x0(%r13)
lea    0xc(%rsp),%rdx
mov    %r14,%rdi
mov    %r12,%rsi
call   10b0 <nexttoken@plt>
test   %eax,%eax
je     1675 <parse_tarline+0x4d5>
lea    0x30(%rsp),%rdi
call   1060 <strlen@plt>
cmp    $0x8,%eax
jne    1675 <parse_tarline+0x4d5>
cmpb   $0x3a,0x32(%rsp)
jne    1675 <parse_tarline+0x4d5>
cmpb   $0x3a,0x35(%rsp)
jne    1675 <parse_tarline+0x4d5>
movb   $0x0,0x32(%rsp)
movb   $0x0,0x35(%rsp)
lea    0x30(%rsp),%rdi
call   10a0 <atoi@plt>
mov    0x10(%rsp),%rcx
mov    %eax,(%rcx)
lea    0x33(%rsp),%rdi
call   10a0 <atoi@plt>
mov    0x270(%rsp),%rcx
mov    %eax,(%rcx)
lea    0x36(%rsp),%r14
mov    %rbp,%r13
jmp    1610 <parse_tarline+0x470>
mov    $0x1,%eax
mov    0x18(%rsp),%r13
jmp    157d <parse_tarline+0x3dd>
mov    $0x2,%eax
jmp    157d <parse_tarline+0x3dd>
mov    $0x3,%eax
jmp    157d <parse_tarline+0x3dd>
mov    $0x4,%eax
jmp    157d <parse_tarline+0x3dd>
mov    $0x5,%eax
jmp    157d <parse_tarline+0x3dd>
mov    $0x6,%eax
jmp    157d <parse_tarline+0x3dd>
mov    $0x7,%eax
jmp    157d <parse_tarline+0x3dd>
mov    $0x8,%eax
jmp    157d <parse_tarline+0x3dd>
mov    $0x9,%eax
jmp    157d <parse_tarline+0x3dd>
mov    $0xa,%eax
jmp    157d <parse_tarline+0x3dd>
mov    $0xb,%eax
jmp    157d <parse_tarline+0x3dd>
mov    $0xc,%eax
mov    0x28(%rsp),%rcx
mov    %eax,(%rcx)
lea    0x30(%rsp),%rdi
lea    0xc(%rsp),%rdx
mov    %r12,%rsi
call   10b0 <nexttoken@plt>
test   %eax,%eax
je     1675 <parse_tarline+0x4d5>
lea    0x30(%rsp),%r14
mov    %r14,%rdi
call   10a0 <atoi@plt>
mov    0x20(%rsp),%rcx
mov    %eax,(%rcx)
lea    0xc(%rsp),%rdx
mov    %r14,%rdi
mov    %r12,%rsi
call   10b0 <nexttoken@plt>
test   %eax,%eax
je     1675 <parse_tarline+0x4d5>
cmpb   $0x3a,0x32(%rsp)
jne    1675 <parse_tarline+0x4d5>
movb   $0x0,0x32(%rsp)
mov    %r14,%rdi
call   10a0 <atoi@plt>
mov    0x10(%rsp),%rcx
mov    %eax,(%rcx)
lea    0x33(%rsp),%rdi
call   10a0 <atoi@plt>
mov    %eax,(%rbx)
movl   $0x0,0x0(%rbp)
lea    0xc(%rsp),%rdx
mov    %r14,%rdi
mov    %r12,%rsi
call   10b0 <nexttoken@plt>
test   %eax,%eax
je     1675 <parse_tarline+0x4d5>
mov    %r14,%rdi
call   10a0 <atoi@plt>
mov    %eax,0x0(%r13)
movslq 0xc(%rsp),%rdi
add    %r12,%rdi
call   1060 <strlen@plt>
test   %eax,%eax
mov    $0x0,%ebp
jle    1677 <parse_tarline+0x4d7>
mov    0x288(%rsp),%rbp
movslq 0xc(%rsp),%rax
add    %rax,%r12
mov    %rbp,%rdi
mov    %r12,%rsi
call   1030 <strcpy@plt>
test   %r15d,%r15d
je     1664 <parse_tarline+0x4c4>
mov    0x280(%rsp),%rax
mov    (%rax),%esi
mov    %rbp,%rdi
call   1090 <filelist_tar_filename_proc@plt>
mov    %rbp,%rdi
xor    %esi,%esi
call   10c0 <wfile_noslash@plt>
mov    $0xffffffff,%ebp
jmp    1677 <parse_tarline+0x4d7>
xor    %ebp,%ebp
mov    %ebp,%eax
add    $0x238,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

LLVM IR (-O2):
@.str = [4 x i8] c"jan\00"
@.str.1 = [4 x i8] c"feb\00"
@.str.2 = [4 x i8] c"mar\00"
@.str.3 = [4 x i8] c"apr\00"
@.str.4 = [4 x i8] c"may\00"
@.str.5 = [4 x i8] c"jun\00"
@.str.6 = [4 x i8] c"jul\00"
@.str.7 = [4 x i8] c"aug\00"
@.str.8 = [4 x i8] c"sep\00"
@.str.9 = [4 x i8] c"oct\00"
@.str.10 = [4 x i8] c"nov\00"
@.str.11 = [4 x i8] c"dec\00"
@.str.12 = [8 x i8] c"999/999\00"
define i32 @parse_tarline(i8* %0, double* 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 %8, i8* %9, i32 %10) {
%12 = alloca [512 x i8]
%13 = alloca i32
%14 = getelementptr inbounds [512 x i8], [512 x i8]* %12, i64 0, i64 0
%15 = bitcast i32* %13 to i8*
store i32 0, i32* %13
store i32 0, i32* %8
%16 = call i32 @nexttoken(i8* %14, i8* %0, i32* %13)
%17 = icmp eq i32 %16, 0
br i1 %17, label %178, label %18
18: ; preds = %11
%19 = load i8, i8* %14
%20 = call signext i8 @tolower(i8 signext %19)
%21 = icmp eq i8 %20, 108
br i1 %21, label %22, label %25
22: ; preds = %18
%23 = load i32, i32* %8
%24 = or i32 %23, 32
store i32 %24, i32* %8
br label %25
25: ; preds = %22, %18
%26 = load i8, i8* %0
%27 = call signext i8 @tolower(i8 signext %26)
%28 = icmp eq i8 %27, 119
br i1 %28, label %40, label %34
29: ; preds = %34
%30 = getelementptr inbounds i8, i8* %0, i64 %39
%31 = load i8, i8* %30
%32 = call signext i8 @tolower(i8 signext %31)
%33 = icmp eq i8 %32, 119
br i1 %33, label %40, label %34
34: ; preds = %25, %29
%35 = phi i64 [ %39, %29 ], [ 0, %25 ]
%36 = phi i8* [ %30, %29 ], [ %0, %25 ]
%37 = load i8, i8* %36
%38 = icmp eq i8 %37, 0
%39 = add nuw i64 %35, 1
br i1 %38, label %44, label %29
40: ; preds = %29, %25
%41 = phi i8* [ %0, %25 ], [ %30, %29 ]
%42 = load i8, i8* %41
%43 = icmp eq i8 %42, 0
br i1 %43, label %44, label %47
44: ; preds = %34, %40
%45 = load i32, i32* %8
%46 = or i32 %45, 16
store i32 %46, i32* %8
br label %47
47: ; preds = %44, %40
%48 = load i8, i8* %14
%49 = call signext i8 @tolower(i8 signext %48)
%50 = icmp eq i8 %49, 100
br i1 %50, label %51, label %56
51: ; preds = %47
%52 = icmp eq i32 %10, 0
br i1 %52, label %178, label %53
53: ; preds = %51
%54 = load i32, i32* %8
%55 = or i32 %54, 2
store i32 %55, i32* %8
br label %56
56: ; preds = %53, %47
%57 = call i32 @nexttoken(i8* %14, i8* %0, i32* %13)
%58 = icmp eq i32 %57, 0
br i1 %58, label %178, label %59
59: ; preds = %56
%60 = call i32 @stricmp(i8* %14, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.12, i64 0, i64 0))
%61 = icmp eq i32 %60, 0
%62 = call i32 @nexttoken(i8* %14, i8* %0, i32* %13)
%63 = icmp eq i32 %62, 0
br i1 %63, label %178, label %64
64: ; preds = %59
%65 = call i32 @is_a_number(i8* %14)
%66 = icmp eq i32 %65, 0
br i1 %66, label %178, label %67
67: ; preds = %64
%68 = call double @atof(i8* %14)
store double %68, double* %1
%69 = call i32 @nexttoken(i8* %14, i8* %0, i32* %13)
%70 = icmp eq i32 %69, 0
br i1 %70, label %178, label %71
71: ; preds = %67
%72 = call i32 @stricmp(i8* %14, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0))
%73 = icmp eq i32 %72, 0
br i1 %73, label %118, label %74
74: ; preds = %71
%75 = call i32 @stricmp(i8* %14, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0))
%76 = icmp eq i32 %75, 0
br i1 %76, label %118, label %77
77: ; preds = %74
%78 = call i32 @stricmp(i8* %14, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0))
%79 = icmp eq i32 %78, 0
br i1 %79, label %118, label %80
80: ; preds = %77
%81 = call i32 @stricmp(i8* %14, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.3, i64 0, i64 0))
%82 = icmp eq i32 %81, 0
br i1 %82, label %118, label %83
83: ; preds = %80
%84 = call i32 @stricmp(i8* %14, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i64 0, i64 0))
%85 = icmp eq i32 %84, 0
br i1 %85, label %118, label %86
86: ; preds = %83
%87 = call i32 @stricmp(i8* %14, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.5, i64 0, i64 0))
%88 = icmp eq i32 %87, 0
br i1 %88, label %118, label %89
89: ; preds = %86
%90 = call i32 @stricmp(i8* %14, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.6, i64 0, i64 0))
%91 = icmp eq i32 %90, 0
br i1 %91, label %118, label %92
92: ; preds = %89
%93 = call i32 @stricmp(i8* %14, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.7, i64 0, i64 0))
%94 = icmp eq i32 %93, 0
br i1 %94, label %118, label %95
95: ; preds = %92
%96 = call i32 @stricmp(i8* %14, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.8, i64 0, i64 0))
%97 = icmp eq i32 %96, 0
br i1 %97, label %118, label %98
98: ; preds = %95
%99 = call i32 @stricmp(i8* %14, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.9, i64 0, i64 0))
%100 = icmp eq i32 %99, 0
br i1 %100, label %118, label %101
101: ; preds = %98
%102 = call i32 @stricmp(i8* %14, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.10, i64 0, i64 0))
%103 = icmp eq i32 %102, 0
br i1 %103, label %118, label %104
104: ; preds = %101
%105 = call i32 @stricmp(i8* %14, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.11, i64 0, i64 0))
%106 = icmp eq i32 %105, 0
br i1 %106, label %118, label %107
107: ; preds = %104
%108 = call i32 @strlen(i8* %14)
%109 = icmp ne i32 %108, 10
%110 = getelementptr inbounds [512 x i8], [512 x i8]* %12, i64 0, i64 4
%111 = load i8, i8* %110
%112 = icmp ne i8 %111, 45
%113 = select i1 %109, i1 true, i1 %112
%114 = getelementptr inbounds [512 x i8], [512 x i8]* %12, i64 0, i64 7
%115 = load i8, i8* %114
%116 = icmp ne i8 %115, 45
%117 = select i1 %113, i1 true, i1 %116
br i1 %117, label %178, label %136
118: ; preds = %104, %101, %98, %95, %92, %89, %86, %83, %80, %77, %74, %71
%119 = phi i32 [ 1, %71 ], [ 2, %74 ], [ 3, %77 ], [ 4, %80 ], [ 5, %83 ], [ 6, %86 ], [ 7, %89 ], [ 8, %92 ], [ 9, %95 ], [ 10, %98 ], [ 11, %101 ], [ 12, %104 ]
store i32 %119, i32* %2
%120 = call i32 @nexttoken(i8* %14, i8* %0, i32* %13)
%121 = icmp eq i32 %120, 0
br i1 %121, label %178, label %122
122: ; preds = %118
%123 = call i32 @atoi(i8* %14)
store i32 %123, i32* %3
%124 = call i32 @nexttoken(i8* %14, i8* %0, i32* %13)
%125 = icmp eq i32 %124, 0
br i1 %125, label %178, label %126
126: ; preds = %122
%127 = getelementptr inbounds [512 x i8], [512 x i8]* %12, i64 0, i64 2
%128 = load i8, i8* %127
%129 = icmp eq i8 %128, 58
br i1 %129, label %130, label %178
130: ; preds = %126
store i8 0, i8* %127
%131 = call i32 @atoi(i8* %14)
store i32 %131, i32* %5
%132 = getelementptr inbounds [512 x i8], [512 x i8]* %12, i64 0, i64 3
%133 = call i32 @atoi(i8* %132)
store i32 %133, i32* %6
store i32 0, i32* %7
%134 = call i32 @nexttoken(i8* %14, i8* %0, i32* %13)
%135 = icmp eq i32 %134, 0
br i1 %135, label %178, label %159
136: ; preds = %107
store i8 0, i8* %110
store i8 0, i8* %114
%137 = getelementptr inbounds [512 x i8], [512 x i8]* %12, i64 0, i64 8
%138 = call i32 @atoi(i8* %137)
store i32 %138, i32* %3
%139 = getelementptr inbounds [512 x i8], [512 x i8]* %12, i64 0, i64 5
%140 = call i32 @atoi(i8* %139)
store i32 %140, i32* %2
%141 = call i32 @atoi(i8* %14)
store i32 %141, i32* %4
%142 = call i32 @nexttoken(i8* %14, i8* %0, i32* %13)
%143 = icmp eq i32 %142, 0
br i1 %143, label %178, label %144
144: ; preds = %136
%145 = call i32 @strlen(i8* %14)
%146 = icmp ne i32 %145, 8
%147 = getelementptr inbounds [512 x i8], [512 x i8]* %12, i64 0, i64 2
%148 = load i8, i8* %147
%149 = icmp ne i8 %148, 58
%150 = select i1 %146, i1 true, i1 %149
%151 = load i8, i8* %139
%152 = icmp ne i8 %151, 58
%153 = select i1 %150, i1 true, i1 %152
br i1 %153, label %178, label %154
154: ; preds = %144
store i8 0, i8* %147
store i8 0, i8* %139
%155 = call i32 @atoi(i8* %14)
store i32 %155, i32* %5
%156 = getelementptr inbounds [512 x i8], [512 x i8]* %12, i64 0, i64 3
%157 = call i32 @atoi(i8* %156)
store i32 %157, i32* %6
%158 = getelementptr inbounds [512 x i8], [512 x i8]* %12, i64 0, i64 6
br label %159
159: ; preds = %130, %154
%160 = phi i8* [ %158, %154 ], [ %14, %130 ]
%161 = phi i32* [ %7, %154 ], [ %4, %130 ]
%162 = call i32 @atoi(i8* %160)
store i32 %162, i32* %161
%163 = load i32, i32* %13
%164 = sext i32 %163 to i64
%165 = getelementptr inbounds i8, i8* %0, i64 %164
%166 = call i32 @strlen(i8* %165)
%167 = icmp slt i32 %166, 1
br i1 %167, label %178, label %168
168: ; preds = %159
%169 = load i32, i32* %13
%170 = sext i32 %169 to i64
%171 = getelementptr inbounds i8, i8* %0, i64 %170
%172 = call i32 @strcpy(i8* %9, i8* %171)
br i1 %61, label %176, label %173
173: ; preds = %168
%174 = load i32, i32* %8
%175 = call i32 @filelist_tar_filename_proc(i8* %9, i32 %174)
br label %176
176: ; preds = %173, %168
%177 = call i32 @wfile_noslash(i8* %9, i32* null)
br label %178
178: ; preds = %159, %144, %136, %107, %130, %126, %122, %118, %67, %64, %59, %56, %51, %11, %176
%179 = phi i32 [ -1, %176 ], [ 0, %11 ], [ 0, %51 ], [ 0, %56 ], [ 0, %59 ], [ 0, %64 ], [ 0, %67 ], [ 0, %118 ], [ 0, %122 ], [ 0, %126 ], [ 0, %130 ], [ 0, %107 ], [ 0, %136 ], [ 0, %144 ], [ 0, %159 ]
ret i32 %179
}