#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 set_logpath(char *);
int /*<<< orphan*/ set_logpriority(int);
int /*<<< orphan*/ strncmp(char *, char *, int);
scalar_t__ strtol(char *, int /*<<< orphan*/ *, int);
int /*<<< orphan*/ systemlog(int, char *);
int fget_logpath(char buff[]) {
  int found_valid = 0;
  int prio = 0;
  int i = 0;
  int v = 0;
  char tmplogpath[256];
  systemlog(4, "fget_logpath");
  tmplogpath[0] = '\0';
  while (buff[i] == ' ' || buff[i] == '\t')
    i++;
  if (!strncmp(buff + i, "logfile.path&prio: ", 14)) {
    i += 14;
    while (buff[i] != '\n' && buff[i] != '\0') {
      if (buff[i] >= 48 && buff[i] <= 57) {
        prio = (int)strtol(buff + i, NULL, 10);
        while (buff[i] != ' ' && buff[i] != '\t' && buff[i] != '\n' &&
               buff[i] != '\0')
          i++;
      } else if (buff[i] == '/') {
        while (buff[i + v] != ' ' && buff[i + v] != '\n' &&
               buff[i + v] != '\0') {
          tmplogpath[v] = buff[i + v];
          v++;
        }
        tmplogpath[v] = '\0';
        i += v;
        v = 0;
      } else if (buff[i] == '"') {
        i++;
        while (buff[i + v] != '"' && buff[i + v] != '\n' &&
               buff[i + v] != '\0') {
          tmplogpath[v] = buff[i + v];
          v++;
        }
        tmplogpath[v] = '\0';
        i += v + 1;
        v = 0;
      } else
        i++;
    }
    if (tmplogpath[0] != '\0') {
      if ((found_valid = set_logpath(tmplogpath)) == 0) {
        systemlog(1, "ERROR: fget_logpath: set_logpath: a unrecognized problem "
                     "detected!");
        found_valid = -1;
      }
      set_logpriority(prio);
    } else {
      systemlog(1, "ERROR: fget_logpath: coud not find value!");
    }
  }
  if (found_valid > 0)
    systemlog(92, "\t[DONE]");
  else
    systemlog(94, "\t[FAILD]");
  return found_valid;
}


