#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 atoi(char *);
scalar_t__ isdigit(char const);
scalar_t__ isspace(char const);
long tc2fr(const char *tc) {
  int minutes = 0;
  int seconds = 0;
  int frames = 0;
  long totalframes = 0;
  char tmp[2 + 1];
  int nums[3];
  int n = 0;
  int i = 0;
  int last_was_colon = 0;
  int stop = 0;
  if (tc == NULL)
    return -1;
  for (i = 0; i <= 2; i++)
    tmp[i] = '\0';
  while (isspace(*tc))
    tc++;
  for (n = 0; n < 3; n++) {
    if (n > 0) {
      if (tc[0] != ':') {
        --n;
        break;
      } else
        tc++;
    }
    for (i = 0; i < 2; i++) {
      if (isdigit(tc[i])) {
        tmp[i] = tc[i];
        last_was_colon = 0;
      } else if (tc[i] == ':') {
        if (i == 0)
          stop = 1;
        break;
      } else {
        stop = 1;
        break;
      }
    }
    if (i != 0) {
      tmp[i] = '\0';
      nums[n] = atoi(tmp);
      tc = &tc[i];
    } else
      --n;
    if (stop)
      break;
  }
  if (n == 3)
    --n;
  frames = seconds = minutes = 0;
  switch (n) {
  case 0:
    frames = nums[0];
    break;
  case 1:
    seconds = nums[0];
    frames = nums[1];
    break;
  case 2:
    minutes = nums[0];
    seconds = nums[1];
    frames = nums[2];
    break;
  }
  totalframes = ((60 * minutes) + seconds) * 75 + frames;
  if (seconds > 59 || frames > 74)
    return -1;
  return totalframes;
}


