#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 */
struct inotify_event {
  int wd;
  char *name;
  int mask;
  int len;
  int cookie;
};

/* Variables and functions */
int IN_CREATE;
int IN_DELETE_SELF;
int IN_IGNORED;
int IN_ISDIR;
int IN_MOVED_FROM;
int IN_MOVED_TO;
int IN_MOVE_SELF;
int IN_Q_OVERFLOW;
int IN_UNMOUNT;
int /*<<< orphan*/ logMessage(int, char *, ...);
int /*<<< orphan*/ printf(char *, int, char *, int, int, int);
void displayInotifyEvent(struct inotify_event *ev) {
  printf("Estructura de evWD=%d, evName=%s, evMask=%d, evLen=%d, evCookie=%d\n",
         ev->wd, ev->name, ev->mask, ev->len, ev->cookie);
  logMessage(2, "==> wd = %d; ", ev->wd);
  if (ev->cookie > 0)
    logMessage(2, "cookie = %4d; ", ev->cookie);
  logMessage(2, "mask = ");
  if (ev->mask & IN_ISDIR)
    logMessage(2, "IN_ISDIR ");
  if (ev->mask & IN_CREATE)
    logMessage(2, "IN_CREATE ");
  if (ev->mask & IN_DELETE_SELF)
    logMessage(2, "IN_DELETE_SELF ");
  if (ev->mask & IN_MOVE_SELF)
    logMessage(2, "IN_MOVE_SELF ");
  if (ev->mask & IN_MOVED_FROM)
    logMessage(2, "IN_MOVED_FROM ");
  if (ev->mask & IN_MOVED_TO)
    logMessage(2, "IN_MOVED_TO ");
  if (ev->mask & IN_IGNORED)
    logMessage(2, "IN_IGNORED ");
  if (ev->mask & IN_Q_OVERFLOW)
    logMessage(2, "IN_Q_OVERFLOW ");
  if (ev->mask & IN_UNMOUNT)
    logMessage(2, "IN_UNMOUNT ");
  if (ev->len > 0)
    logMessage(2, "        name = %s\n", ev->name);
}


