int get_global_flags_old(unsigned long *cflags, unsigned long *notcflags,
                         unsigned long *sflags, unsigned long *notsflags,
                         unsigned long *czflags, unsigned long *notczflags,
                         unsigned char *scanmode, int tokc, char **tokv) {
  int k, flag;
  char *sp;
  char errmsg[128];
  char tbuf[32];
  *sflags = *notsflags = *scanmode = 0;
  for (k = 0; k < 1; k++) {
    cflags[k] = 0;
    notcflags[k] = 0;
  }
  for (k = 0; k < 1; k++) {
    czflags[k] = 0;
    notczflags[k] = 0;
  }
  for (k = 1; k < tokc; k++) {
    strncpy2(tbuf, tokv[k], (sizeof(tbuf)));
    strlower(tbuf);
    if (strncmp("flag", tbuf, 4) == 0) {
      flag = (int)strtol(tbuf + 4, &sp, 10);
      if (!strchr(" /t/n", *sp) || flag < 1 || flag > (32 * 1)) {
        sprintf(errmsg, "Invalid flag launch parameter '%s'", tokv[k]);
        store_error_message(errmsg);
        return -1;
      }
      cflags[(flag - 1) / 32] |= 1UL << ((flag - 1) % 32);
      *tokv[k] = '\0';
    } else if (strncmp("notflag", tbuf, 7) == 0) {
      flag = (int)strtol(tbuf + 7, &sp, 10);
      if (!strchr(" /t/n", *sp) || flag < 1 || flag > (32 * 1)) {
        sprintf(errmsg, "Invalid notflag launch parameter '%s'", tokv[k]);
        store_error_message(errmsg);
        return -1;
      }
      notcflags[(flag - 1) / 32] |= 1UL << ((flag - 1) % 32);
      *tokv[k] = '\0';
    } else if (strncmp("czflag", tbuf, 6) == 0) {
      flag = (int)strtol(tbuf + 6, &sp, 10);
      if (!strchr(" /t/n", *sp) || flag < 1 || flag > (32 * 1)) {
        sprintf(errmsg, "Invalid cxflag launch parameter '%s'", tokv[k]);
        store_error_message(errmsg);
        return -1;
      }
      czflags[(flag - 1) / 32] |= 1UL << ((flag - 1) % 32);
      *tokv[k] = '\0';
    } else if (strncmp("notczflag", tbuf, 9) == 0) {
      flag = (int)strtol(tbuf + 9, &sp, 10);
      if (!strchr(" /t/n", *sp) || flag < 1 || flag > (32 * 1)) {
        sprintf(errmsg, "Invalid notczflag launch parameter '%s'", tokv[k]);
        store_error_message(errmsg);
        return -1;
      }
      notczflags[(flag - 1) / 32] |= 1UL << ((flag - 1) % 32);
      *tokv[k] = '\0';
    } else if (strcmp("night", tbuf) == 0) {
      *sflags |= (0x01 << 16);
      *tokv[k] = '\0';
    } else if (strcmp("notnight", tbuf) == 0) {
      *notsflags |= (0x01 << 16);
      *tokv[k] = '\0';
    } else if (strcmp("dark", tbuf) == 0) {
      *sflags |= (0x02 << 16);
      *tokv[k] = '\0';
    } else if (strcmp("notdark", tbuf) == 0) {
      *notsflags |= (0x02 << 16);
      *tokv[k] = '\0';
    } else if (strcmp("tamper", tbuf) == 0) {
      *sflags |= (0x08 << 18);
      *tokv[k] = '\0';
    } else if (strcmp("nottamper", tbuf) == 0) {
      *notsflags |= (0x08 << 18);
      *tokv[k] = '\0';
    } else if (strcmp("armed", tbuf) == 0) {
      *sflags |= (0x01 << 18);
      *tokv[k] = '\0';
    } else if (strcmp("notarmed", tbuf) == 0) {
      *notsflags |= (0x01 << 18);
      *tokv[k] = '\0';
    } else if (strcmp("disarmed", tbuf) == 0) {
      *notsflags |= ((0x01 << 18) | (0x04 << 18));
      *tokv[k] = '\0';
    } else if (strcmp("notdisarmed", tbuf) == 0) {
      *sflags |= ((0x01 << 18) | (0x04 << 18));
      *tokv[k] = '\0';
    } else if (strcmp("armpending", tbuf) == 0) {
      *sflags |= (0x04 << 18);
      *tokv[k] = '\0';
    } else if (strcmp("notarmpending", tbuf) == 0) {
      *notsflags |= (0x04 << 18);
      *tokv[k] = '\0';
    } else if (strcmp("home", tbuf) == 0) {
      *sflags |= (0x02 << 18);
      *tokv[k] = '\0';
    } else if (strcmp("away", tbuf) == 0) {
      *notsflags |= (0x02 << 18);
      *tokv[k] = '\0';
    } else if (strcmp("continue", tbuf) == 0) {
      *scanmode |= 1;
      *tokv[k] = '\0';
    } else if (strcmp("break", tbuf) == 0) {
      *scanmode |= 2;
      *tokv[k] = '\0';
    }
  }
  if (((*sflags | *notsflags) & (0x02 << 18)) &&
      !(*sflags & ((0x01 << 18) | (0x04 << 18)))) {
    *sflags |= (0x01 << 18);
  }
  for (k = 0; k < 1; k++) {
    if (cflags[k] & notcflags[k]) {
      store_error_message(
          "Conflicting common flag/notflag in launch conditions.");
      return -1;
    }
  }
  for (k = 0; k < 1; k++) {
    if (czflags[k] & notczflags[k]) {
      store_error_message("Conflicting czflag/notczflag in launch conditions.");
      return -1;
    }
  }
  if (*sflags & *notsflags) {
    store_error_message(
        "Conflicting global flag/notflag in launch conditions.");
    return -1;
  }
  if (*scanmode == (1 | 2)) {
    store_error_message("Conflicting continue/break in launch conditions.");
    return -1;
  }
  return 0;
}


