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

/* Variables and functions */
#define S_IFBLK 134
#define S_IFCHR 133
#define S_IFDIR 132
#define S_IFIFO 131
#define S_IFLNK 130
int const S_IFMT;
#define S_IFREG 129
#define S_IFSOCK 128
int const S_IRGRP;
int const S_IROTH;
int const S_IRUSR;
int const S_ISGID;
int const S_ISUID;
int const S_ISVTX;
int const S_IWGRP;
int const S_IWOTH;
int const S_IWUSR;
int const S_IXGRP;
int const S_IXOTH;
int const S_IXUSR;
int /*<<< orphan*/ fputs(char *, int /*<<< orphan*/ *);
int /*<<< orphan*/ putc(char, int /*<<< orphan*/ *);
void fmt_strmode(FILE *out, const mode_t mode) {
  switch (mode & S_IFMT) {
  case S_IFREG:
    fputs("\033["
          "90m"
          ".",
          out);
    break;
  case S_IFDIR:
    fputs("\033["
          "92m"
          "d",
          out);
    break;
  case S_IFCHR:
    fputs("\033["
          "97m"
          "c",
          out);
    break;
  case S_IFBLK:
    fputs("\033["
          "97m"
          "b",
          out);
    break;
  case S_IFIFO:
    fputs("\033["
          "97m"
          "p",
          out);
    break;
  case S_IFLNK:
    fputs("\033["
          "93m"
          "l",
          out);
    break;
  case S_IFSOCK:
    fputs("\033["
          "38;5;161m"
          "s",
          out);
    break;
  default:
    fputs("\033["
          "0m"
          "?",
          out);
    break;
  }
  fputs(mode & S_IRUSR ? "\033["
                         "34m"
                         "r"
                       : "\033["
                         "90m"
                         "-",
        out);
  fputs(mode & S_IWUSR ? "\033["
                         "31m"
                         "w"
                       : "\033["
                         "90m"
                         "-",
        out);
  fputs(mode & S_ISUID   ? mode & S_IXUSR ? "\033["
                                            "38;5;161m"
                                            "s"
                                          : "\033["
                                            "38;5;220m"
                                            "S"
        : mode & S_IXUSR ? "\033["
                           "35m"
                           "x"
                         : "\033["
                           "90m"
                           "-",
        out);
  fputs(mode & S_IRGRP ? "\033["
                         "34m"
                         "r"
                       : "\033["
                         "90m"
                         "-",
        out);
  fputs(mode & S_IWGRP ? "\033["
                         "31m"
                         "w"
                       : "\033["
                         "90m"
                         "-",
        out);
  fputs(mode & S_ISGID   ? mode & S_IXGRP ? "\033["
                                            "38;5;161m"
                                            "s"
                                          : "\033["
                                            "38;5;220m"
                                            "S"
        : mode & S_IXGRP ? "\033["
                           "35m"
                           "x"
                         : "\033["
                           "90m"
                           "-",
        out);
  fputs(mode & S_IROTH ? "\033["
                         "34m"
                         "r"
                       : "\033["
                         "90m"
                         "-",
        out);
  fputs(mode & S_IWOTH ? "\033["
                         "31m"
                         "w"
                       : "\033["
                         "90m"
                         "-",
        out);
  fputs(mode & S_ISVTX   ? mode & S_IXOTH ? "\033["
                                            "38;5;220m"
                                            "t"
                                          : "\033["
                                            "38;5;220m"
                                            "T"
        : mode & S_IXOTH ? "\033["
                           "35m"
                           "x"
                         : "\033["
                           "90m"
                           "-",
        out);
  putc(' ', out);
}


