#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_18__ TYPE_7__;
typedef struct TYPE_17__ TYPE_6__;
typedef struct TYPE_16__ TYPE_5__;
typedef struct TYPE_15__ TYPE_4__;
typedef struct TYPE_14__ TYPE_3__;
typedef struct TYPE_13__ TYPE_2__;
typedef struct TYPE_12__ TYPE_1__;

/* Type definitions */
typedef void *XtPointer;
struct TYPE_16__ {
  int size;
  int /*<<< orphan*/ *addr;
};
typedef TYPE_5__ XrmValue;
typedef scalar_t__ XrmName;
typedef TYPE_6__ *Widget;
struct TYPE_12__ {
  int num_children;
  TYPE_6__ **children;
};
struct TYPE_18__ {
  TYPE_1__ composite;
};
struct TYPE_15__ {
  scalar_t__ xrm_name;
  int num_popups;
  TYPE_3__ *widget_class;
  TYPE_6__ **popup_list;
};
struct TYPE_17__ {
  TYPE_4__ core;
};
struct TYPE_13__ {
  scalar_t__ xrm_class;
};
struct TYPE_14__ {
  TYPE_2__ core_class;
};
typedef int /*<<< orphan*/ String;
typedef int /*<<< orphan*/ Display;
typedef TYPE_7__ *CompositeWidget;
typedef int Cardinal;
typedef int /*<<< orphan*/ Boolean;

/* Variables and functions */
int /*<<< orphan*/ False;
int /*<<< orphan*/ True;
scalar_t__ XrmStringToName(int /*<<< orphan*/ *);
int /*<<< orphan*/ XtAppWarningMsg(int /*<<< orphan*/, char *, char *, char *,
                                   char *, int /*<<< orphan*/ *, int *);
int /*<<< orphan*/ XtDisplayStringConversionWarning(int /*<<< orphan*/ *,
                                                    int /*<<< orphan*/,
                                                    int /*<<< orphan*/);
int /*<<< orphan*/ XtDisplayToApplicationContext(int /*<<< orphan*/ *);
scalar_t__ XtIsComposite(TYPE_6__ *);
int /*<<< orphan*/ XtRWidget;
Boolean XmuNewCvtStringToWidget(Display *dpy, XrmValue *args,
                                Cardinal *num_args, XrmValue *fromVal,
                                XrmValue *toVal, XtPointer *converter_data) {
  Widget *widgetP, parent;
  XrmName name = XrmStringToName(fromVal->addr);
  int i;
  if (*num_args != 1)
    XtAppWarningMsg(XtDisplayToApplicationContext(dpy), "wrongParameters",
                    "cvtStringToWidget", "xtToolkitError",
                    "String To Widget conversion needs parent argument",
                    (String *)NULL, (Cardinal *)NULL);
  parent = *(Widget *)args[0].addr;
  if (XtIsComposite(parent)) {
    i = ((CompositeWidget)parent)->composite.num_children;
    for (widgetP = ((CompositeWidget)parent)->composite.children; i;
         i--, widgetP++)
      if ((*widgetP)->core.xrm_name == name) {
        if (toVal->addr != NULL) {
          if (toVal->size < sizeof(Widget)) {
            toVal->size = sizeof(Widget);
            return False;
          }
          *(Widget *)(toVal->addr) = (*widgetP);
        } else {
          static Widget static_val;
          static_val = (*widgetP);
          toVal->addr = (XtPointer)&static_val;
        }
        toVal->size = sizeof(Widget);
        return True;
      };
  }
  i = parent->core.num_popups;
  for (widgetP = parent->core.popup_list; i; i--, widgetP++)
    if ((*widgetP)->core.xrm_name == name) {
      if (toVal->addr != NULL) {
        if (toVal->size < sizeof(Widget)) {
          toVal->size = sizeof(Widget);
          return False;
        }
        *(Widget *)(toVal->addr) = (*widgetP);
      } else {
        static Widget static_val;
        static_val = (*widgetP);
        toVal->addr = (XtPointer)&static_val;
      }
      toVal->size = sizeof(Widget);
      return True;
    };
  if (XtIsComposite(parent)) {
    i = ((CompositeWidget)parent)->composite.num_children;
    for (widgetP = ((CompositeWidget)parent)->composite.children; i;
         i--, widgetP++)
      if ((*widgetP)->core.widget_class->core_class.xrm_class == name) {
        if (toVal->addr != NULL) {
          if (toVal->size < sizeof(Widget)) {
            toVal->size = sizeof(Widget);
            return False;
          }
          *(Widget *)(toVal->addr) = (*widgetP);
        } else {
          static Widget static_val;
          static_val = (*widgetP);
          toVal->addr = (XtPointer)&static_val;
        }
        toVal->size = sizeof(Widget);
        return True;
      };
  }
  i = parent->core.num_popups;
  for (widgetP = parent->core.popup_list; i; i--, widgetP++)
    if ((*widgetP)->core.widget_class->core_class.xrm_class == name) {
      if (toVal->addr != NULL) {
        if (toVal->size < sizeof(Widget)) {
          toVal->size = sizeof(Widget);
          return False;
        }
        *(Widget *)(toVal->addr) = (*widgetP);
      } else {
        static Widget static_val;
        static_val = (*widgetP);
        toVal->addr = (XtPointer)&static_val;
      }
      toVal->size = sizeof(Widget);
      return True;
    };
  XtDisplayStringConversionWarning(dpy, (String)fromVal->addr, XtRWidget);
  return (False);
}


