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

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int sscanf(char *, char *, float *);
scalar_t__ strcmp(char *, char *);
int get_parameters_of_recognition(int argc, char *argv[],
                                  char **source_file_name,
                                  char **result_file_name,
                                  char **phonemes_vocabulary,
                                  char **confusion_matrix_name,
                                  char **words_vocabulary, float *pruning_coeff,
                                  char **language_model_name, float *lambda) {
  int i, n = 0, is_ok = 0;
  for (i = 0; i < (argc - 1); i++) {
    if (strcmp(argv[i], "-src") == 0) {
      is_ok = 1;
      *source_file_name = argv[i + 1];
      n++;
      break;
    }
  }
  if (!is_ok) {
    return 0;
  }
  is_ok = 0;
  for (i = 0; i < (argc - 1); i++) {
    if (strcmp(argv[i], "-res") == 0) {
      is_ok = 1;
      *result_file_name = argv[i + 1];
      n++;
      break;
    }
  }
  if (!is_ok) {
    return 0;
  }
  is_ok = 0;
  for (i = 0; i < (argc - 1); i++) {
    if (strcmp(argv[i], "-phonemes") == 0) {
      is_ok = 1;
      *phonemes_vocabulary = argv[i + 1];
      n++;
      break;
    }
  }
  if (!is_ok) {
    return 0;
  }
  is_ok = 0;
  for (i = 0; i < (argc - 1); i++) {
    if (strcmp(argv[i], "-words") == 0) {
      is_ok = 1;
      *words_vocabulary = argv[i + 1];
      n++;
      break;
    }
  }
  if (!is_ok) {
    return 0;
  }
  is_ok = 0;
  for (i = 0; i < (argc - 1); i++) {
    if (strcmp(argv[i], "-conf") == 0) {
      is_ok = 1;
      *confusion_matrix_name = argv[i + 1];
      n++;
      break;
    }
  }
  if (!is_ok) {
    return 0;
  }
  is_ok = 0;
  for (i = 0; i < (argc - 1); i++) {
    if (strcmp(argv[i], "-lang") == 0) {
      is_ok = 1;
      *language_model_name = argv[i + 1];
      n++;
      break;
    }
  }
  if (!is_ok) {
    return 0;
  }
  is_ok = 0;
  for (i = 0; i < (argc - 1); i++) {
    if (strcmp(argv[i], "-lambda") == 0) {
      if (sscanf(argv[i + 1], "%f", lambda) != 1) {
        break;
      }
      if ((*lambda < 0.0) || (*lambda > 1.0)) {
        break;
      }
      is_ok = 1;
      n++;
      break;
    }
  }
  if (!is_ok) {
    return 0;
  }
  is_ok = 0;
  for (i = 0; i < (argc - 1); i++) {
    if (strcmp(argv[i], "-pr") == 0) {
      if (sscanf(argv[i + 1], "%f", pruning_coeff) != 1) {
        break;
      }
      if ((*pruning_coeff < 0.0) || (*pruning_coeff > 1.0)) {
        break;
      }
      is_ok = 1;
      n++;
      break;
    }
  }
  if (!is_ok) {
    return 0;
  }
  return ((n * 2) == (argc - 2));
}


