#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 int /*<<< orphan*/ tmp_str;

/* Variables and functions */
int /*<<< orphan*/ memset(char *, int /*<<< orphan*/, int);
int /*<<< orphan*/ strcmp(char *, char *);
int /*<<< orphan*/ strncmp(char *, char *, int);
int _get_str2int(char *saddr, int value[]) {
  char *src;
  char off, ch;
  unsigned int tmp_value = 0;
  int data_count, i;
  char tmp_str[128];
  int sign = 1;
  data_count = 2;
  src = saddr;
  off = 0;
  if (!strncmp(src, "port:", 5)) {
    if ((src[5] == 'P') || (src[5] == 'p')) {
      off = 3;
      src += 6;
    }
  } else if (!strncmp(src, "string:", 7)) {
    off = 0;
    src += 7;
  } else if (src[0] == '"') {
    off = 5;
    src += 1;
  } else if ((src[0] == '0') && ((src[1] == 'x') || (src[1] == 'X'))) {
    src += 2;
    off = 2;
  } else if ((src[0] >= '0') && (src[0] <= '9')) {
    off = 1;
  } else if (((src[1] >= '0') && (src[1] <= '9')) && (src[0] == '-')) {
    src++;
    off = 1;
    sign = -1;
  } else if (src[0] == '\0') {
    src++;
    off = 4;
  }
  if (off == 0) {
    data_count = 0;
    while (src[data_count] != '\0') {
      data_count++;
      if (data_count > 127) {
        break;
      }
    }
    if (data_count & 0x03) {
      data_count = (data_count & (~0x03)) + 4;
    } else {
      data_count = data_count + 4;
    }
    value[0] = data_count >> 2;
    if (saddr != src) {
      value[1] = 0;
    } else {
      value[1] = 1;
    }
    return (2);
  } else if (off == 5) {
    data_count = 0;
    while (src[data_count] != '"') {
      data_count++;
      if (data_count > 127) {
        break;
      }
    }
    src[data_count] = '\0';
    if (data_count & 0x03) {
      data_count = (data_count & (~0x03)) + 4;
    } else {
      data_count = data_count + 4;
    }
    value[0] = data_count >> 2;
    value[1] = 5;
    return (2);
  } else if (off == 1) {
    while (*src != '\0') {
      if ((*src >= '0') && (*src <= '9')) {
        tmp_value = tmp_value * 10 + (*src - '0');
        src++;
      } else {
        return -1;
      }
    }
    value[0] = tmp_value * sign;
    return (1);
  } else if (off == 2) {
    while (*src != '\0') {
      if ((*src >= '0') && (*src <= '9')) {
        tmp_value = tmp_value * 16 + (*src - '0');
        src++;
      } else if ((*src >= 'A') && (*src <= 'F')) {
        tmp_value = tmp_value * 16 + (*src - 'A' + 10);
        src++;
      } else if ((*src >= 'a') && (*src <= 'f')) {
        tmp_value = tmp_value * 16 + (*src - 'a' + 10);
        src++;
      } else {
        return -1;
      }
    }
    value[0] = tmp_value;
    return (1);
  } else if (off == 3) {
    int tmp_flag = 0;
    ch = *src++;
    if ((ch == 'o') || (ch == 'O')) {
      ch = src[0];
      if ((ch == 'w') || (ch == 'W')) {
        ch = src[1];
        if ((ch == 'e') || (ch == 'E')) {
          ch = src[2];
          if ((ch == 'r') || (ch == 'R')) {
            value[0] = 0xffff;
            src += 3;
            tmp_flag = 1;
          }
        }
      }
    }
    if (!tmp_flag) {
      if ((ch >= 'A') && (ch <= 'Z')) {
        value[0] = ch - 'A' + 1;
      } else if ((ch >= 'a') && (ch <= 'z')) {
        value[0] = ch - 'a' + 1;
      } else {
        return -1;
      }
    }
    ch = *src++;
    tmp_value = 0;
    while (ch != '<') {
      if ((ch >= '0') && (ch <= '9')) {
        tmp_value = tmp_value * 10 + (ch - '0');
        ch = *src++;
      } else if (ch == 0) {
        src--;
        break;
      } else {
        return -1;
      }
    }
    value[1] = tmp_value;
    ch = *src++;
    while (ch != '\0') {
      i = 0;
      memset(tmp_str, 0, sizeof(tmp_str));
      while (ch != '>') {
        if ((ch >= 'A') && (ch <= 'Z')) {
          ch += 'a' - 'A';
        }
        tmp_str[i++] = ch;
        ch = *src++;
      }
      tmp_str[i] = '\0';
      if (!strcmp(tmp_str, "default")) {
        value[data_count] = -1;
      } else if (!strcmp(tmp_str, "none")) {
        value[data_count] = -1;
      } else if (!strcmp(tmp_str, "null")) {
        value[data_count] = -1;
      } else if (!strcmp(tmp_str, "-1")) {
        value[data_count] = -1;
      } else {
        i = 0;
        ch = tmp_str[i++];
        tmp_value = 0;
        if (ch == '-') {
          sign = -1;
          ch = tmp_str[i++];
        }
        while (ch != '\0') {
          if ((ch >= '0') && (ch <= '9')) {
            tmp_value = tmp_value * 10 + (ch - '0');
          } else {
            return -1;
          }
          ch = tmp_str[i++];
        }
        value[data_count] = tmp_value * sign;
      }
      data_count++;
      ch = *src++;
      if (ch == '<') {
        ch = *src++;
      } else if (ch == '\0') {
        ;
      } else {
        return -1;
      }
    }
    switch (data_count) {
    case 3:
      value[3] = -1;
    case 4:
      value[4] = -1;
    case 5:
      value[5] = -1;
    case 6:
      break;
    default:
      return -1;
    }
    return (4);
  } else if (off == 4) {
    value[0] = 4 >> 2;
    return (5);
  } else {
    return -1;
  }
}


