#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 */
char *malloc(int);
int /*<<< orphan*/ sprintf(char *, char *, ...);
char *cstring(unsigned int code) {
  switch (code) {
  case 0x10:
    do {
      char *s;
      while ((s = malloc(4096)) == NULL)
        ;
      sprintf(s, "REQ_AUTH");
      return s;
    } while (0);
  case 0x20:
    do {
      char *s;
      while ((s = malloc(4096)) == NULL)
        ;
      sprintf(s, "REQ_LS");
      return s;
    } while (0);
  case 0x21:
    do {
      char *s;
      while ((s = malloc(4096)) == NULL)
        ;
      sprintf(s, "REQ_CD");
      return s;
    } while (0);
  case 0x22:
    do {
      char *s;
      while ((s = malloc(4096)) == NULL)
        ;
      sprintf(s, "REQ_PWD");
      return s;
    } while (0);
  case 0x23:
    do {
      char *s;
      while ((s = malloc(4096)) == NULL)
        ;
      sprintf(s, "REQ_MKDIR");
      return s;
    } while (0);
  case 0x25:
    do {
      char *s;
      while ((s = malloc(4096)) == NULL)
        ;
      sprintf(s, "REQ_UPLOAD");
      return s;
    } while (0);
  case 0x26:
    do {
      char *s;
      while ((s = malloc(4096)) == NULL)
        ;
      sprintf(s, "REQ_DOWNLODA");
      return s;
    } while (0);
  case 0x27:
    do {
      char *s;
      while ((s = malloc(4096)) == NULL)
        ;
      sprintf(s, "REQ_EXIT");
      return s;
    } while (0);
  case 0x80:
    do {
      char *s;
      while ((s = malloc(4096)) == NULL)
        ;
      sprintf(s, "REQ_DATA_FINISH");
      return s;
    } while (0);
  case 0x101:
    do {
      char *s;
      while ((s = malloc(4096)) == NULL)
        ;
      sprintf(s, "RESP_AUTH_OK");
      return s;
    } while (0);
  case 0x102:
    do {
      char *s;
      while ((s = malloc(4096)) == NULL)
        ;
      sprintf(s, "RESP_AUTH_FAIL");
      return s;
    } while (0);
  case 0x103:
    do {
      char *s;
      while ((s = malloc(4096)) == NULL)
        ;
      sprintf(s, "RESP_LS");
      return s;
    } while (0);
  case 0x104:
    do {
      char *s;
      while ((s = malloc(4096)) == NULL)
        ;
      sprintf(s, "RESP_LS_ERR");
      return s;
    } while (0);
  case 0x105:
    do {
      char *s;
      while ((s = malloc(4096)) == NULL)
        ;
      sprintf(s, "RESP_CD");
      return s;
    } while (0);
  case 0x106:
    do {
      char *s;
      while ((s = malloc(4096)) == NULL)
        ;
      sprintf(s, "RESP_CD_ERR");
      return s;
    } while (0);
  case 0x107:
    do {
      char *s;
      while ((s = malloc(4096)) == NULL)
        ;
      sprintf(s, "RESP_PWD");
      return s;
    } while (0);
  case 0x108:
    do {
      char *s;
      while ((s = malloc(4096)) == NULL)
        ;
      sprintf(s, "RESP_DOWNLOAD");
      return s;
    } while (0);
  case 0x109:
    do {
      char *s;
      while ((s = malloc(4096)) == NULL)
        ;
      sprintf(s, "RESP_DOWNLOAD_ERR");
      return s;
    } while (0);
  case 0x800:
    do {
      char *s;
      while ((s = malloc(4096)) == NULL)
        ;
      sprintf(s, "RESP_DATA_FINISH");
      return s;
    } while (0);
  case 0x10A:
    do {
      char *s;
      while ((s = malloc(4096)) == NULL)
        ;
      sprintf(s, "RESP_UPLOAD");
      return s;
    } while (0);
  case 0x10B:
    do {
      char *s;
      while ((s = malloc(4096)) == NULL)
        ;
      sprintf(s, "RESP_UPLOAD_ERR");
      return s;
    } while (0);
  case 0x10C:
    do {
      char *s;
      while ((s = malloc(4096)) == NULL)
        ;
      sprintf(s, "RESP_EXIT");
      return s;
    } while (0);
  case 0x10D:
    do {
      char *s;
      while ((s = malloc(4096)) == NULL)
        ;
      sprintf(s, "RESP_SERVER_ERR");
      return s;
    } while (0);
  case 0x10F:
    do {
      char *s;
      while ((s = malloc(4096)) == NULL)
        ;
      sprintf(s, "RESP_MKDIR_ERR");
      return s;
    } while (0);
  case 0x10E:
    do {
      char *s;
      while ((s = malloc(4096)) == NULL)
        ;
      sprintf(s, "RESP_MKDIR");
      return s;
    } while (0);
  case 0x111:
    do {
      char *s;
      while ((s = malloc(4096)) == NULL)
        ;
      sprintf(s, "RESP_RM_ERR");
      return s;
    } while (0);
  case 0x110:
    do {
      char *s;
      while ((s = malloc(4096)) == NULL)
        ;
      sprintf(s, "RESP_RM");
      return s;
    } while (0);
  default:
    do {
      char *s;
      while ((s = malloc(4096)) == NULL)
        ;
      sprintf(s, "UNKNOWN CODE: (%#X)", code);
      return s;
    } while (0);
  }
}


