#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 */
typedef size_t uint8_t;
typedef int uint16_t;

/* Variables and functions */
int /*<<< orphan*/ strcat(char *, char *);
int /*<<< orphan*/ strcpy(char *, char *);
uint8_t pdu_corr_sym_unpack_dcs7(char *Str, uint8_t len) {
  uint8_t len_msg = 0;
  uint8_t i = 0;
  uint8_t check = 160;
  for (uint8_t j = 0; j < len; j++)
    if (Str[j] == 0x00)
      Str[j] = '@';
  for (uint8_t j = 0; j < len; j++)
    if (Str[j] == 0x11)
      Str[j] = '_';
  while ((i < len) && (check--)) {
    if (*Str == 0x1B) {
      if (*(uint16_t *)Str == 0x401B) {
        char BuffEnd[161];
        char *a = Str + 2;
        strcpy(&BuffEnd[0], a);
        *Str = '|';
        Str++;
        *Str = 0;
        strcat(Str, &BuffEnd[0]);
        i += 2;
        len_msg++;
      }
      if (*(uint16_t *)Str == 0x2F1B) {
        char BuffEnd[161];
        char *a = Str + 2;
        strcpy(&BuffEnd[0], a);
        *Str = '\\';
        Str++;
        *Str = 0;
        strcat(Str, &BuffEnd[0]);
        i += 2;
        len_msg++;
      }
      if (*(uint16_t *)Str == 0x141B) {
        char BuffEnd[161];
        char *a = Str + 2;
        strcpy(&BuffEnd[0], a);
        *Str = '^';
        Str++;
        *Str = 0;
        strcat(Str, &BuffEnd[0]);
        i += 2;
        len_msg++;
      }
      if (*(uint16_t *)Str == 0x3C1B) {
        char BuffEnd[161];
        char *a = Str + 2;
        strcpy(&BuffEnd[0], a);
        *Str = '[';
        Str++;
        *Str = 0;
        strcat(Str, &BuffEnd[0]);
        i += 2;
        len_msg++;
      }
      if (*(uint16_t *)Str == 0x3E1B) {
        char BuffEnd[161];
        char *a = Str + 2;
        strcpy(&BuffEnd[0], a);
        *Str = ']';
        Str++;
        *Str = 0;
        strcat(Str, &BuffEnd[0]);
        i += 2;
        len_msg++;
      }
      if (*(uint16_t *)Str == 0x281B) {
        char BuffEnd[161];
        char *a = Str + 2;
        strcpy(&BuffEnd[0], a);
        *Str = '{';
        Str++;
        *Str = 0;
        strcat(Str, &BuffEnd[0]);
        i += 2;
        len_msg++;
      }
      if (*(uint16_t *)Str == 0x291B) {
        char BuffEnd[161];
        char *a = Str + 2;
        strcpy(&BuffEnd[0], a);
        *Str = '}';
        Str++;
        *Str = 0;
        strcat(Str, &BuffEnd[0]);
        i += 2;
        len_msg++;
      }
      if (*(uint16_t *)Str == 0x3D1B) {
        char BuffEnd[161];
        char *a = Str + 2;
        strcpy(&BuffEnd[0], a);
        *Str = '~';
        Str++;
        *Str = 0;
        strcat(Str, &BuffEnd[0]);
        i += 2;
        len_msg++;
      }
      if (*(uint16_t *)Str == 0x651B) {
        char BuffEnd[161];
        char *a = Str + 2;
        strcpy(&BuffEnd[0], a);
        *Str = '?';
        Str++;
        *Str = 0;
        strcat(Str, &BuffEnd[0]);
        i += 2;
        len_msg++;
      }
    } else {
      i++;
      len_msg++;
      Str++;
    }
  }
  return len_msg;
}