x86 assembly (clang, -O0):
<fmt_strmode>:
push   %rbp
mov    %rsp,%rbp
sub    $0x30,%rsp
mov    %rdi,-0x8(%rbp)
mov    %esi,-0xc(%rbp)
mov    -0xc(%rbp),%eax
mov    0x2e6f(%rip),%rcx
mov    (%rcx),%ecx
and    %ecx,%eax
add    $0xffffff80,%eax
mov    %eax,%ecx
mov    %rcx,-0x18(%rbp)
sub    $0x6,%eax
ja     11f6 <fmt_strmode+0xd6>
mov    -0x18(%rbp),%rax
lea    0xea6(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x8(%rbp),%rsi
lea    0xee2(%rip),%rdi
call   1030 <fputs@plt>
jmp    1206 <fmt_strmode+0xe6>
mov    -0x8(%rbp),%rsi
lea    0xed4(%rip),%rdi
call   1030 <fputs@plt>
jmp    1206 <fmt_strmode+0xe6>
mov    -0x8(%rbp),%rsi
lea    0xec6(%rip),%rdi
call   1030 <fputs@plt>
jmp    1206 <fmt_strmode+0xe6>
mov    -0x8(%rbp),%rsi
lea    0xeb8(%rip),%rdi
call   1030 <fputs@plt>
jmp    1206 <fmt_strmode+0xe6>
mov    -0x8(%rbp),%rsi
lea    0xeaa(%rip),%rdi
call   1030 <fputs@plt>
jmp    1206 <fmt_strmode+0xe6>
mov    -0x8(%rbp),%rsi
lea    0xe9c(%rip),%rdi
call   1030 <fputs@plt>
jmp    1206 <fmt_strmode+0xe6>
mov    -0x8(%rbp),%rsi
lea    0xe8e(%rip),%rdi
call   1030 <fputs@plt>
jmp    1206 <fmt_strmode+0xe6>
mov    -0x8(%rbp),%rsi
lea    0xe86(%rip),%rdi
call   1030 <fputs@plt>
mov    -0xc(%rbp),%ecx
mov    0x2d78(%rip),%rax
and    (%rax),%ecx
lea    0xe7b(%rip),%rdi
lea    0xe6d(%rip),%rax
cmp    $0x0,%ecx
cmovne %rax,%rdi
mov    -0x8(%rbp),%rsi
call   1030 <fputs@plt>
mov    -0xc(%rbp),%ecx
mov    0x2d86(%rip),%rax
and    (%rax),%ecx
lea    0xe51(%rip),%rdi
lea    0xe51(%rip),%rax
cmp    $0x0,%ecx
cmovne %rax,%rdi
mov    -0x8(%rbp),%rsi
call   1030 <fputs@plt>
mov    -0xc(%rbp),%eax
mov    0x2d6c(%rip),%rcx
and    (%rcx),%eax
cmp    $0x0,%eax
je     1299 <fmt_strmode+0x179>
mov    -0xc(%rbp),%edx
mov    0x2d5f(%rip),%rax
and    (%rax),%edx
lea    0xe20(%rip),%rax
lea    0xdf1(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x20(%rbp)
jmp    12be <fmt_strmode+0x19e>
mov    -0xc(%rbp),%edx
mov    0x2d35(%rip),%rax
and    (%rax),%edx
lea    0xde8(%rip),%rax
lea    0xdfc(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rdi
mov    -0x8(%rbp),%rsi
call   1030 <fputs@plt>
mov    -0xc(%rbp),%ecx
mov    0x2cc3(%rip),%rax
and    (%rax),%ecx
lea    0xdb6(%rip),%rdi
lea    0xda8(%rip),%rax
cmp    $0x0,%ecx
cmovne %rax,%rdi
mov    -0x8(%rbp),%rsi
call   1030 <fputs@plt>
mov    -0xc(%rbp),%ecx
mov    0x2cc9(%rip),%rax
and    (%rax),%ecx
lea    0xd8c(%rip),%rdi
lea    0xd8c(%rip),%rax
cmp    $0x0,%ecx
cmovne %rax,%rdi
mov    -0x8(%rbp),%rsi
call   1030 <fputs@plt>
mov    -0xc(%rbp),%eax
mov    0x2c77(%rip),%rcx
and    (%rcx),%eax
cmp    $0x0,%eax
je     135e <fmt_strmode+0x23e>
mov    -0xc(%rbp),%edx
mov    0x2c7a(%rip),%rax
and    (%rax),%edx
lea    0xd5b(%rip),%rax
lea    0xd2c(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x28(%rbp)
jmp    1383 <fmt_strmode+0x263>
mov    -0xc(%rbp),%edx
mov    0x2c50(%rip),%rax
and    (%rax),%edx
lea    0xd23(%rip),%rax
lea    0xd37(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x28(%rbp),%rdi
mov    -0x8(%rbp),%rsi
call   1030 <fputs@plt>
mov    -0xc(%rbp),%ecx
mov    0x2bf6(%rip),%rax
and    (%rax),%ecx
lea    0xcf1(%rip),%rdi
lea    0xce3(%rip),%rax
cmp    $0x0,%ecx
cmovne %rax,%rdi
mov    -0x8(%rbp),%rsi
call   1030 <fputs@plt>
mov    -0xc(%rbp),%ecx
mov    0x2bb4(%rip),%rax
and    (%rax),%ecx
lea    0xcc7(%rip),%rdi
lea    0xcc7(%rip),%rax
cmp    $0x0,%ecx
cmovne %rax,%rdi
mov    -0x8(%rbp),%rsi
call   1030 <fputs@plt>
mov    -0xc(%rbp),%eax
mov    0x2bfa(%rip),%rcx
and    (%rcx),%eax
cmp    $0x0,%eax
je     1423 <fmt_strmode+0x303>
mov    -0xc(%rbp),%edx
mov    0x2bdd(%rip),%rax
and    (%rax),%edx
lea    0xcb7(%rip),%rax
lea    0xca3(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x30(%rbp)
jmp    1448 <fmt_strmode+0x328>
mov    -0xc(%rbp),%edx
mov    0x2bb3(%rip),%rax
and    (%rax),%edx
lea    0xc5e(%rip),%rax
lea    0xc72(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x30(%rbp),%rdi
mov    -0x8(%rbp),%rsi
call   1030 <fputs@plt>
mov    -0x8(%rbp),%rsi
mov    $0x20,%edi
call   1040 <putc@plt>
add    $0x30,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<fmt_strmode>:
push   %r14
push   %rbx
push   %rax
mov    %rdi,%rbx
lea    0xf06(%rip),%rdi
mov    $0x5,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1040 <fwrite@plt>
lea    0xef3(%rip),%r14
mov    $0x6,%esi
mov    $0x1,%edx
mov    %r14,%rdi
mov    %rbx,%rcx
call   1040 <fwrite@plt>
mov    $0x6,%esi
mov    $0x1,%edx
mov    %r14,%rdi
mov    %rbx,%rcx
call   1040 <fwrite@plt>
mov    $0x6,%esi
mov    $0x1,%edx
mov    %r14,%rdi
mov    %rbx,%rcx
call   1040 <fwrite@plt>
mov    $0x6,%esi
mov    $0x1,%edx
mov    %r14,%rdi
mov    %rbx,%rcx
call   1040 <fwrite@plt>
mov    $0x6,%esi
mov    $0x1,%edx
mov    %r14,%rdi
mov    %rbx,%rcx
call   1040 <fwrite@plt>
mov    $0x6,%esi
mov    $0x1,%edx
mov    %r14,%rdi
mov    %rbx,%rcx
call   1040 <fwrite@plt>
mov    $0x6,%esi
mov    $0x1,%edx
mov    %r14,%rdi
mov    %rbx,%rcx
call   1040 <fwrite@plt>
mov    $0x6,%esi
mov    $0x1,%edx
mov    %r14,%rdi
mov    %rbx,%rcx
call   1040 <fwrite@plt>
mov    $0x6,%esi
mov    $0x1,%edx
mov    %r14,%rdi
mov    %rbx,%rcx
call   1040 <fwrite@plt>
mov    $0x20,%edi
mov    %rbx,%rsi
add    $0x8,%rsp
pop    %rbx
pop    %r14
jmp    1030 <putc@plt>

LLVM IR (-O0):
@S_IFMT = constant i32 0
@.str = [7 x i8] c"\1B[90m.\00"
@.str.1 = [7 x i8] c"\1B[92md\00"
@.str.2 = [7 x i8] c"\1B[97mc\00"
@.str.3 = [7 x i8] c"\1B[97mb\00"
@.str.4 = [7 x i8] c"\1B[97mp\00"
@.str.5 = [7 x i8] c"\1B[93ml\00"
@.str.6 = [13 x i8] c"\1B[38;5;161ms\00"
@.str.7 = [6 x i8] c"\1B[0m?\00"
@S_IRUSR = constant i32 0
@.str.8 = [7 x i8] c"\1B[34mr\00"
@.str.9 = [7 x i8] c"\1B[90m-\00"
@S_IWUSR = constant i32 0
@.str.10 = [7 x i8] c"\1B[31mw\00"
@S_ISUID = constant i32 0
@S_IXUSR = constant i32 0
@.str.11 = [13 x i8] c"\1B[38;5;220mS\00"
@.str.12 = [7 x i8] c"\1B[35mx\00"
@S_IRGRP = constant i32 0
@S_IWGRP = constant i32 0
@S_ISGID = constant i32 0
@S_IXGRP = constant i32 0
@S_IROTH = constant i32 0
@S_IWOTH = constant i32 0
@S_ISVTX = constant i32 0
@S_IXOTH = constant i32 0
@.str.13 = [13 x i8] c"\1B[38;5;220mt\00"
@.str.14 = [13 x i8] c"\1B[38;5;220mT\00"
define void @fmt_strmode(i32* %0, i32 %1) {
%3 = alloca i32*
%4 = alloca i32
store i32* %0, i32** %3
store i32 %1, i32* %4
%5 = load i32, i32* %4
%6 = load i32, i32* @S_IFMT
%7 = and i32 %5, %6
switch i32 %7, label %29 [
i32 129, label %8
i32 132, label %11
i32 133, label %14
i32 134, label %17
i32 131, label %20
i32 130, label %23
i32 128, label %26
]
8: ; preds = %2
%9 = load i32*, i32** %3
%10 = call i32 @fputs(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str, i64 0, i64 0), i32* %9)
br label %32
11: ; preds = %2
%12 = load i32*, i32** %3
%13 = call i32 @fputs(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.1, i64 0, i64 0), i32* %12)
br label %32
14: ; preds = %2
%15 = load i32*, i32** %3
%16 = call i32 @fputs(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0), i32* %15)
br label %32
17: ; preds = %2
%18 = load i32*, i32** %3
%19 = call i32 @fputs(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.3, i64 0, i64 0), i32* %18)
br label %32
20: ; preds = %2
%21 = load i32*, i32** %3
%22 = call i32 @fputs(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.4, i64 0, i64 0), i32* %21)
br label %32
23: ; preds = %2
%24 = load i32*, i32** %3
%25 = call i32 @fputs(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.5, i64 0, i64 0), i32* %24)
br label %32
26: ; preds = %2
%27 = load i32*, i32** %3
%28 = call i32 @fputs(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.6, i64 0, i64 0), i32* %27)
br label %32
29: ; preds = %2
%30 = load i32*, i32** %3
%31 = call i32 @fputs(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.7, i64 0, i64 0), i32* %30)
br label %32
32: ; preds = %29, %26, %23, %20, %17, %14, %11, %8
%33 = load i32, i32* %4
%34 = load i32, i32* @S_IRUSR
%35 = and i32 %33, %34
%36 = icmp ne i32 %35, 0
%37 = zext i1 %36 to i64
%38 = select i1 %36, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.9, i64 0, i64 0)
%39 = load i32*, i32** %3
%40 = call i32 @fputs(i8* %38, i32* %39)
%41 = load i32, i32* %4
%42 = load i32, i32* @S_IWUSR
%43 = and i32 %41, %42
%44 = icmp ne i32 %43, 0
%45 = zext i1 %44 to i64
%46 = select i1 %44, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.9, i64 0, i64 0)
%47 = load i32*, i32** %3
%48 = call i32 @fputs(i8* %46, i32* %47)
%49 = load i32, i32* %4
%50 = load i32, i32* @S_ISUID
%51 = and i32 %49, %50
%52 = icmp ne i32 %51, 0
br i1 %52, label %53, label %60
53: ; preds = %32
%54 = load i32, i32* %4
%55 = load i32, i32* @S_IXUSR
%56 = and i32 %54, %55
%57 = icmp ne i32 %56, 0
%58 = zext i1 %57 to i64
%59 = select i1 %57, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.6, i64 0, i64 0), i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.11, i64 0, i64 0)
br label %67
60: ; preds = %32
%61 = load i32, i32* %4
%62 = load i32, i32* @S_IXUSR
%63 = and i32 %61, %62
%64 = icmp ne i32 %63, 0
%65 = zext i1 %64 to i64
%66 = select i1 %64, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.12, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.9, i64 0, i64 0)
br label %67
67: ; preds = %60, %53
%68 = phi i8* [ %59, %53 ], [ %66, %60 ]
%69 = load i32*, i32** %3
%70 = call i32 @fputs(i8* %68, i32* %69)
%71 = load i32, i32* %4
%72 = load i32, i32* @S_IRGRP
%73 = and i32 %71, %72
%74 = icmp ne i32 %73, 0
%75 = zext i1 %74 to i64
%76 = select i1 %74, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.9, i64 0, i64 0)
%77 = load i32*, i32** %3
%78 = call i32 @fputs(i8* %76, i32* %77)
%79 = load i32, i32* %4
%80 = load i32, i32* @S_IWGRP
%81 = and i32 %79, %80
%82 = icmp ne i32 %81, 0
%83 = zext i1 %82 to i64
%84 = select i1 %82, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.9, i64 0, i64 0)
%85 = load i32*, i32** %3
%86 = call i32 @fputs(i8* %84, i32* %85)
%87 = load i32, i32* %4
%88 = load i32, i32* @S_ISGID
%89 = and i32 %87, %88
%90 = icmp ne i32 %89, 0
br i1 %90, label %91, label %98
91: ; preds = %67
%92 = load i32, i32* %4
%93 = load i32, i32* @S_IXGRP
%94 = and i32 %92, %93
%95 = icmp ne i32 %94, 0
%96 = zext i1 %95 to i64
%97 = select i1 %95, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.6, i64 0, i64 0), i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.11, i64 0, i64 0)
br label %105
98: ; preds = %67
%99 = load i32, i32* %4
%100 = load i32, i32* @S_IXGRP
%101 = and i32 %99, %100
%102 = icmp ne i32 %101, 0
%103 = zext i1 %102 to i64
%104 = select i1 %102, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.12, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.9, i64 0, i64 0)
br label %105
105: ; preds = %98, %91
%106 = phi i8* [ %97, %91 ], [ %104, %98 ]
%107 = load i32*, i32** %3
%108 = call i32 @fputs(i8* %106, i32* %107)
%109 = load i32, i32* %4
%110 = load i32, i32* @S_IROTH
%111 = and i32 %109, %110
%112 = icmp ne i32 %111, 0
%113 = zext i1 %112 to i64
%114 = select i1 %112, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.9, i64 0, i64 0)
%115 = load i32*, i32** %3
%116 = call i32 @fputs(i8* %114, i32* %115)
%117 = load i32, i32* %4
%118 = load i32, i32* @S_IWOTH
%119 = and i32 %117, %118
%120 = icmp ne i32 %119, 0
%121 = zext i1 %120 to i64
%122 = select i1 %120, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.9, i64 0, i64 0)
%123 = load i32*, i32** %3
%124 = call i32 @fputs(i8* %122, i32* %123)
%125 = load i32, i32* %4
%126 = load i32, i32* @S_ISVTX
%127 = and i32 %125, %126
%128 = icmp ne i32 %127, 0
br i1 %128, label %129, label %136
129: ; preds = %105
%130 = load i32, i32* %4
%131 = load i32, i32* @S_IXOTH
%132 = and i32 %130, %131
%133 = icmp ne i32 %132, 0
%134 = zext i1 %133 to i64
%135 = select i1 %133, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.13, i64 0, i64 0), i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.14, i64 0, i64 0)
br label %143
136: ; preds = %105
%137 = load i32, i32* %4
%138 = load i32, i32* @S_IXOTH
%139 = and i32 %137, %138
%140 = icmp ne i32 %139, 0
%141 = zext i1 %140 to i64
%142 = select i1 %140, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.12, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.9, i64 0, i64 0)
br label %143
143: ; preds = %136, %129
%144 = phi i8* [ %135, %129 ], [ %142, %136 ]
%145 = load i32*, i32** %3
%146 = call i32 @fputs(i8* %144, i32* %145)
%147 = load i32*, i32** %3
%148 = call i32 @putc(i8 signext 32, i32* %147)
ret void
}

