#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 */
typedef int /*<<< orphan*/ uint8_t;

/* Variables and functions */
int ece391_close(int);
int /*<<< orphan*/ ece391_fdputs(int, int /*<<< orphan*/ *);
int ece391_read(int, int /*<<< orphan*/ *, int);
int ece391_write(int, int /*<<< orphan*/ *, int);
int err_unopened(void) {
  int fail = 0, i;
  uint8_t buf[32];
  for (i = 0; i < 8; i++) {
    if (-1 != ece391_close(i)) {
      ece391_fdputs(1, (uint8_t *)"close unopened or invalid fd fail\n");
      fail = 2;
    }
  }
  for (i = 2; i < 8; i++) {
    if (-1 != ece391_read(i, buf, 31)) {
      ece391_fdputs(1, (uint8_t *)"read from unopened fd fail\n");
      fail = 2;
    }
  }
  for (i = 2; i < 8; i++) {
    if (-1 != ece391_write(i, buf, 31)) {
      ece391_fdputs(1, (uint8_t *)"write to unopened fd fail\n");
      fail = 2;
    }
  }
  if (fail) {
    ece391_fdputs(1, (uint8_t *)"err_unopened: FAIL\n");
  } else {
    ece391_fdputs(1, (uint8_t *)"err_unopened: PASS\n");
  }
  return fail;
}


