#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
unsigned char *code_table_4_4_location(unsigned char **);
int /*<<< orphan*/ fatal_error_i(char *, int);
int /*<<< orphan*/ fprintf(int /*<<< orphan*/, char *, int, ...);
unsigned char *stat_proc_verf_time_location(unsigned char **);
int /*<<< orphan*/ stderr;
unsigned int uint4(unsigned char *);
int same_sec4_not_time(int mode, unsigned char **sec_a, unsigned char **sec_b) {
  unsigned char *a, *b, *p;
  unsigned int i, j;
  int pdt;
  static int warning = 0;
  int code_4_4, stat_time;
  i = (sec_a[4] ? uint4(sec_a[4] + 0) : 0);
  if ((sec_b[4] ? uint4(sec_b[4] + 0) : 0) != i)
    return 0;
  pdt = (((int)((sec_a[4][7] << 8) + (sec_a[4][8]))));
  if ((((int)((sec_b[4][7] << 8) + (sec_b[4][8])))) != pdt)
    return 0;
  a = sec_a[4];
  b = sec_b[4];
  p = stat_proc_verf_time_location(sec_a);
  stat_time = p ? p - a : 0;
  if (stat_time) {
    p = code_table_4_4_location(sec_a);
    if (p == NULL)
      fatal_error_i("same_sec4_not_time, prog error 1 pdt=%d", pdt);
    code_4_4 = p - a;
    if (code_4_4 > stat_time)
      fatal_error_i("same_sec4_not_time, prog error 2 pdt=%d", pdt);
    for (j = 0; j < code_4_4; j++) {
      if (a[j] != b[j]) {
        if (mode)
          fprintf(stderr,
                  "same_sec4_not_time: sec 4 octet %d = %u vs %u pdt=%d\n",
                  j + 1, a[j], b[j], pdt);
        return 0;
      }
    }
    for (j = code_4_4 + 5; j < stat_time; j++) {
      if (a[j] != b[j]) {
        if (mode)
          fprintf(stderr,
                  "same_sec4_not_time: sec 4 octet %d = %u vs %u pdt=%d\n",
                  j + 1, a[j], b[j], pdt);
        return 0;
      }
    }
    for (j = stat_time + 7; j < i; j++) {
      if (a[j] != b[j]) {
        if (mode)
          fprintf(stderr,
                  "same_sec4_not_time: sec 4 octet %d = %u vs %u pdt=%d\n",
                  j + 1, a[j], b[j], pdt);
        return 0;
      }
    }
    return 1;
  }
  p = code_table_4_4_location(sec_a);
  code_4_4 = p ? p - a : 0;
  if (code_4_4 == 0) {
    for (j = 0; j < i; j++) {
      if (a[j] != b[j]) {
        if (mode)
          fprintf(stderr,
                  "same_sec4_not_time: sec 4 octet %d = %u vs %u pdt=%d\n",
                  j + 1, a[j], b[j], pdt);
        return 0;
      }
    }
    return 1;
  } else {
    for (j = 0; j < code_4_4; j++) {
      if (a[j] != b[j]) {
        if (mode)
          fprintf(stderr,
                  "same_sec4_not_time: sec 4 octet %d = %u vs %u pdt=%d\n",
                  j + 1, a[j], b[j], pdt);
        return 0;
      }
    }
    for (j = code_4_4 + 5; j < i; j++) {
      if (a[j] != b[j]) {
        if (mode)
          fprintf(stderr,
                  "same_sec4_not_time: sec 4 octet %d = %u vs %u pdt=%d\n",
                  j + 1, a[j], b[j], pdt);
        return 0;
      }
    }
    return 1;
  }
  if (warning == 0) {
    warning = 1;
    fprintf(stderr, "same_sec4_not_time does not handle pdt=%d", pdt);
  }
  return 0;
}


