#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 const IN_ACCESS;
int const IN_ATTRIB;
int const IN_CLOSE_NOWRITE;
int const IN_CLOSE_WRITE;
int const IN_CREATE;
int const IN_DELETE;
int const IN_DELETE_SELF;
int const IN_IGNORED;
int const IN_MODIFY;
int const IN_MOVED_FROM;
int const IN_MOVED_TO;
int const IN_MOVE_SELF;
int const IN_OPEN;
int const IN_Q_OVERFLOW;
int const IN_UNMOUNT;
scalar_t__ malloc(int);
scalar_t__ realloc(char *, int);
int /*<<< orphan*/ strcpy(char *, char *);
char *getTypeFromMask(const int eventMask) {
  char *eventType;
  eventType = (char *)malloc(9 * sizeof(char *));
  strcpy(eventType, "NO_MATCH");
  if (eventMask & IN_MODIFY) {
    eventType = (char *)realloc(eventType, 10 * sizeof(char *));
    strcpy(eventType, "IN_MODIFY");
  } else if (eventMask & IN_ATTRIB) {
    eventType = (char *)malloc(10 * sizeof(char *));
    strcpy(eventType, "IN_ATTRIB");
  } else if (eventMask & IN_MOVED_FROM) {
    eventType = (char *)malloc(14 * sizeof(char *));
    strcpy(eventType, "IN_MOVED_FROM");
  } else if (eventMask & IN_MOVED_TO) {
    eventType = (char *)malloc(12 * sizeof(char *));
    strcpy(eventType, "IN_MOVED_TO");
  } else if (eventMask & IN_DELETE) {
    eventType = (char *)malloc(10 * sizeof(char *));
    strcpy(eventType, "IN_DELETE");
  } else if (eventMask & IN_CREATE) {
    eventType = (char *)malloc(10 * sizeof(char *));
    strcpy(eventType, "IN_CREATE");
  } else if (eventMask & IN_DELETE_SELF) {
    eventType = (char *)malloc(15 * sizeof(char *));
    strcpy(eventType, "IN_DELETE_SELF");
  } else if (eventMask & IN_MOVE_SELF) {
    eventType = (char *)malloc(13 * sizeof(char *));
    strcpy(eventType, "IN_MOVE_SELF");
  } else if (eventMask & IN_ACCESS) {
    eventType = (char *)malloc(10 * sizeof(char *));
    strcpy(eventType, "IN_ACCESS");
  } else if (eventMask & IN_CLOSE_WRITE) {
    eventType = (char *)malloc(15 * sizeof(char *));
    strcpy(eventType, "IN_CLOSE_WRITE");
  } else if (eventMask & IN_CLOSE_NOWRITE) {
    eventType = (char *)malloc(17 * sizeof(char *));
    strcpy(eventType, "IN_CLOSE_NOWRITE");
  } else if (eventMask & IN_OPEN) {
    eventType = (char *)malloc(8 * sizeof(char *));
    strcpy(eventType, "IN_OPEN");
  } else if (eventMask & IN_UNMOUNT) {
    eventType = (char *)malloc(11 * sizeof(char *));
    strcpy(eventType, "IN_UNMOUNT");
  } else if (eventMask & IN_Q_OVERFLOW) {
    eventType = (char *)malloc(14 * sizeof(char *));
    strcpy(eventType, "IN_Q_OVERFLOW");
  } else if (eventMask & IN_IGNORED) {
    eventType = (char *)malloc(11 * sizeof(char *));
    strcpy(eventType, "IN_IGNORED");
  }
  return eventType;
}


