char *ieee_p_3499444699_sub_420421355769713595_3536714472(char *t1, char *t2,
                                                          char *t3, char *t4) {
  char t5[128];
  char t6[24];
  char t9[16];
  char t59[16];
  char *t0;
  char *t7;
  unsigned int t8;
  char *t10;
  int t11;
  char *t12;
  int t13;
  char *t14;
  int t15;
  char *t16;
  char *t17;
  int t18;
  unsigned int t19;
  char *t20;
  char *t21;
  char *t22;
  char *t23;
  char *t24;
  char *t25;
  char *t26;
  unsigned char t27;
  char *t28;
  unsigned char t29;
  char *t30;
  int t31;
  char *t32;
  int t33;
  char *t34;
  int t35;
  int t36;
  unsigned int t37;
  unsigned int t38;
  char *t39;
  unsigned char t40;
  unsigned char t41;
  char *t42;
  int t43;
  char *t44;
  int t45;
  char *t46;
  int t47;
  int t48;
  unsigned int t49;
  unsigned int t50;
  unsigned int t51;
  char *t52;
  unsigned char t53;
  unsigned char t54;
  char *t55;
  char *t56;
  char *t57;
  unsigned int t58;
LAB0:
  t7 = (t4 + 12U);
  t8 = *((unsigned int *)t7);
  t8 = (t8 * 1U);
  t10 = (t4 + 0U);
  t11 = *((int *)t10);
  t12 = (t4 + 4U);
  t13 = *((int *)t12);
  t14 = (t4 + 8U);
  t15 = *((int *)t14);
  t16 = (t9 + 0U);
  t17 = (t16 + 0U);
  *((int *)t17) = t11;
  t17 = (t16 + 4U);
  *((int *)t17) = t13;
  t17 = (t16 + 8U);
  *((int *)t17) = t15;
  t18 = (t13 - t11);
  t19 = (t18 * t15);
  t19 = (t19 + 1);
  t17 = (t16 + 12U);
  *((unsigned int *)t17) = t19;
  t17 = (t5 + 4U);
  t20 = (t1 + 2704);
  t21 = (t17 + 88U);
  *((char **)t21) = t20;
  t22 = (char *)alloca(t8);
  t23 = (t17 + 56U);
  *((char **)t23) = t22;
  xsi_type_set_default_value(t20, t22, t9);
  t24 = (t17 + 64U);
  *((char **)t24) = t9;
  t25 = (t17 + 80U);
  *((unsigned int *)t25) = t8;
  t26 = (t6 + 4U);
  t27 = (t3 != 0);
  if (t27 == 1)
    goto LAB3;
LAB2:
  t28 = (t6 + 12U);
  *((char **)t28) = t4;
  t30 = (t4 + 0U);
  t31 = *((int *)t30);
  t32 = (t4 + 0U);
  t33 = *((int *)t32);
  t34 = (t4 + 8U);
  t35 = *((int *)t34);
  t36 = (t31 - t33);
  t19 = (t36 * t35);
  t37 = (1U * t19);
  t38 = (0 + t37);
  t39 = (t3 + t38);
  t40 = *((unsigned char *)t39);
  t41 = (t40 == (unsigned char)2);
  if (t41 == 1)
    goto LAB7;
LAB8:
  t42 = (t4 + 0U);
  t43 = *((int *)t42);
  t44 = (t4 + 0U);
  t45 = *((int *)t44);
  t46 = (t4 + 8U);
  t47 = *((int *)t46);
  t48 = (t43 - t45);
  t49 = (t48 * t47);
  t50 = (1U * t49);
  t51 = (0 + t50);
  t52 = (t3 + t51);
  t53 = *((unsigned char *)t52);
  t54 = (t53 == (unsigned char)6);
  t29 = t54;
LAB9:
  if (t29 != 0)
    goto LAB4;
LAB6:
  t7 = ieee_p_3499444699_sub_3760106476388108256_3536714472(t1, t59, 0, t3, t4);
  t10 = (t17 + 56U);
  t12 = *((char **)t10);
  t10 = (t12 + 0);
  t14 = (t59 + 12U);
  t8 = *((unsigned int *)t14);
  t19 = (1U * t8);
  memcpy(t10, t7, t19);
LAB5:
  t7 = (t17 + 56U);
  t10 = *((char **)t7);
  t7 = (t9 + 12U);
  t8 = *((unsigned int *)t7);
  t8 = (t8 * 1U);
  t0 = xsi_get_transient_memory(t8);
  memcpy(t0, t10, t8);
  t12 = (t9 + 0U);
  t11 = *((int *)t12);
  t14 = (t9 + 4U);
  t13 = *((int *)t14);
  t16 = (t9 + 8U);
  t15 = *((int *)t16);
  t20 = (t2 + 0U);
  t21 = (t20 + 0U);
  *((int *)t21) = t11;
  t21 = (t20 + 4U);
  *((int *)t21) = t13;
  t21 = (t20 + 8U);
  *((int *)t21) = t15;
  t18 = (t13 - t11);
  t19 = (t18 * t15);
  t19 = (t19 + 1);
  t21 = (t20 + 12U);
  *((unsigned int *)t21) = t19;
LAB1:
  return t0;
LAB3:
  *((char **)t26) = t3;
  goto LAB2;
LAB4:
  t55 = (t17 + 56U);
  t56 = *((char **)t55);
  t55 = (t56 + 0);
  t57 = (t4 + 12U);
  t58 = *((unsigned int *)t57);
  t58 = (t58 * 1U);
  memcpy(t55, t3, t58);
  goto LAB5;
LAB7:
  t29 = (unsigned char)1;
  goto LAB9;
LAB10:;
}