x86 assembly (clang, -O0):
<tc2fr>:
push   %rbp
mov    %rsp,%rbp
sub    $0x50,%rsp
mov    %rdi,-0x10(%rbp)
movl   $0x0,-0x14(%rbp)
movl   $0x0,-0x18(%rbp)
movl   $0x0,-0x1c(%rbp)
movq   $0x0,-0x28(%rbp)
movl   $0x0,-0x3c(%rbp)
movl   $0x0,-0x40(%rbp)
movl   $0x0,-0x44(%rbp)
movl   $0x0,-0x48(%rbp)
cmpq   $0x0,-0x10(%rbp)
jne    118d <tc2fr+0x5d>
movq   $0xffffffffffffffff,-0x8(%rbp)
ff
jmp    13ec <tc2fr+0x2bc>
movl   $0x0,-0x40(%rbp)
cmpl   $0x2,-0x40(%rbp)
jg     11b5 <tc2fr+0x85>
movslq -0x40(%rbp),%rax
movb   $0x0,-0x2b(%rbp,%rax,1)
mov    -0x40(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x40(%rbp)
jmp    1194 <tc2fr+0x64>
jmp    11ba <tc2fr+0x8a>
mov    -0x10(%rbp),%rax
movsbl (%rax),%edi
call   1040 <isspace@plt>
cmp    $0x0,%rax
je     11e1 <tc2fr+0xb1>
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
jmp    11ba <tc2fr+0x8a>
movl   $0x0,-0x3c(%rbp)
cmpl   $0x3,-0x3c(%rbp)
jge    1325 <tc2fr+0x1f5>
cmpl   $0x0,-0x3c(%rbp)
jle    122b <tc2fr+0xfb>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x3a,%eax
je     121a <tc2fr+0xea>
mov    -0x3c(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x3c(%rbp)
jmp    1325 <tc2fr+0x1f5>
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
jmp    122b <tc2fr+0xfb>
movl   $0x0,-0x40(%rbp)
cmpl   $0x2,-0x40(%rbp)
jge    12c0 <tc2fr+0x190>
mov    -0x10(%rbp),%rax
movslq -0x40(%rbp),%rcx
movsbl (%rax,%rcx,1),%edi
call   1030 <isdigit@plt>
cmp    $0x0,%rax
je     1276 <tc2fr+0x146>
mov    -0x10(%rbp),%rax
movslq -0x40(%rbp),%rcx
mov    (%rax,%rcx,1),%cl
movslq -0x40(%rbp),%rax
mov    %cl,-0x2b(%rbp,%rax,1)
movl   $0x0,-0x44(%rbp)
jmp    12ad <tc2fr+0x17d>
mov    -0x10(%rbp),%rax
movslq -0x40(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x3a,%eax
jne    12a1 <tc2fr+0x171>
cmpl   $0x0,-0x40(%rbp)
jne    129c <tc2fr+0x16c>
movl   $0x1,-0x48(%rbp)
jmp    12c0 <tc2fr+0x190>
movl   $0x1,-0x48(%rbp)
jmp    12c0 <tc2fr+0x190>
jmp    12b2 <tc2fr+0x182>
mov    -0x40(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x40(%rbp)
jmp    1232 <tc2fr+0x102>
cmpl   $0x0,-0x40(%rbp)
je     12fa <tc2fr+0x1ca>
movslq -0x40(%rbp),%rax
movb   $0x0,-0x2b(%rbp,%rax,1)
lea    -0x2b(%rbp),%rdi
call   1050 <atoi@plt>
mov    %eax,%ecx
movslq -0x3c(%rbp),%rax
mov    %ecx,-0x38(%rbp,%rax,4)
mov    -0x10(%rbp),%rax
movslq -0x40(%rbp),%rcx
add    %rcx,%rax
mov    %rax,-0x10(%rbp)
jmp    1303 <tc2fr+0x1d3>
mov    -0x3c(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x3c(%rbp)
cmpl   $0x0,-0x48(%rbp)
je     1312 <tc2fr+0x1e2>
jmp    1325 <tc2fr+0x1f5>
jmp    1317 <tc2fr+0x1e7>
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
jmp    11e8 <tc2fr+0xb8>
cmpl   $0x3,-0x3c(%rbp)
jne    1338 <tc2fr+0x208>
mov    -0x3c(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x3c(%rbp)
movl   $0x0,-0x14(%rbp)
movl   $0x0,-0x18(%rbp)
movl   $0x0,-0x1c(%rbp)
mov    -0x3c(%rbp),%eax
mov    %eax,-0x4c(%rbp)
test   %eax,%eax
je     1382 <tc2fr+0x252>
jmp    1360 <tc2fr+0x230>
mov    -0x4c(%rbp),%eax
sub    $0x1,%eax
je     138d <tc2fr+0x25d>
jmp    1371 <tc2fr+0x241>
mov    -0x4c(%rbp),%eax
sub    $0x2,%eax
je     139e <tc2fr+0x26e>
jmp    13b0 <tc2fr+0x280>
mov    -0x38(%rbp),%eax
mov    %eax,-0x1c(%rbp)
jmp    13b0 <tc2fr+0x280>
mov    -0x38(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x34(%rbp),%eax
mov    %eax,-0x1c(%rbp)
jmp    13b0 <tc2fr+0x280>
mov    -0x38(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x34(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x30(%rbp),%eax
mov    %eax,-0x1c(%rbp)
imul   $0x3c,-0x14(%rbp),%eax
add    -0x18(%rbp),%eax
imul   $0x4b,%eax,%eax
add    -0x1c(%rbp),%eax
cltq
mov    %rax,-0x28(%rbp)
cmpl   $0x3b,-0x18(%rbp)
jg     13d7 <tc2fr+0x2a7>
cmpl   $0x4a,-0x1c(%rbp)
jle    13e4 <tc2fr+0x2b4>
movq   $0xffffffffffffffff,-0x8(%rbp)
ff
jmp    13ec <tc2fr+0x2bc>
mov    -0x28(%rbp),%rax
mov    %rax,-0x8(%rbp)
mov    -0x8(%rbp),%rax
add    $0x50,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<tc2fr>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
push   %rax
mov    $0xffffffffffffffff,%r15
test   %rdi,%rdi
je     13a1 <tc2fr+0x271>
mov    %rdi,%rbx
movb   $0x0,0x6(%rsp)
movw   $0x0,0x4(%rsp)
nopw   0x0(%rax,%rax,1)
movsbl (%rbx),%edi
call   1040 <isspace@plt>
add    $0x1,%rbx
test   %rax,%rax
jne    1160 <tc2fr+0x30>
movsbl -0x1(%rbx),%edi
call   1030 <isdigit@plt>
mov    %rax,%rbp
test   %rax,%rax
je     11a8 <tc2fr+0x78>
mov    -0x1(%rbx),%al
mov    %al,0x4(%rsp)
movsbl (%rbx),%edi
call   1030 <isdigit@plt>
test   %rax,%rax
je     121e <tc2fr+0xee>
mov    (%rbx),%al
mov    %al,0x5(%rsp)
mov    $0x2,%r12d
jmp    11c2 <tc2fr+0x92>
lea    -0x1(%rbx),%rcx
xor    %eax,%eax
cmpb   $0x3a,(%rcx)
jne    122b <tc2fr+0xfb>
mov    $0x1,%r12d
test   %rbp,%rbp
je     1255 <tc2fr+0x125>
movb   $0x0,0x4(%rsp,%r12,1)
lea    0x4(%rsp),%rdi
call   1050 <atoi@plt>
mov    %eax,%r14d
xor    %r13d,%r13d
cmpb   $0x3a,-0x1(%rbx,%r12,1)
jne    1245 <tc2fr+0x115>
movsbl (%rbx,%r12,1),%edi
call   1030 <isdigit@plt>
mov    %rax,%r15
test   %rax,%rax
je     126b <tc2fr+0x13b>
mov    (%rbx,%r12,1),%al
mov    %al,0x4(%rsp)
movsbl 0x1(%rbx,%r12,1),%edi
call   1030 <isdigit@plt>
test   %rax,%rax
je     12ec <tc2fr+0x1bc>
mov    0x1(%rbx,%r12,1),%al
mov    %al,0x5(%rsp)
mov    $0x2,%ebp
jmp    1288 <tc2fr+0x158>
mov    $0x1,%eax
mov    %rbx,%rcx
cmpb   $0x3a,(%rcx)
je     11b3 <tc2fr+0x83>
xor    %r13d,%r13d
test   %rbp,%rbp
je     1258 <tc2fr+0x128>
movb   $0x0,0x4(%rsp,%rax,1)
lea    0x4(%rsp),%rdi
call   1050 <atoi@plt>
mov    %eax,%r14d
xor    %ecx,%ecx
cmp    $0x3b,%ecx
jle    138f <tc2fr+0x25f>
jmp    13a1 <tc2fr+0x271>
xor    %r13d,%r13d
xor    %ecx,%ecx
xor    %r14d,%r14d
cmp    $0x3b,%ecx
jle    138f <tc2fr+0x25f>
jmp    13a1 <tc2fr+0x271>
lea    (%rbx,%r12,1),%rcx
xor    %eax,%eax
cmpb   $0x3a,(%rcx)
jne    1302 <tc2fr+0x1d2>
mov    $0x1,%ebp
test   %r15,%r15
je     1321 <tc2fr+0x1f1>
movb   $0x0,0x4(%rsp,%rbp,1)
lea    0x4(%rsp),%rdi
call   1050 <atoi@plt>
add    %rbp,%r12
xor    %r13d,%r13d
cmpb   $0x3a,(%rbx,%r12,1)
jne    1319 <tc2fr+0x1e9>
mov    %eax,%ebp
movsbl 0x1(%rbx,%r12,1),%edi
call   1030 <isdigit@plt>
mov    %rax,%r15
xor    %r13d,%r13d
test   %rax,%rax
je     1334 <tc2fr+0x204>
mov    0x1(%rbx,%r12,1),%al
mov    %al,0x4(%rsp)
movsbl 0x2(%rbx,%r12,1),%edi
call   1030 <isdigit@plt>
test   %rax,%rax
je     1340 <tc2fr+0x210>
mov    0x2(%rbx,%r12,1),%al
mov    %al,0x5(%rsp)
mov    $0x2,%ecx
mov    $0xffffffffffffffff,%r15
jmp    1365 <tc2fr+0x235>
lea    (%rbx,%r12,1),%rcx
add    $0x1,%rcx
mov    $0x1,%eax
cmpb   $0x3a,(%rcx)
je     127a <tc2fr+0x14a>
xor    %r13d,%r13d
test   %r15,%r15
je     1324 <tc2fr+0x1f4>
movb   $0x0,0x4(%rsp,%rax,1)
lea    0x4(%rsp),%rdi
call   1050 <atoi@plt>
mov    %r14d,%ecx
mov    %eax,%r14d
jmp    1326 <tc2fr+0x1f6>
xor    %r13d,%r13d
xor    %ecx,%ecx
mov    $0xffffffffffffffff,%r15
cmp    $0x3b,%ecx
jle    138f <tc2fr+0x25f>
jmp    13a1 <tc2fr+0x271>
lea    (%rbx,%r12,1),%rcx
add    $0x1,%rcx
xor    %eax,%eax
jmp    134d <tc2fr+0x21d>
lea    (%rbx,%r12,1),%rcx
add    $0x2,%rcx
mov    $0x1,%eax
cmpb   $0x3a,(%rcx)
mov    $0x1,%ecx
cmovne %rax,%rcx
test   %r15,%r15
mov    $0xffffffffffffffff,%r15
je     1384 <tc2fr+0x254>
movb   $0x0,0x4(%rsp,%rcx,1)
lea    0x4(%rsp),%rdi
call   1050 <atoi@plt>
imul   $0x3c,%r14d,%r13d
mov    %ebp,%ecx
mov    %eax,%r14d
cmp    $0x3b,%ecx
jle    138f <tc2fr+0x25f>
jmp    13a1 <tc2fr+0x271>
mov    %r14d,%ecx
mov    %ebp,%r14d
cmp    $0x3b,%ecx
jg     13a1 <tc2fr+0x271>
cmp    $0x4a,%r14d
jg     13a1 <tc2fr+0x271>
add    %r13d,%ecx
imul   $0x4b,%ecx,%eax
add    %r14d,%eax
movslq %eax,%r15
mov    %r15,%rax
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
define i64 @tc2fr(i8* %0) {
%2 = alloca i64
%3 = alloca i8*
%4 = alloca i32
%5 = alloca i32
%6 = alloca i32
%7 = alloca i64
%8 = alloca [3 x i8]
%9 = alloca [3 x i32]
%10 = alloca i32
%11 = alloca i32
%12 = alloca i32
%13 = alloca i32
store i8* %0, i8** %3
store i32 0, i32* %4
store i32 0, i32* %5
store i32 0, i32* %6
store i64 0, i64* %7
store i32 0, i32* %10
store i32 0, i32* %11
store i32 0, i32* %12
store i32 0, i32* %13
%14 = load i8*, i8** %3
%15 = icmp eq i8* %14, null
br i1 %15, label %16, label %17
16: ; preds = %1
store i64 -1, i64* %2
br label %163
17: ; preds = %1
store i32 0, i32* %11
br label %18
18: ; preds = %25, %17
%19 = load i32, i32* %11
%20 = icmp sle i32 %19, 2
br i1 %20, label %21, label %28
21: ; preds = %18
%22 = load i32, i32* %11
%23 = sext i32 %22 to i64
%24 = getelementptr inbounds [3 x i8], [3 x i8]* %8, i64 0, i64 %23
store i8 0, i8* %24
br label %25
25: ; preds = %21
%26 = load i32, i32* %11
%27 = add nsw i32 %26, 1
store i32 %27, i32* %11
br label %18
28: ; preds = %18
br label %29
29: ; preds = %34, %28
%30 = load i8*, i8** %3
%31 = load i8, i8* %30
%32 = call i64 @isspace(i8 signext %31)
%33 = icmp ne i64 %32, 0
br i1 %33, label %34, label %37
34: ; preds = %29
%35 = load i8*, i8** %3
%36 = getelementptr inbounds i8, i8* %35, i32 1
store i8* %36, i8** %3
br label %29
37: ; preds = %29
store i32 0, i32* %10
br label %38
38: ; preds = %120, %37
%39 = load i32, i32* %10
%40 = icmp slt i32 %39, 3
br i1 %40, label %41, label %123
41: ; preds = %38
%42 = load i32, i32* %10
%43 = icmp sgt i32 %42, 0
br i1 %43, label %44, label %57
44: ; preds = %41
%45 = load i8*, i8** %3
%46 = getelementptr inbounds i8, i8* %45, i64 0
%47 = load i8, i8* %46
%48 = sext i8 %47 to i32
%49 = icmp ne i32 %48, 58
br i1 %49, label %50, label %53
50: ; preds = %44
%51 = load i32, i32* %10
%52 = add nsw i32 %51, -1
store i32 %52, i32* %10
br label %123
53: ; preds = %44
%54 = load i8*, i8** %3
%55 = getelementptr inbounds i8, i8* %54, i32 1
store i8* %55, i8** %3
br label %56
56: ; preds = %53
br label %57
57: ; preds = %56, %41
store i32 0, i32* %11
br label %58
58: ; preds = %93, %57
%59 = load i32, i32* %11
%60 = icmp slt i32 %59, 2
br i1 %60, label %61, label %96
61: ; preds = %58
%62 = load i8*, i8** %3
%63 = load i32, i32* %11
%64 = sext i32 %63 to i64
%65 = getelementptr inbounds i8, i8* %62, i64 %64
%66 = load i8, i8* %65
%67 = call i64 @isdigit(i8 signext %66)
%68 = icmp ne i64 %67, 0
br i1 %68, label %69, label %78
69: ; preds = %61
%70 = load i8*, i8** %3
%71 = load i32, i32* %11
%72 = sext i32 %71 to i64
%73 = getelementptr inbounds i8, i8* %70, i64 %72
%74 = load i8, i8* %73
%75 = load i32, i32* %11
%76 = sext i32 %75 to i64
%77 = getelementptr inbounds [3 x i8], [3 x i8]* %8, i64 0, i64 %76
store i8 %74, i8* %77
store i32 0, i32* %12
br label %92
78: ; preds = %61
%79 = load i8*, i8** %3
%80 = load i32, i32* %11
%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, 58
br i1 %85, label %86, label %91
86: ; preds = %78
%87 = load i32, i32* %11
%88 = icmp eq i32 %87, 0
br i1 %88, label %89, label %90
89: ; preds = %86
store i32 1, i32* %13
br label %90
90: ; preds = %89, %86
br label %96
91: ; preds = %78
store i32 1, i32* %13
br label %96
92: ; preds = %69
br label %93
93: ; preds = %92
%94 = load i32, i32* %11
%95 = add nsw i32 %94, 1
store i32 %95, i32* %11
br label %58
96: ; preds = %91, %90, %58
%97 = load i32, i32* %11
%98 = icmp ne i32 %97, 0
br i1 %98, label %99, label %112
99: ; preds = %96
%100 = load i32, i32* %11
%101 = sext i32 %100 to i64
%102 = getelementptr inbounds [3 x i8], [3 x i8]* %8, i64 0, i64 %101
store i8 0, i8* %102
%103 = getelementptr inbounds [3 x i8], [3 x i8]* %8, i64 0, i64 0
%104 = call i32 @atoi(i8* %103)
%105 = load i32, i32* %10
%106 = sext i32 %105 to i64
%107 = getelementptr inbounds [3 x i32], [3 x i32]* %9, i64 0, i64 %106
store i32 %104, i32* %107
%108 = load i8*, i8** %3
%109 = load i32, i32* %11
%110 = sext i32 %109 to i64
%111 = getelementptr inbounds i8, i8* %108, i64 %110
store i8* %111, i8** %3
br label %115
112: ; preds = %96
%113 = load i32, i32* %10
%114 = add nsw i32 %113, -1
store i32 %114, i32* %10
br label %115
115: ; preds = %112, %99
%116 = load i32, i32* %13
%117 = icmp ne i32 %116, 0
br i1 %117, label %118, label %119
118: ; preds = %115
br label %123
119: ; preds = %115
br label %120
120: ; preds = %119
%121 = load i32, i32* %10
%122 = add nsw i32 %121, 1
store i32 %122, i32* %10
br label %38
123: ; preds = %118, %50, %38
%124 = load i32, i32* %10
%125 = icmp eq i32 %124, 3
br i1 %125, label %126, label %129
126: ; preds = %123
%127 = load i32, i32* %10
%128 = add nsw i32 %127, -1
store i32 %128, i32* %10
br label %129
129: ; preds = %126, %123
store i32 0, i32* %4
store i32 0, i32* %5
store i32 0, i32* %6
%130 = load i32, i32* %10
switch i32 %130, label %146 [
i32 0, label %131
i32 1, label %134
i32 2, label %139
]
131: ; preds = %129
%132 = getelementptr inbounds [3 x i32], [3 x i32]* %9, i64 0, i64 0
%133 = load i32, i32* %132
store i32 %133, i32* %6
br label %146
134: ; preds = %129
%135 = getelementptr inbounds [3 x i32], [3 x i32]* %9, i64 0, i64 0
%136 = load i32, i32* %135
store i32 %136, i32* %5
%137 = getelementptr inbounds [3 x i32], [3 x i32]* %9, i64 0, i64 1
%138 = load i32, i32* %137
store i32 %138, i32* %6
br label %146
139: ; preds = %129
%140 = getelementptr inbounds [3 x i32], [3 x i32]* %9, i64 0, i64 0
%141 = load i32, i32* %140
store i32 %141, i32* %4
%142 = getelementptr inbounds [3 x i32], [3 x i32]* %9, i64 0, i64 1
%143 = load i32, i32* %142
store i32 %143, i32* %5
%144 = getelementptr inbounds [3 x i32], [3 x i32]* %9, i64 0, i64 2
%145 = load i32, i32* %144
store i32 %145, i32* %6
br label %146
146: ; preds = %129, %139, %134, %131
%147 = load i32, i32* %4
%148 = mul nsw i32 60, %147
%149 = load i32, i32* %5
%150 = add nsw i32 %148, %149
%151 = mul nsw i32 %150, 75
%152 = load i32, i32* %6
%153 = add nsw i32 %151, %152
%154 = sext i32 %153 to i64
store i64 %154, i64* %7
%155 = load i32, i32* %5
%156 = icmp sgt i32 %155, 59
br i1 %156, label %160, label %157
157: ; preds = %146
%158 = load i32, i32* %6
%159 = icmp sgt i32 %158, 74
br i1 %159, label %160, label %161
160: ; preds = %157, %146
store i64 -1, i64* %2
br label %163
161: ; preds = %157
%162 = load i64, i64* %7
store i64 %162, i64* %2
br label %163
163: ; preds = %161, %160, %16
%164 = load i64, i64* %2
ret i64 %164
}

LLVM IR (-O2):
define i64 @tc2fr(i8* %0) {
%2 = alloca [3 x i8]
%3 = getelementptr inbounds [3 x i8], [3 x i8]* %2, i64 0, i64 0
%4 = icmp eq i8* %0, null
br i1 %4, label %110, label %5
5: ; preds = %1
%6 = getelementptr inbounds [3 x i8], [3 x i8]* %2, i64 0, i64 0
br label %7
7: ; preds = %5, %7
%8 = phi i8* [ %12, %7 ], [ %0, %5 ]
%9 = load i8, i8* %8
%10 = tail call i64 @isspace(i8 signext %9)
%11 = icmp eq i64 %10, 0
%12 = getelementptr inbounds i8, i8* %8, i64 1
br i1 %11, label %13, label %7
13: ; preds = %7
%14 = load i8, i8* %8
%15 = tail call i64 @isdigit(i8 signext %14)
%16 = icmp eq i64 %15, 0
br i1 %16, label %25, label %17
17: ; preds = %13
%18 = load i8, i8* %8
store i8 %18, i8* %3
%19 = load i8, i8* %12
%20 = tail call i64 @isdigit(i8 signext %19)
%21 = icmp eq i64 %20, 0
br i1 %21, label %25, label %22
22: ; preds = %17
%23 = load i8, i8* %12
%24 = getelementptr inbounds [3 x i8], [3 x i8]* %2, i64 0, i64 1
store i8 %23, i8* %24
br label %35
25: ; preds = %17, %13
%26 = phi i64 [ 0, %13 ], [ 1, %17 ]
%27 = phi i8* [ %8, %13 ], [ %12, %17 ]
%28 = load i8, i8* %27
%29 = icmp eq i8 %28, 58
br i1 %29, label %30, label %31
30: ; preds = %25
br i1 %16, label %98, label %35
31: ; preds = %25
br i1 %16, label %98, label %32
32: ; preds = %31
%33 = getelementptr inbounds [3 x i8], [3 x i8]* %2, i64 0, i64 %26
store i8 0, i8* %33
%34 = call i32 @atoi(i8* %3)
br label %98
35: ; preds = %30, %22
%36 = phi i64 [ 2, %22 ], [ 1, %30 ]
%37 = getelementptr inbounds [3 x i8], [3 x i8]* %2, i64 0, i64 %36
store i8 0, i8* %37
%38 = call i32 @atoi(i8* %3)
%39 = getelementptr inbounds i8, i8* %8, i64 %36
%40 = load i8, i8* %39
%41 = icmp eq i8 %40, 58
br i1 %41, label %42, label %98
42: ; preds = %35
%43 = getelementptr inbounds i8, i8* %39, i64 1
%44 = load i8, i8* %43
%45 = tail call i64 @isdigit(i8 signext %44)
%46 = icmp eq i64 %45, 0
br i1 %46, label %56, label %47
47: ; preds = %42
%48 = load i8, i8* %43
store i8 %48, i8* %3
%49 = getelementptr inbounds i8, i8* %43, i64 1
%50 = load i8, i8* %49
%51 = tail call i64 @isdigit(i8 signext %50)
%52 = icmp eq i64 %51, 0
br i1 %52, label %56, label %53
53: ; preds = %47
%54 = load i8, i8* %49
%55 = getelementptr inbounds [3 x i8], [3 x i8]* %2, i64 0, i64 1
store i8 %54, i8* %55
br label %66
56: ; preds = %47, %42
%57 = phi i64 [ 0, %42 ], [ 1, %47 ]
%58 = phi i8* [ %43, %42 ], [ %49, %47 ]
%59 = load i8, i8* %58
%60 = icmp eq i8 %59, 58
br i1 %60, label %65, label %61
61: ; preds = %56
br i1 %46, label %98, label %62
62: ; preds = %61
%63 = getelementptr inbounds [3 x i8], [3 x i8]* %2, i64 0, i64 %57
store i8 0, i8* %63
%64 = call i32 @atoi(i8* %3)
br label %98
65: ; preds = %56
br i1 %46, label %98, label %66
66: ; preds = %65, %53
%67 = phi i64 [ 2, %53 ], [ 1, %65 ]
%68 = getelementptr inbounds [3 x i8], [3 x i8]* %2, i64 0, i64 %67
store i8 0, i8* %68
%69 = call i32 @atoi(i8* %3)
%70 = getelementptr inbounds i8, i8* %43, i64 %67
%71 = load i8, i8* %70
%72 = icmp eq i8 %71, 58
br i1 %72, label %73, label %98
73: ; preds = %66
%74 = getelementptr inbounds i8, i8* %70, i64 1
%75 = load i8, i8* %74
%76 = tail call i64 @isdigit(i8 signext %75)
%77 = icmp eq i64 %76, 0
br i1 %77, label %87, label %78
78: ; preds = %73
%79 = load i8, i8* %74
store i8 %79, i8* %3
%80 = getelementptr inbounds i8, i8* %74, i64 1
%81 = load i8, i8* %80
%82 = tail call i64 @isdigit(i8 signext %81)
%83 = icmp eq i64 %82, 0
br i1 %83, label %87, label %84
84: ; preds = %78
%85 = load i8, i8* %80
%86 = getelementptr inbounds [3 x i8], [3 x i8]* %2, i64 0, i64 1
store i8 %85, i8* %86
br label %93
87: ; preds = %78, %73
%88 = phi i64 [ 0, %73 ], [ 1, %78 ]
%89 = phi i8* [ %74, %73 ], [ %80, %78 ]
%90 = load i8, i8* %89
%91 = icmp eq i8 %90, 58
%92 = select i1 %91, i64 1, i64 %88
br i1 %77, label %98, label %93
93: ; preds = %87, %84
%94 = phi i64 [ 2, %84 ], [ %92, %87 ]
%95 = getelementptr inbounds [3 x i8], [3 x i8]* %2, i64 0, i64 %94
store i8 0, i8* %95
%96 = call i32 @atoi(i8* %3)
%97 = mul i32 %38, 60
br label %98
98: ; preds = %87, %31, %30, %66, %62, %35, %61, %65, %32, %93
%99 = phi i32 [ %97, %93 ], [ 0, %32 ], [ 0, %65 ], [ 0, %61 ], [ 0, %35 ], [ 0, %62 ], [ 0, %66 ], [ 0, %30 ], [ 0, %31 ], [ 0, %87 ]
%100 = phi i32 [ %69, %93 ], [ 0, %32 ], [ 0, %65 ], [ 0, %61 ], [ 0, %35 ], [ %38, %62 ], [ %38, %66 ], [ 0, %30 ], [ 0, %31 ], [ %38, %87 ]
%101 = phi i32 [ %96, %93 ], [ %34, %32 ], [ %38, %65 ], [ %38, %61 ], [ %38, %35 ], [ %64, %62 ], [ %69, %66 ], [ 0, %30 ], [ 0, %31 ], [ %69, %87 ]
%102 = icmp sgt i32 %100, 59
%103 = icmp sgt i32 %101, 74
%104 = select i1 %102, i1 true, i1 %103
br i1 %104, label %110, label %105
105: ; preds = %98
%106 = add nsw i32 %100, %99
%107 = mul nsw i32 %106, 75
%108 = add nsw i32 %107, %101
%109 = sext i32 %108 to i64
br label %110
110: ; preds = %98, %1, %105
%111 = phi i64 [ %109, %105 ], [ -1, %1 ], [ -1, %98 ]
ret i64 %111
}