x86 assembly (clang, -O0):
<err_unopened>:
push   %rbp
mov    %rsp,%rbp
sub    $0x90,%rsp
movl   $0x0,-0x4(%rbp)
movl   $0x0,-0x8(%rbp)
cmpl   $0x8,-0x8(%rbp)
jge    11a5 <err_unopened+0x65>
mov    -0x8(%rbp),%edi
call   1030 <ece391_close@plt>
mov    %eax,%ecx
mov    $0xffffffff,%eax
cmp    %ecx,%eax
je     1192 <err_unopened+0x52>
mov    $0x1,%edi
lea    0xe7a(%rip),%rsi
call   1040 <ece391_fdputs@plt>
movl   $0x2,-0x4(%rbp)
jmp    1197 <err_unopened+0x57>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1159 <err_unopened+0x19>
movl   $0x2,-0x8(%rbp)
cmpl   $0x8,-0x8(%rbp)
jge    1204 <err_unopened+0xc4>
mov    -0x8(%rbp),%edi
lea    -0x90(%rbp),%rsi
mov    $0x1f,%edx
call   1050 <ece391_read@plt>
mov    %eax,%ecx
mov    $0xffffffff,%eax
cmp    %ecx,%eax
je     11f1 <err_unopened+0xb1>
mov    $0x1,%edi
lea    0xe3e(%rip),%rsi
call   1040 <ece391_fdputs@plt>
movl   $0x2,-0x4(%rbp)
jmp    11f6 <err_unopened+0xb6>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    11ac <err_unopened+0x6c>
movl   $0x2,-0x8(%rbp)
cmpl   $0x8,-0x8(%rbp)
jge    1263 <err_unopened+0x123>
mov    -0x8(%rbp),%edi
lea    -0x90(%rbp),%rsi
mov    $0x1f,%edx
call   1060 <ece391_write@plt>
mov    %eax,%ecx
mov    $0xffffffff,%eax
cmp    %ecx,%eax
je     1250 <err_unopened+0x110>
mov    $0x1,%edi
lea    0xdfb(%rip),%rsi
call   1040 <ece391_fdputs@plt>
movl   $0x2,-0x4(%rbp)
jmp    1255 <err_unopened+0x115>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    120b <err_unopened+0xcb>
cmpl   $0x0,-0x4(%rbp)
je     1283 <err_unopened+0x143>
mov    $0x1,%edi
lea    0xde1(%rip),%rsi
call   1040 <ece391_fdputs@plt>
jmp    1294 <err_unopened+0x154>
mov    $0x1,%edi
lea    0xddf(%rip),%rsi
call   1040 <ece391_fdputs@plt>
mov    -0x4(%rbp),%eax
add    $0x90,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<err_unopened>:
push   %rbx
sub    $0x80,%rsp
xor    %ebx,%ebx
xor    %edi,%edi
call   1030 <ece391_close@plt>
cmp    $0xffffffff,%eax
je     116c <err_unopened+0x2c>
lea    0xea3(%rip),%rsi
mov    $0x1,%edi
call   1040 <ece391_fdputs@plt>
mov    $0x2,%ebx
mov    $0x1,%edi
call   1030 <ece391_close@plt>
cmp    $0xffffffff,%eax
je     1191 <err_unopened+0x51>
lea    0xe7e(%rip),%rsi
mov    $0x1,%edi
call   1040 <ece391_fdputs@plt>
mov    $0x2,%ebx
mov    $0x2,%edi
call   1030 <ece391_close@plt>
cmp    $0xffffffff,%eax
je     11b6 <err_unopened+0x76>
lea    0xe59(%rip),%rsi
mov    $0x1,%edi
call   1040 <ece391_fdputs@plt>
mov    $0x2,%ebx
mov    $0x3,%edi
call   1030 <ece391_close@plt>
cmp    $0xffffffff,%eax
je     11db <err_unopened+0x9b>
lea    0xe34(%rip),%rsi
mov    $0x1,%edi
call   1040 <ece391_fdputs@plt>
mov    $0x2,%ebx
mov    $0x4,%edi
call   1030 <ece391_close@plt>
cmp    $0xffffffff,%eax
je     1200 <err_unopened+0xc0>
lea    0xe0f(%rip),%rsi
mov    $0x1,%edi
call   1040 <ece391_fdputs@plt>
mov    $0x2,%ebx
mov    $0x5,%edi
call   1030 <ece391_close@plt>
cmp    $0xffffffff,%eax
je     1225 <err_unopened+0xe5>
lea    0xdea(%rip),%rsi
mov    $0x1,%edi
call   1040 <ece391_fdputs@plt>
mov    $0x2,%ebx
mov    $0x6,%edi
call   1030 <ece391_close@plt>
cmp    $0xffffffff,%eax
je     124a <err_unopened+0x10a>
lea    0xdc5(%rip),%rsi
mov    $0x1,%edi
call   1040 <ece391_fdputs@plt>
mov    $0x2,%ebx
mov    $0x7,%edi
call   1030 <ece391_close@plt>
cmp    $0xffffffff,%eax
je     126f <err_unopened+0x12f>
lea    0xda0(%rip),%rsi
mov    $0x1,%edi
call   1040 <ece391_fdputs@plt>
mov    $0x2,%ebx
mov    %rsp,%rsi
mov    $0x2,%edi
mov    $0x1f,%edx
call   1050 <ece391_read@plt>
cmp    $0xffffffff,%eax
je     129c <err_unopened+0x15c>
lea    0xd96(%rip),%rsi
mov    $0x1,%edi
call   1040 <ece391_fdputs@plt>
mov    $0x2,%ebx
mov    %rsp,%rsi
mov    $0x3,%edi
mov    $0x1f,%edx
call   1050 <ece391_read@plt>
cmp    $0xffffffff,%eax
je     12c9 <err_unopened+0x189>
lea    0xd69(%rip),%rsi
mov    $0x1,%edi
call   1040 <ece391_fdputs@plt>
mov    $0x2,%ebx
mov    %rsp,%rsi
mov    $0x4,%edi
mov    $0x1f,%edx
call   1050 <ece391_read@plt>
cmp    $0xffffffff,%eax
je     12f6 <err_unopened+0x1b6>
lea    0xd3c(%rip),%rsi
mov    $0x1,%edi
call   1040 <ece391_fdputs@plt>
mov    $0x2,%ebx
mov    %rsp,%rsi
mov    $0x5,%edi
mov    $0x1f,%edx
call   1050 <ece391_read@plt>
cmp    $0xffffffff,%eax
je     1323 <err_unopened+0x1e3>
lea    0xd0f(%rip),%rsi
mov    $0x1,%edi
call   1040 <ece391_fdputs@plt>
mov    $0x2,%ebx
mov    %rsp,%rsi
mov    $0x6,%edi
mov    $0x1f,%edx
call   1050 <ece391_read@plt>
cmp    $0xffffffff,%eax
je     1350 <err_unopened+0x210>
lea    0xce2(%rip),%rsi
mov    $0x1,%edi
call   1040 <ece391_fdputs@plt>
mov    $0x2,%ebx
mov    %rsp,%rsi
mov    $0x7,%edi
mov    $0x1f,%edx
call   1050 <ece391_read@plt>
cmp    $0xffffffff,%eax
je     137d <err_unopened+0x23d>
lea    0xcb5(%rip),%rsi
mov    $0x1,%edi
call   1040 <ece391_fdputs@plt>
mov    $0x2,%ebx
mov    %rsp,%rsi
mov    $0x2,%edi
mov    $0x1f,%edx
call   1060 <ece391_write@plt>
cmp    $0xffffffff,%eax
je     13aa <err_unopened+0x26a>
lea    0xca4(%rip),%rsi
mov    $0x1,%edi
call   1040 <ece391_fdputs@plt>
mov    $0x2,%ebx
mov    %rsp,%rsi
mov    $0x3,%edi
mov    $0x1f,%edx
call   1060 <ece391_write@plt>
cmp    $0xffffffff,%eax
je     13d7 <err_unopened+0x297>
lea    0xc77(%rip),%rsi
mov    $0x1,%edi
call   1040 <ece391_fdputs@plt>
mov    $0x2,%ebx
mov    %rsp,%rsi
mov    $0x4,%edi
mov    $0x1f,%edx
call   1060 <ece391_write@plt>
cmp    $0xffffffff,%eax
je     1404 <err_unopened+0x2c4>
lea    0xc4a(%rip),%rsi
mov    $0x1,%edi
call   1040 <ece391_fdputs@plt>
mov    $0x2,%ebx
mov    %rsp,%rsi
mov    $0x5,%edi
mov    $0x1f,%edx
call   1060 <ece391_write@plt>
cmp    $0xffffffff,%eax
je     1431 <err_unopened+0x2f1>
lea    0xc1d(%rip),%rsi
mov    $0x1,%edi
call   1040 <ece391_fdputs@plt>
mov    $0x2,%ebx
mov    %rsp,%rsi
mov    $0x6,%edi
mov    $0x1f,%edx
call   1060 <ece391_write@plt>
cmp    $0xffffffff,%eax
je     145e <err_unopened+0x31e>
lea    0xbf0(%rip),%rsi
mov    $0x1,%edi
call   1040 <ece391_fdputs@plt>
mov    $0x2,%ebx
mov    %rsp,%rsi
mov    $0x7,%edi
mov    $0x1f,%edx
call   1060 <ece391_write@plt>
cmp    $0xffffffff,%eax
je     1494 <err_unopened+0x354>
lea    0xbc3(%rip),%rsi
mov    $0x1,%edi
call   1040 <ece391_fdputs@plt>
mov    $0x2,%ebx
lea    0xbc8(%rip),%rsi
jmp    14a8 <err_unopened+0x368>
test   %ebx,%ebx
lea    0xbd1(%rip),%rax
lea    0xbb6(%rip),%rsi
cmove  %rax,%rsi
mov    $0x1,%edi
call   1040 <ece391_fdputs@plt>
mov    %ebx,%eax
add    $0x80,%rsp
pop    %rbx
ret

