#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 */
typedef struct TYPE_37__ TYPE_1__;

/* Type definitions */
struct TYPE_37__ {
  int type;
};
typedef TYPE_1__ XEvent;
typedef int /*<<< orphan*/ FILE;
typedef int /*<<< orphan*/ Display;

/* Variables and functions */
#define ButtonPress 160
#define ButtonRelease 159
#define CirculateNotify 158
#define CirculateRequest 157
#define ClientMessage 156
#define ColormapNotify 155
#define ConfigureNotify 154
#define ConfigureRequest 153
#define CreateNotify 152
#define DestroyNotify 151
#define EnterNotify 150
#define Expose 149
#define FocusIn 148
#define FocusOut 147
#define GraphicsExpose 146
#define GravityNotify 145
#define KeyPress 144
#define KeyRelease 143
#define KeymapNotify 142
#define LeaveNotify 141
#define MapNotify 140
#define MapRequest 139
#define MappingNotify 138
#define MotionNotify 137
#define NoExpose 136
#define PropertyNotify 135
#define ReparentNotify 134
#define ResizeRequest 133
#define SelectionClear 132
#define SelectionNotify 131
#define SelectionRequest 130
#define UnmapNotify 129
#define VisibilityNotify 128
int /*<<< orphan*/ do_ButtonPress(int /*<<< orphan*/ *, TYPE_1__ *);
int /*<<< orphan*/ do_ButtonRelease(int /*<<< orphan*/ *, TYPE_1__ *);
int /*<<< orphan*/ do_CirculateNotify(int /*<<< orphan*/ *, TYPE_1__ *);
int /*<<< orphan*/ do_CirculateRequest(int /*<<< orphan*/ *, TYPE_1__ *);
int /*<<< orphan*/ do_ClientMessage(int /*<<< orphan*/ *, TYPE_1__ *,
                                    int /*<<< orphan*/ *);
int /*<<< orphan*/ do_ColormapNotify(int /*<<< orphan*/ *, TYPE_1__ *);
int /*<<< orphan*/ do_ConfigureNotify(int /*<<< orphan*/ *, TYPE_1__ *);
int /*<<< orphan*/ do_ConfigureRequest(int /*<<< orphan*/ *, TYPE_1__ *);
int /*<<< orphan*/ do_CreateNotify(int /*<<< orphan*/ *, TYPE_1__ *);
int /*<<< orphan*/ do_DestroyNotify(int /*<<< orphan*/ *, TYPE_1__ *);
int /*<<< orphan*/ do_EnterNotify(int /*<<< orphan*/ *, TYPE_1__ *);
int /*<<< orphan*/ do_Expose(int /*<<< orphan*/ *, TYPE_1__ *);
int /*<<< orphan*/ do_FocusIn(int /*<<< orphan*/ *, TYPE_1__ *);
int /*<<< orphan*/ do_FocusOut(int /*<<< orphan*/ *, TYPE_1__ *);
int /*<<< orphan*/ do_GraphicsExpose(int /*<<< orphan*/ *, TYPE_1__ *);
int /*<<< orphan*/ do_GravityNotify(int /*<<< orphan*/ *, TYPE_1__ *);
int /*<<< orphan*/ do_KeyPress(int /*<<< orphan*/ *, TYPE_1__ *);
int /*<<< orphan*/ do_KeyRelease(int /*<<< orphan*/ *, TYPE_1__ *);
int /*<<< orphan*/ do_KeymapNotify(int /*<<< orphan*/ *, TYPE_1__ *);
int /*<<< orphan*/ do_LeaveNotify(int /*<<< orphan*/ *, TYPE_1__ *);
int /*<<< orphan*/ do_MapNotify(int /*<<< orphan*/ *, TYPE_1__ *);
int /*<<< orphan*/ do_MapRequest(int /*<<< orphan*/ *, TYPE_1__ *);
int /*<<< orphan*/ do_MappingNotify(int /*<<< orphan*/ *, TYPE_1__ *);
int /*<<< orphan*/ do_MotionNotify(int /*<<< orphan*/ *, TYPE_1__ *);
int /*<<< orphan*/ do_NoExpose(int /*<<< orphan*/ *, TYPE_1__ *);
int /*<<< orphan*/ do_PropertyNotify(int /*<<< orphan*/ *, TYPE_1__ *,
                                     int /*<<< orphan*/ *);
int /*<<< orphan*/ do_ReparentNotify(int /*<<< orphan*/ *, TYPE_1__ *);
int /*<<< orphan*/ do_ResizeRequest(int /*<<< orphan*/ *, TYPE_1__ *);
int /*<<< orphan*/ do_SelectionClear(int /*<<< orphan*/ *, TYPE_1__ *,
                                     int /*<<< orphan*/ *);
int /*<<< orphan*/ do_SelectionNotify(int /*<<< orphan*/ *, TYPE_1__ *,
                                      int /*<<< orphan*/ *);
int /*<<< orphan*/ do_SelectionRequest(int /*<<< orphan*/ *, TYPE_1__ *,
                                       int /*<<< orphan*/ *);