x86 assembly (clang, -O0):
<XmuNewCvtStringToWidget>:
push   %rbp
mov    %rsp,%rbp
sub    $0x60,%rsp
mov    %rdi,-0x10(%rbp)
mov    %rsi,-0x18(%rbp)
mov    %rdx,-0x20(%rbp)
mov    %rcx,-0x28(%rbp)
mov    %r8,-0x30(%rbp)
mov    %r9,-0x38(%rbp)
mov    -0x28(%rbp),%rax
mov    0x8(%rax),%rdi
call   1070 <XrmStringToName@plt>
mov    %rax,-0x50(%rbp)
mov    -0x20(%rbp),%rax
cmpl   $0x1,(%rax)
je     11c7 <XmuNewCvtStringToWidget+0x77>
mov    -0x10(%rbp),%rdi
call   1060 <XtDisplayToApplicationContext@plt>
mov    %eax,%edi
lea    0xe60(%rip),%rsi
lea    0xe69(%rip),%rdx
lea    0xe74(%rip),%rcx
lea    0xe7c(%rip),%r8
xor    %eax,%eax
mov    %eax,%r9d
movq   $0x0,(%rsp)
call   1040 <XtAppWarningMsg@plt>
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
mov    (%rax),%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rdi
call   1050 <XtIsComposite@plt>
cmp    $0x0,%rax
je     12ca <XmuNewCvtStringToWidget+0x17a>
mov    -0x48(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x54(%rbp)
mov    -0x48(%rbp),%rax
mov    0x8(%rax),%rax
mov    %rax,-0x40(%rbp)
cmpl   $0x0,-0x54(%rbp)
je     12c5 <XmuNewCvtStringToWidget+0x175>
mov    -0x40(%rbp),%rax
mov    (%rax),%rax
mov    (%rax),%rax
cmp    -0x50(%rbp),%rax
jne    12a6 <XmuNewCvtStringToWidget+0x156>
mov    -0x30(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     126e <XmuNewCvtStringToWidget+0x11e>
mov    -0x30(%rbp),%rax
movslq (%rax),%rax
cmp    $0x8,%rax
jae    1257 <XmuNewCvtStringToWidget+0x107>
mov    -0x30(%rbp),%rax
movl   $0x8,(%rax)
mov    0x2d9b(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    15a8 <XmuNewCvtStringToWidget+0x458>
mov    -0x40(%rbp),%rax
mov    (%rax),%rcx
mov    -0x30(%rbp),%rax
mov    0x8(%rax),%rax
mov    %rcx,(%rax)
jmp    128b <XmuNewCvtStringToWidget+0x13b>
mov    -0x40(%rbp),%rax
mov    (%rax),%rax
mov    %rax,0x2ddc(%rip)
mov    -0x30(%rbp),%rax
lea    0x2dd1(%rip),%rcx
mov    %rcx,0x8(%rax)
mov    -0x30(%rbp),%rax
movl   $0x8,(%rax)
mov    0x2d44(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    15a8 <XmuNewCvtStringToWidget+0x458>
jmp    12ab <XmuNewCvtStringToWidget+0x15b>
mov    -0x54(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x54(%rbp)
mov    -0x40(%rbp),%rax
add    $0x8,%rax
mov    %rax,-0x40(%rbp)
jmp    11fe <XmuNewCvtStringToWidget+0xae>
jmp    12ca <XmuNewCvtStringToWidget+0x17a>
mov    -0x48(%rbp),%rax
mov    0x8(%rax),%eax
mov    %eax,-0x54(%rbp)
mov    -0x48(%rbp),%rax
mov    0x18(%rax),%rax
mov    %rax,-0x40(%rbp)
cmpl   $0x0,-0x54(%rbp)
je     13a7 <XmuNewCvtStringToWidget+0x257>
mov    -0x40(%rbp),%rax
mov    (%rax),%rax
mov    (%rax),%rax
cmp    -0x50(%rbp),%rax
jne    1388 <XmuNewCvtStringToWidget+0x238>
mov    -0x30(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1350 <XmuNewCvtStringToWidget+0x200>
mov    -0x30(%rbp),%rax
movslq (%rax),%rax
cmp    $0x8,%rax
jae    1339 <XmuNewCvtStringToWidget+0x1e9>
mov    -0x30(%rbp),%rax
movl   $0x8,(%rax)
mov    0x2cb9(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    15a8 <XmuNewCvtStringToWidget+0x458>
mov    -0x40(%rbp),%rax
mov    (%rax),%rcx
mov    -0x30(%rbp),%rax
mov    0x8(%rax),%rax
mov    %rcx,(%rax)
jmp    136d <XmuNewCvtStringToWidget+0x21d>
mov    -0x40(%rbp),%rax
mov    (%rax),%rax
mov    %rax,0x2d0a(%rip)
mov    -0x30(%rbp),%rax
lea    0x2cff(%rip),%rcx
mov    %rcx,0x8(%rax)
mov    -0x30(%rbp),%rax
movl   $0x8,(%rax)
mov    0x2c62(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    15a8 <XmuNewCvtStringToWidget+0x458>
jmp    138d <XmuNewCvtStringToWidget+0x23d>
mov    -0x54(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x54(%rbp)
mov    -0x40(%rbp),%rax
add    $0x8,%rax
mov    %rax,-0x40(%rbp)
jmp    12e0 <XmuNewCvtStringToWidget+0x190>
mov    -0x48(%rbp),%rdi
call   1050 <XtIsComposite@plt>
cmp    $0x0,%rax
je     149f <XmuNewCvtStringToWidget+0x34f>
mov    -0x48(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x54(%rbp)
mov    -0x48(%rbp),%rax
mov    0x8(%rax),%rax
mov    %rax,-0x40(%rbp)
cmpl   $0x0,-0x54(%rbp)
je     149a <XmuNewCvtStringToWidget+0x34a>
mov    -0x40(%rbp),%rax
mov    (%rax),%rax
mov    0x10(%rax),%rax
mov    (%rax),%rax
cmp    -0x50(%rbp),%rax
jne    147b <XmuNewCvtStringToWidget+0x32b>
mov    -0x30(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1443 <XmuNewCvtStringToWidget+0x2f3>
mov    -0x30(%rbp),%rax
movslq (%rax),%rax
cmp    $0x8,%rax
jae    142c <XmuNewCvtStringToWidget+0x2dc>
mov    -0x30(%rbp),%rax
movl   $0x8,(%rax)
mov    0x2bc6(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    15a8 <XmuNewCvtStringToWidget+0x458>
mov    -0x40(%rbp),%rax
mov    (%rax),%rcx
mov    -0x30(%rbp),%rax
mov    0x8(%rax),%rax
mov    %rcx,(%rax)
jmp    1460 <XmuNewCvtStringToWidget+0x310>
mov    -0x40(%rbp),%rax
mov    (%rax),%rax
mov    %rax,0x2c1f(%rip)
mov    -0x30(%rbp),%rax
lea    0x2c14(%rip),%rcx
mov    %rcx,0x8(%rax)
mov    -0x30(%rbp),%rax
movl   $0x8,(%rax)
mov    0x2b6f(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    15a8 <XmuNewCvtStringToWidget+0x458>
jmp    1480 <XmuNewCvtStringToWidget+0x330>
mov    -0x54(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x54(%rbp)
mov    -0x40(%rbp),%rax
add    $0x8,%rax
mov    %rax,-0x40(%rbp)
jmp    13cf <XmuNewCvtStringToWidget+0x27f>
jmp    149f <XmuNewCvtStringToWidget+0x34f>
mov    -0x48(%rbp),%rax
mov    0x8(%rax),%eax
mov    %eax,-0x54(%rbp)
mov    -0x48(%rbp),%rax
mov    0x18(%rax),%rax
mov    %rax,-0x40(%rbp)
cmpl   $0x0,-0x54(%rbp)
je     1580 <XmuNewCvtStringToWidget+0x430>
mov    -0x40(%rbp),%rax
mov    (%rax),%rax
mov    0x10(%rax),%rax
mov    (%rax),%rax
cmp    -0x50(%rbp),%rax
jne    1561 <XmuNewCvtStringToWidget+0x411>
mov    -0x30(%rbp),%rax
cmpq   $0x0,0x8(%rax)
je     1529 <XmuNewCvtStringToWidget+0x3d9>
mov    -0x30(%rbp),%rax
movslq (%rax),%rax
cmp    $0x8,%rax
jae    1512 <XmuNewCvtStringToWidget+0x3c2>
mov    -0x30(%rbp),%rax
movl   $0x8,(%rax)
mov    0x2ae0(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    15a8 <XmuNewCvtStringToWidget+0x458>
mov    -0x40(%rbp),%rax
mov    (%rax),%rcx
mov    -0x30(%rbp),%rax
mov    0x8(%rax),%rax
mov    %rcx,(%rax)
jmp    1546 <XmuNewCvtStringToWidget+0x3f6>
mov    -0x40(%rbp),%rax
mov    (%rax),%rax
mov    %rax,0x2b41(%rip)
mov    -0x30(%rbp),%rax
lea    0x2b36(%rip),%rcx
mov    %rcx,0x8(%rax)
mov    -0x30(%rbp),%rax
movl   $0x8,(%rax)
mov    0x2a89(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    15a8 <XmuNewCvtStringToWidget+0x458>
jmp    1566 <XmuNewCvtStringToWidget+0x416>
mov    -0x54(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x54(%rbp)
mov    -0x40(%rbp),%rax
add    $0x8,%rax
mov    %rax,-0x40(%rbp)
jmp    14b5 <XmuNewCvtStringToWidget+0x365>
mov    -0x10(%rbp),%rdi
mov    -0x28(%rbp),%rax
mov    0x8(%rax),%rax
mov    %eax,%esi
mov    0x2a3b(%rip),%rax
mov    (%rax),%edx
call   1030 <XtDisplayStringConversionWarning@plt>
mov    0x2a45(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x60,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<XmuNewCvtStringToWidget>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
push   %rax
mov    %r8,%r15
mov    %rcx,%r12
mov    %rdx,%rbp
mov    %rsi,%r13
mov    %rdi,%r14
mov    0x8(%rcx),%rdi
call   1070 <XrmStringToName@plt>
mov    %rax,%rbx
cmpl   $0x1,0x0(%rbp)
je     11b2 <XmuNewCvtStringToWidget+0x62>
mov    %r14,%rdi
call   1060 <XtDisplayToApplicationContext@plt>
movq   $0x0,(%rsp)
lea    0xe6d(%rip),%rsi
lea    0xe76(%rip),%rdx
lea    0xe81(%rip),%rcx
lea    0xe89(%rip),%r8
mov    %eax,%edi
xor    %r9d,%r9d
call   1040 <XtAppWarningMsg@plt>
mov    0x8(%r13),%rax
mov    (%rax),%r13
mov    %r13,%rdi
call   1050 <XtIsComposite@plt>
test   %rax,%rax
je     11fb <XmuNewCvtStringToWidget+0xab>
mov    0x0(%r13),%ecx
mov    0x8(%r13),%rax
test   %rcx,%rcx
je     11f5 <XmuNewCvtStringToWidget+0xa5>
xor    %edx,%edx
cs nopw 0x0(%rax,%rax,1)
nop
mov    (%rax,%rdx,8),%rsi
cmp    %rbx,(%rsi)
je     12bd <XmuNewCvtStringToWidget+0x16d>
add    $0x1,%rdx
cmp    %edx,%ecx
jne    11e0 <XmuNewCvtStringToWidget+0x90>
test   %eax,%eax
jne    1203 <XmuNewCvtStringToWidget+0xb3>
jmp    1221 <XmuNewCvtStringToWidget+0xd1>
mov    0x8(%r13),%eax
test   %eax,%eax
je     1221 <XmuNewCvtStringToWidget+0xd1>
mov    0x18(%r13),%rcx
mov    %eax,%eax
xor    %edx,%edx
nopl   0x0(%rax,%rax,1)
mov    (%rcx,%rdx,8),%rsi
cmp    %rbx,(%rsi)
je     125f <XmuNewCvtStringToWidget+0x10f>
add    $0x1,%rdx
cmp    %edx,%eax
jne    1210 <XmuNewCvtStringToWidget+0xc0>
mov    %r13,%rdi
call   1050 <XtIsComposite@plt>
test   %rax,%rax
je     127f <XmuNewCvtStringToWidget+0x12f>
mov    0x0(%r13),%ecx
mov    0x8(%r13),%rax
test   %rcx,%rcx
je     1259 <XmuNewCvtStringToWidget+0x109>
xor    %edx,%edx
nopl   (%rax)
mov    (%rax,%rdx,8),%rsi
mov    0x10(%rsi),%rdi
cmp    %rbx,(%rdi)
je     12ef <XmuNewCvtStringToWidget+0x19f>
add    $0x1,%rdx
cmp    %edx,%ecx
jne    1240 <XmuNewCvtStringToWidget+0xf0>
test   %eax,%eax
jne    1287 <XmuNewCvtStringToWidget+0x137>
jmp    12a5 <XmuNewCvtStringToWidget+0x155>
mov    0x8(%r15),%rax
test   %rax,%rax
jne    12f8 <XmuNewCvtStringToWidget+0x1a8>
mov    %rsi,0x2df5(%rip)
lea    0x2dee(%rip),%rax
jmp    1321 <XmuNewCvtStringToWidget+0x1d1>
mov    0x8(%r13),%eax
test   %eax,%eax
je     12a5 <XmuNewCvtStringToWidget+0x155>
mov    0x18(%r13),%rcx
mov    %eax,%eax
xor    %edx,%edx
nop
mov    (%rcx,%rdx,8),%rsi
mov    0x10(%rsi),%rdi
cmp    %rbx,(%rdi)
je     12d6 <XmuNewCvtStringToWidget+0x186>
add    $0x1,%rdx
cmp    %edx,%eax
jne    1290 <XmuNewCvtStringToWidget+0x140>
mov    0x8(%r12),%esi
mov    0x2d1f(%rip),%rax
mov    (%rax),%edx
mov    %r14,%rdi
call   1030 <XtDisplayStringConversionWarning@plt>
jmp    1305 <XmuNewCvtStringToWidget+0x1b5>
mov    0x8(%r15),%rax
test   %rax,%rax
jne    12f8 <XmuNewCvtStringToWidget+0x1a8>
mov    %rsi,0x2d8b(%rip)
lea    0x2d84(%rip),%rax
jmp    1321 <XmuNewCvtStringToWidget+0x1d1>
mov    0x8(%r15),%rax
test   %rax,%rax
jne    12f8 <XmuNewCvtStringToWidget+0x1a8>
mov    %rsi,0x2d92(%rip)
lea    0x2d8b(%rip),%rax
jmp    1321 <XmuNewCvtStringToWidget+0x1d1>
mov    0x8(%r15),%rax
test   %rax,%rax
je     1313 <XmuNewCvtStringToWidget+0x1c3>
cmpl   $0x7,(%r15)
ja     130e <XmuNewCvtStringToWidget+0x1be>
movl   $0x8,(%r15)
mov    0x2cdc(%rip),%rax
jmp    1333 <XmuNewCvtStringToWidget+0x1e3>
mov    %rsi,(%rax)
jmp    1325 <XmuNewCvtStringToWidget+0x1d5>
mov    %rsi,0x2d56(%rip)
lea    0x2d4f(%rip),%rax
mov    %rax,0x8(%r15)
movl   $0x8,(%r15)
mov    0x2cad(%rip),%rax
mov    (%rax),%eax
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
%struct.TYPE_17__ = type { %struct.TYPE_15__ }
%struct.TYPE_15__ = type { i64, i32, %struct.TYPE_14__*, %struct.TYPE_17__** }
%struct.TYPE_14__ = type { %struct.TYPE_13__ }
%struct.TYPE_13__ = type { i64 }
%struct.TYPE_16__ = type { i32, i32* }
%struct.TYPE_18__ = type { %struct.TYPE_12__ }
%struct.TYPE_12__ = type { i32, %struct.TYPE_17__** }
@.str = [16 x i8] c"wrongParameters\00"
@.str.1 = [18 x i8] c"cvtStringToWidget\00"
@.str.2 = [15 x i8] c"xtToolkitError\00"
@.str.3 = [50 x i8] c"String To Widget conversion needs parent argument\00"
@False = global i32 0
@XmuNewCvtStringToWidget.static_val = internal global %struct.TYPE_17__* null
@True = global i32 0
@XmuNewCvtStringToWidget.static_val.4 = internal global %struct.TYPE_17__* null
@XmuNewCvtStringToWidget.static_val.5 = internal global %struct.TYPE_17__* null
@XmuNewCvtStringToWidget.static_val.6 = internal global %struct.TYPE_17__* null
@XtRWidget = global i32 0
define i32 @XmuNewCvtStringToWidget(i32* %0, %struct.TYPE_16__* %1, i32* %2, %struct.TYPE_16__* %3, %struct.TYPE_16__* %4, i8** %5) {
%7 = alloca i32
%8 = alloca i32*
%9 = alloca %struct.TYPE_16__*
%10 = alloca i32*
%11 = alloca %struct.TYPE_16__*
%12 = alloca %struct.TYPE_16__*
%13 = alloca i8**
%14 = alloca %struct.TYPE_17__**
%15 = alloca %struct.TYPE_17__*
%16 = alloca i64
%17 = alloca i32
store i32* %0, i32** %8
store %struct.TYPE_16__* %1, %struct.TYPE_16__** %9
store i32* %2, i32** %10
store %struct.TYPE_16__* %3, %struct.TYPE_16__** %11
store %struct.TYPE_16__* %4, %struct.TYPE_16__** %12
store i8** %5, i8*** %13
%18 = load %struct.TYPE_16__*, %struct.TYPE_16__** %11
%19 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %18, i32 0, i32 1
%20 = load i32*, i32** %19
%21 = call i64 @XrmStringToName(i32* %20)
store i64 %21, i64* %16
%22 = load i32*, i32** %10
%23 = load i32, i32* %22
%24 = icmp ne i32 %23, 1
br i1 %24, label %25, label %29
25: ; preds = %6
%26 = load i32*, i32** %8
%27 = call i32 @XtDisplayToApplicationContext(i32* %26)
%28 = call i32 @XtAppWarningMsg(i32 %27, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.3, i64 0, i64 0), i32* null, i32* null)
br label %29
29: ; preds = %25, %6
%30 = load %struct.TYPE_16__*, %struct.TYPE_16__** %9
%31 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %30, i64 0
%32 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %31, i32 0, i32 1
%33 = load i32*, i32** %32
%34 = bitcast i32* %33 to %struct.TYPE_17__**
%35 = load %struct.TYPE_17__*, %struct.TYPE_17__** %34
store %struct.TYPE_17__* %35, %struct.TYPE_17__** %15
%36 = load %struct.TYPE_17__*, %struct.TYPE_17__** %15
%37 = call i64 @XtIsComposite(%struct.TYPE_17__* %36)
%38 = icmp ne i64 %37, 0
br i1 %38, label %39, label %99
39: ; preds = %29
%40 = load %struct.TYPE_17__*, %struct.TYPE_17__** %15
%41 = bitcast %struct.TYPE_17__* %40 to %struct.TYPE_18__*
%42 = getelementptr inbounds %struct.TYPE_18__, %struct.TYPE_18__* %41, i32 0, i32 0
%43 = getelementptr inbounds %struct.TYPE_12__, %struct.TYPE_12__* %42, i32 0, i32 0
%44 = load i32, i32* %43
store i32 %44, i32* %17
%45 = load %struct.TYPE_17__*, %struct.TYPE_17__** %15
%46 = bitcast %struct.TYPE_17__* %45 to %struct.TYPE_18__*
%47 = getelementptr inbounds %struct.TYPE_18__, %struct.TYPE_18__* %46, i32 0, i32 0
%48 = getelementptr inbounds %struct.TYPE_12__, %struct.TYPE_12__* %47, i32 0, i32 1
%49 = load %struct.TYPE_17__**, %struct.TYPE_17__*** %48
store %struct.TYPE_17__** %49, %struct.TYPE_17__*** %14
br label %50
50: ; preds = %93, %39
%51 = load i32, i32* %17
%52 = icmp ne i32 %51, 0
br i1 %52, label %53, label %98
53: ; preds = %50
%54 = load %struct.TYPE_17__**, %struct.TYPE_17__*** %14
%55 = load %struct.TYPE_17__*, %struct.TYPE_17__** %54
%56 = getelementptr inbounds %struct.TYPE_17__, %struct.TYPE_17__* %55, i32 0, i32 0
%57 = getelementptr inbounds %struct.TYPE_15__, %struct.TYPE_15__* %56, i32 0, i32 0
%58 = load i64, i64* %57
%59 = load i64, i64* %16
%60 = icmp eq i64 %58, %59
br i1 %60, label %61, label %92
61: ; preds = %53
%62 = load %struct.TYPE_16__*, %struct.TYPE_16__** %12
%63 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %62, i32 0, i32 1
%64 = load i32*, i32** %63
%65 = icmp ne i32* %64, null
br i1 %65, label %66, label %83
66: ; preds = %61
%67 = load %struct.TYPE_16__*, %struct.TYPE_16__** %12
%68 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %67, i32 0, i32 0
%69 = load i32, i32* %68
%70 = sext i32 %69 to i64
%71 = icmp ult i64 %70, 8
br i1 %71, label %72, label %76
72: ; preds = %66
%73 = load %struct.TYPE_16__*, %struct.TYPE_16__** %12
%74 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %73, i32 0, i32 0
store i32 8, i32* %74
%75 = load i32, i32* @False
store i32 %75, i32* %7
br label %292
76: ; preds = %66
%77 = load %struct.TYPE_17__**, %struct.TYPE_17__*** %14
%78 = load %struct.TYPE_17__*, %struct.TYPE_17__** %77
%79 = load %struct.TYPE_16__*, %struct.TYPE_16__** %12
%80 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %79, i32 0, i32 1
%81 = load i32*, i32** %80
%82 = bitcast i32* %81 to %struct.TYPE_17__**
store %struct.TYPE_17__* %78, %struct.TYPE_17__** %82
br label %88
83: ; preds = %61
%84 = load %struct.TYPE_17__**, %struct.TYPE_17__*** %14
%85 = load %struct.TYPE_17__*, %struct.TYPE_17__** %84
store %struct.TYPE_17__* %85, %struct.TYPE_17__** @XmuNewCvtStringToWidget.static_val
%86 = load %struct.TYPE_16__*, %struct.TYPE_16__** %12
%87 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %86, i32 0, i32 1
store i32* bitcast (%struct.TYPE_17__** @XmuNewCvtStringToWidget.static_val to i32*), i32** %87
br label %88
88: ; preds = %83, %76
%89 = load %struct.TYPE_16__*, %struct.TYPE_16__** %12
%90 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %89, i32 0, i32 0
store i32 8, i32* %90
%91 = load i32, i32* @True
store i32 %91, i32* %7
br label %292
92: ; preds = %53
br label %93
93: ; preds = %92
%94 = load i32, i32* %17
%95 = add nsw i32 %94, -1
store i32 %95, i32* %17
%96 = load %struct.TYPE_17__**, %struct.TYPE_17__*** %14
%97 = getelementptr inbounds %struct.TYPE_17__*, %struct.TYPE_17__** %96, i32 1
store %struct.TYPE_17__** %97, %struct.TYPE_17__*** %14
br label %50
98: ; preds = %50
br label %99
99: ; preds = %98, %29
%100 = load %struct.TYPE_17__*, %struct.TYPE_17__** %15
%101 = getelementptr inbounds %struct.TYPE_17__, %struct.TYPE_17__* %100, i32 0, i32 0
%102 = getelementptr inbounds %struct.TYPE_15__, %struct.TYPE_15__* %101, i32 0, i32 1
%103 = load i32, i32* %102
store i32 %103, i32* %17
%104 = load %struct.TYPE_17__*, %struct.TYPE_17__** %15
%105 = getelementptr inbounds %struct.TYPE_17__, %struct.TYPE_17__* %104, i32 0, i32 0
%106 = getelementptr inbounds %struct.TYPE_15__, %struct.TYPE_15__* %105, i32 0, i32 3
%107 = load %struct.TYPE_17__**, %struct.TYPE_17__*** %106
store %struct.TYPE_17__** %107, %struct.TYPE_17__*** %14
br label %108
108: ; preds = %151, %99
%109 = load i32, i32* %17
%110 = icmp ne i32 %109, 0
br i1 %110, label %111, label %156
111: ; preds = %108
%112 = load %struct.TYPE_17__**, %struct.TYPE_17__*** %14
%113 = load %struct.TYPE_17__*, %struct.TYPE_17__** %112
%114 = getelementptr inbounds %struct.TYPE_17__, %struct.TYPE_17__* %113, i32 0, i32 0
%115 = getelementptr inbounds %struct.TYPE_15__, %struct.TYPE_15__* %114, i32 0, i32 0
%116 = load i64, i64* %115
%117 = load i64, i64* %16
%118 = icmp eq i64 %116, %117
br i1 %118, label %119, label %150
119: ; preds = %111
%120 = load %struct.TYPE_16__*, %struct.TYPE_16__** %12
%121 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %120, i32 0, i32 1
%122 = load i32*, i32** %121
%123 = icmp ne i32* %122, null
br i1 %123, label %124, label %141
124: ; preds = %119
%125 = load %struct.TYPE_16__*, %struct.TYPE_16__** %12
%126 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %125, i32 0, i32 0
%127 = load i32, i32* %126
%128 = sext i32 %127 to i64
%129 = icmp ult i64 %128, 8
br i1 %129, label %130, label %134
130: ; preds = %124
%131 = load %struct.TYPE_16__*, %struct.TYPE_16__** %12
%132 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %131, i32 0, i32 0
store i32 8, i32* %132
%133 = load i32, i32* @False
store i32 %133, i32* %7
br label %292
134: ; preds = %124
%135 = load %struct.TYPE_17__**, %struct.TYPE_17__*** %14
%136 = load %struct.TYPE_17__*, %struct.TYPE_17__** %135
%137 = load %struct.TYPE_16__*, %struct.TYPE_16__** %12
%138 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %137, i32 0, i32 1
%139 = load i32*, i32** %138
%140 = bitcast i32* %139 to %struct.TYPE_17__**
store %struct.TYPE_17__* %136, %struct.TYPE_17__** %140
br label %146
141: ; preds = %119
%142 = load %struct.TYPE_17__**, %struct.TYPE_17__*** %14
%143 = load %struct.TYPE_17__*, %struct.TYPE_17__** %142
store %struct.TYPE_17__* %143, %struct.TYPE_17__** @XmuNewCvtStringToWidget.static_val.4
%144 = load %struct.TYPE_16__*, %struct.TYPE_16__** %12
%145 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %144, i32 0, i32 1
store i32* bitcast (%struct.TYPE_17__** @XmuNewCvtStringToWidget.static_val.4 to i32*), i32** %145
br label %146
146: ; preds = %141, %134
%147 = load %struct.TYPE_16__*, %struct.TYPE_16__** %12
%148 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %147, i32 0, i32 0
store i32 8, i32* %148
%149 = load i32, i32* @True
store i32 %149, i32* %7
br label %292
150: ; preds = %111
br label %151
151: ; preds = %150
%152 = load i32, i32* %17
%153 = add nsw i32 %152, -1
store i32 %153, i32* %17
%154 = load %struct.TYPE_17__**, %struct.TYPE_17__*** %14
%155 = getelementptr inbounds %struct.TYPE_17__*, %struct.TYPE_17__** %154, i32 1
store %struct.TYPE_17__** %155, %struct.TYPE_17__*** %14
br label %108
156: ; preds = %108
%157 = load %struct.TYPE_17__*, %struct.TYPE_17__** %15
%158 = call i64 @XtIsComposite(%struct.TYPE_17__* %157)
%159 = icmp ne i64 %158, 0
br i1 %159, label %160, label %223
160: ; preds = %156
%161 = load %struct.TYPE_17__*, %struct.TYPE_17__** %15
%162 = bitcast %struct.TYPE_17__* %161 to %struct.TYPE_18__*
%163 = getelementptr inbounds %struct.TYPE_18__, %struct.TYPE_18__* %162, i32 0, i32 0
%164 = getelementptr inbounds %struct.TYPE_12__, %struct.TYPE_12__* %163, i32 0, i32 0
%165 = load i32, i32* %164
store i32 %165, i32* %17
%166 = load %struct.TYPE_17__*, %struct.TYPE_17__** %15
%167 = bitcast %struct.TYPE_17__* %166 to %struct.TYPE_18__*
%168 = getelementptr inbounds %struct.TYPE_18__, %struct.TYPE_18__* %167, i32 0, i32 0
%169 = getelementptr inbounds %struct.TYPE_12__, %struct.TYPE_12__* %168, i32 0, i32 1
%170 = load %struct.TYPE_17__**, %struct.TYPE_17__*** %169
store %struct.TYPE_17__** %170, %struct.TYPE_17__*** %14
br label %171
171: ; preds = %217, %160
%172 = load i32, i32* %17
%173 = icmp ne i32 %172, 0
br i1 %173, label %174, label %222
174: ; preds = %171
%175 = load %struct.TYPE_17__**, %struct.TYPE_17__*** %14
%176 = load %struct.TYPE_17__*, %struct.TYPE_17__** %175
%177 = getelementptr inbounds %struct.TYPE_17__, %struct.TYPE_17__* %176, i32 0, i32 0
%178 = getelementptr inbounds %struct.TYPE_15__, %struct.TYPE_15__* %177, i32 0, i32 2
%179 = load %struct.TYPE_14__*, %struct.TYPE_14__** %178
%180 = getelementptr inbounds %struct.TYPE_14__, %struct.TYPE_14__* %179, i32 0, i32 0
%181 = getelementptr inbounds %struct.TYPE_13__, %struct.TYPE_13__* %180, i32 0, i32 0
%182 = load i64, i64* %181
%183 = load i64, i64* %16
%184 = icmp eq i64 %182, %183
br i1 %184, label %185, label %216
185: ; preds = %174
%186 = load %struct.TYPE_16__*, %struct.TYPE_16__** %12
%187 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %186, i32 0, i32 1
%188 = load i32*, i32** %187
%189 = icmp ne i32* %188, null
br i1 %189, label %190, label %207
190: ; preds = %185
%191 = load %struct.TYPE_16__*, %struct.TYPE_16__** %12
%192 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %191, i32 0, i32 0
%193 = load i32, i32* %192
%194 = sext i32 %193 to i64
%195 = icmp ult i64 %194, 8
br i1 %195, label %196, label %200
196: ; preds = %190
%197 = load %struct.TYPE_16__*, %struct.TYPE_16__** %12
%198 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %197, i32 0, i32 0
store i32 8, i32* %198
%199 = load i32, i32* @False
store i32 %199, i32* %7
br label %292
200: ; preds = %190
%201 = load %struct.TYPE_17__**, %struct.TYPE_17__*** %14
%202 = load %struct.TYPE_17__*, %struct.TYPE_17__** %201
%203 = load %struct.TYPE_16__*, %struct.TYPE_16__** %12
%204 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %203, i32 0, i32 1
%205 = load i32*, i32** %204
%206 = bitcast i32* %205 to %struct.TYPE_17__**
store %struct.TYPE_17__* %202, %struct.TYPE_17__** %206
br label %212
207: ; preds = %185
%208 = load %struct.TYPE_17__**, %struct.TYPE_17__*** %14
%209 = load %struct.TYPE_17__*, %struct.TYPE_17__** %208
store %struct.TYPE_17__* %209, %struct.TYPE_17__** @XmuNewCvtStringToWidget.static_val.5
%210 = load %struct.TYPE_16__*, %struct.TYPE_16__** %12
%211 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %210, i32 0, i32 1
store i32* bitcast (%struct.TYPE_17__** @XmuNewCvtStringToWidget.static_val.5 to i32*), i32** %211
br label %212
212: ; preds = %207, %200
%213 = load %struct.TYPE_16__*, %struct.TYPE_16__** %12
%214 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %213, i32 0, i32 0
store i32 8, i32* %214
%215 = load i32, i32* @True
store i32 %215, i32* %7
br label %292
216: ; preds = %174
br label %217
217: ; preds = %216
%218 = load i32, i32* %17
%219 = add nsw i32 %218, -1
store i32 %219, i32* %17
%220 = load %struct.TYPE_17__**, %struct.TYPE_17__*** %14
%221 = getelementptr inbounds %struct.TYPE_17__*, %struct.TYPE_17__** %220, i32 1
store %struct.TYPE_17__** %221, %struct.TYPE_17__*** %14
br label %171
222: ; preds = %171
br label %223
223: ; preds = %222, %156
%224 = load %struct.TYPE_17__*, %struct.TYPE_17__** %15
%225 = getelementptr inbounds %struct.TYPE_17__, %struct.TYPE_17__* %224, i32 0, i32 0
%226 = getelementptr inbounds %struct.TYPE_15__, %struct.TYPE_15__* %225, i32 0, i32 1
%227 = load i32, i32* %226
store i32 %227, i32* %17
%228 = load %struct.TYPE_17__*, %struct.TYPE_17__** %15
%229 = getelementptr inbounds %struct.TYPE_17__, %struct.TYPE_17__* %228, i32 0, i32 0
%230 = getelementptr inbounds %struct.TYPE_15__, %struct.TYPE_15__* %229, i32 0, i32 3
%231 = load %struct.TYPE_17__**, %struct.TYPE_17__*** %230
store %struct.TYPE_17__** %231, %struct.TYPE_17__*** %14
br label %232
232: ; preds = %278, %223
%233 = load i32, i32* %17
%234 = icmp ne i32 %233, 0
br i1 %234, label %235, label %283
235: ; preds = %232
%236 = load %struct.TYPE_17__**, %struct.TYPE_17__*** %14
%237 = load %struct.TYPE_17__*, %struct.TYPE_17__** %236
%238 = getelementptr inbounds %struct.TYPE_17__, %struct.TYPE_17__* %237, i32 0, i32 0
%239 = getelementptr inbounds %struct.TYPE_15__, %struct.TYPE_15__* %238, i32 0, i32 2
%240 = load %struct.TYPE_14__*, %struct.TYPE_14__** %239
%241 = getelementptr inbounds %struct.TYPE_14__, %struct.TYPE_14__* %240, i32 0, i32 0
%242 = getelementptr inbounds %struct.TYPE_13__, %struct.TYPE_13__* %241, i32 0, i32 0
%243 = load i64, i64* %242
%244 = load i64, i64* %16
%245 = icmp eq i64 %243, %244
br i1 %245, label %246, label %277
246: ; preds = %235
%247 = load %struct.TYPE_16__*, %struct.TYPE_16__** %12
%248 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %247, i32 0, i32 1
%249 = load i32*, i32** %248
%250 = icmp ne i32* %249, null
br i1 %250, label %251, label %268
251: ; preds = %246
%252 = load %struct.TYPE_16__*, %struct.TYPE_16__** %12
%253 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %252, i32 0, i32 0
%254 = load i32, i32* %253
%255 = sext i32 %254 to i64
%256 = icmp ult i64 %255, 8
br i1 %256, label %257, label %261
257: ; preds = %251
%258 = load %struct.TYPE_16__*, %struct.TYPE_16__** %12
%259 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %258, i32 0, i32 0
store i32 8, i32* %259
%260 = load i32, i32* @False
store i32 %260, i32* %7
br label %292
261: ; preds = %251
%262 = load %struct.TYPE_17__**, %struct.TYPE_17__*** %14
%263 = load %struct.TYPE_17__*, %struct.TYPE_17__** %262
%264 = load %struct.TYPE_16__*, %struct.TYPE_16__** %12
%265 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %264, i32 0, i32 1
%266 = load i32*, i32** %265
%267 = bitcast i32* %266 to %struct.TYPE_17__**
store %struct.TYPE_17__* %263, %struct.TYPE_17__** %267
br label %273
268: ; preds = %246
%269 = load %struct.TYPE_17__**, %struct.TYPE_17__*** %14
%270 = load %struct.TYPE_17__*, %struct.TYPE_17__** %269
store %struct.TYPE_17__* %270, %struct.TYPE_17__** @XmuNewCvtStringToWidget.static_val.6
%271 = load %struct.TYPE_16__*, %struct.TYPE_16__** %12
%272 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %271, i32 0, i32 1
store i32* bitcast (%struct.TYPE_17__** @XmuNewCvtStringToWidget.static_val.6 to i32*), i32** %272
br label %273
273: ; preds = %268, %261
%274 = load %struct.TYPE_16__*, %struct.TYPE_16__** %12
%275 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %274, i32 0, i32 0
store i32 8, i32* %275
%276 = load i32, i32* @True
store i32 %276, i32* %7
br label %292
277: ; preds = %235
br label %278
278: ; preds = %277
%279 = load i32, i32* %17
%280 = add nsw i32 %279, -1
store i32 %280, i32* %17
%281 = load %struct.TYPE_17__**, %struct.TYPE_17__*** %14
%282 = getelementptr inbounds %struct.TYPE_17__*, %struct.TYPE_17__** %281, i32 1
store %struct.TYPE_17__** %282, %struct.TYPE_17__*** %14
br label %232
283: ; preds = %232
%284 = load i32*, i32** %8
%285 = load %struct.TYPE_16__*, %struct.TYPE_16__** %11
%286 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %285, i32 0, i32 1
%287 = load i32*, i32** %286
%288 = ptrtoint i32* %287 to i32
%289 = load i32, i32* @XtRWidget
%290 = call i32 @XtDisplayStringConversionWarning(i32* %284, i32 %288, i32 %289)
%291 = load i32, i32* @False
store i32 %291, i32* %7
br label %292
292: ; preds = %283, %273, %257, %212, %196, %146, %130, %88, %72
%293 = load i32, i32* %7
ret i32 %293
}

LLVM IR (-O2):
%struct.TYPE_17__ = type { %struct.TYPE_15__ }
%struct.TYPE_15__ = type { i64, i32, %struct.TYPE_14__*, %struct.TYPE_17__** }
%struct.TYPE_14__ = type { %struct.TYPE_13__ }
%struct.TYPE_13__ = type { i64 }
%struct.TYPE_16__ = type { i32, i32* }
@.str = [16 x i8] c"wrongParameters\00"
@.str.1 = [18 x i8] c"cvtStringToWidget\00"
@.str.2 = [15 x i8] c"xtToolkitError\00"
@.str.3 = [50 x i8] c"String To Widget conversion needs parent argument\00"
@False = global i32 0
@XmuNewCvtStringToWidget.static_val = internal global %struct.TYPE_17__* null
@True = global i32 0
@XmuNewCvtStringToWidget.static_val.4 = internal global %struct.TYPE_17__* null
@XmuNewCvtStringToWidget.static_val.5 = internal global %struct.TYPE_17__* null
@XmuNewCvtStringToWidget.static_val.6 = internal global %struct.TYPE_17__* null
@XtRWidget = global i32 0
define i32 @XmuNewCvtStringToWidget(i32* %0, %struct.TYPE_16__* nocapture %1, i32* nocapture %2, %struct.TYPE_16__* nocapture %3, %struct.TYPE_16__* nocapture %4, i8** nocapture readnone %5) {
%7 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %3, i64 0, i32 1
%8 = load i32*, i32** %7
%9 = tail call i64 @XrmStringToName(i32* %8)
%10 = load i32, i32* %2
%11 = icmp eq i32 %10, 1
br i1 %11, label %15, label %12
12: ; preds = %6
%13 = tail call i32 @XtDisplayToApplicationContext(i32* %0)
%14 = tail call i32 @XtAppWarningMsg(i32 %13, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.3, i64 0, i64 0), i32* null, i32* null)
br label %15
15: ; preds = %12, %6
%16 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %1, i64 0, i32 1
%17 = bitcast i32** %16 to %struct.TYPE_17__***
%18 = load %struct.TYPE_17__**, %struct.TYPE_17__*** %17
%19 = load %struct.TYPE_17__*, %struct.TYPE_17__** %18
%20 = tail call i64 @XtIsComposite(%struct.TYPE_17__* %19)
%21 = icmp eq i64 %20, 0
br i1 %21, label %22, label %25
22: ; preds = %15
%23 = getelementptr inbounds %struct.TYPE_17__, %struct.TYPE_17__* %19, i64 0, i32 0, i32 1
%24 = load i32, i32* %23
br label %59
25: ; preds = %15
%26 = bitcast %struct.TYPE_17__* %19 to i32*
%27 = load i32, i32* %26
%28 = getelementptr inbounds %struct.TYPE_17__, %struct.TYPE_17__* %19, i64 0, i32 0, i32 1
%29 = bitcast i32* %28 to %struct.TYPE_17__***
%30 = load %struct.TYPE_17__**, %struct.TYPE_17__*** %29
%31 = icmp eq i32 %27, 0
%32 = ptrtoint %struct.TYPE_17__** %30 to i64
%33 = trunc i64 %32 to i32
br i1 %31, label %59, label %34
34: ; preds = %25, %55
%35 = phi i32 [ %56, %55 ], [ %27, %25 ]
%36 = phi %struct.TYPE_17__** [ %57, %55 ], [ %30, %25 ]
%37 = load %struct.TYPE_17__*, %struct.TYPE_17__** %36
%38 = getelementptr inbounds %struct.TYPE_17__, %struct.TYPE_17__* %37, i64 0, i32 0, i32 0
%39 = load i64, i64* %38
%40 = icmp eq i64 %39, %9
br i1 %40, label %41, label %55
41: ; preds = %34
%42 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %4, i64 0, i32 1
%43 = load i32*, i32** %42
%44 = icmp eq i32* %43, null
br i1 %44, label %52, label %45
45: ; preds = %41
%46 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %4, i64 0, i32 0
%47 = load i32, i32* %46
%48 = icmp ult i32 %47, 8
br i1 %48, label %49, label %50
49: ; preds = %45
store i32 8, i32* %46
br label %169
50: ; preds = %45
%51 = bitcast i32* %43 to %struct.TYPE_17__**
store %struct.TYPE_17__* %37, %struct.TYPE_17__** %51
br label %53
52: ; preds = %41
store %struct.TYPE_17__* %37, %struct.TYPE_17__** @XmuNewCvtStringToWidget.static_val
store i32* bitcast (%struct.TYPE_17__** @XmuNewCvtStringToWidget.static_val to i32*), i32** %42
br label %53
53: ; preds = %52, %50
%54 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %4, i64 0, i32 0
store i32 8, i32* %54
br label %169
55: ; preds = %34
%56 = add nsw i32 %35, -1
%57 = getelementptr inbounds %struct.TYPE_17__*, %struct.TYPE_17__** %36, i64 1
%58 = icmp eq i32 %56, 0
br i1 %58, label %59, label %34
59: ; preds = %55, %22, %25
%60 = phi i32 [ %24, %22 ], [ %33, %25 ], [ %33, %55 ]
%61 = getelementptr inbounds %struct.TYPE_17__, %struct.TYPE_17__* %19, i64 0, i32 0, i32 1
%62 = getelementptr inbounds %struct.TYPE_17__, %struct.TYPE_17__* %19, i64 0, i32 0, i32 3
%63 = icmp eq i32 %60, 0
br i1 %63, label %91, label %64
64: ; preds = %59
%65 = load %struct.TYPE_17__**, %struct.TYPE_17__*** %62
br label %66
66: ; preds = %64, %87
%67 = phi i32 [ %88, %87 ], [ %60, %64 ]
%68 = phi %struct.TYPE_17__** [ %89, %87 ], [ %65, %64 ]
%69 = load %struct.TYPE_17__*, %struct.TYPE_17__** %68
%70 = getelementptr inbounds %struct.TYPE_17__, %struct.TYPE_17__* %69, i64 0, i32 0, i32 0
%71 = load i64, i64* %70
%72 = icmp eq i64 %71, %9
br i1 %72, label %73, label %87
73: ; preds = %66
%74 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %4, i64 0, i32 1
%75 = load i32*, i32** %74
%76 = icmp eq i32* %75, null
br i1 %76, label %84, label %77
77: ; preds = %73
%78 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %4, i64 0, i32 0
%79 = load i32, i32* %78
%80 = icmp ult i32 %79, 8
br i1 %80, label %81, label %82
81: ; preds = %77
store i32 8, i32* %78
br label %169
82: ; preds = %77
%83 = bitcast i32* %75 to %struct.TYPE_17__**
store %struct.TYPE_17__* %69, %struct.TYPE_17__** %83
br label %85
84: ; preds = %73
store %struct.TYPE_17__* %69, %struct.TYPE_17__** @XmuNewCvtStringToWidget.static_val.4
store i32* bitcast (%struct.TYPE_17__** @XmuNewCvtStringToWidget.static_val.4 to i32*), i32** %74
br label %85
85: ; preds = %84, %82
%86 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %4, i64 0, i32 0
store i32 8, i32* %86
br label %169
87: ; preds = %66
%88 = add nsw i32 %67, -1
%89 = getelementptr inbounds %struct.TYPE_17__*, %struct.TYPE_17__** %68, i64 1
%90 = icmp eq i32 %88, 0
br i1 %90, label %91, label %66
91: ; preds = %87, %59
%92 = tail call i64 @XtIsComposite(%struct.TYPE_17__* %19)
%93 = icmp eq i64 %92, 0
br i1 %93, label %94, label %96
94: ; preds = %91
%95 = load i32, i32* %61
br label %131
96: ; preds = %91
%97 = bitcast %struct.TYPE_17__* %19 to i32*
%98 = load i32, i32* %97
%99 = bitcast i32* %61 to %struct.TYPE_17__***
%100 = load %struct.TYPE_17__**, %struct.TYPE_17__*** %99
%101 = icmp eq i32 %98, 0
%102 = ptrtoint %struct.TYPE_17__** %100 to i64
%103 = trunc i64 %102 to i32
br i1 %101, label %131, label %104
104: ; preds = %96, %127
%105 = phi i32 [ %128, %127 ], [ %98, %96 ]
%106 = phi %struct.TYPE_17__** [ %129, %127 ], [ %100, %96 ]
%107 = load %struct.TYPE_17__*, %struct.TYPE_17__** %106
%108 = getelementptr inbounds %struct.TYPE_17__, %struct.TYPE_17__* %107, i64 0, i32 0, i32 2
%109 = load %struct.TYPE_14__*, %struct.TYPE_14__** %108
%110 = getelementptr inbounds %struct.TYPE_14__, %struct.TYPE_14__* %109, i64 0, i32 0, i32 0
%111 = load i64, i64* %110
%112 = icmp eq i64 %111, %9
br i1 %112, label %113, label %127
113: ; preds = %104
%114 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %4, i64 0, i32 1
%115 = load i32*, i32** %114
%116 = icmp eq i32* %115, null
br i1 %116, label %124, label %117
117: ; preds = %113
%118 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %4, i64 0, i32 0
%119 = load i32, i32* %118
%120 = icmp ult i32 %119, 8
br i1 %120, label %121, label %122
121: ; preds = %117
store i32 8, i32* %118
br label %169
122: ; preds = %117
%123 = bitcast i32* %115 to %struct.TYPE_17__**
store %struct.TYPE_17__* %107, %struct.TYPE_17__** %123
br label %125
124: ; preds = %113
store %struct.TYPE_17__* %107, %struct.TYPE_17__** @XmuNewCvtStringToWidget.static_val.5
store i32* bitcast (%struct.TYPE_17__** @XmuNewCvtStringToWidget.static_val.5 to i32*), i32** %114
br label %125
125: ; preds = %124, %122
%126 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %4, i64 0, i32 0
store i32 8, i32* %126
br label %169
127: ; preds = %104
%128 = add nsw i32 %105, -1
%129 = getelementptr inbounds %struct.TYPE_17__*, %struct.TYPE_17__** %106, i64 1
%130 = icmp eq i32 %128, 0
br i1 %130, label %131, label %104
131: ; preds = %127, %94, %96
%132 = phi i32 [ %95, %94 ], [ %103, %96 ], [ %103, %127 ]
%133 = icmp eq i32 %132, 0
br i1 %133, label %163, label %134
134: ; preds = %131
%135 = load %struct.TYPE_17__**, %struct.TYPE_17__*** %62
br label %136
136: ; preds = %134, %159
%137 = phi i32 [ %160, %159 ], [ %132, %134 ]
%138 = phi %struct.TYPE_17__** [ %161, %159 ], [ %135, %134 ]
%139 = load %struct.TYPE_17__*, %struct.TYPE_17__** %138
%140 = getelementptr inbounds %struct.TYPE_17__, %struct.TYPE_17__* %139, i64 0, i32 0, i32 2
%141 = load %struct.TYPE_14__*, %struct.TYPE_14__** %140
%142 = getelementptr inbounds %struct.TYPE_14__, %struct.TYPE_14__* %141, i64 0, i32 0, i32 0
%143 = load i64, i64* %142
%144 = icmp eq i64 %143, %9
br i1 %144, label %145, label %159
145: ; preds = %136
%146 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %4, i64 0, i32 1
%147 = load i32*, i32** %146
%148 = icmp eq i32* %147, null
br i1 %148, label %156, label %149
149: ; preds = %145
%150 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %4, i64 0, i32 0
%151 = load i32, i32* %150
%152 = icmp ult i32 %151, 8
br i1 %152, label %153, label %154
153: ; preds = %149
store i32 8, i32* %150
br label %169
154: ; preds = %149
%155 = bitcast i32* %147 to %struct.TYPE_17__**
store %struct.TYPE_17__* %139, %struct.TYPE_17__** %155
br label %157
156: ; preds = %145
store %struct.TYPE_17__* %139, %struct.TYPE_17__** @XmuNewCvtStringToWidget.static_val.6
store i32* bitcast (%struct.TYPE_17__** @XmuNewCvtStringToWidget.static_val.6 to i32*), i32** %146
br label %157
157: ; preds = %156, %154
%158 = getelementptr inbounds %struct.TYPE_16__, %struct.TYPE_16__* %4, i64 0, i32 0
store i32 8, i32* %158
br label %169
159: ; preds = %136
%160 = add nsw i32 %137, -1
%161 = getelementptr inbounds %struct.TYPE_17__*, %struct.TYPE_17__** %138, i64 1
%162 = icmp eq i32 %160, 0
br i1 %162, label %163, label %136
163: ; preds = %159, %131
%164 = load i32*, i32** %7
%165 = ptrtoint i32* %164 to i64
%166 = trunc i64 %165 to i32
%167 = load i32, i32* @XtRWidget
%168 = tail call i32 @XtDisplayStringConversionWarning(i32* %0, i32 %166, i32 %167)
br label %169
169: ; preds = %163, %157, %153, %125, %121, %85, %81, %53, %49
%170 = phi i32* [ @False, %49 ], [ @True, %53 ], [ @False, %81 ], [ @True, %85 ], [ @False, %121 ], [ @True, %125 ], [ @False, %153 ], [ @True, %157 ], [ @False, %163 ]
%171 = load i32, i32* %170
ret i32 %171
}