char ft_find_ind(char *line, int *i) {
  if ((line[*i] == '-' || (line[*i] >= '1' && line[*i] <= '9')) &&
      (*i = *i + 1))
    while (line[*i] && line[*i] >= '0' && line[*i] <= '9')
      *i = *i + 1;
  else if (line[*i] == '0' && (*i = *i + 1)) {
    if (line[*i] == 'x' && (*i = *i + 1)) {
      if (!((line[*i] >= '0' && line[*i] <= '9') ||
            (line[*i] >= 'a' && line[*i] <= 'f')))
        return (0);
      while (line[*i] && ((line[*i] >= '0' && line[*i] <= '9') ||
                          (line[*i] >= 'a' && line[*i] <= 'f')))
        *i = *i + 1;
    }
    if (line[*i] == '0')
      while (line[*i] && line[*i] >= '0' && line[*i] <= '9')
        *i = *i + 1;
  } else
    return (0);
  return ('1');
}


x86 assembly (clang, -O0):
<ft_find_ind>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x10(%rbp)
mov    %rsi,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%rcx
movslq (%rcx),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x2d,%eax
je     1154 <ft_find_ind+0x54>
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%rcx
movslq (%rcx),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x31,%eax
jl     11ec <ft_find_ind+0xec>
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%rcx
movslq (%rcx),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x39,%eax
jg     11ec <ft_find_ind+0xec>
mov    -0x18(%rbp),%rax
mov    (%rax),%eax
add    $0x1,%eax
mov    -0x18(%rbp),%rcx
mov    %eax,(%rcx)
cmp    $0x0,%eax
je     11ec <ft_find_ind+0xec>
jmp    1171 <ft_find_ind+0x71>
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%rcx
movslq (%rcx),%rcx
movsbl (%rax,%rcx,1),%ecx
xor    %eax,%eax
cmp    $0x0,%ecx
mov    %al,-0x19(%rbp)
je     11c3 <ft_find_ind+0xc3>
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%rcx
movslq (%rcx),%rcx
movsbl (%rax,%rcx,1),%ecx
xor    %eax,%eax
cmp    $0x30,%ecx
mov    %al,-0x19(%rbp)
jl     11c3 <ft_find_ind+0xc3>
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%rcx
movslq (%rcx),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x39,%eax
setle  %al
mov    %al,-0x19(%rbp)
mov    -0x19(%rbp),%al
test   $0x1,%al
jne    11d3 <ft_find_ind+0xd3>
jmp    11e7 <ft_find_ind+0xe7>
mov    -0x18(%rbp),%rax
mov    (%rax),%ecx
add    $0x1,%ecx
mov    -0x18(%rbp),%rax
mov    %ecx,(%rax)
jmp    1171 <ft_find_ind+0x71>
jmp    1421 <ft_find_ind+0x321>
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%rcx
movslq (%rcx),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x30,%eax
jne    1413 <ft_find_ind+0x313>
mov    -0x18(%rbp),%rax
mov    (%rax),%eax
add    $0x1,%eax
mov    -0x18(%rbp),%rcx
mov    %eax,(%rcx)
cmp    $0x0,%eax
je     1413 <ft_find_ind+0x313>
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%rcx
movslq (%rcx),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x78,%eax
jne    1376 <ft_find_ind+0x276>
mov    -0x18(%rbp),%rax
mov    (%rax),%eax
add    $0x1,%eax
mov    -0x18(%rbp),%rcx
mov    %eax,(%rcx)
cmp    $0x0,%eax
je     1376 <ft_find_ind+0x276>
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%rcx
movslq (%rcx),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x30,%eax
jl     127c <ft_find_ind+0x17c>
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%rcx
movslq (%rcx),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x39,%eax
jle    12b5 <ft_find_ind+0x1b5>
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%rcx
movslq (%rcx),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x61,%eax
jl     12ac <ft_find_ind+0x1ac>
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%rcx
movslq (%rcx),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x66,%eax
jle    12b5 <ft_find_ind+0x1b5>
movb   $0x0,-0x1(%rbp)
jmp    1425 <ft_find_ind+0x325>
jmp    12ba <ft_find_ind+0x1ba>
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%rcx
movslq (%rcx),%rcx
movsbl (%rax,%rcx,1),%ecx
xor    %eax,%eax
cmp    $0x0,%ecx
mov    %al,-0x1a(%rbp)
je     134d <ft_find_ind+0x24d>
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%rcx
movslq (%rcx),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x30,%eax
jl     130c <ft_find_ind+0x20c>
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%rcx
movslq (%rcx),%rcx
movsbl (%rax,%rcx,1),%ecx
mov    $0x1,%al
cmp    $0x39,%ecx
mov    %al,-0x1b(%rbp)
jle    1347 <ft_find_ind+0x247>
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%rcx
movslq (%rcx),%rcx
movsbl (%rax,%rcx,1),%ecx
xor    %eax,%eax
cmp    $0x61,%ecx
mov    %al,-0x1c(%rbp)
jl     1341 <ft_find_ind+0x241>
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%rcx
movslq (%rcx),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x66,%eax
setle  %al
mov    %al,-0x1c(%rbp)
mov    -0x1c(%rbp),%al
mov    %al,-0x1b(%rbp)
mov    -0x1b(%rbp),%al
mov    %al,-0x1a(%rbp)
mov    -0x1a(%rbp),%al
test   $0x1,%al
jne    135d <ft_find_ind+0x25d>
jmp    1371 <ft_find_ind+0x271>
mov    -0x18(%rbp),%rax
mov    (%rax),%ecx
add    $0x1,%ecx
mov    -0x18(%rbp),%rax
mov    %ecx,(%rax)
jmp    12ba <ft_find_ind+0x1ba>
jmp    1376 <ft_find_ind+0x276>
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%rcx
movslq (%rcx),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x30,%eax
jne    140e <ft_find_ind+0x30e>
jmp    1393 <ft_find_ind+0x293>
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%rcx
movslq (%rcx),%rcx
movsbl (%rax,%rcx,1),%ecx
xor    %eax,%eax
cmp    $0x0,%ecx
mov    %al,-0x1d(%rbp)
je     13e5 <ft_find_ind+0x2e5>
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%rcx
movslq (%rcx),%rcx
movsbl (%rax,%rcx,1),%ecx
xor    %eax,%eax
cmp    $0x30,%ecx
mov    %al,-0x1d(%rbp)
jl     13e5 <ft_find_ind+0x2e5>
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%rcx
movslq (%rcx),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x39,%eax
setle  %al
mov    %al,-0x1d(%rbp)
mov    -0x1d(%rbp),%al
test   $0x1,%al
jne    13f5 <ft_find_ind+0x2f5>
jmp    1409 <ft_find_ind+0x309>
mov    -0x18(%rbp),%rax
mov    (%rax),%ecx
add    $0x1,%ecx
mov    -0x18(%rbp),%rax
mov    %ecx,(%rax)
jmp    1393 <ft_find_ind+0x293>
jmp    140e <ft_find_ind+0x30e>
jmp    141c <ft_find_ind+0x31c>
movb   $0x0,-0x1(%rbp)
jmp    1425 <ft_find_ind+0x325>
jmp    1421 <ft_find_ind+0x321>
movb   $0x31,-0x1(%rbp)
movsbl -0x1(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<ft_find_ind>:
movslq (%rsi),%rcx
mov    (%rdi,%rcx,1),%al
cmp    $0x2d,%al
je     1118 <ft_find_ind+0x18>
lea    -0x31(%rax),%edx
cmp    $0x8,%dl
jbe    1118 <ft_find_ind+0x18>
cmp    $0x30,%al
jne    1130 <ft_find_ind+0x30>
jmp    1128 <ft_find_ind+0x28>
mov    %ecx,%eax
inc    %eax
mov    %eax,(%rsi)
jne    1133 <ft_find_ind+0x33>
mov    (%rdi),%al
xor    %ecx,%ecx
cmp    $0x30,%al
jne    1130 <ft_find_ind+0x30>
mov    %ecx,%eax
inc    %eax
mov    %eax,(%rsi)
jne    1178 <ft_find_ind+0x78>
xor    %eax,%eax
ret
movslq %eax,%r8
mov    (%rdi,%r8,1),%dl
add    $0xd0,%dl
mov    $0x31,%al
cmp    $0x9,%dl
ja     11e6 <ft_find_ind+0xe6>
lea    (%r8,%rdi,1),%rdx
add    $0x1,%rdx
add    $0x2,%ecx
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
mov    %ecx,(%rsi)
movzbl (%rdx),%edi
add    $0xd0,%dil
add    $0x1,%rdx
add    $0x1,%ecx
cmp    $0xa,%dil
jb     1160 <ft_find_ind+0x60>
jmp    11e6 <ft_find_ind+0xe6>
movslq %eax,%rdx
cmpb   $0x78,(%rdi,%rdx,1)
jne    11ad <ft_find_ind+0xad>
add    $0x2,%ecx
mov    %ecx,(%rsi)
je     11ab <ft_find_ind+0xab>
movslq %ecx,%r8
mov    (%rdi,%r8,1),%dl
lea    -0x30(%rdx),%eax
add    $0x9f,%dl
cmp    $0xa,%al
jb     119e <ft_find_ind+0x9e>
cmp    $0x5,%dl
ja     1130 <ft_find_ind+0x30>
cmp    $0xa,%al
jb     11e7 <ft_find_ind+0xe7>
cmp    $0x5,%dl
jbe    11e7 <ft_find_ind+0xe7>
mov    %ecx,%eax
jmp    11ad <ft_find_ind+0xad>
xor    %eax,%eax
movslq %eax,%rcx
mov    $0x31,%al
cmpb   $0x30,(%rdi,%rcx,1)
jne    11e6 <ft_find_ind+0xe6>
lea    (%rcx,%rdi,1),%rdx
add    $0x1,%rdx
add    $0x1,%ecx
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
mov    %ecx,(%rsi)
movzbl (%rdx),%edi
add    $0xd0,%dil
add    $0x1,%rdx
add    $0x1,%ecx
cmp    $0xa,%dil
jb     11d0 <ft_find_ind+0xd0>
ret
add    %rdi,%r8
add    $0x1,%r8
mov    %ecx,%eax
add    $0x1,%eax
mov    %eax,(%rsi)
movzbl (%r8),%ecx
test   %cl,%cl
je     11ad <ft_find_ind+0xad>
lea    -0x30(%rcx),%edx
add    $0x1,%r8
cmp    $0xa,%dl
jb     11f0 <ft_find_ind+0xf0>
add    $0x9f,%cl
cmp    $0x5,%cl
jbe    11f0 <ft_find_ind+0xf0>
jmp    11ad <ft_find_ind+0xad>

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

LLVM IR (-O2):
define signext i8 @ft_find_ind(i8* nocapture %0, i32* nocapture %1) {
%3 = load i32, i32* %1
%4 = sext i32 %3 to i64
%5 = getelementptr inbounds i8, i8* %0, i64 %4
%6 = load i8, i8* %5
%7 = icmp eq i8 %6, 45
%8 = add i8 %6, -49
%9 = icmp ult i8 %8, 9
%10 = or i1 %7, %9
br i1 %10, label %11, label %30
11: ; preds = %2
%12 = add nsw i32 %3, 1
store i32 %12, i32* %1
%13 = icmp eq i32 %12, 0
br i1 %13, label %14, label %16
14: ; preds = %11
%15 = load i8, i8* %0
br label %30
16: ; preds = %11
%17 = sext i32 %12 to i64
%18 = getelementptr inbounds i8, i8* %0, i64 %17
%19 = load i8, i8* %18
%20 = add i8 %19, -48
%21 = icmp ult i8 %20, 10
br i1 %21, label %22, label %91
22: ; preds = %16, %22
%23 = phi i64 [ %24, %22 ], [ %17, %16 ]
%24 = add i64 %23, 1
%25 = trunc i64 %24 to i32
store i32 %25, i32* %1
%26 = getelementptr inbounds i8, i8* %0, i64 %24
%27 = load i8, i8* %26
%28 = add i8 %27, -48
%29 = icmp ult i8 %28, 10
br i1 %29, label %22, label %91
30: ; preds = %14, %2
%31 = phi i8 [ %6, %2 ], [ %15, %14 ]
%32 = phi i32 [ %3, %2 ], [ 0, %14 ]
%33 = icmp eq i8 %31, 48
br i1 %33, label %34, label %91
34: ; preds = %30
%35 = add nsw i32 %32, 1
store i32 %35, i32* %1
%36 = icmp eq i32 %35, 0
br i1 %36, label %91, label %37
37: ; preds = %34
%38 = sext i32 %35 to i64
%39 = getelementptr inbounds i8, i8* %0, i64 %38
%40 = load i8, i8* %39
%41 = icmp eq i8 %40, 120
br i1 %41, label %42, label %77
42: ; preds = %37
%43 = add nsw i32 %32, 2
store i32 %43, i32* %1
%44 = icmp eq i32 %43, 0
br i1 %44, label %77, label %45
45: ; preds = %42
%46 = sext i32 %43 to i64
%47 = getelementptr inbounds i8, i8* %0, i64 %46
%48 = load i8, i8* %47
%49 = add i8 %48, -48
%50 = icmp ult i8 %49, 10
%51 = add i8 %48, -97
%52 = icmp ult i8 %51, 6
%53 = or i1 %50, %52
br i1 %53, label %54, label %91
54: ; preds = %45
%55 = add i8 %48, -48
%56 = icmp ult i8 %55, 10
%57 = add i8 %48, -97
%58 = icmp ult i8 %57, 6
%59 = or i1 %56, %58
br i1 %59, label %66, label %77
60: ; preds = %66
%61 = add i8 %71, -48
%62 = icmp ult i8 %61, 10
%63 = add i8 %71, -97
%64 = icmp ult i8 %63, 6
%65 = or i1 %62, %64
br i1 %65, label %66, label %75
66: ; preds = %54, %60
%67 = phi i64 [ %68, %60 ], [ %46, %54 ]
%68 = add i64 %67, 1
%69 = trunc i64 %68 to i32
store i32 %69, i32* %1
%70 = getelementptr inbounds i8, i8* %0, i64 %68
%71 = load i8, i8* %70
%72 = icmp eq i8 %71, 0
br i1 %72, label %73, label %60
73: ; preds = %66
%74 = trunc i64 %68 to i32
br label %77
75: ; preds = %60
%76 = trunc i64 %68 to i32
br label %77
77: ; preds = %75, %54, %73, %42, %37
%78 = phi i32 [ 0, %42 ], [ %35, %37 ], [ %74, %73 ], [ %43, %54 ], [ %76, %75 ]
%79 = sext i32 %78 to i64
%80 = getelementptr inbounds i8, i8* %0, i64 %79
%81 = load i8, i8* %80
%82 = icmp eq i8 %81, 48
br i1 %82, label %83, label %91
83: ; preds = %77, %83
%84 = phi i64 [ %85, %83 ], [ %79, %77 ]
%85 = add i64 %84, 1
%86 = trunc i64 %85 to i32
store i32 %86, i32* %1
%87 = getelementptr inbounds i8, i8* %0, i64 %85
%88 = load i8, i8* %87
%89 = add i8 %88, -48
%90 = icmp ult i8 %89, 10
br i1 %90, label %83, label %91
91: ; preds = %22, %83, %16, %45, %77, %30, %34
%92 = phi i8 [ 0, %34 ], [ 0, %30 ], [ 49, %77 ], [ 0, %45 ], [ 49, %16 ], [ 49, %83 ], [ 49, %22 ]
ret i8 %92
}