x86 assembly (clang, -O0):
<getTypeFromMask>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %edi,-0x4(%rbp)
mov    $0x48,%edi
call   1040 <malloc@plt>
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0xeac(%rip),%rsi
call   1030 <strcpy@plt>
mov    -0x4(%rbp),%eax
mov    0x2e85(%rip),%rcx
and    (%rcx),%eax
cmp    $0x0,%eax
je     1195 <getTypeFromMask+0x65>
mov    -0x10(%rbp),%rdi
mov    $0x50,%esi
call   1050 <realloc@plt>
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0xe7e(%rip),%rsi
call   1030 <strcpy@plt>
jmp    14e6 <getTypeFromMask+0x3b6>
mov    -0x4(%rbp),%eax
mov    0x2e39(%rip),%rcx
and    (%rcx),%eax
cmp    $0x0,%eax
je     11cd <getTypeFromMask+0x9d>
mov    $0x50,%edi
call   1040 <malloc@plt>
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0xe50(%rip),%rsi
call   1030 <strcpy@plt>
jmp    14e1 <getTypeFromMask+0x3b1>
mov    -0x4(%rbp),%eax
mov    0x2db9(%rip),%rcx
and    (%rcx),%eax
cmp    $0x0,%eax
je     1205 <getTypeFromMask+0xd5>
mov    $0x70,%edi
call   1040 <malloc@plt>
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0xe22(%rip),%rsi
call   1030 <strcpy@plt>
jmp    14dc <getTypeFromMask+0x3ac>
mov    -0x4(%rbp),%eax
mov    0x2d91(%rip),%rcx
and    (%rcx),%eax
cmp    $0x0,%eax
je     123d <getTypeFromMask+0x10d>
mov    $0x60,%edi
call   1040 <malloc@plt>
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0xdf8(%rip),%rsi
call   1030 <strcpy@plt>
jmp    14d7 <getTypeFromMask+0x3a7>
mov    -0x4(%rbp),%eax
mov    0x2d79(%rip),%rcx
and    (%rcx),%eax
cmp    $0x0,%eax
je     1275 <getTypeFromMask+0x145>
mov    $0x50,%edi
call   1040 <malloc@plt>
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0xdcc(%rip),%rsi
call   1030 <strcpy@plt>
jmp    14d2 <getTypeFromMask+0x3a2>
mov    -0x4(%rbp),%eax
mov    0x2d01(%rip),%rcx
and    (%rcx),%eax
cmp    $0x0,%eax
je     12ad <getTypeFromMask+0x17d>
mov    $0x50,%edi
call   1040 <malloc@plt>
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0xd9e(%rip),%rsi
call   1030 <strcpy@plt>
jmp    14cd <getTypeFromMask+0x39d>
mov    -0x4(%rbp),%eax
mov    0x2cb1(%rip),%rcx
and    (%rcx),%eax
cmp    $0x0,%eax
je     12e5 <getTypeFromMask+0x1b5>
mov    $0x78,%edi
call   1040 <malloc@plt>
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0xd70(%rip),%rsi
call   1030 <strcpy@plt>
jmp    14c8 <getTypeFromMask+0x398>
mov    -0x4(%rbp),%eax
mov    0x2c99(%rip),%rcx
and    (%rcx),%eax
cmp    $0x0,%eax
je     131d <getTypeFromMask+0x1ed>
mov    $0x68,%edi
call   1040 <malloc@plt>
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0xd47(%rip),%rsi
call   1030 <strcpy@plt>
jmp    14c3 <getTypeFromMask+0x393>
mov    -0x4(%rbp),%eax
mov    0x2c81(%rip),%rcx
and    (%rcx),%eax
cmp    $0x0,%eax
je     1355 <getTypeFromMask+0x225>
mov    $0x50,%edi
call   1040 <malloc@plt>
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0xd1c(%rip),%rsi
call   1030 <strcpy@plt>
jmp    14be <getTypeFromMask+0x38e>
mov    -0x4(%rbp),%eax
mov    0x2c69(%rip),%rcx
and    (%rcx),%eax
cmp    $0x0,%eax
je     138d <getTypeFromMask+0x25d>
mov    $0x78,%edi
call   1040 <malloc@plt>
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0xcee(%rip),%rsi
call   1030 <strcpy@plt>
jmp    14b9 <getTypeFromMask+0x389>
mov    -0x4(%rbp),%eax
mov    0x2c39(%rip),%rcx
and    (%rcx),%eax
cmp    $0x0,%eax
je     13c5 <getTypeFromMask+0x295>
mov    $0x88,%edi
call   1040 <malloc@plt>
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0xcc5(%rip),%rsi
call   1030 <strcpy@plt>
jmp    14b4 <getTypeFromMask+0x384>
mov    -0x4(%rbp),%eax
mov    0x2ba1(%rip),%rcx
and    (%rcx),%eax
cmp    $0x0,%eax
je     13fd <getTypeFromMask+0x2cd>
mov    $0x40,%edi
call   1040 <malloc@plt>
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0xc9e(%rip),%rsi
call   1030 <strcpy@plt>
jmp    14af <getTypeFromMask+0x37f>
mov    -0x4(%rbp),%eax
mov    0x2bb1(%rip),%rcx
and    (%rcx),%eax
cmp    $0x0,%eax
je     1435 <getTypeFromMask+0x305>
mov    $0x58,%edi
call   1040 <malloc@plt>
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0xc6e(%rip),%rsi
call   1030 <strcpy@plt>
jmp    14aa <getTypeFromMask+0x37a>
mov    -0x4(%rbp),%eax
mov    0x2b59(%rip),%rcx
and    (%rcx),%eax
cmp    $0x0,%eax
je     146d <getTypeFromMask+0x33d>
mov    $0x70,%edi
call   1040 <malloc@plt>
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0xc41(%rip),%rsi
call   1030 <strcpy@plt>
jmp    14a5 <getTypeFromMask+0x375>
mov    -0x4(%rbp),%eax
mov    0x2b81(%rip),%rcx
and    (%rcx),%eax
cmp    $0x0,%eax
je     14a0 <getTypeFromMask+0x370>
mov    $0x58,%edi
call   1040 <malloc@plt>
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0xc17(%rip),%rsi
call   1030 <strcpy@plt>
jmp    14a5 <getTypeFromMask+0x375>
jmp    14aa <getTypeFromMask+0x37a>
jmp    14af <getTypeFromMask+0x37f>
jmp    14b4 <getTypeFromMask+0x384>
jmp    14b9 <getTypeFromMask+0x389>
jmp    14be <getTypeFromMask+0x38e>
jmp    14c3 <getTypeFromMask+0x393>
jmp    14c8 <getTypeFromMask+0x398>
jmp    14cd <getTypeFromMask+0x39d>
jmp    14d2 <getTypeFromMask+0x3a2>
jmp    14d7 <getTypeFromMask+0x3a7>
jmp    14dc <getTypeFromMask+0x3ac>
jmp    14e1 <getTypeFromMask+0x3b1>
jmp    14e6 <getTypeFromMask+0x3b6>
mov    -0x10(%rbp),%rax
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<getTypeFromMask>:
push   %rbx
mov    $0x48,%edi
call   1040 <malloc@plt>
mov    %rax,%rbx
lea    0xecb(%rip),%rsi
mov    %rax,%rdi
call   1030 <strcpy@plt>
mov    %rbx,%rax
pop    %rbx
ret