int /*<<< orphan*/ do_UnmapNotify(int /*<<< orphan*/ *, TYPE_1__ *);
int /*<<< orphan*/ do_VisibilityNotify(int /*<<< orphan*/ *, TYPE_1__ *);
int /*<<< orphan*/ fprintf(int /*<<< orphan*/ *, char *, int);
int /*<<< orphan*/ prologue(int /*<<< orphan*/ *, TYPE_1__ *, char *);
void print_event(FILE *out_f, XEvent *ev, Display *dpy) {
  switch (ev->type) {
  case KeyPress:
    prologue(out_f, ev, "KeyPress");
    do_KeyPress(out_f, ev);
    break;
  case KeyRelease:
    prologue(out_f, ev, "KeyRelease");
    do_KeyRelease(out_f, ev);
    break;
  case ButtonPress:
    prologue(out_f, ev, "ButtonPress");
    do_ButtonPress(out_f, ev);
    break;
  case ButtonRelease:
    prologue(out_f, ev, "ButtonRelease");
    do_ButtonRelease(out_f, ev);
    break;
  case MotionNotify:
    prologue(out_f, ev, "MotionNotify");
    do_MotionNotify(out_f, ev);
    break;
  case EnterNotify:
    prologue(out_f, ev, "EnterNotify");
    do_EnterNotify(out_f, ev);
    break;
  case LeaveNotify:
    prologue(out_f, ev, "LeaveNotify");
    do_LeaveNotify(out_f, ev);
    break;
  case FocusIn:
    prologue(out_f, ev, "FocusIn");
    do_FocusIn(out_f, ev);
    break;
  case FocusOut:
    prologue(out_f, ev, "FocusOut");
    do_FocusOut(out_f, ev);
    break;
  case KeymapNotify:
    prologue(out_f, ev, "KeymapNotify");
    do_KeymapNotify(out_f, ev);
    break;
  case Expose:
    prologue(out_f, ev, "Expose");
    do_Expose(out_f, ev);
    break;
  case GraphicsExpose:
    prologue(out_f, ev, "GraphicsExpose");
    do_GraphicsExpose(out_f, ev);
    break;
  case NoExpose:
    prologue(out_f, ev, "NoExpose");
    do_NoExpose(out_f, ev);
    break;
  case VisibilityNotify:
    prologue(out_f, ev, "VisibilityNotify");
    do_VisibilityNotify(out_f, ev);
    break;
  case CreateNotify:
    prologue(out_f, ev, "CreateNotify");
    do_CreateNotify(out_f, ev);
    break;
  case DestroyNotify:
    prologue(out_f, ev, "DestroyNotify");
    do_DestroyNotify(out_f, ev);
    break;
  case UnmapNotify:
    prologue(out_f, ev, "UnmapNotify");
    do_UnmapNotify(out_f, ev);
    break;
  case MapNotify:
    prologue(out_f, ev, "MapNotify");
    do_MapNotify(out_f, ev);
    break;
  case MapRequest:
    prologue(out_f, ev, "MapRequest");
    do_MapRequest(out_f, ev);
    break;
  case ReparentNotify:
    prologue(out_f, ev, "ReparentNotify");
    do_ReparentNotify(out_f, ev);
    break;
  case ConfigureNotify:
    prologue(out_f, ev, "ConfigureNotify");
    do_ConfigureNotify(out_f, ev);
    break;
  case ConfigureRequest:
    prologue(out_f, ev, "ConfigureRequest");
    do_ConfigureRequest(out_f, ev);
    break;
  case GravityNotify:
    prologue(out_f, ev, "GravityNotify");
    do_GravityNotify(out_f, ev);
    break;
  case ResizeRequest:
    prologue(out_f, ev, "ResizeRequest");
    do_ResizeRequest(out_f, ev);
    break;
  case CirculateNotify:
    prologue(out_f, ev, "CirculateNotify");
    do_CirculateNotify(out_f, ev);
    break;
  case CirculateRequest:
    prologue(out_f, ev, "CirculateRequest");
    do_CirculateRequest(out_f, ev);
    break;
  case PropertyNotify:
    prologue(out_f, ev, "PropertyNotify");
    do_PropertyNotify(out_f, ev, dpy);
    break;
  case SelectionClear:
    prologue(out_f, ev, "SelectionClear");
    do_SelectionClear(out_f, ev, dpy);
    break;
  case SelectionRequest:
    prologue(out_f, ev, "SelectionRequest");
    do_SelectionRequest(out_f, ev, dpy);
    break;
  case SelectionNotify:
    prologue(out_f, ev, "SelectionNotify");
    do_SelectionNotify(out_f, ev, dpy);
    break;
  case ColormapNotify:
    prologue(out_f, ev, "ColormapNotify");
    do_ColormapNotify(out_f, ev);
    break;
  case ClientMessage:
    prologue(out_f, ev, "ClientMessage");
    do_ClientMessage(out_f, ev, dpy);
    break;
  case MappingNotify:
    prologue(out_f, ev, "MappingNotify");
    do_MappingNotify(out_f, ev);
    break;
  default:
    fprintf(out_f, "Unknown event type %d\n", ev->type);
    break;
  }
}