x86 assembly (clang, -O0):
<ieee_p_3499444699_sub_420421355769713595_3536714472>:
push   %rbp
mov    %rsp,%rbp
sub    $0x260,%rsp
mov    %rdi,-0x10(%rbp)
mov    %rsi,-0x18(%rbp)
mov    %rdx,-0x20(%rbp)
mov    %rcx,-0x28(%rbp)
mov    -0x28(%rbp),%rax
add    $0xc,%rax
mov    %rax,-0x100(%rbp)
mov    -0x100(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x104(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0x110(%rbp)
mov    -0x110(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x114(%rbp)
mov    -0x28(%rbp),%rax
add    $0x4,%rax
mov    %rax,-0x120(%rbp)
mov    -0x120(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x124(%rbp)
mov    -0x28(%rbp),%rax
add    $0x8,%rax
mov    %rax,-0x130(%rbp)
mov    -0x130(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x134(%rbp)
lea    -0xe0(%rbp),%rax
mov    %rax,-0x140(%rbp)
mov    -0x140(%rbp),%rax
mov    %rax,-0x148(%rbp)
mov    -0x114(%rbp),%ecx
mov    -0x148(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x140(%rbp),%rax
add    $0x4,%rax
mov    %rax,-0x148(%rbp)
mov    -0x124(%rbp),%ecx
mov    -0x148(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x140(%rbp),%rax
add    $0x8,%rax
mov    %rax,-0x148(%rbp)
mov    -0x134(%rbp),%ecx
mov    -0x148(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x124(%rbp),%eax
mov    -0x114(%rbp),%ecx
sub    %ecx,%eax
mov    %eax,-0x14c(%rbp)
mov    -0x14c(%rbp),%eax
mov    -0x134(%rbp),%ecx
imul   %ecx,%eax
mov    %eax,-0x150(%rbp)
mov    -0x150(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x150(%rbp)
mov    -0x140(%rbp),%rax
add    $0xc,%rax
mov    %rax,-0x148(%rbp)
mov    -0x150(%rbp),%ecx
mov    -0x148(%rbp),%rax
mov    %ecx,(%rax)
lea    -0xac(%rbp),%rax
mov    %rax,-0x148(%rbp)
mov    -0x10(%rbp),%rax
add    $0xa90,%rax
mov    %rax,-0x158(%rbp)
mov    -0x148(%rbp),%rax
add    $0x58,%rax
mov    %rax,-0x160(%rbp)
mov    -0x158(%rbp),%rcx
mov    -0x160(%rbp),%rax
mov    %rcx,(%rax)
mov    -0x104(%rbp),%eax
mov    %eax,%ecx
add    $0xf,%rcx
and    $0xfffffffffffffff0,%rcx
mov    %rsp,%rax
sub    %rcx,%rax
mov    %rax,%rsp
mov    %rax,-0x168(%rbp)
mov    -0x148(%rbp),%rax
add    $0x38,%rax
mov    %rax,-0x170(%rbp)
mov    -0x168(%rbp),%rcx
mov    -0x170(%rbp),%rax
mov    %rcx,(%rax)
mov    -0x158(%rbp),%rdi
mov    -0x168(%rbp),%rsi
lea    -0xe0(%rbp),%rdx
mov    $0x0,%al
call   1030 <xsi_type_set_default_value@plt>
mov    -0x148(%rbp),%rax
add    $0x40,%rax
mov    %rax,-0x178(%rbp)
lea    -0xe0(%rbp),%rcx
mov    -0x178(%rbp),%rax
mov    %rcx,(%rax)
mov    -0x148(%rbp),%rax
add    $0x50,%rax
mov    %rax,-0x180(%rbp)
mov    -0x104(%rbp),%ecx
mov    -0x180(%rbp),%rax
mov    %ecx,(%rax)
lea    -0xd0(%rbp),%rax
add    $0x4,%rax
mov    %rax,-0x188(%rbp)
cmpq   $0x0,-0x20(%rbp)
setne  %al
and    $0x1,%al
movzbl %al,%eax
mov    %al,-0x189(%rbp)
movzbl -0x189(%rbp),%eax
cmp    $0x1,%eax
jne    13b4 <ieee_p_3499444699_sub_420421355769713595_3536714472+0x274>
jmp    180c <ieee_p_3499444699_sub_420421355769713595_3536714472+0x6cc>
jmp    13b9 <ieee_p_3499444699_sub_420421355769713595_3536714472+0x279>
lea    -0xd0(%rbp),%rax
add    $0xc,%rax
mov    %rax,-0x198(%rbp)
mov    -0x28(%rbp),%rcx
mov    -0x198(%rbp),%rax
mov    %rcx,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,-0x1a8(%rbp)
mov    -0x1a8(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x1ac(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0x1b8(%rbp)
mov    -0x1b8(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x1bc(%rbp)
mov    -0x28(%rbp),%rax
add    $0x8,%rax
mov    %rax,-0x1c8(%rbp)
mov    -0x1c8(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x1cc(%rbp)
mov    -0x1ac(%rbp),%eax
sub    -0x1bc(%rbp),%eax
mov    %eax,-0x1d0(%rbp)
mov    -0x1d0(%rbp),%eax
imul   -0x1cc(%rbp),%eax
mov    %eax,-0x150(%rbp)
mov    -0x150(%rbp),%eax
shl    $0x0,%eax
mov    %eax,-0x1d4(%rbp)
mov    -0x1d4(%rbp),%eax
add    $0x0,%eax
mov    %eax,-0x1d8(%rbp)
mov    -0x20(%rbp),%rax
mov    -0x1d8(%rbp),%ecx
add    %rcx,%rax
mov    %rax,-0x1e0(%rbp)
mov    -0x1e0(%rbp),%rax
mov    (%rax),%al
mov    %al,-0x1e1(%rbp)
movzbl -0x1e1(%rbp),%eax
cmp    $0x2,%eax
sete   %al
and    $0x1,%al
movzbl %al,%eax
mov    %al,-0x1e2(%rbp)
movzbl -0x1e2(%rbp),%eax
cmp    $0x1,%eax
jne    14be <ieee_p_3499444699_sub_420421355769713595_3536714472+0x37e>
jmp    189a <ieee_p_3499444699_sub_420421355769713595_3536714472+0x75a>
jmp    14c3 <ieee_p_3499444699_sub_420421355769713595_3536714472+0x383>
mov    -0x28(%rbp),%rax
mov    %rax,-0x1f0(%rbp)
mov    -0x1f0(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x1f4(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0x200(%rbp)
mov    -0x200(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x204(%rbp)
mov    -0x28(%rbp),%rax
add    $0x8,%rax
mov    %rax,-0x210(%rbp)
mov    -0x210(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x214(%rbp)
mov    -0x1f4(%rbp),%eax
sub    -0x204(%rbp),%eax
mov    %eax,-0x218(%rbp)
mov    -0x218(%rbp),%eax
imul   -0x214(%rbp),%eax
mov    %eax,-0x21c(%rbp)
mov    -0x21c(%rbp),%eax
shl    $0x0,%eax
mov    %eax,-0x220(%rbp)
mov    -0x220(%rbp),%eax
add    $0x0,%eax
mov    %eax,-0x224(%rbp)
mov    -0x20(%rbp),%rax
mov    -0x224(%rbp),%ecx
add    %rcx,%rax
mov    %rax,-0x230(%rbp)
mov    -0x230(%rbp),%rax
mov    (%rax),%al
mov    %al,-0x231(%rbp)
movzbl -0x231(%rbp),%eax
cmp    $0x6,%eax
sete   %al
and    $0x1,%al
movzbl %al,%eax
mov    %al,-0x232(%rbp)
mov    -0x232(%rbp),%al
mov    %al,-0x199(%rbp)
movzbl -0x199(%rbp),%eax
cmp    $0x0,%eax
je     15b4 <ieee_p_3499444699_sub_420421355769713595_3536714472+0x474>
jmp    181f <ieee_p_3499444699_sub_420421355769713595_3536714472+0x6df>
jmp    15b9 <ieee_p_3499444699_sub_420421355769713595_3536714472+0x479>
mov    -0x10(%rbp),%rdi
lea    -0xf0(%rbp),%rsi
mov    -0x20(%rbp),%rcx
mov    -0x28(%rbp),%r8
xor    %edx,%edx
mov    $0x0,%al
call   1050 <ieee_p_3499444699_sub_3760106476388108256_3536714472@plt>
cltq
mov    %rax,-0x100(%rbp)
mov    -0x148(%rbp),%rax
add    $0x38,%rax
mov    %rax,-0x110(%rbp)
mov    -0x110(%rbp),%rax
mov    (%rax),%rax
mov    %rax,-0x120(%rbp)
mov    -0x120(%rbp),%rax
mov    %rax,-0x110(%rbp)
lea    -0xf0(%rbp),%rax
add    $0xc,%rax
mov    %rax,-0x130(%rbp)
mov    -0x130(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x104(%rbp)
mov    -0x104(%rbp),%eax
shl    $0x0,%eax
mov    %eax,-0x150(%rbp)
mov    -0x110(%rbp),%rdi
mov    -0x100(%rbp),%rsi
mov    -0x150(%rbp),%eax
mov    %eax,%edx
call   1040 <memcpy@plt>
mov    -0x148(%rbp),%rax
add    $0x38,%rax
mov    %rax,-0x100(%rbp)
mov    -0x100(%rbp),%rax
mov    (%rax),%rax
mov    %rax,-0x110(%rbp)
lea    -0xe0(%rbp),%rax
add    $0xc,%rax
mov    %rax,-0x100(%rbp)
mov    -0x100(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x104(%rbp)
mov    -0x104(%rbp),%eax
shl    $0x0,%eax
mov    %eax,-0x104(%rbp)
mov    -0x104(%rbp),%edi
mov    $0x0,%al
call   1060 <xsi_get_transient_memory@plt>
cltq
mov    %rax,-0xf8(%rbp)
mov    -0xf8(%rbp),%rdi
mov    -0x110(%rbp),%rsi
mov    -0x104(%rbp),%eax
mov    %eax,%edx
call   1040 <memcpy@plt>
lea    -0xe0(%rbp),%rax
mov    %rax,-0x120(%rbp)
mov    -0x120(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x114(%rbp)
lea    -0xe0(%rbp),%rax
add    $0x4,%rax
mov    %rax,-0x130(%rbp)
mov    -0x130(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x124(%rbp)
lea    -0xe0(%rbp),%rax
add    $0x8,%rax
mov    %rax,-0x140(%rbp)
mov    -0x140(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x134(%rbp)
mov    -0x18(%rbp),%rax
mov    %rax,-0x158(%rbp)
mov    -0x158(%rbp),%rax
mov    %rax,-0x160(%rbp)
mov    -0x114(%rbp),%ecx
mov    -0x160(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x158(%rbp),%rax
add    $0x4,%rax
mov    %rax,-0x160(%rbp)
mov    -0x124(%rbp),%ecx
mov    -0x160(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x158(%rbp),%rax
add    $0x8,%rax
mov    %rax,-0x160(%rbp)
mov    -0x134(%rbp),%ecx
mov    -0x160(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x124(%rbp),%eax
sub    -0x114(%rbp),%eax
mov    %eax,-0x14c(%rbp)
mov    -0x14c(%rbp),%eax
imul   -0x134(%rbp),%eax
mov    %eax,-0x150(%rbp)
mov    -0x150(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x150(%rbp)
mov    -0x158(%rbp),%rax
add    $0xc,%rax
mov    %rax,-0x160(%rbp)
mov    -0x150(%rbp),%ecx
mov    -0x160(%rbp),%rax
mov    %ecx,(%rax)
mov    -0xf8(%rbp),%rax
mov    %rax,-0x8(%rbp)
jmp    18a6 <ieee_p_3499444699_sub_420421355769713595_3536714472+0x766>
mov    -0x20(%rbp),%rcx
mov    -0x188(%rbp),%rax
mov    %rcx,(%rax)
jmp    13b9 <ieee_p_3499444699_sub_420421355769713595_3536714472+0x279>
mov    -0x148(%rbp),%rax
add    $0x38,%rax
mov    %rax,-0x240(%rbp)
mov    -0x240(%rbp),%rax
mov    (%rax),%rax
mov    %rax,-0x248(%rbp)
mov    -0x248(%rbp),%rax
mov    %rax,-0x240(%rbp)
mov    -0x28(%rbp),%rax
add    $0xc,%rax
mov    %rax,-0x250(%rbp)
mov    -0x250(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x254(%rbp)
mov    -0x254(%rbp),%eax
shl    $0x0,%eax
mov    %eax,-0x254(%rbp)
mov    -0x240(%rbp),%rdi
mov    -0x20(%rbp),%rsi
mov    -0x254(%rbp),%eax
mov    %eax,%edx
call   1040 <memcpy@plt>
jmp    165a <ieee_p_3499444699_sub_420421355769713595_3536714472+0x51a>
movb   $0x1,-0x199(%rbp)
jmp    159f <ieee_p_3499444699_sub_420421355769713595_3536714472+0x45f>
mov    -0x8(%rbp),%rax
mov    %rbp,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<ieee_p_3499444699_sub_420421355769713595_3536714472>:
push   %rbp
mov    %rsp,%rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x28,%rsp
mov    %rcx,%r12
mov    %rdx,%r15
mov    %rsi,%r14
mov    %rdi,%rbx
mov    0xc(%rcx),%eax
mov    (%rcx),%ecx
mov    0x4(%r12),%edx
mov    0x8(%r12),%esi
mov    %ecx,-0x40(%rbp)
mov    %edx,-0x3c(%rbp)
mov    %esi,-0x38(%rbp)
sub    %ecx,%edx
imul   %esi,%edx
add    $0x1,%edx
mov    %edx,-0x34(%rbp)
add    $0xa90,%rdi
mov    %rsp,%r13
add    $0xf,%rax
and    $0xfffffffffffffff0,%rax
sub    %rax,%r13
mov    %r13,%rsp
lea    -0x40(%rbp),%rdx
mov    %r13,%rsi
xor    %eax,%eax
call   1030 <xsi_type_set_default_value@plt>
mov    (%r15),%al
and    $0xfb,%al
cmp    $0x2,%al
jne    11bc <ieee_p_3499444699_sub_420421355769713595_3536714472+0x7c>
mov    0xc(%r12),%edx
mov    %r13,%rdi
mov    %r15,%rsi
jmp    11db <ieee_p_3499444699_sub_420421355769713595_3536714472+0x9b>
lea    -0x50(%rbp),%rsi
mov    %rbx,%rdi
xor    %edx,%edx
mov    %r15,%rcx
mov    %r12,%r8
xor    %eax,%eax
call   1050 <ieee_p_3499444699_sub_3760106476388108256_3536714472@plt>
movslq %eax,%rsi
mov    -0x44(%rbp),%edx
mov    %r13,%rdi
call   1040 <memcpy@plt>
mov    -0x34(%rbp),%ebx
mov    %ebx,%edi
xor    %eax,%eax
call   1060 <xsi_get_transient_memory@plt>
movslq %eax,%r15
mov    %r15,%rdi
mov    %r13,%rsi
mov    %rbx,%rdx
call   1040 <memcpy@plt>
mov    -0x40(%rbp),%eax
mov    -0x3c(%rbp),%ecx
mov    -0x38(%rbp),%edx
mov    %eax,(%r14)
mov    %ecx,0x4(%r14)
mov    %edx,0x8(%r14)
sub    %eax,%ecx
imul   %edx,%ecx
add    $0x1,%ecx
mov    %ecx,0xc(%r14)
mov    %r15,%rax
lea    -0x28(%rbp),%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
define i8* @ieee_p_3499444699_sub_420421355769713595_3536714472(i8* %0, i8* %1, i8* %2, i8* %3) {
%5 = alloca i8*
%6 = alloca i8*
%7 = alloca i8*
%8 = alloca i8*
%9 = alloca i8*
%10 = alloca [128 x i8]
%11 = alloca [24 x i8]
%12 = alloca [16 x i8]
%13 = alloca [16 x i8]
%14 = alloca i8*
%15 = alloca i8*
%16 = alloca i32
%17 = alloca i8*
%18 = alloca i32
%19 = alloca i8*
%20 = alloca i32
%21 = alloca i8*
%22 = alloca i32
%23 = alloca i8*
%24 = alloca i8*
%25 = alloca i32
%26 = alloca i32
%27 = alloca i8*
%28 = alloca i8*
%29 = alloca i8*
%30 = alloca i8*
%31 = alloca i8*
%32 = alloca i8*
%33 = alloca i8*
%34 = alloca i8
%35 = alloca i8*
%36 = alloca i8
%37 = alloca i8*
%38 = alloca i32
%39 = alloca i8*
%40 = alloca i32
%41 = alloca i8*
%42 = alloca i32
%43 = alloca i32
%44 = alloca i32
%45 = alloca i32
%46 = alloca i8*
%47 = alloca i8
%48 = alloca i8
%49 = alloca i8*
%50 = alloca i32
%51 = alloca i8*
%52 = alloca i32
%53 = alloca i8*
%54 = alloca i32
%55 = alloca i32
%56 = alloca i32
%57 = alloca i32
%58 = alloca i32
%59 = alloca i8*
%60 = alloca i8
%61 = alloca i8
%62 = alloca i8*
%63 = alloca i8*
%64 = alloca i8*
%65 = alloca i32
store i8* %0, i8** %6
store i8* %1, i8** %7
store i8* %2, i8** %8
store i8* %3, i8** %9
br label %66
66: ; preds = %4
%67 = load i8*, i8** %9
%68 = getelementptr inbounds i8, i8* %67, i64 12
store i8* %68, i8** %15
%69 = load i8*, i8** %15
%70 = bitcast i8* %69 to i32*
%71 = load i32, i32* %70
store i32 %71, i32* %16
%72 = load i32, i32* %16
%73 = mul i32 %72, 1
store i32 %73, i32* %16
%74 = load i8*, i8** %9
%75 = getelementptr inbounds i8, i8* %74, i64 0
store i8* %75, i8** %17
%76 = load i8*, i8** %17
%77 = bitcast i8* %76 to i32*
%78 = load i32, i32* %77
store i32 %78, i32* %18
%79 = load i8*, i8** %9
%80 = getelementptr inbounds i8, i8* %79, i64 4
store i8* %80, i8** %19
%81 = load i8*, i8** %19
%82 = bitcast i8* %81 to i32*
%83 = load i32, i32* %82
store i32 %83, i32* %20
%84 = load i8*, i8** %9
%85 = getelementptr inbounds i8, i8* %84, i64 8
store i8* %85, i8** %21
%86 = load i8*, i8** %21
%87 = bitcast i8* %86 to i32*
%88 = load i32, i32* %87
store i32 %88, i32* %22
%89 = getelementptr inbounds [16 x i8], [16 x i8]* %12, i64 0, i64 0
%90 = getelementptr inbounds i8, i8* %89, i64 0
store i8* %90, i8** %23
%91 = load i8*, i8** %23
%92 = getelementptr inbounds i8, i8* %91, i64 0
store i8* %92, i8** %24
%93 = load i32, i32* %18
%94 = load i8*, i8** %24
%95 = bitcast i8* %94 to i32*
store i32 %93, i32* %95
%96 = load i8*, i8** %23
%97 = getelementptr inbounds i8, i8* %96, i64 4
store i8* %97, i8** %24
%98 = load i32, i32* %20
%99 = load i8*, i8** %24
%100 = bitcast i8* %99 to i32*
store i32 %98, i32* %100
%101 = load i8*, i8** %23
%102 = getelementptr inbounds i8, i8* %101, i64 8
store i8* %102, i8** %24
%103 = load i32, i32* %22
%104 = load i8*, i8** %24
%105 = bitcast i8* %104 to i32*
store i32 %103, i32* %105
%106 = load i32, i32* %20
%107 = load i32, i32* %18
%108 = sub nsw i32 %106, %107
store i32 %108, i32* %25
%109 = load i32, i32* %25
%110 = load i32, i32* %22
%111 = mul nsw i32 %109, %110
store i32 %111, i32* %26
%112 = load i32, i32* %26
%113 = add i32 %112, 1
store i32 %113, i32* %26
%114 = load i8*, i8** %23
%115 = getelementptr inbounds i8, i8* %114, i64 12
store i8* %115, i8** %24
%116 = load i32, i32* %26
%117 = load i8*, i8** %24
%118 = bitcast i8* %117 to i32*
store i32 %116, i32* %118
%119 = getelementptr inbounds [128 x i8], [128 x i8]* %10, i64 0, i64 0
%120 = getelementptr inbounds i8, i8* %119, i64 4
store i8* %120, i8** %24
%121 = load i8*, i8** %6
%122 = getelementptr inbounds i8, i8* %121, i64 2704
store i8* %122, i8** %27
%123 = load i8*, i8** %24
%124 = getelementptr inbounds i8, i8* %123, i64 88
store i8* %124, i8** %28
%125 = load i8*, i8** %27
%126 = load i8*, i8** %28
%127 = bitcast i8* %126 to i8**
store i8* %125, i8** %127
%128 = load i32, i32* %16
%129 = zext i32 %128 to i64
%130 = alloca i8, i64 %129
store i8* %130, i8** %29
%131 = load i8*, i8** %24
%132 = getelementptr inbounds i8, i8* %131, i64 56
store i8* %132, i8** %30
%133 = load i8*, i8** %29
%134 = load i8*, i8** %30
%135 = bitcast i8* %134 to i8**
store i8* %133, i8** %135
%136 = load i8*, i8** %27
%137 = load i8*, i8** %29
%138 = getelementptr inbounds [16 x i8], [16 x i8]* %12, i64 0, i64 0
%139 = call i32 (i8*, i8*, i8*, ...) bitcast (i32 (...)* @xsi_type_set_default_value to i32 (i8*, i8*, i8*, ...)*)(i8* %136, i8* %137, i8* %138)
%140 = load i8*, i8** %24
%141 = getelementptr inbounds i8, i8* %140, i64 64
store i8* %141, i8** %31
%142 = getelementptr inbounds [16 x i8], [16 x i8]* %12, i64 0, i64 0
%143 = load i8*, i8** %31
%144 = bitcast i8* %143 to i8**
store i8* %142, i8** %144
%145 = load i8*, i8** %24
%146 = getelementptr inbounds i8, i8* %145, i64 80
store i8* %146, i8** %32
%147 = load i32, i32* %16
%148 = load i8*, i8** %32
%149 = bitcast i8* %148 to i32*
store i32 %147, i32* %149
%150 = getelementptr inbounds [24 x i8], [24 x i8]* %11, i64 0, i64 0
%151 = getelementptr inbounds i8, i8* %150, i64 4
store i8* %151, i8** %33
%152 = load i8*, i8** %8
%153 = icmp ne i8* %152, null
%154 = zext i1 %153 to i32
%155 = trunc i32 %154 to i8
store i8 %155, i8* %34
%156 = load i8, i8* %34
%157 = zext i8 %156 to i32
%158 = icmp eq i32 %157, 1
br i1 %158, label %159, label %160
159: ; preds = %66
br label %346
160: ; preds = %66
br label %161
161: ; preds = %346, %160
%162 = getelementptr inbounds [24 x i8], [24 x i8]* %11, i64 0, i64 0
%163 = getelementptr inbounds i8, i8* %162, i64 12
store i8* %163, i8** %35
%164 = load i8*, i8** %9
%165 = load i8*, i8** %35
%166 = bitcast i8* %165 to i8**
store i8* %164, i8** %166
%167 = load i8*, i8** %9
%168 = getelementptr inbounds i8, i8* %167, i64 0
store i8* %168, i8** %37
%169 = load i8*, i8** %37
%170 = bitcast i8* %169 to i32*
%171 = load i32, i32* %170
store i32 %171, i32* %38
%172 = load i8*, i8** %9
%173 = getelementptr inbounds i8, i8* %172, i64 0
store i8* %173, i8** %39
%174 = load i8*, i8** %39
%175 = bitcast i8* %174 to i32*
%176 = load i32, i32* %175
store i32 %176, i32* %40
%177 = load i8*, i8** %9
%178 = getelementptr inbounds i8, i8* %177, i64 8
store i8* %178, i8** %41
%179 = load i8*, i8** %41
%180 = bitcast i8* %179 to i32*
%181 = load i32, i32* %180
store i32 %181, i32* %42
%182 = load i32, i32* %38
%183 = load i32, i32* %40
%184 = sub nsw i32 %182, %183
store i32 %184, i32* %43
%185 = load i32, i32* %43
%186 = load i32, i32* %42
%187 = mul nsw i32 %185, %186
store i32 %187, i32* %26
%188 = load i32, i32* %26
%189 = mul i32 1, %188
store i32 %189, i32* %44
%190 = load i32, i32* %44
%191 = add i32 0, %190
store i32 %191, i32* %45
%192 = load i8*, i8** %8
%193 = load i32, i32* %45
%194 = zext i32 %193 to i64
%195 = getelementptr inbounds i8, i8* %192, i64 %194
store i8* %195, i8** %46
%196 = load i8*, i8** %46
%197 = load i8, i8* %196
store i8 %197, i8* %47
%198 = load i8, i8* %47
%199 = zext i8 %198 to i32
%200 = icmp eq i32 %199, 2
%201 = zext i1 %200 to i32
%202 = trunc i32 %201 to i8
store i8 %202, i8* %48
%203 = load i8, i8* %48
%204 = zext i8 %203 to i32
%205 = icmp eq i32 %204, 1
br i1 %205, label %206, label %207
206: ; preds = %161
br label %369
207: ; preds = %161
br label %208
208: ; preds = %207
%209 = load i8*, i8** %9
%210 = getelementptr inbounds i8, i8* %209, i64 0
store i8* %210, i8** %49
%211 = load i8*, i8** %49
%212 = bitcast i8* %211 to i32*
%213 = load i32, i32* %212
store i32 %213, i32* %50
%214 = load i8*, i8** %9
%215 = getelementptr inbounds i8, i8* %214, i64 0
store i8* %215, i8** %51
%216 = load i8*, i8** %51
%217 = bitcast i8* %216 to i32*
%218 = load i32, i32* %217
store i32 %218, i32* %52
%219 = load i8*, i8** %9
%220 = getelementptr inbounds i8, i8* %219, i64 8
store i8* %220, i8** %53
%221 = load i8*, i8** %53
%222 = bitcast i8* %221 to i32*
%223 = load i32, i32* %222
store i32 %223, i32* %54
%224 = load i32, i32* %50
%225 = load i32, i32* %52
%226 = sub nsw i32 %224, %225
store i32 %226, i32* %55
%227 = load i32, i32* %55
%228 = load i32, i32* %54
%229 = mul nsw i32 %227, %228
store i32 %229, i32* %56
%230 = load i32, i32* %56
%231 = mul i32 1, %230
store i32 %231, i32* %57
%232 = load i32, i32* %57
%233 = add i32 0, %232
store i32 %233, i32* %58
%234 = load i8*, i8** %8
%235 = load i32, i32* %58
%236 = zext i32 %235 to i64
%237 = getelementptr inbounds i8, i8* %234, i64 %236
store i8* %237, i8** %59
%238 = load i8*, i8** %59
%239 = load i8, i8* %238
store i8 %239, i8* %60
%240 = load i8, i8* %60
%241 = zext i8 %240 to i32
%242 = icmp eq i32 %241, 6
%243 = zext i1 %242 to i32
%244 = trunc i32 %243 to i8
store i8 %244, i8* %61
%245 = load i8, i8* %61
store i8 %245, i8* %36
br label %246
246: ; preds = %369, %208
%247 = load i8, i8* %36
%248 = zext i8 %247 to i32
%249 = icmp ne i32 %248, 0
br i1 %249, label %250, label %251
250: ; preds = %246
br label %350
251: ; preds = %246
br label %252
252: ; preds = %251
%253 = load i8*, i8** %6
%254 = getelementptr inbounds [16 x i8], [16 x i8]* %13, i64 0, i64 0
%255 = load i8*, i8** %8
%256 = load i8*, i8** %9
%257 = call i32 (i8*, i8*, i32, i8*, i8*, ...) bitcast (i32 (...)* @ieee_p_3499444699_sub_3760106476388108256_3536714472 to i32 (i8*, i8*, i32, i8*, i8*, ...)*)(i8* %253, i8* %254, i32 0, i8* %255, i8* %256)
%258 = sext i32 %257 to i64
%259 = inttoptr i64 %258 to i8*
store i8* %259, i8** %15
%260 = load i8*, i8** %24
%261 = getelementptr inbounds i8, i8* %260, i64 56
store i8* %261, i8** %17
%262 = load i8*, i8** %17
%263 = bitcast i8* %262 to i8**
%264 = load i8*, i8** %263
store i8* %264, i8** %19
%265 = load i8*, i8** %19
%266 = getelementptr inbounds i8, i8* %265, i64 0
store i8* %266, i8** %17
%267 = getelementptr inbounds [16 x i8], [16 x i8]* %13, i64 0, i64 0
%268 = getelementptr inbounds i8, i8* %267, i64 12
store i8* %268, i8** %21
%269 = load i8*, i8** %21
%270 = bitcast i8* %269 to i32*
%271 = load i32, i32* %270
store i32 %271, i32* %16
%272 = load i32, i32* %16
%273 = mul i32 1, %272
store i32 %273, i32* %26
%274 = load i8*, i8** %17
%275 = load i8*, i8** %15
%276 = load i32, i32* %26
%277 = zext i32 %276 to i64
br label %278
278: ; preds = %350, %252
%279 = load i8*, i8** %24
%280 = getelementptr inbounds i8, i8* %279, i64 56
store i8* %280, i8** %15
%281 = load i8*, i8** %15
%282 = bitcast i8* %281 to i8**
%283 = load i8*, i8** %282
store i8* %283, i8** %17
%284 = getelementptr inbounds [16 x i8], [16 x i8]* %12, i64 0, i64 0
%285 = getelementptr inbounds i8, i8* %284, i64 12
store i8* %285, i8** %15
%286 = load i8*, i8** %15
%287 = bitcast i8* %286 to i32*
%288 = load i32, i32* %287
store i32 %288, i32* %16
%289 = load i32, i32* %16
%290 = mul i32 %289, 1
store i32 %290, i32* %16
%291 = load i32, i32* %16
%292 = call i32 (i32, ...) bitcast (i32 (...)* @xsi_get_transient_memory to i32 (i32, ...)*)(i32 %291)
%293 = sext i32 %292 to i64
%294 = inttoptr i64 %293 to i8*
store i8* %294, i8** %14
%295 = load i8*, i8** %14
%296 = load i8*, i8** %17
%297 = load i32, i32* %16
%298 = zext i32 %297 to i64
%299 = getelementptr inbounds [16 x i8], [16 x i8]* %12, i64 0, i64 0
%300 = getelementptr inbounds i8, i8* %299, i64 0
store i8* %300, i8** %19
%301 = load i8*, i8** %19
%302 = bitcast i8* %301 to i32*
%303 = load i32, i32* %302
store i32 %303, i32* %18
%304 = getelementptr inbounds [16 x i8], [16 x i8]* %12, i64 0, i64 0
%305 = getelementptr inbounds i8, i8* %304, i64 4
store i8* %305, i8** %21
%306 = load i8*, i8** %21
%307 = bitcast i8* %306 to i32*
%308 = load i32, i32* %307
store i32 %308, i32* %20
%309 = getelementptr inbounds [16 x i8], [16 x i8]* %12, i64 0, i64 0
%310 = getelementptr inbounds i8, i8* %309, i64 8
store i8* %310, i8** %23
%311 = load i8*, i8** %23
%312 = bitcast i8* %311 to i32*
%313 = load i32, i32* %312
store i32 %313, i32* %22
%314 = load i8*, i8** %7
%315 = getelementptr inbounds i8, i8* %314, i64 0
store i8* %315, i8** %27
%316 = load i8*, i8** %27
%317 = getelementptr inbounds i8, i8* %316, i64 0
store i8* %317, i8** %28
%318 = load i32, i32* %18
%319 = load i8*, i8** %28
%320 = bitcast i8* %319 to i32*
store i32 %318, i32* %320
%321 = load i8*, i8** %27
%322 = getelementptr inbounds i8, i8* %321, i64 4
store i8* %322, i8** %28
%323 = load i32, i32* %20
%324 = load i8*, i8** %28
%325 = bitcast i8* %324 to i32*
store i32 %323, i32* %325
%326 = load i8*, i8** %27
%327 = getelementptr inbounds i8, i8* %326, i64 8
store i8* %327, i8** %28
%328 = load i32, i32* %22
%329 = load i8*, i8** %28
%330 = bitcast i8* %329 to i32*
store i32 %328, i32* %330
%331 = load i32, i32* %20
%332 = load i32, i32* %18
%333 = sub nsw i32 %331, %332
store i32 %333, i32* %25
%334 = load i32, i32* %25
%335 = load i32, i32* %22
%336 = mul nsw i32 %334, %335
store i32 %336, i32* %26
%337 = load i32, i32* %26
%338 = add i32 %337, 1
store i32 %338, i32* %26
%339 = load i8*, i8** %27
%340 = getelementptr inbounds i8, i8* %339, i64 12
store i8* %340, i8** %28
%341 = load i32, i32* %26
%342 = load i8*, i8** %28
%343 = bitcast i8* %342 to i32*
store i32 %341, i32* %343
br label %344
344: ; preds = %278
%345 = load i8*, i8** %14
store i8* %345, i8** %5
br label %371
346: ; preds = %159
%347 = load i8*, i8** %8
%348 = load i8*, i8** %33
%349 = bitcast i8* %348 to i8**
store i8* %347, i8** %349
br label %161
350: ; preds = %250
%351 = load i8*, i8** %24
%352 = getelementptr inbounds i8, i8* %351, i64 56
store i8* %352, i8** %62
%353 = load i8*, i8** %62
%354 = bitcast i8* %353 to i8**
%355 = load i8*, i8** %354
store i8* %355, i8** %63
%356 = load i8*, i8** %63
%357 = getelementptr inbounds i8, i8* %356, i64 0
store i8* %357, i8** %62
%358 = load i8*, i8** %9
%359 = getelementptr inbounds i8, i8* %358, i64 12
store i8* %359, i8** %64
%360 = load i8*, i8** %64
%361 = bitcast i8* %360 to i32*
%362 = load i32, i32* %361
store i32 %362, i32* %65
%363 = load i32, i32* %65
%364 = mul i32 %363, 1
store i32 %364, i32* %65
%365 = load i8*, i8** %62
%366 = load i8*, i8** %8
%367 = load i32, i32* %65
%368 = zext i32 %367 to i64
br label %278
369: ; preds = %206
store i8 1, i8* %36
br label %246
370: ; No predecessors!
br label %371
371: ; preds = %370, %344
%372 = load i8*, i8** %5
ret i8* %372
}

LLVM IR (-O2):
define i8* @ieee_p_3499444699_sub_420421355769713595_3536714472(i8* %0, i8* nocapture writeonly %1, i8* %2, i8* %3) {
%5 = alloca [16 x i8]
%6 = alloca [16 x i8]
%7 = getelementptr inbounds [16 x i8], [16 x i8]* %5, i64 0, i64 0
%8 = getelementptr inbounds [16 x i8], [16 x i8]* %6, i64 0, i64 0
%9 = getelementptr inbounds i8, i8* %3, i64 12
%10 = bitcast i8* %9 to i32*
%11 = load i32, i32* %10
%12 = bitcast i8* %3 to i32*
%13 = load i32, i32* %12
%14 = getelementptr inbounds i8, i8* %3, i64 4
%15 = bitcast i8* %14 to i32*
%16 = load i32, i32* %15
%17 = getelementptr inbounds i8, i8* %3, i64 8
%18 = bitcast i8* %17 to i32*
%19 = load i32, i32* %18
%20 = bitcast [16 x i8]* %5 to i32*
store i32 %13, i32* %20
%21 = getelementptr inbounds [16 x i8], [16 x i8]* %5, i64 0, i64 4
%22 = bitcast i8* %21 to i32*
store i32 %16, i32* %22
%23 = getelementptr inbounds [16 x i8], [16 x i8]* %5, i64 0, i64 8
%24 = bitcast i8* %23 to i32*
store i32 %19, i32* %24
%25 = sub nsw i32 %16, %13
%26 = mul nsw i32 %25, %19
%27 = add i32 %26, 1
%28 = getelementptr inbounds [16 x i8], [16 x i8]* %5, i64 0, i64 12
%29 = bitcast i8* %28 to i32*
store i32 %27, i32* %29
%30 = getelementptr inbounds i8, i8* %0, i64 2704
%31 = zext i32 %11 to i64
%32 = alloca i8, i64 %31
%33 = call i32 (i8*, i8*, i8*, ...) bitcast (i32 (...)* @xsi_type_set_default_value to i32 (i8*, i8*, i8*, ...)*)(i8* %30, i8* %32, i8* %7)
%34 = load i8, i8* %2
%35 = and i8 %34, -5
%36 = icmp eq i8 %35, 2
br i1 %36, label %64, label %37
37: ; preds = %4
%38 = call i32 (i8*, i8*, i32, i8*, i8*, ...) bitcast (i32 (...)* @ieee_p_3499444699_sub_3760106476388108256_3536714472 to i32 (i8*, i8*, i32, i8*, i8*, ...)*)(i8* %0, i8* %8, i32 0, i8* %2, i8* %3)
%39 = sext i32 %38 to i64
%40 = inttoptr i64 %39 to i8*
%41 = getelementptr inbounds [16 x i8], [16 x i8]* %6, i64 0, i64 12
%42 = bitcast i8* %41 to i32*
%43 = load i32, i32* %42
%44 = zext i32 %43 to i64
br label %45
45: ; preds = %64, %37
%46 = load i32, i32* %29
%47 = call i32 (i32, ...) bitcast (i32 (...)* @xsi_get_transient_memory to i32 (i32, ...)*)(i32 %46)
%48 = sext i32 %47 to i64
%49 = inttoptr i64 %48 to i8*
%50 = zext i32 %46 to i64
%51 = load i32, i32* %20
%52 = load i32, i32* %22
%53 = load i32, i32* %24
%54 = bitcast i8* %1 to i32*
store i32 %51, i32* %54
%55 = getelementptr inbounds i8, i8* %1, i64 4
%56 = bitcast i8* %55 to i32*
store i32 %52, i32* %56
%57 = getelementptr inbounds i8, i8* %1, i64 8
%58 = bitcast i8* %57 to i32*
store i32 %53, i32* %58
%59 = sub nsw i32 %52, %51
%60 = mul nsw i32 %59, %53
%61 = add i32 %60, 1
%62 = getelementptr inbounds i8, i8* %1, i64 12
%63 = bitcast i8* %62 to i32*
store i32 %61, i32* %63
ret i8* %49
64: ; preds = %4
%65 = load i32, i32* %10
%66 = zext i32 %65 to i64
br label %45
}