LLVM IR (-O0):
@.str = [9 x i8] c"NO_MATCH\00"
@IN_MODIFY = constant i32 0
@.str.1 = [10 x i8] c"IN_MODIFY\00"
@IN_ATTRIB = constant i32 0
@.str.2 = [10 x i8] c"IN_ATTRIB\00"
@IN_MOVED_FROM = constant i32 0
@.str.3 = [14 x i8] c"IN_MOVED_FROM\00"
@IN_MOVED_TO = constant i32 0
@.str.4 = [12 x i8] c"IN_MOVED_TO\00"
@IN_DELETE = constant i32 0
@.str.5 = [10 x i8] c"IN_DELETE\00"
@IN_CREATE = constant i32 0
@.str.6 = [10 x i8] c"IN_CREATE\00"
@IN_DELETE_SELF = constant i32 0
@.str.7 = [15 x i8] c"IN_DELETE_SELF\00"
@IN_MOVE_SELF = constant i32 0
@.str.8 = [13 x i8] c"IN_MOVE_SELF\00"
@IN_ACCESS = constant i32 0
@.str.9 = [10 x i8] c"IN_ACCESS\00"
@IN_CLOSE_WRITE = constant i32 0
@.str.10 = [15 x i8] c"IN_CLOSE_WRITE\00"
@IN_CLOSE_NOWRITE = constant i32 0
@.str.11 = [17 x i8] c"IN_CLOSE_NOWRITE\00"
@IN_OPEN = constant i32 0
@.str.12 = [8 x i8] c"IN_OPEN\00"
@IN_UNMOUNT = constant i32 0
@.str.13 = [11 x i8] c"IN_UNMOUNT\00"
@IN_Q_OVERFLOW = constant i32 0
@.str.14 = [14 x i8] c"IN_Q_OVERFLOW\00"
@IN_IGNORED = constant i32 0
@.str.15 = [11 x i8] c"IN_IGNORED\00"
define i8* @getTypeFromMask(i32 %0) {
%2 = alloca i32
%3 = alloca i8*
store i32 %0, i32* %2
%4 = call i64 @malloc(i32 72)
%5 = inttoptr i64 %4 to i8*
store i8* %5, i8** %3
%6 = load i8*, i8** %3
%7 = call i32 @strcpy(i8* %6, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str, i64 0, i64 0))
%8 = load i32, i32* %2
%9 = load i32, i32* @IN_MODIFY
%10 = and i32 %8, %9
%11 = icmp ne i32 %10, 0
br i1 %11, label %12, label %18
12: ; preds = %1
%13 = load i8*, i8** %3
%14 = call i64 @realloc(i8* %13, i32 80)
%15 = inttoptr i64 %14 to i8*
store i8* %15, i8** %3
%16 = load i8*, i8** %3
%17 = call i32 @strcpy(i8* %16, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1, i64 0, i64 0))
br label %172
18: ; preds = %1
%19 = load i32, i32* %2
%20 = load i32, i32* @IN_ATTRIB
%21 = and i32 %19, %20
%22 = icmp ne i32 %21, 0
br i1 %22, label %23, label %28
23: ; preds = %18
%24 = call i64 @malloc(i32 80)
%25 = inttoptr i64 %24 to i8*
store i8* %25, i8** %3
%26 = load i8*, i8** %3
%27 = call i32 @strcpy(i8* %26, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2, i64 0, i64 0))
br label %171
28: ; preds = %18
%29 = load i32, i32* %2
%30 = load i32, i32* @IN_MOVED_FROM
%31 = and i32 %29, %30
%32 = icmp ne i32 %31, 0
br i1 %32, label %33, label %38
33: ; preds = %28
%34 = call i64 @malloc(i32 112)
%35 = inttoptr i64 %34 to i8*
store i8* %35, i8** %3
%36 = load i8*, i8** %3
%37 = call i32 @strcpy(i8* %36, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.3, i64 0, i64 0))
br label %170
38: ; preds = %28
%39 = load i32, i32* %2
%40 = load i32, i32* @IN_MOVED_TO
%41 = and i32 %39, %40
%42 = icmp ne i32 %41, 0
br i1 %42, label %43, label %48
43: ; preds = %38
%44 = call i64 @malloc(i32 96)
%45 = inttoptr i64 %44 to i8*
store i8* %45, i8** %3
%46 = load i8*, i8** %3
%47 = call i32 @strcpy(i8* %46, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.4, i64 0, i64 0))
br label %169
48: ; preds = %38
%49 = load i32, i32* %2
%50 = load i32, i32* @IN_DELETE
%51 = and i32 %49, %50
%52 = icmp ne i32 %51, 0
br i1 %52, label %53, label %58
53: ; preds = %48
%54 = call i64 @malloc(i32 80)
%55 = inttoptr i64 %54 to i8*
store i8* %55, i8** %3
%56 = load i8*, i8** %3
%57 = call i32 @strcpy(i8* %56, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.5, i64 0, i64 0))
br label %168
58: ; preds = %48
%59 = load i32, i32* %2
%60 = load i32, i32* @IN_CREATE
%61 = and i32 %59, %60
%62 = icmp ne i32 %61, 0
br i1 %62, label %63, label %68
63: ; preds = %58
%64 = call i64 @malloc(i32 80)
%65 = inttoptr i64 %64 to i8*
store i8* %65, i8** %3
%66 = load i8*, i8** %3
%67 = call i32 @strcpy(i8* %66, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.6, i64 0, i64 0))
br label %167
68: ; preds = %58
%69 = load i32, i32* %2
%70 = load i32, i32* @IN_DELETE_SELF
%71 = and i32 %69, %70
%72 = icmp ne i32 %71, 0
br i1 %72, label %73, label %78
73: ; preds = %68
%74 = call i64 @malloc(i32 120)
%75 = inttoptr i64 %74 to i8*
store i8* %75, i8** %3
%76 = load i8*, i8** %3
%77 = call i32 @strcpy(i8* %76, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.7, i64 0, i64 0))
br label %166
78: ; preds = %68
%79 = load i32, i32* %2
%80 = load i32, i32* @IN_MOVE_SELF
%81 = and i32 %79, %80
%82 = icmp ne i32 %81, 0
br i1 %82, label %83, label %88
83: ; preds = %78
%84 = call i64 @malloc(i32 104)
%85 = inttoptr i64 %84 to i8*
store i8* %85, i8** %3
%86 = load i8*, i8** %3
%87 = call i32 @strcpy(i8* %86, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.8, i64 0, i64 0))
br label %165
88: ; preds = %78
%89 = load i32, i32* %2
%90 = load i32, i32* @IN_ACCESS
%91 = and i32 %89, %90
%92 = icmp ne i32 %91, 0
br i1 %92, label %93, label %98
93: ; preds = %88
%94 = call i64 @malloc(i32 80)
%95 = inttoptr i64 %94 to i8*
store i8* %95, i8** %3
%96 = load i8*, i8** %3
%97 = call i32 @strcpy(i8* %96, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.9, i64 0, i64 0))
br label %164
98: ; preds = %88
%99 = load i32, i32* %2
%100 = load i32, i32* @IN_CLOSE_WRITE
%101 = and i32 %99, %100
%102 = icmp ne i32 %101, 0
br i1 %102, label %103, label %108
103: ; preds = %98
%104 = call i64 @malloc(i32 120)
%105 = inttoptr i64 %104 to i8*
store i8* %105, i8** %3
%106 = load i8*, i8** %3
%107 = call i32 @strcpy(i8* %106, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.10, i64 0, i64 0))
br label %163
108: ; preds = %98
%109 = load i32, i32* %2
%110 = load i32, i32* @IN_CLOSE_NOWRITE
%111 = and i32 %109, %110
%112 = icmp ne i32 %111, 0
br i1 %112, label %113, label %118
113: ; preds = %108
%114 = call i64 @malloc(i32 136)
%115 = inttoptr i64 %114 to i8*
store i8* %115, i8** %3
%116 = load i8*, i8** %3
%117 = call i32 @strcpy(i8* %116, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.11, i64 0, i64 0))
br label %162
118: ; preds = %108
%119 = load i32, i32* %2
%120 = load i32, i32* @IN_OPEN
%121 = and i32 %119, %120
%122 = icmp ne i32 %121, 0
br i1 %122, label %123, label %128
123: ; preds = %118
%124 = call i64 @malloc(i32 64)
%125 = inttoptr i64 %124 to i8*
store i8* %125, i8** %3
%126 = load i8*, i8** %3
%127 = call i32 @strcpy(i8* %126, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.12, i64 0, i64 0))
br label %161
128: ; preds = %118
%129 = load i32, i32* %2
%130 = load i32, i32* @IN_UNMOUNT
%131 = and i32 %129, %130
%132 = icmp ne i32 %131, 0
br i1 %132, label %133, label %138
133: ; preds = %128
%134 = call i64 @malloc(i32 88)
%135 = inttoptr i64 %134 to i8*
store i8* %135, i8** %3
%136 = load i8*, i8** %3
%137 = call i32 @strcpy(i8* %136, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.13, i64 0, i64 0))
br label %160
138: ; preds = %128
%139 = load i32, i32* %2
%140 = load i32, i32* @IN_Q_OVERFLOW
%141 = and i32 %139, %140
%142 = icmp ne i32 %141, 0
br i1 %142, label %143, label %148
143: ; preds = %138
%144 = call i64 @malloc(i32 112)
%145 = inttoptr i64 %144 to i8*
store i8* %145, i8** %3
%146 = load i8*, i8** %3
%147 = call i32 @strcpy(i8* %146, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.14, i64 0, i64 0))
br label %159
148: ; preds = %138
%149 = load i32, i32* %2
%150 = load i32, i32* @IN_IGNORED
%151 = and i32 %149, %150
%152 = icmp ne i32 %151, 0
br i1 %152, label %153, label %158
153: ; preds = %148
%154 = call i64 @malloc(i32 88)
%155 = inttoptr i64 %154 to i8*
store i8* %155, i8** %3
%156 = load i8*, i8** %3
%157 = call i32 @strcpy(i8* %156, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.15, i64 0, i64 0))
br label %158
158: ; preds = %153, %148
br label %159
159: ; preds = %158, %143
br label %160
160: ; preds = %159, %133
br label %161
161: ; preds = %160, %123
br label %162
162: ; preds = %161, %113
br label %163
163: ; preds = %162, %103
br label %164
164: ; preds = %163, %93
br label %165
165: ; preds = %164, %83
br label %166
166: ; preds = %165, %73
br label %167
167: ; preds = %166, %63
br label %168
168: ; preds = %167, %53
br label %169
169: ; preds = %168, %43
br label %170
170: ; preds = %169, %33
br label %171
171: ; preds = %170, %23
br label %172
172: ; preds = %171, %12
%173 = load i8*, i8** %3
ret i8* %173
}

LLVM IR (-O2):
@.str = [9 x i8] c"NO_MATCH\00"
@IN_MODIFY = constant i32 0
@IN_ATTRIB = constant i32 0
@IN_MOVED_FROM = constant i32 0
@IN_MOVED_TO = constant i32 0
@IN_DELETE = constant i32 0
@IN_CREATE = constant i32 0
@IN_DELETE_SELF = constant i32 0
@IN_MOVE_SELF = constant i32 0
@IN_ACCESS = constant i32 0
@IN_CLOSE_WRITE = constant i32 0
@IN_CLOSE_NOWRITE = constant i32 0
@IN_OPEN = constant i32 0
@IN_UNMOUNT = constant i32 0
@IN_Q_OVERFLOW = constant i32 0
@IN_IGNORED = constant i32 0
define i8* @getTypeFromMask(i32 %0) {
%2 = tail call i64 @malloc(i32 72)
%3 = inttoptr i64 %2 to i8*
%4 = tail call i32 @strcpy(i8* %3, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str, i64 0, i64 0))
ret i8* %3
}