x86 assembly (clang, -O0):
<print_event>:
push   %rbp
mov    %rsp,%rbp
sub    $0x20,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
add    $0xffffff80,%eax
mov    %eax,%ecx
mov    %rcx,-0x20(%rbp)
sub    $0x20,%eax
ja     186a <print_event+0x53a>
mov    -0x20(%rbp),%rax
lea    0xc99(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    0xd05(%rip),%rdx
call   1220 <prologue@plt>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
call   1100 <do_KeyPress@plt>
jmp    1880 <print_event+0x550>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    0xce8(%rip),%rdx
call   1220 <prologue@plt>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
call   11c0 <do_KeyRelease@plt>
jmp    1880 <print_event+0x550>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    0xccd(%rip),%rdx
call   1220 <prologue@plt>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
call   11f0 <do_ButtonPress@plt>
jmp    1880 <print_event+0x550>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    0xcb3(%rip),%rdx
call   1220 <prologue@plt>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
call   1230 <do_ButtonRelease@plt>
jmp    1880 <print_event+0x550>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    0xc9b(%rip),%rdx
call   1220 <prologue@plt>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
call   11b0 <do_MotionNotify@plt>
jmp    1880 <print_event+0x550>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    0xc82(%rip),%rdx
call   1220 <prologue@plt>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
call   1090 <do_EnterNotify@plt>
jmp    1880 <print_event+0x550>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    0xc68(%rip),%rdx
call   1220 <prologue@plt>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
call   1140 <do_LeaveNotify@plt>
jmp    1880 <print_event+0x550>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    0xc4e(%rip),%rdx
call   1220 <prologue@plt>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
call   1200 <do_FocusIn@plt>
jmp    1880 <print_event+0x550>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    0xc30(%rip),%rdx
call   1220 <prologue@plt>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
call   1240 <do_FocusOut@plt>
jmp    1880 <print_event+0x550>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    0xc13(%rip),%rdx
call   1220 <prologue@plt>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
call   1190 <do_KeymapNotify@plt>
jmp    1880 <print_event+0x550>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    0xc0b(%rip),%rdx
call   1220 <prologue@plt>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
call   1070 <do_Expose@plt>
jmp    1880 <print_event+0x550>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    0xbd4(%rip),%rdx
call   1220 <prologue@plt>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
call   1150 <do_GraphicsExpose@plt>
jmp    1880 <print_event+0x550>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    0xbbd(%rip),%rdx
call   1220 <prologue@plt>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
call   10b0 <do_NoExpose@plt>
jmp    1880 <print_event+0x550>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    0xba0(%rip),%rdx
call   1220 <prologue@plt>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
call   1050 <do_VisibilityNotify@plt>
jmp    1880 <print_event+0x550>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    0xb8b(%rip),%rdx
call   1220 <prologue@plt>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
call   1160 <do_CreateNotify@plt>
jmp    1880 <print_event+0x550>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    0xb72(%rip),%rdx
call   1220 <prologue@plt>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
call   1030 <do_DestroyNotify@plt>
jmp    1880 <print_event+0x550>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    0xb5a(%rip),%rdx
call   1220 <prologue@plt>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
call   1080 <do_UnmapNotify@plt>
jmp    1880 <print_event+0x550>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    0xb40(%rip),%rdx
call   1220 <prologue@plt>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
call   10c0 <do_MapNotify@plt>
jmp    1880 <print_event+0x550>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    0xb24(%rip),%rdx
call   1220 <prologue@plt>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
call   11d0 <do_MapRequest@plt>
jmp    1880 <print_event+0x550>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    0xb09(%rip),%rdx
call   1220 <prologue@plt>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
call   1210 <do_ReparentNotify@plt>
jmp    1880 <print_event+0x550>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    0xaf2(%rip),%rdx
call   1220 <prologue@plt>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
call   1250 <do_ConfigureNotify@plt>
jmp    1880 <print_event+0x550>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    0xadc(%rip),%rdx
call   1220 <prologue@plt>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
call   1040 <do_ConfigureRequest@plt>
jmp    1880 <print_event+0x550>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    0xac7(%rip),%rdx
call   1220 <prologue@plt>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
call   10d0 <do_GravityNotify@plt>
jmp    1880 <print_event+0x550>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    0xaaf(%rip),%rdx
call   1220 <prologue@plt>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
call   11e0 <do_ResizeRequest@plt>
jmp    1880 <print_event+0x550>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    0xa97(%rip),%rdx
call   1220 <prologue@plt>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
call   1110 <do_CirculateNotify@plt>
jmp    1880 <print_event+0x550>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    0xa81(%rip),%rdx
call   1220 <prologue@plt>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
call   1130 <do_CirculateRequest@plt>
jmp    1880 <print_event+0x550>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    0xa6c(%rip),%rdx
call   1220 <prologue@plt>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x18(%rbp),%rdx
call   1180 <do_PropertyNotify@plt>
jmp    1880 <print_event+0x550>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    0xa51(%rip),%rdx
call   1220 <prologue@plt>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x18(%rbp),%rdx
call   10f0 <do_SelectionClear@plt>
jmp    1880 <print_event+0x550>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    0xa36(%rip),%rdx
call   1220 <prologue@plt>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x18(%rbp),%rdx
call   10e0 <do_SelectionRequest@plt>
jmp    1880 <print_event+0x550>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    0xa1d(%rip),%rdx
call   1220 <prologue@plt>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x18(%rbp),%rdx
call   1060 <do_SelectionNotify@plt>
jmp    1880 <print_event+0x550>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    0xa03(%rip),%rdx
call   1220 <prologue@plt>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
call   11a0 <do_ColormapNotify@plt>
jmp    1880 <print_event+0x550>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    0x9ec(%rip),%rdx
call   1220 <prologue@plt>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x18(%rbp),%rdx
call   10a0 <do_ClientMessage@plt>
jmp    1880 <print_event+0x550>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
lea    0x9d0(%rip),%rdx
call   1220 <prologue@plt>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
call   1170 <do_MappingNotify@plt>
jmp    1880 <print_event+0x550>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rax
mov    (%rax),%edx
lea    0x9b6(%rip),%rsi
call   1120 <fprintf@plt>
add    $0x20,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<print_event>:
push   %r15
push   %r14
push   %rbx
mov    %rdx,%rbx
mov    %rdi,%r14
mov    (%rsi),%edx
lea    -0x80(%rdx),%eax
cmp    $0x20,%eax
ja     137a <print_event+0x4a>
mov    %rsi,%r15
lea    0xcb1(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0xdae(%rip),%rdx
mov    %r14,%rdi
mov    %r15,%rsi
call   1220 <prologue@plt>
mov    %r14,%rdi
mov    %r15,%rsi
pop    %rbx
pop    %r14
pop    %r15
jmp    1050 <do_VisibilityNotify@plt>
lea    0xeb0(%rip),%rsi
mov    %r14,%rdi
pop    %rbx
pop    %r14
pop    %r15
jmp    1120 <fprintf@plt>
lea    0xda4(%rip),%rdx
mov    %r14,%rdi
mov    %r15,%rsi
call   1220 <prologue@plt>
mov    %r14,%rdi
mov    %r15,%rsi
pop    %rbx
pop    %r14
pop    %r15
jmp    1080 <do_UnmapNotify@plt>
lea    0xe2e(%rip),%rdx
mov    %r14,%rdi
mov    %r15,%rsi
call   1220 <prologue@plt>
mov    %r14,%rdi
mov    %r15,%rsi
mov    %rbx,%rdx
pop    %rbx
pop    %r14
pop    %r15
jmp    10e0 <do_SelectionRequest@plt>
lea    0xe1a(%rip),%rdx
mov    %r14,%rdi
mov    %r15,%rsi
call   1220 <prologue@plt>
mov    %r14,%rdi
mov    %r15,%rsi
mov    %rbx,%rdx
pop    %rbx
pop    %r14
pop    %r15
jmp    1060 <do_SelectionNotify@plt>
lea    0xdd5(%rip),%rdx
mov    %r14,%rdi
mov    %r15,%rsi
call   1220 <prologue@plt>
mov    %r14,%rdi
mov    %r15,%rsi
mov    %rbx,%rdx
pop    %rbx
pop    %r14
pop    %r15
jmp    10f0 <do_SelectionClear@plt>
lea    0xd72(%rip),%rdx
mov    %r14,%rdi
mov    %r15,%rsi
call   1220 <prologue@plt>
mov    %r14,%rdi
mov    %r15,%rsi
pop    %rbx
pop    %r14
pop    %r15
jmp    11e0 <do_ResizeRequest@plt>
lea    0xd12(%rip),%rdx
mov    %r14,%rdi
mov    %r15,%rsi
call   1220 <prologue@plt>
mov    %r14,%rdi
mov    %r15,%rsi
pop    %rbx
pop    %r14
pop    %r15
jmp    1210 <do_ReparentNotify@plt>
lea    0xd5d(%rip),%rdx
mov    %r14,%rdi
mov    %r15,%rsi
call   1220 <prologue@plt>
mov    %r14,%rdi
mov    %r15,%rsi
mov    %rbx,%rdx
pop    %rbx
pop    %r14
pop    %r15
jmp    1180 <do_PropertyNotify@plt>
lea    0xc75(%rip),%rdx
mov    %r14,%rdi
mov    %r15,%rsi
call   1220 <prologue@plt>
mov    %r14,%rdi
mov    %r15,%rsi
pop    %rbx
pop    %r14
pop    %r15
jmp    10b0 <do_NoExpose@plt>
lea    0xc01(%rip),%rdx
mov    %r14,%rdi
mov    %r15,%rsi
call   1220 <prologue@plt>
mov    %r14,%rdi
mov    %r15,%rsi
pop    %rbx
pop    %r14
pop    %r15
jmp    11b0 <do_MotionNotify@plt>
lea    0xd50(%rip),%rdx
mov    %r14,%rdi
mov    %r15,%rsi
call   1220 <prologue@plt>
mov    %r14,%rdi
mov    %r15,%rsi
pop    %rbx
pop    %r14
pop    %r15
jmp    1170 <do_MappingNotify@plt>
lea    0xc5a(%rip),%rdx
mov    %r14,%rdi
mov    %r15,%rsi
call   1220 <prologue@plt>
mov    %r14,%rdi
mov    %r15,%rsi
pop    %rbx
pop    %r14
pop    %r15
jmp    11d0 <do_MapRequest@plt>
lea    0xc2e(%rip),%rdx
mov    %r14,%rdi
mov    %r15,%rsi
call   1220 <prologue@plt>
mov    %r14,%rdi
mov    %r15,%rsi
pop    %rbx
pop    %r14
pop    %r15
jmp    10c0 <do_MapNotify@plt>
lea    0xb92(%rip),%rdx
mov    %r14,%rdi
mov    %r15,%rsi
call   1220 <prologue@plt>
mov    %r14,%rdi
mov    %r15,%rsi
pop    %rbx
pop    %r14
pop    %r15
jmp    1140 <do_LeaveNotify@plt>
lea    0xb8d(%rip),%rdx
mov    %r14,%rdi
mov    %r15,%rsi
call   1220 <prologue@plt>
mov    %r14,%rdi
mov    %r15,%rsi
pop    %rbx
pop    %r14
pop    %r15
jmp    1190 <do_KeymapNotify@plt>
lea    0xb10(%rip),%rdx
mov    %r14,%rdi
mov    %r15,%rsi
call   1220 <prologue@plt>
mov    %r14,%rdi
mov    %r15,%rsi
pop    %rbx
pop    %r14
pop    %r15
jmp    11c0 <do_KeyRelease@plt>
lea    0xae5(%rip),%rdx
mov    %r14,%rdi
mov    %r15,%rsi
call   1220 <prologue@plt>
mov    %r14,%rdi
mov    %r15,%rsi
pop    %rbx
pop    %r14
pop    %r15
jmp    1100 <do_KeyPress@plt>
lea    0xbc9(%rip),%rdx
mov    %r14,%rdi
mov    %r15,%rsi
call   1220 <prologue@plt>
mov    %r14,%rdi
mov    %r15,%rsi
pop    %rbx
pop    %r14
pop    %r15
jmp    10d0 <do_GravityNotify@plt>
lea    0xb12(%rip),%rdx
mov    %r14,%rdi
mov    %r15,%rsi
call   1220 <prologue@plt>
mov    %r14,%rdi
mov    %r15,%rsi
pop    %rbx
pop    %r14
pop    %r15
jmp    1150 <do_GraphicsExpose@plt>
lea    0xada(%rip),%rdx
mov    %r14,%rdi
mov    %r15,%rsi
call   1220 <prologue@plt>
mov    %r14,%rdi
mov    %r15,%rsi
pop    %rbx
pop    %r14
pop    %r15
jmp    1240 <do_FocusOut@plt>
lea    0xab0(%rip),%rdx
mov    %r14,%rdi
mov    %r15,%rsi
call   1220 <prologue@plt>
mov    %r14,%rdi
mov    %r15,%rsi
pop    %rbx
pop    %r14
pop    %r15
jmp    1200 <do_FocusIn@plt>
lea    0xabd(%rip),%rdx
mov    %r14,%rdi
mov    %r15,%rsi
call   1220 <prologue@plt>
mov    %r14,%rdi
mov    %r15,%rsi
pop    %rbx
pop    %r14
pop    %r15
jmp    1070 <do_Expose@plt>
lea    0xa54(%rip),%rdx
mov    %r14,%rdi
mov    %r15,%rsi
call   1220 <prologue@plt>
mov    %r14,%rdi
mov    %r15,%rsi
pop    %rbx
pop    %r14
pop    %r15
jmp    1090 <do_EnterNotify@plt>
lea    0xa9e(%rip),%rdx
mov    %r14,%rdi
mov    %r15,%rsi
call   1220 <prologue@plt>
mov    %r14,%rdi
mov    %r15,%rsi
pop    %rbx
pop    %r14
pop    %r15
jmp    1030 <do_DestroyNotify@plt>
lea    0xa6f(%rip),%rdx
mov    %r14,%rdi
mov    %r15,%rsi
call   1220 <prologue@plt>
mov    %r14,%rdi
mov    %r15,%rsi
pop    %rbx
pop    %r14
pop    %r15
jmp    1160 <do_CreateNotify@plt>
lea    0xaa8(%rip),%rdx
mov    %r14,%rdi
mov    %r15,%rsi
call   1220 <prologue@plt>
mov    %r14,%rdi
mov    %r15,%rsi
pop    %rbx
pop    %r14
pop    %r15
jmp    1040 <do_ConfigureRequest@plt>
lea    0xa76(%rip),%rdx
mov    %r14,%rdi
mov    %r15,%rsi
call   1220 <prologue@plt>
mov    %r14,%rdi
mov    %r15,%rsi
pop    %rbx
pop    %r14
pop    %r15
jmp    1250 <do_ConfigureNotify@plt>
lea    0xaf1(%rip),%rdx
mov    %r14,%rdi
mov    %r15,%rsi
call   1220 <prologue@plt>
mov    %r14,%rdi
mov    %r15,%rsi
pop    %rbx
pop    %r14
pop    %r15
jmp    11a0 <do_ColormapNotify@plt>
lea    0xade(%rip),%rdx
mov    %r14,%rdi
mov    %r15,%rsi
call   1220 <prologue@plt>
mov    %r14,%rdi
mov    %r15,%rsi
mov    %rbx,%rdx
pop    %rbx
pop    %r14
pop    %r15
jmp    10a0 <do_ClientMessage@plt>
lea    0xa5a(%rip),%rdx
mov    %r14,%rdi
mov    %r15,%rsi
call   1220 <prologue@plt>
mov    %r14,%rdi
mov    %r15,%rsi
pop    %rbx
pop    %r14
pop    %r15
jmp    1130 <do_CirculateRequest@plt>
lea    0xa28(%rip),%rdx
mov    %r14,%rdi
mov    %r15,%rsi
call   1220 <prologue@plt>
mov    %r14,%rdi
mov    %r15,%rsi
pop    %rbx
pop    %r14
pop    %r15
jmp    1110 <do_CirculateNotify@plt>
lea    0x904(%rip),%rdx
mov    %r14,%rdi
mov    %r15,%rsi
call   1220 <prologue@plt>
mov    %r14,%rdi
mov    %r15,%rsi
pop    %rbx
pop    %r14
pop    %r15
jmp    1230 <do_ButtonRelease@plt>
lea    0x8d6(%rip),%rdx
mov    %r14,%rdi
mov    %r15,%rsi
call   1220 <prologue@plt>
mov    %r14,%rdi
mov    %r15,%rsi
pop    %rbx
pop    %r14
pop    %r15
jmp    11f0 <do_ButtonPress@plt>

LLVM IR (-O0):
%struct.TYPE_37__ = type { i32 }
@.str = [9 x i8] c"KeyPress\00"
@.str.1 = [11 x i8] c"KeyRelease\00"
@.str.2 = [12 x i8] c"ButtonPress\00"
@.str.3 = [14 x i8] c"ButtonRelease\00"
@.str.4 = [13 x i8] c"MotionNotify\00"
@.str.5 = [12 x i8] c"EnterNotify\00"
@.str.6 = [12 x i8] c"LeaveNotify\00"
@.str.7 = [8 x i8] c"FocusIn\00"
@.str.8 = [9 x i8] c"FocusOut\00"
@.str.9 = [13 x i8] c"KeymapNotify\00"
@.str.10 = [7 x i8] c"Expose\00"
@.str.11 = [15 x i8] c"GraphicsExpose\00"
@.str.12 = [9 x i8] c"NoExpose\00"
@.str.13 = [17 x i8] c"VisibilityNotify\00"
@.str.14 = [13 x i8] c"CreateNotify\00"
@.str.15 = [14 x i8] c"DestroyNotify\00"
@.str.16 = [12 x i8] c"UnmapNotify\00"
@.str.17 = [10 x i8] c"MapNotify\00"
@.str.18 = [11 x i8] c"MapRequest\00"
@.str.19 = [15 x i8] c"ReparentNotify\00"
@.str.20 = [16 x i8] c"ConfigureNotify\00"
@.str.21 = [17 x i8] c"ConfigureRequest\00"
@.str.22 = [14 x i8] c"GravityNotify\00"
@.str.23 = [14 x i8] c"ResizeRequest\00"
@.str.24 = [16 x i8] c"CirculateNotify\00"
@.str.25 = [17 x i8] c"CirculateRequest\00"
@.str.26 = [15 x i8] c"PropertyNotify\00"
@.str.27 = [15 x i8] c"SelectionClear\00"
@.str.28 = [17 x i8] c"SelectionRequest\00"
@.str.29 = [16 x i8] c"SelectionNotify\00"
@.str.30 = [15 x i8] c"ColormapNotify\00"
@.str.31 = [14 x i8] c"ClientMessage\00"
@.str.32 = [14 x i8] c"MappingNotify\00"
@.str.33 = [23 x i8] c"Unknown event type %d\0A\00"
define void @print_event(i32* %0, %struct.TYPE_37__* %1, i32* %2) {
%4 = alloca i32*
%5 = alloca %struct.TYPE_37__*
%6 = alloca i32*
store i32* %0, i32** %4
store %struct.TYPE_37__* %1, %struct.TYPE_37__** %5
store i32* %2, i32** %6
%7 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%8 = getelementptr inbounds %struct.TYPE_37__, %struct.TYPE_37__* %7, i32 0, i32 0
%9 = load i32, i32* %8
switch i32 %9, label %246 [
i32 144, label %10
i32 143, label %17
i32 160, label %24
i32 159, label %31
i32 137, label %38
i32 150, label %45
i32 141, label %52
i32 148, label %59
i32 147, label %66
i32 142, label %73
i32 149, label %80
i32 146, label %87
i32 136, label %94
i32 128, label %101
i32 152, label %108
i32 151, label %115
i32 129, label %122
i32 140, label %129
i32 139, label %136
i32 134, label %143
i32 154, label %150
i32 153, label %157
i32 145, label %164
i32 133, label %171
i32 158, label %178
i32 157, label %185
i32 135, label %192
i32 132, label %200
i32 130, label %208
i32 131, label %216
i32 155, label %224
i32 156, label %231
i32 138, label %239
]
10: ; preds = %3
%11 = load i32*, i32** %4
%12 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%13 = call i32 @prologue(i32* %11, %struct.TYPE_37__* %12, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str, i64 0, i64 0))
%14 = load i32*, i32** %4
%15 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%16 = call i32 @do_KeyPress(i32* %14, %struct.TYPE_37__* %15)
br label %252
17: ; preds = %3
%18 = load i32*, i32** %4
%19 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%20 = call i32 @prologue(i32* %18, %struct.TYPE_37__* %19, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.1, i64 0, i64 0))
%21 = load i32*, i32** %4
%22 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%23 = call i32 @do_KeyRelease(i32* %21, %struct.TYPE_37__* %22)
br label %252
24: ; preds = %3
%25 = load i32*, i32** %4
%26 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%27 = call i32 @prologue(i32* %25, %struct.TYPE_37__* %26, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.2, i64 0, i64 0))
%28 = load i32*, i32** %4
%29 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%30 = call i32 @do_ButtonPress(i32* %28, %struct.TYPE_37__* %29)
br label %252
31: ; preds = %3
%32 = load i32*, i32** %4
%33 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%34 = call i32 @prologue(i32* %32, %struct.TYPE_37__* %33, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.3, i64 0, i64 0))
%35 = load i32*, i32** %4
%36 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%37 = call i32 @do_ButtonRelease(i32* %35, %struct.TYPE_37__* %36)
br label %252
38: ; preds = %3
%39 = load i32*, i32** %4
%40 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%41 = call i32 @prologue(i32* %39, %struct.TYPE_37__* %40, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.4, i64 0, i64 0))
%42 = load i32*, i32** %4
%43 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%44 = call i32 @do_MotionNotify(i32* %42, %struct.TYPE_37__* %43)
br label %252
45: ; preds = %3
%46 = load i32*, i32** %4
%47 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%48 = call i32 @prologue(i32* %46, %struct.TYPE_37__* %47, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.5, i64 0, i64 0))
%49 = load i32*, i32** %4
%50 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%51 = call i32 @do_EnterNotify(i32* %49, %struct.TYPE_37__* %50)
br label %252
52: ; preds = %3
%53 = load i32*, i32** %4
%54 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%55 = call i32 @prologue(i32* %53, %struct.TYPE_37__* %54, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.6, i64 0, i64 0))
%56 = load i32*, i32** %4
%57 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%58 = call i32 @do_LeaveNotify(i32* %56, %struct.TYPE_37__* %57)
br label %252
59: ; preds = %3
%60 = load i32*, i32** %4
%61 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%62 = call i32 @prologue(i32* %60, %struct.TYPE_37__* %61, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.7, i64 0, i64 0))
%63 = load i32*, i32** %4
%64 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%65 = call i32 @do_FocusIn(i32* %63, %struct.TYPE_37__* %64)
br label %252
66: ; preds = %3
%67 = load i32*, i32** %4
%68 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%69 = call i32 @prologue(i32* %67, %struct.TYPE_37__* %68, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.8, i64 0, i64 0))
%70 = load i32*, i32** %4
%71 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%72 = call i32 @do_FocusOut(i32* %70, %struct.TYPE_37__* %71)
br label %252
73: ; preds = %3
%74 = load i32*, i32** %4
%75 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%76 = call i32 @prologue(i32* %74, %struct.TYPE_37__* %75, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.9, i64 0, i64 0))
%77 = load i32*, i32** %4
%78 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%79 = call i32 @do_KeymapNotify(i32* %77, %struct.TYPE_37__* %78)
br label %252
80: ; preds = %3
%81 = load i32*, i32** %4
%82 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%83 = call i32 @prologue(i32* %81, %struct.TYPE_37__* %82, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.10, i64 0, i64 0))
%84 = load i32*, i32** %4
%85 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%86 = call i32 @do_Expose(i32* %84, %struct.TYPE_37__* %85)
br label %252
87: ; preds = %3
%88 = load i32*, i32** %4
%89 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%90 = call i32 @prologue(i32* %88, %struct.TYPE_37__* %89, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.11, i64 0, i64 0))
%91 = load i32*, i32** %4
%92 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%93 = call i32 @do_GraphicsExpose(i32* %91, %struct.TYPE_37__* %92)
br label %252
94: ; preds = %3
%95 = load i32*, i32** %4
%96 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%97 = call i32 @prologue(i32* %95, %struct.TYPE_37__* %96, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.12, i64 0, i64 0))
%98 = load i32*, i32** %4
%99 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%100 = call i32 @do_NoExpose(i32* %98, %struct.TYPE_37__* %99)
br label %252
101: ; preds = %3
%102 = load i32*, i32** %4
%103 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%104 = call i32 @prologue(i32* %102, %struct.TYPE_37__* %103, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.13, i64 0, i64 0))
%105 = load i32*, i32** %4
%106 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%107 = call i32 @do_VisibilityNotify(i32* %105, %struct.TYPE_37__* %106)
br label %252
108: ; preds = %3
%109 = load i32*, i32** %4
%110 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%111 = call i32 @prologue(i32* %109, %struct.TYPE_37__* %110, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.14, i64 0, i64 0))
%112 = load i32*, i32** %4
%113 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%114 = call i32 @do_CreateNotify(i32* %112, %struct.TYPE_37__* %113)
br label %252
115: ; preds = %3
%116 = load i32*, i32** %4
%117 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%118 = call i32 @prologue(i32* %116, %struct.TYPE_37__* %117, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.15, i64 0, i64 0))
%119 = load i32*, i32** %4
%120 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%121 = call i32 @do_DestroyNotify(i32* %119, %struct.TYPE_37__* %120)
br label %252
122: ; preds = %3
%123 = load i32*, i32** %4
%124 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%125 = call i32 @prologue(i32* %123, %struct.TYPE_37__* %124, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.16, i64 0, i64 0))
%126 = load i32*, i32** %4
%127 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%128 = call i32 @do_UnmapNotify(i32* %126, %struct.TYPE_37__* %127)
br label %252
129: ; preds = %3
%130 = load i32*, i32** %4
%131 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%132 = call i32 @prologue(i32* %130, %struct.TYPE_37__* %131, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.17, i64 0, i64 0))
%133 = load i32*, i32** %4
%134 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%135 = call i32 @do_MapNotify(i32* %133, %struct.TYPE_37__* %134)
br label %252
136: ; preds = %3
%137 = load i32*, i32** %4
%138 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%139 = call i32 @prologue(i32* %137, %struct.TYPE_37__* %138, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.18, i64 0, i64 0))
%140 = load i32*, i32** %4
%141 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%142 = call i32 @do_MapRequest(i32* %140, %struct.TYPE_37__* %141)
br label %252
143: ; preds = %3
%144 = load i32*, i32** %4
%145 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%146 = call i32 @prologue(i32* %144, %struct.TYPE_37__* %145, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.19, i64 0, i64 0))
%147 = load i32*, i32** %4
%148 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%149 = call i32 @do_ReparentNotify(i32* %147, %struct.TYPE_37__* %148)
br label %252
150: ; preds = %3
%151 = load i32*, i32** %4
%152 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%153 = call i32 @prologue(i32* %151, %struct.TYPE_37__* %152, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.20, i64 0, i64 0))
%154 = load i32*, i32** %4
%155 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%156 = call i32 @do_ConfigureNotify(i32* %154, %struct.TYPE_37__* %155)
br label %252
157: ; preds = %3
%158 = load i32*, i32** %4
%159 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%160 = call i32 @prologue(i32* %158, %struct.TYPE_37__* %159, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.21, i64 0, i64 0))
%161 = load i32*, i32** %4
%162 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%163 = call i32 @do_ConfigureRequest(i32* %161, %struct.TYPE_37__* %162)
br label %252
164: ; preds = %3
%165 = load i32*, i32** %4
%166 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%167 = call i32 @prologue(i32* %165, %struct.TYPE_37__* %166, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.22, i64 0, i64 0))
%168 = load i32*, i32** %4
%169 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%170 = call i32 @do_GravityNotify(i32* %168, %struct.TYPE_37__* %169)
br label %252
171: ; preds = %3
%172 = load i32*, i32** %4
%173 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%174 = call i32 @prologue(i32* %172, %struct.TYPE_37__* %173, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.23, i64 0, i64 0))
%175 = load i32*, i32** %4
%176 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%177 = call i32 @do_ResizeRequest(i32* %175, %struct.TYPE_37__* %176)
br label %252
178: ; preds = %3
%179 = load i32*, i32** %4
%180 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%181 = call i32 @prologue(i32* %179, %struct.TYPE_37__* %180, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.24, i64 0, i64 0))
%182 = load i32*, i32** %4
%183 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%184 = call i32 @do_CirculateNotify(i32* %182, %struct.TYPE_37__* %183)
br label %252
185: ; preds = %3
%186 = load i32*, i32** %4
%187 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%188 = call i32 @prologue(i32* %186, %struct.TYPE_37__* %187, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.25, i64 0, i64 0))
%189 = load i32*, i32** %4
%190 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%191 = call i32 @do_CirculateRequest(i32* %189, %struct.TYPE_37__* %190)
br label %252
192: ; preds = %3
%193 = load i32*, i32** %4
%194 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%195 = call i32 @prologue(i32* %193, %struct.TYPE_37__* %194, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.26, i64 0, i64 0))
%196 = load i32*, i32** %4
%197 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%198 = load i32*, i32** %6
%199 = call i32 @do_PropertyNotify(i32* %196, %struct.TYPE_37__* %197, i32* %198)
br label %252
200: ; preds = %3
%201 = load i32*, i32** %4
%202 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%203 = call i32 @prologue(i32* %201, %struct.TYPE_37__* %202, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.27, i64 0, i64 0))
%204 = load i32*, i32** %4
%205 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%206 = load i32*, i32** %6
%207 = call i32 @do_SelectionClear(i32* %204, %struct.TYPE_37__* %205, i32* %206)
br label %252
208: ; preds = %3
%209 = load i32*, i32** %4
%210 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%211 = call i32 @prologue(i32* %209, %struct.TYPE_37__* %210, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.28, i64 0, i64 0))
%212 = load i32*, i32** %4
%213 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%214 = load i32*, i32** %6
%215 = call i32 @do_SelectionRequest(i32* %212, %struct.TYPE_37__* %213, i32* %214)
br label %252
216: ; preds = %3
%217 = load i32*, i32** %4
%218 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%219 = call i32 @prologue(i32* %217, %struct.TYPE_37__* %218, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.29, i64 0, i64 0))
%220 = load i32*, i32** %4
%221 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%222 = load i32*, i32** %6
%223 = call i32 @do_SelectionNotify(i32* %220, %struct.TYPE_37__* %221, i32* %222)
br label %252
224: ; preds = %3
%225 = load i32*, i32** %4
%226 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%227 = call i32 @prologue(i32* %225, %struct.TYPE_37__* %226, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.30, i64 0, i64 0))
%228 = load i32*, i32** %4
%229 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%230 = call i32 @do_ColormapNotify(i32* %228, %struct.TYPE_37__* %229)
br label %252
231: ; preds = %3
%232 = load i32*, i32** %4
%233 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%234 = call i32 @prologue(i32* %232, %struct.TYPE_37__* %233, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.31, i64 0, i64 0))
%235 = load i32*, i32** %4
%236 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%237 = load i32*, i32** %6
%238 = call i32 @do_ClientMessage(i32* %235, %struct.TYPE_37__* %236, i32* %237)
br label %252
239: ; preds = %3
%240 = load i32*, i32** %4
%241 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%242 = call i32 @prologue(i32* %240, %struct.TYPE_37__* %241, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.32, i64 0, i64 0))
%243 = load i32*, i32** %4
%244 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%245 = call i32 @do_MappingNotify(i32* %243, %struct.TYPE_37__* %244)
br label %252
246: ; preds = %3
%247 = load i32*, i32** %4
%248 = load %struct.TYPE_37__*, %struct.TYPE_37__** %5
%249 = getelementptr inbounds %struct.TYPE_37__, %struct.TYPE_37__* %248, i32 0, i32 0
%250 = load i32, i32* %249
%251 = call i32 @fprintf(i32* %247, i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.33, i64 0, i64 0), i32 %250)
br label %252
252: ; preds = %246, %239, %231, %224, %216, %208, %200, %192, %185, %178, %171, %164, %157, %150, %143, %136, %129, %122, %115, %108, %101, %94, %87, %80, %73, %66, %59, %52, %45, %38, %31, %24, %17, %10
ret void
}