x86 assembly (clang, -O0):
<_get_str2int>:
push   %rbp
mov    %rsp,%rbp
sub    $0xc0,%rsp
mov    %rdi,-0x10(%rbp)
mov    %rsi,-0x18(%rbp)
movl   $0x0,-0x28(%rbp)
movl   $0x1,-0xb4(%rbp)
movl   $0x2,-0x2c(%rbp)
mov    -0x10(%rbp),%rax
mov    %rax,-0x20(%rbp)
movb   $0x0,-0x21(%rbp)
mov    -0x20(%rbp),%rdi
lea    0xe9e(%rip),%rsi
mov    $0x5,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    11bc <_get_str2int+0x8c>
mov    -0x20(%rbp),%rax
movsbl 0x5(%rax),%eax
cmp    $0x50,%eax
je     11a7 <_get_str2int+0x77>
mov    -0x20(%rbp),%rax
movsbl 0x5(%rax),%eax
cmp    $0x70,%eax
jne    11b7 <_get_str2int+0x87>
movb   $0x3,-0x21(%rbp)
mov    -0x20(%rbp),%rax
add    $0x6,%rax
mov    %rax,-0x20(%rbp)
jmp    1313 <_get_str2int+0x1e3>
mov    -0x20(%rbp),%rdi
lea    0xe4f(%rip),%rsi
mov    $0x7,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    11ef <_get_str2int+0xbf>
movb   $0x0,-0x21(%rbp)
mov    -0x20(%rbp),%rax
add    $0x7,%rax
mov    %rax,-0x20(%rbp)
jmp    130e <_get_str2int+0x1de>
mov    -0x20(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x22,%eax
jne    1214 <_get_str2int+0xe4>
movb   $0x5,-0x21(%rbp)
mov    -0x20(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x20(%rbp)
jmp    1309 <_get_str2int+0x1d9>
mov    -0x20(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x30,%eax
jne    125b <_get_str2int+0x12b>
mov    -0x20(%rbp),%rax
movsbl 0x1(%rax),%eax
cmp    $0x78,%eax
je     1246 <_get_str2int+0x116>
mov    -0x20(%rbp),%rax
movsbl 0x1(%rax),%eax
cmp    $0x58,%eax
jne    125b <_get_str2int+0x12b>
mov    -0x20(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x20(%rbp)
movb   $0x2,-0x21(%rbp)
jmp    1304 <_get_str2int+0x1d4>
mov    -0x20(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x30,%eax
jl     1284 <_get_str2int+0x154>
mov    -0x20(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x39,%eax
jg     1284 <_get_str2int+0x154>
movb   $0x1,-0x21(%rbp)
jmp    12ff <_get_str2int+0x1cf>
mov    -0x20(%rbp),%rax
movsbl 0x1(%rax),%eax
cmp    $0x30,%eax
jl     12d5 <_get_str2int+0x1a5>
mov    -0x20(%rbp),%rax
movsbl 0x1(%rax),%eax
cmp    $0x39,%eax
jg     12d5 <_get_str2int+0x1a5>
mov    -0x20(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x2d,%eax
jne    12d5 <_get_str2int+0x1a5>
mov    -0x20(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x20(%rbp)
movb   $0x1,-0x21(%rbp)
movl   $0xffffffff,-0xb4(%rbp)
ff ff ff
jmp    12fa <_get_str2int+0x1ca>
mov    -0x20(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x0,%eax
jne    12f5 <_get_str2int+0x1c5>
mov    -0x20(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x20(%rbp)
movb   $0x4,-0x21(%rbp)
jmp    12fa <_get_str2int+0x1ca>
jmp    12ff <_get_str2int+0x1cf>
jmp    1304 <_get_str2int+0x1d4>
jmp    1309 <_get_str2int+0x1d9>
jmp    130e <_get_str2int+0x1de>
jmp    1313 <_get_str2int+0x1e3>
movsbl -0x21(%rbp),%eax
cmp    $0x0,%eax
jne    13c3 <_get_str2int+0x293>
movl   $0x0,-0x2c(%rbp)
mov    -0x20(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x0,%eax
je     1359 <_get_str2int+0x229>
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
cmpl   $0x7f,-0x2c(%rbp)
jle    1354 <_get_str2int+0x224>
jmp    1359 <_get_str2int+0x229>
jmp    1327 <_get_str2int+0x1f7>
mov    -0x2c(%rbp),%eax
and    $0x3,%eax
cmp    $0x0,%eax
je     1379 <_get_str2int+0x249>
mov    -0x2c(%rbp),%eax
and    $0xfffffffc,%eax
add    $0x4,%eax
mov    %eax,-0x2c(%rbp)
jmp    1382 <_get_str2int+0x252>
mov    -0x2c(%rbp),%eax
add    $0x4,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x2c(%rbp),%ecx
sar    $0x2,%ecx
mov    -0x18(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x10(%rbp),%rax
cmp    -0x20(%rbp),%rax
je     13ac <_get_str2int+0x27c>
mov    -0x18(%rbp),%rax
movl   $0x0,0x4(%rax)
jmp    13b7 <_get_str2int+0x287>
mov    -0x18(%rbp),%rax
movl   $0x1,0x4(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1b6c <_get_str2int+0xa3c>
movsbl -0x21(%rbp),%eax
cmp    $0x5,%eax
jne    1461 <_get_str2int+0x331>
movl   $0x0,-0x2c(%rbp)
mov    -0x20(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x22,%eax
je     1409 <_get_str2int+0x2d9>
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
cmpl   $0x7f,-0x2c(%rbp)
jle    1404 <_get_str2int+0x2d4>
jmp    1409 <_get_str2int+0x2d9>
jmp    13d7 <_get_str2int+0x2a7>
mov    -0x20(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movb   $0x0,(%rax,%rcx,1)
mov    -0x2c(%rbp),%eax
and    $0x3,%eax
cmp    $0x0,%eax
je     1435 <_get_str2int+0x305>
mov    -0x2c(%rbp),%eax
and    $0xfffffffc,%eax
add    $0x4,%eax
mov    %eax,-0x2c(%rbp)
jmp    143e <_get_str2int+0x30e>
mov    -0x2c(%rbp),%eax
add    $0x4,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x2c(%rbp),%ecx
sar    $0x2,%ecx
mov    -0x18(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x18(%rbp),%rax
movl   $0x5,0x4(%rax)
movl   $0x2,-0x4(%rbp)
jmp    1b6c <_get_str2int+0xa3c>
movsbl -0x21(%rbp),%eax
cmp    $0x1,%eax
jne    14f4 <_get_str2int+0x3c4>
jmp    1473 <_get_str2int+0x343>
mov    -0x20(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x0,%eax
je     14d8 <_get_str2int+0x3a8>
mov    -0x20(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x30,%eax
jl     14c7 <_get_str2int+0x397>
mov    -0x20(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x39,%eax
jg     14c7 <_get_str2int+0x397>
imul   $0xa,-0x28(%rbp),%eax
mov    -0x20(%rbp),%rcx
movsbl (%rcx),%ecx
sub    $0x30,%ecx
add    %ecx,%eax
mov    %eax,-0x28(%rbp)
mov    -0x20(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x20(%rbp)
jmp    14d3 <_get_str2int+0x3a3>
movl   $0xffffffff,-0x4(%rbp)
jmp    1b6c <_get_str2int+0xa3c>
jmp    1473 <_get_str2int+0x343>
mov    -0x28(%rbp),%ecx
imul   -0xb4(%rbp),%ecx
mov    -0x18(%rbp),%rax
mov    %ecx,(%rax)
movl   $0x1,-0x4(%rbp)
jmp    1b6c <_get_str2int+0xa3c>
movsbl -0x21(%rbp),%eax
cmp    $0x2,%eax
jne    161e <_get_str2int+0x4ee>
jmp    1506 <_get_str2int+0x3d6>
mov    -0x20(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x0,%eax
je     1609 <_get_str2int+0x4d9>
mov    -0x20(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x30,%eax
jl     155c <_get_str2int+0x42c>
mov    -0x20(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x39,%eax
jg     155c <_get_str2int+0x42c>
mov    -0x28(%rbp),%eax
shl    $0x4,%eax
mov    -0x20(%rbp),%rcx
movsbl (%rcx),%ecx
sub    $0x30,%ecx
add    %ecx,%eax
mov    %eax,-0x28(%rbp)
mov    -0x20(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x20(%rbp)
jmp    1604 <_get_str2int+0x4d4>
mov    -0x20(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x41,%eax
jl     15a5 <_get_str2int+0x475>
mov    -0x20(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x46,%eax
jg     15a5 <_get_str2int+0x475>
mov    -0x28(%rbp),%eax
shl    $0x4,%eax
mov    -0x20(%rbp),%rcx
movsbl (%rcx),%ecx
sub    $0x41,%ecx
add    $0xa,%ecx
add    %ecx,%eax
mov    %eax,-0x28(%rbp)
mov    -0x20(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x20(%rbp)
jmp    15ff <_get_str2int+0x4cf>
mov    -0x20(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x61,%eax
jl     15ee <_get_str2int+0x4be>
mov    -0x20(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x66,%eax
jg     15ee <_get_str2int+0x4be>
mov    -0x28(%rbp),%eax
shl    $0x4,%eax
mov    -0x20(%rbp),%rcx
movsbl (%rcx),%ecx
sub    $0x61,%ecx
add    $0xa,%ecx
add    %ecx,%eax
mov    %eax,-0x28(%rbp)
mov    -0x20(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x20(%rbp)
jmp    15fa <_get_str2int+0x4ca>
movl   $0xffffffff,-0x4(%rbp)
jmp    1b6c <_get_str2int+0xa3c>
jmp    15ff <_get_str2int+0x4cf>
jmp    1604 <_get_str2int+0x4d4>
jmp    1506 <_get_str2int+0x3d6>
mov    -0x28(%rbp),%ecx
mov    -0x18(%rbp),%rax
mov    %ecx,(%rax)
movl   $0x1,-0x4(%rbp)
jmp    1b6c <_get_str2int+0xa3c>
movsbl -0x21(%rbp),%eax
cmp    $0x3,%eax
jne    1b42 <_get_str2int+0xa12>
movl   $0x0,-0xb8(%rbp)
mov    -0x20(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x20(%rbp)
mov    (%rax),%al
mov    %al,-0x22(%rbp)
movsbl -0x22(%rbp),%eax
cmp    $0x6f,%eax
je     1663 <_get_str2int+0x533>
movsbl -0x22(%rbp),%eax
cmp    $0x4f,%eax
jne    16fd <_get_str2int+0x5cd>
mov    -0x20(%rbp),%rax
mov    (%rax),%al
mov    %al,-0x22(%rbp)
movsbl -0x22(%rbp),%eax
cmp    $0x77,%eax
je     1686 <_get_str2int+0x556>
movsbl -0x22(%rbp),%eax
cmp    $0x57,%eax
jne    16f8 <_get_str2int+0x5c8>
mov    -0x20(%rbp),%rax
mov    0x1(%rax),%al
mov    %al,-0x22(%rbp)
movsbl -0x22(%rbp),%eax
cmp    $0x65,%eax
je     16aa <_get_str2int+0x57a>
movsbl -0x22(%rbp),%eax
cmp    $0x45,%eax
jne    16f3 <_get_str2int+0x5c3>
mov    -0x20(%rbp),%rax
mov    0x2(%rax),%al
mov    %al,-0x22(%rbp)
movsbl -0x22(%rbp),%eax
cmp    $0x72,%eax
je     16ce <_get_str2int+0x59e>
movsbl -0x22(%rbp),%eax
cmp    $0x52,%eax
jne    16ee <_get_str2int+0x5be>
mov    -0x18(%rbp),%rax
movl   $0xffff,(%rax)
mov    -0x20(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x20(%rbp)
movl   $0x1,-0xb8(%rbp)
jmp    16f3 <_get_str2int+0x5c3>
jmp    16f8 <_get_str2int+0x5c8>
jmp    16fd <_get_str2int+0x5cd>
cmpl   $0x0,-0xb8(%rbp)
jne    177e <_get_str2int+0x64e>
movsbl -0x22(%rbp),%eax
cmp    $0x41,%eax
jl     1739 <_get_str2int+0x609>
movsbl -0x22(%rbp),%eax
cmp    $0x5a,%eax
jg     1739 <_get_str2int+0x609>
movsbl -0x22(%rbp),%ecx
sub    $0x41,%ecx
add    $0x1,%ecx
mov    -0x18(%rbp),%rax
mov    %ecx,(%rax)
jmp    1779 <_get_str2int+0x649>
movsbl -0x22(%rbp),%eax
cmp    $0x61,%eax
jl     1768 <_get_str2int+0x638>
movsbl -0x22(%rbp),%eax
cmp    $0x7a,%eax
jg     1768 <_get_str2int+0x638>
movsbl -0x22(%rbp),%ecx
sub    $0x61,%ecx
add    $0x1,%ecx
mov    -0x18(%rbp),%rax
mov    %ecx,(%rax)
jmp    1774 <_get_str2int+0x644>
movl   $0xffffffff,-0x4(%rbp)
jmp    1b6c <_get_str2int+0xa3c>
jmp    1779 <_get_str2int+0x649>
jmp    177e <_get_str2int+0x64e>
mov    -0x20(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x20(%rbp)
mov    (%rax),%al
mov    %al,-0x22(%rbp)
movl   $0x0,-0x28(%rbp)
movsbl -0x22(%rbp),%eax
cmp    $0x3c,%eax
je     1818 <_get_str2int+0x6e8>
movsbl -0x22(%rbp),%eax
cmp    $0x30,%eax
jl     17e9 <_get_str2int+0x6b9>
movsbl -0x22(%rbp),%eax
cmp    $0x39,%eax
jg     17e9 <_get_str2int+0x6b9>
imul   $0xa,-0x28(%rbp),%eax
movsbl -0x22(%rbp),%ecx
sub    $0x30,%ecx
add    %ecx,%eax
mov    %eax,-0x28(%rbp)
mov    -0x20(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x20(%rbp)
mov    (%rax),%al
mov    %al,-0x22(%rbp)
jmp    1813 <_get_str2int+0x6e3>
movsbl -0x22(%rbp),%eax
cmp    $0x0,%eax
jne    1807 <_get_str2int+0x6d7>
mov    -0x20(%rbp),%rax
add    $0xffffffffffffffff,%rax
mov    %rax,-0x20(%rbp)
jmp    1818 <_get_str2int+0x6e8>
movl   $0xffffffff,-0x4(%rbp)
jmp    1b6c <_get_str2int+0xa3c>
jmp    1799 <_get_str2int+0x669>
mov    -0x28(%rbp),%ecx
mov    -0x18(%rbp),%rax
mov    %ecx,0x4(%rax)
mov    -0x20(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x20(%rbp)
mov    (%rax),%al
mov    %al,-0x22(%rbp)
movsbl -0x22(%rbp),%eax
cmp    $0x0,%eax
je     1ad5 <_get_str2int+0x9a5>
movl   $0x0,-0x30(%rbp)
lea    -0xb0(%rbp),%rdi
xor    %esi,%esi
mov    $0x80,%edx
call   1040 <memset@plt>
movsbl -0x22(%rbp),%eax
cmp    $0x3e,%eax
je     18be <_get_str2int+0x78e>
movsbl -0x22(%rbp),%eax
cmp    $0x41,%eax
jl     188e <_get_str2int+0x75e>
movsbl -0x22(%rbp),%eax
cmp    $0x5a,%eax
jg     188e <_get_str2int+0x75e>
movsbl -0x22(%rbp),%eax
add    $0x20,%eax
mov    %al,-0x22(%rbp)
mov    -0x22(%rbp),%cl
mov    -0x30(%rbp),%eax
mov    %eax,%edx
add    $0x1,%edx
mov    %edx,-0x30(%rbp)
cltq
mov    %cl,-0xb0(%rbp,%rax,1)
mov    -0x20(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x20(%rbp)
mov    (%rax),%al
mov    %al,-0x22(%rbp)
jmp    185d <_get_str2int+0x72d>
movslq -0x30(%rbp),%rax
movb   $0x0,-0xb0(%rbp,%rax,1)
lea    -0xb0(%rbp),%rdi
lea    0x746(%rip),%rsi
call   1050 <strcmp@plt>
cmp    $0x0,%eax
jne    18fa <_get_str2int+0x7ca>
mov    -0x18(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movl   $0xffffffff,(%rax,%rcx,4)
jmp    1a6a <_get_str2int+0x93a>
lea    -0xb0(%rbp),%rdi
lea    0x71e(%rip),%rsi
call   1050 <strcmp@plt>
cmp    $0x0,%eax
jne    192a <_get_str2int+0x7fa>
mov    -0x18(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movl   $0xffffffff,(%rax,%rcx,4)
jmp    1a65 <_get_str2int+0x935>
lea    -0xb0(%rbp),%rdi
lea    0x6f3(%rip),%rsi
call   1050 <strcmp@plt>
cmp    $0x0,%eax
jne    195a <_get_str2int+0x82a>
mov    -0x18(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movl   $0xffffffff,(%rax,%rcx,4)
jmp    1a60 <_get_str2int+0x930>
lea    -0xb0(%rbp),%rdi
lea    0x6c8(%rip),%rsi
call   1050 <strcmp@plt>
cmp    $0x0,%eax
jne    198a <_get_str2int+0x85a>
mov    -0x18(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movl   $0xffffffff,(%rax,%rcx,4)
jmp    1a5b <_get_str2int+0x92b>
movl   $0x0,-0x30(%rbp)
mov    -0x30(%rbp),%eax
mov    %eax,%ecx
add    $0x1,%ecx
mov    %ecx,-0x30(%rbp)
cltq
mov    -0xb0(%rbp,%rax,1),%al
mov    %al,-0x22(%rbp)
movl   $0x0,-0x28(%rbp)
movsbl -0x22(%rbp),%eax
cmp    $0x2d,%eax
jne    19dd <_get_str2int+0x8ad>
movl   $0xffffffff,-0xb4(%rbp)
ff ff ff
mov    -0x30(%rbp),%eax
mov    %eax,%ecx
add    $0x1,%ecx
mov    %ecx,-0x30(%rbp)
cltq
mov    -0xb0(%rbp,%rax,1),%al
mov    %al,-0x22(%rbp)
jmp    19e2 <_get_str2int+0x8b2>
movsbl -0x22(%rbp),%eax
cmp    $0x0,%eax
je     1a46 <_get_str2int+0x916>
movsbl -0x22(%rbp),%eax
cmp    $0x30,%eax
jl     1a1e <_get_str2int+0x8ee>
movsbl -0x22(%rbp),%eax
cmp    $0x39,%eax
jg     1a1e <_get_str2int+0x8ee>
imul   $0xa,-0x28(%rbp),%eax
movsbl -0x22(%rbp),%ecx
sub    $0x30,%ecx
add    %ecx,%eax
mov    %eax,-0x28(%rbp)
jmp    1a2a <_get_str2int+0x8fa>
movl   $0xffffffff,-0x4(%rbp)
jmp    1b6c <_get_str2int+0xa3c>
mov    -0x30(%rbp),%eax
mov    %eax,%ecx
add    $0x1,%ecx
mov    %ecx,-0x30(%rbp)
cltq
mov    -0xb0(%rbp,%rax,1),%al
mov    %al,-0x22(%rbp)
jmp    19e2 <_get_str2int+0x8b2>
mov    -0x28(%rbp),%edx
imul   -0xb4(%rbp),%edx
mov    -0x18(%rbp),%rax
movslq -0x2c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
jmp    1a60 <_get_str2int+0x930>
jmp    1a65 <_get_str2int+0x935>
jmp    1a6a <_get_str2int+0x93a>
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x20(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x20(%rbp)
mov    (%rax),%al
mov    %al,-0x22(%rbp)
movsbl -0x22(%rbp),%eax
cmp    $0x3c,%eax
jne    1aad <_get_str2int+0x97d>
mov    -0x20(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x20(%rbp)
mov    (%rax),%al
mov    %al,-0x22(%rbp)
jmp    1ad0 <_get_str2int+0x9a0>
movsbl -0x22(%rbp),%eax
cmp    $0x0,%eax
jne    1abf <_get_str2int+0x98f>
jmp    1acb <_get_str2int+0x99b>
movl   $0xffffffff,-0x4(%rbp)
jmp    1b6c <_get_str2int+0xa3c>
jmp    1ad0 <_get_str2int+0x9a0>
jmp    1836 <_get_str2int+0x706>
mov    -0x2c(%rbp),%eax
add    $0xfffffffd,%eax
mov    %eax,%ecx
mov    %rcx,-0xc0(%rbp)
sub    $0x3,%eax
ja     1b2a <_get_str2int+0x9fa>
mov    -0xc0(%rbp),%rax
lea    0x505(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x18(%rbp),%rax
movl   $0xffffffff,0xc(%rax)
mov    -0x18(%rbp),%rax
movl   $0xffffffff,0x10(%rax)
mov    -0x18(%rbp),%rax
movl   $0xffffffff,0x14(%rax)
jmp    1b36 <_get_str2int+0xa06>
movl   $0xffffffff,-0x4(%rbp)
jmp    1b6c <_get_str2int+0xa3c>
movl   $0x4,-0x4(%rbp)
jmp    1b6c <_get_str2int+0xa3c>
movsbl -0x21(%rbp),%eax
cmp    $0x4,%eax
jne    1b65 <_get_str2int+0xa35>
mov    -0x18(%rbp),%rax
movl   $0x1,(%rax)
movl   $0x5,-0x4(%rbp)
jmp    1b6c <_get_str2int+0xa3c>
movl   $0xffffffff,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0xc0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<_get_str2int>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x98,%rsp
mov    %rsi,%r14
mov    %rdi,%rbx
lea    0xed2(%rip),%rsi
mov    $0x5,%edx
call   1030 <strncmp@plt>
test   %eax,%eax
je     11e8 <_get_str2int+0xc8>
lea    0xebf(%rip),%rsi
mov    %rbx,%rdi
mov    $0x7,%edx
call   1030 <strncmp@plt>
test   %eax,%eax
je     1241 <_get_str2int+0x121>
mov    (%rbx),%dl
cmp    $0x22,%dl
je     12a1 <_get_str2int+0x181>
cmp    $0x30,%dl
jne    12f2 <_get_str2int+0x1d2>
mov    0x1(%rbx),%al
or     $0x20,%al
cmp    $0x78,%al
jne    1554 <_get_str2int+0x434>
mov    0x2(%rbx),%cl
test   %cl,%cl
je     15e2 <_get_str2int+0x4c2>
add    $0x3,%rbx
xor    %eax,%eax
jmp    11b9 <_get_str2int+0x99>
movsbl %cl,%ecx
shl    $0x4,%eax
add    %edx,%eax
add    %ecx,%eax
movzbl (%rbx),%ecx
add    $0x1,%rbx
test   %cl,%cl
je     15e4 <_get_str2int+0x4c4>
lea    -0x30(%rcx),%esi
mov    $0xffffffd0,%edx
cmp    $0xa,%sil
jb     11a0 <_get_str2int+0x80>
lea    -0x41(%rcx),%esi
mov    $0xffffffc9,%edx
cmp    $0x6,%sil
jb     11a0 <_get_str2int+0x80>
lea    -0x61(%rcx),%esi
mov    $0xffffffa9,%edx
cmp    $0x5,%sil
jbe    11a0 <_get_str2int+0x80>
jmp    15db <_get_str2int+0x4bb>
mov    0x5(%rbx),%cl
or     $0x20,%cl
mov    %rbx,%rax
cmp    $0x70,%cl
jne    1245 <_get_str2int+0x125>
lea    0x7(%rbx),%r15
mov    0x6(%rbx),%cl
mov    %ecx,%eax
and    $0xdf,%al
cmp    $0x4f,%al
jne    1292 <_get_str2int+0x172>
mov    (%r15),%cl
mov    %ecx,%eax
and    $0xdf,%al
cmp    $0x57,%al
jne    1292 <_get_str2int+0x172>
mov    0x8(%rbx),%cl
mov    %ecx,%eax
and    $0xdf,%al
cmp    $0x45,%al
jne    1292 <_get_str2int+0x172>
mov    0x9(%rbx),%cl
mov    %ecx,%eax
and    $0xdf,%al
cmp    $0x52,%al
jne    1292 <_get_str2int+0x172>
movl   $0xffff,(%r14)
add    $0xa,%rbx
mov    %rbx,%r15
jmp    1320 <_get_str2int+0x200>
lea    0x7(%rbx),%rax
mov    $0x3,%ecx
nopw   0x0(%rax,%rax,1)
cmpb   $0x0,-0x3(%rax,%rcx,1)
je     14f9 <_get_str2int+0x3d9>
cmpb   $0x0,-0x2(%rax,%rcx,1)
je     14ff <_get_str2int+0x3df>
cmpb   $0x0,-0x1(%rax,%rcx,1)
je     1505 <_get_str2int+0x3e5>
cmpb   $0x0,(%rax,%rcx,1)
je     1509 <_get_str2int+0x3e9>
add    $0x4,%rcx
cmp    $0x83,%rcx
jne    1250 <_get_str2int+0x130>
mov    $0x21,%ecx
jmp    150f <_get_str2int+0x3ef>
movsbl %cl,%edx
lea    -0x41(%rdx),%eax
cmp    $0x19,%al
ja     1309 <_get_str2int+0x1e9>
add    $0xffffffc0,%edx
jmp    131d <_get_str2int+0x1fd>
xor    %eax,%eax
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
cmpb   $0x22,0x1(%rbx,%rax,1)
je     1617 <_get_str2int+0x4f7>
cmpb   $0x22,0x2(%rbx,%rax,1)
je     1607 <_get_str2int+0x4e7>
cmpb   $0x22,0x3(%rbx,%rax,1)
je     160d <_get_str2int+0x4ed>
cmpb   $0x22,0x4(%rbx,%rax,1)
je     1613 <_get_str2int+0x4f3>
add    $0x4,%rax
cmp    $0x80,%rax
jne    12b0 <_get_str2int+0x190>
mov    $0x80,%eax
jmp    1617 <_get_str2int+0x4f7>
lea    -0x30(%rdx),%eax
mov    $0x1,%ecx
cmp    $0xa,%al
jae    1531 <_get_str2int+0x411>
mov    %edx,%eax
jmp    155b <_get_str2int+0x43b>
add    $0x9f,%cl
mov    $0xffffffff,%eax
cmp    $0x19,%cl
ja     1634 <_get_str2int+0x514>
add    $0xffffffa0,%edx
mov    %edx,(%r14)
mov    (%r15),%dl
cmp    $0x3c,%dl
jne    1330 <_get_str2int+0x210>
add    $0x1,%r15
xor    %ecx,%ecx
jmp    1372 <_get_str2int+0x252>
lea    -0x30(%rdx),%eax
xor    %ecx,%ecx
cmp    $0x9,%al
ja     1365 <_get_str2int+0x245>
add    $0x2,%r15
xor    %ecx,%ecx
nop
movzbl %dl,%eax
lea    (%rcx,%rcx,4),%ecx
lea    (%rax,%rcx,2),%ecx
add    $0xffffffd0,%ecx
movzbl -0x1(%r15),%edx
cmp    $0x3c,%dl
je     1372 <_get_str2int+0x252>
lea    -0x30(%rdx),%eax
add    $0x1,%r15
cmp    $0x9,%al
jbe    1340 <_get_str2int+0x220>
add    $0xfffffffffffffffe,%r15
mov    $0xffffffff,%eax
test   %dl,%dl
jne    1634 <_get_str2int+0x514>
mov    %ecx,0x4(%r14)
mov    (%r15),%r13b
test   %r13b,%r13b
je     15db <_get_str2int+0x4bb>
add    $0x1,%r15
movl   $0x1,0xc(%rsp)
mov    $0x2,%ebx
lea    0x10(%rsp),%r12
movabs $0x746c7561666564,%rbp
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
mov    %r12,%rdi
xor    %esi,%esi
mov    $0x80,%edx
call   1040 <memset@plt>
xor    %eax,%eax
cmp    $0x3e,%r13b
je     13fb <_get_str2int+0x2db>
nopw   0x0(%rax,%rax,1)
lea    -0x41(%r13),%ecx
lea    0x20(%r13),%edx
cmp    $0x1a,%cl
movzbl %r13b,%ecx
movzbl %dl,%edx
cmovae %ecx,%edx
mov    %dl,0x10(%rsp,%rax,1)
movzbl (%r15,%rax,1),%r13d
add    $0x1,%rax
cmp    $0x3e,%r13b
jne    13d0 <_get_str2int+0x2b0>
add    %rax,%r15
mov    %eax,%eax
movb   $0x0,0x10(%rsp,%rax,1)
mov    0x10(%rsp),%rcx
mov    $0xffffffff,%eax
cmp    %rbp,%rcx
je     14d0 <_get_str2int+0x3b0>
mov    0x10(%rsp),%edx
mov    $0x656e6f6e,%esi
xor    %esi,%edx
movzbl 0x14(%rsp),%esi
or     %edx,%esi
je     14d0 <_get_str2int+0x3b0>
mov    0x10(%rsp),%edx
mov    $0x6c6c756e,%esi
xor    %esi,%edx
movzbl 0x14(%rsp),%esi
or     %edx,%esi
je     14d0 <_get_str2int+0x3b0>
mov    0x10(%rsp),%edx
mov    $0x312d,%esi
xor    %esi,%edx
movzbl 0x12(%rsp),%esi
or     %dx,%si
je     14d0 <_get_str2int+0x3b0>
mov    %rcx,%rax
shr    $0x8,%rax
cmp    $0x2d,%cl
movzbl %al,%eax
movzbl %cl,%edx
cmove  %eax,%edx
mov    0xc(%rsp),%eax
mov    $0xffffffff,%esi
cmove  %esi,%eax
mov    %eax,0xc(%rsp)
xor    %eax,%eax
test   %dl,%dl
je     14c4 <_get_str2int+0x3a4>
cmp    $0x2d,%cl
sete   %al
lea    (%rax,%r12,1),%rcx
add    $0x1,%rcx
xor    %eax,%eax
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
lea    -0x30(%rdx),%esi
cmp    $0x9,%sil
ja     15db <_get_str2int+0x4bb>
movzbl %dl,%edx
lea    (%rax,%rax,4),%eax
lea    (%rdx,%rax,2),%eax
add    $0xffffffd0,%eax
movzbl (%rcx),%edx
add    $0x1,%rcx
test   %dl,%dl
jne    14a0 <_get_str2int+0x380>
imul   0xc(%rsp),%eax
nopl   0x0(%rax)
mov    %eax,(%r14,%rbx,4)
add    $0x1,%rbx
mov    (%r15),%al
cmp    $0x3c,%al
jne    15a0 <_get_str2int+0x480>
mov    0x1(%r15),%r13b
add    $0x2,%r15
test   %r13b,%r13b
jne    13b0 <_get_str2int+0x290>
jmp    15a4 <_get_str2int+0x484>
add    $0xfffffffffffffffd,%rcx
jmp    1509 <_get_str2int+0x3e9>
add    $0xfffffffffffffffe,%rcx
jmp    1509 <_get_str2int+0x3e9>
add    $0xffffffffffffffff,%rcx
add    $0x4,%ecx
sar    $0x2,%ecx
mov    %ecx,(%r14)
cmp    %rbx,%rax
je     1524 <_get_str2int+0x404>
movl   $0x0,0x4(%r14)
jmp    162f <_get_str2int+0x50f>
movl   $0x1,0x4(%r14)
jmp    162f <_get_str2int+0x50f>
mov    0x1(%rbx),%al
lea    -0x30(%rax),%ecx
cmp    $0x9,%cl
ja     15ee <_get_str2int+0x4ce>
cmp    $0x2d,%dl
jne    15ee <_get_str2int+0x4ce>
add    $0x1,%rbx
mov    $0xffffffff,%ecx
jmp    155b <_get_str2int+0x43b>
mov    $0x1,%ecx
mov    $0x30,%al
add    $0x1,%rbx
xor    %edx,%edx
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
lea    -0x30(%rax),%esi
cmp    $0x9,%sil
ja     15db <_get_str2int+0x4bb>
movzbl %al,%eax
lea    (%rdx,%rdx,4),%edx
lea    (%rax,%rdx,2),%edx
add    $0xffffffd0,%edx
movzbl (%rbx),%eax
add    $0x1,%rbx
test   %al,%al
jne    1570 <_get_str2int+0x450>
imul   %ecx,%edx
mov    %edx,(%r14)
mov    $0x1,%eax
jmp    1634 <_get_str2int+0x514>
test   %al,%al
jne    15db <_get_str2int+0x4bb>
add    $0xfffffffd,%ebx
cmp    $0x3,%ebx
ja     15db <_get_str2int+0x4bb>
lea    0xa4d(%rip),%rax
movslq (%rax,%rbx,4),%rcx
add    %rax,%rcx
jmp    *%rcx
movl   $0xffffffff,0xc(%r14)
ff
movl   $0xffffffff,0x10(%r14)
ff
movl   $0xffffffff,0x14(%r14)
ff
mov    $0x4,%eax
jmp    1634 <_get_str2int+0x514>
mov    $0xffffffff,%eax
jmp    1634 <_get_str2int+0x514>
xor    %eax,%eax
mov    %eax,(%r14)
mov    $0x1,%eax
jmp    1634 <_get_str2int+0x514>
mov    %rbx,%rax
test   %dl,%dl
jne    1245 <_get_str2int+0x125>
movl   $0x1,(%r14)
mov    $0x5,%eax
jmp    1634 <_get_str2int+0x514>
add    $0x1,%rax
jmp    1617 <_get_str2int+0x4f7>
add    $0x2,%rax
jmp    1617 <_get_str2int+0x4f7>
add    $0x3,%rax
cltq
movb   $0x0,0x1(%rbx,%rax,1)
add    $0x4,%eax
sar    $0x2,%eax
mov    %eax,(%r14)
movl   $0x5,0x4(%r14)
mov    $0x2,%eax
add    $0x98,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@.str = [6 x i8] c"port:\00"
@.str.1 = [8 x i8] c"string:\00"
@.str.2 = [8 x i8] c"default\00"
@.str.3 = [5 x i8] c"none\00"
@.str.4 = [5 x i8] c"null\00"
@.str.5 = [3 x i8] c"-1\00"
define i32 @_get_str2int(i8* %0, i32* %1) {
%3 = alloca i32
%4 = alloca i8*
%5 = alloca i32*
%6 = alloca i8*
%7 = alloca i8
%8 = alloca i8
%9 = alloca i32
%10 = alloca i32
%11 = alloca i32
%12 = alloca [128 x i8]
%13 = alloca i32
%14 = alloca i32
store i8* %0, i8** %4
store i32* %1, i32** %5
store i32 0, i32* %9
store i32 1, i32* %13
store i32 2, i32* %10
%15 = load i8*, i8** %4
store i8* %15, i8** %6
store i8 0, i8* %7
%16 = load i8*, i8** %6
%17 = call i32 @strncmp(i8* %16, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i64 0, i64 0), i32 5)
%18 = icmp ne i32 %17, 0
br i1 %18, label %35, label %19
19: ; preds = %2
%20 = load i8*, i8** %6
%21 = getelementptr inbounds i8, i8* %20, i64 5
%22 = load i8, i8* %21
%23 = sext i8 %22 to i32
%24 = icmp eq i32 %23, 80
br i1 %24, label %31, label %25
25: ; preds = %19
%26 = load i8*, i8** %6
%27 = getelementptr inbounds i8, i8* %26, i64 5
%28 = load i8, i8* %27
%29 = sext i8 %28 to i32
%30 = icmp eq i32 %29, 112
br i1 %30, label %31, label %34
31: ; preds = %25, %19
store i8 3, i8* %7
%32 = load i8*, i8** %6
%33 = getelementptr inbounds i8, i8* %32, i64 6
store i8* %33, i8** %6
br label %34
34: ; preds = %31, %25
br label %121
35: ; preds = %2
%36 = load i8*, i8** %6
%37 = call i32 @strncmp(i8* %36, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.1, i64 0, i64 0), i32 7)
%38 = icmp ne i32 %37, 0
br i1 %38, label %42, label %39
39: ; preds = %35
store i8 0, i8* %7
%40 = load i8*, i8** %6
%41 = getelementptr inbounds i8, i8* %40, i64 7
store i8* %41, i8** %6
br label %120
42: ; preds = %35
%43 = load i8*, i8** %6
%44 = getelementptr inbounds i8, i8* %43, i64 0
%45 = load i8, i8* %44
%46 = sext i8 %45 to i32
%47 = icmp eq i32 %46, 34
br i1 %47, label %48, label %51
48: ; preds = %42
store i8 5, i8* %7
%49 = load i8*, i8** %6
%50 = getelementptr inbounds i8, i8* %49, i64 1
store i8* %50, i8** %6
br label %119
51: ; preds = %42
%52 = load i8*, i8** %6
%53 = getelementptr inbounds i8, i8* %52, i64 0
%54 = load i8, i8* %53
%55 = sext i8 %54 to i32
%56 = icmp eq i32 %55, 48
br i1 %56, label %57, label %72
57: ; preds = %51
%58 = load i8*, i8** %6
%59 = getelementptr inbounds i8, i8* %58, i64 1
%60 = load i8, i8* %59
%61 = sext i8 %60 to i32
%62 = icmp eq i32 %61, 120
br i1 %62, label %69, label %63
63: ; preds = %57
%64 = load i8*, i8** %6
%65 = getelementptr inbounds i8, i8* %64, i64 1
%66 = load i8, i8* %65
%67 = sext i8 %66 to i32
%68 = icmp eq i32 %67, 88
br i1 %68, label %69, label %72
69: ; preds = %63, %57
%70 = load i8*, i8** %6
%71 = getelementptr inbounds i8, i8* %70, i64 2
store i8* %71, i8** %6
store i8 2, i8* %7
br label %118
72: ; preds = %63, %51
%73 = load i8*, i8** %6
%74 = getelementptr inbounds i8, i8* %73, i64 0
%75 = load i8, i8* %74
%76 = sext i8 %75 to i32
%77 = icmp sge i32 %76, 48
br i1 %77, label %78, label %85
78: ; preds = %72
%79 = load i8*, i8** %6
%80 = getelementptr inbounds i8, i8* %79, i64 0
%81 = load i8, i8* %80
%82 = sext i8 %81 to i32
%83 = icmp sle i32 %82, 57
br i1 %83, label %84, label %85
84: ; preds = %78
store i8 1, i8* %7
br label %117
85: ; preds = %78, %72
%86 = load i8*, i8** %6
%87 = getelementptr inbounds i8, i8* %86, i64 1
%88 = load i8, i8* %87
%89 = sext i8 %88 to i32
%90 = icmp sge i32 %89, 48
br i1 %90, label %91, label %106
91: ; preds = %85
%92 = load i8*, i8** %6
%93 = getelementptr inbounds i8, i8* %92, i64 1
%94 = load i8, i8* %93
%95 = sext i8 %94 to i32
%96 = icmp sle i32 %95, 57
br i1 %96, label %97, label %106
97: ; preds = %91
%98 = load i8*, i8** %6
%99 = getelementptr inbounds i8, i8* %98, i64 0
%100 = load i8, i8* %99
%101 = sext i8 %100 to i32
%102 = icmp eq i32 %101, 45
br i1 %102, label %103, label %106
103: ; preds = %97
%104 = load i8*, i8** %6
%105 = getelementptr inbounds i8, i8* %104, i32 1
store i8* %105, i8** %6
store i8 1, i8* %7
store i32 -1, i32* %13
br label %116
106: ; preds = %97, %91, %85
%107 = load i8*, i8** %6
%108 = getelementptr inbounds i8, i8* %107, i64 0
%109 = load i8, i8* %108
%110 = sext i8 %109 to i32
%111 = icmp eq i32 %110, 0
br i1 %111, label %112, label %115
112: ; preds = %106
%113 = load i8*, i8** %6
%114 = getelementptr inbounds i8, i8* %113, i32 1
store i8* %114, i8** %6
store i8 4, i8* %7
br label %115
115: ; preds = %112, %106
br label %116
116: ; preds = %115, %103
br label %117
117: ; preds = %116, %84
br label %118
118: ; preds = %117, %69
br label %119
119: ; preds = %118, %48
br label %120
120: ; preds = %119, %39
br label %121
121: ; preds = %120, %34
%122 = load i8, i8* %7
%123 = sext i8 %122 to i32
%124 = icmp eq i32 %123, 0
br i1 %124, label %125, label %167
125: ; preds = %121
store i32 0, i32* %10
br label %126
126: ; preds = %140, %125
%127 = load i8*, i8** %6
%128 = load i32, i32* %10
%129 = sext i32 %128 to i64
%130 = getelementptr inbounds i8, i8* %127, i64 %129
%131 = load i8, i8* %130
%132 = sext i8 %131 to i32
%133 = icmp ne i32 %132, 0
br i1 %133, label %134, label %141
134: ; preds = %126
%135 = load i32, i32* %10
%136 = add nsw i32 %135, 1
store i32 %136, i32* %10
%137 = load i32, i32* %10
%138 = icmp sgt i32 %137, 127
br i1 %138, label %139, label %140
139: ; preds = %134
br label %141
140: ; preds = %134
br label %126
141: ; preds = %139, %126
%142 = load i32, i32* %10
%143 = and i32 %142, 3
%144 = icmp ne i32 %143, 0
br i1 %144, label %145, label %149
145: ; preds = %141
%146 = load i32, i32* %10
%147 = and i32 %146, -4
%148 = add nsw i32 %147, 4
store i32 %148, i32* %10
br label %152
149: ; preds = %141
%150 = load i32, i32* %10
%151 = add nsw i32 %150, 4
store i32 %151, i32* %10
br label %152
152: ; preds = %149, %145
%153 = load i32, i32* %10
%154 = ashr i32 %153, 2
%155 = load i32*, i32** %5
%156 = getelementptr inbounds i32, i32* %155, i64 0
store i32 %154, i32* %156
%157 = load i8*, i8** %4
%158 = load i8*, i8** %6
%159 = icmp ne i8* %157, %158
br i1 %159, label %160, label %163
160: ; preds = %152
%161 = load i32*, i32** %5
%162 = getelementptr inbounds i32, i32* %161, i64 1
store i32 0, i32* %162
br label %166
163: ; preds = %152
%164 = load i32*, i32** %5
%165 = getelementptr inbounds i32, i32* %164, i64 1
store i32 1, i32* %165
br label %166
166: ; preds = %163, %160
store i32 2, i32* %3
br label %629
167: ; preds = %121
%168 = load i8, i8* %7
%169 = sext i8 %168 to i32
%170 = icmp eq i32 %169, 5
br i1 %170, label %171, label %209
171: ; preds = %167
store i32 0, i32* %10
br label %172
172: ; preds = %186, %171
%173 = load i8*, i8** %6
%174 = load i32, i32* %10
%175 = sext i32 %174 to i64
%176 = getelementptr inbounds i8, i8* %173, i64 %175
%177 = load i8, i8* %176
%178 = sext i8 %177 to i32
%179 = icmp ne i32 %178, 34
br i1 %179, label %180, label %187
180: ; preds = %172
%181 = load i32, i32* %10
%182 = add nsw i32 %181, 1
store i32 %182, i32* %10
%183 = load i32, i32* %10
%184 = icmp sgt i32 %183, 127
br i1 %184, label %185, label %186
185: ; preds = %180
br label %187
186: ; preds = %180
br label %172
187: ; preds = %185, %172
%188 = load i8*, i8** %6
%189 = load i32, i32* %10
%190 = sext i32 %189 to i64
%191 = getelementptr inbounds i8, i8* %188, i64 %190
store i8 0, i8* %191
%192 = load i32, i32* %10
%193 = and i32 %192, 3
%194 = icmp ne i32 %193, 0
br i1 %194, label %195, label %199
195: ; preds = %187
%196 = load i32, i32* %10
%197 = and i32 %196, -4
%198 = add nsw i32 %197, 4
store i32 %198, i32* %10
br label %202
199: ; preds = %187
%200 = load i32, i32* %10
%201 = add nsw i32 %200, 4
store i32 %201, i32* %10
br label %202
202: ; preds = %199, %195
%203 = load i32, i32* %10
%204 = ashr i32 %203, 2
%205 = load i32*, i32** %5
%206 = getelementptr inbounds i32, i32* %205, i64 0
store i32 %204, i32* %206
%207 = load i32*, i32** %5
%208 = getelementptr inbounds i32, i32* %207, i64 1
store i32 5, i32* %208
store i32 2, i32* %3
br label %629
209: ; preds = %167
%210 = load i8, i8* %7
%211 = sext i8 %210 to i32
%212 = icmp eq i32 %211, 1
br i1 %212, label %213, label %247
213: ; preds = %209
br label %214
214: ; preds = %240, %213
%215 = load i8*, i8** %6
%216 = load i8, i8* %215
%217 = sext i8 %216 to i32
%218 = icmp ne i32 %217, 0
br i1 %218, label %219, label %241
219: ; preds = %214
%220 = load i8*, i8** %6
%221 = load i8, i8* %220
%222 = sext i8 %221 to i32
%223 = icmp sge i32 %222, 48
br i1 %223, label %224, label %239
224: ; preds = %219
%225 = load i8*, i8** %6
%226 = load i8, i8* %225
%227 = sext i8 %226 to i32
%228 = icmp sle i32 %227, 57
br i1 %228, label %229, label %239
229: ; preds = %224
%230 = load i32, i32* %9
%231 = mul i32 %230, 10
%232 = load i8*, i8** %6
%233 = load i8, i8* %232
%234 = sext i8 %233 to i32
%235 = sub nsw i32 %234, 48
%236 = add i32 %231, %235
store i32 %236, i32* %9
%237 = load i8*, i8** %6
%238 = getelementptr inbounds i8, i8* %237, i32 1
store i8* %238, i8** %6
br label %240
239: ; preds = %224, %219
store i32 -1, i32* %3
br label %629
240: ; preds = %229
br label %214
241: ; preds = %214
%242 = load i32, i32* %9
%243 = load i32, i32* %13
%244 = mul i32 %242, %243
%245 = load i32*, i32** %5
%246 = getelementptr inbounds i32, i32* %245, i64 0
store i32 %244, i32* %246
store i32 1, i32* %3
br label %629
247: ; preds = %209
%248 = load i8, i8* %7
%249 = sext i8 %248 to i32
%250 = icmp eq i32 %249, 2
br i1 %250, label %251, label %327
251: ; preds = %247
br label %252
252: ; preds = %322, %251
%253 = load i8*, i8** %6
%254 = load i8, i8* %253
%255 = sext i8 %254 to i32
%256 = icmp ne i32 %255, 0
br i1 %256, label %257, label %323
257: ; preds = %252
%258 = load i8*, i8** %6
%259 = load i8, i8* %258
%260 = sext i8 %259 to i32
%261 = icmp sge i32 %260, 48
br i1 %261, label %262, label %277
262: ; preds = %257
%263 = load i8*, i8** %6
%264 = load i8, i8* %263
%265 = sext i8 %264 to i32
%266 = icmp sle i32 %265, 57
br i1 %266, label %267, label %277
267: ; preds = %262
%268 = load i32, i32* %9
%269 = mul i32 %268, 16
%270 = load i8*, i8** %6
%271 = load i8, i8* %270
%272 = sext i8 %271 to i32
%273 = sub nsw i32 %272, 48
%274 = add i32 %269, %273
store i32 %274, i32* %9
%275 = load i8*, i8** %6
%276 = getelementptr inbounds i8, i8* %275, i32 1
store i8* %276, i8** %6
br label %322
277: ; preds = %262, %257
%278 = load i8*, i8** %6
%279 = load i8, i8* %278
%280 = sext i8 %279 to i32
%281 = icmp sge i32 %280, 65
br i1 %281, label %282, label %298
282: ; preds = %277
%283 = load i8*, i8** %6
%284 = load i8, i8* %283
%285 = sext i8 %284 to i32
%286 = icmp sle i32 %285, 70
br i1 %286, label %287, label %298
287: ; preds = %282
%288 = load i32, i32* %9
%289 = mul i32 %288, 16
%290 = load i8*, i8** %6
%291 = load i8, i8* %290
%292 = sext i8 %291 to i32
%293 = sub nsw i32 %292, 65
%294 = add nsw i32 %293, 10
%295 = add i32 %289, %294
store i32 %295, i32* %9
%296 = load i8*, i8** %6
%297 = getelementptr inbounds i8, i8* %296, i32 1
store i8* %297, i8** %6
br label %321
298: ; preds = %282, %277
%299 = load i8*, i8** %6
%300 = load i8, i8* %299
%301 = sext i8 %300 to i32
%302 = icmp sge i32 %301, 97
br i1 %302, label %303, label %319
303: ; preds = %298
%304 = load i8*, i8** %6
%305 = load i8, i8* %304
%306 = sext i8 %305 to i32
%307 = icmp sle i32 %306, 102
br i1 %307, label %308, label %319
308: ; preds = %303
%309 = load i32, i32* %9
%310 = mul i32 %309, 16
%311 = load i8*, i8** %6
%312 = load i8, i8* %311
%313 = sext i8 %312 to i32
%314 = sub nsw i32 %313, 97
%315 = add nsw i32 %314, 10
%316 = add i32 %310, %315
store i32 %316, i32* %9
%317 = load i8*, i8** %6
%318 = getelementptr inbounds i8, i8* %317, i32 1
store i8* %318, i8** %6
br label %320
319: ; preds = %303, %298
store i32 -1, i32* %3
br label %629
320: ; preds = %308
br label %321
321: ; preds = %320, %287
br label %322
322: ; preds = %321, %267
br label %252
323: ; preds = %252
%324 = load i32, i32* %9
%325 = load i32*, i32** %5
%326 = getelementptr inbounds i32, i32* %325, i64 0
store i32 %324, i32* %326
store i32 1, i32* %3
br label %629
327: ; preds = %247
%328 = load i8, i8* %7
%329 = sext i8 %328 to i32
%330 = icmp eq i32 %329, 3
br i1 %330, label %331, label %621
331: ; preds = %327
store i32 0, i32* %14
%332 = load i8*, i8** %6
%333 = getelementptr inbounds i8, i8* %332, i32 1
store i8* %333, i8** %6
%334 = load i8, i8* %332
store i8 %334, i8* %8
%335 = load i8, i8* %8
%336 = sext i8 %335 to i32
%337 = icmp eq i32 %336, 111
br i1 %337, label %342, label %338
338: ; preds = %331
%339 = load i8, i8* %8
%340 = sext i8 %339 to i32
%341 = icmp eq i32 %340, 79
br i1 %341, label %342, label %383
342: ; preds = %338, %331
%343 = load i8*, i8** %6
%344 = getelementptr inbounds i8, i8* %343, i64 0
%345 = load i8, i8* %344
store i8 %345, i8* %8
%346 = load i8, i8* %8
%347 = sext i8 %346 to i32
%348 = icmp eq i32 %347, 119
br i1 %348, label %353, label %349
349: ; preds = %342
%350 = load i8, i8* %8
%351 = sext i8 %350 to i32
%352 = icmp eq i32 %351, 87
br i1 %352, label %353, label %382
353: ; preds = %349, %342
%354 = load i8*, i8** %6
%355 = getelementptr inbounds i8, i8* %354, i64 1
%356 = load i8, i8* %355
store i8 %356, i8* %8
%357 = load i8, i8* %8
%358 = sext i8 %357 to i32
%359 = icmp eq i32 %358, 101
br i1 %359, label %364, label %360
360: ; preds = %353
%361 = load i8, i8* %8
%362 = sext i8 %361 to i32
%363 = icmp eq i32 %362, 69
br i1 %363, label %364, label %381
364: ; preds = %360, %353
%365 = load i8*, i8** %6
%366 = getelementptr inbounds i8, i8* %365, i64 2
%367 = load i8, i8* %366
store i8 %367, i8* %8
%368 = load i8, i8* %8
%369 = sext i8 %368 to i32
%370 = icmp eq i32 %369, 114
br i1 %370, label %375, label %371
371: ; preds = %364
%372 = load i8, i8* %8
%373 = sext i8 %372 to i32
%374 = icmp eq i32 %373, 82
br i1 %374, label %375, label %380
375: ; preds = %371, %364
%376 = load i32*, i32** %5
%377 = getelementptr inbounds i32, i32* %376, i64 0
store i32 65535, i32* %377
%378 = load i8*, i8** %6
%379 = getelementptr inbounds i8, i8* %378, i64 3
store i8* %379, i8** %6
store i32 1, i32* %14
br label %380
380: ; preds = %375, %371
br label %381
381: ; preds = %380, %360
br label %382
382: ; preds = %381, %349
br label %383
383: ; preds = %382, %338
%384 = load i32, i32* %14
%385 = icmp ne i32 %384, 0
br i1 %385, label %419, label %386
386: ; preds = %383
%387 = load i8, i8* %8
%388 = sext i8 %387 to i32
%389 = icmp sge i32 %388, 65
br i1 %389, label %390, label %401
390: ; preds = %386
%391 = load i8, i8* %8
%392 = sext i8 %391 to i32
%393 = icmp sle i32 %392, 90
br i1 %393, label %394, label %401
394: ; preds = %390
%395 = load i8, i8* %8
%396 = sext i8 %395 to i32
%397 = sub nsw i32 %396, 65
%398 = add nsw i32 %397, 1
%399 = load i32*, i32** %5
%400 = getelementptr inbounds i32, i32* %399, i64 0
store i32 %398, i32* %400
br label %418
401: ; preds = %390, %386
%402 = load i8, i8* %8
%403 = sext i8 %402 to i32
%404 = icmp sge i32 %403, 97
br i1 %404, label %405, label %416
405: ; preds = %401
%406 = load i8, i8* %8
%407 = sext i8 %406 to i32
%408 = icmp sle i32 %407, 122
br i1 %408, label %409, label %416
409: ; preds = %405
%410 = load i8, i8* %8
%411 = sext i8 %410 to i32
%412 = sub nsw i32 %411, 97
%413 = add nsw i32 %412, 1
%414 = load i32*, i32** %5
%415 = getelementptr inbounds i32, i32* %414, i64 0
store i32 %413, i32* %415
br label %417
416: ; preds = %405, %401
store i32 -1, i32* %3
br label %629
417: ; preds = %409
br label %418
418: ; preds = %417, %394
br label %419
419: ; preds = %418, %383
%420 = load i8*, i8** %6
%421 = getelementptr inbounds i8, i8* %420, i32 1
store i8* %421, i8** %6
%422 = load i8, i8* %420
store i8 %422, i8* %8
store i32 0, i32* %9
br label %423
423: ; preds = %453, %419
%424 = load i8, i8* %8
%425 = sext i8 %424 to i32
%426 = icmp ne i32 %425, 60
br i1 %426, label %427, label %454
427: ; preds = %423
%428 = load i8, i8* %8
%429 = sext i8 %428 to i32
%430 = icmp sge i32 %429, 48
br i1 %430, label %431, label %445
431: ; preds = %427
%432 = load i8, i8* %8
%433 = sext i8 %432 to i32
%434 = icmp sle i32 %433, 57
br i1 %434, label %435, label %445
435: ; preds = %431
%436 = load i32, i32* %9
%437 = mul i32 %436, 10
%438 = load i8, i8* %8
%439 = sext i8 %438 to i32
%440 = sub nsw i32 %439, 48
%441 = add i32 %437, %440
store i32 %441, i32* %9
%442 = load i8*, i8** %6
%443 = getelementptr inbounds i8, i8* %442, i32 1
store i8* %443, i8** %6
%444 = load i8, i8* %442
store i8 %444, i8* %8
br label %453
445: ; preds = %431, %427
%446 = load i8, i8* %8
%447 = sext i8 %446 to i32
%448 = icmp eq i32 %447, 0
br i1 %448, label %449, label %452
449: ; preds = %445
%450 = load i8*, i8** %6
%451 = getelementptr inbounds i8, i8* %450, i32 -1
store i8* %451, i8** %6
br label %454
452: ; preds = %445
store i32 -1, i32* %3
br label %629
453: ; preds = %435
br label %423
454: ; preds = %449, %423
%455 = load i32, i32* %9
%456 = load i32*, i32** %5
%457 = getelementptr inbounds i32, i32* %456, i64 1
store i32 %455, i32* %457
%458 = load i8*, i8** %6
%459 = getelementptr inbounds i8, i8* %458, i32 1
store i8* %459, i8** %6
%460 = load i8, i8* %458
store i8 %460, i8* %8
br label %461
461: ; preds = %606, %454
%462 = load i8, i8* %8
%463 = sext i8 %462 to i32
%464 = icmp ne i32 %463, 0
br i1 %464, label %465, label %607
465: ; preds = %461
store i32 0, i32* %11
%466 = getelementptr inbounds [128 x i8], [128 x i8]* %12, i64 0, i64 0
%467 = call i32 @memset(i8* %466, i32 0, i32 128)
br label %468
468: ; preds = %485, %465
%469 = load i8, i8* %8
%470 = sext i8 %469 to i32
%471 = icmp ne i32 %470, 62
br i1 %471, label %472, label %494
472: ; preds = %468
%473 = load i8, i8* %8
%474 = sext i8 %473 to i32
%475 = icmp sge i32 %474, 65
br i1 %475, label %476, label %485
476: ; preds = %472
%477 = load i8, i8* %8
%478 = sext i8 %477 to i32
%479 = icmp sle i32 %478, 90
br i1 %479, label %480, label %485
480: ; preds = %476
%481 = load i8, i8* %8
%482 = sext i8 %481 to i32
%483 = add nsw i32 %482, 32
%484 = trunc i32 %483 to i8
store i8 %484, i8* %8
br label %485
485: ; preds = %480, %476, %472
%486 = load i8, i8* %8
%487 = load i32, i32* %11
%488 = add nsw i32 %487, 1
store i32 %488, i32* %11
%489 = sext i32 %487 to i64
%490 = getelementptr inbounds [128 x i8], [128 x i8]* %12, i64 0, i64 %489
store i8 %486, i8* %490
%491 = load i8*, i8** %6
%492 = getelementptr inbounds i8, i8* %491, i32 1
store i8* %492, i8** %6
%493 = load i8, i8* %491
store i8 %493, i8* %8
br label %468
494: ; preds = %468
%495 = load i32, i32* %11
%496 = sext i32 %495 to i64
%497 = getelementptr inbounds [128 x i8], [128 x i8]* %12, i64 0, i64 %496
store i8 0, i8* %497
%498 = getelementptr inbounds [128 x i8], [128 x i8]* %12, i64 0, i64 0
%499 = call i32 @strcmp(i8* %498, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.2, i64 0, i64 0))
%500 = icmp ne i32 %499, 0
br i1 %500, label %506, label %501
501: ; preds = %494
%502 = load i32*, i32** %5
%503 = load i32, i32* %10
%504 = sext i32 %503 to i64
%505 = getelementptr inbounds i32, i32* %502, i64 %504
store i32 -1, i32* %505
br label %586
506: ; preds = %494
%507 = getelementptr inbounds [128 x i8], [128 x i8]* %12, i64 0, i64 0
%508 = call i32 @strcmp(i8* %507, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.3, i64 0, i64 0))
%509 = icmp ne i32 %508, 0
br i1 %509, label %515, label %510
510: ; preds = %506
%511 = load i32*, i32** %5
%512 = load i32, i32* %10
%513 = sext i32 %512 to i64
%514 = getelementptr inbounds i32, i32* %511, i64 %513
store i32 -1, i32* %514
br label %585
515: ; preds = %506
%516 = getelementptr inbounds [128 x i8], [128 x i8]* %12, i64 0, i64 0
%517 = call i32 @strcmp(i8* %516, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.4, i64 0, i64 0))
%518 = icmp ne i32 %517, 0
br i1 %518, label %524, label %519
519: ; preds = %515
%520 = load i32*, i32** %5
%521 = load i32, i32* %10
%522 = sext i32 %521 to i64
%523 = getelementptr inbounds i32, i32* %520, i64 %522
store i32 -1, i32* %523
br label %584
524: ; preds = %515
%525 = getelementptr inbounds [128 x i8], [128 x i8]* %12, i64 0, i64 0
%526 = call i32 @strcmp(i8* %525, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.5, i64 0, i64 0))
%527 = icmp ne i32 %526, 0
br i1 %527, label %533, label %528
528: ; preds = %524
%529 = load i32*, i32** %5
%530 = load i32, i32* %10
%531 = sext i32 %530 to i64
%532 = getelementptr inbounds i32, i32* %529, i64 %531
store i32 -1, i32* %532
br label %583
533: ; preds = %524
store i32 0, i32* %11
%534 = load i32, i32* %11
%535 = add nsw i32 %534, 1
store i32 %535, i32* %11
%536 = sext i32 %534 to i64
%537 = getelementptr inbounds [128 x i8], [128 x i8]* %12, i64 0, i64 %536
%538 = load i8, i8* %537
store i8 %538, i8* %8
store i32 0, i32* %9
%539 = load i8, i8* %8
%540 = sext i8 %539 to i32
%541 = icmp eq i32 %540, 45
br i1 %541, label %542, label %548
542: ; preds = %533
store i32 -1, i32* %13
%543 = load i32, i32* %11
%544 = add nsw i32 %543, 1
store i32 %544, i32* %11
%545 = sext i32 %543 to i64
%546 = getelementptr inbounds [128 x i8], [128 x i8]* %12, i64 0, i64 %545
%547 = load i8, i8* %546
store i8 %547, i8* %8
br label %548
548: ; preds = %542, %533
br label %549
549: ; preds = %569, %548
%550 = load i8, i8* %8
%551 = sext i8 %550 to i32
%552 = icmp ne i32 %551, 0
br i1 %552, label %553, label %575
553: ; preds = %549
%554 = load i8, i8* %8
%555 = sext i8 %554 to i32
%556 = icmp sge i32 %555, 48
br i1 %556, label %557, label %568
557: ; preds = %553
%558 = load i8, i8* %8
%559 = sext i8 %558 to i32
%560 = icmp sle i32 %559, 57
br i1 %560, label %561, label %568
561: ; preds = %557
%562 = load i32, i32* %9
%563 = mul i32 %562, 10
%564 = load i8, i8* %8
%565 = sext i8 %564 to i32
%566 = sub nsw i32 %565, 48
%567 = add i32 %563, %566
store i32 %567, i32* %9
br label %569
568: ; preds = %557, %553
store i32 -1, i32* %3
br label %629
569: ; preds = %561
%570 = load i32, i32* %11
%571 = add nsw i32 %570, 1
store i32 %571, i32* %11
%572 = sext i32 %570 to i64
%573 = getelementptr inbounds [128 x i8], [128 x i8]* %12, i64 0, i64 %572
%574 = load i8, i8* %573
store i8 %574, i8* %8
br label %549
575: ; preds = %549
%576 = load i32, i32* %9
%577 = load i32, i32* %13
%578 = mul i32 %576, %577
%579 = load i32*, i32** %5
%580 = load i32, i32* %10
%581 = sext i32 %580 to i64
%582 = getelementptr inbounds i32, i32* %579, i64 %581
store i32 %578, i32* %582
br label %583
583: ; preds = %575, %528
br label %584
584: ; preds = %583, %519
br label %585
585: ; preds = %584, %510
br label %586
586: ; preds = %585, %501
%587 = load i32, i32* %10
%588 = add nsw i32 %587, 1
store i32 %588, i32* %10
%589 = load i8*, i8** %6
%590 = getelementptr inbounds i8, i8* %589, i32 1
store i8* %590, i8** %6
%591 = load i8, i8* %589
store i8 %591, i8* %8
%592 = load i8, i8* %8
%593 = sext i8 %592 to i32
%594 = icmp eq i32 %593, 60
br i1 %594, label %595, label %599
595: ; preds = %586
%596 = load i8*, i8** %6
%597 = getelementptr inbounds i8, i8* %596, i32 1
store i8* %597, i8** %6
%598 = load i8, i8* %596
store i8 %598, i8* %8
br label %606
599: ; preds = %586
%600 = load i8, i8* %8
%601 = sext i8 %600 to i32
%602 = icmp eq i32 %601, 0
br i1 %602, label %603, label %604
603: ; preds = %599
br label %605
604: ; preds = %599
store i32 -1, i32* %3
br label %629
605: ; preds = %603
br label %606
606: ; preds = %605, %595
br label %461
607: ; preds = %461
%608 = load i32, i32* %10
switch i32 %608, label %619 [
i32 3, label %609
i32 4, label %612
i32 5, label %615
i32 6, label %618
]
609: ; preds = %607
%610 = load i32*, i32** %5
%611 = getelementptr inbounds i32, i32* %610, i64 3
store i32 -1, i32* %611
br label %612
612: ; preds = %607, %609
%613 = load i32*, i32** %5
%614 = getelementptr inbounds i32, i32* %613, i64 4
store i32 -1, i32* %614
br label %615
615: ; preds = %607, %612
%616 = load i32*, i32** %5
%617 = getelementptr inbounds i32, i32* %616, i64 5
store i32 -1, i32* %617
br label %618
618: ; preds = %607, %615
br label %620
619: ; preds = %607
store i32 -1, i32* %3
br label %629
620: ; preds = %618
store i32 4, i32* %3
br label %629
621: ; preds = %327
%622 = load i8, i8* %7
%623 = sext i8 %622 to i32
%624 = icmp eq i32 %623, 4
br i1 %624, label %625, label %628
625: ; preds = %621
%626 = load i32*, i32** %5
%627 = getelementptr inbounds i32, i32* %626, i64 0
store i32 1, i32* %627
store i32 5, i32* %3
br label %629
628: ; preds = %621
store i32 -1, i32* %3
br label %629
629: ; preds = %628, %625, %620, %619, %604, %568, %452, %416, %323, %319, %241, %239, %202, %166
%630 = load i32, i32* %3
ret i32 %630
}

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