x86 assembly (clang, -O0):
<get_parameters_of_recognition>:
push   %rbp
mov    %rsp,%rbp
sub    $0x40,%rsp
mov    0x28(%rbp),%rax
mov    0x20(%rbp),%rax
mov    0x18(%rbp),%rax
mov    0x10(%rbp),%rax
mov    %edi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %rcx,-0x20(%rbp)
mov    %r8,-0x28(%rbp)
mov    %r9,-0x30(%rbp)
movl   $0x0,-0x38(%rbp)
movl   $0x0,-0x3c(%rbp)
movl   $0x0,-0x34(%rbp)
mov    -0x34(%rbp),%eax
mov    -0x8(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jge    11d7 <get_parameters_of_recognition+0xb7>
mov    -0x10(%rbp),%rax
movslq -0x34(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xe80(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%rax
jne    11c4 <get_parameters_of_recognition+0xa4>
movl   $0x1,-0x3c(%rbp)
mov    -0x10(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,8),%rcx
mov    -0x18(%rbp),%rax
mov    %rcx,(%rax)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    11d7 <get_parameters_of_recognition+0xb7>
jmp    11c9 <get_parameters_of_recognition+0xa9>
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    1164 <get_parameters_of_recognition+0x44>
cmpl   $0x0,-0x3c(%rbp)
jne    11ed <get_parameters_of_recognition+0xcd>
movl   $0x0,-0x4(%rbp)
jmp    16cd <get_parameters_of_recognition+0x5ad>
movl   $0x0,-0x3c(%rbp)
movl   $0x0,-0x34(%rbp)
mov    -0x34(%rbp),%eax
mov    -0x8(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jge    126e <get_parameters_of_recognition+0x14e>
mov    -0x10(%rbp),%rax
movslq -0x34(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xdee(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%rax
jne    125b <get_parameters_of_recognition+0x13b>
movl   $0x1,-0x3c(%rbp)
mov    -0x10(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,8),%rcx
mov    -0x20(%rbp),%rax
mov    %rcx,(%rax)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    126e <get_parameters_of_recognition+0x14e>
jmp    1260 <get_parameters_of_recognition+0x140>
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    11fb <get_parameters_of_recognition+0xdb>
cmpl   $0x0,-0x3c(%rbp)
jne    1284 <get_parameters_of_recognition+0x164>
movl   $0x0,-0x4(%rbp)
jmp    16cd <get_parameters_of_recognition+0x5ad>
movl   $0x0,-0x3c(%rbp)
movl   $0x0,-0x34(%rbp)
mov    -0x34(%rbp),%eax
mov    -0x8(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jge    1305 <get_parameters_of_recognition+0x1e5>
mov    -0x10(%rbp),%rax
movslq -0x34(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xd5c(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%rax
jne    12f2 <get_parameters_of_recognition+0x1d2>
movl   $0x1,-0x3c(%rbp)
mov    -0x10(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,8),%rcx
mov    -0x28(%rbp),%rax
mov    %rcx,(%rax)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    1305 <get_parameters_of_recognition+0x1e5>
jmp    12f7 <get_parameters_of_recognition+0x1d7>
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    1292 <get_parameters_of_recognition+0x172>
cmpl   $0x0,-0x3c(%rbp)
jne    131b <get_parameters_of_recognition+0x1fb>
movl   $0x0,-0x4(%rbp)
jmp    16cd <get_parameters_of_recognition+0x5ad>
movl   $0x0,-0x3c(%rbp)
movl   $0x0,-0x34(%rbp)
mov    -0x34(%rbp),%eax
mov    -0x8(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jge    139c <get_parameters_of_recognition+0x27c>
mov    -0x10(%rbp),%rax
movslq -0x34(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xccf(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%rax
jne    1389 <get_parameters_of_recognition+0x269>
movl   $0x1,-0x3c(%rbp)
mov    -0x10(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,8),%rcx
mov    0x10(%rbp),%rax
mov    %rcx,(%rax)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    139c <get_parameters_of_recognition+0x27c>
jmp    138e <get_parameters_of_recognition+0x26e>
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    1329 <get_parameters_of_recognition+0x209>
cmpl   $0x0,-0x3c(%rbp)
jne    13b2 <get_parameters_of_recognition+0x292>
movl   $0x0,-0x4(%rbp)
jmp    16cd <get_parameters_of_recognition+0x5ad>
movl   $0x0,-0x3c(%rbp)
movl   $0x0,-0x34(%rbp)
mov    -0x34(%rbp),%eax
mov    -0x8(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jge    1433 <get_parameters_of_recognition+0x313>
mov    -0x10(%rbp),%rax
movslq -0x34(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xc3f(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%rax
jne    1420 <get_parameters_of_recognition+0x300>
movl   $0x1,-0x3c(%rbp)
mov    -0x10(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,8),%rcx
mov    -0x30(%rbp),%rax
mov    %rcx,(%rax)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    1433 <get_parameters_of_recognition+0x313>
jmp    1425 <get_parameters_of_recognition+0x305>
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    13c0 <get_parameters_of_recognition+0x2a0>
cmpl   $0x0,-0x3c(%rbp)
jne    1449 <get_parameters_of_recognition+0x329>
movl   $0x0,-0x4(%rbp)
jmp    16cd <get_parameters_of_recognition+0x5ad>
movl   $0x0,-0x3c(%rbp)
movl   $0x0,-0x34(%rbp)
mov    -0x34(%rbp),%eax
mov    -0x8(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jge    14ca <get_parameters_of_recognition+0x3aa>
mov    -0x10(%rbp),%rax
movslq -0x34(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xbae(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%rax
jne    14b7 <get_parameters_of_recognition+0x397>
movl   $0x1,-0x3c(%rbp)
mov    -0x10(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,8),%rcx
mov    0x20(%rbp),%rax
mov    %rcx,(%rax)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    14ca <get_parameters_of_recognition+0x3aa>
jmp    14bc <get_parameters_of_recognition+0x39c>
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    1457 <get_parameters_of_recognition+0x337>
cmpl   $0x0,-0x3c(%rbp)
jne    14e0 <get_parameters_of_recognition+0x3c0>
movl   $0x0,-0x4(%rbp)
jmp    16cd <get_parameters_of_recognition+0x5ad>
movl   $0x0,-0x3c(%rbp)
movl   $0x0,-0x34(%rbp)
mov    -0x34(%rbp),%eax
mov    -0x8(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jge    15b4 <get_parameters_of_recognition+0x494>
mov    -0x10(%rbp),%rax
movslq -0x34(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xb1d(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%rax
jne    15a1 <get_parameters_of_recognition+0x481>
mov    -0x10(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,8),%rdi
mov    0x28(%rbp),%rdx
lea    0xafa(%rip),%rsi
call   1040 <sscanf@plt>
cmp    $0x1,%eax
je     1550 <get_parameters_of_recognition+0x430>
jmp    15b4 <get_parameters_of_recognition+0x494>
mov    0x28(%rbp),%rax
movss  (%rax),%xmm0
cvtss2sd %xmm0,%xmm1
xorps  %xmm0,%xmm0
ucomisd %xmm1,%xmm0
ja     1587 <get_parameters_of_recognition+0x467>
mov    0x28(%rbp),%rax
movss  (%rax),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xa83(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    158c <get_parameters_of_recognition+0x46c>
jmp    15b4 <get_parameters_of_recognition+0x494>
movl   $0x1,-0x3c(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    15b4 <get_parameters_of_recognition+0x494>
jmp    15a6 <get_parameters_of_recognition+0x486>
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    14ee <get_parameters_of_recognition+0x3ce>
cmpl   $0x0,-0x3c(%rbp)
jne    15ca <get_parameters_of_recognition+0x4aa>
movl   $0x0,-0x4(%rbp)
jmp    16cd <get_parameters_of_recognition+0x5ad>
movl   $0x0,-0x3c(%rbp)
movl   $0x0,-0x34(%rbp)
mov    -0x34(%rbp),%eax
mov    -0x8(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jge    169e <get_parameters_of_recognition+0x57e>
mov    -0x10(%rbp),%rax
movslq -0x34(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xa3e(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%rax
jne    168b <get_parameters_of_recognition+0x56b>
mov    -0x10(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,8),%rdi
mov    0x18(%rbp),%rdx
lea    0xa10(%rip),%rsi
call   1040 <sscanf@plt>
cmp    $0x1,%eax
je     163a <get_parameters_of_recognition+0x51a>
jmp    169e <get_parameters_of_recognition+0x57e>
mov    0x18(%rbp),%rax
movss  (%rax),%xmm0
cvtss2sd %xmm0,%xmm1
xorps  %xmm0,%xmm0
ucomisd %xmm1,%xmm0
ja     1671 <get_parameters_of_recognition+0x551>
mov    0x18(%rbp),%rax
movss  (%rax),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x999(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1676 <get_parameters_of_recognition+0x556>
jmp    169e <get_parameters_of_recognition+0x57e>
movl   $0x1,-0x3c(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    169e <get_parameters_of_recognition+0x57e>
jmp    1690 <get_parameters_of_recognition+0x570>
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    15d8 <get_parameters_of_recognition+0x4b8>
cmpl   $0x0,-0x3c(%rbp)
jne    16b4 <get_parameters_of_recognition+0x594>
movl   $0x0,-0x4(%rbp)
jmp    16cd <get_parameters_of_recognition+0x5ad>
mov    -0x38(%rbp),%eax
shl    $0x1,%eax
mov    -0x8(%rbp),%ecx
sub    $0x2,%ecx
cmp    %ecx,%eax
sete   %al
and    $0x1,%al
movzbl %al,%eax
mov    %eax,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x40,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<get_parameters_of_recognition>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x18,%rsp
mov    %r9,0x10(%rsp)
xor    %eax,%eax
cmp    $0x2,%edi
jl     123c <get_parameters_of_recognition+0x11c>
mov    %rdx,%r12
mov    %rsi,%rbx
mov    %rcx,0x8(%rsp)
mov    %r8,(%rsp)
mov    %rdi,%r14
lea    -0x1(%rdi),%r15d
xor    %ebp,%ebp
lea    0xea7(%rip),%r13
nopl   (%rax)
mov    (%rbx,%rbp,8),%rdi
mov    %r13,%rsi
call   1030 <strcmp@plt>
test   %rax,%rax
je     117f <get_parameters_of_recognition+0x5f>
add    $0x1,%rbp
cmp    %rbp,%r15
jne    1160 <get_parameters_of_recognition+0x40>
jmp    123a <get_parameters_of_recognition+0x11a>
mov    0x8(%rbx,%rbp,8),%rax
mov    %rax,(%r12)
xor    %ebp,%ebp
lea    0xe78(%rip),%r12
mov    %r14,%r13
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
mov    (%rbx,%rbp,8),%rdi
mov    %r12,%rsi
call   1030 <strcmp@plt>
test   %rax,%rax
je     11bc <get_parameters_of_recognition+0x9c>
add    $0x1,%rbp
cmp    %rbp,%r15
jne    11a0 <get_parameters_of_recognition+0x80>
jmp    123a <get_parameters_of_recognition+0x11a>
mov    0x8(%rbx,%rbp,8),%rax
mov    0x8(%rsp),%rcx
mov    %rax,(%rcx)
xor    %ebp,%ebp
lea    0xe3c(%rip),%r14
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
mov    (%rbx,%rbp,8),%rdi
mov    %r14,%rsi
call   1030 <strcmp@plt>
test   %rax,%rax
je     11fc <get_parameters_of_recognition+0xdc>
add    $0x1,%rbp
cmp    %rbp,%r15
jne    11e0 <get_parameters_of_recognition+0xc0>
jmp    123a <get_parameters_of_recognition+0x11a>
mov    0x8(%rbx,%rbp,8),%rax
mov    (%rsp),%rcx
mov    %rax,(%rcx)
xor    %ebp,%ebp
lea    0xe07(%rip),%r14
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
mov    (%rbx,%rbp,8),%rdi
mov    %r14,%rsi
call   1030 <strcmp@plt>
test   %rax,%rax
je     124b <get_parameters_of_recognition+0x12b>
add    $0x1,%rbp
cmp    %rbp,%r15
jne    1220 <get_parameters_of_recognition+0x100>
xor    %eax,%eax
add    $0x18,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
mov    0x8(%rbx,%rbp,8),%rax
mov    0x50(%rsp),%rcx
mov    %rax,(%rcx)
xor    %ebp,%ebp
lea    0xdbe(%rip),%r14
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
mov    (%rbx,%rbp,8),%rdi
mov    %r14,%rsi
call   1030 <strcmp@plt>
test   %rax,%rax
je     128e <get_parameters_of_recognition+0x16e>
add    $0x1,%rbp
xor    %eax,%eax
cmp    %rbp,%r15
jne    1270 <get_parameters_of_recognition+0x150>
jmp    123c <get_parameters_of_recognition+0x11c>
mov    0x8(%rbx,%rbp,8),%rax
mov    0x10(%rsp),%rcx
mov    %rax,(%rcx)
xor    %ebp,%ebp
lea    0xd81(%rip),%r14
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
mov    (%rbx,%rbp,8),%rdi
mov    %r14,%rsi
call   1030 <strcmp@plt>
test   %rax,%rax
je     12d1 <get_parameters_of_recognition+0x1b1>
add    $0x1,%rbp
xor    %eax,%eax
cmp    %rbp,%r15
jne    12b0 <get_parameters_of_recognition+0x190>
jmp    123c <get_parameters_of_recognition+0x11c>
mov    0x8(%rbx,%rbp,8),%rax
mov    0x60(%rsp),%rcx
mov    %rax,(%rcx)
xor    %ebp,%ebp
lea    0xd44(%rip),%r14
mov    (%rbx,%rbp,8),%rdi
mov    %r14,%rsi
call   1030 <strcmp@plt>
test   %rax,%rax
je     1308 <get_parameters_of_recognition+0x1e8>
add    $0x1,%rbp
xor    %eax,%eax
cmp    %rbp,%r15
jne    12e7 <get_parameters_of_recognition+0x1c7>
jmp    123c <get_parameters_of_recognition+0x11c>
mov    0x8(%rbx,%rbp,8),%rdi
lea    0xd1f(%rip),%rsi
mov    0x68(%rsp),%rbp
mov    %rbp,%rdx
call   1040 <sscanf@plt>
mov    %eax,%ecx
xor    %eax,%eax
cmp    $0x1,%ecx
jne    123c <get_parameters_of_recognition+0x11c>
movss  0x0(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm0,%xmm1
ja     123c <get_parameters_of_recognition+0x11c>
ucomiss 0xcba(%rip),%xmm0
ja     123c <get_parameters_of_recognition+0x11c>
cmp    $0x2,%r13d
jl     123c <get_parameters_of_recognition+0x11c>
xor    %ebp,%ebp
lea    0xcd7(%rip),%r14
mov    (%rbx,%rbp,8),%rdi
mov    %r14,%rsi
call   1030 <strcmp@plt>
test   %rax,%rax
je     1380 <get_parameters_of_recognition+0x260>
add    $0x1,%rbp
xor    %eax,%eax
cmp    %rbp,%r15
jne    135f <get_parameters_of_recognition+0x23f>
jmp    123c <get_parameters_of_recognition+0x11c>
mov    0x8(%rbx,%rbp,8),%rdi
lea    0xca7(%rip),%rsi
mov    0x58(%rsp),%rbx
mov    %rbx,%rdx
call   1040 <sscanf@plt>
mov    %eax,%ecx
xor    %eax,%eax
cmp    $0x1,%ecx
jne    123c <get_parameters_of_recognition+0x11c>
movss  (%rbx),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm0,%xmm1
ja     123c <get_parameters_of_recognition+0x11c>
ucomiss 0xc43(%rip),%xmm0
ja     123c <get_parameters_of_recognition+0x11c>
xor    %eax,%eax
cmp    $0x12,%r13d
sete   %al
jmp    123c <get_parameters_of_recognition+0x11c>

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

LLVM IR (-O2):
@.str = [5 x i8] c"-src\00"
@.str.1 = [5 x i8] c"-res\00"
@.str.2 = [10 x i8] c"-phonemes\00"
@.str.3 = [7 x i8] c"-words\00"
@.str.4 = [6 x i8] c"-conf\00"
@.str.5 = [6 x i8] c"-lang\00"
@.str.6 = [8 x i8] c"-lambda\00"
@.str.7 = [3 x i8] c"%f\00"
@.str.8 = [4 x i8] c"-pr\00"
define i32 @get_parameters_of_recognition(i32 %0, i8** nocapture %1, i8** nocapture writeonly %2, i8** nocapture writeonly %3, i8** nocapture writeonly %4, i8** nocapture writeonly %5, i8** nocapture writeonly %6, float* %7, i8** nocapture writeonly %8, float* %9) {
%11 = icmp sgt i32 %0, 1
br i1 %11, label %12, label %138
12: ; preds = %10
%13 = add nsw i32 %0, -1
%14 = zext i32 %13 to i64
br label %15
15: ; preds = %12, %22
%16 = phi i64 [ 0, %12 ], [ %21, %22 ]
%17 = getelementptr inbounds i8*, i8** %1, i64 %16
%18 = load i8*, i8** %17
%19 = tail call i64 @strcmp(i8* %18, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0))
%20 = icmp eq i64 %19, 0
%21 = add nuw i64 %16, 1
br i1 %20, label %24, label %22
22: ; preds = %15
%23 = icmp eq i64 %21, %14
br i1 %23, label %138, label %15
24: ; preds = %15
%25 = and i64 %21, 4294967295
%26 = getelementptr inbounds i8*, i8** %1, i64 %25
%27 = load i8*, i8** %26
store i8* %27, i8** %2
br label %28
28: ; preds = %24, %35
%29 = phi i64 [ 0, %24 ], [ %34, %35 ]
%30 = getelementptr inbounds i8*, i8** %1, i64 %29
%31 = load i8*, i8** %30
%32 = tail call i64 @strcmp(i8* %31, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0))
%33 = icmp eq i64 %32, 0
%34 = add nuw i64 %29, 1
br i1 %33, label %37, label %35
35: ; preds = %28
%36 = icmp eq i64 %34, %14
br i1 %36, label %138, label %28
37: ; preds = %28
%38 = and i64 %34, 4294967295
%39 = getelementptr inbounds i8*, i8** %1, i64 %38
%40 = load i8*, i8** %39
store i8* %40, i8** %3
br label %41
41: ; preds = %37, %48
%42 = phi i64 [ 0, %37 ], [ %47, %48 ]
%43 = getelementptr inbounds i8*, i8** %1, i64 %42
%44 = load i8*, i8** %43
%45 = tail call i64 @strcmp(i8* %44, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2, i64 0, i64 0))
%46 = icmp eq i64 %45, 0
%47 = add nuw i64 %42, 1
br i1 %46, label %50, label %48
48: ; preds = %41
%49 = icmp eq i64 %47, %14
br i1 %49, label %138, label %41
50: ; preds = %41
%51 = and i64 %47, 4294967295
%52 = getelementptr inbounds i8*, i8** %1, i64 %51
%53 = load i8*, i8** %52
store i8* %53, i8** %4
br label %54
54: ; preds = %50, %61
%55 = phi i64 [ 0, %50 ], [ %60, %61 ]
%56 = getelementptr inbounds i8*, i8** %1, i64 %55
%57 = load i8*, i8** %56
%58 = tail call i64 @strcmp(i8* %57, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.3, i64 0, i64 0))
%59 = icmp eq i64 %58, 0
%60 = add nuw i64 %55, 1
br i1 %59, label %63, label %61
61: ; preds = %54
%62 = icmp eq i64 %60, %14
br i1 %62, label %138, label %54
63: ; preds = %54
%64 = and i64 %60, 4294967295
%65 = getelementptr inbounds i8*, i8** %1, i64 %64
%66 = load i8*, i8** %65
store i8* %66, i8** %6
br label %67
67: ; preds = %63, %74
%68 = phi i64 [ 0, %63 ], [ %73, %74 ]
%69 = getelementptr inbounds i8*, i8** %1, i64 %68
%70 = load i8*, i8** %69
%71 = tail call i64 @strcmp(i8* %70, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.4, i64 0, i64 0))
%72 = icmp eq i64 %71, 0
%73 = add nuw i64 %68, 1
br i1 %72, label %76, label %74
74: ; preds = %67
%75 = icmp eq i64 %73, %14
br i1 %75, label %138, label %67
76: ; preds = %67
%77 = and i64 %73, 4294967295
%78 = getelementptr inbounds i8*, i8** %1, i64 %77
%79 = load i8*, i8** %78
store i8* %79, i8** %5
br label %80
80: ; preds = %76, %87
%81 = phi i64 [ 0, %76 ], [ %86, %87 ]
%82 = getelementptr inbounds i8*, i8** %1, i64 %81
%83 = load i8*, i8** %82
%84 = tail call i64 @strcmp(i8* %83, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.5, i64 0, i64 0))
%85 = icmp eq i64 %84, 0
%86 = add nuw i64 %81, 1
br i1 %85, label %89, label %87
87: ; preds = %80
%88 = icmp eq i64 %86, %14
br i1 %88, label %138, label %80
89: ; preds = %80
%90 = and i64 %86, 4294967295
%91 = getelementptr inbounds i8*, i8** %1, i64 %90
%92 = load i8*, i8** %91
store i8* %92, i8** %8
br label %93
93: ; preds = %89, %106
%94 = phi i64 [ 0, %89 ], [ %99, %106 ]
%95 = getelementptr inbounds i8*, i8** %1, i64 %94
%96 = load i8*, i8** %95
%97 = tail call i64 @strcmp(i8* %96, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.6, i64 0, i64 0))
%98 = icmp eq i64 %97, 0
%99 = add nuw i64 %94, 1
br i1 %98, label %100, label %106
100: ; preds = %93
%101 = and i64 %99, 4294967295
%102 = getelementptr inbounds i8*, i8** %1, i64 %101
%103 = load i8*, i8** %102
%104 = tail call i32 @sscanf(i8* %103, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.7, i64 0, i64 0), float* %9)
%105 = icmp eq i32 %104, 1
br i1 %105, label %108, label %138
106: ; preds = %93
%107 = icmp eq i64 %99, %14
br i1 %107, label %138, label %93
108: ; preds = %100
%109 = load float, float* %9
%110 = fcmp olt float %109, 0.000000e+00
%111 = fcmp ogt float %109, 1.000000e+00
%112 = or i1 %110, %111
%113 = icmp slt i32 %0, 2
%114 = or i1 %112, %113
br i1 %114, label %138, label %115
115: ; preds = %108, %128
%116 = phi i64 [ %121, %128 ], [ 0, %108 ]
%117 = getelementptr inbounds i8*, i8** %1, i64 %116
%118 = load i8*, i8** %117
%119 = tail call i64 @strcmp(i8* %118, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.8, i64 0, i64 0))
%120 = icmp eq i64 %119, 0
%121 = add nuw i64 %116, 1
br i1 %120, label %122, label %128
122: ; preds = %115
%123 = and i64 %121, 4294967295
%124 = getelementptr inbounds i8*, i8** %1, i64 %123
%125 = load i8*, i8** %124
%126 = tail call i32 @sscanf(i8* %125, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.7, i64 0, i64 0), float* %7)
%127 = icmp eq i32 %126, 1
br i1 %127, label %130, label %138
128: ; preds = %115
%129 = icmp eq i64 %121, %14
br i1 %129, label %138, label %115
130: ; preds = %122
%131 = load float, float* %7
%132 = fcmp olt float %131, 0.000000e+00
%133 = fcmp ogt float %131, 1.000000e+00
%134 = or i1 %132, %133
br i1 %134, label %138, label %135
135: ; preds = %130
%136 = icmp eq i32 %0, 18
%137 = zext i1 %136 to i32
br label %138
138: ; preds = %22, %35, %48, %61, %74, %87, %106, %128, %10, %122, %100, %130, %108, %135
%139 = phi i32 [ %137, %135 ], [ 0, %108 ], [ 0, %130 ], [ 0, %100 ], [ 0, %122 ], [ 0, %10 ], [ 0, %128 ], [ 0, %106 ], [ 0, %87 ], [ 0, %74 ], [ 0, %61 ], [ 0, %48 ], [ 0, %35 ], [ 0, %22 ]
ret i32 %139
}