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

/* Forward declarations */

/* Type definitions */
typedef int /*<<< orphan*/ BIGNUM;

/* Variables and functions */
int /*<<< orphan*/ BN_free(int /*<<< orphan*/ *);
int /*<<< orphan*/ parsedecBN(int /*<<< orphan*/ **, char *);
int /*<<< orphan*/ test_BN_abs_eq_word(char *, int, char *, char *,
                                       int /*<<< orphan*/ *, int);
int /*<<< orphan*/ test_BN_eq_one(char *, int, char *, int /*<<< orphan*/ *);
int /*<<< orphan*/ test_BN_eq_word(char *, int, char *, char *,
                                   int /*<<< orphan*/ *, int);
int /*<<< orphan*/ test_BN_eq_zero(char *, int, char *, int /*<<< orphan*/ *);
int /*<<< orphan*/ test_BN_even(char *, int, char *, int /*<<< orphan*/ *);
int /*<<< orphan*/ test_BN_ge_zero(char *, int, char *, int /*<<< orphan*/ *);
int /*<<< orphan*/ test_BN_gt_zero(char *, int, char *, int /*<<< orphan*/ *);
int /*<<< orphan*/ test_BN_le_zero(char *, int, char *, int /*<<< orphan*/ *);
int /*<<< orphan*/ test_BN_lt_zero(char *, int, char *, int /*<<< orphan*/ *);
int /*<<< orphan*/ test_BN_ne_zero(char *, int, char *, int /*<<< orphan*/ *);
int /*<<< orphan*/ test_BN_odd(char *, int, char *, int /*<<< orphan*/ *);
int /*<<< orphan*/ test_int_eq(char *, int, char *, char *, int /*<<< orphan*/,
                               int);
int test_dec2bn(void) {
  BIGNUM *bn = NULL;
  int st = 0;
  if (!test_int_eq(
          "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
          "2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/"
          "master/Src/OSF/OpenSSL-111/test/bntest.c",
          1702, "parsedecBN(&bn, \"0\")", "1", parsedecBN(&bn, "0"), 1) ||
      !test_BN_eq_word(
          "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
          "2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/"
          "master/Src/OSF/OpenSSL-111/test/bntest.c",
          1703, "bn", "0", bn, 0) ||
      !test_BN_eq_zero(
          "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
          "2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/"
          "master/Src/OSF/OpenSSL-111/test/bntest.c",
          1704, "bn", bn) ||
      !test_BN_le_zero(
          "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
          "2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/"
          "master/Src/OSF/OpenSSL-111/test/bntest.c",
          1705, "bn", bn) ||
      !test_BN_ge_zero(
          "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
          "2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/"
          "master/Src/OSF/OpenSSL-111/test/bntest.c",
          1706, "bn", bn) ||
      !test_BN_even(
          "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
          "2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/"
          "master/Src/OSF/OpenSSL-111/test/bntest.c",
          1707, "bn", bn))
    goto err;
  BN_free(bn);
  bn = NULL;
  if (!test_int_eq(
          "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
          "2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/"
          "master/Src/OSF/OpenSSL-111/test/bntest.c",
          1712, "parsedecBN(&bn, \"256\")", "3", parsedecBN(&bn, "256"), 3) ||
      !test_BN_eq_word(
          "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
          "2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/"
          "master/Src/OSF/OpenSSL-111/test/bntest.c",
          1713, "bn", "256", bn, 256) ||
      !test_BN_ge_zero(
          "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
          "2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/"
          "master/Src/OSF/OpenSSL-111/test/bntest.c",
          1714, "bn", bn) ||
      !test_BN_gt_zero(
          "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
          "2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/"
          "master/Src/OSF/OpenSSL-111/test/bntest.c",
          1715, "bn", bn) ||
      !test_BN_ne_zero(
          "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
          "2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/"
          "master/Src/OSF/OpenSSL-111/test/bntest.c",
          1716, "bn", bn) ||
      !test_BN_even(
          "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
          "2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/"
          "master/Src/OSF/OpenSSL-111/test/bntest.c",
          1717, "bn", bn))
    goto err;
  BN_free(bn);
  bn = NULL;
  if (!test_int_eq(
          "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
          "2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/"
          "master/Src/OSF/OpenSSL-111/test/bntest.c",
          1722, "parsedecBN(&bn, \"-42\")", "3", parsedecBN(&bn, "-42"), 3) ||
      !test_BN_abs_eq_word(
          "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
          "2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/"
          "master/Src/OSF/OpenSSL-111/test/bntest.c",
          1723, "bn", "42", bn, 42) ||
      !test_BN_lt_zero(
          "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
          "2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/"
          "master/Src/OSF/OpenSSL-111/test/bntest.c",
          1724, "bn", bn) ||
      !test_BN_le_zero(
          "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
          "2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/"
          "master/Src/OSF/OpenSSL-111/test/bntest.c",
          1725, "bn", bn) ||
      !test_BN_ne_zero(
          "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
          "2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/"
          "master/Src/OSF/OpenSSL-111/test/bntest.c",
          1726, "bn", bn) ||
      !test_BN_even(
          "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
          "2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/"
          "master/Src/OSF/OpenSSL-111/test/bntest.c",
          1727, "bn", bn))
    goto err;
  BN_free(bn);
  bn = NULL;
  if (!test_int_eq(
          "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
          "2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/"
          "master/Src/OSF/OpenSSL-111/test/bntest.c",
          1732, "parsedecBN(&bn, \"1\")", "1", parsedecBN(&bn, "1"), 1) ||
      !test_BN_eq_word(
          "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
          "2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/"
          "master/Src/OSF/OpenSSL-111/test/bntest.c",
          1733, "bn", "1", bn, 1) ||
      !test_BN_ne_zero(
          "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
          "2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/"
          "master/Src/OSF/OpenSSL-111/test/bntest.c",
          1734, "bn", bn) ||
      !test_BN_gt_zero(
          "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
          "2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/"
          "master/Src/OSF/OpenSSL-111/test/bntest.c",
          1735, "bn", bn) ||
      !test_BN_ge_zero(
          "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
          "2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/"
          "master/Src/OSF/OpenSSL-111/test/bntest.c",
          1736, "bn", bn) ||
      !test_BN_eq_one(
          "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
          "2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/"
          "master/Src/OSF/OpenSSL-111/test/bntest.c",
          1737, "bn", bn) ||
      !test_BN_odd(
          "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
          "2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/"
          "master/Src/OSF/OpenSSL-111/test/bntest.c",
          1738, "bn", bn))
    goto err;
  BN_free(bn);
  bn = NULL;
  if (!test_int_eq(
          "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
          "2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/"
          "master/Src/OSF/OpenSSL-111/test/bntest.c",
          1743, "parsedecBN(&bn, \"-0\")", "2", parsedecBN(&bn, "-0"), 2) ||
      !test_BN_eq_zero(
          "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
          "2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/"
          "master/Src/OSF/OpenSSL-111/test/bntest.c",
          1744, "bn", bn) ||
      !test_BN_ge_zero(
          "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
          "2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/"
          "master/Src/OSF/OpenSSL-111/test/bntest.c",
          1745, "bn", bn) ||
      !test_BN_le_zero(
          "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
          "2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/"
          "master/Src/OSF/OpenSSL-111/test/bntest.c",
          1746, "bn", bn) ||
      !test_BN_even(
          "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
          "2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/"
          "master/Src/OSF/OpenSSL-111/test/bntest.c",
          1747, "bn", bn))
    goto err;
  BN_free(bn);
  bn = NULL;
  if (!test_int_eq(
          "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
          "2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/"
          "master/Src/OSF/OpenSSL-111/test/bntest.c",
          1752, "parsedecBN(&bn, \"42trailing garbage is ignored\")", "2",
          parsedecBN(&bn, "42trailing garbage is ignored"), 2) ||
      !test_BN_abs_eq_word(
          "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
          "2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/"
          "master/Src/OSF/OpenSSL-111/test/bntest.c",
          1753, "bn", "42", bn, 42) ||
      !test_BN_ge_zero(
          "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
          "2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/"
          "master/Src/OSF/OpenSSL-111/test/bntest.c",
          1754, "bn", bn) ||
      !test_BN_gt_zero(
          "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
          "2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/"
          "master/Src/OSF/OpenSSL-111/test/bntest.c",
          1755, "bn", bn) ||
      !test_BN_ne_zero(
          "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
          "2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/"
          "master/Src/OSF/OpenSSL-111/test/bntest.c",
          1756, "bn", bn) ||
      !test_BN_even(
          "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
          "2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/"
          "master/Src/OSF/OpenSSL-111/test/bntest.c",
          1757, "bn", bn))
    goto err;
  st = 1;
err:
  BN_free(bn);
  return st;
}