x86 assembly (clang, -O0):
<cstring>:
push   %rbp
mov    %rsp,%rbp
sub    $0x100,%rsp
mov    %edi,-0xc(%rbp)
mov    -0xc(%rbp),%eax
mov    %eax,-0xf4(%rbp)
sub    $0x10,%eax
je     1373 <cstring+0x253>
jmp    1145 <cstring+0x25>
mov    -0xf4(%rbp),%eax
sub    $0x20,%eax
je     13b9 <cstring+0x299>
jmp    1159 <cstring+0x39>
mov    -0xf4(%rbp),%eax
sub    $0x21,%eax
je     13ff <cstring+0x2df>
jmp    116d <cstring+0x4d>
mov    -0xf4(%rbp),%eax
sub    $0x22,%eax
je     1445 <cstring+0x325>
jmp    1181 <cstring+0x61>
mov    -0xf4(%rbp),%eax
sub    $0x23,%eax
je     148b <cstring+0x36b>
jmp    1195 <cstring+0x75>
mov    -0xf4(%rbp),%eax
sub    $0x25,%eax
je     14d1 <cstring+0x3b1>
jmp    11a9 <cstring+0x89>
mov    -0xf4(%rbp),%eax
sub    $0x26,%eax
je     1517 <cstring+0x3f7>
jmp    11bd <cstring+0x9d>
mov    -0xf4(%rbp),%eax
sub    $0x27,%eax
je     155d <cstring+0x43d>
jmp    11d1 <cstring+0xb1>
mov    -0xf4(%rbp),%eax
sub    $0x80,%eax
je     15a3 <cstring+0x483>
jmp    11e7 <cstring+0xc7>
mov    -0xf4(%rbp),%eax
sub    $0x101,%eax
je     15e9 <cstring+0x4c9>
jmp    11fd <cstring+0xdd>
mov    -0xf4(%rbp),%eax
sub    $0x102,%eax
je     162f <cstring+0x50f>
jmp    1213 <cstring+0xf3>
mov    -0xf4(%rbp),%eax
sub    $0x103,%eax
je     1675 <cstring+0x555>
jmp    1229 <cstring+0x109>
mov    -0xf4(%rbp),%eax
sub    $0x104,%eax
je     16bb <cstring+0x59b>
jmp    123f <cstring+0x11f>
mov    -0xf4(%rbp),%eax
sub    $0x105,%eax
je     1701 <cstring+0x5e1>
jmp    1255 <cstring+0x135>
mov    -0xf4(%rbp),%eax
sub    $0x106,%eax
je     1747 <cstring+0x627>
jmp    126b <cstring+0x14b>
mov    -0xf4(%rbp),%eax
sub    $0x107,%eax
je     1796 <cstring+0x676>
jmp    1281 <cstring+0x161>
mov    -0xf4(%rbp),%eax
sub    $0x108,%eax
je     17e5 <cstring+0x6c5>
jmp    1297 <cstring+0x177>
mov    -0xf4(%rbp),%eax
sub    $0x109,%eax
je     1834 <cstring+0x714>
jmp    12ad <cstring+0x18d>
mov    -0xf4(%rbp),%eax
sub    $0x10a,%eax
je     18d2 <cstring+0x7b2>
jmp    12c3 <cstring+0x1a3>
mov    -0xf4(%rbp),%eax
sub    $0x10b,%eax
je     1921 <cstring+0x801>
jmp    12d9 <cstring+0x1b9>
mov    -0xf4(%rbp),%eax
sub    $0x10c,%eax
je     1970 <cstring+0x850>
jmp    12ef <cstring+0x1cf>
mov    -0xf4(%rbp),%eax
sub    $0x10d,%eax
je     19bf <cstring+0x89f>
jmp    1305 <cstring+0x1e5>
mov    -0xf4(%rbp),%eax
sub    $0x10e,%eax
je     1a5d <cstring+0x93d>
jmp    131b <cstring+0x1fb>
mov    -0xf4(%rbp),%eax
sub    $0x10f,%eax
je     1a0e <cstring+0x8ee>
jmp    1331 <cstring+0x211>
mov    -0xf4(%rbp),%eax
sub    $0x110,%eax
je     1afb <cstring+0x9db>
jmp    1347 <cstring+0x227>
mov    -0xf4(%rbp),%eax
sub    $0x111,%eax
je     1aac <cstring+0x98c>
jmp    135d <cstring+0x23d>
mov    -0xf4(%rbp),%eax
sub    $0x800,%eax
je     1883 <cstring+0x763>
jmp    1b4a <cstring+0xa2a>
jmp    1378 <cstring+0x258>
jmp    137d <cstring+0x25d>
mov    $0x1000,%edi
call   1030 <malloc@plt>
mov    %rax,-0x18(%rbp)
cmp    $0x0,%rax
jne    139a <cstring+0x27a>
jmp    137d <cstring+0x25d>
mov    -0x18(%rbp),%rdi
lea    0xc5b(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
mov    -0x18(%rbp),%rax
mov    %rax,-0x8(%rbp)
jmp    1b97 <cstring+0xa77>
jmp    13be <cstring+0x29e>
jmp    13c3 <cstring+0x2a3>
mov    $0x1000,%edi
call   1030 <malloc@plt>
mov    %rax,-0x20(%rbp)
cmp    $0x0,%rax
jne    13e0 <cstring+0x2c0>
jmp    13c3 <cstring+0x2a3>
mov    -0x20(%rbp),%rdi
lea    0xc1e(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
mov    -0x20(%rbp),%rax
mov    %rax,-0x8(%rbp)
jmp    1b97 <cstring+0xa77>
jmp    1404 <cstring+0x2e4>
jmp    1409 <cstring+0x2e9>
mov    $0x1000,%edi
call   1030 <malloc@plt>
mov    %rax,-0x28(%rbp)
cmp    $0x0,%rax
jne    1426 <cstring+0x306>
jmp    1409 <cstring+0x2e9>
mov    -0x28(%rbp),%rdi
lea    0xbdf(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
mov    -0x28(%rbp),%rax
mov    %rax,-0x8(%rbp)
jmp    1b97 <cstring+0xa77>
jmp    144a <cstring+0x32a>
jmp    144f <cstring+0x32f>
mov    $0x1000,%edi
call   1030 <malloc@plt>
mov    %rax,-0x30(%rbp)
cmp    $0x0,%rax
jne    146c <cstring+0x34c>
jmp    144f <cstring+0x32f>
mov    -0x30(%rbp),%rdi
lea    0xba0(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
mov    -0x30(%rbp),%rax
mov    %rax,-0x8(%rbp)
jmp    1b97 <cstring+0xa77>
jmp    1490 <cstring+0x370>
jmp    1495 <cstring+0x375>
mov    $0x1000,%edi
call   1030 <malloc@plt>
mov    %rax,-0x38(%rbp)
cmp    $0x0,%rax
jne    14b2 <cstring+0x392>
jmp    1495 <cstring+0x375>
mov    -0x38(%rbp),%rdi
lea    0xb62(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
mov    -0x38(%rbp),%rax
mov    %rax,-0x8(%rbp)
jmp    1b97 <cstring+0xa77>
jmp    14d6 <cstring+0x3b6>
jmp    14db <cstring+0x3bb>
mov    $0x1000,%edi
call   1030 <malloc@plt>
mov    %rax,-0x40(%rbp)
cmp    $0x0,%rax
jne    14f8 <cstring+0x3d8>
jmp    14db <cstring+0x3bb>
mov    -0x40(%rbp),%rdi
lea    0xb26(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
mov    -0x40(%rbp),%rax
mov    %rax,-0x8(%rbp)
jmp    1b97 <cstring+0xa77>
jmp    151c <cstring+0x3fc>
jmp    1521 <cstring+0x401>
mov    $0x1000,%edi
call   1030 <malloc@plt>
mov    %rax,-0x48(%rbp)
cmp    $0x0,%rax
jne    153e <cstring+0x41e>
jmp    1521 <cstring+0x401>
mov    -0x48(%rbp),%rdi
lea    0xaeb(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
mov    -0x48(%rbp),%rax
mov    %rax,-0x8(%rbp)
jmp    1b97 <cstring+0xa77>
jmp    1562 <cstring+0x442>
jmp    1567 <cstring+0x447>
mov    $0x1000,%edi
call   1030 <malloc@plt>
mov    %rax,-0x50(%rbp)
cmp    $0x0,%rax
jne    1584 <cstring+0x464>
jmp    1567 <cstring+0x447>
mov    -0x50(%rbp),%rdi
lea    0xab2(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
mov    -0x50(%rbp),%rax
mov    %rax,-0x8(%rbp)
jmp    1b97 <cstring+0xa77>
jmp    15a8 <cstring+0x488>
jmp    15ad <cstring+0x48d>
mov    $0x1000,%edi
call   1030 <malloc@plt>
mov    %rax,-0x58(%rbp)
cmp    $0x0,%rax
jne    15ca <cstring+0x4aa>
jmp    15ad <cstring+0x48d>
mov    -0x58(%rbp),%rdi
lea    0xa75(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
mov    -0x58(%rbp),%rax
mov    %rax,-0x8(%rbp)
jmp    1b97 <cstring+0xa77>
jmp    15ee <cstring+0x4ce>
jmp    15f3 <cstring+0x4d3>
mov    $0x1000,%edi
call   1030 <malloc@plt>
mov    %rax,-0x60(%rbp)
cmp    $0x0,%rax
jne    1610 <cstring+0x4f0>
jmp    15f3 <cstring+0x4d3>
mov    -0x60(%rbp),%rdi
lea    0xa3f(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
mov    -0x60(%rbp),%rax
mov    %rax,-0x8(%rbp)
jmp    1b97 <cstring+0xa77>
jmp    1634 <cstring+0x514>
jmp    1639 <cstring+0x519>
mov    $0x1000,%edi
call   1030 <malloc@plt>
mov    %rax,-0x68(%rbp)
cmp    $0x0,%rax
jne    1656 <cstring+0x536>
jmp    1639 <cstring+0x519>
mov    -0x68(%rbp),%rdi
lea    0xa06(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
mov    -0x68(%rbp),%rax
mov    %rax,-0x8(%rbp)
jmp    1b97 <cstring+0xa77>
jmp    167a <cstring+0x55a>
jmp    167f <cstring+0x55f>
mov    $0x1000,%edi
call   1030 <malloc@plt>
mov    %rax,-0x70(%rbp)
cmp    $0x0,%rax
jne    169c <cstring+0x57c>
jmp    167f <cstring+0x55f>
mov    -0x70(%rbp),%rdi
lea    0x9cf(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
mov    -0x70(%rbp),%rax
mov    %rax,-0x8(%rbp)
jmp    1b97 <cstring+0xa77>
jmp    16c0 <cstring+0x5a0>
jmp    16c5 <cstring+0x5a5>
mov    $0x1000,%edi
call   1030 <malloc@plt>
mov    %rax,-0x78(%rbp)
cmp    $0x0,%rax
jne    16e2 <cstring+0x5c2>
jmp    16c5 <cstring+0x5a5>
mov    -0x78(%rbp),%rdi
lea    0x991(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
mov    -0x78(%rbp),%rax
mov    %rax,-0x8(%rbp)
jmp    1b97 <cstring+0xa77>
jmp    1706 <cstring+0x5e6>
jmp    170b <cstring+0x5eb>
mov    $0x1000,%edi
call   1030 <malloc@plt>
mov    %rax,-0x80(%rbp)
cmp    $0x0,%rax
jne    1728 <cstring+0x608>
jmp    170b <cstring+0x5eb>
mov    -0x80(%rbp),%rdi
lea    0x957(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
mov    -0x80(%rbp),%rax
mov    %rax,-0x8(%rbp)
jmp    1b97 <cstring+0xa77>
jmp    174c <cstring+0x62c>
jmp    1751 <cstring+0x631>
mov    $0x1000,%edi
call   1030 <malloc@plt>
mov    %rax,-0x88(%rbp)
cmp    $0x0,%rax
jne    1771 <cstring+0x651>
jmp    1751 <cstring+0x631>
mov    -0x88(%rbp),%rdi
lea    0x913(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
mov    -0x88(%rbp),%rax
mov    %rax,-0x8(%rbp)
jmp    1b97 <cstring+0xa77>
jmp    179b <cstring+0x67b>
jmp    17a0 <cstring+0x680>
mov    $0x1000,%edi
call   1030 <malloc@plt>
mov    %rax,-0x90(%rbp)
cmp    $0x0,%rax
jne    17c0 <cstring+0x6a0>
jmp    17a0 <cstring+0x680>
mov    -0x90(%rbp),%rdi
lea    0x8d0(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
mov    -0x90(%rbp),%rax
mov    %rax,-0x8(%rbp)
jmp    1b97 <cstring+0xa77>
jmp    17ea <cstring+0x6ca>
jmp    17ef <cstring+0x6cf>
mov    $0x1000,%edi
call   1030 <malloc@plt>
mov    %rax,-0x98(%rbp)
cmp    $0x0,%rax
jne    180f <cstring+0x6ef>
jmp    17ef <cstring+0x6cf>
mov    -0x98(%rbp),%rdi
lea    0x88a(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
mov    -0x98(%rbp),%rax
mov    %rax,-0x8(%rbp)
jmp    1b97 <cstring+0xa77>
jmp    1839 <cstring+0x719>
jmp    183e <cstring+0x71e>
mov    $0x1000,%edi
call   1030 <malloc@plt>
mov    %rax,-0xa0(%rbp)
cmp    $0x0,%rax
jne    185e <cstring+0x73e>
jmp    183e <cstring+0x71e>
mov    -0xa0(%rbp),%rdi
lea    0x849(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
mov    -0xa0(%rbp),%rax
mov    %rax,-0x8(%rbp)
jmp    1b97 <cstring+0xa77>
jmp    1888 <cstring+0x768>
jmp    188d <cstring+0x76d>
mov    $0x1000,%edi
call   1030 <malloc@plt>
mov    %rax,-0xa8(%rbp)
cmp    $0x0,%rax
jne    18ad <cstring+0x78d>
jmp    188d <cstring+0x76d>
mov    -0xa8(%rbp),%rdi
lea    0x80c(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
mov    -0xa8(%rbp),%rax
mov    %rax,-0x8(%rbp)
jmp    1b97 <cstring+0xa77>
jmp    18d7 <cstring+0x7b7>
jmp    18dc <cstring+0x7bc>
mov    $0x1000,%edi
call   1030 <malloc@plt>
mov    %rax,-0xb0(%rbp)
cmp    $0x0,%rax
jne    18fc <cstring+0x7dc>
jmp    18dc <cstring+0x7bc>
mov    -0xb0(%rbp),%rdi
lea    0x7ce(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
mov    -0xb0(%rbp),%rax
mov    %rax,-0x8(%rbp)
jmp    1b97 <cstring+0xa77>
jmp    1926 <cstring+0x806>
jmp    192b <cstring+0x80b>
mov    $0x1000,%edi
call   1030 <malloc@plt>
mov    %rax,-0xb8(%rbp)
cmp    $0x0,%rax
jne    194b <cstring+0x82b>
jmp    192b <cstring+0x80b>
mov    -0xb8(%rbp),%rdi
lea    0x78b(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
mov    -0xb8(%rbp),%rax
mov    %rax,-0x8(%rbp)
jmp    1b97 <cstring+0xa77>
jmp    1975 <cstring+0x855>
jmp    197a <cstring+0x85a>
mov    $0x1000,%edi
call   1030 <malloc@plt>
mov    %rax,-0xc0(%rbp)
cmp    $0x0,%rax
jne    199a <cstring+0x87a>
jmp    197a <cstring+0x85a>
mov    -0xc0(%rbp),%rdi
lea    0x74c(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
mov    -0xc0(%rbp),%rax
mov    %rax,-0x8(%rbp)
jmp    1b97 <cstring+0xa77>
jmp    19c4 <cstring+0x8a4>
jmp    19c9 <cstring+0x8a9>
mov    $0x1000,%edi
call   1030 <malloc@plt>
mov    %rax,-0xc8(%rbp)
cmp    $0x0,%rax
jne    19e9 <cstring+0x8c9>
jmp    19c9 <cstring+0x8a9>
mov    -0xc8(%rbp),%rdi
lea    0x707(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
mov    -0xc8(%rbp),%rax
mov    %rax,-0x8(%rbp)
jmp    1b97 <cstring+0xa77>
jmp    1a13 <cstring+0x8f3>
jmp    1a18 <cstring+0x8f8>
mov    $0x1000,%edi
call   1030 <malloc@plt>
mov    %rax,-0xd0(%rbp)
cmp    $0x0,%rax
jne    1a38 <cstring+0x918>
jmp    1a18 <cstring+0x8f8>
mov    -0xd0(%rbp),%rdi
lea    0x6c8(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
mov    -0xd0(%rbp),%rax
mov    %rax,-0x8(%rbp)
jmp    1b97 <cstring+0xa77>
jmp    1a62 <cstring+0x942>
jmp    1a67 <cstring+0x947>
mov    $0x1000,%edi
call   1030 <malloc@plt>
mov    %rax,-0xd8(%rbp)
cmp    $0x0,%rax
jne    1a87 <cstring+0x967>
jmp    1a67 <cstring+0x947>
mov    -0xd8(%rbp),%rdi
lea    0x688(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
mov    -0xd8(%rbp),%rax
mov    %rax,-0x8(%rbp)
jmp    1b97 <cstring+0xa77>
jmp    1ab1 <cstring+0x991>
jmp    1ab6 <cstring+0x996>
mov    $0x1000,%edi
call   1030 <malloc@plt>
mov    %rax,-0xe0(%rbp)
cmp    $0x0,%rax
jne    1ad6 <cstring+0x9b6>
jmp    1ab6 <cstring+0x996>
mov    -0xe0(%rbp),%rdi
lea    0x644(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
mov    -0xe0(%rbp),%rax
mov    %rax,-0x8(%rbp)
jmp    1b97 <cstring+0xa77>
jmp    1b00 <cstring+0x9e0>
jmp    1b05 <cstring+0x9e5>
mov    $0x1000,%edi
call   1030 <malloc@plt>
mov    %rax,-0xe8(%rbp)
cmp    $0x0,%rax
jne    1b25 <cstring+0xa05>
jmp    1b05 <cstring+0x9e5>
mov    -0xe8(%rbp),%rdi
lea    0x601(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
mov    -0xe8(%rbp),%rax
mov    %rax,-0x8(%rbp)
jmp    1b97 <cstring+0xa77>
jmp    1b4f <cstring+0xa2f>
jmp    1b54 <cstring+0xa34>
mov    $0x1000,%edi
call   1030 <malloc@plt>
mov    %rax,-0xf0(%rbp)
cmp    $0x0,%rax
jne    1b74 <cstring+0xa54>
jmp    1b54 <cstring+0xa34>
mov    -0xf0(%rbp),%rdi
mov    -0xc(%rbp),%edx
lea    0x5b7(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
mov    -0xf0(%rbp),%rax
mov    %rax,-0x8(%rbp)
mov    -0x8(%rbp),%rax
add    $0x100,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<cstring>:
push   %r14
push   %rbx
push   %rax
mov    %edi,%r14d
lea    -0x10(%r14),%eax
cmp    $0x101,%eax
ja     1668 <cstring+0x548>
lea    0xec3(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
cs nopw 0x0(%rax,%rax,1)
mov    $0x1000,%edi
call   1030 <malloc@plt>
test   %rax,%rax
je     1150 <cstring+0x30>
mov    %rax,%rbx
movabs $0x485455415f514552,%rax
55 54 48
jmp    145c <cstring+0x33c>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
mov    $0x1000,%edi
call   1030 <malloc@plt>
test   %rax,%rax
je     1180 <cstring+0x60>
mov    %rax,%rbx
movl   $0x534c5f,0x3(%rax)
movl   $0x5f514552,(%rax)
jmp    16d6 <cstring+0x5b6>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
mov    $0x1000,%edi
call   1030 <malloc@plt>
test   %rax,%rax
je     11b0 <cstring+0x90>
mov    %rax,%rbx
movl   $0x44435f,0x3(%rax)
movl   $0x5f514552,(%rax)
jmp    16d6 <cstring+0x5b6>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
mov    $0x1000,%edi
call   1030 <malloc@plt>
test   %rax,%rax
je     11e0 <cstring+0xc0>
mov    %rax,%rbx
movabs $0x4457505f514552,%rax
mov    %rax,(%rbx)
jmp    16d6 <cstring+0x5b6>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
mov    $0x1000,%edi
call   1030 <malloc@plt>
test   %rax,%rax
je     1210 <cstring+0xf0>
mov    %rax,%rbx
movabs $0x49444b4d5f514552,%rax
4b 44 49
mov    %rax,(%rbx)
movw   $0x52,0x8(%rbx)
jmp    16d6 <cstring+0x5b6>
nopw   0x0(%rax,%rax,1)
mov    $0x1000,%edi
call   1030 <malloc@plt>
test   %rax,%rax
je     1240 <cstring+0x120>
mov    %rax,%rbx
movabs $0x4f4c50555f514552,%rax
50 4c 4f
mov    %rax,(%rbx)
movl   $0x44414f,0x7(%rbx)
jmp    16d6 <cstring+0x5b6>
nopl   0x0(%rax,%rax,1)
mov    $0x1000,%edi
call   1030 <malloc@plt>
test   %rax,%rax
je     1270 <cstring+0x150>
mov    %rax,%rbx
movabs $0x41444f4c4e574f,%rax
mov    %rax,0x5(%rbx)
movabs $0x4e574f445f514552,%rax
4f 57 4e
mov    %rax,(%rbx)
jmp    16d6 <cstring+0x5b6>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
mov    $0x1000,%edi
call   1030 <malloc@plt>
test   %rax,%rax
je     12b0 <cstring+0x190>
mov    %rax,%rbx
movabs $0x544958455f514552,%rax
58 49 54
jmp    145c <cstring+0x33c>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
mov    $0x1000,%edi
call   1030 <malloc@plt>
test   %rax,%rax
je     12e0 <cstring+0x1c0>
mov    %rax,%rbx
movups 0x1151(%rip),%xmm0
movups %xmm0,(%rax)
jmp    16d6 <cstring+0x5b6>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
mov    $0x1000,%edi
call   1030 <malloc@plt>
test   %rax,%rax
je     1310 <cstring+0x1f0>
mov    %rax,%rbx
movabs $0x4b4f5f48545541,%rax
mov    %rax,0x5(%rbx)
jmp    1360 <cstring+0x240>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
mov    $0x1000,%edi
call   1030 <malloc@plt>
test   %rax,%rax
je     1340 <cstring+0x220>
mov    %rax,%rbx
movabs $0x4c4941465f4854,%rax
mov    %rax,0x7(%rbx)
movabs $0x5455415f50534552,%rax
41 55 54
mov    %rax,(%rbx)
jmp    16d6 <cstring+0x5b6>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
mov    $0x1000,%edi
call   1030 <malloc@plt>
test   %rax,%rax
je     1380 <cstring+0x260>
mov    %rax,%rbx
movabs $0x534c5f50534552,%rax
mov    %rax,(%rbx)
jmp    16d6 <cstring+0x5b6>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
mov    $0x1000,%edi
call   1030 <malloc@plt>
test   %rax,%rax
je     13b0 <cstring+0x290>
mov    %rax,%rbx
movabs $0x5f534c5f50534552,%rax
4c 53 5f
jmp    165c <cstring+0x53c>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
mov    $0x1000,%edi
call   1030 <malloc@plt>
test   %rax,%rax
je     13e0 <cstring+0x2c0>
mov    %rax,%rbx
movabs $0x44435f50534552,%rax
mov    %rax,(%rbx)
jmp    16d6 <cstring+0x5b6>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
mov    $0x1000,%edi
call   1030 <malloc@plt>
test   %rax,%rax
je     1410 <cstring+0x2f0>
mov    %rax,%rbx
movabs $0x5f44435f50534552,%rax
43 44 5f
jmp    165c <cstring+0x53c>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
mov    $0x1000,%edi
call   1030 <malloc@plt>
test   %rax,%rax
je     1440 <cstring+0x320>
mov    %rax,%rbx
movabs $0x4457505f50534552,%rax
50 57 44
mov    %rax,(%rbx)
movb   $0x0,0x8(%rbx)
jmp    16d6 <cstring+0x5b6>
nopl   0x0(%rax,%rax,1)
mov    $0x1000,%edi
call   1030 <malloc@plt>
test   %rax,%rax
je     1470 <cstring+0x350>
mov    %rax,%rbx
movabs $0x44414f4c4e574f,%rax
mov    %rax,0x6(%rbx)
movabs $0x574f445f50534552,%rax
44 4f 57
mov    %rax,(%rbx)
jmp    16d6 <cstring+0x5b6>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
mov    $0x1000,%edi
call   1030 <malloc@plt>
test   %rax,%rax
je     14b0 <cstring+0x390>
mov    %rax,%rbx
movups 0xfdc(%rip),%xmm0
movups %xmm0,(%rax)
movw   $0x52,0x10(%rax)
jmp    16d6 <cstring+0x5b6>
nopw   0x0(%rax,%rax,1)
mov    $0x1000,%edi
call   1030 <malloc@plt>
test   %rax,%rax
je     14e0 <cstring+0x3c0>
mov    %rax,%rbx
movabs $0x4c50555f50534552,%rax
55 50 4c
mov    %rax,(%rbx)
movl   $0x44414f,0x8(%rbx)
jmp    16d6 <cstring+0x5b6>
nopl   0x0(%rax,%rax,1)
mov    $0x1000,%edi
call   1030 <malloc@plt>
test   %rax,%rax
je     1510 <cstring+0x3f0>
mov    %rax,%rbx
movups 0xfab(%rip),%xmm0
movups %xmm0,(%rax)
jmp    16d6 <cstring+0x5b6>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
mov    $0x1000,%edi
call   1030 <malloc@plt>
test   %rax,%rax
je     1540 <cstring+0x420>
mov    %rax,%rbx
movabs $0x4958455f50534552,%rax
45 58 49
mov    %rax,(%rbx)
movw   $0x54,0x8(%rbx)
jmp    16d6 <cstring+0x5b6>
nopw   0x0(%rax,%rax,1)
mov    $0x1000,%edi
call   1030 <malloc@plt>
test   %rax,%rax
je     1570 <cstring+0x450>
mov    %rax,%rbx
movups 0xf65(%rip),%xmm0
movups %xmm0,(%rax)
jmp    16d6 <cstring+0x5b6>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
mov    $0x1000,%edi
call   1030 <malloc@plt>
test   %rax,%rax
je     15a0 <cstring+0x480>
mov    %rax,%rbx
movabs $0x444b4d5f50534552,%rax
4d 4b 44
mov    %rax,(%rbx)
movl   $0x524944,0x7(%rbx)
jmp    16d6 <cstring+0x5b6>
nopl   0x0(%rax,%rax,1)
mov    $0x1000,%edi
call   1030 <malloc@plt>
test   %rax,%rax
je     15d0 <cstring+0x4b0>
mov    %rax,%rbx
movabs $0x5252455f524944,%rax
mov    %rax,0x7(%rbx)
movabs $0x444b4d5f50534552,%rax
4d 4b 44
mov    %rax,(%rbx)
jmp    16d6 <cstring+0x5b6>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
mov    $0x1000,%edi
call   1030 <malloc@plt>
test   %rax,%rax
je     1610 <cstring+0x4f0>
mov    %rax,%rbx
movabs $0x4d525f50534552,%rax
mov    %rax,(%rbx)
jmp    16d6 <cstring+0x5b6>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
mov    $0x1000,%edi
call   1030 <malloc@plt>
test   %rax,%rax
je     1640 <cstring+0x520>
mov    %rax,%rbx
movabs $0x5f4d525f50534552,%rax
52 4d 5f
mov    %rax,(%rbx)
movl   $0x525245,0x8(%rbx)
jmp    16d6 <cstring+0x5b6>
cmp    $0x800,%r14d
jne    16b0 <cstring+0x590>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
mov    $0x1000,%edi
call   1030 <malloc@plt>
test   %rax,%rax
je     1680 <cstring+0x560>
mov    %rax,%rbx
movups 0xe1e(%rip),%xmm0
movups %xmm0,(%rax)
movb   $0x0,0x10(%rax)
jmp    16d6 <cstring+0x5b6>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
mov    $0x1000,%edi
call   1030 <malloc@plt>
test   %rax,%rax
je     16b0 <cstring+0x590>
mov    %rax,%rbx
lea    0xe5b(%rip),%rsi
mov    %rax,%rdi
mov    %r14d,%edx
xor    %eax,%eax
call   1040 <sprintf@plt>
mov    %rbx,%rax
add    $0x8,%rsp
pop    %rbx
pop    %r14
ret

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

LLVM IR (-O2):
@.str = [9 x i8] c"REQ_AUTH\00"
@.str.1 = [7 x i8] c"REQ_LS\00"
@.str.2 = [7 x i8] c"REQ_CD\00"
@.str.4 = [10 x i8] c"REQ_MKDIR\00"
@.str.5 = [11 x i8] c"REQ_UPLOAD\00"
@.str.6 = [13 x i8] c"REQ_DOWNLODA\00"
@.str.7 = [9 x i8] c"REQ_EXIT\00"
@.str.8 = [16 x i8] c"REQ_DATA_FINISH\00"
@.str.9 = [13 x i8] c"RESP_AUTH_OK\00"
@.str.10 = [15 x i8] c"RESP_AUTH_FAIL\00"
@.str.12 = [12 x i8] c"RESP_LS_ERR\00"
@.str.14 = [12 x i8] c"RESP_CD_ERR\00"
@.str.15 = [9 x i8] c"RESP_PWD\00"
@.str.16 = [14 x i8] c"RESP_DOWNLOAD\00"
@.str.17 = [18 x i8] c"RESP_DOWNLOAD_ERR\00"
@.str.18 = [17 x i8] c"RESP_DATA_FINISH\00"
@.str.19 = [12 x i8] c"RESP_UPLOAD\00"
@.str.20 = [16 x i8] c"RESP_UPLOAD_ERR\00"
@.str.21 = [10 x i8] c"RESP_EXIT\00"
@.str.22 = [16 x i8] c"RESP_SERVER_ERR\00"
@.str.23 = [15 x i8] c"RESP_MKDIR_ERR\00"
@.str.24 = [11 x i8] c"RESP_MKDIR\00"
@.str.25 = [12 x i8] c"RESP_RM_ERR\00"
@.str.27 = [20 x i8] c"UNKNOWN CODE: (%#X)\00"
define noalias i8* @cstring(i32 %0) {
switch i32 %0, label %114 [
i32 16, label %2
i32 32, label %6
i32 33, label %10
i32 34, label %14
i32 35, label %19
i32 37, label %23
i32 38, label %27
i32 39, label %31
i32 128, label %35
i32 257, label %39
i32 258, label %43
i32 259, label %47
i32 260, label %52
i32 261, label %56
i32 262, label %61
i32 263, label %65
i32 264, label %69
i32 265, label %73
i32 2048, label %77
i32 266, label %81
i32 267, label %85
i32 268, label %89
i32 269, label %93
i32 271, label %97
i32 270, label %101
i32 273, label %105
i32 272, label %109
]
2: ; preds = %1, %2
%3 = tail call dereferenceable_or_null(4096) i8* @malloc(i32 4096)
%4 = icmp eq i8* %3, null
br i1 %4, label %2, label %5
5: ; preds = %2
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 dereferenceable(9) %3, i8* align 1 dereferenceable(9) getelementptr inbounds ([9 x i8], [9 x i8]* @.str, i64 0, i64 0), i64 9, i1 false)
br label %119
6: ; preds = %1, %6
%7 = tail call dereferenceable_or_null(4096) i8* @malloc(i32 4096)
%8 = icmp eq i8* %7, null
br i1 %8, label %6, label %9
9: ; preds = %6
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 dereferenceable(7) %7, i8* align 1 dereferenceable(7) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.1, i64 0, i64 0), i64 7, i1 false)
br label %119
10: ; preds = %1, %10
%11 = tail call dereferenceable_or_null(4096) i8* @malloc(i32 4096)
%12 = icmp eq i8* %11, null
br i1 %12, label %10, label %13
13: ; preds = %10
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 dereferenceable(7) %11, i8* align 1 dereferenceable(7) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0), i64 7, i1 false)
br label %119
14: ; preds = %1, %14
%15 = tail call dereferenceable_or_null(4096) i8* @malloc(i32 4096)
%16 = icmp eq i8* %15, null
br i1 %16, label %14, label %17
17: ; preds = %14
%18 = bitcast i8* %15 to i64*
store i64 19236301124486482, i64* %18
br label %119
19: ; preds = %1, %19
%20 = tail call dereferenceable_or_null(4096) i8* @malloc(i32 4096)
%21 = icmp eq i8* %20, null
br i1 %21, label %19, label %22
22: ; preds = %19
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 dereferenceable(10) %20, i8* align 1 dereferenceable(10) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.4, i64 0, i64 0), i64 10, i1 false)
br label %119
23: ; preds = %1, %23
%24 = tail call dereferenceable_or_null(4096) i8* @malloc(i32 4096)
%25 = icmp eq i8* %24, null
br i1 %25, label %23, label %26
26: ; preds = %23
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 dereferenceable(11) %24, i8* align 1 dereferenceable(11) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.5, i64 0, i64 0), i64 11, i1 false)
br label %119
27: ; preds = %1, %27
%28 = tail call dereferenceable_or_null(4096) i8* @malloc(i32 4096)
%29 = icmp eq i8* %28, null
br i1 %29, label %27, label %30
30: ; preds = %27
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 dereferenceable(13) %28, i8* align 1 dereferenceable(13) getelementptr inbounds ([13 x i8], [13 x i8]* @.str.6, i64 0, i64 0), i64 13, i1 false)
br label %119
31: ; preds = %1, %31
%32 = tail call dereferenceable_or_null(4096) i8* @malloc(i32 4096)
%33 = icmp eq i8* %32, null
br i1 %33, label %31, label %34
34: ; preds = %31
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 dereferenceable(9) %32, i8* align 1 dereferenceable(9) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.7, i64 0, i64 0), i64 9, i1 false)
br label %119
35: ; preds = %1, %35
%36 = tail call dereferenceable_or_null(4096) i8* @malloc(i32 4096)
%37 = icmp eq i8* %36, null
br i1 %37, label %35, label %38
38: ; preds = %35
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 dereferenceable(16) %36, i8* align 1 dereferenceable(16) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.8, i64 0, i64 0), i64 16, i1 false)
br label %119
39: ; preds = %1, %39
%40 = tail call dereferenceable_or_null(4096) i8* @malloc(i32 4096)
%41 = icmp eq i8* %40, null
br i1 %41, label %39, label %42
42: ; preds = %39
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 dereferenceable(13) %40, i8* align 1 dereferenceable(13) getelementptr inbounds ([13 x i8], [13 x i8]* @.str.9, i64 0, i64 0), i64 13, i1 false)
br label %119
43: ; preds = %1, %43
%44 = tail call dereferenceable_or_null(4096) i8* @malloc(i32 4096)
%45 = icmp eq i8* %44, null
br i1 %45, label %43, label %46
46: ; preds = %43
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 dereferenceable(15) %44, i8* align 1 dereferenceable(15) getelementptr inbounds ([15 x i8], [15 x i8]* @.str.10, i64 0, i64 0), i64 15, i1 false)
br label %119
47: ; preds = %1, %47
%48 = tail call dereferenceable_or_null(4096) i8* @malloc(i32 4096)
%49 = icmp eq i8* %48, null
br i1 %49, label %47, label %50
50: ; preds = %47
%51 = bitcast i8* %48 to i64*
store i64 23446395320223058, i64* %51
br label %119
52: ; preds = %1, %52
%53 = tail call dereferenceable_or_null(4096) i8* @malloc(i32 4096)
%54 = icmp eq i8* %53, null
br i1 %54, label %52, label %55
55: ; preds = %52
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 dereferenceable(12) %53, i8* align 1 dereferenceable(12) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.12, i64 0, i64 0), i64 12, i1 false)
br label %119
56: ; preds = %1, %56
%57 = tail call dereferenceable_or_null(4096) i8* @malloc(i32 4096)
%58 = icmp eq i8* %57, null
br i1 %58, label %56, label %59
59: ; preds = %56
%60 = bitcast i8* %57 to i64*
store i64 19214375064913234, i64* %60
br label %119
61: ; preds = %1, %61
%62 = tail call dereferenceable_or_null(4096) i8* @malloc(i32 4096)
%63 = icmp eq i8* %62, null
br i1 %63, label %61, label %64
64: ; preds = %61
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 dereferenceable(12) %62, i8* align 1 dereferenceable(12) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.14, i64 0, i64 0), i64 12, i1 false)
br label %119
65: ; preds = %1, %65
%66 = tail call dereferenceable_or_null(4096) i8* @malloc(i32 4096)
%67 = icmp eq i8* %66, null
br i1 %67, label %65, label %68
68: ; preds = %65
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 dereferenceable(9) %66, i8* align 1 dereferenceable(9) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.15, i64 0, i64 0), i64 9, i1 false)
br label %119
69: ; preds = %1, %69
%70 = tail call dereferenceable_or_null(4096) i8* @malloc(i32 4096)
%71 = icmp eq i8* %70, null
br i1 %71, label %69, label %72
72: ; preds = %69
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 dereferenceable(14) %70, i8* align 1 dereferenceable(14) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.16, i64 0, i64 0), i64 14, i1 false)
br label %119
73: ; preds = %1, %73
%74 = tail call dereferenceable_or_null(4096) i8* @malloc(i32 4096)
%75 = icmp eq i8* %74, null
br i1 %75, label %73, label %76
76: ; preds = %73
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 dereferenceable(18) %74, i8* align 1 dereferenceable(18) getelementptr inbounds ([18 x i8], [18 x i8]* @.str.17, i64 0, i64 0), i64 18, i1 false)
br label %119
77: ; preds = %1, %77
%78 = tail call dereferenceable_or_null(4096) i8* @malloc(i32 4096)
%79 = icmp eq i8* %78, null
br i1 %79, label %77, label %80
80: ; preds = %77
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 dereferenceable(17) %78, i8* align 1 dereferenceable(17) getelementptr inbounds ([17 x i8], [17 x i8]* @.str.18, i64 0, i64 0), i64 17, i1 false)
br label %119
81: ; preds = %1, %81
%82 = tail call dereferenceable_or_null(4096) i8* @malloc(i32 4096)
%83 = icmp eq i8* %82, null
br i1 %83, label %81, label %84
84: ; preds = %81
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 dereferenceable(12) %82, i8* align 1 dereferenceable(12) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.19, i64 0, i64 0), i64 12, i1 false)
br label %119
85: ; preds = %1, %85
%86 = tail call dereferenceable_or_null(4096) i8* @malloc(i32 4096)
%87 = icmp eq i8* %86, null
br i1 %87, label %85, label %88
88: ; preds = %85
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 dereferenceable(16) %86, i8* align 1 dereferenceable(16) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.20, i64 0, i64 0), i64 16, i1 false)
br label %119
89: ; preds = %1, %89
%90 = tail call dereferenceable_or_null(4096) i8* @malloc(i32 4096)
%91 = icmp eq i8* %90, null
br i1 %91, label %89, label %92
92: ; preds = %89
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 dereferenceable(10) %90, i8* align 1 dereferenceable(10) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.21, i64 0, i64 0), i64 10, i1 false)
br label %119
93: ; preds = %1, %93
%94 = tail call dereferenceable_or_null(4096) i8* @malloc(i32 4096)
%95 = icmp eq i8* %94, null
br i1 %95, label %93, label %96
96: ; preds = %93
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 dereferenceable(16) %94, i8* align 1 dereferenceable(16) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.22, i64 0, i64 0), i64 16, i1 false)
br label %119
97: ; preds = %1, %97
%98 = tail call dereferenceable_or_null(4096) i8* @malloc(i32 4096)
%99 = icmp eq i8* %98, null
br i1 %99, label %97, label %100
100: ; preds = %97
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 dereferenceable(15) %98, i8* align 1 dereferenceable(15) getelementptr inbounds ([15 x i8], [15 x i8]* @.str.23, i64 0, i64 0), i64 15, i1 false)
br label %119
101: ; preds = %1, %101
%102 = tail call dereferenceable_or_null(4096) i8* @malloc(i32 4096)
%103 = icmp eq i8* %102, null
br i1 %103, label %101, label %104
104: ; preds = %101
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 dereferenceable(11) %102, i8* align 1 dereferenceable(11) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.24, i64 0, i64 0), i64 11, i1 false)
br label %119
105: ; preds = %1, %105
%106 = tail call dereferenceable_or_null(4096) i8* @malloc(i32 4096)
%107 = icmp eq i8* %106, null
br i1 %107, label %105, label %108
108: ; preds = %105
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 dereferenceable(12) %106, i8* align 1 dereferenceable(12) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.25, i64 0, i64 0), i64 12, i1 false)
br label %119
109: ; preds = %1, %109
%110 = tail call dereferenceable_or_null(4096) i8* @malloc(i32 4096)
%111 = icmp eq i8* %110, null
br i1 %111, label %109, label %112
112: ; preds = %109
%113 = bitcast i8* %110 to i64*
store i64 21764142529725778, i64* %113
br label %119
114: ; preds = %1, %114
%115 = tail call dereferenceable_or_null(4096) i8* @malloc(i32 4096)
%116 = icmp eq i8* %115, null
br i1 %116, label %114, label %117
117: ; preds = %114
%118 = tail call i32 (i8*, i8*, ...) @sprintf(i8* %115, i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @.str.27, i64 0, i64 0), i32 %0)
br label %119
119: ; preds = %5, %9, %13, %17, %22, %26, %30, %34, %38, %42, %46, %50, %55, %59, %64, %68, %72, %76, %80, %84, %88, %92, %96, %100, %104, %108, %112, %117
%120 = phi i8* [ %115, %117 ], [ %110, %112 ], [ %106, %108 ], [ %102, %104 ], [ %98, %100 ], [ %94, %96 ], [ %90, %92 ], [ %86, %88 ], [ %82, %84 ], [ %78, %80 ], [ %74, %76 ], [ %70, %72 ], [ %66, %68 ], [ %62, %64 ], [ %57, %59 ], [ %53, %55 ], [ %48, %50 ], [ %44, %46 ], [ %40, %42 ], [ %36, %38 ], [ %32, %34 ], [ %28, %30 ], [ %24, %26 ], [ %20, %22 ], [ %15, %17 ], [ %11, %13 ], [ %7, %9 ], [ %3, %5 ]
ret i8* %120
}