LLVM IR (-O0):
@.str = [35 x i8] c"close unopened or invalid fd fail\0A\00"
@.str.1 = [28 x i8] c"read from unopened fd fail\0A\00"
@.str.2 = [27 x i8] c"write to unopened fd fail\0A\00"
@.str.3 = [20 x i8] c"err_unopened: FAIL\0A\00"
@.str.4 = [20 x i8] c"err_unopened: PASS\0A\00"
define i32 @err_unopened() {
%1 = alloca i32
%2 = alloca i32
%3 = alloca [32 x i32]
store i32 0, i32* %1
store i32 0, i32* %2
br label %4
4: ; preds = %14, %0
%5 = load i32, i32* %2
%6 = icmp slt i32 %5, 8
br i1 %6, label %7, label %17
7: ; preds = %4
%8 = load i32, i32* %2
%9 = call i32 @ece391_close(i32 %8)
%10 = icmp ne i32 -1, %9
br i1 %10, label %11, label %13
11: ; preds = %7
%12 = call i32 @ece391_fdputs(i32 1, i32* bitcast ([35 x i8]* @.str to i32*))
store i32 2, i32* %1
br label %13
13: ; preds = %11, %7
br label %14
14: ; preds = %13
%15 = load i32, i32* %2
%16 = add nsw i32 %15, 1
store i32 %16, i32* %2
br label %4
17: ; preds = %4
store i32 2, i32* %2
br label %18
18: ; preds = %29, %17
%19 = load i32, i32* %2
%20 = icmp slt i32 %19, 8
br i1 %20, label %21, label %32
21: ; preds = %18
%22 = load i32, i32* %2
%23 = getelementptr inbounds [32 x i32], [32 x i32]* %3, i64 0, i64 0
%24 = call i32 @ece391_read(i32 %22, i32* %23, i32 31)
%25 = icmp ne i32 -1, %24
br i1 %25, label %26, label %28
26: ; preds = %21
%27 = call i32 @ece391_fdputs(i32 1, i32* bitcast ([28 x i8]* @.str.1 to i32*))
store i32 2, i32* %1
br label %28
28: ; preds = %26, %21
br label %29
29: ; preds = %28
%30 = load i32, i32* %2
%31 = add nsw i32 %30, 1
store i32 %31, i32* %2
br label %18
32: ; preds = %18
store i32 2, i32* %2
br label %33
33: ; preds = %44, %32
%34 = load i32, i32* %2
%35 = icmp slt i32 %34, 8
br i1 %35, label %36, label %47
36: ; preds = %33
%37 = load i32, i32* %2
%38 = getelementptr inbounds [32 x i32], [32 x i32]* %3, i64 0, i64 0
%39 = call i32 @ece391_write(i32 %37, i32* %38, i32 31)
%40 = icmp ne i32 -1, %39
br i1 %40, label %41, label %43
41: ; preds = %36
%42 = call i32 @ece391_fdputs(i32 1, i32* bitcast ([27 x i8]* @.str.2 to i32*))
store i32 2, i32* %1
br label %43
43: ; preds = %41, %36
br label %44
44: ; preds = %43
%45 = load i32, i32* %2
%46 = add nsw i32 %45, 1
store i32 %46, i32* %2
br label %33
47: ; preds = %33
%48 = load i32, i32* %1
%49 = icmp ne i32 %48, 0
br i1 %49, label %50, label %52
50: ; preds = %47
%51 = call i32 @ece391_fdputs(i32 1, i32* bitcast ([20 x i8]* @.str.3 to i32*))
br label %54
52: ; preds = %47
%53 = call i32 @ece391_fdputs(i32 1, i32* bitcast ([20 x i8]* @.str.4 to i32*))
br label %54
54: ; preds = %52, %50
%55 = load i32, i32* %1
ret i32 %55
}