x86 assembly (clang, -O0):
<test_dec2bn>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
movq   $0x0,-0x8(%rbp)
movl   $0x0,-0xc(%rbp)
lea    -0x8(%rbp),%rdi
lea    0xf26(%rip),%rsi
call   10d0 <parsedecBN@plt>
mov    %eax,%r8d
lea    0xdef(%rip),%rdi
mov    $0x6a6,%esi
lea    0xe8d(%rip),%rdx
lea    0xe9b(%rip),%rcx
mov    $0x1,%r9d
call   1080 <test_int_eq@plt>
cmp    $0x0,%eax
je     12fb <test_dec2bn+0x11b>
mov    -0x8(%rbp),%r8
lea    0xdbd(%rip),%rdi
mov    $0x6a7,%esi
lea    0xe72(%rip),%rdx
lea    0xed2(%rip),%rcx
xor    %r9d,%r9d
call   10a0 <test_BN_eq_word@plt>
cmp    $0x0,%eax
je     12fb <test_dec2bn+0x11b>
mov    -0x8(%rbp),%rcx
lea    0xd8e(%rip),%rdi
mov    $0x6a8,%esi
lea    0xe43(%rip),%rdx
call   1060 <test_BN_eq_zero@plt>
cmp    $0x0,%eax
je     12fb <test_dec2bn+0x11b>
mov    -0x8(%rbp),%rcx
lea    0xd69(%rip),%rdi
mov    $0x6a9,%esi
lea    0xe1e(%rip),%rdx
call   10e0 <test_BN_le_zero@plt>
cmp    $0x0,%eax
je     12fb <test_dec2bn+0x11b>
mov    -0x8(%rbp),%rcx
lea    0xd44(%rip),%rdi
mov    $0x6aa,%esi
lea    0xdf9(%rip),%rdx
call   1030 <test_BN_ge_zero@plt>
cmp    $0x0,%eax
je     12fb <test_dec2bn+0x11b>
mov    -0x8(%rbp),%rcx
lea    0xd1f(%rip),%rdi
mov    $0x6ab,%esi
lea    0xdd4(%rip),%rdx
call   10f0 <test_BN_even@plt>
cmp    $0x0,%eax
jne    1300 <test_dec2bn+0x120>
jmp    188b <test_dec2bn+0x6ab>
mov    -0x8(%rbp),%rdi
call   1090 <BN_free@plt>
movq   $0x0,-0x8(%rbp)
lea    -0x8(%rbp),%rdi
lea    0xdc1(%rip),%rsi
call   10d0 <parsedecBN@plt>
mov    %eax,%r8d
lea    0xcd5(%rip),%rdi
mov    $0x6b0,%esi
lea    0xd8d(%rip),%rdx
lea    0xd9d(%rip),%rcx
mov    $0x3,%r9d
call   1080 <test_int_eq@plt>
cmp    $0x0,%eax
je     1418 <test_dec2bn+0x238>
mov    -0x8(%rbp),%r8
lea    0xca3(%rip),%rdi
mov    $0x6b1,%esi
lea    0xd58(%rip),%rdx
lea    0xd6d(%rip),%rcx
mov    $0x100,%r9d
call   10a0 <test_BN_eq_word@plt>
cmp    $0x0,%eax
je     1418 <test_dec2bn+0x238>
mov    -0x8(%rbp),%rcx
lea    0xc71(%rip),%rdi
mov    $0x6b2,%esi
lea    0xd26(%rip),%rdx
call   1030 <test_BN_ge_zero@plt>
cmp    $0x0,%eax
je     1418 <test_dec2bn+0x238>
mov    -0x8(%rbp),%rcx
lea    0xc4c(%rip),%rdi
mov    $0x6b3,%esi
lea    0xd01(%rip),%rdx
call   10c0 <test_BN_gt_zero@plt>
cmp    $0x0,%eax
je     1418 <test_dec2bn+0x238>
mov    -0x8(%rbp),%rcx
lea    0xc27(%rip),%rdi
mov    $0x6b4,%esi
lea    0xcdc(%rip),%rdx
call   1070 <test_BN_ne_zero@plt>
cmp    $0x0,%eax
je     1418 <test_dec2bn+0x238>
mov    -0x8(%rbp),%rcx
lea    0xc02(%rip),%rdi
mov    $0x6b5,%esi
lea    0xcb7(%rip),%rdx
call   10f0 <test_BN_even@plt>
cmp    $0x0,%eax
jne    141d <test_dec2bn+0x23d>
jmp    188b <test_dec2bn+0x6ab>
mov    -0x8(%rbp),%rdi
call   1090 <BN_free@plt>
movq   $0x0,-0x8(%rbp)
lea    -0x8(%rbp),%rdi
lea    0xcbf(%rip),%rsi
call   10d0 <parsedecBN@plt>
mov    %eax,%r8d
lea    0xbb8(%rip),%rdi
mov    $0x6ba,%esi
lea    0xc8d(%rip),%rdx
lea    0xc80(%rip),%rcx
mov    $0x3,%r9d
call   1080 <test_int_eq@plt>
cmp    $0x0,%eax
je     1535 <test_dec2bn+0x355>
mov    -0x8(%rbp),%r8
lea    0xb86(%rip),%rdi
mov    $0x6bb,%esi
lea    0xc3b(%rip),%rdx
lea    0xc6c(%rip),%rcx
mov    $0x2a,%r9d
call   1050 <test_BN_abs_eq_word@plt>
cmp    $0x0,%eax
je     1535 <test_dec2bn+0x355>
mov    -0x8(%rbp),%rcx
lea    0xb54(%rip),%rdi
mov    $0x6bc,%esi
lea    0xc09(%rip),%rdx
call   1100 <test_BN_lt_zero@plt>
cmp    $0x0,%eax
je     1535 <test_dec2bn+0x355>
mov    -0x8(%rbp),%rcx
lea    0xb2f(%rip),%rdi
mov    $0x6bd,%esi
lea    0xbe4(%rip),%rdx
call   10e0 <test_BN_le_zero@plt>
cmp    $0x0,%eax
je     1535 <test_dec2bn+0x355>
mov    -0x8(%rbp),%rcx
lea    0xb0a(%rip),%rdi
mov    $0x6be,%esi
lea    0xbbf(%rip),%rdx
call   1070 <test_BN_ne_zero@plt>
cmp    $0x0,%eax
je     1535 <test_dec2bn+0x355>
mov    -0x8(%rbp),%rcx
lea    0xae5(%rip),%rdi
mov    $0x6bf,%esi
lea    0xb9a(%rip),%rdx
call   10f0 <test_BN_even@plt>
cmp    $0x0,%eax
jne    153a <test_dec2bn+0x35a>
jmp    188b <test_dec2bn+0x6ab>
mov    -0x8(%rbp),%rdi
call   1090 <BN_free@plt>
movq   $0x0,-0x8(%rbp)
lea    -0x8(%rbp),%rdi
lea    0xb69(%rip),%rsi
call   10d0 <parsedecBN@plt>
mov    %eax,%r8d
lea    0xa9b(%rip),%rdi
mov    $0x6c4,%esi
lea    0xb8b(%rip),%rdx
lea    0xb47(%rip),%rcx
mov    $0x1,%r9d
call   1080 <test_int_eq@plt>
cmp    $0x0,%eax
je     1677 <test_dec2bn+0x497>
mov    -0x8(%rbp),%r8
lea    0xa69(%rip),%rdi
mov    $0x6c5,%esi
lea    0xb1e(%rip),%rdx
lea    0xb15(%rip),%rcx
mov    $0x1,%r9d
call   10a0 <test_BN_eq_word@plt>
cmp    $0x0,%eax
je     1677 <test_dec2bn+0x497>
mov    -0x8(%rbp),%rcx
lea    0xa37(%rip),%rdi
mov    $0x6c6,%esi
lea    0xaec(%rip),%rdx
call   1070 <test_BN_ne_zero@plt>
cmp    $0x0,%eax
je     1677 <test_dec2bn+0x497>
mov    -0x8(%rbp),%rcx
lea    0xa12(%rip),%rdi
mov    $0x6c7,%esi
lea    0xac7(%rip),%rdx
call   10c0 <test_BN_gt_zero@plt>
cmp    $0x0,%eax
je     1677 <test_dec2bn+0x497>
mov    -0x8(%rbp),%rcx
lea    0x9ed(%rip),%rdi
mov    $0x6c8,%esi
lea    0xaa2(%rip),%rdx
call   1030 <test_BN_ge_zero@plt>
cmp    $0x0,%eax
je     1677 <test_dec2bn+0x497>
mov    -0x8(%rbp),%rcx
lea    0x9c8(%rip),%rdi
mov    $0x6c9,%esi
lea    0xa7d(%rip),%rdx
call   1040 <test_BN_eq_one@plt>
cmp    $0x0,%eax
je     1677 <test_dec2bn+0x497>
mov    -0x8(%rbp),%rcx
lea    0x9a3(%rip),%rdi
mov    $0x6ca,%esi
lea    0xa58(%rip),%rdx
call   10b0 <test_BN_odd@plt>
cmp    $0x0,%eax
jne    167c <test_dec2bn+0x49c>
jmp    188b <test_dec2bn+0x6ab>
mov    -0x8(%rbp),%rdi
call   1090 <BN_free@plt>
movq   $0x0,-0x8(%rbp)
lea    -0x8(%rbp),%rdi
lea    0xa8f(%rip),%rsi
call   10d0 <parsedecBN@plt>
mov    %eax,%r8d
lea    0x959(%rip),%rdi
mov    $0x6cf,%esi
lea    0xa5e(%rip),%rdx
lea    0xa40(%rip),%rcx
mov    $0x2,%r9d
call   1080 <test_int_eq@plt>
cmp    $0x0,%eax
je     1762 <test_dec2bn+0x582>
mov    -0x8(%rbp),%rcx
lea    0x927(%rip),%rdi
mov    $0x6d0,%esi
lea    0x9dc(%rip),%rdx
call   1060 <test_BN_eq_zero@plt>
cmp    $0x0,%eax
je     1762 <test_dec2bn+0x582>
mov    -0x8(%rbp),%rcx
lea    0x902(%rip),%rdi
mov    $0x6d1,%esi
lea    0x9b7(%rip),%rdx
call   1030 <test_BN_ge_zero@plt>
cmp    $0x0,%eax
je     1762 <test_dec2bn+0x582>
mov    -0x8(%rbp),%rcx
lea    0x8dd(%rip),%rdi
mov    $0x6d2,%esi
lea    0x992(%rip),%rdx
call   10e0 <test_BN_le_zero@plt>
cmp    $0x0,%eax
je     1762 <test_dec2bn+0x582>
mov    -0x8(%rbp),%rcx
lea    0x8b8(%rip),%rdi
mov    $0x6d3,%esi
lea    0x96d(%rip),%rdx
call   10f0 <test_BN_even@plt>
cmp    $0x0,%eax
jne    1767 <test_dec2bn+0x587>
jmp    188b <test_dec2bn+0x6ab>
mov    -0x8(%rbp),%rdi
call   1090 <BN_free@plt>
movq   $0x0,-0x8(%rbp)
lea    -0x8(%rbp),%rdi
lea    0x9d8(%rip),%rsi
call   10d0 <parsedecBN@plt>
mov    %eax,%r8d
lea    0x86e(%rip),%rdi
mov    $0x6d8,%esi
lea    0x98c(%rip),%rdx
lea    0x955(%rip),%rcx
mov    $0x2,%r9d
call   1080 <test_int_eq@plt>
cmp    $0x0,%eax
je     187f <test_dec2bn+0x69f>
mov    -0x8(%rbp),%r8
lea    0x83c(%rip),%rdi
mov    $0x6d9,%esi
lea    0x8f1(%rip),%rdx
lea    0x922(%rip),%rcx
mov    $0x2a,%r9d
call   1050 <test_BN_abs_eq_word@plt>
cmp    $0x0,%eax
je     187f <test_dec2bn+0x69f>
mov    -0x8(%rbp),%rcx
lea    0x80a(%rip),%rdi
mov    $0x6da,%esi
lea    0x8bf(%rip),%rdx
call   1030 <test_BN_ge_zero@plt>
cmp    $0x0,%eax
je     187f <test_dec2bn+0x69f>
mov    -0x8(%rbp),%rcx
lea    0x7e5(%rip),%rdi
mov    $0x6db,%esi
lea    0x89a(%rip),%rdx
call   10c0 <test_BN_gt_zero@plt>
cmp    $0x0,%eax
je     187f <test_dec2bn+0x69f>
mov    -0x8(%rbp),%rcx
lea    0x7c0(%rip),%rdi
mov    $0x6dc,%esi
lea    0x875(%rip),%rdx
call   1070 <test_BN_ne_zero@plt>
cmp    $0x0,%eax
je     187f <test_dec2bn+0x69f>
mov    -0x8(%rbp),%rcx
lea    0x79b(%rip),%rdi
mov    $0x6dd,%esi
lea    0x850(%rip),%rdx
call   10f0 <test_BN_even@plt>
cmp    $0x0,%eax
jne    1884 <test_dec2bn+0x6a4>
jmp    188b <test_dec2bn+0x6ab>
movl   $0x1,-0xc(%rbp)
mov    -0x8(%rbp),%rdi
call   1090 <BN_free@plt>
mov    -0xc(%rbp),%eax
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<test_dec2bn>:
push   %r14
push   %rbx
push   %rax
movq   $0x0,(%rsp)
lea    0xf35(%rip),%rsi
mov    %rsp,%rdi
call   10d0 <parsedecBN@plt>
lea    0xdfe(%rip),%rdi
lea    0xea1(%rip),%rdx
lea    0xeaf(%rip),%rcx
mov    $0x6a6,%esi
mov    %eax,%r8d
mov    $0x1,%r9d
call   1080 <test_int_eq@plt>
test   %eax,%eax
je     1827 <test_dec2bn+0x647>
mov    (%rsp),%r8
lea    0xdca(%rip),%rdi
lea    0xe84(%rip),%rdx
lea    0xee4(%rip),%rcx
xor    %ebx,%ebx
mov    $0x6a7,%esi
xor    %r9d,%r9d
call   10a0 <test_BN_eq_word@plt>
test   %eax,%eax
je     1829 <test_dec2bn+0x649>
mov    (%rsp),%rcx
lea    0xd9a(%rip),%rdi
lea    0xe54(%rip),%rdx
mov    $0x6a8,%esi
call   1060 <test_BN_eq_zero@plt>
test   %eax,%eax
je     1829 <test_dec2bn+0x649>
mov    (%rsp),%rcx
lea    0xd76(%rip),%rdi
lea    0xe30(%rip),%rdx
mov    $0x6a9,%esi
call   10e0 <test_BN_le_zero@plt>
test   %eax,%eax
je     1829 <test_dec2bn+0x649>
mov    (%rsp),%rcx
lea    0xd52(%rip),%rdi
lea    0xe0c(%rip),%rdx
mov    $0x6aa,%esi
call   1030 <test_BN_ge_zero@plt>
test   %eax,%eax
je     1829 <test_dec2bn+0x649>
mov    (%rsp),%rcx
lea    0xd2e(%rip),%rdi
lea    0xde8(%rip),%rdx
mov    $0x6ab,%esi
call   10f0 <test_BN_even@plt>
test   %eax,%eax
je     1829 <test_dec2bn+0x649>
mov    (%rsp),%rdi
call   1090 <BN_free@plt>
movq   $0x0,(%rsp)
lea    0xdda(%rip),%rsi
mov    %rsp,%rdi
call   10d0 <parsedecBN@plt>
lea    0xcee(%rip),%rdi
lea    0xdab(%rip),%rdx
lea    0xdbb(%rip),%rcx
mov    $0x6b0,%esi
mov    %eax,%r8d
mov    $0x3,%r9d
call   1080 <test_int_eq@plt>
test   %eax,%eax
je     1829 <test_dec2bn+0x649>
mov    (%rsp),%r8
lea    0xcba(%rip),%rdi
lea    0xd74(%rip),%rdx
lea    0xd89(%rip),%rcx
mov    $0x6b1,%esi
mov    $0x100,%r9d
call   10a0 <test_BN_eq_word@plt>
test   %eax,%eax
je     1829 <test_dec2bn+0x649>
mov    (%rsp),%rcx
lea    0xc89(%rip),%rdi
lea    0xd43(%rip),%rdx
mov    $0x6b2,%esi
call   1030 <test_BN_ge_zero@plt>
test   %eax,%eax
je     1829 <test_dec2bn+0x649>
mov    (%rsp),%rcx
lea    0xc65(%rip),%rdi
lea    0xd1f(%rip),%rdx
mov    $0x6b3,%esi
call   10c0 <test_BN_gt_zero@plt>
test   %eax,%eax
je     1829 <test_dec2bn+0x649>
mov    (%rsp),%rcx
lea    0xc41(%rip),%rdi
lea    0xcfb(%rip),%rdx
mov    $0x6b4,%esi
call   1070 <test_BN_ne_zero@plt>
test   %eax,%eax
je     1829 <test_dec2bn+0x649>
mov    (%rsp),%rcx
lea    0xc1d(%rip),%rdi
lea    0xcd7(%rip),%rdx
mov    $0x6b5,%esi
call   10f0 <test_BN_even@plt>
test   %eax,%eax
je     1829 <test_dec2bn+0x649>
mov    (%rsp),%rdi
call   1090 <BN_free@plt>
movq   $0x0,(%rsp)
lea    0xce4(%rip),%rsi
mov    %rsp,%rdi
call   10d0 <parsedecBN@plt>
lea    0xbdd(%rip),%rdi
lea    0xcb7(%rip),%rdx
lea    0xcaa(%rip),%rcx
mov    $0x6ba,%esi
mov    %eax,%r8d
mov    $0x3,%r9d
call   1080 <test_int_eq@plt>
test   %eax,%eax
je     1829 <test_dec2bn+0x649>
mov    (%rsp),%r8
lea    0xba9(%rip),%rdi
lea    0xc63(%rip),%rdx
lea    0xc94(%rip),%rcx
mov    $0x6bb,%esi
mov    $0x2a,%r9d
call   1050 <test_BN_abs_eq_word@plt>
test   %eax,%eax
je     1829 <test_dec2bn+0x649>
mov    (%rsp),%rcx
lea    0xb78(%rip),%rdi
lea    0xc32(%rip),%rdx
mov    $0x6bc,%esi
call   1100 <test_BN_lt_zero@plt>
test   %eax,%eax
je     1829 <test_dec2bn+0x649>
mov    (%rsp),%rcx
lea    0xb54(%rip),%rdi
lea    0xc0e(%rip),%rdx
mov    $0x6bd,%esi
call   10e0 <test_BN_le_zero@plt>
test   %eax,%eax
je     1829 <test_dec2bn+0x649>
mov    (%rsp),%rcx
lea    0xb30(%rip),%rdi
lea    0xbea(%rip),%rdx
mov    $0x6be,%esi
call   1070 <test_BN_ne_zero@plt>
test   %eax,%eax
je     1829 <test_dec2bn+0x649>
mov    (%rsp),%rcx
lea    0xb0c(%rip),%rdi
lea    0xbc6(%rip),%rdx
mov    $0x6bf,%esi
call   10f0 <test_BN_even@plt>
test   %eax,%eax
je     1829 <test_dec2bn+0x649>
mov    (%rsp),%rdi
call   1090 <BN_free@plt>
movq   $0x0,(%rsp)
lea    0xb9a(%rip),%r14
mov    %rsp,%rdi
mov    %r14,%rsi
call   10d0 <parsedecBN@plt>
lea    0xac9(%rip),%rdi
lea    0xbbe(%rip),%rdx
mov    $0x6c4,%esi
mov    %r14,%rcx
mov    %eax,%r8d
mov    $0x1,%r9d
call   1080 <test_int_eq@plt>
test   %eax,%eax
je     1829 <test_dec2bn+0x649>
mov    (%rsp),%r8
lea    0xa99(%rip),%rdi
lea    0xb53(%rip),%rdx
lea    0xb4a(%rip),%rcx
mov    $0x6c5,%esi
mov    $0x1,%r9d
call   10a0 <test_BN_eq_word@plt>
test   %eax,%eax
je     1829 <test_dec2bn+0x649>
mov    (%rsp),%rcx
lea    0xa68(%rip),%rdi
lea    0xb22(%rip),%rdx
mov    $0x6c6,%esi
call   1070 <test_BN_ne_zero@plt>
test   %eax,%eax
je     1829 <test_dec2bn+0x649>
mov    (%rsp),%rcx
lea    0xa44(%rip),%rdi
lea    0xafe(%rip),%rdx
mov    $0x6c7,%esi
call   10c0 <test_BN_gt_zero@plt>
test   %eax,%eax
je     1829 <test_dec2bn+0x649>
mov    (%rsp),%rcx
lea    0xa20(%rip),%rdi
lea    0xada(%rip),%rdx
mov    $0x6c8,%esi
call   1030 <test_BN_ge_zero@plt>
test   %eax,%eax
je     1829 <test_dec2bn+0x649>
mov    (%rsp),%rcx
lea    0x9fc(%rip),%rdi
lea    0xab6(%rip),%rdx
mov    $0x6c9,%esi
call   1040 <test_BN_eq_one@plt>
test   %eax,%eax
je     1829 <test_dec2bn+0x649>
mov    (%rsp),%rcx
lea    0x9d8(%rip),%rdi
lea    0xa92(%rip),%rdx
mov    $0x6ca,%esi
call   10b0 <test_BN_odd@plt>
test   %eax,%eax
je     1829 <test_dec2bn+0x649>
mov    (%rsp),%rdi
call   1090 <BN_free@plt>
movq   $0x0,(%rsp)
lea    0xace(%rip),%rsi
mov    %rsp,%rdi
call   10d0 <parsedecBN@plt>
lea    0x998(%rip),%rdi
lea    0xaa2(%rip),%rdx
lea    0xa84(%rip),%rcx
mov    $0x6cf,%esi
mov    %eax,%r8d
mov    $0x2,%r9d
call   1080 <test_int_eq@plt>
test   %eax,%eax
je     1829 <test_dec2bn+0x649>
mov    (%rsp),%rcx
lea    0x964(%rip),%rdi
lea    0xa1e(%rip),%rdx
mov    $0x6d0,%esi
call   1060 <test_BN_eq_zero@plt>
test   %eax,%eax
je     1829 <test_dec2bn+0x649>
mov    (%rsp),%rcx
lea    0x940(%rip),%rdi
lea    0x9fa(%rip),%rdx
mov    $0x6d1,%esi
call   1030 <test_BN_ge_zero@plt>
test   %eax,%eax
je     1829 <test_dec2bn+0x649>
mov    (%rsp),%rcx
lea    0x91c(%rip),%rdi
lea    0x9d6(%rip),%rdx
mov    $0x6d2,%esi
call   10e0 <test_BN_le_zero@plt>
test   %eax,%eax
je     1829 <test_dec2bn+0x649>
mov    (%rsp),%rcx
lea    0x8f8(%rip),%rdi
lea    0x9b2(%rip),%rdx
mov    $0x6d3,%esi
call   10f0 <test_BN_even@plt>
test   %eax,%eax
je     1829 <test_dec2bn+0x649>
mov    (%rsp),%rdi
call   1090 <BN_free@plt>
movq   $0x0,(%rsp)
lea    0xa22(%rip),%rsi
mov    %rsp,%rdi
call   10d0 <parsedecBN@plt>
lea    0x8b8(%rip),%rdi
lea    0x9db(%rip),%rdx
lea    0x9a4(%rip),%rcx
mov    $0x6d8,%esi
mov    %eax,%r8d
mov    $0x2,%r9d
call   1080 <test_int_eq@plt>
test   %eax,%eax
je     1829 <test_dec2bn+0x649>
mov    (%rsp),%r8
lea    0x884(%rip),%rdi
lea    0x93e(%rip),%rdx
lea    0x96f(%rip),%rcx
mov    $0x6d9,%esi
mov    $0x2a,%r9d
call   1050 <test_BN_abs_eq_word@plt>
test   %eax,%eax
je     1829 <test_dec2bn+0x649>
mov    (%rsp),%rcx
lea    0x853(%rip),%rdi
lea    0x90d(%rip),%rdx
mov    $0x6da,%esi
call   1030 <test_BN_ge_zero@plt>
test   %eax,%eax
je     1829 <test_dec2bn+0x649>
mov    (%rsp),%rcx
lea    0x833(%rip),%rdi
lea    0x8ed(%rip),%rdx
mov    $0x6db,%esi
call   10c0 <test_BN_gt_zero@plt>
test   %eax,%eax
je     1829 <test_dec2bn+0x649>
mov    (%rsp),%rcx
lea    0x813(%rip),%rdi
lea    0x8cd(%rip),%rdx
mov    $0x6dc,%esi
call   1070 <test_BN_ne_zero@plt>
test   %eax,%eax
je     1829 <test_dec2bn+0x649>
mov    (%rsp),%rcx
lea    0x7f3(%rip),%rdi
lea    0x8ad(%rip),%rdx
mov    $0x6dd,%esi
call   10f0 <test_BN_even@plt>
xor    %ebx,%ebx
test   %eax,%eax
setne  %bl
jmp    1829 <test_dec2bn+0x649>
xor    %ebx,%ebx
mov    (%rsp),%rdi
call   1090 <BN_free@plt>
mov    %ebx,%eax
add    $0x8,%rsp
pop    %rbx
pop    %r14
ret