x86 assembly (clang, -O0):
<same_sec4_not_time>:
push   %rbp
mov    %rsp,%rbp
sub    $0x60,%rsp
mov    %edi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    -0x10(%rbp),%rax
cmpq   $0x0,0x20(%rax)
je     1187 <same_sec4_not_time+0x37>
mov    -0x10(%rbp),%rax
mov    0x20(%rax),%rdi
call   1040 <uint4@plt>
mov    %eax,-0x48(%rbp)
jmp    1191 <same_sec4_not_time+0x41>
xor    %eax,%eax
mov    %eax,-0x48(%rbp)
jmp    1191 <same_sec4_not_time+0x41>
mov    -0x48(%rbp),%eax
mov    %eax,-0x34(%rbp)
mov    -0x18(%rbp),%rax
cmpq   $0x0,0x20(%rax)
je     11bb <same_sec4_not_time+0x6b>
mov    -0x18(%rbp),%rax
mov    0x20(%rax),%rdi
call   1040 <uint4@plt>
mov    %eax,-0x4c(%rbp)
jmp    11c5 <same_sec4_not_time+0x75>
xor    %eax,%eax
mov    %eax,-0x4c(%rbp)
jmp    11c5 <same_sec4_not_time+0x75>
mov    -0x4c(%rbp),%eax
cmp    -0x34(%rbp),%eax
je     11dd <same_sec4_not_time+0x8d>
movl   $0x0,-0x4(%rbp)
jmp    16b8 <same_sec4_not_time+0x568>
mov    -0x10(%rbp),%rax
mov    0x20(%rax),%rax
movzbl 0x7(%rax),%eax
shl    $0x8,%eax
mov    -0x10(%rbp),%rcx
mov    0x20(%rcx),%rcx
movzbl 0x8(%rcx),%ecx
add    %ecx,%eax
mov    %eax,-0x3c(%rbp)
mov    -0x18(%rbp),%rax
mov    0x20(%rax),%rax
movzbl 0x7(%rax),%eax
shl    $0x8,%eax
mov    -0x18(%rbp),%rcx
mov    0x20(%rcx),%rcx
movzbl 0x8(%rcx),%ecx
add    %ecx,%eax
cmp    -0x3c(%rbp),%eax
je     122f <same_sec4_not_time+0xdf>
movl   $0x0,-0x4(%rbp)
jmp    16b8 <same_sec4_not_time+0x568>
mov    -0x10(%rbp),%rax
mov    0x20(%rax),%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
mov    0x20(%rax),%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rdi
call   1060 <stat_proc_verf_time_location@plt>
mov    %rax,-0x30(%rbp)
cmpq   $0x0,-0x30(%rbp)
je     1273 <same_sec4_not_time+0x123>
mov    -0x30(%rbp),%rax
mov    -0x20(%rbp),%rcx
sub    %rcx,%rax
mov    %rax,-0x58(%rbp)
jmp    127e <same_sec4_not_time+0x12e>
xor    %eax,%eax
mov    %rax,-0x58(%rbp)
jmp    127e <same_sec4_not_time+0x12e>
mov    -0x58(%rbp),%rax
mov    %eax,-0x44(%rbp)
cmpl   $0x0,-0x44(%rbp)
je     14a5 <same_sec4_not_time+0x355>
mov    -0x10(%rbp),%rdi
call   1070 <code_table_4_4_location@plt>
mov    %rax,-0x30(%rbp)
cmpq   $0x0,-0x30(%rbp)
jne    12b6 <same_sec4_not_time+0x166>
mov    -0x3c(%rbp),%esi
lea    0xd4f(%rip),%rdi
call   1030 <fatal_error_i@plt>
mov    -0x30(%rbp),%rax
mov    -0x20(%rbp),%rcx
sub    %rcx,%rax
mov    %eax,-0x40(%rbp)
mov    -0x40(%rbp),%eax
cmp    -0x44(%rbp),%eax
jle    12df <same_sec4_not_time+0x18f>
mov    -0x3c(%rbp),%esi
lea    0xd4e(%rip),%rdi
call   1030 <fatal_error_i@plt>
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x40(%rbp),%eax
jae    1371 <same_sec4_not_time+0x221>
mov    -0x20(%rbp),%rax
mov    -0x38(%rbp),%ecx
movzbl (%rax,%rcx,1),%eax
mov    -0x28(%rbp),%rcx
mov    -0x38(%rbp),%edx
movzbl (%rcx,%rdx,1),%ecx
cmp    %ecx,%eax
je     135e <same_sec4_not_time+0x20e>
cmpl   $0x0,-0x8(%rbp)
je     1352 <same_sec4_not_time+0x202>
mov    0x2cbf(%rip),%rax
mov    (%rax),%edi
mov    -0x38(%rbp),%edx
add    $0x1,%edx
mov    -0x20(%rbp),%rax
mov    -0x38(%rbp),%ecx
movzbl (%rax,%rcx,1),%ecx
mov    -0x28(%rbp),%rax
mov    -0x38(%rbp),%esi
movzbl (%rax,%rsi,1),%r8d
mov    -0x3c(%rbp),%r9d
lea    0xd05(%rip),%rsi
mov    $0x0,%al
call   1050 <fprintf@plt>
movl   $0x0,-0x4(%rbp)
jmp    16b8 <same_sec4_not_time+0x568>
jmp    1363 <same_sec4_not_time+0x213>
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    12e6 <same_sec4_not_time+0x196>
mov    -0x40(%rbp),%eax
add    $0x5,%eax
mov    %eax,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x44(%rbp),%eax
jae    1405 <same_sec4_not_time+0x2b5>
mov    -0x20(%rbp),%rax
mov    -0x38(%rbp),%ecx
movzbl (%rax,%rcx,1),%eax
mov    -0x28(%rbp),%rcx
mov    -0x38(%rbp),%edx
movzbl (%rcx,%rdx,1),%ecx
cmp    %ecx,%eax
je     13f2 <same_sec4_not_time+0x2a2>
cmpl   $0x0,-0x8(%rbp)
je     13e6 <same_sec4_not_time+0x296>
mov    0x2c2b(%rip),%rax
mov    (%rax),%edi
mov    -0x38(%rbp),%edx
add    $0x1,%edx
mov    -0x20(%rbp),%rax
mov    -0x38(%rbp),%ecx
movzbl (%rax,%rcx,1),%ecx
mov    -0x28(%rbp),%rax
mov    -0x38(%rbp),%esi
movzbl (%rax,%rsi,1),%r8d
mov    -0x3c(%rbp),%r9d
lea    0xc71(%rip),%rsi
mov    $0x0,%al
call   1050 <fprintf@plt>
movl   $0x0,-0x4(%rbp)
jmp    16b8 <same_sec4_not_time+0x568>
jmp    13f7 <same_sec4_not_time+0x2a7>
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    137a <same_sec4_not_time+0x22a>
mov    -0x44(%rbp),%eax
add    $0x7,%eax
mov    %eax,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jae    1499 <same_sec4_not_time+0x349>
mov    -0x20(%rbp),%rax
mov    -0x38(%rbp),%ecx
movzbl (%rax,%rcx,1),%eax
mov    -0x28(%rbp),%rcx
mov    -0x38(%rbp),%edx
movzbl (%rcx,%rdx,1),%ecx
cmp    %ecx,%eax
je     1486 <same_sec4_not_time+0x336>
cmpl   $0x0,-0x8(%rbp)
je     147a <same_sec4_not_time+0x32a>
mov    0x2b97(%rip),%rax
mov    (%rax),%edi
mov    -0x38(%rbp),%edx
add    $0x1,%edx
mov    -0x20(%rbp),%rax
mov    -0x38(%rbp),%ecx
movzbl (%rax,%rcx,1),%ecx
mov    -0x28(%rbp),%rax
mov    -0x38(%rbp),%esi
movzbl (%rax,%rsi,1),%r8d
mov    -0x3c(%rbp),%r9d
lea    0xbdd(%rip),%rsi
mov    $0x0,%al
call   1050 <fprintf@plt>
movl   $0x0,-0x4(%rbp)
jmp    16b8 <same_sec4_not_time+0x568>
jmp    148b <same_sec4_not_time+0x33b>
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    140e <same_sec4_not_time+0x2be>
movl   $0x1,-0x4(%rbp)
jmp    16b8 <same_sec4_not_time+0x568>
mov    -0x10(%rbp),%rdi
call   1070 <code_table_4_4_location@plt>
mov    %rax,-0x30(%rbp)
cmpq   $0x0,-0x30(%rbp)
je     14d1 <same_sec4_not_time+0x381>
mov    -0x30(%rbp),%rax
mov    -0x20(%rbp),%rcx
sub    %rcx,%rax
mov    %rax,-0x60(%rbp)
jmp    14dc <same_sec4_not_time+0x38c>
xor    %eax,%eax
mov    %rax,-0x60(%rbp)
jmp    14dc <same_sec4_not_time+0x38c>
mov    -0x60(%rbp),%rax
mov    %eax,-0x40(%rbp)
cmpl   $0x0,-0x40(%rbp)
jne    158b <same_sec4_not_time+0x43b>
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jae    157f <same_sec4_not_time+0x42f>
mov    -0x20(%rbp),%rax
mov    -0x38(%rbp),%ecx
movzbl (%rax,%rcx,1),%eax
mov    -0x28(%rbp),%rcx
mov    -0x38(%rbp),%edx
movzbl (%rcx,%rdx,1),%ecx
cmp    %ecx,%eax
je     156c <same_sec4_not_time+0x41c>
cmpl   $0x0,-0x8(%rbp)
je     1560 <same_sec4_not_time+0x410>
mov    0x2ab1(%rip),%rax
mov    (%rax),%edi
mov    -0x38(%rbp),%edx
add    $0x1,%edx
mov    -0x20(%rbp),%rax
mov    -0x38(%rbp),%ecx
movzbl (%rax,%rcx,1),%ecx
mov    -0x28(%rbp),%rax
mov    -0x38(%rbp),%esi
movzbl (%rax,%rsi,1),%r8d
mov    -0x3c(%rbp),%r9d
lea    0xaf7(%rip),%rsi
mov    $0x0,%al
call   1050 <fprintf@plt>
movl   $0x0,-0x4(%rbp)
jmp    16b8 <same_sec4_not_time+0x568>
jmp    1571 <same_sec4_not_time+0x421>
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    14f4 <same_sec4_not_time+0x3a4>
movl   $0x1,-0x4(%rbp)
jmp    16b8 <same_sec4_not_time+0x568>
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x40(%rbp),%eax
jae    161d <same_sec4_not_time+0x4cd>
mov    -0x20(%rbp),%rax
mov    -0x38(%rbp),%ecx
movzbl (%rax,%rcx,1),%eax
mov    -0x28(%rbp),%rcx
mov    -0x38(%rbp),%edx
movzbl (%rcx,%rdx,1),%ecx
cmp    %ecx,%eax
je     160a <same_sec4_not_time+0x4ba>
cmpl   $0x0,-0x8(%rbp)
je     15fe <same_sec4_not_time+0x4ae>
mov    0x2a13(%rip),%rax
mov    (%rax),%edi
mov    -0x38(%rbp),%edx
add    $0x1,%edx
mov    -0x20(%rbp),%rax
mov    -0x38(%rbp),%ecx
movzbl (%rax,%rcx,1),%ecx
mov    -0x28(%rbp),%rax
mov    -0x38(%rbp),%esi
movzbl (%rax,%rsi,1),%r8d
mov    -0x3c(%rbp),%r9d
lea    0xa59(%rip),%rsi
mov    $0x0,%al
call   1050 <fprintf@plt>
movl   $0x0,-0x4(%rbp)
jmp    16b8 <same_sec4_not_time+0x568>
jmp    160f <same_sec4_not_time+0x4bf>
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    1592 <same_sec4_not_time+0x442>
mov    -0x40(%rbp),%eax
add    $0x5,%eax
mov    %eax,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x34(%rbp),%eax
jae    16b1 <same_sec4_not_time+0x561>
mov    -0x20(%rbp),%rax
mov    -0x38(%rbp),%ecx
movzbl (%rax,%rcx,1),%eax
mov    -0x28(%rbp),%rcx
mov    -0x38(%rbp),%edx
movzbl (%rcx,%rdx,1),%ecx
cmp    %ecx,%eax
je     169e <same_sec4_not_time+0x54e>
cmpl   $0x0,-0x8(%rbp)
je     1692 <same_sec4_not_time+0x542>
mov    0x297f(%rip),%rax
mov    (%rax),%edi
mov    -0x38(%rbp),%edx
add    $0x1,%edx
mov    -0x20(%rbp),%rax
mov    -0x38(%rbp),%ecx
movzbl (%rax,%rcx,1),%ecx
mov    -0x28(%rbp),%rax
mov    -0x38(%rbp),%esi
movzbl (%rax,%rsi,1),%r8d
mov    -0x3c(%rbp),%r9d
lea    0x9c5(%rip),%rsi
mov    $0x0,%al
call   1050 <fprintf@plt>
movl   $0x0,-0x4(%rbp)
jmp    16b8 <same_sec4_not_time+0x568>
jmp    16a3 <same_sec4_not_time+0x553>
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    1626 <same_sec4_not_time+0x4d6>
movl   $0x1,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x60,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<same_sec4_not_time>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x18,%rsp
mov    %rdx,%rbx
mov    %rsi,%r12
mov    %edi,%r15d
mov    0x20(%rsi),%rdi
xor    %ebp,%ebp
mov    $0x0,%r14d
test   %rdi,%rdi
je     1180 <same_sec4_not_time+0x30>
call   1040 <uint4@plt>
mov    %eax,%r14d
mov    0x20(%rbx),%rdi
test   %rdi,%rdi
je     1190 <same_sec4_not_time+0x40>
call   1040 <uint4@plt>
mov    %eax,%ebp
xor    %eax,%eax
cmp    %r14d,%ebp
jne    1391 <same_sec4_not_time+0x241>
mov    %r15d,0x8(%rsp)
mov    0x20(%r12),%rbp
movzwl 0x7(%rbp),%edx
shl    $0x10,%edx
bswap  %edx
mov    0x20(%rbx),%r15
movzwl 0x7(%r15),%ecx
shl    $0x10,%ecx
bswap  %ecx
cmp    %edx,%ecx
jne    1391 <same_sec4_not_time+0x241>
mov    %edx,0xc(%rsp)
mov    %r12,%rdi
call   1060 <stat_proc_verf_time_location@plt>
mov    %rax,%r13
mov    %r12,%rdi
call   1070 <code_table_4_4_location@plt>
mov    %rax,%r12
test   %r13,%r13
je     12c4 <same_sec4_not_time+0x174>
mov    %r13d,%edi
sub    %ebp,%edi
je     12c4 <same_sec4_not_time+0x174>
test   %r12,%r12
jne    120b <same_sec4_not_time+0xbb>
mov    %edi,%ebx
lea    0xe00(%rip),%rdi
mov    0xc(%rsp),%esi
call   1030 <fatal_error_i@plt>
mov    %ebx,%edi
mov    %r12,0x10(%rsp)
sub    %rbp,%r12
cmp    %edi,%r12d
jle    122c <same_sec4_not_time+0xdc>
mov    %edi,%ebx
lea    0xe07(%rip),%rdi
mov    0xc(%rsp),%esi
call   1030 <fatal_error_i@plt>
mov    %ebx,%edi
test   %r12d,%r12d
mov    $0x0,%eax
je     125b <same_sec4_not_time+0x10b>
mov    %r12d,%esi
xor    %edx,%edx
nopl   0x0(%rax,%rax,1)
movzbl 0x0(%rbp,%rdx,1),%ebx
movzbl (%r15,%rdx,1),%ecx
cmp    %cl,%bl
jne    1359 <same_sec4_not_time+0x209>
add    $0x1,%rdx
cmp    %rdx,%rsi
jne    1240 <same_sec4_not_time+0xf0>
lea    0x5(%r12),%ecx
cmp    %edi,%ecx
jae    128c <same_sec4_not_time+0x13c>
mov    %ecx,%edx
sub    0x10(%rsp),%r13d
add    $0xfffffffb,%r13d
nop
movzbl 0x0(%rbp,%rdx,1),%ebx
movzbl (%r15,%rdx,1),%ecx
cmp    %cl,%bl
jne    1362 <same_sec4_not_time+0x212>
add    $0x1,%rdx
add    $0xffffffff,%r13d
jne    1270 <same_sec4_not_time+0x120>
add    $0x7,%edi
cmp    %r14d,%edi
jae    12ba <same_sec4_not_time+0x16a>
mov    %edi,%edx
mov    %r14d,%esi
nopl   0x0(%rax)
movzbl 0x0(%rbp,%rdx,1),%ebx
movzbl (%r15,%rdx,1),%ecx
cmp    %cl,%bl
jne    1362 <same_sec4_not_time+0x212>
add    $0x1,%rdx
cmp    %edx,%esi
jne    12a0 <same_sec4_not_time+0x150>
mov    $0x1,%eax
jmp    1391 <same_sec4_not_time+0x241>
test   %r12,%r12
je     1328 <same_sec4_not_time+0x1d8>
sub    %rbp,%r12
test   %r12d,%r12d
je     1328 <same_sec4_not_time+0x1d8>
mov    %r12d,%esi
xor    %edx,%edx
cs nopw 0x0(%rax,%rax,1)
movzbl 0x0(%rbp,%rdx,1),%ebx
movzbl (%r15,%rdx,1),%ecx
cmp    %cl,%bl
jne    1359 <same_sec4_not_time+0x209>
add    $0x1,%rdx
cmp    %rdx,%rsi
jne    12e0 <same_sec4_not_time+0x190>
lea    0x5(%r12),%ecx
mov    $0x1,%eax
cmp    %r14d,%ecx
jae    1391 <same_sec4_not_time+0x241>
mov    %ecx,%edx
mov    %r14d,%esi
nop
movzbl 0x0(%rbp,%rdx,1),%ebx
movzbl (%r15,%rdx,1),%ecx
cmp    %cl,%bl
jne    1359 <same_sec4_not_time+0x209>
add    $0x1,%rdx
cmp    %edx,%esi
jne    1310 <same_sec4_not_time+0x1c0>
jmp    1391 <same_sec4_not_time+0x241>
mov    $0x1,%eax
test   %r14d,%r14d
je     1391 <same_sec4_not_time+0x241>
mov    %r14d,%esi
xor    %edx,%edx
nopw   0x0(%rax,%rax,1)
movzbl 0x0(%rbp,%rdx,1),%ebx
movzbl (%r15,%rdx,1),%ecx
cmp    %cl,%bl
jne    1359 <same_sec4_not_time+0x209>
add    $0x1,%rdx
cmp    %rdx,%rsi
jne    1340 <same_sec4_not_time+0x1f0>
jmp    1391 <same_sec4_not_time+0x241>
cmpl   $0x0,0x8(%rsp)
jne    1369 <same_sec4_not_time+0x219>
jmp    138f <same_sec4_not_time+0x23f>
cmpl   $0x0,0x8(%rsp)
je     1391 <same_sec4_not_time+0x241>
movzbl %cl,%r8d
movzbl %bl,%ecx
mov    0x2c69(%rip),%rax
mov    (%rax),%edi
add    $0x1,%edx
lea    0xccd(%rip),%rsi
mov    0xc(%rsp),%r9d
xor    %eax,%eax
call   1050 <fprintf@plt>
xor    %eax,%eax
add    $0x18,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