x86 assembly (clang, -O0):
<displayInotifyEvent>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %rdi,-0x8(%rbp)
mov    -0x8(%rbp),%rax
mov    (%rax),%esi
mov    -0x8(%rbp),%rax
mov    0x8(%rax),%rdx
mov    -0x8(%rbp),%rax
mov    0x10(%rax),%ecx
mov    -0x8(%rbp),%rax
mov    0x14(%rax),%r8d
mov    -0x8(%rbp),%rax
mov    0x18(%rax),%r9d
lea    0xea8(%rip),%rdi
call   1040 <printf@plt>
mov    -0x8(%rbp),%rax
mov    (%rax),%edx
mov    $0x2,%edi
lea    0xed5(%rip),%rsi
mov    $0x0,%al
call   1030 <logMessage@plt>
mov    -0x8(%rbp),%rax
cmpl   $0x0,0x18(%rax)
jle    119e <displayInotifyEvent+0x7e>
mov    -0x8(%rbp),%rax
mov    0x18(%rax),%edx
mov    $0x2,%edi
lea    0xebb(%rip),%rsi
mov    $0x0,%al
call   1030 <logMessage@plt>
mov    $0x2,%edi
lea    0xeb7(%rip),%rsi
mov    $0x0,%al
call   1030 <logMessage@plt>
mov    -0x8(%rbp),%rax
mov    0x10(%rax),%eax
mov    0x2e19(%rip),%rcx
and    (%rcx),%eax
cmp    $0x0,%eax
je     11dd <displayInotifyEvent+0xbd>
mov    $0x2,%edi
lea    0xe93(%rip),%rsi
mov    $0x0,%al
call   1030 <logMessage@plt>
mov    -0x8(%rbp),%rax
mov    0x10(%rax),%eax
mov    0x2dbd(%rip),%rcx
and    (%rcx),%eax
cmp    $0x0,%eax
je     1209 <displayInotifyEvent+0xe9>
mov    $0x2,%edi
lea    0xe71(%rip),%rsi
mov    $0x0,%al
call   1030 <logMessage@plt>
mov    -0x8(%rbp),%rax
mov    0x10(%rax),%eax
mov    0x2d81(%rip),%rcx
and    (%rcx),%eax
cmp    $0x0,%eax
je     1235 <displayInotifyEvent+0x115>
mov    $0x2,%edi
lea    0xe50(%rip),%rsi
mov    $0x0,%al
call   1030 <logMessage@plt>
mov    -0x8(%rbp),%rax
mov    0x10(%rax),%eax
mov    0x2d6d(%rip),%rcx
and    (%rcx),%eax
cmp    $0x0,%eax
je     1261 <displayInotifyEvent+0x141>
mov    $0x2,%edi
lea    0xe34(%rip),%rsi
mov    $0x0,%al
call   1030 <logMessage@plt>
mov    -0x8(%rbp),%rax
mov    0x10(%rax),%eax
mov    0x2d49(%rip),%rcx
and    (%rcx),%eax
cmp    $0x0,%eax
je     128d <displayInotifyEvent+0x16d>
mov    $0x2,%edi
lea    0xe16(%rip),%rsi
mov    $0x0,%al
call   1030 <logMessage@plt>
mov    -0x8(%rbp),%rax
mov    0x10(%rax),%eax
mov    0x2d2d(%rip),%rcx
and    (%rcx),%eax
cmp    $0x0,%eax
je     12b9 <displayInotifyEvent+0x199>
mov    $0x2,%edi
lea    0xdf9(%rip),%rsi
mov    $0x0,%al
call   1030 <logMessage@plt>
mov    -0x8(%rbp),%rax
mov    0x10(%rax),%eax
mov    0x2d31(%rip),%rcx
and    (%rcx),%eax
cmp    $0x0,%eax
je     12e5 <displayInotifyEvent+0x1c5>
mov    $0x2,%edi
lea    0xdda(%rip),%rsi
mov    $0x0,%al
call   1030 <logMessage@plt>
mov    -0x8(%rbp),%rax
mov    0x10(%rax),%eax
mov    0x2ccd(%rip),%rcx
and    (%rcx),%eax
cmp    $0x0,%eax
je     1311 <displayInotifyEvent+0x1f1>
mov    $0x2,%edi
lea    0xdba(%rip),%rsi
mov    $0x0,%al
call   1030 <logMessage@plt>
mov    -0x8(%rbp),%rax
mov    0x10(%rax),%eax
mov    0x2cc1(%rip),%rcx
and    (%rcx),%eax
cmp    $0x0,%eax
je     133d <displayInotifyEvent+0x21d>
mov    $0x2,%edi
lea    0xd9d(%rip),%rsi
mov    $0x0,%al
call   1030 <logMessage@plt>
mov    -0x8(%rbp),%rax
cmpl   $0x0,0x14(%rax)
jle    1366 <displayInotifyEvent+0x246>
mov    -0x8(%rbp),%rax
mov    0x8(%rax),%rdx
mov    $0x2,%edi
lea    0xd80(%rip),%rsi
mov    $0x0,%al
call   1030 <logMessage@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<displayInotifyEvent>:
push   %rbx
mov    %rdi,%rbx
mov    (%rdi),%esi
mov    0x8(%rdi),%rdx
mov    0x10(%rdi),%ecx
mov    0x14(%rdi),%r8d
mov    0x18(%rdi),%r9d
lea    0xec4(%rip),%rdi
call   1040 <printf@plt>
mov    (%rbx),%edx
lea    0xefa(%rip),%rsi
mov    $0x2,%edi
xor    %eax,%eax
call   1030 <logMessage@plt>
mov    0x18(%rbx),%edx
test   %edx,%edx
jle    1170 <displayInotifyEvent+0x50>
lea    0xeee(%rip),%rsi
mov    $0x2,%edi
xor    %eax,%eax
call   1030 <logMessage@plt>
lea    0xeea(%rip),%rsi
mov    $0x2,%edi
xor    %eax,%eax
call   1030 <logMessage@plt>
mov    0x10(%rbx),%eax
mov    0x2e4b(%rip),%rcx
test   %eax,(%rcx)
je     11a7 <displayInotifyEvent+0x87>
lea    0xed1(%rip),%rsi
mov    $0x2,%edi
xor    %eax,%eax
call   1030 <logMessage@plt>
mov    0x10(%rbx),%eax
mov    0x2dfa(%rip),%rcx
test   %eax,(%rcx)
je     11c8 <displayInotifyEvent+0xa8>
lea    0xeba(%rip),%rsi
mov    $0x2,%edi
xor    %eax,%eax
call   1030 <logMessage@plt>
mov    0x10(%rbx),%eax
mov    0x2dc9(%rip),%rcx
test   %eax,(%rcx)
je     11e9 <displayInotifyEvent+0xc9>
lea    0xea4(%rip),%rsi
mov    $0x2,%edi
xor    %eax,%eax
call   1030 <logMessage@plt>
mov    0x10(%rbx),%eax
mov    0x2dc0(%rip),%rcx
test   %eax,(%rcx)
je     120a <displayInotifyEvent+0xea>
lea    0xe93(%rip),%rsi
mov    $0x2,%edi
xor    %eax,%eax
call   1030 <logMessage@plt>
mov    0x10(%rbx),%eax
mov    0x2da7(%rip),%rcx
test   %eax,(%rcx)
je     122b <displayInotifyEvent+0x10b>
lea    0xe80(%rip),%rsi
mov    $0x2,%edi
xor    %eax,%eax
call   1030 <logMessage@plt>
mov    0x10(%rbx),%eax
mov    0x2d96(%rip),%rcx
test   %eax,(%rcx)
je     124c <displayInotifyEvent+0x12c>
lea    0xe6e(%rip),%rsi
mov    $0x2,%edi
xor    %eax,%eax
call   1030 <logMessage@plt>
mov    0x10(%rbx),%eax
mov    0x2da5(%rip),%rcx
test   %eax,(%rcx)
je     126d <displayInotifyEvent+0x14d>
lea    0xe5a(%rip),%rsi
mov    $0x2,%edi
xor    %eax,%eax
call   1030 <logMessage@plt>
mov    0x10(%rbx),%eax
mov    0x2d4c(%rip),%rcx
test   %eax,(%rcx)
je     128e <displayInotifyEvent+0x16e>
lea    0xe45(%rip),%rsi
mov    $0x2,%edi
xor    %eax,%eax
call   1030 <logMessage@plt>
mov    0x10(%rbx),%eax
mov    0x2d4b(%rip),%rcx
test   %eax,(%rcx)
je     12ac <displayInotifyEvent+0x18c>
lea    0xe33(%rip),%rsi
mov    $0x2,%edi
xor    %eax,%eax
call   1030 <logMessage@plt>
cmpl   $0x0,0x14(%rbx)
jle    12ca <displayInotifyEvent+0x1aa>
mov    0x8(%rbx),%rdx
lea    0xe22(%rip),%rsi
mov    $0x2,%edi
xor    %eax,%eax
pop    %rbx
jmp    1030 <logMessage@plt>
pop    %rbx
ret