LLVM IR (-O2):
%struct.TYPE_37__ = type { i32 }
@.str = [9 x i8] c"KeyPress\00"
@.str.1 = [11 x i8] c"KeyRelease\00"
@.str.2 = [12 x i8] c"ButtonPress\00"
@.str.3 = [14 x i8] c"ButtonRelease\00"
@.str.4 = [13 x i8] c"MotionNotify\00"
@.str.5 = [12 x i8] c"EnterNotify\00"
@.str.6 = [12 x i8] c"LeaveNotify\00"
@.str.7 = [8 x i8] c"FocusIn\00"
@.str.8 = [9 x i8] c"FocusOut\00"
@.str.9 = [13 x i8] c"KeymapNotify\00"
@.str.10 = [7 x i8] c"Expose\00"
@.str.11 = [15 x i8] c"GraphicsExpose\00"
@.str.12 = [9 x i8] c"NoExpose\00"
@.str.13 = [17 x i8] c"VisibilityNotify\00"
@.str.14 = [13 x i8] c"CreateNotify\00"
@.str.15 = [14 x i8] c"DestroyNotify\00"
@.str.16 = [12 x i8] c"UnmapNotify\00"
@.str.17 = [10 x i8] c"MapNotify\00"
@.str.18 = [11 x i8] c"MapRequest\00"
@.str.19 = [15 x i8] c"ReparentNotify\00"
@.str.20 = [16 x i8] c"ConfigureNotify\00"
@.str.21 = [17 x i8] c"ConfigureRequest\00"
@.str.22 = [14 x i8] c"GravityNotify\00"
@.str.23 = [14 x i8] c"ResizeRequest\00"
@.str.24 = [16 x i8] c"CirculateNotify\00"
@.str.25 = [17 x i8] c"CirculateRequest\00"
@.str.26 = [15 x i8] c"PropertyNotify\00"
@.str.27 = [15 x i8] c"SelectionClear\00"
@.str.28 = [17 x i8] c"SelectionRequest\00"
@.str.29 = [16 x i8] c"SelectionNotify\00"
@.str.30 = [15 x i8] c"ColormapNotify\00"
@.str.31 = [14 x i8] c"ClientMessage\00"
@.str.32 = [14 x i8] c"MappingNotify\00"
@.str.33 = [23 x i8] c"Unknown event type %d\0A\00"
define void @print_event(i32* %0, %struct.TYPE_37__* %1, i32* %2) {
%4 = getelementptr inbounds %struct.TYPE_37__, %struct.TYPE_37__* %1, i64 0, i32 0
%5 = load i32, i32* %4
switch i32 %5, label %105 [
i32 144, label %6
i32 143, label %9
i32 160, label %12
i32 159, label %15
i32 137, label %18
i32 150, label %21
i32 141, label %24
i32 148, label %27
i32 147, label %30
i32 142, label %33
i32 149, label %36
i32 146, label %39
i32 136, label %42
i32 128, label %45
i32 152, label %48
i32 151, label %51
i32 129, label %54
i32 140, label %57
i32 139, label %60
i32 134, label %63
i32 154, label %66
i32 153, label %69
i32 145, label %72
i32 133, label %75
i32 158, label %78
i32 157, label %81
i32 135, label %84
i32 132, label %87
i32 130, label %90
i32 131, label %93
i32 155, label %96
i32 156, label %99
i32 138, label %102
]
6: ; preds = %3
%7 = tail call i32 @prologue(i32* %0, %struct.TYPE_37__* %1, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str, i64 0, i64 0))
%8 = tail call i32 @do_KeyPress(i32* %0, %struct.TYPE_37__* %1)
br label %107
9: ; preds = %3
%10 = tail call i32 @prologue(i32* %0, %struct.TYPE_37__* %1, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.1, i64 0, i64 0))
%11 = tail call i32 @do_KeyRelease(i32* %0, %struct.TYPE_37__* %1)
br label %107
12: ; preds = %3
%13 = tail call i32 @prologue(i32* %0, %struct.TYPE_37__* %1, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.2, i64 0, i64 0))
%14 = tail call i32 @do_ButtonPress(i32* %0, %struct.TYPE_37__* %1)
br label %107
15: ; preds = %3
%16 = tail call i32 @prologue(i32* %0, %struct.TYPE_37__* %1, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.3, i64 0, i64 0))
%17 = tail call i32 @do_ButtonRelease(i32* %0, %struct.TYPE_37__* %1)
br label %107
18: ; preds = %3
%19 = tail call i32 @prologue(i32* %0, %struct.TYPE_37__* %1, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.4, i64 0, i64 0))
%20 = tail call i32 @do_MotionNotify(i32* %0, %struct.TYPE_37__* %1)
br label %107
21: ; preds = %3
%22 = tail call i32 @prologue(i32* %0, %struct.TYPE_37__* %1, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.5, i64 0, i64 0))
%23 = tail call i32 @do_EnterNotify(i32* %0, %struct.TYPE_37__* %1)
br label %107
24: ; preds = %3
%25 = tail call i32 @prologue(i32* %0, %struct.TYPE_37__* %1, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.6, i64 0, i64 0))
%26 = tail call i32 @do_LeaveNotify(i32* %0, %struct.TYPE_37__* %1)
br label %107
27: ; preds = %3
%28 = tail call i32 @prologue(i32* %0, %struct.TYPE_37__* %1, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.7, i64 0, i64 0))
%29 = tail call i32 @do_FocusIn(i32* %0, %struct.TYPE_37__* %1)
br label %107
30: ; preds = %3
%31 = tail call i32 @prologue(i32* %0, %struct.TYPE_37__* %1, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.8, i64 0, i64 0))
%32 = tail call i32 @do_FocusOut(i32* %0, %struct.TYPE_37__* %1)
br label %107
33: ; preds = %3
%34 = tail call i32 @prologue(i32* %0, %struct.TYPE_37__* %1, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.9, i64 0, i64 0))
%35 = tail call i32 @do_KeymapNotify(i32* %0, %struct.TYPE_37__* %1)
br label %107
36: ; preds = %3
%37 = tail call i32 @prologue(i32* %0, %struct.TYPE_37__* %1, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.10, i64 0, i64 0))
%38 = tail call i32 @do_Expose(i32* %0, %struct.TYPE_37__* %1)
br label %107
39: ; preds = %3
%40 = tail call i32 @prologue(i32* %0, %struct.TYPE_37__* %1, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.11, i64 0, i64 0))
%41 = tail call i32 @do_GraphicsExpose(i32* %0, %struct.TYPE_37__* %1)
br label %107
42: ; preds = %3
%43 = tail call i32 @prologue(i32* %0, %struct.TYPE_37__* %1, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.12, i64 0, i64 0))
%44 = tail call i32 @do_NoExpose(i32* %0, %struct.TYPE_37__* %1)
br label %107
45: ; preds = %3
%46 = tail call i32 @prologue(i32* %0, %struct.TYPE_37__* %1, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.13, i64 0, i64 0))
%47 = tail call i32 @do_VisibilityNotify(i32* %0, %struct.TYPE_37__* %1)
br label %107
48: ; preds = %3
%49 = tail call i32 @prologue(i32* %0, %struct.TYPE_37__* %1, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.14, i64 0, i64 0))
%50 = tail call i32 @do_CreateNotify(i32* %0, %struct.TYPE_37__* %1)
br label %107
51: ; preds = %3
%52 = tail call i32 @prologue(i32* %0, %struct.TYPE_37__* %1, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.15, i64 0, i64 0))
%53 = tail call i32 @do_DestroyNotify(i32* %0, %struct.TYPE_37__* %1)
br label %107
54: ; preds = %3
%55 = tail call i32 @prologue(i32* %0, %struct.TYPE_37__* %1, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.16, i64 0, i64 0))
%56 = tail call i32 @do_UnmapNotify(i32* %0, %struct.TYPE_37__* %1)
br label %107
57: ; preds = %3
%58 = tail call i32 @prologue(i32* %0, %struct.TYPE_37__* %1, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.17, i64 0, i64 0))
%59 = tail call i32 @do_MapNotify(i32* %0, %struct.TYPE_37__* %1)
br label %107
60: ; preds = %3
%61 = tail call i32 @prologue(i32* %0, %struct.TYPE_37__* %1, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.18, i64 0, i64 0))
%62 = tail call i32 @do_MapRequest(i32* %0, %struct.TYPE_37__* %1)
br label %107
63: ; preds = %3
%64 = tail call i32 @prologue(i32* %0, %struct.TYPE_37__* %1, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.19, i64 0, i64 0))
%65 = tail call i32 @do_ReparentNotify(i32* %0, %struct.TYPE_37__* %1)
br label %107
66: ; preds = %3
%67 = tail call i32 @prologue(i32* %0, %struct.TYPE_37__* %1, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.20, i64 0, i64 0))
%68 = tail call i32 @do_ConfigureNotify(i32* %0, %struct.TYPE_37__* %1)
br label %107
69: ; preds = %3
%70 = tail call i32 @prologue(i32* %0, %struct.TYPE_37__* %1, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.21, i64 0, i64 0))
%71 = tail call i32 @do_ConfigureRequest(i32* %0, %struct.TYPE_37__* %1)
br label %107
72: ; preds = %3
%73 = tail call i32 @prologue(i32* %0, %struct.TYPE_37__* %1, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.22, i64 0, i64 0))
%74 = tail call i32 @do_GravityNotify(i32* %0, %struct.TYPE_37__* %1)
br label %107
75: ; preds = %3
%76 = tail call i32 @prologue(i32* %0, %struct.TYPE_37__* %1, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.23, i64 0, i64 0))
%77 = tail call i32 @do_ResizeRequest(i32* %0, %struct.TYPE_37__* %1)
br label %107
78: ; preds = %3
%79 = tail call i32 @prologue(i32* %0, %struct.TYPE_37__* %1, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.24, i64 0, i64 0))
%80 = tail call i32 @do_CirculateNotify(i32* %0, %struct.TYPE_37__* %1)
br label %107
81: ; preds = %3
%82 = tail call i32 @prologue(i32* %0, %struct.TYPE_37__* %1, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.25, i64 0, i64 0))
%83 = tail call i32 @do_CirculateRequest(i32* %0, %struct.TYPE_37__* %1)
br label %107
84: ; preds = %3
%85 = tail call i32 @prologue(i32* %0, %struct.TYPE_37__* %1, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.26, i64 0, i64 0))
%86 = tail call i32 @do_PropertyNotify(i32* %0, %struct.TYPE_37__* %1, i32* %2)
br label %107
87: ; preds = %3
%88 = tail call i32 @prologue(i32* %0, %struct.TYPE_37__* %1, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.27, i64 0, i64 0))
%89 = tail call i32 @do_SelectionClear(i32* %0, %struct.TYPE_37__* %1, i32* %2)
br label %107
90: ; preds = %3
%91 = tail call i32 @prologue(i32* %0, %struct.TYPE_37__* %1, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.28, i64 0, i64 0))
%92 = tail call i32 @do_SelectionRequest(i32* %0, %struct.TYPE_37__* %1, i32* %2)
br label %107
93: ; preds = %3
%94 = tail call i32 @prologue(i32* %0, %struct.TYPE_37__* %1, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.29, i64 0, i64 0))
%95 = tail call i32 @do_SelectionNotify(i32* %0, %struct.TYPE_37__* %1, i32* %2)
br label %107
96: ; preds = %3
%97 = tail call i32 @prologue(i32* %0, %struct.TYPE_37__* %1, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.30, i64 0, i64 0))
%98 = tail call i32 @do_ColormapNotify(i32* %0, %struct.TYPE_37__* %1)
br label %107
99: ; preds = %3
%100 = tail call i32 @prologue(i32* %0, %struct.TYPE_37__* %1, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.31, i64 0, i64 0))
%101 = tail call i32 @do_ClientMessage(i32* %0, %struct.TYPE_37__* %1, i32* %2)
br label %107
102: ; preds = %3
%103 = tail call i32 @prologue(i32* %0, %struct.TYPE_37__* %1, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.32, i64 0, i64 0))
%104 = tail call i32 @do_MappingNotify(i32* %0, %struct.TYPE_37__* %1)
br label %107
105: ; preds = %3
%106 = tail call i32 @fprintf(i32* %0, i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.33, i64 0, i64 0), i32 %5)
br label %107
107: ; preds = %105, %102, %99, %96, %93, %90, %87, %84, %81, %78, %75, %72, %69, %66, %63, %60, %57, %54, %51, %48, %45, %42, %39, %36, %33, %30, %27, %24, %21, %18, %15, %12, %9, %6
ret void
}