LLVM IR (-O2):
@.str = [40 x i8] c"same_sec4_not_time, prog error 1 pdt=%d\00"
@.str.1 = [40 x i8] c"same_sec4_not_time, prog error 2 pdt=%d\00"
@stderr = global i32 0
@.str.2 = [54 x i8] c"same_sec4_not_time: sec 4 octet %d = %u vs %u pdt=%d\0A\00"
define i32 @same_sec4_not_time(i32 %0, i8** %1, i8** nocapture %2) {
%4 = getelementptr inbounds i8*, i8** %1, i64 4
%5 = load i8*, i8** %4
%6 = icmp eq i8* %5, null
br i1 %6, label %9, label %7
7: ; preds = %3
%8 = tail call i32 @uint4(i8* %5)
br label %9
9: ; preds = %3, %7
%10 = phi i32 [ %8, %7 ], [ 0, %3 ]
%11 = getelementptr inbounds i8*, i8** %2, i64 4
%12 = load i8*, i8** %11
%13 = icmp eq i8* %12, null
br i1 %13, label %16, label %14
14: ; preds = %9
%15 = tail call i32 @uint4(i8* %12)
br label %16
16: ; preds = %9, %14
%17 = phi i32 [ %15, %14 ], [ 0, %9 ]
%18 = icmp eq i32 %17, %10
br i1 %18, label %19, label %176
19: ; preds = %16
%20 = load i8*, i8** %4
%21 = getelementptr inbounds i8, i8* %20, i64 7
%22 = load i8, i8* %21
%23 = zext i8 %22 to i32
%24 = shl nuw nsw i32 %23, 8
%25 = getelementptr inbounds i8, i8* %20, i64 8
%26 = load i8, i8* %25
%27 = zext i8 %26 to i32
%28 = or i32 %24, %27
%29 = load i8*, i8** %11
%30 = getelementptr inbounds i8, i8* %29, i64 7
%31 = load i8, i8* %30
%32 = zext i8 %31 to i32
%33 = shl nuw nsw i32 %32, 8
%34 = getelementptr inbounds i8, i8* %29, i64 8
%35 = load i8, i8* %34
%36 = zext i8 %35 to i32
%37 = or i32 %33, %36
%38 = icmp eq i32 %37, %28
br i1 %38, label %39, label %176
39: ; preds = %19
%40 = tail call i8* @stat_proc_verf_time_location(i8** %1)
%41 = icmp eq i8* %40, null
%42 = ptrtoint i8* %40 to i64
%43 = ptrtoint i8* %20 to i64
%44 = sub i64 %42, %43
%45 = trunc i64 %44 to i32
%46 = icmp eq i32 %45, 0
%47 = select i1 %41, i1 true, i1 %46
%48 = tail call i8* @code_table_4_4_location(i8** %1)
%49 = icmp eq i8* %48, null
br i1 %47, label %112, label %50
50: ; preds = %39
br i1 %49, label %51, label %53
51: ; preds = %50
%52 = tail call i32 @fatal_error_i(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str, i64 0, i64 0), i32 %28)
br label %53
53: ; preds = %51, %50
%54 = ptrtoint i8* %48 to i64
%55 = sub i64 %54, %43
%56 = trunc i64 %55 to i32
%57 = icmp sgt i32 %56, %45
br i1 %57, label %58, label %60
58: ; preds = %53
%59 = tail call i32 @fatal_error_i(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.1, i64 0, i64 0), i32 %28)
br label %60
60: ; preds = %58, %53
%61 = icmp eq i32 %56, 0
br i1 %61, label %76, label %62
62: ; preds = %60
%63 = and i64 %55, 4294967295
br label %64
64: ; preds = %62, %73
%65 = phi i64 [ 0, %62 ], [ %74, %73 ]
%66 = getelementptr inbounds i8, i8* %20, i64 %65
%67 = load i8, i8* %66
%68 = getelementptr inbounds i8, i8* %29, i64 %65
%69 = load i8, i8* %68
%70 = icmp eq i8 %67, %69
br i1 %70, label %73, label %71
71: ; preds = %64
%72 = icmp eq i32 %0, 0
br i1 %72, label %176, label %166
73: ; preds = %64
%74 = add nuw nsw i64 %65, 1
%75 = icmp eq i64 %74, %63
br i1 %75, label %76, label %64
76: ; preds = %73, %60
%77 = add i32 %56, 5
%78 = icmp ult i32 %77, %45
br i1 %78, label %79, label %94
79: ; preds = %76
%80 = zext i32 %77 to i64
br label %81
81: ; preds = %79, %90
%82 = phi i64 [ %80, %79 ], [ %91, %90 ]
%83 = getelementptr inbounds i8, i8* %20, i64 %82
%84 = load i8, i8* %83
%85 = getelementptr inbounds i8, i8* %29, i64 %82
%86 = load i8, i8* %85
%87 = icmp eq i8 %84, %86
br i1 %87, label %90, label %88
88: ; preds = %81
%89 = icmp eq i32 %0, 0
br i1 %89, label %176, label %166
90: ; preds = %81
%91 = add nuw nsw i64 %82, 1
%92 = trunc i64 %91 to i32
%93 = icmp eq i32 %92, %45
br i1 %93, label %94, label %81
94: ; preds = %90, %76
%95 = add i32 %45, 7
%96 = icmp ult i32 %95, %10
br i1 %96, label %97, label %176
97: ; preds = %94
%98 = zext i32 %95 to i64
br label %99
99: ; preds = %97, %108
%100 = phi i64 [ %98, %97 ], [ %109, %108 ]
%101 = getelementptr inbounds i8, i8* %20, i64 %100
%102 = load i8, i8* %101
%103 = getelementptr inbounds i8, i8* %29, i64 %100
%104 = load i8, i8* %103
%105 = icmp eq i8 %102, %104
br i1 %105, label %108, label %106
106: ; preds = %99
%107 = icmp eq i32 %0, 0
br i1 %107, label %176, label %166
108: ; preds = %99
%109 = add nuw nsw i64 %100, 1
%110 = trunc i64 %109 to i32
%111 = icmp eq i32 %10, %110
br i1 %111, label %176, label %99
112: ; preds = %39
%113 = ptrtoint i8* %48 to i64
%114 = sub i64 %113, %43
%115 = trunc i64 %114 to i32
%116 = icmp eq i32 %115, 0
%117 = select i1 %49, i1 true, i1 %116
br i1 %117, label %120, label %118
118: ; preds = %112
%119 = and i64 %114, 4294967295
br label %136
120: ; preds = %112
%121 = icmp eq i32 %10, 0
br i1 %121, label %176, label %122
122: ; preds = %120
%123 = zext i32 %10 to i64
br label %124
124: ; preds = %122, %133
%125 = phi i64 [ 0, %122 ], [ %134, %133 ]
%126 = getelementptr inbounds i8, i8* %20, i64 %125
%127 = load i8, i8* %126
%128 = getelementptr inbounds i8, i8* %29, i64 %125
%129 = load i8, i8* %128
%130 = icmp eq i8 %127, %129
br i1 %130, label %133, label %131
131: ; preds = %124
%132 = icmp eq i32 %0, 0
br i1 %132, label %176, label %166
133: ; preds = %124
%134 = add nuw nsw i64 %125, 1
%135 = icmp eq i64 %134, %123
br i1 %135, label %176, label %124
136: ; preds = %118, %145
%137 = phi i64 [ 0, %118 ], [ %146, %145 ]
%138 = getelementptr inbounds i8, i8* %20, i64 %137
%139 = load i8, i8* %138
%140 = getelementptr inbounds i8, i8* %29, i64 %137
%141 = load i8, i8* %140
%142 = icmp eq i8 %139, %141
br i1 %142, label %145, label %143
143: ; preds = %136
%144 = icmp eq i32 %0, 0
br i1 %144, label %176, label %166
145: ; preds = %136
%146 = add nuw nsw i64 %137, 1
%147 = icmp eq i64 %146, %119
br i1 %147, label %148, label %136
148: ; preds = %145
%149 = add i32 %115, 5
%150 = icmp ult i32 %149, %10
br i1 %150, label %151, label %176
151: ; preds = %148
%152 = zext i32 %149 to i64
br label %153
153: ; preds = %151, %162
%154 = phi i64 [ %152, %151 ], [ %163, %162 ]
%155 = getelementptr inbounds i8, i8* %20, i64 %154
%156 = load i8, i8* %155
%157 = getelementptr inbounds i8, i8* %29, i64 %154
%158 = load i8, i8* %157
%159 = icmp eq i8 %156, %158
br i1 %159, label %162, label %160
160: ; preds = %153
%161 = icmp eq i32 %0, 0
br i1 %161, label %176, label %166
162: ; preds = %153
%163 = add nuw nsw i64 %154, 1
%164 = trunc i64 %163 to i32
%165 = icmp eq i32 %10, %164
br i1 %165, label %176, label %153
166: ; preds = %160, %143, %131, %106, %88, %71
%167 = phi i64 [ %65, %71 ], [ %82, %88 ], [ %100, %106 ], [ %125, %131 ], [ %137, %143 ], [ %154, %160 ]
%168 = phi i8 [ %69, %71 ], [ %86, %88 ], [ %104, %106 ], [ %129, %131 ], [ %141, %143 ], [ %158, %160 ]
%169 = phi i8 [ %67, %71 ], [ %84, %88 ], [ %102, %106 ], [ %127, %131 ], [ %139, %143 ], [ %156, %160 ]
%170 = trunc i64 %167 to i32
%171 = zext i8 %168 to i32
%172 = zext i8 %169 to i32
%173 = load i32, i32* @stderr
%174 = add nuw i32 %170, 1
%175 = tail call i32 (i32, i8*, i32, ...) @fprintf(i32 %173, i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.2, i64 0, i64 0), i32 %174, i32 %172, i32 %171, i32 %28)
br label %176
176: ; preds = %108, %162, %133, %166, %94, %148, %120, %160, %143, %131, %106, %88, %71, %19, %16
%177 = phi i32 [ 0, %16 ], [ 0, %19 ], [ 0, %71 ], [ 0, %88 ], [ 0, %106 ], [ 0, %131 ], [ 0, %143 ], [ 0, %160 ], [ 1, %120 ], [ 1, %148 ], [ 1, %94 ], [ 0, %166 ], [ 1, %133 ], [ 1, %162 ], [ 1, %108 ]
ret i32 %177
}