LLVM IR (-O0):
%struct.inotify_event = type { i32, i8*, i32, i32, i32 }
@.str = [68 x i8] c"Estructura de evWD=%d, evName=%s, evMask=%d, evLen=%d, evCookie=%d\0A\00"
@.str.1 = [14 x i8] c"==> wd = %d; \00"
@.str.2 = [15 x i8] c"cookie = %4d; \00"
@.str.3 = [8 x i8] c"mask = \00"
@IN_ISDIR = global i32 0
@.str.4 = [10 x i8] c"IN_ISDIR \00"
@IN_CREATE = global i32 0
@.str.5 = [11 x i8] c"IN_CREATE \00"
@IN_DELETE_SELF = global i32 0
@.str.6 = [16 x i8] c"IN_DELETE_SELF \00"
@IN_MOVE_SELF = global i32 0
@.str.7 = [14 x i8] c"IN_MOVE_SELF \00"
@IN_MOVED_FROM = global i32 0
@.str.8 = [15 x i8] c"IN_MOVED_FROM \00"
@IN_MOVED_TO = global i32 0
@.str.9 = [13 x i8] c"IN_MOVED_TO \00"
@IN_IGNORED = global i32 0
@.str.10 = [12 x i8] c"IN_IGNORED \00"
@IN_Q_OVERFLOW = global i32 0
@.str.11 = [15 x i8] c"IN_Q_OVERFLOW \00"
@IN_UNMOUNT = global i32 0
@.str.12 = [12 x i8] c"IN_UNMOUNT \00"
@.str.13 = [19 x i8] c" name = %s\0A\00"
define void @displayInotifyEvent(%struct.inotify_event* %0) {
%2 = alloca %struct.inotify_event*
store %struct.inotify_event* %0, %struct.inotify_event** %2
%3 = load %struct.inotify_event*, %struct.inotify_event** %2
%4 = getelementptr inbounds %struct.inotify_event, %struct.inotify_event* %3, i32 0, i32 0
%5 = load i32, i32* %4
%6 = load %struct.inotify_event*, %struct.inotify_event** %2
%7 = getelementptr inbounds %struct.inotify_event, %struct.inotify_event* %6, i32 0, i32 1
%8 = load i8*, i8** %7
%9 = load %struct.inotify_event*, %struct.inotify_event** %2
%10 = getelementptr inbounds %struct.inotify_event, %struct.inotify_event* %9, i32 0, i32 2
%11 = load i32, i32* %10
%12 = load %struct.inotify_event*, %struct.inotify_event** %2
%13 = getelementptr inbounds %struct.inotify_event, %struct.inotify_event* %12, i32 0, i32 3
%14 = load i32, i32* %13
%15 = load %struct.inotify_event*, %struct.inotify_event** %2
%16 = getelementptr inbounds %struct.inotify_event, %struct.inotify_event* %15, i32 0, i32 4
%17 = load i32, i32* %16
%18 = call i32 @printf(i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str, i64 0, i64 0), i32 %5, i8* %8, i32 %11, i32 %14, i32 %17)
%19 = load %struct.inotify_event*, %struct.inotify_event** %2
%20 = getelementptr inbounds %struct.inotify_event, %struct.inotify_event* %19, i32 0, i32 0
%21 = load i32, i32* %20
%22 = call i32 (i32, i8*, ...) @logMessage(i32 2, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), i32 %21)
%23 = load %struct.inotify_event*, %struct.inotify_event** %2
%24 = getelementptr inbounds %struct.inotify_event, %struct.inotify_event* %23, i32 0, i32 4
%25 = load i32, i32* %24
%26 = icmp sgt i32 %25, 0
br i1 %26, label %27, label %32
27: ; preds = %1
%28 = load %struct.inotify_event*, %struct.inotify_event** %2
%29 = getelementptr inbounds %struct.inotify_event, %struct.inotify_event* %28, i32 0, i32 4
%30 = load i32, i32* %29
%31 = call i32 (i32, i8*, ...) @logMessage(i32 2, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.2, i64 0, i64 0), i32 %30)
br label %32
32: ; preds = %27, %1
%33 = call i32 (i32, i8*, ...) @logMessage(i32 2, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.3, i64 0, i64 0))
%34 = load %struct.inotify_event*, %struct.inotify_event** %2
%35 = getelementptr inbounds %struct.inotify_event, %struct.inotify_event* %34, i32 0, i32 2
%36 = load i32, i32* %35
%37 = load i32, i32* @IN_ISDIR
%38 = and i32 %36, %37
%39 = icmp ne i32 %38, 0
br i1 %39, label %40, label %42
40: ; preds = %32
%41 = call i32 (i32, i8*, ...) @logMessage(i32 2, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.4, i64 0, i64 0))
br label %42
42: ; preds = %40, %32
%43 = load %struct.inotify_event*, %struct.inotify_event** %2
%44 = getelementptr inbounds %struct.inotify_event, %struct.inotify_event* %43, i32 0, i32 2
%45 = load i32, i32* %44
%46 = load i32, i32* @IN_CREATE
%47 = and i32 %45, %46
%48 = icmp ne i32 %47, 0
br i1 %48, label %49, label %51
49: ; preds = %42
%50 = call i32 (i32, i8*, ...) @logMessage(i32 2, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.5, i64 0, i64 0))
br label %51
51: ; preds = %49, %42
%52 = load %struct.inotify_event*, %struct.inotify_event** %2
%53 = getelementptr inbounds %struct.inotify_event, %struct.inotify_event* %52, i32 0, i32 2
%54 = load i32, i32* %53
%55 = load i32, i32* @IN_DELETE_SELF
%56 = and i32 %54, %55
%57 = icmp ne i32 %56, 0
br i1 %57, label %58, label %60
58: ; preds = %51
%59 = call i32 (i32, i8*, ...) @logMessage(i32 2, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.6, i64 0, i64 0))
br label %60
60: ; preds = %58, %51
%61 = load %struct.inotify_event*, %struct.inotify_event** %2
%62 = getelementptr inbounds %struct.inotify_event, %struct.inotify_event* %61, i32 0, i32 2
%63 = load i32, i32* %62
%64 = load i32, i32* @IN_MOVE_SELF
%65 = and i32 %63, %64
%66 = icmp ne i32 %65, 0
br i1 %66, label %67, label %69
67: ; preds = %60
%68 = call i32 (i32, i8*, ...) @logMessage(i32 2, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.7, i64 0, i64 0))
br label %69
69: ; preds = %67, %60
%70 = load %struct.inotify_event*, %struct.inotify_event** %2
%71 = getelementptr inbounds %struct.inotify_event, %struct.inotify_event* %70, i32 0, i32 2
%72 = load i32, i32* %71
%73 = load i32, i32* @IN_MOVED_FROM
%74 = and i32 %72, %73
%75 = icmp ne i32 %74, 0
br i1 %75, label %76, label %78
76: ; preds = %69
%77 = call i32 (i32, i8*, ...) @logMessage(i32 2, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.8, i64 0, i64 0))
br label %78
78: ; preds = %76, %69
%79 = load %struct.inotify_event*, %struct.inotify_event** %2
%80 = getelementptr inbounds %struct.inotify_event, %struct.inotify_event* %79, i32 0, i32 2
%81 = load i32, i32* %80
%82 = load i32, i32* @IN_MOVED_TO
%83 = and i32 %81, %82
%84 = icmp ne i32 %83, 0
br i1 %84, label %85, label %87
85: ; preds = %78
%86 = call i32 (i32, i8*, ...) @logMessage(i32 2, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.9, i64 0, i64 0))
br label %87
87: ; preds = %85, %78
%88 = load %struct.inotify_event*, %struct.inotify_event** %2
%89 = getelementptr inbounds %struct.inotify_event, %struct.inotify_event* %88, i32 0, i32 2
%90 = load i32, i32* %89
%91 = load i32, i32* @IN_IGNORED
%92 = and i32 %90, %91
%93 = icmp ne i32 %92, 0
br i1 %93, label %94, label %96
94: ; preds = %87
%95 = call i32 (i32, i8*, ...) @logMessage(i32 2, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.10, i64 0, i64 0))
br label %96
96: ; preds = %94, %87
%97 = load %struct.inotify_event*, %struct.inotify_event** %2
%98 = getelementptr inbounds %struct.inotify_event, %struct.inotify_event* %97, i32 0, i32 2
%99 = load i32, i32* %98
%100 = load i32, i32* @IN_Q_OVERFLOW
%101 = and i32 %99, %100
%102 = icmp ne i32 %101, 0
br i1 %102, label %103, label %105
103: ; preds = %96
%104 = call i32 (i32, i8*, ...) @logMessage(i32 2, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.11, i64 0, i64 0))
br label %105
105: ; preds = %103, %96
%106 = load %struct.inotify_event*, %struct.inotify_event** %2
%107 = getelementptr inbounds %struct.inotify_event, %struct.inotify_event* %106, i32 0, i32 2
%108 = load i32, i32* %107
%109 = load i32, i32* @IN_UNMOUNT
%110 = and i32 %108, %109
%111 = icmp ne i32 %110, 0
br i1 %111, label %112, label %114
112: ; preds = %105
%113 = call i32 (i32, i8*, ...) @logMessage(i32 2, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.12, i64 0, i64 0))
br label %114
114: ; preds = %112, %105
%115 = load %struct.inotify_event*, %struct.inotify_event** %2
%116 = getelementptr inbounds %struct.inotify_event, %struct.inotify_event* %115, i32 0, i32 3
%117 = load i32, i32* %116
%118 = icmp sgt i32 %117, 0
br i1 %118, label %119, label %124
119: ; preds = %114
%120 = load %struct.inotify_event*, %struct.inotify_event** %2
%121 = getelementptr inbounds %struct.inotify_event, %struct.inotify_event* %120, i32 0, i32 1
%122 = load i8*, i8** %121
%123 = call i32 (i32, i8*, ...) @logMessage(i32 2, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.13, i64 0, i64 0), i8* %122)
br label %124
124: ; preds = %119, %114
ret void
}