LLVM IR (-O0):
@.str = [170 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/master/Src/OSF/OpenSSL-111/test/bntest.c\00"
@.str.1 = [21 x i8] c"parsedecBN(&bn, \220\22)\00"
@.str.2 = [2 x i8] c"1\00"
@.str.3 = [2 x i8] c"0\00"
@.str.4 = [3 x i8] c"bn\00"
@.str.5 = [23 x i8] c"parsedecBN(&bn, \22256\22)\00"
@.str.6 = [2 x i8] c"3\00"
@.str.7 = [4 x i8] c"256\00"
@.str.8 = [23 x i8] c"parsedecBN(&bn, \22-42\22)\00"
@.str.9 = [4 x i8] c"-42\00"
@.str.10 = [3 x i8] c"42\00"
@.str.11 = [21 x i8] c"parsedecBN(&bn, \221\22)\00"
@.str.12 = [22 x i8] c"parsedecBN(&bn, \22-0\22)\00"
@.str.13 = [2 x i8] c"2\00"
@.str.14 = [3 x i8] c"-0\00"
@.str.15 = [49 x i8] c"parsedecBN(&bn, \2242trailing garbage is ignored\22)\00"
@.str.16 = [30 x i8] c"42trailing garbage is ignored\00"
define i32 @test_dec2bn() {
%1 = alloca i32*
%2 = alloca i32
store i32* null, i32** %1
store i32 0, i32* %2
%3 = call i32 @parsedecBN(i32** %1, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%4 = call i32 @test_int_eq(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1702, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0), i32 %3, i32 1)
%5 = icmp ne i32 %4, 0
br i1 %5, label %6, label %26
6: ; preds = %0
%7 = load i32*, i32** %1
%8 = call i32 @test_BN_eq_word(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1703, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0), i32* %7, i32 0)
%9 = icmp ne i32 %8, 0
br i1 %9, label %10, label %26
10: ; preds = %6
%11 = load i32*, i32** %1
%12 = call i32 @test_BN_eq_zero(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1704, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %11)
%13 = icmp ne i32 %12, 0
br i1 %13, label %14, label %26
14: ; preds = %10
%15 = load i32*, i32** %1
%16 = call i32 @test_BN_le_zero(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1705, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %15)
%17 = icmp ne i32 %16, 0
br i1 %17, label %18, label %26
18: ; preds = %14
%19 = load i32*, i32** %1
%20 = call i32 @test_BN_ge_zero(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1706, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %19)
%21 = icmp ne i32 %20, 0
br i1 %21, label %22, label %26
22: ; preds = %18
%23 = load i32*, i32** %1
%24 = call i32 @test_BN_even(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1707, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %23)
%25 = icmp ne i32 %24, 0
br i1 %25, label %27, label %26
26: ; preds = %22, %18, %14, %10, %6, %0
br label %163
27: ; preds = %22
%28 = load i32*, i32** %1
%29 = call i32 @BN_free(i32* %28)
store i32* null, i32** %1
%30 = call i32 @parsedecBN(i32** %1, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.7, i64 0, i64 0))
%31 = call i32 @test_int_eq(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1712, i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.5, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.6, i64 0, i64 0), i32 %30, i32 3)
%32 = icmp ne i32 %31, 0
br i1 %32, label %33, label %53
33: ; preds = %27
%34 = load i32*, i32** %1
%35 = call i32 @test_BN_eq_word(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1713, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.7, i64 0, i64 0), i32* %34, i32 256)
%36 = icmp ne i32 %35, 0
br i1 %36, label %37, label %53
37: ; preds = %33
%38 = load i32*, i32** %1
%39 = call i32 @test_BN_ge_zero(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1714, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %38)
%40 = icmp ne i32 %39, 0
br i1 %40, label %41, label %53
41: ; preds = %37
%42 = load i32*, i32** %1
%43 = call i32 @test_BN_gt_zero(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1715, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %42)
%44 = icmp ne i32 %43, 0
br i1 %44, label %45, label %53
45: ; preds = %41
%46 = load i32*, i32** %1
%47 = call i32 @test_BN_ne_zero(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1716, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %46)
%48 = icmp ne i32 %47, 0
br i1 %48, label %49, label %53
49: ; preds = %45
%50 = load i32*, i32** %1
%51 = call i32 @test_BN_even(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1717, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %50)
%52 = icmp ne i32 %51, 0
br i1 %52, label %54, label %53
53: ; preds = %49, %45, %41, %37, %33, %27
br label %163
54: ; preds = %49
%55 = load i32*, i32** %1
%56 = call i32 @BN_free(i32* %55)
store i32* null, i32** %1
%57 = call i32 @parsedecBN(i32** %1, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.9, i64 0, i64 0))
%58 = call i32 @test_int_eq(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1722, i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.8, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.6, i64 0, i64 0), i32 %57, i32 3)
%59 = icmp ne i32 %58, 0
br i1 %59, label %60, label %80
60: ; preds = %54
%61 = load i32*, i32** %1
%62 = call i32 @test_BN_abs_eq_word(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1723, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.10, i64 0, i64 0), i32* %61, i32 42)
%63 = icmp ne i32 %62, 0
br i1 %63, label %64, label %80
64: ; preds = %60
%65 = load i32*, i32** %1
%66 = call i32 @test_BN_lt_zero(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1724, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %65)
%67 = icmp ne i32 %66, 0
br i1 %67, label %68, label %80
68: ; preds = %64
%69 = load i32*, i32** %1
%70 = call i32 @test_BN_le_zero(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1725, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %69)
%71 = icmp ne i32 %70, 0
br i1 %71, label %72, label %80
72: ; preds = %68
%73 = load i32*, i32** %1
%74 = call i32 @test_BN_ne_zero(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1726, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %73)
%75 = icmp ne i32 %74, 0
br i1 %75, label %76, label %80
76: ; preds = %72
%77 = load i32*, i32** %1
%78 = call i32 @test_BN_even(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1727, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %77)
%79 = icmp ne i32 %78, 0
br i1 %79, label %81, label %80
80: ; preds = %76, %72, %68, %64, %60, %54
br label %163
81: ; preds = %76
%82 = load i32*, i32** %1
%83 = call i32 @BN_free(i32* %82)
store i32* null, i32** %1
%84 = call i32 @parsedecBN(i32** %1, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
%85 = call i32 @test_int_eq(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1732, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.11, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0), i32 %84, i32 1)
%86 = icmp ne i32 %85, 0
br i1 %86, label %87, label %111
87: ; preds = %81
%88 = load i32*, i32** %1
%89 = call i32 @test_BN_eq_word(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1733, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0), i32* %88, i32 1)
%90 = icmp ne i32 %89, 0
br i1 %90, label %91, label %111
91: ; preds = %87
%92 = load i32*, i32** %1
%93 = call i32 @test_BN_ne_zero(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1734, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %92)
%94 = icmp ne i32 %93, 0
br i1 %94, label %95, label %111
95: ; preds = %91
%96 = load i32*, i32** %1
%97 = call i32 @test_BN_gt_zero(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1735, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %96)
%98 = icmp ne i32 %97, 0
br i1 %98, label %99, label %111
99: ; preds = %95
%100 = load i32*, i32** %1
%101 = call i32 @test_BN_ge_zero(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1736, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %100)
%102 = icmp ne i32 %101, 0
br i1 %102, label %103, label %111
103: ; preds = %99
%104 = load i32*, i32** %1
%105 = call i32 @test_BN_eq_one(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1737, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %104)
%106 = icmp ne i32 %105, 0
br i1 %106, label %107, label %111
107: ; preds = %103
%108 = load i32*, i32** %1
%109 = call i32 @test_BN_odd(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1738, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %108)
%110 = icmp ne i32 %109, 0
br i1 %110, label %112, label %111
111: ; preds = %107, %103, %99, %95, %91, %87, %81
br label %163
112: ; preds = %107
%113 = load i32*, i32** %1
%114 = call i32 @BN_free(i32* %113)
store i32* null, i32** %1
%115 = call i32 @parsedecBN(i32** %1, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.14, i64 0, i64 0))
%116 = call i32 @test_int_eq(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1743, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.12, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.13, i64 0, i64 0), i32 %115, i32 2)
%117 = icmp ne i32 %116, 0
br i1 %117, label %118, label %134
118: ; preds = %112
%119 = load i32*, i32** %1
%120 = call i32 @test_BN_eq_zero(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1744, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %119)
%121 = icmp ne i32 %120, 0
br i1 %121, label %122, label %134
122: ; preds = %118
%123 = load i32*, i32** %1
%124 = call i32 @test_BN_ge_zero(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1745, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %123)
%125 = icmp ne i32 %124, 0
br i1 %125, label %126, label %134
126: ; preds = %122
%127 = load i32*, i32** %1
%128 = call i32 @test_BN_le_zero(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1746, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %127)
%129 = icmp ne i32 %128, 0
br i1 %129, label %130, label %134
130: ; preds = %126
%131 = load i32*, i32** %1
%132 = call i32 @test_BN_even(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1747, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %131)
%133 = icmp ne i32 %132, 0
br i1 %133, label %135, label %134
134: ; preds = %130, %126, %122, %118, %112
br label %163
135: ; preds = %130
%136 = load i32*, i32** %1
%137 = call i32 @BN_free(i32* %136)
store i32* null, i32** %1
%138 = call i32 @parsedecBN(i32** %1, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.16, i64 0, i64 0))
%139 = call i32 @test_int_eq(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1752, i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.15, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.13, i64 0, i64 0), i32 %138, i32 2)
%140 = icmp ne i32 %139, 0
br i1 %140, label %141, label %161
141: ; preds = %135
%142 = load i32*, i32** %1
%143 = call i32 @test_BN_abs_eq_word(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1753, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.10, i64 0, i64 0), i32* %142, i32 42)
%144 = icmp ne i32 %143, 0
br i1 %144, label %145, label %161
145: ; preds = %141
%146 = load i32*, i32** %1
%147 = call i32 @test_BN_ge_zero(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1754, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %146)
%148 = icmp ne i32 %147, 0
br i1 %148, label %149, label %161
149: ; preds = %145
%150 = load i32*, i32** %1
%151 = call i32 @test_BN_gt_zero(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1755, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %150)
%152 = icmp ne i32 %151, 0
br i1 %152, label %153, label %161
153: ; preds = %149
%154 = load i32*, i32** %1
%155 = call i32 @test_BN_ne_zero(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1756, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %154)
%156 = icmp ne i32 %155, 0
br i1 %156, label %157, label %161
157: ; preds = %153
%158 = load i32*, i32** %1
%159 = call i32 @test_BN_even(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1757, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %158)
%160 = icmp ne i32 %159, 0
br i1 %160, label %162, label %161
161: ; preds = %157, %153, %149, %145, %141, %135
br label %163
162: ; preds = %157
store i32 1, i32* %2
br label %163
163: ; preds = %162, %161, %134, %111, %80, %53, %26
%164 = load i32*, i32** %1
%165 = call i32 @BN_free(i32* %164)
%166 = load i32, i32* %2
ret i32 %166
}