LLVM IR (-O2):
@S_IFMT = constant i32 0
@.str.7 = [6 x i8] c"\1B[0m?\00"
@S_IRUSR = constant i32 0
@.str.9 = [7 x i8] c"\1B[90m-\00"
@S_IWUSR = constant i32 0
@S_ISUID = constant i32 0
@S_IXUSR = constant i32 0
@S_IRGRP = constant i32 0
@S_IWGRP = constant i32 0
@S_ISGID = constant i32 0
@S_IXGRP = constant i32 0
@S_IROTH = constant i32 0
@S_IWOTH = constant i32 0
@S_ISVTX = constant i32 0
@S_IXOTH = constant i32 0
define void @fmt_strmode(i32* nocapture %0, i32 %1) {
%3 = tail call i64 @fwrite(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.7, i64 0, i64 0), i64 5, i64 1, i32* %0)
%4 = tail call i64 @fwrite(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.9, i64 0, i64 0), i64 6, i64 1, i32* %0)
%5 = tail call i64 @fwrite(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.9, i64 0, i64 0), i64 6, i64 1, i32* %0)
%6 = tail call i64 @fwrite(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.9, i64 0, i64 0), i64 6, i64 1, i32* %0)
%7 = tail call i64 @fwrite(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.9, i64 0, i64 0), i64 6, i64 1, i32* %0)
%8 = tail call i64 @fwrite(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.9, i64 0, i64 0), i64 6, i64 1, i32* %0)
%9 = tail call i64 @fwrite(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.9, i64 0, i64 0), i64 6, i64 1, i32* %0)
%10 = tail call i64 @fwrite(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.9, i64 0, i64 0), i64 6, i64 1, i32* %0)
%11 = tail call i64 @fwrite(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.9, i64 0, i64 0), i64 6, i64 1, i32* %0)
%12 = tail call i64 @fwrite(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.9, i64 0, i64 0), i64 6, i64 1, i32* %0)
%13 = tail call i32 @putc(i8 signext 32, i32* %0)
ret void
}