x86 assembly (clang, -O0):
<get_global_flags_old>:
push   %rbp
mov    %rsp,%rbp
sub    $0x130,%rsp
mov    0x20(%rbp),%rax
mov    0x18(%rbp),%eax
mov    0x10(%rbp),%rax
mov    %rdi,-0x10(%rbp)
mov    %rsi,-0x18(%rbp)
mov    %rdx,-0x20(%rbp)
mov    %rcx,-0x28(%rbp)
mov    %r8,-0x30(%rbp)
mov    %r9,-0x38(%rbp)
mov    0x10(%rbp),%rax
movb   $0x0,(%rax)
mov    -0x28(%rbp),%rax
movq   $0x0,(%rax)
mov    -0x20(%rbp),%rax
movq   $0x0,(%rax)
movl   $0x0,-0x3c(%rbp)
cmpl   $0x1,-0x3c(%rbp)
jge    120a <get_global_flags_old+0x8a>
mov    -0x10(%rbp),%rax
movslq -0x3c(%rbp),%rcx
movq   $0x0,(%rax,%rcx,8)
mov    -0x18(%rbp),%rax
movslq -0x3c(%rbp),%rcx
movq   $0x0,(%rax,%rcx,8)
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
jmp    11d2 <get_global_flags_old+0x52>
movl   $0x0,-0x3c(%rbp)
cmpl   $0x1,-0x3c(%rbp)
jge    1249 <get_global_flags_old+0xc9>
mov    -0x30(%rbp),%rax
movslq -0x3c(%rbp),%rcx
movq   $0x0,(%rax,%rcx,8)
mov    -0x38(%rbp),%rax
movslq -0x3c(%rbp),%rcx
movq   $0x0,(%rax,%rcx,8)
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
jmp    1211 <get_global_flags_old+0x91>
movl   $0x1,-0x3c(%rbp)
mov    -0x3c(%rbp),%eax
cmp    0x18(%rbp),%eax
jge    1b44 <get_global_flags_old+0x9c4>
lea    -0xf0(%rbp),%rdi
mov    0x20(%rbp),%rax
movslq -0x3c(%rbp),%rcx
mov    (%rax,%rcx,8),%rsi
mov    $0x20,%edx
mov    $0x0,%al
call   1080 <strncpy2@plt>
lea    -0xf0(%rbp),%rdi
mov    $0x0,%al
call   10a0 <strlower@plt>
lea    -0xf0(%rbp),%rsi
lea    0xd95(%rip),%rdi
mov    $0x4,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    139b <get_global_flags_old+0x21b>
lea    -0xf0(%rbp),%rdi
add    $0x4,%rdi
lea    -0x48(%rbp),%rsi
mov    $0xa,%edx
call   1070 <strtol@plt>
mov    %eax,-0x40(%rbp)
mov    -0x48(%rbp),%rax
movsbl (%rax),%esi
lea    0xd2c(%rip),%rdi
call   1050 <strchr@plt>
cmp    $0x0,%rax
je     12f7 <get_global_flags_old+0x177>
cmpl   $0x1,-0x40(%rbp)
jl     12f7 <get_global_flags_old+0x177>
cmpl   $0x20,-0x40(%rbp)
jle    1332 <get_global_flags_old+0x1b2>
lea    -0xd0(%rbp),%rdi
mov    0x20(%rbp),%rax
movslq -0x3c(%rbp),%rcx
mov    (%rax,%rcx,8),%rdx
lea    0xcf5(%rip),%rsi
mov    $0x0,%al
call   1090 <sprintf@plt>
lea    -0xd0(%rbp),%rdi
mov    $0x0,%al
call   1040 <store_error_message@plt>
movl   $0xffffffff,-0x4(%rbp)
jmp    1cad <get_global_flags_old+0xb2d>
mov    -0x40(%rbp),%eax
sub    $0x1,%eax
mov    $0x20,%ecx
cltd
idiv   %ecx
mov    %edx,%eax
mov    %eax,%ecx
mov    $0x1,%eax
shl    %cl,%rax
mov    %rax,-0x100(%rbp)
mov    -0x10(%rbp),%rax
mov    %rax,-0xf8(%rbp)
mov    -0x40(%rbp),%eax
sub    $0x1,%eax
mov    $0x20,%ecx
cltd
idiv   %ecx
mov    -0x100(%rbp),%rdx
mov    %eax,%ecx
mov    -0xf8(%rbp),%rax
movslq %ecx,%rcx
or     (%rax,%rcx,8),%rdx
mov    %rdx,(%rax,%rcx,8)
mov    0x20(%rbp),%rax
movslq -0x3c(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movb   $0x0,(%rax)
jmp    1b31 <get_global_flags_old+0x9b1>
lea    -0xf0(%rbp),%rsi
lea    0xc80(%rip),%rdi
mov    $0x7,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    14ad <get_global_flags_old+0x32d>
lea    -0xf0(%rbp),%rdi
add    $0x7,%rdi
lea    -0x48(%rbp),%rsi
mov    $0xa,%edx
call   1070 <strtol@plt>
mov    %eax,-0x40(%rbp)
mov    -0x48(%rbp),%rax
movsbl (%rax),%esi
lea    0xc1a(%rip),%rdi
call   1050 <strchr@plt>
cmp    $0x0,%rax
je     1409 <get_global_flags_old+0x289>
cmpl   $0x1,-0x40(%rbp)
jl     1409 <get_global_flags_old+0x289>
cmpl   $0x20,-0x40(%rbp)
jle    1444 <get_global_flags_old+0x2c4>
lea    -0xd0(%rbp),%rdi
mov    0x20(%rbp),%rax
movslq -0x3c(%rbp),%rcx
mov    (%rax,%rcx,8),%rdx
lea    0xc0e(%rip),%rsi
mov    $0x0,%al
call   1090 <sprintf@plt>
lea    -0xd0(%rbp),%rdi
mov    $0x0,%al
call   1040 <store_error_message@plt>
movl   $0xffffffff,-0x4(%rbp)
jmp    1cad <get_global_flags_old+0xb2d>
mov    -0x40(%rbp),%eax
sub    $0x1,%eax
mov    $0x20,%ecx
cltd
idiv   %ecx
mov    %edx,%eax
mov    %eax,%ecx
mov    $0x1,%eax
shl    %cl,%rax
mov    %rax,-0x110(%rbp)
mov    -0x18(%rbp),%rax
mov    %rax,-0x108(%rbp)
mov    -0x40(%rbp),%eax
sub    $0x1,%eax
mov    $0x20,%ecx
cltd
idiv   %ecx
mov    -0x110(%rbp),%rdx
mov    %eax,%ecx
mov    -0x108(%rbp),%rax
movslq %ecx,%rcx
or     (%rax,%rcx,8),%rdx
mov    %rdx,(%rax,%rcx,8)
mov    0x20(%rbp),%rax
movslq -0x3c(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movb   $0x0,(%rax)
jmp    1b2c <get_global_flags_old+0x9ac>
lea    -0xf0(%rbp),%rsi
lea    0xbc4(%rip),%rdi
mov    $0x6,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    15bf <get_global_flags_old+0x43f>
lea    -0xf0(%rbp),%rdi
add    $0x6,%rdi
lea    -0x48(%rbp),%rsi
mov    $0xa,%edx
call   1070 <strtol@plt>
mov    %eax,-0x40(%rbp)
mov    -0x48(%rbp),%rax
movsbl (%rax),%esi
lea    0xb08(%rip),%rdi
call   1050 <strchr@plt>
cmp    $0x0,%rax
je     151b <get_global_flags_old+0x39b>
cmpl   $0x1,-0x40(%rbp)
jl     151b <get_global_flags_old+0x39b>
cmpl   $0x20,-0x40(%rbp)
jle    1556 <get_global_flags_old+0x3d6>
lea    -0xd0(%rbp),%rdi
mov    0x20(%rbp),%rax
movslq -0x3c(%rbp),%rcx
mov    (%rax,%rcx,8),%rdx
lea    0xb22(%rip),%rsi
mov    $0x0,%al
call   1090 <sprintf@plt>
lea    -0xd0(%rbp),%rdi
mov    $0x0,%al
call   1040 <store_error_message@plt>
movl   $0xffffffff,-0x4(%rbp)
jmp    1cad <get_global_flags_old+0xb2d>
mov    -0x40(%rbp),%eax
sub    $0x1,%eax
mov    $0x20,%ecx
cltd
idiv   %ecx
mov    %edx,%eax
mov    %eax,%ecx
mov    $0x1,%eax
shl    %cl,%rax
mov    %rax,-0x120(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x118(%rbp)
mov    -0x40(%rbp),%eax
sub    $0x1,%eax
mov    $0x20,%ecx
cltd
idiv   %ecx
mov    -0x120(%rbp),%rdx
mov    %eax,%ecx
mov    -0x118(%rbp),%rax
movslq %ecx,%rcx
or     (%rax,%rcx,8),%rdx
mov    %rdx,(%rax,%rcx,8)
mov    0x20(%rbp),%rax
movslq -0x3c(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movb   $0x0,(%rax)
jmp    1b27 <get_global_flags_old+0x9a7>
lea    -0xf0(%rbp),%rsi
lea    0xaaf(%rip),%rdi
mov    $0x9,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    16d1 <get_global_flags_old+0x551>
lea    -0xf0(%rbp),%rdi
add    $0x9,%rdi
lea    -0x48(%rbp),%rsi
mov    $0xa,%edx
call   1070 <strtol@plt>
mov    %eax,-0x40(%rbp)
mov    -0x48(%rbp),%rax
movsbl (%rax),%esi
lea    0x9f6(%rip),%rdi
call   1050 <strchr@plt>
cmp    $0x0,%rax
je     162d <get_global_flags_old+0x4ad>
cmpl   $0x1,-0x40(%rbp)
jl     162d <get_global_flags_old+0x4ad>
cmpl   $0x20,-0x40(%rbp)
jle    1668 <get_global_flags_old+0x4e8>
lea    -0xd0(%rbp),%rdi
mov    0x20(%rbp),%rax
movslq -0x3c(%rbp),%rcx
mov    (%rax,%rcx,8),%rdx
lea    0xa3f(%rip),%rsi
mov    $0x0,%al
call   1090 <sprintf@plt>
lea    -0xd0(%rbp),%rdi
mov    $0x0,%al
call   1040 <store_error_message@plt>
movl   $0xffffffff,-0x4(%rbp)
jmp    1cad <get_global_flags_old+0xb2d>
mov    -0x40(%rbp),%eax
sub    $0x1,%eax
mov    $0x20,%ecx
cltd
idiv   %ecx
mov    %edx,%eax
mov    %eax,%ecx
mov    $0x1,%eax
shl    %cl,%rax
mov    %rax,-0x130(%rbp)
mov    -0x38(%rbp),%rax
mov    %rax,-0x128(%rbp)
mov    -0x40(%rbp),%eax
sub    $0x1,%eax
mov    $0x20,%ecx
cltd
idiv   %ecx
mov    -0x130(%rbp),%rdx
mov    %eax,%ecx
mov    -0x128(%rbp),%rax
movslq %ecx,%rcx
or     (%rax,%rcx,8),%rdx
mov    %rdx,(%rax,%rcx,8)
mov    0x20(%rbp),%rax
movslq -0x3c(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movb   $0x0,(%rax)
jmp    1b22 <get_global_flags_old+0x9a2>
lea    -0xf0(%rbp),%rsi
lea    0x9d2(%rip),%rdi
call   1060 <strcmp@plt>
cmp    $0x0,%eax
jne    1712 <get_global_flags_old+0x592>
mov    -0x20(%rbp),%rax
mov    (%rax),%rcx
or     $0x10000,%rcx
mov    %rcx,(%rax)
mov    0x20(%rbp),%rax
movslq -0x3c(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movb   $0x0,(%rax)
jmp    1b1d <get_global_flags_old+0x99d>
lea    -0xf0(%rbp),%rsi
lea    0x98e(%rip),%rdi
call   1060 <strcmp@plt>
cmp    $0x0,%eax
jne    1753 <get_global_flags_old+0x5d3>
mov    -0x28(%rbp),%rax
mov    (%rax),%rcx
or     $0x10000,%rcx
mov    %rcx,(%rax)
mov    0x20(%rbp),%rax
movslq -0x3c(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movb   $0x0,(%rax)
jmp    1b18 <get_global_flags_old+0x998>
lea    -0xf0(%rbp),%rsi
lea    0x959(%rip),%rdi
call   1060 <strcmp@plt>
cmp    $0x0,%eax
jne    1794 <get_global_flags_old+0x614>
mov    -0x20(%rbp),%rax
mov    (%rax),%rcx
or     $0x20000,%rcx
mov    %rcx,(%rax)
mov    0x20(%rbp),%rax
movslq -0x3c(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movb   $0x0,(%rax)
jmp    1b13 <get_global_flags_old+0x993>
lea    -0xf0(%rbp),%rsi
lea    0x915(%rip),%rdi
call   1060 <strcmp@plt>
cmp    $0x0,%eax
jne    17d5 <get_global_flags_old+0x655>
mov    -0x28(%rbp),%rax
mov    (%rax),%rcx
or     $0x20000,%rcx
mov    %rcx,(%rax)
mov    0x20(%rbp),%rax
movslq -0x3c(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movb   $0x0,(%rax)
jmp    1b0e <get_global_flags_old+0x98e>
lea    -0xf0(%rbp),%rsi
lea    0x8df(%rip),%rdi
call   1060 <strcmp@plt>
cmp    $0x0,%eax
jne    1816 <get_global_flags_old+0x696>
mov    -0x20(%rbp),%rax
mov    (%rax),%rcx
or     $0x200000,%rcx
mov    %rcx,(%rax)
mov    0x20(%rbp),%rax
movslq -0x3c(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movb   $0x0,(%rax)
jmp    1b09 <get_global_flags_old+0x989>
lea    -0xf0(%rbp),%rsi
lea    0x89b(%rip),%rdi
call   1060 <strcmp@plt>
cmp    $0x0,%eax
jne    1857 <get_global_flags_old+0x6d7>
mov    -0x28(%rbp),%rax
mov    (%rax),%rcx
or     $0x200000,%rcx
mov    %rcx,(%rax)
mov    0x20(%rbp),%rax
movslq -0x3c(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movb   $0x0,(%rax)
jmp    1b04 <get_global_flags_old+0x984>
lea    -0xf0(%rbp),%rsi
lea    0x873(%rip),%rdi
call   1060 <strcmp@plt>
cmp    $0x0,%eax
jne    1898 <get_global_flags_old+0x718>
mov    -0x20(%rbp),%rax
mov    (%rax),%rcx
or     $0x40000,%rcx
mov    %rcx,(%rax)
mov    0x20(%rbp),%rax
movslq -0x3c(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movb   $0x0,(%rax)
jmp    1aff <get_global_flags_old+0x97f>
lea    -0xf0(%rbp),%rsi
lea    0x823(%rip),%rdi
call   1060 <strcmp@plt>
cmp    $0x0,%eax
jne    18d9 <get_global_flags_old+0x759>
mov    -0x28(%rbp),%rax
mov    (%rax),%rcx
or     $0x40000,%rcx
mov    %rcx,(%rax)
mov    0x20(%rbp),%rax
movslq -0x3c(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movb   $0x0,(%rax)
jmp    1afa <get_global_flags_old+0x97a>
lea    -0xf0(%rbp),%rsi
lea    0x7ee(%rip),%rdi
call   1060 <strcmp@plt>
cmp    $0x0,%eax
jne    191a <get_global_flags_old+0x79a>
mov    -0x28(%rbp),%rax
mov    (%rax),%rcx
or     $0x140000,%rcx
mov    %rcx,(%rax)
mov    0x20(%rbp),%rax
movslq -0x3c(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movb   $0x0,(%rax)
jmp    1af5 <get_global_flags_old+0x975>
lea    -0xf0(%rbp),%rsi
lea    0x7aa(%rip),%rdi
call   1060 <strcmp@plt>
cmp    $0x0,%eax
jne    195b <get_global_flags_old+0x7db>
mov    -0x20(%rbp),%rax
mov    (%rax),%rcx
or     $0x140000,%rcx
mov    %rcx,(%rax)
mov    0x20(%rbp),%rax
movslq -0x3c(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movb   $0x0,(%rax)
jmp    1af0 <get_global_flags_old+0x970>
lea    -0xf0(%rbp),%rsi
lea    0x778(%rip),%rdi
call   1060 <strcmp@plt>
cmp    $0x0,%eax
jne    199c <get_global_flags_old+0x81c>
mov    -0x20(%rbp),%rax
mov    (%rax),%rcx
or     $0x100000,%rcx
mov    %rcx,(%rax)
mov    0x20(%rbp),%rax
movslq -0x3c(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movb   $0x0,(%rax)
jmp    1aeb <get_global_flags_old+0x96b>
lea    -0xf0(%rbp),%rsi
lea    0x734(%rip),%rdi
call   1060 <strcmp@plt>
cmp    $0x0,%eax
jne    19dd <get_global_flags_old+0x85d>
mov    -0x28(%rbp),%rax
mov    (%rax),%rcx
or     $0x100000,%rcx
mov    %rcx,(%rax)
mov    0x20(%rbp),%rax
movslq -0x3c(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movb   $0x0,(%rax)
jmp    1ae6 <get_global_flags_old+0x966>
lea    -0xf0(%rbp),%rsi
lea    0x701(%rip),%rdi
call   1060 <strcmp@plt>
cmp    $0x0,%eax
jne    1a1e <get_global_flags_old+0x89e>
mov    -0x20(%rbp),%rax
mov    (%rax),%rcx
or     $0x80000,%rcx
mov    %rcx,(%rax)
mov    0x20(%rbp),%rax
movslq -0x3c(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movb   $0x0,(%rax)
jmp    1ae1 <get_global_flags_old+0x961>
lea    -0xf0(%rbp),%rsi
lea    0x6c5(%rip),%rdi
call   1060 <strcmp@plt>
cmp    $0x0,%eax
jne    1a5f <get_global_flags_old+0x8df>
mov    -0x28(%rbp),%rax
mov    (%rax),%rcx
or     $0x80000,%rcx
mov    %rcx,(%rax)
mov    0x20(%rbp),%rax
movslq -0x3c(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movb   $0x0,(%rax)
jmp    1adc <get_global_flags_old+0x95c>
lea    -0xf0(%rbp),%rsi
lea    0x689(%rip),%rdi
call   1060 <strcmp@plt>
cmp    $0x0,%eax
jne    1a9b <get_global_flags_old+0x91b>
mov    0x10(%rbp),%rax
movzbl (%rax),%ecx
or     $0x1,%ecx
mov    %cl,(%rax)
mov    0x20(%rbp),%rax
movslq -0x3c(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movb   $0x0,(%rax)
jmp    1ad7 <get_global_flags_old+0x957>
lea    -0xf0(%rbp),%rsi
lea    0x656(%rip),%rdi
call   1060 <strcmp@plt>
cmp    $0x0,%eax
jne    1ad2 <get_global_flags_old+0x952>
mov    0x10(%rbp),%rax
movzbl (%rax),%ecx
or     $0x2,%ecx
mov    %cl,(%rax)
mov    0x20(%rbp),%rax
movslq -0x3c(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movb   $0x0,(%rax)
jmp    1ad7 <get_global_flags_old+0x957>
jmp    1adc <get_global_flags_old+0x95c>
jmp    1ae1 <get_global_flags_old+0x961>
jmp    1ae6 <get_global_flags_old+0x966>
jmp    1aeb <get_global_flags_old+0x96b>
jmp    1af0 <get_global_flags_old+0x970>
jmp    1af5 <get_global_flags_old+0x975>
jmp    1afa <get_global_flags_old+0x97a>
jmp    1aff <get_global_flags_old+0x97f>
jmp    1b04 <get_global_flags_old+0x984>
jmp    1b09 <get_global_flags_old+0x989>
jmp    1b0e <get_global_flags_old+0x98e>
jmp    1b13 <get_global_flags_old+0x993>
jmp    1b18 <get_global_flags_old+0x998>
jmp    1b1d <get_global_flags_old+0x99d>
jmp    1b22 <get_global_flags_old+0x9a2>
jmp    1b27 <get_global_flags_old+0x9a7>
jmp    1b2c <get_global_flags_old+0x9ac>
jmp    1b31 <get_global_flags_old+0x9b1>
jmp    1b36 <get_global_flags_old+0x9b6>
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
jmp    1250 <get_global_flags_old+0xd0>
mov    -0x20(%rbp),%rax
mov    (%rax),%rax
mov    -0x28(%rbp),%rcx
or     (%rcx),%rax
and    $0x80000,%rax
cmp    $0x0,%rax
je     1b8a <get_global_flags_old+0xa0a>
mov    -0x20(%rbp),%rax
mov    (%rax),%rax
and    $0x140000,%rax
cmp    $0x0,%rax
jne    1b8a <get_global_flags_old+0xa0a>
mov    -0x20(%rbp),%rax
mov    (%rax),%rcx
or     $0x40000,%rcx
mov    %rcx,(%rax)
movl   $0x0,-0x3c(%rbp)
cmpl   $0x1,-0x3c(%rbp)
jge    1bea <get_global_flags_old+0xa6a>
mov    -0x10(%rbp),%rax
movslq -0x3c(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
mov    -0x18(%rbp),%rcx
movslq -0x3c(%rbp),%rdx
and    (%rcx,%rdx,8),%rax
cmp    $0x0,%rax
je     1bd7 <get_global_flags_old+0xa57>
lea    0x541(%rip),%rdi
mov    $0x0,%al
call   1040 <store_error_message@plt>
movl   $0xffffffff,-0x4(%rbp)
jmp    1cad <get_global_flags_old+0xb2d>
jmp    1bdc <get_global_flags_old+0xa5c>
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
jmp    1b91 <get_global_flags_old+0xa11>
movl   $0x0,-0x3c(%rbp)
cmpl   $0x1,-0x3c(%rbp)
jge    1c4a <get_global_flags_old+0xaca>
mov    -0x30(%rbp),%rax
movslq -0x3c(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
mov    -0x38(%rbp),%rcx
movslq -0x3c(%rbp),%rdx
and    (%rcx,%rdx,8),%rax
cmp    $0x0,%rax
je     1c37 <get_global_flags_old+0xab7>
lea    0x517(%rip),%rdi
mov    $0x0,%al
call   1040 <store_error_message@plt>
movl   $0xffffffff,-0x4(%rbp)
jmp    1cad <get_global_flags_old+0xb2d>
jmp    1c3c <get_global_flags_old+0xabc>
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
jmp    1bf1 <get_global_flags_old+0xa71>
mov    -0x20(%rbp),%rax
mov    (%rax),%rax
mov    -0x28(%rbp),%rcx
and    (%rcx),%rax
cmp    $0x0,%rax
je     1c7c <get_global_flags_old+0xafc>
lea    0x505(%rip),%rdi
mov    $0x0,%al
call   1040 <store_error_message@plt>
movl   $0xffffffff,-0x4(%rbp)
jmp    1cad <get_global_flags_old+0xb2d>
mov    0x10(%rbp),%rax
movzbl (%rax),%eax
cmp    $0x3,%eax
jne    1ca6 <get_global_flags_old+0xb26>
lea    0x511(%rip),%rdi
mov    $0x0,%al
call   1040 <store_error_message@plt>
movl   $0xffffffff,-0x4(%rbp)
jmp    1cad <get_global_flags_old+0xb2d>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x130,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<get_global_flags_old>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0xe8,%rsp
mov    0x128(%rsp),%eax
mov    0x120(%rsp),%rbp
movb   $0x0,0x0(%rbp)
mov    %rcx,0x28(%rsp)
movq   $0x0,(%rcx)
mov    %rdx,0x30(%rsp)
movq   $0x0,(%rdx)
mov    %rdi,0x58(%rsp)
movq   $0x0,(%rdi)
mov    %rsi,0x50(%rsp)
movq   $0x0,(%rsi)
mov    %r8,0x48(%rsp)
movq   $0x0,(%r8)
mov    %r9,0x40(%rsp)
movq   $0x0,(%r9)
cmp    $0x2,%eax
jl     16dc <get_global_flags_old+0x57c>
mov    0x130(%rsp),%r13
mov    %eax,%r12d
mov    $0x1,%r14d
mov    %rsp,%r15
movabs $0x64656d7261736964,%rbp
6d 65 64
movabs $0x676e69646e6570,%rbx
nopl   (%rax)
mov    0x0(%r13,%r14,8),%rsi
mov    $0x20,%edx
mov    %r15,%rdi
xor    %eax,%eax
call   1060 <strncpy2@plt>
mov    %r15,%rdi
xor    %eax,%eax
call   1080 <strlower@plt>
cmpl   $0x67616c66,(%rsp)
jne    1290 <get_global_flags_old+0x130>
lea    0x4(%rsp),%rdi
lea    0x38(%rsp),%rsi
mov    $0xa,%edx
call   1050 <strtol@plt>
mov    %rax,%rbp
mov    0x38(%rsp),%rax
movsbl (%rax),%esi
mov    $0x6,%edx
lea    0xdae(%rip),%rdi
call   1040 <memchr@plt>
test   %rax,%rax
je     1749 <get_global_flags_old+0x5e9>
test   %ebp,%ebp
jle    1749 <get_global_flags_old+0x5e9>
cmp    $0x21,%ebp
jge    1749 <get_global_flags_old+0x5e9>
add    $0xff,%bpl
and    $0x1f,%bpl
mov    $0x1,%eax
mov    %ebp,%ecx
shl    %cl,%rax
mov    0x58(%rsp),%rcx
jmp    1490 <get_global_flags_old+0x330>
nopl   (%rax)
mov    (%rsp),%eax
mov    $0x66746f6e,%ecx
xor    %ecx,%eax
mov    0x3(%rsp),%ecx
mov    $0x67616c66,%edx
xor    %edx,%ecx
or     %eax,%ecx
je     135f <get_global_flags_old+0x1ff>
mov    (%rsp),%eax
mov    $0x6c667a63,%ecx
xor    %ecx,%eax
movzwl 0x4(%rsp),%ecx
xor    $0x6761,%ecx
or     %eax,%ecx
je     13c5 <get_global_flags_old+0x265>
mov    (%rsp),%rax
movabs $0x616c667a63746f6e,%rcx
66 6c 61
xor    %rcx,%rax
movzbl 0x8(%rsp),%ecx
xor    $0x67,%rcx
or     %rax,%rcx
je     1428 <get_global_flags_old+0x2c8>
mov    (%rsp),%eax
mov    $0x6867696e,%ecx
xor    %ecx,%eax
movzwl 0x4(%rsp),%ecx
xor    $0x74,%ecx
or     %eax,%ecx
je     14b7 <get_global_flags_old+0x357>
mov    (%rsp),%rax
movabs $0x746867696e746f6e,%rcx
67 68 74
xor    %rcx,%rax
movzbl 0x8(%rsp),%ecx
or     %rax,%rcx
je     14c2 <get_global_flags_old+0x362>
mov    (%rsp),%eax
mov    $0x6b726164,%ecx
xor    %ecx,%eax
movzbl 0x4(%rsp),%ecx
or     %eax,%ecx
je     14cd <get_global_flags_old+0x36d>
movabs $0x6b726164746f6e,%rax
cmp    %rax,(%rsp)
jne    14d8 <get_global_flags_old+0x378>
mov    0x28(%rsp),%rax
orb    $0x2,0x2(%rax)
jmp    149d <get_global_flags_old+0x33d>
lea    0x7(%rsp),%rdi
lea    0x38(%rsp),%rsi
mov    $0xa,%edx
call   1050 <strtol@plt>
mov    %rax,%rbp
mov    0x38(%rsp),%rax
movsbl (%rax),%esi
mov    $0x6,%edx
lea    0xc76(%rip),%rdi
call   1040 <memchr@plt>
test   %rax,%rax
je     176a <get_global_flags_old+0x60a>
test   %ebp,%ebp
jle    176a <get_global_flags_old+0x60a>
cmp    $0x21,%ebp
jge    176a <get_global_flags_old+0x60a>
add    $0xff,%bpl
and    $0x1f,%bpl
mov    $0x1,%eax
mov    %ebp,%ecx
shl    %cl,%rax
mov    0x50(%rsp),%rcx
jmp    1490 <get_global_flags_old+0x330>
lea    0x6(%rsp),%rdi
lea    0x38(%rsp),%rsi
mov    $0xa,%edx
call   1050 <strtol@plt>
mov    %rax,%rbp
mov    0x38(%rsp),%rax
movsbl (%rax),%esi
mov    $0x6,%edx
lea    0xc10(%rip),%rdi
call   1040 <memchr@plt>
test   %rax,%rax
je     1790 <get_global_flags_old+0x630>
test   %ebp,%ebp
jle    1790 <get_global_flags_old+0x630>
cmp    $0x21,%ebp
jge    1790 <get_global_flags_old+0x630>
add    $0xff,%bpl
and    $0x1f,%bpl
mov    $0x1,%eax
mov    %ebp,%ecx
shl    %cl,%rax
mov    0x48(%rsp),%rcx
jmp    1490 <get_global_flags_old+0x330>
lea    0x9(%rsp),%rdi
lea    0x38(%rsp),%rsi
mov    $0xa,%edx
call   1050 <strtol@plt>
mov    %rax,%rbp
mov    0x38(%rsp),%rax
movsbl (%rax),%esi
mov    $0x6,%edx
lea    0xbad(%rip),%rdi
call   1040 <memchr@plt>
test   %rax,%rax
je     179e <get_global_flags_old+0x63e>
test   %ebp,%ebp
jle    179e <get_global_flags_old+0x63e>
cmp    $0x21,%ebp
jge    179e <get_global_flags_old+0x63e>
add    $0xff,%bpl
and    $0x1f,%bpl
mov    $0x1,%eax
mov    %ebp,%ecx
shl    %cl,%rax
mov    0x40(%rsp),%rcx
nopl   0x0(%rax)
or     %rax,(%rcx)
movabs $0x64656d7261736964,%rbp
6d 65 64
mov    0x0(%r13,%r14,8),%rax
movb   $0x0,(%rax)
add    $0x1,%r14
cmp    %r14,%r12
jne    1200 <get_global_flags_old+0xa0>
jmp    16dc <get_global_flags_old+0x57c>
mov    0x30(%rsp),%rax
orb    $0x1,0x2(%rax)
jmp    149d <get_global_flags_old+0x33d>
mov    0x28(%rsp),%rax
orb    $0x1,0x2(%rax)
jmp    149d <get_global_flags_old+0x33d>
mov    0x30(%rsp),%rax
orb    $0x2,0x2(%rax)
jmp    149d <get_global_flags_old+0x33d>
mov    (%rsp),%eax
mov    $0x706d6174,%ecx
xor    %ecx,%eax
mov    0x3(%rsp),%ecx
mov    $0x726570,%edx
xor    %edx,%ecx
or     %eax,%ecx
je     1640 <get_global_flags_old+0x4e0>
mov    (%rsp),%rax
movabs $0x65706d6174746f6e,%rcx
xor    %rcx,%rax
movzwl 0x8(%rsp),%ecx
xor    $0x72,%rcx
or     %rax,%rcx
je     164e <get_global_flags_old+0x4ee>
mov    (%rsp),%eax
mov    $0x656d7261,%ecx
xor    %ecx,%eax
movzwl 0x4(%rsp),%ecx
xor    $0x64,%ecx
or     %eax,%ecx
je     165c <get_global_flags_old+0x4fc>
lea    0x1060a(%rbp),%rax
xor    (%rsp),%rax
movzbl 0x8(%rsp),%ecx
or     %rax,%rcx
je     166a <get_global_flags_old+0x50a>
mov    (%rsp),%rax
xor    %rbp,%rax
movzbl 0x8(%rsp),%ecx
or     %rax,%rcx
je     1678 <get_global_flags_old+0x518>
mov    (%rsp),%rax
movabs $0x7261736964746f6e,%rcx
73 61 72
xor    %rcx,%rax
mov    0x8(%rsp),%ecx
xor    $0x64656d,%rcx
or     %rax,%rcx
je     1686 <get_global_flags_old+0x526>
mov    (%rsp),%rax
movabs $0x69646e65706d7261,%rcx
6e 64 69
xor    %rcx,%rax
mov    0x3(%rsp),%rcx
xor    %rbx,%rcx
or     %rax,%rcx
je     1694 <get_global_flags_old+0x534>
mov    (%rsp),%rax
movabs $0x65706d7261746f6e,%rcx
6d 70 65
xor    %rcx,%rax
mov    0x6(%rsp),%rcx
xor    %rbx,%rcx
or     %rax,%rcx
je     16a2 <get_global_flags_old+0x542>
mov    (%rsp),%eax
mov    $0x656d6f68,%ecx
xor    %ecx,%eax
movzbl 0x4(%rsp),%ecx
or     %eax,%ecx
je     16b0 <get_global_flags_old+0x550>
mov    (%rsp),%eax
mov    $0x79617761,%ecx
xor    %ecx,%eax
movzbl 0x4(%rsp),%ecx
or     %eax,%ecx
je     16be <get_global_flags_old+0x55e>
mov    (%rsp),%rax
movabs $0x65756e69746e6f63,%rcx
6e 75 65
xor    %rcx,%rax
movzbl 0x8(%rsp),%ecx
or     %rax,%rcx
je     16cc <get_global_flags_old+0x56c>
mov    (%rsp),%eax
mov    $0x61657262,%ecx
xor    %ecx,%eax
movzwl 0x4(%rsp),%ecx
xor    $0x6b,%ecx
or     %eax,%ecx
jne    14a5 <get_global_flags_old+0x345>
mov    0x120(%rsp),%rax
orb    $0x2,(%rax)
jmp    149d <get_global_flags_old+0x33d>
mov    0x30(%rsp),%rax
orb    $0x20,0x2(%rax)
jmp    149d <get_global_flags_old+0x33d>
mov    0x28(%rsp),%rax
orb    $0x20,0x2(%rax)
jmp    149d <get_global_flags_old+0x33d>
mov    0x30(%rsp),%rax
orb    $0x4,0x2(%rax)
jmp    149d <get_global_flags_old+0x33d>
mov    0x28(%rsp),%rax
orb    $0x4,0x2(%rax)
jmp    149d <get_global_flags_old+0x33d>
mov    0x28(%rsp),%rax
orb    $0x14,0x2(%rax)
jmp    149d <get_global_flags_old+0x33d>
mov    0x30(%rsp),%rax
orb    $0x14,0x2(%rax)
jmp    149d <get_global_flags_old+0x33d>
mov    0x30(%rsp),%rax
orb    $0x10,0x2(%rax)
jmp    149d <get_global_flags_old+0x33d>
mov    0x28(%rsp),%rax
orb    $0x10,0x2(%rax)
jmp    149d <get_global_flags_old+0x33d>
mov    0x30(%rsp),%rax
orb    $0x8,0x2(%rax)
jmp    149d <get_global_flags_old+0x33d>
mov    0x28(%rsp),%rax
orb    $0x8,0x2(%rax)
jmp    149d <get_global_flags_old+0x33d>
mov    0x120(%rsp),%rax
orb    $0x1,(%rax)
jmp    149d <get_global_flags_old+0x33d>
mov    0x30(%rsp),%rax
mov    (%rax),%rax
mov    0x28(%rsp),%rcx
mov    (%rcx),%ecx
or     %eax,%ecx
test   $0x80000,%ecx
je     1710 <get_global_flags_old+0x5b0>
mov    %eax,%ecx
and    $0x140000,%ecx
test   %rcx,%rcx
jne    1710 <get_global_flags_old+0x5b0>
or     $0x40000,%rax
mov    0x30(%rsp),%rcx
mov    %rax,(%rcx)
mov    0x50(%rsp),%rcx
mov    (%rcx),%rcx
mov    0x58(%rsp),%rdx
test   %rcx,(%rdx)
je     172e <get_global_flags_old+0x5ce>
lea    0x9d9(%rip),%rdi
jmp    17bc <get_global_flags_old+0x65c>
mov    0x40(%rsp),%rcx
mov    (%rcx),%rcx
mov    0x48(%rsp),%rdx
test   %rcx,(%rdx)
je     1757 <get_global_flags_old+0x5f7>
lea    0x9f1(%rip),%rdi
jmp    17bc <get_global_flags_old+0x65c>
mov    0x0(%r13,%r14,8),%rdx
lea    0x8b1(%rip),%rsi
jmp    17aa <get_global_flags_old+0x64a>
mov    0x28(%rsp),%rcx
test   %rax,(%rcx)
je     1778 <get_global_flags_old+0x618>
lea    0xa03(%rip),%rdi
jmp    17bc <get_global_flags_old+0x65c>
mov    0x0(%r13,%r14,8),%rdx
lea    0x8bb(%rip),%rsi
jmp    17aa <get_global_flags_old+0x64a>
xor    %eax,%eax
mov    0x120(%rsp),%rcx
cmpb   $0x3,(%rcx)
jne    17c8 <get_global_flags_old+0x668>
lea    0xa13(%rip),%rdi
jmp    17bc <get_global_flags_old+0x65c>
mov    0x0(%r13,%r14,8),%rdx
lea    0x8bb(%rip),%rsi
jmp    17aa <get_global_flags_old+0x64a>
mov    0x0(%r13,%r14,8),%rdx
lea    0x8dc(%rip),%rsi
lea    0x60(%rsp),%rbx
mov    %rbx,%rdi
xor    %eax,%eax
call   1070 <sprintf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1030 <store_error_message@plt>
mov    $0xffffffff,%eax
add    $0xe8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

LLVM IR (-O2):
@.str.1 = [6 x i8] c" /t/n\00"
@.str.2 = [35 x i8] c"Invalid flag launch parameter '%s'\00"
@.str.3 = [8 x i8] c"notflag\00"
@.str.4 = [38 x i8] c"Invalid notflag launch parameter '%s'\00"
@.str.5 = [7 x i8] c"czflag\00"
@.str.6 = [37 x i8] c"Invalid cxflag launch parameter '%s'\00"
@.str.7 = [10 x i8] c"notczflag\00"
@.str.8 = [40 x i8] c"Invalid notczflag launch parameter '%s'\00"
@.str.9 = [6 x i8] c"night\00"
@.str.10 = [9 x i8] c"notnight\00"
@.str.11 = [5 x i8] c"dark\00"
@.str.13 = [7 x i8] c"tamper\00"
@.str.14 = [10 x i8] c"nottamper\00"
@.str.15 = [6 x i8] c"armed\00"
@.str.16 = [9 x i8] c"notarmed\00"
@.str.17 = [9 x i8] c"disarmed\00"
@.str.18 = [12 x i8] c"notdisarmed\00"
@.str.19 = [11 x i8] c"armpending\00"
@.str.20 = [14 x i8] c"notarmpending\00"
@.str.21 = [5 x i8] c"home\00"
@.str.22 = [5 x i8] c"away\00"
@.str.23 = [9 x i8] c"continue\00"
@.str.24 = [6 x i8] c"break\00"
@.str.25 = [54 x i8] c"Conflicting common flag/notflag in launch conditions.\00"
@.str.26 = [51 x i8] c"Conflicting czflag/notczflag in launch conditions.\00"
@.str.27 = [54 x i8] c"Conflicting global flag/notflag in launch conditions.\00"
@.str.28 = [49 x i8] c"Conflicting continue/break in launch conditions.\00"
define i32 @get_global_flags_old(i64* nocapture %0, i64* nocapture %1, i64* nocapture %2, i64* nocapture %3, i64* nocapture %4, i64* nocapture %5, i8* nocapture %6, i32 %7, i8** %8) {
%10 = alloca i8*
%11 = alloca [128 x i8]
%12 = alloca [32 x i8]
%13 = bitcast i8** %10 to i8*
%14 = getelementptr inbounds [128 x i8], [128 x i8]* %11, i64 0, i64 0
%15 = getelementptr inbounds [32 x i8], [32 x i8]* %12, i64 0, i64 0
store i8 0, i8* %6
store i64 0, i64* %3
store i64 0, i64* %2
store i64 0, i64* %0
store i64 0, i64* %1
store i64 0, i64* %4
store i64 0, i64* %5
%16 = icmp sgt i32 %7, 1
br i1 %16, label %17, label %231
17: ; preds = %9
%18 = bitcast [32 x i8]* %12 to i32*
%19 = bitcast [32 x i8]* %12 to i64*
%20 = getelementptr inbounds [32 x i8], [32 x i8]* %12, i64 0, i64 9
%21 = getelementptr inbounds [32 x i8], [32 x i8]* %12, i64 0, i64 6
%22 = getelementptr inbounds [32 x i8], [32 x i8]* %12, i64 0, i64 7
%23 = getelementptr inbounds [32 x i8], [32 x i8]* %12, i64 0, i64 4
%24 = zext i32 %7 to i64
br label %25
25: ; preds = %17, %228
%26 = phi i64 [ 1, %17 ], [ %229, %228 ]
%27 = getelementptr inbounds i8*, i8** %8, i64 %26
%28 = load i8*, i8** %27
%29 = call i32 (i8*, i8*, i64, ...) bitcast (i32 (...)* @strncpy2 to i32 (i8*, i8*, i64, ...)*)(i8* %15, i8* %28, i64 32)
%30 = call i32 (i8*, ...) bitcast (i32 (...)* @strlower to i32 (i8*, ...)*)(i8* %15)
%31 = load i32, i32* %18
%32 = icmp eq i32 %31, 1734437990
br i1 %32, label %33, label %55
33: ; preds = %25
%34 = call i64 @strtol(i8* %23, i8** %10, i32 10)
%35 = trunc i64 %34 to i32
%36 = load i8*, i8** %10
%37 = load i8, i8* %36
%38 = sext i8 %37 to i32
%39 = call i8* @memchr(i8* dereferenceable(6) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i32 %38, i64 6)
%40 = icmp eq i8* %39, null
%41 = icmp slt i32 %35, 1
%42 = select i1 %40, i1 true, i1 %41
%43 = icmp sgt i32 %35, 32
%44 = select i1 %42, i1 true, i1 %43
br i1 %44, label %45, label %49
45: ; preds = %33
%46 = load i8*, i8** %27
%47 = call i32 (i8*, i8*, ...) @sprintf(i8* %14, i8* dereferenceable(1) getelementptr inbounds ([35 x i8], [35 x i8]* @.str.2, i64 0, i64 0), i8* %46)
%48 = call i32 (i8*, ...) bitcast (i32 (...)* @store_error_message to i32 (i8*, ...)*)(i8* %14)
br label %268
49: ; preds = %33
%50 = add i64 %34, 31
%51 = and i64 %50, 31
%52 = shl nuw nsw i64 1, %51
%53 = load i64, i64* %0
%54 = or i64 %53, %52
store i64 %54, i64* %0
br label %226
55: ; preds = %25
%56 = call i32 @bcmp(i8* dereferenceable(7) getelementptr inbounds ([8 x i8], [8 x i8]* @.str.3, i64 0, i64 0), i8* dereferenceable(7) %15, i64 7)
%57 = icmp eq i32 %56, 0
br i1 %57, label %58, label %80
58: ; preds = %55
%59 = call i64 @strtol(i8* %22, i8** %10, i32 10)
%60 = trunc i64 %59 to i32
%61 = load i8*, i8** %10
%62 = load i8, i8* %61
%63 = sext i8 %62 to i32
%64 = call i8* @memchr(i8* dereferenceable(6) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i32 %63, i64 6)
%65 = icmp eq i8* %64, null
%66 = icmp slt i32 %60, 1
%67 = select i1 %65, i1 true, i1 %66
%68 = icmp sgt i32 %60, 32
%69 = select i1 %67, i1 true, i1 %68
br i1 %69, label %70, label %74
70: ; preds = %58
%71 = load i8*, i8** %27
%72 = call i32 (i8*, i8*, ...) @sprintf(i8* %14, i8* dereferenceable(1) getelementptr inbounds ([38 x i8], [38 x i8]* @.str.4, i64 0, i64 0), i8* %71)
%73 = call i32 (i8*, ...) bitcast (i32 (...)* @store_error_message to i32 (i8*, ...)*)(i8* %14)
br label %268
74: ; preds = %58
%75 = add i64 %59, 31
%76 = and i64 %75, 31
%77 = shl nuw nsw i64 1, %76
%78 = load i64, i64* %1
%79 = or i64 %78, %77
store i64 %79, i64* %1
br label %226
80: ; preds = %55
%81 = call i32 @bcmp(i8* dereferenceable(6) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.5, i64 0, i64 0), i8* dereferenceable(6) %15, i64 6)
%82 = icmp eq i32 %81, 0
br i1 %82, label %83, label %105
83: ; preds = %80
%84 = call i64 @strtol(i8* %21, i8** %10, i32 10)
%85 = trunc i64 %84 to i32
%86 = load i8*, i8** %10
%87 = load i8, i8* %86
%88 = sext i8 %87 to i32
%89 = call i8* @memchr(i8* dereferenceable(6) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i32 %88, i64 6)
%90 = icmp eq i8* %89, null
%91 = icmp slt i32 %85, 1
%92 = select i1 %90, i1 true, i1 %91
%93 = icmp sgt i32 %85, 32
%94 = select i1 %92, i1 true, i1 %93
br i1 %94, label %95, label %99
95: ; preds = %83
%96 = load i8*, i8** %27
%97 = call i32 (i8*, i8*, ...) @sprintf(i8* %14, i8* dereferenceable(1) getelementptr inbounds ([37 x i8], [37 x i8]* @.str.6, i64 0, i64 0), i8* %96)
%98 = call i32 (i8*, ...) bitcast (i32 (...)* @store_error_message to i32 (i8*, ...)*)(i8* %14)
br label %268
99: ; preds = %83
%100 = add i64 %84, 31
%101 = and i64 %100, 31
%102 = shl nuw nsw i64 1, %101
%103 = load i64, i64* %4
%104 = or i64 %103, %102
store i64 %104, i64* %4
br label %226
105: ; preds = %80
%106 = call i32 @bcmp(i8* dereferenceable(9) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.7, i64 0, i64 0), i8* dereferenceable(9) %15, i64 9)
%107 = icmp eq i32 %106, 0
br i1 %107, label %108, label %130
108: ; preds = %105
%109 = call i64 @strtol(i8* %20, i8** %10, i32 10)
%110 = trunc i64 %109 to i32
%111 = load i8*, i8** %10
%112 = load i8, i8* %111
%113 = sext i8 %112 to i32
%114 = call i8* @memchr(i8* dereferenceable(6) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i32 %113, i64 6)
%115 = icmp eq i8* %114, null
%116 = icmp slt i32 %110, 1
%117 = select i1 %115, i1 true, i1 %116
%118 = icmp sgt i32 %110, 32
%119 = select i1 %117, i1 true, i1 %118
br i1 %119, label %120, label %124
120: ; preds = %108
%121 = load i8*, i8** %27
%122 = call i32 (i8*, i8*, ...) @sprintf(i8* %14, i8* dereferenceable(1) getelementptr inbounds ([40 x i8], [40 x i8]* @.str.8, i64 0, i64 0), i8* %121)
%123 = call i32 (i8*, ...) bitcast (i32 (...)* @store_error_message to i32 (i8*, ...)*)(i8* %14)
br label %268
124: ; preds = %108
%125 = add i64 %109, 31
%126 = and i64 %125, 31
%127 = shl nuw nsw i64 1, %126
%128 = load i64, i64* %5
%129 = or i64 %128, %127
store i64 %129, i64* %5
br label %226
130: ; preds = %105
%131 = call i32 @bcmp(i8* dereferenceable(6) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.9, i64 0, i64 0), i8* dereferenceable(6) %15, i64 6)
%132 = icmp eq i32 %131, 0
br i1 %132, label %133, label %136
133: ; preds = %130
%134 = load i64, i64* %2
%135 = or i64 %134, 65536
store i64 %135, i64* %2
br label %226
136: ; preds = %130
%137 = call i32 @bcmp(i8* dereferenceable(9) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.10, i64 0, i64 0), i8* dereferenceable(9) %15, i64 9)
%138 = icmp eq i32 %137, 0
br i1 %138, label %139, label %142
139: ; preds = %136
%140 = load i64, i64* %3
%141 = or i64 %140, 65536
store i64 %141, i64* %3
br label %226
142: ; preds = %136
%143 = call i32 @bcmp(i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.11, i64 0, i64 0), i8* dereferenceable(5) %15, i64 5)
%144 = icmp eq i32 %143, 0
br i1 %144, label %145, label %148
145: ; preds = %142
%146 = load i64, i64* %2
%147 = or i64 %146, 131072
store i64 %147, i64* %2
br label %226
148: ; preds = %142
%149 = load i64, i64* %19
%150 = icmp eq i64 %149, 30243585130786670
br i1 %150, label %151, label %154
151: ; preds = %148
%152 = load i64, i64* %3
%153 = or i64 %152, 131072
store i64 %153, i64* %3
br label %226
154: ; preds = %148
%155 = call i32 @bcmp(i8* dereferenceable(7) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.13, i64 0, i64 0), i8* dereferenceable(7) %15, i64 7)
%156 = icmp eq i32 %155, 0
br i1 %156, label %157, label %160
157: ; preds = %154
%158 = load i64, i64* %2
%159 = or i64 %158, 2097152
store i64 %159, i64* %2
br label %226
160: ; preds = %154
%161 = call i32 @bcmp(i8* dereferenceable(10) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.14, i64 0, i64 0), i8* dereferenceable(10) %15, i64 10)
%162 = icmp eq i32 %161, 0
br i1 %162, label %163, label %166
163: ; preds = %160
%164 = load i64, i64* %3
%165 = or i64 %164, 2097152
store i64 %165, i64* %3
br label %226
166: ; preds = %160
%167 = call i32 @bcmp(i8* dereferenceable(6) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.15, i64 0, i64 0), i8* dereferenceable(6) %15, i64 6)
%168 = icmp eq i32 %167, 0
br i1 %168, label %169, label %172
169: ; preds = %166
%170 = load i64, i64* %2
%171 = or i64 %170, 262144
store i64 %171, i64* %2
br label %226
172: ; preds = %166
%173 = call i32 @bcmp(i8* dereferenceable(9) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.16, i64 0, i64 0), i8* dereferenceable(9) %15, i64 9)
%174 = icmp eq i32 %173, 0
br i1 %174, label %175, label %178
175: ; preds = %172
%176 = load i64, i64* %3
%177 = or i64 %176, 262144
store i64 %177, i64* %3
br label %226
178: ; preds = %172
%179 = call i32 @bcmp(i8* dereferenceable(9) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.17, i64 0, i64 0), i8* dereferenceable(9) %15, i64 9)
%180 = icmp eq i32 %179, 0
br i1 %180, label %181, label %184
181: ; preds = %178
%182 = load i64, i64* %3
%183 = or i64 %182, 1310720
store i64 %183, i64* %3
br label %226
184: ; preds = %178
%185 = call i32 @bcmp(i8* dereferenceable(12) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.18, i64 0, i64 0), i8* dereferenceable(12) %15, i64 12)
%186 = icmp eq i32 %185, 0
br i1 %186, label %187, label %190
187: ; preds = %184
%188 = load i64, i64* %2
%189 = or i64 %188, 1310720
store i64 %189, i64* %2
br label %226
190: ; preds = %184
%191 = call i32 @bcmp(i8* dereferenceable(11) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.19, i64 0, i64 0), i8* dereferenceable(11) %15, i64 11)
%192 = icmp eq i32 %191, 0
br i1 %192, label %193, label %196
193: ; preds = %190
%194 = load i64, i64* %2
%195 = or i64 %194, 1048576
store i64 %195, i64* %2
br label %226
196: ; preds = %190
%197 = call i32 @bcmp(i8* dereferenceable(14) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.20, i64 0, i64 0), i8* dereferenceable(14) %15, i64 14)
%198 = icmp eq i32 %197, 0
br i1 %198, label %199, label %202
199: ; preds = %196
%200 = load i64, i64* %3
%201 = or i64 %200, 1048576
store i64 %201, i64* %3
br label %226
202: ; preds = %196
%203 = call i32 @bcmp(i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.21, i64 0, i64 0), i8* dereferenceable(5) %15, i64 5)
%204 = icmp eq i32 %203, 0
br i1 %204, label %205, label %208
205: ; preds = %202
%206 = load i64, i64* %2
%207 = or i64 %206, 524288
store i64 %207, i64* %2
br label %226
208: ; preds = %202
%209 = call i32 @bcmp(i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.22, i64 0, i64 0), i8* dereferenceable(5) %15, i64 5)
%210 = icmp eq i32 %209, 0
br i1 %210, label %211, label %214
211: ; preds = %208
%212 = load i64, i64* %3
%213 = or i64 %212, 524288
store i64 %213, i64* %3
br label %226
214: ; preds = %208
%215 = call i32 @bcmp(i8* dereferenceable(9) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.23, i64 0, i64 0), i8* dereferenceable(9) %15, i64 9)
%216 = icmp eq i32 %215, 0
br i1 %216, label %217, label %220
217: ; preds = %214
%218 = load i8, i8* %6
%219 = or i8 %218, 1
store i8 %219, i8* %6
br label %226
220: ; preds = %214
%221 = call i32 @bcmp(i8* dereferenceable(6) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.24, i64 0, i64 0), i8* dereferenceable(6) %15, i64 6)
%222 = icmp eq i32 %221, 0
br i1 %222, label %223, label %228
223: ; preds = %220
%224 = load i8, i8* %6
%225 = or i8 %224, 2
store i8 %225, i8* %6
br label %226
226: ; preds = %74, %124, %139, %151, %163, %175, %187, %199, %211, %223, %217, %205, %193, %181, %169, %157, %145, %133, %99, %49
%227 = load i8*, i8** %27
store i8 0, i8* %227
br label %228
228: ; preds = %226, %220
%229 = add nuw nsw i64 %26, 1
%230 = icmp eq i64 %229, %24
br i1 %230, label %231, label %25
231: ; preds = %228, %9
%232 = load i64, i64* %2
%233 = load i64, i64* %3
%234 = or i64 %233, %232
%235 = and i64 %234, 524288
%236 = icmp ne i64 %235, 0
%237 = and i64 %232, 1310720
%238 = icmp eq i64 %237, 0
%239 = select i1 %236, i1 %238, i1 false
br i1 %239, label %240, label %242
240: ; preds = %231
%241 = or i64 %232, 262144
store i64 %241, i64* %2
br label %242
242: ; preds = %240, %231
%243 = phi i64 [ %241, %240 ], [ %232, %231 ]
%244 = load i64, i64* %0
%245 = load i64, i64* %1
%246 = and i64 %245, %244
%247 = icmp eq i64 %246, 0
br i1 %247, label %250, label %248
248: ; preds = %242
%249 = call i32 (i8*, ...) bitcast (i32 (...)* @store_error_message to i32 (i8*, ...)*)(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.25, i64 0, i64 0))
br label %268
250: ; preds = %242
%251 = load i64, i64* %4
%252 = load i64, i64* %5
%253 = and i64 %252, %251
%254 = icmp eq i64 %253, 0
br i1 %254, label %257, label %255
255: ; preds = %250
%256 = call i32 (i8*, ...) bitcast (i32 (...)* @store_error_message to i32 (i8*, ...)*)(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.26, i64 0, i64 0))
br label %268
257: ; preds = %250
%258 = load i64, i64* %3
%259 = and i64 %258, %243
%260 = icmp eq i64 %259, 0
br i1 %260, label %263, label %261
261: ; preds = %257
%262 = call i32 (i8*, ...) bitcast (i32 (...)* @store_error_message to i32 (i8*, ...)*)(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.27, i64 0, i64 0))
br label %268
263: ; preds = %257
%264 = load i8, i8* %6
%265 = icmp eq i8 %264, 3
br i1 %265, label %266, label %268
266: ; preds = %263
%267 = call i32 (i8*, ...) bitcast (i32 (...)* @store_error_message to i32 (i8*, ...)*)(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.28, i64 0, i64 0))
br label %268
268: ; preds = %263, %266, %261, %255, %248, %120, %95, %70, %45
%269 = phi i32 [ -1, %45 ], [ -1, %70 ], [ -1, %95 ], [ -1, %120 ], [ -1, %248 ], [ -1, %255 ], [ -1, %261 ], [ -1, %266 ], [ 0, %263 ]
ret i32 %269
}