x86 assembly (clang, -O0):
<fget_logpath>:
push   %rbp
mov    %rsp,%rbp
sub    $0x130,%rsp
mov    %rdi,-0x8(%rbp)
movl   $0x0,-0xc(%rbp)
movl   $0x0,-0x10(%rbp)
movl   $0x0,-0x14(%rbp)
movl   $0x0,-0x18(%rbp)
mov    $0x4,%edi
lea    0xe79(%rip),%rsi
call   1030 <systemlog@plt>
movb   $0x0,-0x120(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%ecx
mov    $0x1,%al
cmp    $0x20,%ecx
mov    %al,-0x121(%rbp)
je     11c8 <fget_logpath+0x78>
mov    -0x8(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x9,%eax
sete   %al
mov    %al,-0x121(%rbp)
mov    -0x121(%rbp),%al
test   $0x1,%al
jne    11db <fget_logpath+0x8b>
jmp    11e9 <fget_logpath+0x99>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    1193 <fget_logpath+0x43>
mov    -0x8(%rbp),%rdi
movslq -0x14(%rbp),%rax
add    %rax,%rdi
lea    0xe12(%rip),%rsi
mov    $0xe,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%eax
jne    156c <fget_logpath+0x41c>
mov    -0x14(%rbp),%eax
add    $0xe,%eax
mov    %eax,-0x14(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%ecx
xor    %eax,%eax
cmp    $0xa,%ecx
mov    %al,-0x122(%rbp)
je     124c <fget_logpath+0xfc>
mov    -0x8(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x0,%eax
setne  %al
mov    %al,-0x122(%rbp)
mov    -0x122(%rbp),%al
test   $0x1,%al
jne    125f <fget_logpath+0x10f>
jmp    1509 <fget_logpath+0x3b9>
mov    -0x8(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x30,%eax
jl     133a <fget_logpath+0x1ea>
mov    -0x8(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x39,%eax
jg     133a <fget_logpath+0x1ea>
mov    -0x8(%rbp),%rdi
movslq -0x14(%rbp),%rax
add    %rax,%rdi
xor    %eax,%eax
mov    %eax,%esi
mov    $0xa,%edx
call   1050 <strtol@plt>
mov    %eax,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%ecx
xor    %eax,%eax
cmp    $0x20,%ecx
mov    %al,-0x123(%rbp)
je     1314 <fget_logpath+0x1c4>
mov    -0x8(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%ecx
xor    %eax,%eax
cmp    $0x9,%ecx
mov    %al,-0x123(%rbp)
je     1314 <fget_logpath+0x1c4>
mov    -0x8(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%ecx
xor    %eax,%eax
cmp    $0xa,%ecx
mov    %al,-0x123(%rbp)
je     1314 <fget_logpath+0x1c4>
mov    -0x8(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x0,%eax
setne  %al
mov    %al,-0x123(%rbp)
mov    -0x123(%rbp),%al
test   $0x1,%al
jne    1327 <fget_logpath+0x1d7>
jmp    1335 <fget_logpath+0x1e5>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    12a5 <fget_logpath+0x155>
jmp    1504 <fget_logpath+0x3b4>
mov    -0x8(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x2f,%eax
jne    1412 <fget_logpath+0x2c2>
jmp    1354 <fget_logpath+0x204>
mov    -0x8(%rbp),%rax
mov    -0x14(%rbp),%ecx
add    -0x18(%rbp),%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%ecx
xor    %eax,%eax
cmp    $0x20,%ecx
mov    %al,-0x124(%rbp)
je     13b5 <fget_logpath+0x265>
mov    -0x8(%rbp),%rax
mov    -0x14(%rbp),%ecx
add    -0x18(%rbp),%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%ecx
xor    %eax,%eax
cmp    $0xa,%ecx
mov    %al,-0x124(%rbp)
je     13b5 <fget_logpath+0x265>
mov    -0x8(%rbp),%rax
mov    -0x14(%rbp),%ecx
add    -0x18(%rbp),%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x0,%eax
setne  %al
mov    %al,-0x124(%rbp)
mov    -0x124(%rbp),%al
test   $0x1,%al
jne    13c8 <fget_logpath+0x278>
jmp    13f1 <fget_logpath+0x2a1>
mov    -0x8(%rbp),%rax
mov    -0x14(%rbp),%ecx
add    -0x18(%rbp),%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,1),%cl
movslq -0x18(%rbp),%rax
mov    %cl,-0x120(%rbp,%rax,1)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1354 <fget_logpath+0x204>
movslq -0x18(%rbp),%rax
movb   $0x0,-0x120(%rbp,%rax,1)
mov    -0x18(%rbp),%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
movl   $0x0,-0x18(%rbp)
jmp    14ff <fget_logpath+0x3af>
mov    -0x8(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x22,%eax
jne    14f1 <fget_logpath+0x3a1>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
mov    -0x8(%rbp),%rax
mov    -0x14(%rbp),%ecx
add    -0x18(%rbp),%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%ecx
xor    %eax,%eax
cmp    $0x22,%ecx
mov    %al,-0x125(%rbp)
je     1491 <fget_logpath+0x341>
mov    -0x8(%rbp),%rax
mov    -0x14(%rbp),%ecx
add    -0x18(%rbp),%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%ecx
xor    %eax,%eax
cmp    $0xa,%ecx
mov    %al,-0x125(%rbp)
je     1491 <fget_logpath+0x341>
mov    -0x8(%rbp),%rax
mov    -0x14(%rbp),%ecx
add    -0x18(%rbp),%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x0,%eax
setne  %al
mov    %al,-0x125(%rbp)
mov    -0x125(%rbp),%al
test   $0x1,%al
jne    14a4 <fget_logpath+0x354>
jmp    14cd <fget_logpath+0x37d>
mov    -0x8(%rbp),%rax
mov    -0x14(%rbp),%ecx
add    -0x18(%rbp),%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,1),%cl
movslq -0x18(%rbp),%rax
mov    %cl,-0x120(%rbp,%rax,1)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1430 <fget_logpath+0x2e0>
movslq -0x18(%rbp),%rax
movb   $0x0,-0x120(%rbp,%rax,1)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
movl   $0x0,-0x18(%rbp)
jmp    14fa <fget_logpath+0x3aa>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    14ff <fget_logpath+0x3af>
jmp    1504 <fget_logpath+0x3b4>
jmp    1217 <fget_logpath+0xc7>
movsbl -0x120(%rbp),%eax
cmp    $0x0,%eax
je     1556 <fget_logpath+0x406>
lea    -0x120(%rbp),%rdi
call   1060 <set_logpath@plt>
mov    %eax,-0xc(%rbp)
cmp    $0x0,%eax
jne    1549 <fget_logpath+0x3f9>
mov    $0x1,%edi
lea    0xae4(%rip),%rsi
call   1030 <systemlog@plt>
movl   $0xffffffff,-0xc(%rbp)
mov    -0x10(%rbp),%edi
call   1070 <set_logpriority@plt>
jmp    1567 <fget_logpath+0x417>
mov    $0x1,%edi
lea    0xb02(%rip),%rsi
call   1030 <systemlog@plt>
jmp    156c <fget_logpath+0x41c>
cmpl   $0x0,-0xc(%rbp)
jle    158c <fget_logpath+0x43c>
mov    $0x5c,%edi
lea    0xb0c(%rip),%rsi
call   1030 <systemlog@plt>
jmp    159d <fget_logpath+0x44d>
mov    $0x5e,%edi
lea    0xafe(%rip),%rsi
call   1030 <systemlog@plt>
mov    -0xc(%rbp),%eax
add    $0x130,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<fget_logpath>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x108,%rsp
mov    %rdi,%r15
lea    0xe95(%rip),%rsi
mov    $0x4,%edi
call   1030 <systemlog@plt>
movb   $0x0,(%rsp)
xor    %ebx,%ebx
jmp    1184 <fget_logpath+0x34>
nopl   (%rax)
add    $0x1,%rbx
movzbl (%r15,%rbx,1),%eax
cmp    $0x20,%al
je     1180 <fget_logpath+0x30>
cmp    $0x9,%al
je     1180 <fget_logpath+0x30>
mov    %ebx,%edi
add    %r15,%rdi
lea    0xe70(%rip),%rsi
mov    $0xe,%edx
call   1040 <strncmp@plt>
xor    %ebp,%ebp
test   %eax,%eax
je     11d2 <fget_logpath+0x82>
lea    0xee2(%rip),%rsi
mov    $0x5e,%edi
call   1030 <systemlog@plt>
mov    %ebp,%eax
add    $0x108,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
add    $0xe,%ebx
xor    %r14d,%r14d
movabs $0x100000601,%rsi
movabs $0x400000401,%rbp
movabs $0x100000401,%r13
jmp    1203 <fget_logpath+0xb3>
nopl   0x0(%rax,%rax,1)
add    $0x1,%ebx
movslq %ebx,%r12
mov    (%r15,%r12,1),%al
test   %al,%al
je     12ed <fget_logpath+0x19d>
cmp    $0xa,%al
je     12ed <fget_logpath+0x19d>
lea    -0x30(%rax),%ecx
cmp    $0x9,%cl
jbe    12a7 <fget_logpath+0x157>
cmp    $0x22,%al
je     1270 <fget_logpath+0x120>
cmp    $0x2f,%al
jne    1200 <fget_logpath+0xb0>
add    %r15,%r12
xor    %eax,%eax
jmp    1247 <fget_logpath+0xf7>
cs nopw 0x0(%rax,%rax,1)
nop
mov    %cl,(%rsp,%rax,1)
add    $0x1,%rax
movzbl (%r12,%rax,1),%ecx
cmp    $0x20,%rcx
ja     1240 <fget_logpath+0xf0>
bt     %rcx,%r13
jae    1240 <fget_logpath+0xf0>
add    %eax,%ebx
mov    %eax,%eax
movb   $0x0,(%rsp,%rax,1)
jmp    1203 <fget_logpath+0xb3>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
lea    (%r12,%r15,1),%rcx
add    $0x1,%rcx
xor    %eax,%eax
jmp    1287 <fget_logpath+0x137>
nopl   0x0(%rax)
mov    %dl,(%rsp,%rax,1)
add    $0x1,%rax
movzbl (%rcx,%rax,1),%edx
cmp    $0x22,%rdx
ja     1280 <fget_logpath+0x130>
bt     %rdx,%rbp
jae    1280 <fget_logpath+0x130>
mov    %eax,%ecx
movb   $0x0,(%rsp,%rcx,1)
add    %eax,%ebx
add    $0x2,%ebx
jmp    1203 <fget_logpath+0xb3>
add    %r15,%r12
mov    %r12,%rdi
mov    %rsi,%r14
xor    %esi,%esi
mov    $0xa,%edx
call   1050 <strtol@plt>
mov    %r14,%rsi
mov    %rax,%r14
jmp    12d7 <fget_logpath+0x187>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
add    $0x1,%ebx
add    $0x1,%r12
movzbl (%r12),%eax
cmp    $0x20,%rax
ja     12d0 <fget_logpath+0x180>
bt     %rax,%rsi
jae    12d0 <fget_logpath+0x180>
jmp    1203 <fget_logpath+0xb3>
cmpb   $0x0,(%rsp)
je     1322 <fget_logpath+0x1d2>
mov    %rsp,%rdi
call   1060 <set_logpath@plt>
test   %eax,%eax
je     133a <fget_logpath+0x1ea>
mov    %eax,%ebp
mov    %r14d,%edi
call   1070 <set_logpriority@plt>
test   %ebp,%ebp
jle    11ad <fget_logpath+0x5d>
lea    0xd76(%rip),%rsi
mov    $0x5c,%edi
jmp    11b9 <fget_logpath+0x69>
lea    0xd3b(%rip),%rsi
mov    $0x1,%edi
call   1030 <systemlog@plt>
xor    %ebp,%ebp
jmp    11ad <fget_logpath+0x5d>
lea    0xce0(%rip),%rsi
mov    $0x1,%edi
call   1030 <systemlog@plt>
mov    %r14d,%edi
call   1070 <set_logpriority@plt>
mov    $0xffffffff,%ebp
jmp    11ad <fget_logpath+0x5d>

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

LLVM IR (-O2):
@.str = [13 x i8] c"fget_logpath\00"
@.str.1 = [20 x i8] c"logfile.path&prio: \00"
@.str.2 = [67 x i8] c"ERROR: fget_logpath: set_logpath: a unrecognized problem detected!\00"
@.str.3 = [42 x i8] c"ERROR: fget_logpath: coud not find value!\00"
@.str.4 = [8 x i8] c"\09[DONE]\00"
@.str.5 = [9 x i8] c"\09[FAILD]\00"
define i32 @fget_logpath(i8* %0) {
%2 = alloca [256 x i8]
%3 = getelementptr inbounds [256 x i8], [256 x i8]* %2, i64 0, i64 0
%4 = tail call i32 @systemlog(i32 4, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str, i64 0, i64 0))
store i8 0, i8* %3
br label %5
5: ; preds = %9, %1
%6 = phi i64 [ %10, %9 ], [ 0, %1 ]
%7 = getelementptr inbounds i8, i8* %0, i64 %6
%8 = load i8, i8* %7
switch i8 %8, label %11 [
i8 32, label %9
i8 9, label %9
]
9: ; preds = %5, %5
%10 = add nuw i64 %6, 1
br label %5
11: ; preds = %5
%12 = and i64 %6, 4294967295
%13 = getelementptr inbounds i8, i8* %0, i64 %12
%14 = tail call i32 @strncmp(i8* %13, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.1, i64 0, i64 0), i32 14)
%15 = icmp eq i32 %14, 0
br i1 %15, label %16, label %92
16: ; preds = %11
%17 = trunc i64 %6 to i32
%18 = add nuw nsw i32 %17, 14
br label %19
19: ; preds = %74, %16
%20 = phi i32 [ %33, %74 ], [ 0, %16 ]
%21 = phi i32 [ %75, %74 ], [ %18, %16 ]
br label %22
22: ; preds = %53, %19
%23 = phi i32 [ %21, %19 ], [ %54, %53 ]
%24 = sext i32 %23 to i64
%25 = getelementptr inbounds i8, i8* %0, i64 %24
%26 = load i8, i8* %25
switch i8 %26, label %27 [
i8 10, label %76
i8 0, label %76
]
27: ; preds = %22
%28 = add i8 %26, -48
%29 = icmp ult i8 %28, 10
br i1 %29, label %30, label %40
30: ; preds = %27
%31 = getelementptr inbounds i8, i8* %0, i64 %24
%32 = tail call i64 @strtol(i8* nocapture %31, i32* null, i32 10)
%33 = trunc i64 %32 to i32
br label %34
34: ; preds = %38, %30
%35 = phi i64 [ %39, %38 ], [ %24, %30 ]
%36 = getelementptr inbounds i8, i8* %0, i64 %35
%37 = load i8, i8* %36
switch i8 %37, label %38 [
i8 32, label %74
i8 9, label %74
i8 10, label %74
i8 0, label %74
]
38: ; preds = %34
%39 = add i64 %35, 1
br label %34
40: ; preds = %27
switch i8 %26, label %72 [
i8 47, label %41
i8 34, label %55
]
41: ; preds = %40, %46
%42 = phi i64 [ %48, %46 ], [ 0, %40 ]
%43 = add nsw i64 %42, %24
%44 = getelementptr inbounds i8, i8* %0, i64 %43
%45 = load i8, i8* %44
switch i8 %45, label %46 [
i8 32, label %49
i8 10, label %49
i8 0, label %49
]
46: ; preds = %41
%47 = getelementptr inbounds [256 x i8], [256 x i8]* %2, i64 0, i64 %42
store i8 %45, i8* %47
%48 = add nuw i64 %42, 1
br label %41
49: ; preds = %41, %41, %41
%50 = trunc i64 %43 to i32
%51 = and i64 %42, 4294967295
%52 = getelementptr inbounds [256 x i8], [256 x i8]* %2, i64 0, i64 %51
store i8 0, i8* %52
br label %53
53: ; preds = %49, %72, %66
%54 = phi i32 [ %50, %49 ], [ %71, %66 ], [ %73, %72 ]
br label %22
55: ; preds = %40
%56 = add nsw i32 %23, 1
%57 = sext i32 %56 to i64
br label %58
58: ; preds = %63, %55
%59 = phi i64 [ %65, %63 ], [ 0, %55 ]
%60 = add nsw i64 %59, %57
%61 = getelementptr inbounds i8, i8* %0, i64 %60
%62 = load i8, i8* %61
switch i8 %62, label %63 [
i8 34, label %66
i8 10, label %66
i8 0, label %66
]
63: ; preds = %58
%64 = getelementptr inbounds [256 x i8], [256 x i8]* %2, i64 0, i64 %59
store i8 %62, i8* %64
%65 = add nuw i64 %59, 1
br label %58
66: ; preds = %58, %58, %58
%67 = trunc i64 %59 to i32
%68 = and i64 %59, 4294967295
%69 = getelementptr inbounds [256 x i8], [256 x i8]* %2, i64 0, i64 %68
store i8 0, i8* %69
%70 = add i32 %56, %67
%71 = add i32 %70, 1
br label %53
72: ; preds = %40
%73 = add nsw i32 %23, 1
br label %53
74: ; preds = %34, %34, %34, %34
%75 = trunc i64 %35 to i32
br label %19
76: ; preds = %22, %22
%77 = load i8, i8* %3
%78 = icmp eq i8 %77, 0
br i1 %78, label %85, label %79
79: ; preds = %76
%80 = call i32 @set_logpath(i8* %3)
%81 = icmp eq i32 %80, 0
br i1 %81, label %82, label %87
82: ; preds = %79
%83 = call i32 @systemlog(i32 1, i8* getelementptr inbounds ([67 x i8], [67 x i8]* @.str.2, i64 0, i64 0))
%84 = call i32 @set_logpriority(i32 %20)
br label %92
85: ; preds = %76
%86 = tail call i32 @systemlog(i32 1, i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.3, i64 0, i64 0))
br label %92
87: ; preds = %79
%88 = call i32 @set_logpriority(i32 %20)
%89 = icmp sgt i32 %80, 0
br i1 %89, label %90, label %92
90: ; preds = %87
%91 = call i32 @systemlog(i32 92, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.4, i64 0, i64 0))
br label %95
92: ; preds = %85, %11, %82, %87
%93 = phi i32 [ %80, %87 ], [ -1, %82 ], [ 0, %11 ], [ 0, %85 ]
%94 = call i32 @systemlog(i32 94, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.5, i64 0, i64 0))
br label %95
95: ; preds = %92, %90
%96 = phi i32 [ %93, %92 ], [ %80, %90 ]
ret i32 %96
}