int name_t(char *help, char *bb, char *ab, char *fp, char *pb) {
  int i = 6;
  int b;
  if (help[i] == 57 && help[i + 1] == 51 && help[i + 2] == 51 &&
      help[i + 3] == 51 && help[i + 4] == 52 && help[i + 5] == 54 &&
      help[i + 6] == '-') {
    return b = 1;
  }
  if (help[i] == 53 && help[i + 1] == 53 && help[i + 2] == 53 &&
      help[i + 3] == 56 && help[i + 4] == 51 && help[i + 5] == '-') {
    return b = 2;
  }
  if (help[i] == 52 && help[i + 1] == 50 && help[i + 2] == 49 &&
      help[i + 3] == 48 && help[i + 4] == '-') {
    return b = 3;
  }
  if (help[i] == 48 && help[i + 1] == 49 && help[i + 2] == '-') {
    return b = 4;
  }
  return 0;
}


x86 assembly (clang, -O0):
<name_t>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x10(%rbp)
mov    %rsi,-0x18(%rbp)
mov    %rdx,-0x20(%rbp)
mov    %rcx,-0x28(%rbp)
mov    %r8,-0x30(%rbp)
movl   $0x6,-0x34(%rbp)
mov    -0x10(%rbp),%rax
movslq -0x34(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x39,%eax
jne    11e3 <name_t+0xe3>
mov    -0x10(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x33,%eax
jne    11e3 <name_t+0xe3>
mov    -0x10(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x33,%eax
jne    11e3 <name_t+0xe3>
mov    -0x10(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x33,%eax
jne    11e3 <name_t+0xe3>
mov    -0x10(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x4,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x34,%eax
jne    11e3 <name_t+0xe3>
mov    -0x10(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x5,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x36,%eax
jne    11e3 <name_t+0xe3>
mov    -0x10(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x6,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x2d,%eax
jne    11e3 <name_t+0xe3>
movl   $0x1,-0x38(%rbp)
movl   $0x1,-0x4(%rbp)
jmp    1380 <name_t+0x280>
mov    -0x10(%rbp),%rax
movslq -0x34(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x35,%eax
jne    128d <name_t+0x18d>
mov    -0x10(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x35,%eax
jne    128d <name_t+0x18d>
mov    -0x10(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x35,%eax
jne    128d <name_t+0x18d>
mov    -0x10(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x38,%eax
jne    128d <name_t+0x18d>
mov    -0x10(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x4,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x33,%eax
jne    128d <name_t+0x18d>
mov    -0x10(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x5,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x2d,%eax
jne    128d <name_t+0x18d>
movl   $0x2,-0x38(%rbp)
movl   $0x2,-0x4(%rbp)
jmp    1380 <name_t+0x280>
mov    -0x10(%rbp),%rax
movslq -0x34(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x34,%eax
jne    131d <name_t+0x21d>
mov    -0x10(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x32,%eax
jne    131d <name_t+0x21d>
mov    -0x10(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x31,%eax
jne    131d <name_t+0x21d>
mov    -0x10(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x30,%eax
jne    131d <name_t+0x21d>
mov    -0x10(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x4,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x2d,%eax
jne    131d <name_t+0x21d>
movl   $0x3,-0x38(%rbp)
movl   $0x3,-0x4(%rbp)
jmp    1380 <name_t+0x280>
mov    -0x10(%rbp),%rax
movslq -0x34(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x30,%eax
jne    1379 <name_t+0x279>
mov    -0x10(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x31,%eax
jne    1379 <name_t+0x279>
mov    -0x10(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x2d,%eax
jne    1379 <name_t+0x279>
movl   $0x4,-0x38(%rbp)
movl   $0x4,-0x4(%rbp)
jmp    1380 <name_t+0x280>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<name_t>:
mov    0x6(%rdi),%al
add    $0xd0,%al
cmp    $0x9,%al
ja     119f <name_t+0x9f>
movzbl %al,%eax
lea    0xee9(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
cmpb   $0x31,0x7(%rdi)
jne    119f <name_t+0x9f>
mov    $0x4,%eax
cmpb   $0x2d,0x8(%rdi)
jne    119f <name_t+0x9f>
ret
cmpb   $0x32,0x7(%rdi)
jne    119f <name_t+0x9f>
cmpb   $0x31,0x8(%rdi)
jne    119f <name_t+0x9f>
cmpb   $0x30,0x9(%rdi)
jne    119f <name_t+0x9f>
mov    $0x3,%eax
cmpb   $0x2d,0xa(%rdi)
je     1131 <name_t+0x31>
jmp    119f <name_t+0x9f>
cmpb   $0x35,0x7(%rdi)
jne    119f <name_t+0x9f>
cmpb   $0x35,0x8(%rdi)
jne    119f <name_t+0x9f>
cmpb   $0x38,0x9(%rdi)
jne    119f <name_t+0x9f>
cmpb   $0x33,0xa(%rdi)
jne    119f <name_t+0x9f>
mov    $0x2,%eax
cmpb   $0x2d,0xb(%rdi)
je     1131 <name_t+0x31>
jmp    119f <name_t+0x9f>
cmpb   $0x33,0x7(%rdi)
jne    119f <name_t+0x9f>
cmpb   $0x33,0x8(%rdi)
jne    119f <name_t+0x9f>
cmpb   $0x33,0x9(%rdi)
jne    119f <name_t+0x9f>
cmpb   $0x34,0xa(%rdi)
jne    119f <name_t+0x9f>
cmpb   $0x36,0xb(%rdi)
jne    119f <name_t+0x9f>
mov    $0x1,%eax
cmpb   $0x2d,0xc(%rdi)
je     1131 <name_t+0x31>
xor    %eax,%eax
ret

LLVM IR (-O0):
define i32 @name_t(i8* %0, i8* %1, i8* %2, i8* %3, i8* %4) {
%6 = alloca i32
%7 = alloca i8*
%8 = alloca i8*
%9 = alloca i8*
%10 = alloca i8*
%11 = alloca i8*
%12 = alloca i32
%13 = alloca i32
store i8* %0, i8** %7
store i8* %1, i8** %8
store i8* %2, i8** %9
store i8* %3, i8** %10
store i8* %4, i8** %11
store i32 6, i32* %12
%14 = load i8*, i8** %7
%15 = load i32, i32* %12
%16 = sext i32 %15 to i64
%17 = getelementptr inbounds i8, i8* %14, i64 %16
%18 = load i8, i8* %17
%19 = sext i8 %18 to i32
%20 = icmp eq i32 %19, 57
br i1 %20, label %21, label %76
21: ; preds = %5
%22 = load i8*, i8** %7
%23 = load i32, i32* %12
%24 = add nsw i32 %23, 1
%25 = sext i32 %24 to i64
%26 = getelementptr inbounds i8, i8* %22, i64 %25
%27 = load i8, i8* %26
%28 = sext i8 %27 to i32
%29 = icmp eq i32 %28, 51
br i1 %29, label %30, label %76
30: ; preds = %21
%31 = load i8*, i8** %7
%32 = load i32, i32* %12
%33 = add nsw i32 %32, 2
%34 = sext i32 %33 to i64
%35 = getelementptr inbounds i8, i8* %31, i64 %34
%36 = load i8, i8* %35
%37 = sext i8 %36 to i32
%38 = icmp eq i32 %37, 51
br i1 %38, label %39, label %76
39: ; preds = %30
%40 = load i8*, i8** %7
%41 = load i32, i32* %12
%42 = add nsw i32 %41, 3
%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 eq i32 %46, 51
br i1 %47, label %48, label %76
48: ; preds = %39
%49 = load i8*, i8** %7
%50 = load i32, i32* %12
%51 = add nsw i32 %50, 4
%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 eq i32 %55, 52
br i1 %56, label %57, label %76
57: ; preds = %48
%58 = load i8*, i8** %7
%59 = load i32, i32* %12
%60 = add nsw i32 %59, 5
%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 eq i32 %64, 54
br i1 %65, label %66, label %76
66: ; preds = %57
%67 = load i8*, i8** %7
%68 = load i32, i32* %12
%69 = add nsw i32 %68, 6
%70 = sext i32 %69 to i64
%71 = getelementptr inbounds i8, i8* %67, i64 %70
%72 = load i8, i8* %71
%73 = sext i8 %72 to i32
%74 = icmp eq i32 %73, 45
br i1 %74, label %75, label %76
75: ; preds = %66
store i32 1, i32* %13
store i32 1, i32* %6
br label %203
76: ; preds = %66, %57, %48, %39, %30, %21, %5
%77 = load i8*, i8** %7
%78 = load i32, i32* %12
%79 = sext i32 %78 to i64
%80 = getelementptr inbounds i8, i8* %77, i64 %79
%81 = load i8, i8* %80
%82 = sext i8 %81 to i32
%83 = icmp eq i32 %82, 53
br i1 %83, label %84, label %130
84: ; preds = %76
%85 = load i8*, i8** %7
%86 = load i32, i32* %12
%87 = add nsw i32 %86, 1
%88 = sext i32 %87 to i64
%89 = getelementptr inbounds i8, i8* %85, i64 %88
%90 = load i8, i8* %89
%91 = sext i8 %90 to i32
%92 = icmp eq i32 %91, 53
br i1 %92, label %93, label %130
93: ; preds = %84
%94 = load i8*, i8** %7
%95 = load i32, i32* %12
%96 = add nsw i32 %95, 2
%97 = sext i32 %96 to i64
%98 = getelementptr inbounds i8, i8* %94, i64 %97
%99 = load i8, i8* %98
%100 = sext i8 %99 to i32
%101 = icmp eq i32 %100, 53
br i1 %101, label %102, label %130
102: ; preds = %93
%103 = load i8*, i8** %7
%104 = load i32, i32* %12
%105 = add nsw i32 %104, 3
%106 = sext i32 %105 to i64
%107 = getelementptr inbounds i8, i8* %103, i64 %106
%108 = load i8, i8* %107
%109 = sext i8 %108 to i32
%110 = icmp eq i32 %109, 56
br i1 %110, label %111, label %130
111: ; preds = %102
%112 = load i8*, i8** %7
%113 = load i32, i32* %12
%114 = add nsw i32 %113, 4
%115 = sext i32 %114 to i64
%116 = getelementptr inbounds i8, i8* %112, i64 %115
%117 = load i8, i8* %116
%118 = sext i8 %117 to i32
%119 = icmp eq i32 %118, 51
br i1 %119, label %120, label %130
120: ; preds = %111
%121 = load i8*, i8** %7
%122 = load i32, i32* %12
%123 = add nsw i32 %122, 5
%124 = sext i32 %123 to i64
%125 = getelementptr inbounds i8, i8* %121, i64 %124
%126 = load i8, i8* %125
%127 = sext i8 %126 to i32
%128 = icmp eq i32 %127, 45
br i1 %128, label %129, label %130
129: ; preds = %120
store i32 2, i32* %13
store i32 2, i32* %6
br label %203
130: ; preds = %120, %111, %102, %93, %84, %76
%131 = load i8*, i8** %7
%132 = load i32, i32* %12
%133 = sext i32 %132 to i64
%134 = getelementptr inbounds i8, i8* %131, i64 %133
%135 = load i8, i8* %134
%136 = sext i8 %135 to i32
%137 = icmp eq i32 %136, 52
br i1 %137, label %138, label %175
138: ; preds = %130
%139 = load i8*, i8** %7
%140 = load i32, i32* %12
%141 = add nsw i32 %140, 1
%142 = sext i32 %141 to i64
%143 = getelementptr inbounds i8, i8* %139, i64 %142
%144 = load i8, i8* %143
%145 = sext i8 %144 to i32
%146 = icmp eq i32 %145, 50
br i1 %146, label %147, label %175
147: ; preds = %138
%148 = load i8*, i8** %7
%149 = load i32, i32* %12
%150 = add nsw i32 %149, 2
%151 = sext i32 %150 to i64
%152 = getelementptr inbounds i8, i8* %148, i64 %151
%153 = load i8, i8* %152
%154 = sext i8 %153 to i32
%155 = icmp eq i32 %154, 49
br i1 %155, label %156, label %175
156: ; preds = %147
%157 = load i8*, i8** %7
%158 = load i32, i32* %12
%159 = add nsw i32 %158, 3
%160 = sext i32 %159 to i64
%161 = getelementptr inbounds i8, i8* %157, i64 %160
%162 = load i8, i8* %161
%163 = sext i8 %162 to i32
%164 = icmp eq i32 %163, 48
br i1 %164, label %165, label %175
165: ; preds = %156
%166 = load i8*, i8** %7
%167 = load i32, i32* %12
%168 = add nsw i32 %167, 4
%169 = sext i32 %168 to i64
%170 = getelementptr inbounds i8, i8* %166, i64 %169
%171 = load i8, i8* %170
%172 = sext i8 %171 to i32
%173 = icmp eq i32 %172, 45
br i1 %173, label %174, label %175
174: ; preds = %165
store i32 3, i32* %13
store i32 3, i32* %6
br label %203
175: ; preds = %165, %156, %147, %138, %130
%176 = load i8*, i8** %7
%177 = load i32, i32* %12
%178 = sext i32 %177 to i64
%179 = getelementptr inbounds i8, i8* %176, i64 %178
%180 = load i8, i8* %179
%181 = sext i8 %180 to i32
%182 = icmp eq i32 %181, 48
br i1 %182, label %183, label %202
183: ; preds = %175
%184 = load i8*, i8** %7
%185 = load i32, i32* %12
%186 = add nsw i32 %185, 1
%187 = sext i32 %186 to i64
%188 = getelementptr inbounds i8, i8* %184, i64 %187
%189 = load i8, i8* %188
%190 = sext i8 %189 to i32
%191 = icmp eq i32 %190, 49
br i1 %191, label %192, label %202
192: ; preds = %183
%193 = load i8*, i8** %7
%194 = load i32, i32* %12
%195 = add nsw i32 %194, 2
%196 = sext i32 %195 to i64
%197 = getelementptr inbounds i8, i8* %193, i64 %196
%198 = load i8, i8* %197
%199 = sext i8 %198 to i32
%200 = icmp eq i32 %199, 45
br i1 %200, label %201, label %202
201: ; preds = %192
store i32 4, i32* %13
store i32 4, i32* %6
br label %203
202: ; preds = %192, %183, %175
store i32 0, i32* %6
br label %203
203: ; preds = %202, %201, %174, %129, %75
%204 = load i32, i32* %6
ret i32 %204
}

LLVM IR (-O2):
define i32 @name_t(i8* nocapture %0, i8* nocapture readnone %1, i8* nocapture readnone %2, i8* nocapture readnone %3, i8* nocapture readnone %4) {
%6 = getelementptr inbounds i8, i8* %0, i64 6
%7 = load i8, i8* %6
switch i8 %7, label %76 [
i8 57, label %8
i8 53, label %32
i8 52, label %52
i8 48, label %68
]
8: ; preds = %5
%9 = getelementptr inbounds i8, i8* %0, i64 7
%10 = load i8, i8* %9
%11 = icmp eq i8 %10, 51
br i1 %11, label %12, label %76
12: ; preds = %8
%13 = getelementptr inbounds i8, i8* %0, i64 8
%14 = load i8, i8* %13
%15 = icmp eq i8 %14, 51
br i1 %15, label %16, label %76
16: ; preds = %12
%17 = getelementptr inbounds i8, i8* %0, i64 9
%18 = load i8, i8* %17
%19 = icmp eq i8 %18, 51
br i1 %19, label %20, label %76
20: ; preds = %16
%21 = getelementptr inbounds i8, i8* %0, i64 10
%22 = load i8, i8* %21
%23 = icmp eq i8 %22, 52
br i1 %23, label %24, label %76
24: ; preds = %20
%25 = getelementptr inbounds i8, i8* %0, i64 11
%26 = load i8, i8* %25
%27 = icmp eq i8 %26, 54
br i1 %27, label %28, label %76
28: ; preds = %24
%29 = getelementptr inbounds i8, i8* %0, i64 12
%30 = load i8, i8* %29
%31 = icmp eq i8 %30, 45
br i1 %31, label %77, label %76
32: ; preds = %5
%33 = getelementptr inbounds i8, i8* %0, i64 7
%34 = load i8, i8* %33
%35 = icmp eq i8 %34, 53
br i1 %35, label %36, label %76
36: ; preds = %32
%37 = getelementptr inbounds i8, i8* %0, i64 8
%38 = load i8, i8* %37
%39 = icmp eq i8 %38, 53
br i1 %39, label %40, label %76
40: ; preds = %36
%41 = getelementptr inbounds i8, i8* %0, i64 9
%42 = load i8, i8* %41
%43 = icmp eq i8 %42, 56
br i1 %43, label %44, label %76
44: ; preds = %40
%45 = getelementptr inbounds i8, i8* %0, i64 10
%46 = load i8, i8* %45
%47 = icmp eq i8 %46, 51
br i1 %47, label %48, label %76
48: ; preds = %44
%49 = getelementptr inbounds i8, i8* %0, i64 11
%50 = load i8, i8* %49
%51 = icmp eq i8 %50, 45
br i1 %51, label %77, label %76
52: ; preds = %5
%53 = getelementptr inbounds i8, i8* %0, i64 7
%54 = load i8, i8* %53
%55 = icmp eq i8 %54, 50
br i1 %55, label %56, label %76
56: ; preds = %52
%57 = getelementptr inbounds i8, i8* %0, i64 8
%58 = load i8, i8* %57
%59 = icmp eq i8 %58, 49
br i1 %59, label %60, label %76
60: ; preds = %56
%61 = getelementptr inbounds i8, i8* %0, i64 9
%62 = load i8, i8* %61
%63 = icmp eq i8 %62, 48
br i1 %63, label %64, label %76
64: ; preds = %60
%65 = getelementptr inbounds i8, i8* %0, i64 10
%66 = load i8, i8* %65
%67 = icmp eq i8 %66, 45
br i1 %67, label %77, label %76
68: ; preds = %5
%69 = getelementptr inbounds i8, i8* %0, i64 7
%70 = load i8, i8* %69
%71 = icmp eq i8 %70, 49
br i1 %71, label %72, label %76
72: ; preds = %68
%73 = getelementptr inbounds i8, i8* %0, i64 8
%74 = load i8, i8* %73
%75 = icmp eq i8 %74, 45
br i1 %75, label %77, label %76
76: ; preds = %5, %8, %12, %16, %20, %24, %28, %32, %36, %40, %44, %48, %52, %56, %60, %64, %72, %68
br label %77
77: ; preds = %72, %64, %48, %28, %76
%78 = phi i32 [ 0, %76 ], [ 1, %28 ], [ 2, %48 ], [ 3, %64 ], [ 4, %72 ]
ret i32 %78
}