x86 assembly (clang, -O0):
<pdu_corr_sym_unpack_dcs7>:
push   %rbp
mov    %rsp,%rbp
sub    $0x670,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
movq   $0x0,-0x18(%rbp)
movq   $0x0,-0x20(%rbp)
movq   $0xa0,-0x28(%rbp)
movq   $0x0,-0x30(%rbp)
mov    -0x30(%rbp),%rax
cmp    -0x10(%rbp),%rax
jae    1198 <pdu_corr_sym_unpack_dcs7+0x78>
mov    -0x8(%rbp),%rax
mov    -0x30(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x0,%eax
jne    1182 <pdu_corr_sym_unpack_dcs7+0x62>
mov    -0x8(%rbp),%rax
mov    -0x30(%rbp),%rcx
movb   $0x40,(%rax,%rcx,1)
jmp    1187 <pdu_corr_sym_unpack_dcs7+0x67>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
jmp    1153 <pdu_corr_sym_unpack_dcs7+0x33>
movq   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x10(%rbp),%rax
jae    11e5 <pdu_corr_sym_unpack_dcs7+0xc5>
mov    -0x8(%rbp),%rax
mov    -0x38(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x11,%eax
jne    11cf <pdu_corr_sym_unpack_dcs7+0xaf>
mov    -0x8(%rbp),%rax
mov    -0x38(%rbp),%rcx
movb   $0x5f,(%rax,%rcx,1)
jmp    11d4 <pdu_corr_sym_unpack_dcs7+0xb4>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
jmp    11a0 <pdu_corr_sym_unpack_dcs7+0x80>
jmp    11ea <pdu_corr_sym_unpack_dcs7+0xca>
mov    -0x20(%rbp),%rcx
xor    %eax,%eax
cmp    -0x10(%rbp),%rcx
mov    %al,-0x669(%rbp)
jae    121c <pdu_corr_sym_unpack_dcs7+0xfc>
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0xffffffffffffffff,%rcx
mov    %rcx,-0x28(%rbp)
cmp    $0x0,%rax
setne  %al
mov    %al,-0x669(%rbp)
mov    -0x669(%rbp),%al
test   $0x1,%al
jne    122f <pdu_corr_sym_unpack_dcs7+0x10f>
jmp    1681 <pdu_corr_sym_unpack_dcs7+0x561>
mov    -0x8(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x1b,%eax
jne    1658 <pdu_corr_sym_unpack_dcs7+0x538>
mov    -0x8(%rbp),%rax
cmpl   $0x401b,(%rax)
jne    12b3 <pdu_corr_sym_unpack_dcs7+0x193>
mov    -0x8(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0xe8(%rbp)
lea    -0xe0(%rbp),%rdi
mov    -0xe8(%rbp),%rsi
call   1030 <strcpy@plt>
mov    -0x8(%rbp),%rax
movb   $0x7c,(%rax)
mov    -0x8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x8(%rbp)
mov    -0x8(%rbp),%rax
movb   $0x0,(%rax)
mov    -0x8(%rbp),%rdi
lea    -0xe0(%rbp),%rsi
call   1040 <strcat@plt>
mov    -0x20(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x18(%rbp)
mov    -0x8(%rbp),%rax
cmpl   $0x2f1b,(%rax)
jne    1327 <pdu_corr_sym_unpack_dcs7+0x207>
mov    -0x8(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x198(%rbp)
lea    -0x190(%rbp),%rdi
mov    -0x198(%rbp),%rsi
call   1030 <strcpy@plt>
mov    -0x8(%rbp),%rax
movb   $0x5c,(%rax)
mov    -0x8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x8(%rbp)
mov    -0x8(%rbp),%rax
movb   $0x0,(%rax)
mov    -0x8(%rbp),%rdi
lea    -0x190(%rbp),%rsi
call   1040 <strcat@plt>
mov    -0x20(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x18(%rbp)
mov    -0x8(%rbp),%rax
cmpl   $0x141b,(%rax)
jne    139b <pdu_corr_sym_unpack_dcs7+0x27b>
mov    -0x8(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x248(%rbp)
lea    -0x240(%rbp),%rdi
mov    -0x248(%rbp),%rsi
call   1030 <strcpy@plt>
mov    -0x8(%rbp),%rax
movb   $0x5e,(%rax)
mov    -0x8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x8(%rbp)
mov    -0x8(%rbp),%rax
movb   $0x0,(%rax)
mov    -0x8(%rbp),%rdi
lea    -0x240(%rbp),%rsi
call   1040 <strcat@plt>
mov    -0x20(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x18(%rbp)
mov    -0x8(%rbp),%rax
cmpl   $0x3c1b,(%rax)
jne    140f <pdu_corr_sym_unpack_dcs7+0x2ef>
mov    -0x8(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x2f8(%rbp)
lea    -0x2f0(%rbp),%rdi
mov    -0x2f8(%rbp),%rsi
call   1030 <strcpy@plt>
mov    -0x8(%rbp),%rax
movb   $0x5b,(%rax)
mov    -0x8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x8(%rbp)
mov    -0x8(%rbp),%rax
movb   $0x0,(%rax)
mov    -0x8(%rbp),%rdi
lea    -0x2f0(%rbp),%rsi
call   1040 <strcat@plt>
mov    -0x20(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x18(%rbp)
mov    -0x8(%rbp),%rax
cmpl   $0x3e1b,(%rax)
jne    1483 <pdu_corr_sym_unpack_dcs7+0x363>
mov    -0x8(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x3a8(%rbp)
lea    -0x3a0(%rbp),%rdi
mov    -0x3a8(%rbp),%rsi
call   1030 <strcpy@plt>
mov    -0x8(%rbp),%rax
movb   $0x5d,(%rax)
mov    -0x8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x8(%rbp)
mov    -0x8(%rbp),%rax
movb   $0x0,(%rax)
mov    -0x8(%rbp),%rdi
lea    -0x3a0(%rbp),%rsi
call   1040 <strcat@plt>
mov    -0x20(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x18(%rbp)
mov    -0x8(%rbp),%rax
cmpl   $0x281b,(%rax)
jne    14f7 <pdu_corr_sym_unpack_dcs7+0x3d7>
mov    -0x8(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x458(%rbp)
lea    -0x450(%rbp),%rdi
mov    -0x458(%rbp),%rsi
call   1030 <strcpy@plt>
mov    -0x8(%rbp),%rax
movb   $0x7b,(%rax)
mov    -0x8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x8(%rbp)
mov    -0x8(%rbp),%rax
movb   $0x0,(%rax)
mov    -0x8(%rbp),%rdi
lea    -0x450(%rbp),%rsi
call   1040 <strcat@plt>
mov    -0x20(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x18(%rbp)
mov    -0x8(%rbp),%rax
cmpl   $0x291b,(%rax)
jne    156b <pdu_corr_sym_unpack_dcs7+0x44b>
mov    -0x8(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x508(%rbp)
lea    -0x500(%rbp),%rdi
mov    -0x508(%rbp),%rsi
call   1030 <strcpy@plt>
mov    -0x8(%rbp),%rax
movb   $0x7d,(%rax)
mov    -0x8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x8(%rbp)
mov    -0x8(%rbp),%rax
movb   $0x0,(%rax)
mov    -0x8(%rbp),%rdi
lea    -0x500(%rbp),%rsi
call   1040 <strcat@plt>
mov    -0x20(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x18(%rbp)
mov    -0x8(%rbp),%rax
cmpl   $0x3d1b,(%rax)
jne    15df <pdu_corr_sym_unpack_dcs7+0x4bf>
mov    -0x8(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x5b8(%rbp)
lea    -0x5b0(%rbp),%rdi
mov    -0x5b8(%rbp),%rsi
call   1030 <strcpy@plt>
mov    -0x8(%rbp),%rax
movb   $0x7e,(%rax)
mov    -0x8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x8(%rbp)
mov    -0x8(%rbp),%rax
movb   $0x0,(%rax)
mov    -0x8(%rbp),%rdi
lea    -0x5b0(%rbp),%rsi
call   1040 <strcat@plt>
mov    -0x20(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x18(%rbp)
mov    -0x8(%rbp),%rax
cmpl   $0x651b,(%rax)
jne    1653 <pdu_corr_sym_unpack_dcs7+0x533>
mov    -0x8(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x668(%rbp)
lea    -0x660(%rbp),%rdi
mov    -0x668(%rbp),%rsi
call   1030 <strcpy@plt>
mov    -0x8(%rbp),%rax
movb   $0x3f,(%rax)
mov    -0x8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x8(%rbp)
mov    -0x8(%rbp),%rax
movb   $0x0,(%rax)
mov    -0x8(%rbp),%rdi
lea    -0x660(%rbp),%rsi
call   1040 <strcat@plt>
mov    -0x20(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x18(%rbp)
jmp    167c <pdu_corr_sym_unpack_dcs7+0x55c>
mov    -0x20(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x18(%rbp)
mov    -0x8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x8(%rbp)
jmp    11ea <pdu_corr_sym_unpack_dcs7+0xca>
mov    -0x18(%rbp),%rax
add    $0x670,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<pdu_corr_sym_unpack_dcs7>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0xb8,%rsp
test   %rsi,%rsi
je     17d9 <pdu_corr_sym_unpack_dcs7+0x6b9>
mov    %rdi,%rbx
cmp    $0x10,%rsi
jae    114a <pdu_corr_sym_unpack_dcs7+0x2a>
xor    %eax,%eax
jmp    1319 <pdu_corr_sym_unpack_dcs7+0x1f9>
mov    %rsi,%rax
and    $0xfffffffffffffff0,%rax
xor    %ecx,%ecx
pxor   %xmm0,%xmm0
jmp    116d <pdu_corr_sym_unpack_dcs7+0x4d>
nopl   0x0(%rax)
add    $0x10,%rcx
cmp    %rcx,%rax
je     12e6 <pdu_corr_sym_unpack_dcs7+0x1c6>
movq   (%rbx,%rcx,1),%xmm2
movdqa %xmm2,%xmm1
pcmpeqb %xmm0,%xmm1
movd   %xmm1,%edx
test   $0x1,%dl
je     1187 <pdu_corr_sym_unpack_dcs7+0x67>
movb   $0x40,(%rbx,%rcx,1)
movdqa %xmm1,%xmm3
pslld  $0x8,%xmm3
movd   %xmm3,%edx
shr    $0x10,%edx
test   $0x1,%dl
je     11a1 <pdu_corr_sym_unpack_dcs7+0x81>
movb   $0x40,0x1(%rbx,%rcx,1)
pshuflw $0x55,%xmm2,%xmm3
pcmpeqb %xmm0,%xmm3
pextrw $0x2,%xmm3,%edx
test   $0x1,%dl
je     11b9 <pdu_corr_sym_unpack_dcs7+0x99>
movb   $0x40,0x2(%rbx,%rcx,1)
movdqa %xmm1,%xmm3
psllq  $0x18,%xmm3
pextrw $0x3,%xmm3,%edx
test   $0x1,%dl
je     11d1 <pdu_corr_sym_unpack_dcs7+0xb1>
movb   $0x40,0x3(%rbx,%rcx,1)
pshufd $0x55,%xmm2,%xmm2
pcmpeqb %xmm0,%xmm2
pextrw $0x4,%xmm2,%edx
test   $0x1,%dl
je     11e9 <pdu_corr_sym_unpack_dcs7+0xc9>
movb   $0x40,0x4(%rbx,%rcx,1)
movdqa %xmm1,%xmm2
pslldq $0x5,%xmm2
pextrw $0x5,%xmm2,%edx
test   $0x1,%dl
je     1201 <pdu_corr_sym_unpack_dcs7+0xe1>
movb   $0x40,0x5(%rbx,%rcx,1)
pextrw $0x3,%xmm1,%edx
test   $0x1,%dl
je     1210 <pdu_corr_sym_unpack_dcs7+0xf0>
movb   $0x40,0x6(%rbx,%rcx,1)
pslldq $0x7,%xmm1
pextrw $0x7,%xmm1,%edx
test   $0x1,%dl
je     1224 <pdu_corr_sym_unpack_dcs7+0x104>
movb   $0x40,0x7(%rbx,%rcx,1)
movq   0x8(%rbx,%rcx,1),%xmm2
movdqa %xmm2,%xmm1
pcmpeqb %xmm0,%xmm1
movd   %xmm1,%edx
test   $0x1,%dl
je     1240 <pdu_corr_sym_unpack_dcs7+0x120>
movb   $0x40,0x8(%rbx,%rcx,1)
movdqa %xmm1,%xmm3
pslld  $0x8,%xmm3
movd   %xmm3,%edx
shr    $0x10,%edx
test   $0x1,%dl
je     125a <pdu_corr_sym_unpack_dcs7+0x13a>
movb   $0x40,0x9(%rbx,%rcx,1)
pshuflw $0x55,%xmm2,%xmm3
pcmpeqb %xmm0,%xmm3
pextrw $0x2,%xmm3,%edx
test   $0x1,%dl
je     1272 <pdu_corr_sym_unpack_dcs7+0x152>
movb   $0x40,0xa(%rbx,%rcx,1)
movdqa %xmm1,%xmm3
psllq  $0x18,%xmm3
pextrw $0x3,%xmm3,%edx
test   $0x1,%dl
je     128a <pdu_corr_sym_unpack_dcs7+0x16a>
movb   $0x40,0xb(%rbx,%rcx,1)
pshufd $0x55,%xmm2,%xmm2
pcmpeqb %xmm0,%xmm2
pextrw $0x4,%xmm2,%edx
test   $0x1,%dl
je     12a2 <pdu_corr_sym_unpack_dcs7+0x182>
movb   $0x40,0xc(%rbx,%rcx,1)
movdqa %xmm1,%xmm2
pslldq $0x5,%xmm2
pextrw $0x5,%xmm2,%edx
test   $0x1,%dl
je     12ba <pdu_corr_sym_unpack_dcs7+0x19a>
movb   $0x40,0xd(%rbx,%rcx,1)
pextrw $0x3,%xmm1,%edx
test   $0x1,%dl
je     12c9 <pdu_corr_sym_unpack_dcs7+0x1a9>
movb   $0x40,0xe(%rbx,%rcx,1)
pslldq $0x7,%xmm1
pextrw $0x7,%xmm1,%edx
test   $0x1,%dl
je     1160 <pdu_corr_sym_unpack_dcs7+0x40>
movb   $0x40,0xf(%rbx,%rcx,1)
jmp    1160 <pdu_corr_sym_unpack_dcs7+0x40>
cmp    %rsi,%rax
jne    1319 <pdu_corr_sym_unpack_dcs7+0x1f9>
test   %rsi,%rsi
je     17d9 <pdu_corr_sym_unpack_dcs7+0x6b9>
cmp    $0x10,%rsi
jae    1325 <pdu_corr_sym_unpack_dcs7+0x205>
xor    %eax,%eax
jmp    14f9 <pdu_corr_sym_unpack_dcs7+0x3d9>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
add    $0x1,%rax
cmp    %rax,%rsi
je     12eb <pdu_corr_sym_unpack_dcs7+0x1cb>
cmpb   $0x0,(%rbx,%rax,1)
jne    1310 <pdu_corr_sym_unpack_dcs7+0x1f0>
movb   $0x40,(%rbx,%rax,1)
jmp    1310 <pdu_corr_sym_unpack_dcs7+0x1f0>
mov    %rsi,%rax
and    $0xfffffffffffffff0,%rax
xor    %ecx,%ecx
movdqa 0xcca(%rip),%xmm0
movdqa 0xcd2(%rip),%xmm1
jmp    134d <pdu_corr_sym_unpack_dcs7+0x22d>
add    $0x10,%rcx
cmp    %rcx,%rax
je     14c6 <pdu_corr_sym_unpack_dcs7+0x3a6>
movq   (%rbx,%rcx,1),%xmm3
movdqa %xmm3,%xmm2
pcmpeqb %xmm0,%xmm2
movd   %xmm2,%edx
test   $0x1,%dl
je     1367 <pdu_corr_sym_unpack_dcs7+0x247>
movb   $0x5f,(%rbx,%rcx,1)
movdqa %xmm2,%xmm4
pslld  $0x8,%xmm4
movd   %xmm4,%edx
shr    $0x10,%edx
test   $0x1,%dl
je     1381 <pdu_corr_sym_unpack_dcs7+0x261>
movb   $0x5f,0x1(%rbx,%rcx,1)
pshuflw $0x55,%xmm3,%xmm4
pcmpeqb %xmm0,%xmm4
pextrw $0x2,%xmm4,%edx
test   $0x1,%dl
je     1399 <pdu_corr_sym_unpack_dcs7+0x279>
movb   $0x5f,0x2(%rbx,%rcx,1)
movdqa %xmm2,%xmm4
psllq  $0x18,%xmm4
pextrw $0x3,%xmm4,%edx
test   $0x1,%dl
je     13b1 <pdu_corr_sym_unpack_dcs7+0x291>
movb   $0x5f,0x3(%rbx,%rcx,1)
pshufd $0x55,%xmm3,%xmm3
pcmpeqb %xmm1,%xmm3
pextrw $0x4,%xmm3,%edx
test   $0x1,%dl
je     13c9 <pdu_corr_sym_unpack_dcs7+0x2a9>
movb   $0x5f,0x4(%rbx,%rcx,1)
movdqa %xmm2,%xmm3
pslldq $0x5,%xmm3
pextrw $0x5,%xmm3,%edx
test   $0x1,%dl
je     13e1 <pdu_corr_sym_unpack_dcs7+0x2c1>
movb   $0x5f,0x5(%rbx,%rcx,1)
pextrw $0x3,%xmm2,%edx
test   $0x1,%dl
je     13f0 <pdu_corr_sym_unpack_dcs7+0x2d0>
movb   $0x5f,0x6(%rbx,%rcx,1)
pslldq $0x7,%xmm2
pextrw $0x7,%xmm2,%edx
test   $0x1,%dl
je     1404 <pdu_corr_sym_unpack_dcs7+0x2e4>
movb   $0x5f,0x7(%rbx,%rcx,1)
movq   0x8(%rbx,%rcx,1),%xmm3
movdqa %xmm3,%xmm2
pcmpeqb %xmm0,%xmm2
movd   %xmm2,%edx
test   $0x1,%dl
je     1420 <pdu_corr_sym_unpack_dcs7+0x300>
movb   $0x5f,0x8(%rbx,%rcx,1)
movdqa %xmm2,%xmm4
pslld  $0x8,%xmm4
movd   %xmm4,%edx
shr    $0x10,%edx
test   $0x1,%dl
je     143a <pdu_corr_sym_unpack_dcs7+0x31a>
movb   $0x5f,0x9(%rbx,%rcx,1)
pshuflw $0x55,%xmm3,%xmm4
pcmpeqb %xmm0,%xmm4
pextrw $0x2,%xmm4,%edx
test   $0x1,%dl
je     1452 <pdu_corr_sym_unpack_dcs7+0x332>
movb   $0x5f,0xa(%rbx,%rcx,1)
movdqa %xmm2,%xmm4
psllq  $0x18,%xmm4
pextrw $0x3,%xmm4,%edx
test   $0x1,%dl
je     146a <pdu_corr_sym_unpack_dcs7+0x34a>
movb   $0x5f,0xb(%rbx,%rcx,1)
pshufd $0x55,%xmm3,%xmm3
pcmpeqb %xmm1,%xmm3
pextrw $0x4,%xmm3,%edx
test   $0x1,%dl
je     1482 <pdu_corr_sym_unpack_dcs7+0x362>
movb   $0x5f,0xc(%rbx,%rcx,1)
movdqa %xmm2,%xmm3
pslldq $0x5,%xmm3
pextrw $0x5,%xmm3,%edx
test   $0x1,%dl
je     149a <pdu_corr_sym_unpack_dcs7+0x37a>
movb   $0x5f,0xd(%rbx,%rcx,1)
pextrw $0x3,%xmm2,%edx
test   $0x1,%dl
je     14a9 <pdu_corr_sym_unpack_dcs7+0x389>
movb   $0x5f,0xe(%rbx,%rcx,1)
pslldq $0x7,%xmm2
pextrw $0x7,%xmm2,%edx
test   $0x1,%dl
je     1340 <pdu_corr_sym_unpack_dcs7+0x220>
movb   $0x5f,0xf(%rbx,%rcx,1)
jmp    1340 <pdu_corr_sym_unpack_dcs7+0x220>
cmp    %rsi,%rax
jne    14f9 <pdu_corr_sym_unpack_dcs7+0x3d9>
test   %rsi,%rsi
je     17d9 <pdu_corr_sym_unpack_dcs7+0x6b9>
mov    $0xffffffffffffff5f,%rbp
xor    %r15d,%r15d
xor    %r12d,%r12d
mov    %rsi,0x8(%rsp)
jmp    156b <pdu_corr_sym_unpack_dcs7+0x44b>
nopl   0x0(%rax,%rax,1)
add    $0x1,%rax
cmp    %rax,%rsi
je     14cb <pdu_corr_sym_unpack_dcs7+0x3ab>
cmpb   $0x11,(%rbx,%rax,1)
jne    14f0 <pdu_corr_sym_unpack_dcs7+0x3d0>
movb   $0x5f,(%rbx,%rax,1)
jmp    14f0 <pdu_corr_sym_unpack_dcs7+0x3d0>
cs nopw 0x0(%rax,%rax,1)
nop
add    $0x1,%r12
add    $0x1,%r15
add    $0x1,%rbx
cmp    %rsi,%r12
jb     156b <pdu_corr_sym_unpack_dcs7+0x44b>
jmp    17dc <pdu_corr_sym_unpack_dcs7+0x6bc>
cs nopw 0x0(%rax,%rax,1)
lea    0x2(%rbx),%rsi
lea    0x10(%rsp),%r14
mov    %r14,%rdi
call   1030 <strcpy@plt>
movw   $0x3f,(%rbx)
add    $0x1,%rbx
mov    %rbx,%rdi
mov    %r14,%rsi
call   1040 <strcat@plt>
add    $0x2,%r12
add    $0x1,%r15
mov    0x8(%rsp),%rsi
cmp    %rsi,%r12
jae    17dc <pdu_corr_sym_unpack_dcs7+0x6bc>
inc    %rbp
je     17dc <pdu_corr_sym_unpack_dcs7+0x6bc>
cmpb   $0x1b,(%rbx)
jne    1510 <pdu_corr_sym_unpack_dcs7+0x3f0>
mov    (%rbx),%eax
cmp    $0x401b,%eax
jne    16b0 <pdu_corr_sym_unpack_dcs7+0x590>
lea    0x2(%rbx),%rsi
lea    0x10(%rsp),%r14
mov    %r14,%rdi
call   1030 <strcpy@plt>
movw   $0x7c,(%rbx)
lea    0x1(%rbx),%r13
mov    %r13,%rdi
mov    %r14,%rsi
call   1040 <strcat@plt>
add    $0x2,%r12
add    $0x1,%r15
mov    0x1(%rbx),%eax
mov    %r13,%rbx
cmp    $0x2f1b,%eax
je     16bb <pdu_corr_sym_unpack_dcs7+0x59b>
cmp    $0x141b,%eax
jne    16f9 <pdu_corr_sym_unpack_dcs7+0x5d9>
lea    0x2(%rbx),%rsi
lea    0x10(%rsp),%r14
mov    %r14,%rdi
call   1030 <strcpy@plt>
movw   $0x5e,(%rbx)
lea    0x1(%rbx),%r13
mov    %r13,%rdi
mov    %r14,%rsi
call   1040 <strcat@plt>
add    $0x2,%r12
add    $0x1,%r15
mov    0x1(%rbx),%eax
mov    %r13,%rbx
cmp    $0x3c1b,%eax
je     1704 <pdu_corr_sym_unpack_dcs7+0x5e4>
cmp    $0x3e1b,%eax
jne    1742 <pdu_corr_sym_unpack_dcs7+0x622>
lea    0x2(%rbx),%rsi
lea    0x10(%rsp),%r14
mov    %r14,%rdi
call   1030 <strcpy@plt>
movw   $0x5d,(%rbx)
lea    0x1(%rbx),%r13
mov    %r13,%rdi
mov    %r14,%rsi
call   1040 <strcat@plt>
add    $0x2,%r12
add    $0x1,%r15
mov    0x1(%rbx),%eax
mov    %r13,%rbx
cmp    $0x281b,%eax
je     174d <pdu_corr_sym_unpack_dcs7+0x62d>
cmp    $0x291b,%eax
jne    178b <pdu_corr_sym_unpack_dcs7+0x66b>
lea    0x2(%rbx),%rsi
lea    0x10(%rsp),%r14
mov    %r14,%rdi
call   1030 <strcpy@plt>
movw   $0x7d,(%rbx)
lea    0x1(%rbx),%r13
mov    %r13,%rdi
mov    %r14,%rsi
call   1040 <strcat@plt>
add    $0x2,%r12
add    $0x1,%r15
mov    0x1(%rbx),%eax
mov    %r13,%rbx
cmp    $0x3d1b,%eax
je     1796 <pdu_corr_sym_unpack_dcs7+0x676>
cmp    $0x651b,%eax
je     1530 <pdu_corr_sym_unpack_dcs7+0x410>
jmp    155d <pdu_corr_sym_unpack_dcs7+0x43d>
nop
cmp    $0x2f1b,%eax
jne    15c4 <pdu_corr_sym_unpack_dcs7+0x4a4>
lea    0x2(%rbx),%rsi
lea    0x10(%rsp),%r14
mov    %r14,%rdi
call   1030 <strcpy@plt>
movw   $0x5c,(%rbx)
lea    0x1(%rbx),%r13
mov    %r13,%rdi
mov    %r14,%rsi
call   1040 <strcat@plt>
add    $0x2,%r12
add    $0x1,%r15
mov    0x1(%rbx),%eax
mov    %r13,%rbx
cmp    $0x141b,%eax
je     15cf <pdu_corr_sym_unpack_dcs7+0x4af>
cmp    $0x3c1b,%eax
jne    160d <pdu_corr_sym_unpack_dcs7+0x4ed>
lea    0x2(%rbx),%rsi
lea    0x10(%rsp),%r14
mov    %r14,%rdi
call   1030 <strcpy@plt>
movw   $0x5b,(%rbx)
lea    0x1(%rbx),%r13
mov    %r13,%rdi
mov    %r14,%rsi
call   1040 <strcat@plt>
add    $0x2,%r12
add    $0x1,%r15
mov    0x1(%rbx),%eax
mov    %r13,%rbx
cmp    $0x3e1b,%eax
je     1618 <pdu_corr_sym_unpack_dcs7+0x4f8>
cmp    $0x281b,%eax
jne    1656 <pdu_corr_sym_unpack_dcs7+0x536>
lea    0x2(%rbx),%rsi
lea    0x10(%rsp),%r14
mov    %r14,%rdi
call   1030 <strcpy@plt>
movw   $0x7b,(%rbx)
lea    0x1(%rbx),%r13
mov    %r13,%rdi
mov    %r14,%rsi
call   1040 <strcat@plt>
add    $0x2,%r12
add    $0x1,%r15
mov    0x1(%rbx),%eax
mov    %r13,%rbx
cmp    $0x291b,%eax
je     1661 <pdu_corr_sym_unpack_dcs7+0x541>
cmp    $0x3d1b,%eax
jne    169f <pdu_corr_sym_unpack_dcs7+0x57f>
lea    0x2(%rbx),%rsi
lea    0x10(%rsp),%r14
mov    %r14,%rdi
call   1030 <strcpy@plt>
movw   $0x7e,(%rbx)
lea    0x1(%rbx),%r13
mov    %r13,%rdi
mov    %r14,%rsi
call   1040 <strcat@plt>
add    $0x2,%r12
add    $0x1,%r15
mov    0x1(%rbx),%eax
mov    %r13,%rbx
cmp    $0x651b,%eax
je     1530 <pdu_corr_sym_unpack_dcs7+0x410>
jmp    155d <pdu_corr_sym_unpack_dcs7+0x43d>
xor    %r15d,%r15d
mov    %r15,%rax
add    $0xb8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

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