LLVM IR (-O2):
@.str = [35 x i8] c"close unopened or invalid fd fail\0A\00"
@.str.1 = [28 x i8] c"read from unopened fd fail\0A\00"
@.str.2 = [27 x i8] c"write to unopened fd fail\0A\00"
@.str.3 = [20 x i8] c"err_unopened: FAIL\0A\00"
@.str.4 = [20 x i8] c"err_unopened: PASS\0A\00"
define i32 @err_unopened() {
%1 = alloca [32 x i32]
%2 = bitcast [32 x i32]* %1 to i8*
%3 = tail call i32 @ece391_close(i32 0)
%4 = icmp eq i32 %3, -1
br i1 %4, label %7, label %5
5: ; preds = %0
%6 = tail call i32 @ece391_fdputs(i32 1, i32* bitcast ([35 x i8]* @.str to i32*))
br label %7
7: ; preds = %0, %5
%8 = phi i32 [ 2, %5 ], [ 0, %0 ]
%9 = tail call i32 @ece391_close(i32 1)
%10 = icmp eq i32 %9, -1
br i1 %10, label %13, label %11
11: ; preds = %7
%12 = tail call i32 @ece391_fdputs(i32 1, i32* bitcast ([35 x i8]* @.str to i32*))
br label %13
13: ; preds = %11, %7
%14 = phi i32 [ 2, %11 ], [ %8, %7 ]
%15 = tail call i32 @ece391_close(i32 2)
%16 = icmp eq i32 %15, -1
br i1 %16, label %19, label %17
17: ; preds = %13
%18 = tail call i32 @ece391_fdputs(i32 1, i32* bitcast ([35 x i8]* @.str to i32*))
br label %19
19: ; preds = %17, %13
%20 = phi i32 [ 2, %17 ], [ %14, %13 ]
%21 = tail call i32 @ece391_close(i32 3)
%22 = icmp eq i32 %21, -1
br i1 %22, label %25, label %23
23: ; preds = %19
%24 = tail call i32 @ece391_fdputs(i32 1, i32* bitcast ([35 x i8]* @.str to i32*))
br label %25
25: ; preds = %23, %19
%26 = phi i32 [ 2, %23 ], [ %20, %19 ]
%27 = tail call i32 @ece391_close(i32 4)
%28 = icmp eq i32 %27, -1
br i1 %28, label %31, label %29
29: ; preds = %25
%30 = tail call i32 @ece391_fdputs(i32 1, i32* bitcast ([35 x i8]* @.str to i32*))
br label %31
31: ; preds = %29, %25
%32 = phi i32 [ 2, %29 ], [ %26, %25 ]
%33 = tail call i32 @ece391_close(i32 5)
%34 = icmp eq i32 %33, -1
br i1 %34, label %37, label %35
35: ; preds = %31
%36 = tail call i32 @ece391_fdputs(i32 1, i32* bitcast ([35 x i8]* @.str to i32*))
br label %37
37: ; preds = %35, %31
%38 = phi i32 [ 2, %35 ], [ %32, %31 ]
%39 = tail call i32 @ece391_close(i32 6)
%40 = icmp eq i32 %39, -1
br i1 %40, label %43, label %41
41: ; preds = %37
%42 = tail call i32 @ece391_fdputs(i32 1, i32* bitcast ([35 x i8]* @.str to i32*))
br label %43
43: ; preds = %41, %37
%44 = phi i32 [ 2, %41 ], [ %38, %37 ]
%45 = tail call i32 @ece391_close(i32 7)
%46 = icmp eq i32 %45, -1
br i1 %46, label %49, label %47
47: ; preds = %43
%48 = tail call i32 @ece391_fdputs(i32 1, i32* bitcast ([35 x i8]* @.str to i32*))
br label %49
49: ; preds = %47, %43
%50 = phi i32 [ 2, %47 ], [ %44, %43 ]
%51 = getelementptr inbounds [32 x i32], [32 x i32]* %1, i64 0, i64 0
%52 = call i32 @ece391_read(i32 2, i32* %51, i32 31)
%53 = icmp eq i32 %52, -1
br i1 %53, label %56, label %54
54: ; preds = %49
%55 = call i32 @ece391_fdputs(i32 1, i32* bitcast ([28 x i8]* @.str.1 to i32*))
br label %56
56: ; preds = %49, %54
%57 = phi i32 [ 2, %54 ], [ %50, %49 ]
%58 = call i32 @ece391_read(i32 3, i32* %51, i32 31)
%59 = icmp eq i32 %58, -1
br i1 %59, label %62, label %60
60: ; preds = %56
%61 = call i32 @ece391_fdputs(i32 1, i32* bitcast ([28 x i8]* @.str.1 to i32*))
br label %62
62: ; preds = %60, %56
%63 = phi i32 [ 2, %60 ], [ %57, %56 ]
%64 = call i32 @ece391_read(i32 4, i32* %51, i32 31)
%65 = icmp eq i32 %64, -1
br i1 %65, label %68, label %66
66: ; preds = %62
%67 = call i32 @ece391_fdputs(i32 1, i32* bitcast ([28 x i8]* @.str.1 to i32*))
br label %68
68: ; preds = %66, %62
%69 = phi i32 [ 2, %66 ], [ %63, %62 ]
%70 = call i32 @ece391_read(i32 5, i32* %51, i32 31)
%71 = icmp eq i32 %70, -1
br i1 %71, label %74, label %72
72: ; preds = %68
%73 = call i32 @ece391_fdputs(i32 1, i32* bitcast ([28 x i8]* @.str.1 to i32*))
br label %74
74: ; preds = %72, %68
%75 = phi i32 [ 2, %72 ], [ %69, %68 ]
%76 = call i32 @ece391_read(i32 6, i32* %51, i32 31)
%77 = icmp eq i32 %76, -1
br i1 %77, label %80, label %78
78: ; preds = %74
%79 = call i32 @ece391_fdputs(i32 1, i32* bitcast ([28 x i8]* @.str.1 to i32*))
br label %80
80: ; preds = %78, %74
%81 = phi i32 [ 2, %78 ], [ %75, %74 ]
%82 = call i32 @ece391_read(i32 7, i32* %51, i32 31)
%83 = icmp eq i32 %82, -1
br i1 %83, label %86, label %84
84: ; preds = %80
%85 = call i32 @ece391_fdputs(i32 1, i32* bitcast ([28 x i8]* @.str.1 to i32*))
br label %86
86: ; preds = %84, %80
%87 = phi i32 [ 2, %84 ], [ %81, %80 ]
%88 = call i32 @ece391_write(i32 2, i32* %51, i32 31)
%89 = icmp eq i32 %88, -1
br i1 %89, label %92, label %90
90: ; preds = %86
%91 = call i32 @ece391_fdputs(i32 1, i32* bitcast ([27 x i8]* @.str.2 to i32*))
br label %92
92: ; preds = %86, %90
%93 = phi i32 [ 2, %90 ], [ %87, %86 ]
%94 = call i32 @ece391_write(i32 3, i32* %51, i32 31)
%95 = icmp eq i32 %94, -1
br i1 %95, label %98, label %96
96: ; preds = %92
%97 = call i32 @ece391_fdputs(i32 1, i32* bitcast ([27 x i8]* @.str.2 to i32*))
br label %98
98: ; preds = %96, %92
%99 = phi i32 [ 2, %96 ], [ %93, %92 ]
%100 = call i32 @ece391_write(i32 4, i32* %51, i32 31)
%101 = icmp eq i32 %100, -1
br i1 %101, label %104, label %102
102: ; preds = %98
%103 = call i32 @ece391_fdputs(i32 1, i32* bitcast ([27 x i8]* @.str.2 to i32*))
br label %104
104: ; preds = %102, %98
%105 = phi i32 [ 2, %102 ], [ %99, %98 ]
%106 = call i32 @ece391_write(i32 5, i32* %51, i32 31)
%107 = icmp eq i32 %106, -1
br i1 %107, label %110, label %108
108: ; preds = %104
%109 = call i32 @ece391_fdputs(i32 1, i32* bitcast ([27 x i8]* @.str.2 to i32*))
br label %110
110: ; preds = %108, %104
%111 = phi i32 [ 2, %108 ], [ %105, %104 ]
%112 = call i32 @ece391_write(i32 6, i32* %51, i32 31)
%113 = icmp eq i32 %112, -1
br i1 %113, label %116, label %114
114: ; preds = %110
%115 = call i32 @ece391_fdputs(i32 1, i32* bitcast ([27 x i8]* @.str.2 to i32*))
br label %116
116: ; preds = %114, %110
%117 = phi i32 [ 2, %114 ], [ %111, %110 ]
%118 = call i32 @ece391_write(i32 7, i32* %51, i32 31)
%119 = icmp eq i32 %118, -1
br i1 %119, label %122, label %120
120: ; preds = %116
%121 = call i32 @ece391_fdputs(i32 1, i32* bitcast ([27 x i8]* @.str.2 to i32*))
br label %125
122: ; preds = %116
%123 = icmp eq i32 %117, 0
%124 = select i1 %123, i32* bitcast ([20 x i8]* @.str.4 to i32*), i32* bitcast ([20 x i8]* @.str.3 to i32*)
br label %125
125: ; preds = %122, %120
%126 = phi i32* [ bitcast ([20 x i8]* @.str.3 to i32*), %120 ], [ %124, %122 ]
%127 = phi i32 [ 2, %120 ], [ %117, %122 ]
%128 = call i32 @ece391_fdputs(i32 1, i32* %126)
ret i32 %127
}