#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 */
char *fgets(char *, int, int /*<<< orphan*/);
int /*<<< orphan*/ fndcmt(char *);
char *fndnws(char *);
char *fndws(char *);
int /*<<< orphan*/ poot(char *);
char *skipfx(char *);
int /*<<< orphan*/ stdin;
int /*<<< orphan*/ unansi(char *);
main() {
  char *s, *t, line[1000];
  int c;
  while (s = fgets(line, 1000, stdin))
    switch (line[0]) {
    case '/':
      if ((s[1] != '*') || fndcmt(s + 2))
        poot(line);
      else
        do
          poot(line);
        while (!fndcmt(line) && (s = fgets(line, 1000, stdin)));
      break;
    case '{':
    case '}':
    case '\f':
    case '\n':
    case '#':
      poot(line);
      break;
    case '\t':
    case ' ':
      if ((t = skipfx(line)) && (s = fndws(t)) && (s = fndnws(s)) &&
          (((*s == '(') && (s[1] == '*')) ||
           ((*s == '*') && (s[1] == '(') && (s[2] == '*'))) &&
          (s = fndws(s)) && (s[-1] == ')') && (s = fndnws(s)) && (*s == '('))
        unansi(t);
      else
        poot(t);
      break;
    default:
      if ((t = skipfx(line)) && (s = fndws(t)) && (s = fndnws(s)) &&
          (s = fndws(s)) && (s = fndnws(s)) && (*s == '('))
        unansi(t);
      else
        poot(t);
      break;
    }
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x410,%rsp
movl   $0x0,-0x4(%rbp)
lea    -0x400(%rbp),%rdi
mov    0x2e58(%rip),%rax
mov    (%rax),%edx
mov    $0x3e8,%esi
call   1050 <fgets@plt>
mov    %rax,-0x10(%rbp)
cmp    $0x0,%rax
je     14ba <main+0x34a>
movsbl -0x400(%rbp),%eax
mov    %eax,-0x408(%rbp)
sub    $0x9,%eax
je     130d <main+0x19d>
jmp    11c5 <main+0x55>
mov    -0x408(%rbp),%eax
sub    $0xa,%eax
je     12fc <main+0x18c>
jmp    11d9 <main+0x69>
mov    -0x408(%rbp),%eax
sub    $0xc,%eax
je     12fc <main+0x18c>
jmp    11ed <main+0x7d>
mov    -0x408(%rbp),%eax
sub    $0x20,%eax
je     130d <main+0x19d>
jmp    1201 <main+0x91>
mov    -0x408(%rbp),%eax
sub    $0x23,%eax
je     12fc <main+0x18c>
jmp    1215 <main+0xa5>
mov    -0x408(%rbp),%eax
sub    $0x2f,%eax
je     1251 <main+0xe1>
jmp    1229 <main+0xb9>
mov    -0x408(%rbp),%eax
sub    $0x7b,%eax
je     12fc <main+0x18c>
jmp    123d <main+0xcd>
mov    -0x408(%rbp),%eax
sub    $0x7d,%eax
je     12fc <main+0x18c>
jmp    1413 <main+0x2a3>
mov    -0x10(%rbp),%rax
movsbl 0x1(%rax),%eax
cmp    $0x2a,%eax
jne    1278 <main+0x108>
mov    -0x10(%rbp),%rdi
add    $0x2,%rdi
call   1060 <fndcmt@plt>
cmp    $0x0,%eax
je     1289 <main+0x119>
lea    -0x400(%rbp),%rdi
call   1030 <poot@plt>
jmp    12f7 <main+0x187>
jmp    128e <main+0x11e>
lea    -0x400(%rbp),%rdi
call   1030 <poot@plt>
lea    -0x400(%rbp),%rdi
call   1060 <fndcmt@plt>
mov    %eax,%ecx
xor    %eax,%eax
cmp    $0x0,%ecx
mov    %al,-0x409(%rbp)
jne    12e4 <main+0x174>
lea    -0x400(%rbp),%rdi
mov    0x2d21(%rip),%rax
mov    (%rax),%edx
mov    $0x3e8,%esi
call   1050 <fgets@plt>
mov    %rax,-0x10(%rbp)
cmp    $0x0,%rax
setne  %al
mov    %al,-0x409(%rbp)
mov    -0x409(%rbp),%al
test   $0x1,%al
jne    128e <main+0x11e>
jmp    12f7 <main+0x187>
jmp    14b5 <main+0x345>
lea    -0x400(%rbp),%rdi
call   1030 <poot@plt>
jmp    14b5 <main+0x345>
lea    -0x400(%rbp),%rdi
call   1090 <skipfx@plt>
mov    %rax,-0x18(%rbp)
cmp    $0x0,%rax
je     1405 <main+0x295>
mov    -0x18(%rbp),%rdi
call   1040 <fndws@plt>
mov    %rax,-0x10(%rbp)
cmp    $0x0,%rax
je     1405 <main+0x295>
mov    -0x10(%rbp),%rdi
call   1080 <fndnws@plt>
mov    %rax,-0x10(%rbp)
cmp    $0x0,%rax
je     1405 <main+0x295>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x28,%eax
jne    1376 <main+0x206>
mov    -0x10(%rbp),%rax
movsbl 0x1(%rax),%eax
cmp    $0x2a,%eax
je     13a8 <main+0x238>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x2a,%eax
jne    1405 <main+0x295>
mov    -0x10(%rbp),%rax
movsbl 0x1(%rax),%eax
cmp    $0x28,%eax
jne    1405 <main+0x295>
mov    -0x10(%rbp),%rax
movsbl 0x2(%rax),%eax
cmp    $0x2a,%eax
jne    1405 <main+0x295>
mov    -0x10(%rbp),%rdi
call   1040 <fndws@plt>
mov    %rax,-0x10(%rbp)
cmp    $0x0,%rax
je     1405 <main+0x295>
mov    -0x10(%rbp),%rax
movsbl -0x1(%rax),%eax
cmp    $0x29,%eax
jne    1405 <main+0x295>
mov    -0x10(%rbp),%rdi
call   1080 <fndnws@plt>
mov    %rax,-0x10(%rbp)
cmp    $0x0,%rax
je     1405 <main+0x295>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x28,%eax
jne    1405 <main+0x295>
mov    -0x18(%rbp),%rdi
call   1070 <unansi@plt>
jmp    140e <main+0x29e>
mov    -0x18(%rbp),%rdi
call   1030 <poot@plt>
jmp    14b5 <main+0x345>
lea    -0x400(%rbp),%rdi
call   1090 <skipfx@plt>
mov    %rax,-0x18(%rbp)
cmp    $0x0,%rax
je     14a7 <main+0x337>
mov    -0x18(%rbp),%rdi
call   1040 <fndws@plt>
mov    %rax,-0x10(%rbp)
cmp    $0x0,%rax
je     14a7 <main+0x337>
mov    -0x10(%rbp),%rdi
call   1080 <fndnws@plt>
mov    %rax,-0x10(%rbp)
cmp    $0x0,%rax
je     14a7 <main+0x337>
mov    -0x10(%rbp),%rdi
call   1040 <fndws@plt>
mov    %rax,-0x10(%rbp)
cmp    $0x0,%rax
je     14a7 <main+0x337>
mov    -0x10(%rbp),%rdi
call   1080 <fndnws@plt>
mov    %rax,-0x10(%rbp)
cmp    $0x0,%rax
je     14a7 <main+0x337>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x28,%eax
jne    14a7 <main+0x337>
mov    -0x18(%rbp),%rdi
call   1070 <unansi@plt>
jmp    14b0 <main+0x340>
mov    -0x18(%rbp),%rdi
call   1030 <poot@plt>
jmp    14b5 <main+0x345>
jmp    1182 <main+0x12>
mov    -0x4(%rbp),%eax
add    $0x410,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x3f0,%rsp
mov    0x2e61(%rip),%r15
mov    (%r15),%edx
mov    %rsp,%rdi
mov    $0x3e8,%esi
call   1050 <fgets@plt>
test   %rax,%rax
je     1351 <main+0x1e1>
mov    %rsp,%r14
movabs $0x800001400,%r12
movabs $0x100000200,%r13
nopw   0x0(%rax,%rax,1)
movsbl (%rsp),%ecx
cmp    $0x2f,%ecx
ja     12a0 <main+0x130>
bt     %rcx,%r12
jb     12b0 <main+0x140>
bt     %rcx,%r13
jae    1236 <main+0xc6>
mov    %r14,%rdi
call   1090 <skipfx@plt>
mov    %rax,%rbx
test   %rax,%rax
je     1330 <main+0x1c0>
mov    %rbx,%rdi
call   1040 <fndws@plt>
test   %rax,%rax
je     1330 <main+0x1c0>
mov    %rax,%rdi
call   1080 <fndnws@plt>
test   %rax,%rax
je     1330 <main+0x1c0>
mov    (%rax),%cl
cmp    $0x2a,%cl
je     1308 <main+0x198>
cmp    $0x28,%cl
jne    1330 <main+0x1c0>
cmpb   $0x2a,0x1(%rax)
je     1314 <main+0x1a4>
jmp    1330 <main+0x1c0>
cmp    $0x2f,%rcx
jne    12a0 <main+0x130>
cmpb   $0x2a,0x1(%rax)
jne    12b0 <main+0x140>
add    $0x2,%rax
mov    %rax,%rdi
call   1060 <fndcmt@plt>
test   %eax,%eax
jne    12b0 <main+0x140>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
mov    %r14,%rdi
call   1030 <poot@plt>
mov    %r14,%rdi
call   1060 <fndcmt@plt>
test   %eax,%eax
jne    1338 <main+0x1c8>
mov    (%r15),%edx
mov    %r14,%rdi
mov    $0x3e8,%esi
call   1050 <fgets@plt>
test   %rax,%rax
jne    1260 <main+0xf0>
jmp    1338 <main+0x1c8>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
cmp    $0x7b,%ecx
je     12b0 <main+0x140>
cmp    $0x7d,%ecx
jne    12b5 <main+0x145>
nopw   0x0(%rax,%rax,1)
mov    %r14,%rdi
jmp    1333 <main+0x1c3>
mov    %r14,%rdi
call   1090 <skipfx@plt>
mov    %rax,%rbx
test   %rax,%rax
je     1330 <main+0x1c0>
mov    %rbx,%rdi
call   1040 <fndws@plt>
test   %rax,%rax
je     1330 <main+0x1c0>
mov    %rax,%rdi
call   1080 <fndnws@plt>
test   %rax,%rax
je     1330 <main+0x1c0>
mov    %rax,%rdi
call   1040 <fndws@plt>
test   %rax,%rax
je     1330 <main+0x1c0>
mov    %rax,%rdi
call   1080 <fndnws@plt>
test   %rax,%rax
je     1330 <main+0x1c0>
cmpb   $0x28,(%rax)
jne    1330 <main+0x1c0>
mov    %rbx,%rdi
call   1070 <unansi@plt>
jmp    1338 <main+0x1c8>
cmpb   $0x28,0x1(%rax)
jne    1330 <main+0x1c0>
cmpb   $0x2a,0x2(%rax)
jne    1330 <main+0x1c0>
mov    %rax,%rdi
call   1040 <fndws@plt>
test   %rax,%rax
je     1330 <main+0x1c0>
cmpb   $0x29,-0x1(%rax)
je     12ec <main+0x17c>
nopw   0x0(%rax,%rax,1)
mov    %rbx,%rdi
call   1030 <poot@plt>
mov    (%r15),%edx
mov    %r14,%rdi
mov    $0x3e8,%esi
call   1050 <fgets@plt>
test   %rax,%rax
jne    11c0 <main+0x50>
xor    %eax,%eax
add    $0x3f0,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
ret

LLVM IR (-O0):
@stdin = global i32 0
define i32 @main() {
%1 = alloca i32
%2 = alloca i8*
%3 = alloca i8*
%4 = alloca [1000 x i8]
%5 = alloca i32
store i32 0, i32* %1
br label %6
6: ; preds = %147, %0
%7 = getelementptr inbounds [1000 x i8], [1000 x i8]* %4, i64 0, i64 0
%8 = load i32, i32* @stdin
%9 = call i8* @fgets(i8* %7, i32 1000, i32 %8)
store i8* %9, i8** %2
%10 = icmp ne i8* %9, null
br i1 %10, label %11, label %148
11: ; preds = %6
%12 = getelementptr inbounds [1000 x i8], [1000 x i8]* %4, i64 0, i64 0
%13 = load i8, i8* %12
%14 = sext i8 %13 to i32
switch i32 %14, label %115 [
i32 47, label %15
i32 123, label %46
i32 125, label %46
i32 12, label %46
i32 10, label %46
i32 35, label %46
i32 9, label %49
i32 32, label %49
]
15: ; preds = %11
%16 = load i8*, i8** %2
%17 = getelementptr inbounds i8, i8* %16, i64 1
%18 = load i8, i8* %17
%19 = sext i8 %18 to i32
%20 = icmp ne i32 %19, 42
br i1 %20, label %26, label %21
21: ; preds = %15
%22 = load i8*, i8** %2
%23 = getelementptr inbounds i8, i8* %22, i64 2
%24 = call i32 @fndcmt(i8* %23)
%25 = icmp ne i32 %24, 0
br i1 %25, label %26, label %29
26: ; preds = %21, %15
%27 = getelementptr inbounds [1000 x i8], [1000 x i8]* %4, i64 0, i64 0
%28 = call i32 @poot(i8* %27)
br label %45
29: ; preds = %21
br label %30
30: ; preds = %42, %29
%31 = getelementptr inbounds [1000 x i8], [1000 x i8]* %4, i64 0, i64 0
%32 = call i32 @poot(i8* %31)
br label %33
33: ; preds = %30
%34 = getelementptr inbounds [1000 x i8], [1000 x i8]* %4, i64 0, i64 0
%35 = call i32 @fndcmt(i8* %34)
%36 = icmp ne i32 %35, 0
br i1 %36, label %42, label %37
37: ; preds = %33
%38 = getelementptr inbounds [1000 x i8], [1000 x i8]* %4, i64 0, i64 0
%39 = load i32, i32* @stdin
%40 = call i8* @fgets(i8* %38, i32 1000, i32 %39)
store i8* %40, i8** %2
%41 = icmp ne i8* %40, null
br label %42
42: ; preds = %37, %33
%43 = phi i1 [ false, %33 ], [ %41, %37 ]
br i1 %43, label %30, label %44
44: ; preds = %42
br label %45
45: ; preds = %44, %26
br label %147
46: ; preds = %11, %11, %11, %11, %11
%47 = getelementptr inbounds [1000 x i8], [1000 x i8]* %4, i64 0, i64 0
%48 = call i32 @poot(i8* %47)
br label %147
49: ; preds = %11, %11
%50 = getelementptr inbounds [1000 x i8], [1000 x i8]* %4, i64 0, i64 0
%51 = call i8* @skipfx(i8* %50)
store i8* %51, i8** %3
%52 = icmp ne i8* %51, null
br i1 %52, label %53, label %111
53: ; preds = %49
%54 = load i8*, i8** %3
%55 = call i8* @fndws(i8* %54)
store i8* %55, i8** %2
%56 = icmp ne i8* %55, null
br i1 %56, label %57, label %111
57: ; preds = %53
%58 = load i8*, i8** %2
%59 = call i8* @fndnws(i8* %58)
store i8* %59, i8** %2
%60 = icmp ne i8* %59, null
br i1 %60, label %61, label %111
61: ; preds = %57
%62 = load i8*, i8** %2
%63 = load i8, i8* %62
%64 = sext i8 %63 to i32
%65 = icmp eq i32 %64, 40
br i1 %65, label %66, label %72
66: ; preds = %61
%67 = load i8*, i8** %2
%68 = getelementptr inbounds i8, i8* %67, i64 1
%69 = load i8, i8* %68
%70 = sext i8 %69 to i32
%71 = icmp eq i32 %70, 42
br i1 %71, label %89, label %72
72: ; preds = %66, %61
%73 = load i8*, i8** %2
%74 = load i8, i8* %73
%75 = sext i8 %74 to i32
%76 = icmp eq i32 %75, 42
br i1 %76, label %77, label %111
77: ; preds = %72
%78 = load i8*, i8** %2
%79 = getelementptr inbounds i8, i8* %78, i64 1
%80 = load i8, i8* %79
%81 = sext i8 %80 to i32
%82 = icmp eq i32 %81, 40
br i1 %82, label %83, label %111
83: ; preds = %77
%84 = load i8*, i8** %2
%85 = getelementptr inbounds i8, i8* %84, i64 2
%86 = load i8, i8* %85
%87 = sext i8 %86 to i32
%88 = icmp eq i32 %87, 42
br i1 %88, label %89, label %111
89: ; preds = %83, %66
%90 = load i8*, i8** %2
%91 = call i8* @fndws(i8* %90)
store i8* %91, i8** %2
%92 = icmp ne i8* %91, null
br i1 %92, label %93, label %111
93: ; preds = %89
%94 = load i8*, i8** %2
%95 = getelementptr inbounds i8, i8* %94, i64 -1
%96 = load i8, i8* %95
%97 = sext i8 %96 to i32
%98 = icmp eq i32 %97, 41
br i1 %98, label %99, label %111
99: ; preds = %93
%100 = load i8*, i8** %2
%101 = call i8* @fndnws(i8* %100)
store i8* %101, i8** %2
%102 = icmp ne i8* %101, null
br i1 %102, label %103, label %111
103: ; preds = %99
%104 = load i8*, i8** %2
%105 = load i8, i8* %104
%106 = sext i8 %105 to i32
%107 = icmp eq i32 %106, 40
br i1 %107, label %108, label %111
108: ; preds = %103
%109 = load i8*, i8** %3
%110 = call i32 @unansi(i8* %109)
br label %114
111: ; preds = %103, %99, %93, %89, %83, %77, %72, %57, %53, %49
%112 = load i8*, i8** %3
%113 = call i32 @poot(i8* %112)
br label %114
114: ; preds = %111, %108
br label %147
115: ; preds = %11
%116 = getelementptr inbounds [1000 x i8], [1000 x i8]* %4, i64 0, i64 0
%117 = call i8* @skipfx(i8* %116)
store i8* %117, i8** %3
%118 = icmp ne i8* %117, null
br i1 %118, label %119, label %143
119: ; preds = %115
%120 = load i8*, i8** %3
%121 = call i8* @fndws(i8* %120)
store i8* %121, i8** %2
%122 = icmp ne i8* %121, null
br i1 %122, label %123, label %143
123: ; preds = %119
%124 = load i8*, i8** %2
%125 = call i8* @fndnws(i8* %124)
store i8* %125, i8** %2
%126 = icmp ne i8* %125, null
br i1 %126, label %127, label %143
127: ; preds = %123
%128 = load i8*, i8** %2
%129 = call i8* @fndws(i8* %128)
store i8* %129, i8** %2
%130 = icmp ne i8* %129, null
br i1 %130, label %131, label %143
131: ; preds = %127
%132 = load i8*, i8** %2
%133 = call i8* @fndnws(i8* %132)
store i8* %133, i8** %2
%134 = icmp ne i8* %133, null
br i1 %134, label %135, label %143
135: ; preds = %131
%136 = load i8*, i8** %2
%137 = load i8, i8* %136
%138 = sext i8 %137 to i32
%139 = icmp eq i32 %138, 40
br i1 %139, label %140, label %143
140: ; preds = %135
%141 = load i8*, i8** %3
%142 = call i32 @unansi(i8* %141)
br label %146
143: ; preds = %135, %131, %127, %123, %119, %115
%144 = load i8*, i8** %3
%145 = call i32 @poot(i8* %144)
br label %146
146: ; preds = %143, %140
br label %147
147: ; preds = %146, %114, %46, %45
br label %6
148: ; preds = %6
%149 = load i32, i32* %1
ret i32 %149
}

LLVM IR (-O2):
@stdin = global i32 0
define i32 @main() {
%1 = alloca [1000 x i8]
%2 = getelementptr inbounds [1000 x i8], [1000 x i8]* %1, i64 0, i64 0
%3 = load i32, i32* @stdin
%4 = call i8* @fgets(i8* %2, i32 1000, i32 %3)
%5 = icmp eq i8* %4, null
br i1 %5, label %96, label %6
6: ; preds = %0, %92
%7 = phi i8* [ %94, %92 ], [ %4, %0 ]
%8 = load i8, i8* %2
%9 = sext i8 %8 to i32
switch i32 %9, label %70 [
i32 47, label %10
i32 123, label %28
i32 125, label %28
i32 12, label %28
i32 10, label %28
i32 35, label %28
i32 9, label %30
i32 32, label %30
]
10: ; preds = %6
%11 = getelementptr inbounds i8, i8* %7, i64 1
%12 = load i8, i8* %11
%13 = icmp eq i8 %12, 42
br i1 %13, label %14, label %18
14: ; preds = %10
%15 = getelementptr inbounds i8, i8* %7, i64 2
%16 = call i32 @fndcmt(i8* %15)
%17 = icmp eq i32 %16, 0
br i1 %17, label %20, label %18
18: ; preds = %14, %10
%19 = call i32 @poot(i8* %2)
br label %92
20: ; preds = %14, %24
%21 = call i32 @poot(i8* %2)
%22 = call i32 @fndcmt(i8* %2)
%23 = icmp eq i32 %22, 0
br i1 %23, label %24, label %92
24: ; preds = %20
%25 = load i32, i32* @stdin
%26 = call i8* @fgets(i8* %2, i32 1000, i32 %25)
%27 = icmp eq i8* %26, null
br i1 %27, label %92, label %20
28: ; preds = %6, %6, %6, %6, %6
%29 = call i32 @poot(i8* %2)
br label %92
30: ; preds = %6, %6
%31 = call i8* @skipfx(i8* %2)
%32 = icmp eq i8* %31, null
br i1 %32, label %68, label %33
33: ; preds = %30
%34 = call i8* @fndws(i8* %31)
%35 = icmp eq i8* %34, null
br i1 %35, label %68, label %36
36: ; preds = %33
%37 = call i8* @fndnws(i8* %34)
%38 = icmp eq i8* %37, null
br i1 %38, label %68, label %39
39: ; preds = %36
%40 = load i8, i8* %37
switch i8 %40, label %68 [
i8 40, label %41
i8 42, label %45
]
41: ; preds = %39
%42 = getelementptr inbounds i8, i8* %37, i64 1
%43 = load i8, i8* %42
%44 = icmp eq i8 %43, 42
br i1 %44, label %53, label %68
45: ; preds = %39
%46 = getelementptr inbounds i8, i8* %37, i64 1
%47 = load i8, i8* %46
%48 = icmp eq i8 %47, 40
br i1 %48, label %49, label %68
49: ; preds = %45
%50 = getelementptr inbounds i8, i8* %37, i64 2
%51 = load i8, i8* %50
%52 = icmp eq i8 %51, 42
br i1 %52, label %53, label %68
53: ; preds = %49, %41
%54 = call i8* @fndws(i8* %37)
%55 = icmp eq i8* %54, null
br i1 %55, label %68, label %56
56: ; preds = %53
%57 = getelementptr inbounds i8, i8* %54, i64 -1
%58 = load i8, i8* %57
%59 = icmp eq i8 %58, 41
br i1 %59, label %60, label %68
60: ; preds = %56
%61 = call i8* @fndnws(i8* %54)
%62 = icmp eq i8* %61, null
br i1 %62, label %68, label %63
63: ; preds = %60
%64 = load i8, i8* %61
%65 = icmp eq i8 %64, 40
br i1 %65, label %66, label %68
66: ; preds = %63
%67 = call i32 @unansi(i8* %31)
br label %92
68: ; preds = %39, %41, %63, %60, %56, %53, %49, %45, %36, %33, %30
%69 = call i32 @poot(i8* %31)
br label %92
70: ; preds = %6
%71 = call i8* @skipfx(i8* %2)
%72 = icmp eq i8* %71, null
br i1 %72, label %90, label %73
73: ; preds = %70
%74 = call i8* @fndws(i8* %71)
%75 = icmp eq i8* %74, null
br i1 %75, label %90, label %76
76: ; preds = %73
%77 = call i8* @fndnws(i8* %74)
%78 = icmp eq i8* %77, null
br i1 %78, label %90, label %79
79: ; preds = %76
%80 = call i8* @fndws(i8* %77)
%81 = icmp eq i8* %80, null
br i1 %81, label %90, label %82
82: ; preds = %79
%83 = call i8* @fndnws(i8* %80)
%84 = icmp eq i8* %83, null
br i1 %84, label %90, label %85
85: ; preds = %82
%86 = load i8, i8* %83
%87 = icmp eq i8 %86, 40
br i1 %87, label %88, label %90
88: ; preds = %85
%89 = call i32 @unansi(i8* %71)
br label %92
90: ; preds = %85, %82, %79, %76, %73, %70
%91 = call i32 @poot(i8* %71)
br label %92
92: ; preds = %20, %24, %88, %90, %66, %68, %18, %28
%93 = load i32, i32* @stdin
%94 = call i8* @fgets(i8* %2, i32 1000, i32 %93)
%95 = icmp eq i8* %94, null
br i1 %95, label %96, label %6
96: ; preds = %92, %0
ret i32 0
}