LLVM IR (-O2):
%struct.inotify_event = type { i32, i8*, i32, i32, i32 }
@.str = [68 x i8] c"Estructura de evWD=%d, evName=%s, evMask=%d, evLen=%d, evCookie=%d\0A\00"
@.str.1 = [14 x i8] c"==> wd = %d; \00"
@.str.2 = [15 x i8] c"cookie = %4d; \00"
@.str.3 = [8 x i8] c"mask = \00"
@IN_ISDIR = global i32 0
@.str.4 = [10 x i8] c"IN_ISDIR \00"
@IN_CREATE = global i32 0
@.str.5 = [11 x i8] c"IN_CREATE \00"
@IN_DELETE_SELF = global i32 0
@.str.6 = [16 x i8] c"IN_DELETE_SELF \00"
@IN_MOVE_SELF = global i32 0
@.str.7 = [14 x i8] c"IN_MOVE_SELF \00"
@IN_MOVED_FROM = global i32 0
@.str.8 = [15 x i8] c"IN_MOVED_FROM \00"
@IN_MOVED_TO = global i32 0
@.str.9 = [13 x i8] c"IN_MOVED_TO \00"
@IN_IGNORED = global i32 0
@.str.10 = [12 x i8] c"IN_IGNORED \00"
@IN_Q_OVERFLOW = global i32 0
@.str.11 = [15 x i8] c"IN_Q_OVERFLOW \00"
@IN_UNMOUNT = global i32 0
@.str.12 = [12 x i8] c"IN_UNMOUNT \00"
@.str.13 = [19 x i8] c" name = %s\0A\00"
define void @displayInotifyEvent(%struct.inotify_event* nocapture %0) {
%2 = getelementptr inbounds %struct.inotify_event, %struct.inotify_event* %0, i64 0, i32 0
%3 = load i32, i32* %2
%4 = getelementptr inbounds %struct.inotify_event, %struct.inotify_event* %0, i64 0, i32 1
%5 = load i8*, i8** %4
%6 = getelementptr inbounds %struct.inotify_event, %struct.inotify_event* %0, i64 0, i32 2
%7 = load i32, i32* %6
%8 = getelementptr inbounds %struct.inotify_event, %struct.inotify_event* %0, i64 0, i32 3
%9 = load i32, i32* %8
%10 = getelementptr inbounds %struct.inotify_event, %struct.inotify_event* %0, i64 0, i32 4
%11 = load i32, i32* %10
%12 = tail call i32 @printf(i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str, i64 0, i64 0), i32 %3, i8* %5, i32 %7, i32 %9, i32 %11)
%13 = load i32, i32* %2
%14 = tail call i32 (i32, i8*, ...) @logMessage(i32 2, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), i32 %13)
%15 = load i32, i32* %10
%16 = icmp sgt i32 %15, 0
br i1 %16, label %17, label %19
17: ; preds = %1
%18 = tail call i32 (i32, i8*, ...) @logMessage(i32 2, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.2, i64 0, i64 0), i32 %15)
br label %19
19: ; preds = %17, %1
%20 = tail call i32 (i32, i8*, ...) @logMessage(i32 2, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.3, i64 0, i64 0))
%21 = load i32, i32* %6
%22 = load i32, i32* @IN_ISDIR
%23 = and i32 %22, %21
%24 = icmp eq i32 %23, 0
br i1 %24, label %28, label %25
25: ; preds = %19
%26 = tail call i32 (i32, i8*, ...) @logMessage(i32 2, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.4, i64 0, i64 0))
%27 = load i32, i32* %6
br label %28
28: ; preds = %25, %19
%29 = phi i32 [ %27, %25 ], [ %21, %19 ]
%30 = load i32, i32* @IN_CREATE
%31 = and i32 %30, %29
%32 = icmp eq i32 %31, 0
br i1 %32, label %36, label %33
33: ; preds = %28
%34 = tail call i32 (i32, i8*, ...) @logMessage(i32 2, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.5, i64 0, i64 0))
%35 = load i32, i32* %6
br label %36
36: ; preds = %33, %28
%37 = phi i32 [ %35, %33 ], [ %29, %28 ]
%38 = load i32, i32* @IN_DELETE_SELF
%39 = and i32 %38, %37
%40 = icmp eq i32 %39, 0
br i1 %40, label %44, label %41
41: ; preds = %36
%42 = tail call i32 (i32, i8*, ...) @logMessage(i32 2, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.6, i64 0, i64 0))
%43 = load i32, i32* %6
br label %44
44: ; preds = %41, %36
%45 = phi i32 [ %43, %41 ], [ %37, %36 ]
%46 = load i32, i32* @IN_MOVE_SELF
%47 = and i32 %46, %45
%48 = icmp eq i32 %47, 0
br i1 %48, label %52, label %49
49: ; preds = %44
%50 = tail call i32 (i32, i8*, ...) @logMessage(i32 2, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.7, i64 0, i64 0))
%51 = load i32, i32* %6
br label %52
52: ; preds = %49, %44
%53 = phi i32 [ %51, %49 ], [ %45, %44 ]
%54 = load i32, i32* @IN_MOVED_FROM
%55 = and i32 %54, %53
%56 = icmp eq i32 %55, 0
br i1 %56, label %60, label %57
57: ; preds = %52
%58 = tail call i32 (i32, i8*, ...) @logMessage(i32 2, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.8, i64 0, i64 0))
%59 = load i32, i32* %6
br label %60
60: ; preds = %57, %52
%61 = phi i32 [ %59, %57 ], [ %53, %52 ]
%62 = load i32, i32* @IN_MOVED_TO
%63 = and i32 %62, %61
%64 = icmp eq i32 %63, 0
br i1 %64, label %68, label %65
65: ; preds = %60
%66 = tail call i32 (i32, i8*, ...) @logMessage(i32 2, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.9, i64 0, i64 0))
%67 = load i32, i32* %6
br label %68
68: ; preds = %65, %60
%69 = phi i32 [ %67, %65 ], [ %61, %60 ]
%70 = load i32, i32* @IN_IGNORED
%71 = and i32 %70, %69
%72 = icmp eq i32 %71, 0
br i1 %72, label %76, label %73
73: ; preds = %68
%74 = tail call i32 (i32, i8*, ...) @logMessage(i32 2, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.10, i64 0, i64 0))
%75 = load i32, i32* %6
br label %76
76: ; preds = %73, %68
%77 = phi i32 [ %75, %73 ], [ %69, %68 ]
%78 = load i32, i32* @IN_Q_OVERFLOW
%79 = and i32 %78, %77
%80 = icmp eq i32 %79, 0
br i1 %80, label %84, label %81
81: ; preds = %76
%82 = tail call i32 (i32, i8*, ...) @logMessage(i32 2, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.11, i64 0, i64 0))
%83 = load i32, i32* %6
br label %84
84: ; preds = %81, %76
%85 = phi i32 [ %83, %81 ], [ %77, %76 ]
%86 = load i32, i32* @IN_UNMOUNT
%87 = and i32 %86, %85
%88 = icmp eq i32 %87, 0
br i1 %88, label %91, label %89
89: ; preds = %84
%90 = tail call i32 (i32, i8*, ...) @logMessage(i32 2, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.12, i64 0, i64 0))
br label %91
91: ; preds = %89, %84
%92 = load i32, i32* %8
%93 = icmp sgt i32 %92, 0
br i1 %93, label %94, label %97
94: ; preds = %91
%95 = load i8*, i8** %4
%96 = tail call i32 (i32, i8*, ...) @logMessage(i32 2, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.13, i64 0, i64 0), i8* %95)
br label %97
97: ; preds = %94, %91
ret void
}