LLVM IR (-O2):
@.str = [170 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/master/Src/OSF/OpenSSL-111/test/bntest.c\00"
@.str.1 = [21 x i8] c"parsedecBN(&bn, \220\22)\00"
@.str.2 = [2 x i8] c"1\00"
@.str.3 = [2 x i8] c"0\00"
@.str.4 = [3 x i8] c"bn\00"
@.str.5 = [23 x i8] c"parsedecBN(&bn, \22256\22)\00"
@.str.6 = [2 x i8] c"3\00"
@.str.7 = [4 x i8] c"256\00"
@.str.8 = [23 x i8] c"parsedecBN(&bn, \22-42\22)\00"
@.str.9 = [4 x i8] c"-42\00"
@.str.10 = [3 x i8] c"42\00"
@.str.11 = [21 x i8] c"parsedecBN(&bn, \221\22)\00"
@.str.12 = [22 x i8] c"parsedecBN(&bn, \22-0\22)\00"
@.str.13 = [2 x i8] c"2\00"
@.str.14 = [3 x i8] c"-0\00"
@.str.15 = [49 x i8] c"parsedecBN(&bn, \2242trailing garbage is ignored\22)\00"
@.str.16 = [30 x i8] c"42trailing garbage is ignored\00"
define i32 @test_dec2bn() {
%1 = alloca i32*
%2 = bitcast i32** %1 to i8*
store i32* null, i32** %1
%3 = call i32 @parsedecBN(i32** %1, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%4 = call i32 @test_int_eq(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1702, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0), i32 %3, i32 1)
%5 = icmp eq i32 %4, 0
br i1 %5, label %157, label %6
6: ; preds = %0
%7 = load i32*, i32** %1
%8 = call i32 @test_BN_eq_word(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1703, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0), i32* %7, i32 0)
%9 = icmp eq i32 %8, 0
br i1 %9, label %157, label %10
10: ; preds = %6
%11 = load i32*, i32** %1
%12 = call i32 @test_BN_eq_zero(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1704, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %11)
%13 = icmp eq i32 %12, 0
br i1 %13, label %157, label %14
14: ; preds = %10
%15 = load i32*, i32** %1
%16 = call i32 @test_BN_le_zero(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1705, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %15)
%17 = icmp eq i32 %16, 0
br i1 %17, label %157, label %18
18: ; preds = %14
%19 = load i32*, i32** %1
%20 = call i32 @test_BN_ge_zero(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1706, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %19)
%21 = icmp eq i32 %20, 0
br i1 %21, label %157, label %22
22: ; preds = %18
%23 = load i32*, i32** %1
%24 = call i32 @test_BN_even(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1707, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %23)
%25 = icmp eq i32 %24, 0
br i1 %25, label %157, label %26
26: ; preds = %22
%27 = load i32*, i32** %1
%28 = call i32 @BN_free(i32* %27)
store i32* null, i32** %1
%29 = call i32 @parsedecBN(i32** %1, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.7, i64 0, i64 0))
%30 = call i32 @test_int_eq(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1712, i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.5, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.6, i64 0, i64 0), i32 %29, i32 3)
%31 = icmp eq i32 %30, 0
br i1 %31, label %157, label %32
32: ; preds = %26
%33 = load i32*, i32** %1
%34 = call i32 @test_BN_eq_word(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1713, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.7, i64 0, i64 0), i32* %33, i32 256)
%35 = icmp eq i32 %34, 0
br i1 %35, label %157, label %36
36: ; preds = %32
%37 = load i32*, i32** %1
%38 = call i32 @test_BN_ge_zero(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1714, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %37)
%39 = icmp eq i32 %38, 0
br i1 %39, label %157, label %40
40: ; preds = %36
%41 = load i32*, i32** %1
%42 = call i32 @test_BN_gt_zero(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1715, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %41)
%43 = icmp eq i32 %42, 0
br i1 %43, label %157, label %44
44: ; preds = %40
%45 = load i32*, i32** %1
%46 = call i32 @test_BN_ne_zero(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1716, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %45)
%47 = icmp eq i32 %46, 0
br i1 %47, label %157, label %48
48: ; preds = %44
%49 = load i32*, i32** %1
%50 = call i32 @test_BN_even(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1717, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %49)
%51 = icmp eq i32 %50, 0
br i1 %51, label %157, label %52
52: ; preds = %48
%53 = load i32*, i32** %1
%54 = call i32 @BN_free(i32* %53)
store i32* null, i32** %1
%55 = call i32 @parsedecBN(i32** %1, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.9, i64 0, i64 0))
%56 = call i32 @test_int_eq(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1722, i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.8, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.6, i64 0, i64 0), i32 %55, i32 3)
%57 = icmp eq i32 %56, 0
br i1 %57, label %157, label %58
58: ; preds = %52
%59 = load i32*, i32** %1
%60 = call i32 @test_BN_abs_eq_word(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1723, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.10, i64 0, i64 0), i32* %59, i32 42)
%61 = icmp eq i32 %60, 0
br i1 %61, label %157, label %62
62: ; preds = %58
%63 = load i32*, i32** %1
%64 = call i32 @test_BN_lt_zero(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1724, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %63)
%65 = icmp eq i32 %64, 0
br i1 %65, label %157, label %66
66: ; preds = %62
%67 = load i32*, i32** %1
%68 = call i32 @test_BN_le_zero(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1725, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %67)
%69 = icmp eq i32 %68, 0
br i1 %69, label %157, label %70
70: ; preds = %66
%71 = load i32*, i32** %1
%72 = call i32 @test_BN_ne_zero(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1726, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %71)
%73 = icmp eq i32 %72, 0
br i1 %73, label %157, label %74
74: ; preds = %70
%75 = load i32*, i32** %1
%76 = call i32 @test_BN_even(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1727, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %75)
%77 = icmp eq i32 %76, 0
br i1 %77, label %157, label %78
78: ; preds = %74
%79 = load i32*, i32** %1
%80 = call i32 @BN_free(i32* %79)
store i32* null, i32** %1
%81 = call i32 @parsedecBN(i32** %1, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
%82 = call i32 @test_int_eq(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1732, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.11, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0), i32 %81, i32 1)
%83 = icmp eq i32 %82, 0
br i1 %83, label %157, label %84
84: ; preds = %78
%85 = load i32*, i32** %1
%86 = call i32 @test_BN_eq_word(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1733, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0), i32* %85, i32 1)
%87 = icmp eq i32 %86, 0
br i1 %87, label %157, label %88
88: ; preds = %84
%89 = load i32*, i32** %1
%90 = call i32 @test_BN_ne_zero(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1734, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %89)
%91 = icmp eq i32 %90, 0
br i1 %91, label %157, label %92
92: ; preds = %88
%93 = load i32*, i32** %1
%94 = call i32 @test_BN_gt_zero(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1735, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %93)
%95 = icmp eq i32 %94, 0
br i1 %95, label %157, label %96
96: ; preds = %92
%97 = load i32*, i32** %1
%98 = call i32 @test_BN_ge_zero(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1736, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %97)
%99 = icmp eq i32 %98, 0
br i1 %99, label %157, label %100
100: ; preds = %96
%101 = load i32*, i32** %1
%102 = call i32 @test_BN_eq_one(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1737, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %101)
%103 = icmp eq i32 %102, 0
br i1 %103, label %157, label %104
104: ; preds = %100
%105 = load i32*, i32** %1
%106 = call i32 @test_BN_odd(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1738, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %105)
%107 = icmp eq i32 %106, 0
br i1 %107, label %157, label %108
108: ; preds = %104
%109 = load i32*, i32** %1
%110 = call i32 @BN_free(i32* %109)
store i32* null, i32** %1
%111 = call i32 @parsedecBN(i32** %1, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.14, i64 0, i64 0))
%112 = call i32 @test_int_eq(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1743, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.12, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.13, i64 0, i64 0), i32 %111, i32 2)
%113 = icmp eq i32 %112, 0
br i1 %113, label %157, label %114
114: ; preds = %108
%115 = load i32*, i32** %1
%116 = call i32 @test_BN_eq_zero(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1744, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %115)
%117 = icmp eq i32 %116, 0
br i1 %117, label %157, label %118
118: ; preds = %114
%119 = load i32*, i32** %1
%120 = call i32 @test_BN_ge_zero(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1745, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %119)
%121 = icmp eq i32 %120, 0
br i1 %121, label %157, label %122
122: ; preds = %118
%123 = load i32*, i32** %1
%124 = call i32 @test_BN_le_zero(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1746, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %123)
%125 = icmp eq i32 %124, 0
br i1 %125, label %157, label %126
126: ; preds = %122
%127 = load i32*, i32** %1
%128 = call i32 @test_BN_even(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1747, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %127)
%129 = icmp eq i32 %128, 0
br i1 %129, label %157, label %130
130: ; preds = %126
%131 = load i32*, i32** %1
%132 = call i32 @BN_free(i32* %131)
store i32* null, i32** %1
%133 = call i32 @parsedecBN(i32** %1, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.16, i64 0, i64 0))
%134 = call i32 @test_int_eq(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1752, i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.15, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.13, i64 0, i64 0), i32 %133, i32 2)
%135 = icmp eq i32 %134, 0
br i1 %135, label %157, label %136
136: ; preds = %130
%137 = load i32*, i32** %1
%138 = call i32 @test_BN_abs_eq_word(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1753, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.10, i64 0, i64 0), i32* %137, i32 42)
%139 = icmp eq i32 %138, 0
br i1 %139, label %157, label %140
140: ; preds = %136
%141 = load i32*, i32** %1
%142 = call i32 @test_BN_ge_zero(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1754, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %141)
%143 = icmp eq i32 %142, 0
br i1 %143, label %157, label %144
144: ; preds = %140
%145 = load i32*, i32** %1
%146 = call i32 @test_BN_gt_zero(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1755, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %145)
%147 = icmp eq i32 %146, 0
br i1 %147, label %157, label %148
148: ; preds = %144
%149 = load i32*, i32** %1
%150 = call i32 @test_BN_ne_zero(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1756, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %149)
%151 = icmp eq i32 %150, 0
br i1 %151, label %157, label %152
152: ; preds = %148
%153 = load i32*, i32** %1
%154 = call i32 @test_BN_even(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str, i64 0, i64 0), i32 1757, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i32* %153)
%155 = icmp ne i32 %154, 0
%156 = zext i1 %155 to i32
br label %157
157: ; preds = %152, %130, %136, %140, %144, %148, %108, %114, %118, %122, %126, %78, %84, %88, %92, %96, %100, %104, %52, %58, %62, %66, %70, %74, %26, %32, %36, %40, %44, %48, %0, %6, %10, %14, %18, %22
%158 = phi i32 [ 0, %148 ], [ 0, %144 ], [ 0, %140 ], [ 0, %136 ], [ 0, %130 ], [ 0, %126 ], [ 0, %122 ], [ 0, %118 ], [ 0, %114 ], [ 0, %108 ], [ 0, %104 ], [ 0, %100 ], [ 0, %96 ], [ 0, %92 ], [ 0, %88 ], [ 0, %84 ], [ 0, %78 ], [ 0, %74 ], [ 0, %70 ], [ 0, %66 ], [ 0, %62 ], [ 0, %58 ], [ 0, %52 ], [ 0, %48 ], [ 0, %44 ], [ 0, %40 ], [ 0, %36 ], [ 0, %32 ], [ 0, %26 ], [ 0, %22 ], [ 0, %18 ], [ 0, %14 ], [ 0, %10 ], [ 0, %6 ], [ 0, %0 ], [ %156, %152 ]
%159 = load i32*, i32** %1
%160 = call i32 @BN_free(i32* %159)
ret i32 %158
}