#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*/ BN_CTX;
typedef int /*<<< orphan*/ const BIGNUM;

/* Variables and functions */
scalar_t__ BN_cmp(int /*<<< orphan*/ const *, int /*<<< orphan*/ const *);
int /*<<< orphan*/ *BN_copy(int /*<<< orphan*/ const *,
                            int /*<<< orphan*/ const *);
int BN_div(int /*<<< orphan*/ const *, int /*<<< orphan*/ const *,
           int /*<<< orphan*/ const *, int /*<<< orphan*/ const *,
           int /*<<< orphan*/ *);
int /*<<< orphan*/ const *BN_dup(int /*<<< orphan*/ const *);
int /*<<< orphan*/ BN_free(int /*<<< orphan*/ const *);
int BN_is_zero(int /*<<< orphan*/ const *);
int BN_mul(int /*<<< orphan*/ const *, int /*<<< orphan*/ const *,
           int /*<<< orphan*/ const *, int /*<<< orphan*/ *);
int /*<<< orphan*/ const *BN_new();
int BN_one(int /*<<< orphan*/ const *);
int BN_sub(int /*<<< orphan*/ const *, int /*<<< orphan*/ const *,
           int /*<<< orphan*/ const *);
int BN_zero(int /*<<< orphan*/ const *);
int /*<<< orphan*/ fflush(int /*<<< orphan*/);
int /*<<< orphan*/ fprintf(int /*<<< orphan*/, char *, char *, int);
int /*<<< orphan*/ stderr;
int BN_extended_gcd(BIGNUM *r, BIGNUM *s, BIGNUM *t, const BIGNUM *a,
                    const BIGNUM *b, BN_CTX *bn_ctx) {
  int ok, ret;
  int swapped = 0;
  BIGNUM *r2 = NULL, *r1 = NULL, *r0 = NULL;
  BIGNUM *s2 = NULL, *s1 = NULL, *s0 = NULL;
  BIGNUM *t2 = NULL, *t1 = NULL, *t0 = NULL;
  BIGNUM *q = NULL;
  if ((a) == NULL) {
    fprintf(
        stderr, "@@@ %s:%d @@@\n",
        "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
        "2022-01-22/02-19-57/repos/dstebila/daps/refs/heads/master/bn_extra.c",
        76);
    fflush(stderr);
    ;
    goto err;
  };
  if ((b) == NULL) {
    fprintf(
        stderr, "@@@ %s:%d @@@\n",
        "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
        "2022-01-22/02-19-57/repos/dstebila/daps/refs/heads/master/bn_extra.c",
        77);
    fflush(stderr);
    ;
    goto err;
  };
  ok = (BN_is_zero(a));
  if (ok != 0) {
    fprintf(
        stderr, "@@@ %s:%d @@@\n",
        "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
        "2022-01-22/02-19-57/repos/dstebila/daps/refs/heads/master/bn_extra.c",
        78);
    fflush(stderr);
    ;
    goto err;
  };
  ok = (BN_is_zero(b));
  if (ok != 0) {
    fprintf(
        stderr, "@@@ %s:%d @@@\n",
        "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
        "2022-01-22/02-19-57/repos/dstebila/daps/refs/heads/master/bn_extra.c",
        79);
    fflush(stderr);
    ;
    goto err;
  };
  if ((bn_ctx) == NULL) {
    fprintf(
        stderr, "@@@ %s:%d @@@\n",
        "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
        "2022-01-22/02-19-57/repos/dstebila/daps/refs/heads/master/bn_extra.c",
        80);
    fflush(stderr);
    ;
    goto err;
  };
  if (BN_cmp(a, b) >= 0) {
    if ((r0 = BN_dup(a)) == NULL) {
      fprintf(stderr, "@@@ %s:%d @@@\n",
              "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
              "2022-01-22/02-19-57/repos/dstebila/daps/refs/heads/master/"
              "bn_extra.c",
              82);
      fflush(stderr);
      ;
      goto err;
    };
    if ((r1 = BN_dup(b)) == NULL) {
      fprintf(stderr, "@@@ %s:%d @@@\n",
              "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
              "2022-01-22/02-19-57/repos/dstebila/daps/refs/heads/master/"
              "bn_extra.c",
              83);
      fflush(stderr);
      ;
      goto err;
    };
  } else {
    if ((r0 = BN_dup(b)) == NULL) {
      fprintf(stderr, "@@@ %s:%d @@@\n",
              "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
              "2022-01-22/02-19-57/repos/dstebila/daps/refs/heads/master/"
              "bn_extra.c",
              85);
      fflush(stderr);
      ;
      goto err;
    };
    if ((r1 = BN_dup(a)) == NULL) {
      fprintf(stderr, "@@@ %s:%d @@@\n",
              "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
              "2022-01-22/02-19-57/repos/dstebila/daps/refs/heads/master/"
              "bn_extra.c",
              86);
      fflush(stderr);
      ;
      goto err;
    };
    swapped = 1;
  }
  if ((r2 = BN_new()) == NULL) {
    fprintf(
        stderr, "@@@ %s:%d @@@\n",
        "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
        "2022-01-22/02-19-57/repos/dstebila/daps/refs/heads/master/bn_extra.c",
        89);
    fflush(stderr);
    ;
    goto err;
  };
  if ((s2 = BN_new()) == NULL) {
    fprintf(
        stderr, "@@@ %s:%d @@@\n",
        "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
        "2022-01-22/02-19-57/repos/dstebila/daps/refs/heads/master/bn_extra.c",
        90);
    fflush(stderr);
    ;
    goto err;
  };
  if ((s1 = BN_new()) == NULL) {
    fprintf(
        stderr, "@@@ %s:%d @@@\n",
        "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
        "2022-01-22/02-19-57/repos/dstebila/daps/refs/heads/master/bn_extra.c",
        91);
    fflush(stderr);
    ;
    goto err;
  };
  if ((s0 = BN_new()) == NULL) {
    fprintf(
        stderr, "@@@ %s:%d @@@\n",
        "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
        "2022-01-22/02-19-57/repos/dstebila/daps/refs/heads/master/bn_extra.c",
        92);
    fflush(stderr);
    ;
    goto err;
  };
  ok = (BN_one(s0));
  if (ok != 1) {
    fprintf(
        stderr, "@@@ %s:%d @@@\n",
        "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
        "2022-01-22/02-19-57/repos/dstebila/daps/refs/heads/master/bn_extra.c",
        93);
    fflush(stderr);
    ;
    goto err;
  };
  ok = (BN_zero(s1));
  if (ok != 1) {
    fprintf(
        stderr, "@@@ %s:%d @@@\n",
        "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
        "2022-01-22/02-19-57/repos/dstebila/daps/refs/heads/master/bn_extra.c",
        94);
    fflush(stderr);
    ;
    goto err;
  };
  if ((t2 = BN_new()) == NULL) {
    fprintf(
        stderr, "@@@ %s:%d @@@\n",
        "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
        "2022-01-22/02-19-57/repos/dstebila/daps/refs/heads/master/bn_extra.c",
        95);
    fflush(stderr);
    ;
    goto err;
  };
  if ((t1 = BN_new()) == NULL) {
    fprintf(
        stderr, "@@@ %s:%d @@@\n",
        "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
        "2022-01-22/02-19-57/repos/dstebila/daps/refs/heads/master/bn_extra.c",
        96);
    fflush(stderr);
    ;
    goto err;
  };
  if ((t0 = BN_new()) == NULL) {
    fprintf(
        stderr, "@@@ %s:%d @@@\n",
        "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
        "2022-01-22/02-19-57/repos/dstebila/daps/refs/heads/master/bn_extra.c",
        97);
    fflush(stderr);
    ;
    goto err;
  };
  ok = (BN_zero(t0));
  if (ok != 1) {
    fprintf(
        stderr, "@@@ %s:%d @@@\n",
        "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
        "2022-01-22/02-19-57/repos/dstebila/daps/refs/heads/master/bn_extra.c",
        98);
    fflush(stderr);
    ;
    goto err;
  };
  ok = (BN_one(t1));
  if (ok != 1) {
    fprintf(
        stderr, "@@@ %s:%d @@@\n",
        "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
        "2022-01-22/02-19-57/repos/dstebila/daps/refs/heads/master/bn_extra.c",
        99);
    fflush(stderr);
    ;
    goto err;
  };
  if ((q = BN_new()) == NULL) {
    fprintf(
        stderr, "@@@ %s:%d @@@\n",
        "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
        "2022-01-22/02-19-57/repos/dstebila/daps/refs/heads/master/bn_extra.c",
        100);
    fflush(stderr);
    ;
    goto err;
  };
  while (1) {
    ok = (BN_div(q, r2, r0, r1, bn_ctx));
    if (ok != 1) {
      fprintf(stderr, "@@@ %s:%d @@@\n",
              "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
              "2022-01-22/02-19-57/repos/dstebila/daps/refs/heads/master/"
              "bn_extra.c",
              103);
      fflush(stderr);
      ;
      goto err;
    };
    ok = (BN_mul(s2, q, s1, bn_ctx));
    if (ok != 1) {
      fprintf(stderr, "@@@ %s:%d @@@\n",
              "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
              "2022-01-22/02-19-57/repos/dstebila/daps/refs/heads/master/"
              "bn_extra.c",
              105);
      fflush(stderr);
      ;
      goto err;
    };
    ok = (BN_sub(s2, s0, s2));
    if (ok != 1) {
      fprintf(stderr, "@@@ %s:%d @@@\n",
              "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
              "2022-01-22/02-19-57/repos/dstebila/daps/refs/heads/master/"
              "bn_extra.c",
              106);
      fflush(stderr);
      ;
      goto err;
    };
    ok = (BN_mul(t2, q, t1, bn_ctx));
    if (ok != 1) {
      fprintf(stderr, "@@@ %s:%d @@@\n",
              "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
              "2022-01-22/02-19-57/repos/dstebila/daps/refs/heads/master/"
              "bn_extra.c",
              108);
      fflush(stderr);
      ;
      goto err;
    };
    ok = (BN_sub(t2, t0, t2));
    if (ok != 1) {
      fprintf(stderr, "@@@ %s:%d @@@\n",
              "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
              "2022-01-22/02-19-57/repos/dstebila/daps/refs/heads/master/"
              "bn_extra.c",
              109);
      fflush(stderr);
      ;
      goto err;
    };
    if (BN_is_zero(r2)) {
      break;
    }
    BN_free(r0);
    r0 = r1;
    r1 = r2;
    if ((r2 = BN_new()) == NULL) {
      fprintf(stderr, "@@@ %s:%d @@@\n",
              "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
              "2022-01-22/02-19-57/repos/dstebila/daps/refs/heads/master/"
              "bn_extra.c",
              118);
      fflush(stderr);
      ;
      goto err;
    };
    BN_free(s0);
    s0 = s1;
    s1 = s2;
    if ((s2 = BN_new()) == NULL) {
      fprintf(stderr, "@@@ %s:%d @@@\n",
              "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
              "2022-01-22/02-19-57/repos/dstebila/daps/refs/heads/master/"
              "bn_extra.c",
              122);
      fflush(stderr);
      ;
      goto err;
    };
    BN_free(t0);
    t0 = t1;
    t1 = t2;
    if ((t2 = BN_new()) == NULL) {
      fprintf(stderr, "@@@ %s:%d @@@\n",
              "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
              "2022-01-22/02-19-57/repos/dstebila/daps/refs/heads/master/"
              "bn_extra.c",
              126);
      fflush(stderr);
      ;
      goto err;
    };
  };
  if (r != NULL) {
    if ((BN_copy(r, r1)) == NULL) {
      fprintf(stderr, "@@@ %s:%d @@@\n",
              "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
              "2022-01-22/02-19-57/repos/dstebila/daps/refs/heads/master/"
              "bn_extra.c",
              129);
      fflush(stderr);
      ;
      goto err;
    };
  }
  if ((s != NULL) && (t != NULL)) {
    if (swapped) {
      if ((BN_copy(s, t1)) == NULL) {
        fprintf(stderr, "@@@ %s:%d @@@\n",
                "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
                "outputs/2022-01-22/02-19-57/repos/dstebila/daps/refs/heads/"
                "master/bn_extra.c",
                133);
        fflush(stderr);
        ;
        goto err;
      };
      if ((BN_copy(t, s1)) == NULL) {
        fprintf(stderr, "@@@ %s:%d @@@\n",
                "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
                "outputs/2022-01-22/02-19-57/repos/dstebila/daps/refs/heads/"
                "master/bn_extra.c",
                134);
        fflush(stderr);
        ;
        goto err;
      };
    } else {
      if ((BN_copy(s, s1)) == NULL) {
        fprintf(stderr, "@@@ %s:%d @@@\n",
                "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
                "outputs/2022-01-22/02-19-57/repos/dstebila/daps/refs/heads/"
                "master/bn_extra.c",
                136);
        fflush(stderr);
        ;
        goto err;
      };
      if ((BN_copy(t, t1)) == NULL) {
        fprintf(stderr, "@@@ %s:%d @@@\n",
                "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
                "outputs/2022-01-22/02-19-57/repos/dstebila/daps/refs/heads/"
                "master/bn_extra.c",
                137);
        fflush(stderr);
        ;
        goto err;
      };
    }
  }
  ret = 1;
  goto cleanup;
err:
  ret = 0;
cleanup:
  BN_free(r2);
  BN_free(r1);
  BN_free(r0);
  BN_free(s2);
  BN_free(s1);
  BN_free(s0);
  BN_free(t2);
  BN_free(t1);
  BN_free(t0);
  BN_free(q);
  return ret;
}


x86 assembly (clang, -O0):
<BN_extended_gcd>:
push   %rbp
mov    %rsp,%rbp
sub    $0x90,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %rcx,-0x20(%rbp)
mov    %r8,-0x28(%rbp)
mov    %r9,-0x30(%rbp)
movl   $0x0,-0x3c(%rbp)
movq   $0x0,-0x48(%rbp)
movq   $0x0,-0x50(%rbp)
movq   $0x0,-0x58(%rbp)
movq   $0x0,-0x60(%rbp)
movq   $0x0,-0x68(%rbp)
movq   $0x0,-0x70(%rbp)
movq   $0x0,-0x78(%rbp)
movq   $0x0,-0x80(%rbp)
movq   $0x0,-0x88(%rbp)
movq   $0x0,-0x90(%rbp)
cmpq   $0x0,-0x20(%rbp)
jne    128f <BN_extended_gcd+0xbf>
mov    0x2d7e(%rip),%rax
mov    (%rax),%edi
lea    0xd95(%rip),%rsi
lea    0xd9d(%rip),%rdx
mov    $0x4c,%ecx
call   1090 <fprintf@plt>
mov    0x2d5d(%rip),%rax
mov    (%rax),%edi
call   10b0 <fflush@plt>
jmp    1d2e <BN_extended_gcd+0xb5e>
cmpq   $0x0,-0x28(%rbp)
jne    12ce <BN_extended_gcd+0xfe>
mov    0x2d3f(%rip),%rax
mov    (%rax),%edi
lea    0xd56(%rip),%rsi
lea    0xd5e(%rip),%rdx
mov    $0x4d,%ecx
call   1090 <fprintf@plt>
mov    0x2d1e(%rip),%rax
mov    (%rax),%edi
call   10b0 <fflush@plt>
jmp    1d2e <BN_extended_gcd+0xb5e>
mov    -0x20(%rbp),%rdi
call   10a0 <BN_is_zero@plt>
mov    %eax,-0x34(%rbp)
cmpl   $0x0,-0x34(%rbp)
je     1318 <BN_extended_gcd+0x148>
mov    0x2cf5(%rip),%rax
mov    (%rax),%edi
lea    0xd0c(%rip),%rsi
lea    0xd14(%rip),%rdx
mov    $0x4e,%ecx
call   1090 <fprintf@plt>
mov    0x2cd4(%rip),%rax
mov    (%rax),%edi
call   10b0 <fflush@plt>
jmp    1d2e <BN_extended_gcd+0xb5e>
mov    -0x28(%rbp),%rdi
call   10a0 <BN_is_zero@plt>
mov    %eax,-0x34(%rbp)
cmpl   $0x0,-0x34(%rbp)
je     1362 <BN_extended_gcd+0x192>
mov    0x2cab(%rip),%rax
mov    (%rax),%edi
lea    0xcc2(%rip),%rsi
lea    0xcca(%rip),%rdx
mov    $0x4f,%ecx
call   1090 <fprintf@plt>
mov    0x2c8a(%rip),%rax
mov    (%rax),%edi
call   10b0 <fflush@plt>
jmp    1d2e <BN_extended_gcd+0xb5e>
cmpq   $0x0,-0x30(%rbp)
jne    13a1 <BN_extended_gcd+0x1d1>
mov    0x2c6c(%rip),%rax
mov    (%rax),%edi
lea    0xc83(%rip),%rsi
lea    0xc8b(%rip),%rdx
mov    $0x50,%ecx
call   1090 <fprintf@plt>
mov    0x2c4b(%rip),%rax
mov    (%rax),%edi
call   10b0 <fflush@plt>
jmp    1d2e <BN_extended_gcd+0xb5e>
mov    -0x20(%rbp),%rdi
mov    -0x28(%rbp),%rsi
call   10c0 <BN_cmp@plt>
cmp    $0x0,%rax
jl     1453 <BN_extended_gcd+0x283>
mov    -0x20(%rbp),%rdi
call   1060 <BN_dup@plt>
mov    %rax,-0x58(%rbp)
cmp    $0x0,%rax
jne    1403 <BN_extended_gcd+0x233>
mov    0x2c0a(%rip),%rax
mov    (%rax),%edi
lea    0xc21(%rip),%rsi
lea    0xc29(%rip),%rdx
mov    $0x52,%ecx
call   1090 <fprintf@plt>
mov    0x2be9(%rip),%rax
mov    (%rax),%edi
call   10b0 <fflush@plt>
jmp    1d2e <BN_extended_gcd+0xb5e>
mov    -0x28(%rbp),%rdi
call   1060 <BN_dup@plt>
mov    %rax,-0x50(%rbp)
cmp    $0x0,%rax
jne    144e <BN_extended_gcd+0x27e>
mov    0x2bbf(%rip),%rax
mov    (%rax),%edi
lea    0xbd6(%rip),%rsi
lea    0xbde(%rip),%rdx
mov    $0x53,%ecx
call   1090 <fprintf@plt>
mov    0x2b9e(%rip),%rax
mov    (%rax),%edi
call   10b0 <fflush@plt>
jmp    1d2e <BN_extended_gcd+0xb5e>
jmp    14f0 <BN_extended_gcd+0x320>
mov    -0x28(%rbp),%rdi
call   1060 <BN_dup@plt>
mov    %rax,-0x58(%rbp)
cmp    $0x0,%rax
jne    149e <BN_extended_gcd+0x2ce>
mov    0x2b6f(%rip),%rax
mov    (%rax),%edi
lea    0xb86(%rip),%rsi
lea    0xb8e(%rip),%rdx
mov    $0x55,%ecx
call   1090 <fprintf@plt>
mov    0x2b4e(%rip),%rax
mov    (%rax),%edi
call   10b0 <fflush@plt>
jmp    1d2e <BN_extended_gcd+0xb5e>
mov    -0x20(%rbp),%rdi
call   1060 <BN_dup@plt>
mov    %rax,-0x50(%rbp)
cmp    $0x0,%rax
jne    14e9 <BN_extended_gcd+0x319>
mov    0x2b24(%rip),%rax
mov    (%rax),%edi
lea    0xb3b(%rip),%rsi
lea    0xb43(%rip),%rdx
mov    $0x56,%ecx
call   1090 <fprintf@plt>
mov    0x2b03(%rip),%rax
mov    (%rax),%edi
call   10b0 <fflush@plt>
jmp    1d2e <BN_extended_gcd+0xb5e>
movl   $0x1,-0x3c(%rbp)
mov    $0x0,%al
call   1030 <BN_new@plt>
mov    %rax,-0x48(%rbp)
cmp    $0x0,%rax
jne    1539 <BN_extended_gcd+0x369>
mov    0x2ad4(%rip),%rax
mov    (%rax),%edi
lea    0xaeb(%rip),%rsi
lea    0xaf3(%rip),%rdx
mov    $0x59,%ecx
call   1090 <fprintf@plt>
mov    0x2ab3(%rip),%rax
mov    (%rax),%edi
call   10b0 <fflush@plt>
jmp    1d2e <BN_extended_gcd+0xb5e>
mov    $0x0,%al
call   1030 <BN_new@plt>
mov    %rax,-0x60(%rbp)
cmp    $0x0,%rax
jne    1582 <BN_extended_gcd+0x3b2>
mov    0x2a8b(%rip),%rax
mov    (%rax),%edi
lea    0xaa2(%rip),%rsi
lea    0xaaa(%rip),%rdx
mov    $0x5a,%ecx
call   1090 <fprintf@plt>
mov    0x2a6a(%rip),%rax
mov    (%rax),%edi
call   10b0 <fflush@plt>
jmp    1d2e <BN_extended_gcd+0xb5e>
mov    $0x0,%al
call   1030 <BN_new@plt>
mov    %rax,-0x68(%rbp)
cmp    $0x0,%rax
jne    15cb <BN_extended_gcd+0x3fb>
mov    0x2a42(%rip),%rax
mov    (%rax),%edi
lea    0xa59(%rip),%rsi
lea    0xa61(%rip),%rdx
mov    $0x5b,%ecx
call   1090 <fprintf@plt>
mov    0x2a21(%rip),%rax
mov    (%rax),%edi
call   10b0 <fflush@plt>
jmp    1d2e <BN_extended_gcd+0xb5e>
mov    $0x0,%al
call   1030 <BN_new@plt>
mov    %rax,-0x70(%rbp)
cmp    $0x0,%rax
jne    1614 <BN_extended_gcd+0x444>
mov    0x29f9(%rip),%rax
mov    (%rax),%edi
lea    0xa10(%rip),%rsi
lea    0xa18(%rip),%rdx
mov    $0x5c,%ecx
call   1090 <fprintf@plt>
mov    0x29d8(%rip),%rax
mov    (%rax),%edi
call   10b0 <fflush@plt>
jmp    1d2e <BN_extended_gcd+0xb5e>
mov    -0x70(%rbp),%rdi
call   10e0 <BN_one@plt>
mov    %eax,-0x34(%rbp)
cmpl   $0x1,-0x34(%rbp)
je     165e <BN_extended_gcd+0x48e>
mov    0x29af(%rip),%rax
mov    (%rax),%edi
lea    0x9c6(%rip),%rsi
lea    0x9ce(%rip),%rdx
mov    $0x5d,%ecx
call   1090 <fprintf@plt>
mov    0x298e(%rip),%rax
mov    (%rax),%edi
call   10b0 <fflush@plt>
jmp    1d2e <BN_extended_gcd+0xb5e>
mov    -0x68(%rbp),%rdi
call   10d0 <BN_zero@plt>
mov    %eax,-0x34(%rbp)
cmpl   $0x1,-0x34(%rbp)
je     16a8 <BN_extended_gcd+0x4d8>
mov    0x2965(%rip),%rax
mov    (%rax),%edi
lea    0x97c(%rip),%rsi
lea    0x984(%rip),%rdx
mov    $0x5e,%ecx
call   1090 <fprintf@plt>
mov    0x2944(%rip),%rax
mov    (%rax),%edi
call   10b0 <fflush@plt>
jmp    1d2e <BN_extended_gcd+0xb5e>
mov    $0x0,%al
call   1030 <BN_new@plt>
mov    %rax,-0x78(%rbp)
cmp    $0x0,%rax
jne    16f1 <BN_extended_gcd+0x521>
mov    0x291c(%rip),%rax
mov    (%rax),%edi
lea    0x933(%rip),%rsi
lea    0x93b(%rip),%rdx
mov    $0x5f,%ecx
call   1090 <fprintf@plt>
mov    0x28fb(%rip),%rax
mov    (%rax),%edi
call   10b0 <fflush@plt>
jmp    1d2e <BN_extended_gcd+0xb5e>
mov    $0x0,%al
call   1030 <BN_new@plt>
mov    %rax,-0x80(%rbp)
cmp    $0x0,%rax
jne    173a <BN_extended_gcd+0x56a>
mov    0x28d3(%rip),%rax
mov    (%rax),%edi
lea    0x8ea(%rip),%rsi
lea    0x8f2(%rip),%rdx
mov    $0x60,%ecx
call   1090 <fprintf@plt>
mov    0x28b2(%rip),%rax
mov    (%rax),%edi
call   10b0 <fflush@plt>
jmp    1d2e <BN_extended_gcd+0xb5e>
mov    $0x0,%al
call   1030 <BN_new@plt>
mov    %rax,-0x88(%rbp)
cmp    $0x0,%rax
jne    1786 <BN_extended_gcd+0x5b6>
mov    0x2887(%rip),%rax
mov    (%rax),%edi
lea    0x89e(%rip),%rsi
lea    0x8a6(%rip),%rdx
mov    $0x61,%ecx
call   1090 <fprintf@plt>
mov    0x2866(%rip),%rax
mov    (%rax),%edi
call   10b0 <fflush@plt>
jmp    1d2e <BN_extended_gcd+0xb5e>
mov    -0x88(%rbp),%rdi
call   10d0 <BN_zero@plt>
mov    %eax,-0x34(%rbp)
cmpl   $0x1,-0x34(%rbp)
je     17d3 <BN_extended_gcd+0x603>
mov    0x283a(%rip),%rax
mov    (%rax),%edi
lea    0x851(%rip),%rsi
lea    0x859(%rip),%rdx
mov    $0x62,%ecx
call   1090 <fprintf@plt>
mov    0x2819(%rip),%rax
mov    (%rax),%edi
call   10b0 <fflush@plt>
jmp    1d2e <BN_extended_gcd+0xb5e>
mov    -0x80(%rbp),%rdi
call   10e0 <BN_one@plt>
mov    %eax,-0x34(%rbp)
cmpl   $0x1,-0x34(%rbp)
je     181d <BN_extended_gcd+0x64d>
mov    0x27f0(%rip),%rax
mov    (%rax),%edi
lea    0x807(%rip),%rsi
lea    0x80f(%rip),%rdx
mov    $0x63,%ecx
call   1090 <fprintf@plt>
mov    0x27cf(%rip),%rax
mov    (%rax),%edi
call   10b0 <fflush@plt>
jmp    1d2e <BN_extended_gcd+0xb5e>
mov    $0x0,%al
call   1030 <BN_new@plt>
mov    %rax,-0x90(%rbp)
cmp    $0x0,%rax
jne    1869 <BN_extended_gcd+0x699>
mov    0x27a4(%rip),%rax
mov    (%rax),%edi
lea    0x7bb(%rip),%rsi
lea    0x7c3(%rip),%rdx
mov    $0x64,%ecx
call   1090 <fprintf@plt>
mov    0x2783(%rip),%rax
mov    (%rax),%edi
call   10b0 <fflush@plt>
jmp    1d2e <BN_extended_gcd+0xb5e>
jmp    186e <BN_extended_gcd+0x69e>
mov    -0x90(%rbp),%rdi
mov    -0x48(%rbp),%rsi
mov    -0x58(%rbp),%rdx
mov    -0x50(%rbp),%rcx
mov    -0x30(%rbp),%r8
call   10f0 <BN_div@plt>
mov    %eax,-0x34(%rbp)
cmpl   $0x1,-0x34(%rbp)
je     18cb <BN_extended_gcd+0x6fb>
mov    0x2742(%rip),%rax
mov    (%rax),%edi
lea    0x759(%rip),%rsi
lea    0x761(%rip),%rdx
mov    $0x67,%ecx
call   1090 <fprintf@plt>
mov    0x2721(%rip),%rax
mov    (%rax),%edi
call   10b0 <fflush@plt>
jmp    1d2e <BN_extended_gcd+0xb5e>
mov    -0x60(%rbp),%rdi
mov    -0x90(%rbp),%rsi
mov    -0x68(%rbp),%rdx
mov    -0x30(%rbp),%rcx
call   1050 <BN_mul@plt>
mov    %eax,-0x34(%rbp)
cmpl   $0x1,-0x34(%rbp)
je     1924 <BN_extended_gcd+0x754>
mov    0x26e9(%rip),%rax
mov    (%rax),%edi
lea    0x700(%rip),%rsi
lea    0x708(%rip),%rdx
mov    $0x69,%ecx
call   1090 <fprintf@plt>
mov    0x26c8(%rip),%rax
mov    (%rax),%edi
call   10b0 <fflush@plt>
jmp    1d2e <BN_extended_gcd+0xb5e>
mov    -0x60(%rbp),%rdi
mov    -0x70(%rbp),%rsi
mov    -0x60(%rbp),%rdx
call   1040 <BN_sub@plt>
mov    %eax,-0x34(%rbp)
cmpl   $0x1,-0x34(%rbp)
je     1976 <BN_extended_gcd+0x7a6>
mov    0x2697(%rip),%rax
mov    (%rax),%edi
lea    0x6ae(%rip),%rsi
lea    0x6b6(%rip),%rdx
mov    $0x6a,%ecx
call   1090 <fprintf@plt>
mov    0x2676(%rip),%rax
mov    (%rax),%edi
call   10b0 <fflush@plt>
jmp    1d2e <BN_extended_gcd+0xb5e>
mov    -0x78(%rbp),%rdi
mov    -0x90(%rbp),%rsi
mov    -0x80(%rbp),%rdx
mov    -0x30(%rbp),%rcx
call   1050 <BN_mul@plt>
mov    %eax,-0x34(%rbp)
cmpl   $0x1,-0x34(%rbp)
je     19cf <BN_extended_gcd+0x7ff>
mov    0x263e(%rip),%rax
mov    (%rax),%edi
lea    0x655(%rip),%rsi
lea    0x65d(%rip),%rdx
mov    $0x6c,%ecx
call   1090 <fprintf@plt>
mov    0x261d(%rip),%rax
mov    (%rax),%edi
call   10b0 <fflush@plt>
jmp    1d2e <BN_extended_gcd+0xb5e>
mov    -0x78(%rbp),%rdi
mov    -0x88(%rbp),%rsi
mov    -0x78(%rbp),%rdx
call   1040 <BN_sub@plt>
mov    %eax,-0x34(%rbp)
cmpl   $0x1,-0x34(%rbp)
je     1a24 <BN_extended_gcd+0x854>
mov    0x25e9(%rip),%rax
mov    (%rax),%edi
lea    0x600(%rip),%rsi
lea    0x608(%rip),%rdx
mov    $0x6d,%ecx
call   1090 <fprintf@plt>
mov    0x25c8(%rip),%rax
mov    (%rax),%edi
call   10b0 <fflush@plt>
jmp    1d2e <BN_extended_gcd+0xb5e>
mov    -0x48(%rbp),%rdi
call   10a0 <BN_is_zero@plt>
cmp    $0x0,%eax
je     1a3b <BN_extended_gcd+0x86b>
jmp    1b6c <BN_extended_gcd+0x99c>
mov    -0x58(%rbp),%rdi
call   1070 <BN_free@plt>
mov    -0x50(%rbp),%rax
mov    %rax,-0x58(%rbp)
mov    -0x48(%rbp),%rax
mov    %rax,-0x50(%rbp)
mov    $0x0,%al
call   1030 <BN_new@plt>
mov    %rax,-0x48(%rbp)
cmp    $0x0,%rax
jne    1a9d <BN_extended_gcd+0x8cd>
mov    0x2570(%rip),%rax
mov    (%rax),%edi
lea    0x587(%rip),%rsi
lea    0x58f(%rip),%rdx
mov    $0x76,%ecx
call   1090 <fprintf@plt>
mov    0x254f(%rip),%rax
mov    (%rax),%edi
call   10b0 <fflush@plt>
jmp    1d2e <BN_extended_gcd+0xb5e>
mov    -0x70(%rbp),%rdi
call   1070 <BN_free@plt>
mov    -0x68(%rbp),%rax
mov    %rax,-0x70(%rbp)
mov    -0x60(%rbp),%rax
mov    %rax,-0x68(%rbp)
mov    $0x0,%al
call   1030 <BN_new@plt>
mov    %rax,-0x60(%rbp)
cmp    $0x0,%rax
jne    1aff <BN_extended_gcd+0x92f>
mov    0x250e(%rip),%rax
mov    (%rax),%edi
lea    0x525(%rip),%rsi
lea    0x52d(%rip),%rdx
mov    $0x7a,%ecx
call   1090 <fprintf@plt>
mov    0x24ed(%rip),%rax
mov    (%rax),%edi
call   10b0 <fflush@plt>
jmp    1d2e <BN_extended_gcd+0xb5e>
mov    -0x88(%rbp),%rdi
call   1070 <BN_free@plt>
mov    -0x80(%rbp),%rax
mov    %rax,-0x88(%rbp)
mov    -0x78(%rbp),%rax
mov    %rax,-0x80(%rbp)
mov    $0x0,%al
call   1030 <BN_new@plt>
mov    %rax,-0x78(%rbp)
cmp    $0x0,%rax
jne    1b67 <BN_extended_gcd+0x997>
mov    0x24a6(%rip),%rax
mov    (%rax),%edi
lea    0x4bd(%rip),%rsi
lea    0x4c5(%rip),%rdx
mov    $0x7e,%ecx
call   1090 <fprintf@plt>
mov    0x2485(%rip),%rax
mov    (%rax),%edi
call   10b0 <fflush@plt>
jmp    1d2e <BN_extended_gcd+0xb5e>
jmp    186e <BN_extended_gcd+0x69e>
cmpq   $0x0,-0x8(%rbp)
je     1bc7 <BN_extended_gcd+0x9f7>
mov    -0x8(%rbp),%rdi
mov    -0x50(%rbp),%rsi
call   1080 <BN_copy@plt>
cmp    $0x0,%rax
jne    1bc2 <BN_extended_gcd+0x9f2>
mov    0x244b(%rip),%rax
mov    (%rax),%edi
lea    0x462(%rip),%rsi
lea    0x46a(%rip),%rdx
mov    $0x81,%ecx
call   1090 <fprintf@plt>
mov    0x242a(%rip),%rax
mov    (%rax),%edi
call   10b0 <fflush@plt>
jmp    1d2e <BN_extended_gcd+0xb5e>
jmp    1bc7 <BN_extended_gcd+0x9f7>
cmpq   $0x0,-0x10(%rbp)
je     1d22 <BN_extended_gcd+0xb52>
cmpq   $0x0,-0x18(%rbp)
je     1d22 <BN_extended_gcd+0xb52>
cmpl   $0x0,-0x3c(%rbp)
je     1c82 <BN_extended_gcd+0xab2>
mov    -0x10(%rbp),%rdi
mov    -0x80(%rbp),%rsi
call   1080 <BN_copy@plt>
cmp    $0x0,%rax
jne    1c32 <BN_extended_gcd+0xa62>
mov    0x23db(%rip),%rax
mov    (%rax),%edi
lea    0x3f2(%rip),%rsi
lea    0x3fa(%rip),%rdx
mov    $0x85,%ecx
call   1090 <fprintf@plt>
mov    0x23ba(%rip),%rax
mov    (%rax),%edi
call   10b0 <fflush@plt>
jmp    1d2e <BN_extended_gcd+0xb5e>
mov    -0x18(%rbp),%rdi
mov    -0x68(%rbp),%rsi
call   1080 <BN_copy@plt>
cmp    $0x0,%rax
jne    1c7d <BN_extended_gcd+0xaad>
mov    0x2390(%rip),%rax
mov    (%rax),%edi
lea    0x3a7(%rip),%rsi
lea    0x3af(%rip),%rdx
mov    $0x86,%ecx
call   1090 <fprintf@plt>
mov    0x236f(%rip),%rax
mov    (%rax),%edi
call   10b0 <fflush@plt>
jmp    1d2e <BN_extended_gcd+0xb5e>
jmp    1d1d <BN_extended_gcd+0xb4d>
mov    -0x10(%rbp),%rdi
mov    -0x68(%rbp),%rsi
call   1080 <BN_copy@plt>
cmp    $0x0,%rax
jne    1ccd <BN_extended_gcd+0xafd>
mov    0x2340(%rip),%rax
mov    (%rax),%edi
lea    0x357(%rip),%rsi
lea    0x35f(%rip),%rdx
mov    $0x88,%ecx
call   1090 <fprintf@plt>
mov    0x231f(%rip),%rax
mov    (%rax),%edi
call   10b0 <fflush@plt>
jmp    1d2e <BN_extended_gcd+0xb5e>
mov    -0x18(%rbp),%rdi
mov    -0x80(%rbp),%rsi
call   1080 <BN_copy@plt>
cmp    $0x0,%rax
jne    1d18 <BN_extended_gcd+0xb48>
mov    0x22f5(%rip),%rax
mov    (%rax),%edi
lea    0x30c(%rip),%rsi
lea    0x314(%rip),%rdx
mov    $0x89,%ecx
call   1090 <fprintf@plt>
mov    0x22d4(%rip),%rax
mov    (%rax),%edi
call   10b0 <fflush@plt>
jmp    1d2e <BN_extended_gcd+0xb5e>
jmp    1d1d <BN_extended_gcd+0xb4d>
jmp    1d22 <BN_extended_gcd+0xb52>
movl   $0x1,-0x38(%rbp)
jmp    1d35 <BN_extended_gcd+0xb65>
movl   $0x0,-0x38(%rbp)
mov    -0x48(%rbp),%rdi
call   1070 <BN_free@plt>
mov    -0x50(%rbp),%rdi
call   1070 <BN_free@plt>
mov    -0x58(%rbp),%rdi
call   1070 <BN_free@plt>
mov    -0x60(%rbp),%rdi
call   1070 <BN_free@plt>
mov    -0x68(%rbp),%rdi
call   1070 <BN_free@plt>
mov    -0x70(%rbp),%rdi
call   1070 <BN_free@plt>
mov    -0x78(%rbp),%rdi
call   1070 <BN_free@plt>
mov    -0x80(%rbp),%rdi
call   1070 <BN_free@plt>
mov    -0x88(%rbp),%rdi
call   1070 <BN_free@plt>
mov    -0x90(%rbp),%rdi
call   1070 <BN_free@plt>
mov    -0x38(%rbp),%eax
add    $0x90,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<BN_extended_gcd>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x78,%rsp
test   %rcx,%rcx
je     1214 <BN_extended_gcd+0x44>
mov    %r8,%rbx
test   %r8,%r8
je     1222 <BN_extended_gcd+0x52>
mov    %r9,%r13
mov    %rcx,%rbp
mov    %rdx,%r12
mov    %rsi,%r15
mov    %rdi,%r14
mov    %rcx,%rdi
call   10a0 <BN_is_zero@plt>
test   %eax,%eax
je     1230 <BN_extended_gcd+0x60>
xor    %eax,%eax
mov    %rax,0x38(%rsp)
mov    $0x4e,%ecx
jmp    124c <BN_extended_gcd+0x7c>
xor    %eax,%eax
mov    %rax,0x38(%rsp)
mov    $0x4c,%ecx
jmp    124c <BN_extended_gcd+0x7c>
xor    %eax,%eax
mov    %rax,0x38(%rsp)
mov    $0x4d,%ecx
jmp    124c <BN_extended_gcd+0x7c>
mov    %rbx,%rdi
call   10a0 <BN_is_zero@plt>
test   %eax,%eax
je     1313 <BN_extended_gcd+0x143>
xor    %eax,%eax
mov    %rax,0x38(%rsp)
mov    $0x4f,%ecx
xor    %eax,%eax
mov    %rax,0x18(%rsp)
xor    %r12d,%r12d
xor    %eax,%eax
mov    %rax,0x48(%rsp)
xor    %ebp,%ebp
xor    %r13d,%r13d
xor    %eax,%eax
mov    %rax,0x40(%rsp)
xor    %r15d,%r15d
xor    %ebx,%ebx
xor    %eax,%eax
mov    %rax,0x28(%rsp)
xor    %eax,%eax
mov    %rax,0x20(%rsp)
mov    %rbx,%r14
mov    0x2d5a(%rip),%rbx
mov    (%rbx),%edi
lea    0xd71(%rip),%rsi
lea    0xd79(%rip),%rdx
call   1090 <fprintf@plt>
mov    (%rbx),%edi
call   10b0 <fflush@plt>
mov    0x18(%rsp),%rdi
mov    %r15,%rbx
call   1070 <BN_free@plt>
mov    %r12,%rdi
call   1070 <BN_free@plt>
mov    0x48(%rsp),%rdi
call   1070 <BN_free@plt>
mov    %rbp,%rdi
call   1070 <BN_free@plt>
mov    %r13,%rdi
call   1070 <BN_free@plt>
mov    0x40(%rsp),%rdi
call   1070 <BN_free@plt>
mov    %rbx,%rdi
call   1070 <BN_free@plt>
mov    %r14,%rdi
call   1070 <BN_free@plt>
mov    0x28(%rsp),%rdi
call   1070 <BN_free@plt>
mov    0x20(%rsp),%rdi
call   1070 <BN_free@plt>
mov    0x38(%rsp),%rax
add    $0x78,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
test   %r13,%r13
je     1361 <BN_extended_gcd+0x191>
mov    %rbp,%rdi
mov    %rbx,%rsi
call   10c0 <BN_cmp@plt>
mov    %rax,0x70(%rsp)
test   %rax,%rax
js     1372 <BN_extended_gcd+0x1a2>
mov    %rbp,%rdi
call   1060 <BN_dup@plt>
test   %rax,%rax
je     1613 <BN_extended_gcd+0x443>
mov    %rax,0x48(%rsp)
mov    %rbx,%rdi
call   1060 <BN_dup@plt>
test   %rax,%rax
jne    1399 <BN_extended_gcd+0x1c9>
xor    %eax,%eax
mov    %rax,0x38(%rsp)
mov    $0x53,%ecx
jmp    1694 <BN_extended_gcd+0x4c4>
xor    %eax,%eax
mov    %rax,0x38(%rsp)
mov    $0x50,%ecx
jmp    124c <BN_extended_gcd+0x7c>
mov    %rbx,%rdi
call   1060 <BN_dup@plt>
test   %rax,%rax
je     1660 <BN_extended_gcd+0x490>
mov    %rax,0x48(%rsp)
mov    %rbp,%rdi
call   1060 <BN_dup@plt>
test   %rax,%rax
je     1688 <BN_extended_gcd+0x4b8>
mov    %rax,0x8(%rsp)
xor    %eax,%eax
call   1030 <BN_new@plt>
test   %rax,%rax
je     1624 <BN_extended_gcd+0x454>
mov    %rax,%rbx
mov    %r13,0x68(%rsp)
xor    %r13d,%r13d
xor    %eax,%eax
call   1030 <BN_new@plt>
test   %rax,%rax
mov    %rbx,0x18(%rsp)
je     1671 <BN_extended_gcd+0x4a1>
mov    %rax,%rbp
xor    %eax,%eax
call   1030 <BN_new@plt>
mov    %rax,0x10(%rsp)
test   %rax,%rax
je     16a3 <BN_extended_gcd+0x4d3>
mov    %r14,0x60(%rsp)
xor    %eax,%eax
call   1030 <BN_new@plt>
test   %rax,%rax
je     16d6 <BN_extended_gcd+0x506>
mov    %rax,%r14
mov    %rax,%rdi
call   10e0 <BN_one@plt>
cmp    $0x1,%eax
mov    %r14,0x40(%rsp)
jne    170b <BN_extended_gcd+0x53b>
xor    %eax,%eax
mov    %rax,0x38(%rsp)
mov    0x10(%rsp),%rdi
call   10d0 <BN_zero@plt>
cmp    $0x1,%eax
jne    1719 <BN_extended_gcd+0x549>
mov    %r15,0x58(%rsp)
xor    %ebx,%ebx
xor    %eax,%eax
call   1030 <BN_new@plt>
test   %rax,%rax
je     1740 <BN_extended_gcd+0x570>
mov    %rax,%r15
mov    %r12,0x50(%rsp)
xor    %eax,%eax
call   1030 <BN_new@plt>
test   %rax,%rax
je     174a <BN_extended_gcd+0x57a>
mov    %rax,%rbx
xor    %eax,%eax
mov    %rax,0x20(%rsp)
xor    %eax,%eax
call   1030 <BN_new@plt>
test   %rax,%rax
je     175a <BN_extended_gcd+0x58a>
mov    %rax,%r12
mov    %rax,%rdi
call   10d0 <BN_zero@plt>
cmp    $0x1,%eax
mov    %r12,0x28(%rsp)
jne    1768 <BN_extended_gcd+0x598>
mov    %rbx,%rdi
call   10e0 <BN_one@plt>
cmp    $0x1,%eax
jne    176f <BN_extended_gcd+0x59f>
xor    %eax,%eax
call   1030 <BN_new@plt>
mov    %rax,%rcx
mov    %rax,0x20(%rsp)
test   %rax,%rax
je     1776 <BN_extended_gcd+0x5a6>
mov    0x48(%rsp),%rdx
mov    %rbx,0x30(%rsp)
mov    %r15,%rbx
mov    0x10(%rsp),%r13
mov    %rbp,%r14
mov    0x8(%rsp),%r12
mov    0x18(%rsp),%rsi
mov    0x20(%rsp),%r15
mov    %r15,%rdi
mov    %rsi,0x8(%rsp)
mov    %rdx,0x48(%rsp)
mov    %r12,%rcx
mov    0x68(%rsp),%rbp
mov    %rbp,%r8
call   10f0 <BN_div@plt>
cmp    $0x1,%eax
jne    177d <BN_extended_gcd+0x5ad>
mov    %r14,%rdi
mov    %r15,%rsi
mov    %r13,%rdx
mov    %rbp,%rcx
call   1050 <BN_mul@plt>
cmp    $0x1,%eax
jne    1784 <BN_extended_gcd+0x5b4>
mov    %r14,%rdi
mov    0x40(%rsp),%rsi
mov    %r14,0x10(%rsp)
mov    %r14,%rdx
call   1040 <BN_sub@plt>
cmp    $0x1,%eax
jne    1798 <BN_extended_gcd+0x5c8>
mov    %rbx,%rdi
mov    0x20(%rsp),%rsi
mov    0x30(%rsp),%rdx
mov    0x68(%rsp),%rcx
call   1050 <BN_mul@plt>
cmp    $0x1,%eax
jne    179f <BN_extended_gcd+0x5cf>
mov    %rbx,%rdi
mov    0x28(%rsp),%rsi
mov    %rbx,%rdx
call   1040 <BN_sub@plt>
cmp    $0x1,%eax
jne    17a6 <BN_extended_gcd+0x5d6>
mov    0x8(%rsp),%rdi
call   10a0 <BN_is_zero@plt>
test   %eax,%eax
jne    17c7 <BN_extended_gcd+0x5f7>
mov    0x48(%rsp),%rdi
call   1070 <BN_free@plt>
xor    %eax,%eax
call   1030 <BN_new@plt>
mov    %rax,0x18(%rsp)
test   %rax,%rax
je     1841 <BN_extended_gcd+0x671>
mov    0x40(%rsp),%rdi
call   1070 <BN_free@plt>
xor    %eax,%eax
call   1030 <BN_new@plt>
test   %rax,%rax
je     1869 <BN_extended_gcd+0x699>
mov    %rax,%rbp
mov    0x28(%rsp),%rdi
call   1070 <BN_free@plt>
xor    %eax,%eax
call   1030 <BN_new@plt>
mov    %rax,%rsi
mov    $0x7e,%ecx
mov    %r12,%rdx
mov    %r13,%rax
mov    %r13,0x40(%rsp)
mov    0x30(%rsp),%rax
mov    %rax,0x28(%rsp)
mov    %rsi,%r15
test   %rsi,%rsi
jne    14be <BN_extended_gcd+0x2ee>
mov    %r12,0x48(%rsp)
mov    %r13,0x40(%rsp)
xor    %r15d,%r15d
mov    0x30(%rsp),%rax
jmp    1761 <BN_extended_gcd+0x591>
xor    %eax,%eax
mov    %rax,0x38(%rsp)
mov    $0x52,%ecx
jmp    124c <BN_extended_gcd+0x7c>
xor    %eax,%eax
mov    %rax,0x38(%rsp)
mov    $0x59,%ecx
xor    %eax,%eax
mov    %rax,0x18(%rsp)
xor    %r13d,%r13d
xor    %eax,%eax
mov    %rax,0x40(%rsp)
xor    %r15d,%r15d
xor    %ebx,%ebx
xor    %eax,%eax
mov    %rax,0x28(%rsp)
xor    %eax,%eax
mov    %rax,0x20(%rsp)
mov    0x8(%rsp),%r12
xor    %ebp,%ebp
jmp    127c <BN_extended_gcd+0xac>
xor    %eax,%eax
mov    %rax,0x38(%rsp)
mov    $0x55,%ecx
jmp    124c <BN_extended_gcd+0x7c>
xor    %eax,%eax
mov    %rax,0x38(%rsp)
mov    $0x5a,%ecx
xor    %ebp,%ebp
xor    %eax,%eax
mov    %rax,0x40(%rsp)
jmp    16b9 <BN_extended_gcd+0x4e9>
xor    %eax,%eax
mov    %rax,0x38(%rsp)
mov    $0x56,%ecx
xor    %eax,%eax
mov    %rax,0x18(%rsp)
xor    %r12d,%r12d
jmp    125d <BN_extended_gcd+0x8d>
xor    %eax,%eax
mov    %rax,0x40(%rsp)
xor    %eax,%eax
mov    %rax,0x38(%rsp)
mov    $0x5b,%ecx
xor    %r13d,%r13d
xor    %r15d,%r15d
xor    %ebx,%ebx
xor    %eax,%eax
mov    %rax,0x28(%rsp)
xor    %eax,%eax
mov    %rax,0x20(%rsp)
mov    0x8(%rsp),%r12
jmp    127c <BN_extended_gcd+0xac>
xor    %eax,%eax
mov    %rax,0x38(%rsp)
mov    $0x5c,%ecx
xor    %eax,%eax
mov    %rax,0x40(%rsp)
xor    %ebx,%ebx
xor    %eax,%eax
mov    %rax,0x28(%rsp)
xor    %eax,%eax
mov    %rax,0x20(%rsp)
mov    0x8(%rsp),%r12
xor    %r15d,%r15d
mov    0x10(%rsp),%r13
jmp    127c <BN_extended_gcd+0xac>
xor    %eax,%eax
mov    %rax,0x38(%rsp)
mov    $0x5d,%ecx
jmp    171e <BN_extended_gcd+0x54e>
mov    $0x5e,%ecx
xor    %r15d,%r15d
xor    %ebx,%ebx
xor    %eax,%eax
mov    %rax,0x28(%rsp)
xor    %eax,%eax
mov    %rax,0x20(%rsp)
mov    0x8(%rsp),%r12
mov    0x10(%rsp),%r13
jmp    127c <BN_extended_gcd+0xac>
mov    $0x5f,%ecx
xor    %r15d,%r15d
jmp    1723 <BN_extended_gcd+0x553>
xor    %eax,%eax
mov    %rax,0x28(%rsp)
mov    $0x60,%ecx
xor    %ebx,%ebx
jmp    172a <BN_extended_gcd+0x55a>
mov    $0x61,%ecx
xor    %eax,%eax
mov    %rax,0x28(%rsp)
jmp    1731 <BN_extended_gcd+0x561>
mov    $0x62,%ecx
jmp    172a <BN_extended_gcd+0x55a>
mov    $0x63,%ecx
jmp    172a <BN_extended_gcd+0x55a>
mov    $0x64,%ecx
jmp    172a <BN_extended_gcd+0x55a>
mov    $0x67,%ecx
jmp    1789 <BN_extended_gcd+0x5b9>
mov    $0x69,%ecx
mov    0x8(%rsp),%rax
mov    %rax,0x18(%rsp)
mov    %r14,%rbp
jmp    17ba <BN_extended_gcd+0x5ea>
mov    $0x6a,%ecx
jmp    17ab <BN_extended_gcd+0x5db>
mov    $0x6c,%ecx
jmp    17ab <BN_extended_gcd+0x5db>
mov    $0x6d,%ecx
mov    0x8(%rsp),%rax
mov    %rax,0x18(%rsp)
mov    0x10(%rsp),%rbp
mov    %rbx,%r15
mov    0x30(%rsp),%rbx
jmp    127c <BN_extended_gcd+0xac>
cmpq   $0x0,0x60(%rsp)
je     17e5 <BN_extended_gcd+0x615>
mov    0x60(%rsp),%rdi
mov    %r12,%rsi
call   1080 <BN_copy@plt>
test   %rax,%rax
je     1887 <BN_extended_gcd+0x6b7>
cmpq   $0x0,0x58(%rsp)
je     18b7 <BN_extended_gcd+0x6e7>
cmpq   $0x0,0x50(%rsp)
je     18b7 <BN_extended_gcd+0x6e7>
cmpq   $0x0,0x70(%rsp)
js     1891 <BN_extended_gcd+0x6c1>
mov    0x58(%rsp),%rdi
mov    %r13,%rsi
call   1080 <BN_copy@plt>
test   %rax,%rax
je     18d5 <BN_extended_gcd+0x705>
mov    0x50(%rsp),%rdi
mov    0x30(%rsp),%rsi
call   1080 <BN_copy@plt>
test   %rax,%rax
jne    18b7 <BN_extended_gcd+0x6e7>
mov    $0x89,%ecx
jmp    17ab <BN_extended_gcd+0x5db>
mov    $0x76,%ecx
xor    %eax,%eax
mov    %rax,0x18(%rsp)
mov    %r12,0x48(%rsp)
mov    0x10(%rsp),%rbp
mov    %rbx,%r15
mov    0x30(%rsp),%rbx
mov    0x8(%rsp),%r12
jmp    127c <BN_extended_gcd+0xac>
mov    $0x7a,%ecx
mov    %r12,0x48(%rsp)
xor    %ebp,%ebp
mov    %r13,0x40(%rsp)
mov    %rbx,%r15
mov    0x30(%rsp),%rbx
jmp    1731 <BN_extended_gcd+0x561>
mov    $0x81,%ecx
jmp    17ab <BN_extended_gcd+0x5db>
mov    0x58(%rsp),%rdi
mov    0x30(%rsp),%rsi
call   1080 <BN_copy@plt>
test   %rax,%rax
je     18df <BN_extended_gcd+0x70f>
mov    0x50(%rsp),%rdi
mov    %r13,%rsi
call   1080 <BN_copy@plt>
test   %rax,%rax
je     18e9 <BN_extended_gcd+0x719>
mov    $0x1,%eax
mov    %rax,0x38(%rsp)
mov    0x8(%rsp),%rdi
mov    0x30(%rsp),%r14
mov    0x10(%rsp),%rbp
jmp    12aa <BN_extended_gcd+0xda>
mov    $0x88,%ecx
jmp    17ab <BN_extended_gcd+0x5db>
mov    $0x85,%ecx
jmp    17ab <BN_extended_gcd+0x5db>
mov    $0x86,%ecx
jmp    17ab <BN_extended_gcd+0x5db>

LLVM IR (-O0):
@stderr = global i32 0
@.str = [15 x i8] c"@@@ %s:%d @@@\0A\00"
@.str.1 = [133 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/dstebila/daps/refs/heads/master/bn_extra.c\00"
define i32 @BN_extended_gcd(i32* %0, i32* %1, i32* %2, i32* %3, i32* %4, i32* %5) {
%7 = alloca i32*
%8 = alloca i32*
%9 = alloca i32*
%10 = alloca i32*
%11 = alloca i32*
%12 = alloca i32*
%13 = alloca i32
%14 = alloca i32
%15 = alloca i32
%16 = alloca i32*
%17 = alloca i32*
%18 = alloca i32*
%19 = alloca i32*
%20 = alloca i32*
%21 = alloca i32*
%22 = alloca i32*
%23 = alloca i32*
%24 = alloca i32*
%25 = alloca i32*
store i32* %0, i32** %7
store i32* %1, i32** %8
store i32* %2, i32** %9
store i32* %3, i32** %10
store i32* %4, i32** %11
store i32* %5, i32** %12
store i32 0, i32* %15
store i32* null, i32** %16
store i32* null, i32** %17
store i32* null, i32** %18
store i32* null, i32** %19
store i32* null, i32** %20
store i32* null, i32** %21
store i32* null, i32** %22
store i32* null, i32** %23
store i32* null, i32** %24
store i32* null, i32** %25
%26 = load i32*, i32** %10
%27 = icmp eq i32* %26, null
br i1 %27, label %28, label %33
28: ; preds = %6
%29 = load i32, i32* @stderr
%30 = call i32 @fprintf(i32 %29, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.1, i64 0, i64 0), i32 76)
%31 = load i32, i32* @stderr
%32 = call i32 @fflush(i32 %31)
br label %390
33: ; preds = %6
%34 = load i32*, i32** %11
%35 = icmp eq i32* %34, null
br i1 %35, label %36, label %41
36: ; preds = %33
%37 = load i32, i32* @stderr
%38 = call i32 @fprintf(i32 %37, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.1, i64 0, i64 0), i32 77)
%39 = load i32, i32* @stderr
%40 = call i32 @fflush(i32 %39)
br label %390
41: ; preds = %33
%42 = load i32*, i32** %10
%43 = call i32 @BN_is_zero(i32* %42)
store i32 %43, i32* %13
%44 = load i32, i32* %13
%45 = icmp ne i32 %44, 0
br i1 %45, label %46, label %51
46: ; preds = %41
%47 = load i32, i32* @stderr
%48 = call i32 @fprintf(i32 %47, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.1, i64 0, i64 0), i32 78)
%49 = load i32, i32* @stderr
%50 = call i32 @fflush(i32 %49)
br label %390
51: ; preds = %41
%52 = load i32*, i32** %11
%53 = call i32 @BN_is_zero(i32* %52)
store i32 %53, i32* %13
%54 = load i32, i32* %13
%55 = icmp ne i32 %54, 0
br i1 %55, label %56, label %61
56: ; preds = %51
%57 = load i32, i32* @stderr
%58 = call i32 @fprintf(i32 %57, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.1, i64 0, i64 0), i32 79)
%59 = load i32, i32* @stderr
%60 = call i32 @fflush(i32 %59)
br label %390
61: ; preds = %51
%62 = load i32*, i32** %12
%63 = icmp eq i32* %62, null
br i1 %63, label %64, label %69
64: ; preds = %61
%65 = load i32, i32* @stderr
%66 = call i32 @fprintf(i32 %65, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.1, i64 0, i64 0), i32 80)
%67 = load i32, i32* @stderr
%68 = call i32 @fflush(i32 %67)
br label %390
69: ; preds = %61
%70 = load i32*, i32** %10
%71 = load i32*, i32** %11
%72 = call i64 @BN_cmp(i32* %70, i32* %71)
%73 = icmp sge i64 %72, 0
br i1 %73, label %74, label %93
74: ; preds = %69
%75 = load i32*, i32** %10
%76 = call i32* @BN_dup(i32* %75)
store i32* %76, i32** %18
%77 = icmp eq i32* %76, null
br i1 %77, label %78, label %83
78: ; preds = %74
%79 = load i32, i32* @stderr
%80 = call i32 @fprintf(i32 %79, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.1, i64 0, i64 0), i32 82)
%81 = load i32, i32* @stderr
%82 = call i32 @fflush(i32 %81)
br label %390
83: ; preds = %74
%84 = load i32*, i32** %11
%85 = call i32* @BN_dup(i32* %84)
store i32* %85, i32** %17
%86 = icmp eq i32* %85, null
br i1 %86, label %87, label %92
87: ; preds = %83
%88 = load i32, i32* @stderr
%89 = call i32 @fprintf(i32 %88, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.1, i64 0, i64 0), i32 83)
%90 = load i32, i32* @stderr
%91 = call i32 @fflush(i32 %90)
br label %390
92: ; preds = %83
br label %112
93: ; preds = %69
%94 = load i32*, i32** %11
%95 = call i32* @BN_dup(i32* %94)
store i32* %95, i32** %18
%96 = icmp eq i32* %95, null
br i1 %96, label %97, label %102
97: ; preds = %93
%98 = load i32, i32* @stderr
%99 = call i32 @fprintf(i32 %98, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.1, i64 0, i64 0), i32 85)
%100 = load i32, i32* @stderr
%101 = call i32 @fflush(i32 %100)
br label %390
102: ; preds = %93
%103 = load i32*, i32** %10
%104 = call i32* @BN_dup(i32* %103)
store i32* %104, i32** %17
%105 = icmp eq i32* %104, null
br i1 %105, label %106, label %111
106: ; preds = %102
%107 = load i32, i32* @stderr
%108 = call i32 @fprintf(i32 %107, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.1, i64 0, i64 0), i32 86)
%109 = load i32, i32* @stderr
%110 = call i32 @fflush(i32 %109)
br label %390
111: ; preds = %102
store i32 1, i32* %15
br label %112
112: ; preds = %111, %92
%113 = call i32* (...) @BN_new()
store i32* %113, i32** %16
%114 = icmp eq i32* %113, null
br i1 %114, label %115, label %120
115: ; preds = %112
%116 = load i32, i32* @stderr
%117 = call i32 @fprintf(i32 %116, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.1, i64 0, i64 0), i32 89)
%118 = load i32, i32* @stderr
%119 = call i32 @fflush(i32 %118)
br label %390
120: ; preds = %112
%121 = call i32* (...) @BN_new()
store i32* %121, i32** %19
%122 = icmp eq i32* %121, null
br i1 %122, label %123, label %128
123: ; preds = %120
%124 = load i32, i32* @stderr
%125 = call i32 @fprintf(i32 %124, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.1, i64 0, i64 0), i32 90)
%126 = load i32, i32* @stderr
%127 = call i32 @fflush(i32 %126)
br label %390
128: ; preds = %120
%129 = call i32* (...) @BN_new()
store i32* %129, i32** %20
%130 = icmp eq i32* %129, null
br i1 %130, label %131, label %136
131: ; preds = %128
%132 = load i32, i32* @stderr
%133 = call i32 @fprintf(i32 %132, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.1, i64 0, i64 0), i32 91)
%134 = load i32, i32* @stderr
%135 = call i32 @fflush(i32 %134)
br label %390
136: ; preds = %128
%137 = call i32* (...) @BN_new()
store i32* %137, i32** %21
%138 = icmp eq i32* %137, null
br i1 %138, label %139, label %144
139: ; preds = %136
%140 = load i32, i32* @stderr
%141 = call i32 @fprintf(i32 %140, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.1, i64 0, i64 0), i32 92)
%142 = load i32, i32* @stderr
%143 = call i32 @fflush(i32 %142)
br label %390
144: ; preds = %136
%145 = load i32*, i32** %21
%146 = call i32 @BN_one(i32* %145)
store i32 %146, i32* %13
%147 = load i32, i32* %13
%148 = icmp ne i32 %147, 1
br i1 %148, label %149, label %154
149: ; preds = %144
%150 = load i32, i32* @stderr
%151 = call i32 @fprintf(i32 %150, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.1, i64 0, i64 0), i32 93)
%152 = load i32, i32* @stderr
%153 = call i32 @fflush(i32 %152)
br label %390
154: ; preds = %144
%155 = load i32*, i32** %20
%156 = call i32 @BN_zero(i32* %155)
store i32 %156, i32* %13
%157 = load i32, i32* %13
%158 = icmp ne i32 %157, 1
br i1 %158, label %159, label %164
159: ; preds = %154
%160 = load i32, i32* @stderr
%161 = call i32 @fprintf(i32 %160, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.1, i64 0, i64 0), i32 94)
%162 = load i32, i32* @stderr
%163 = call i32 @fflush(i32 %162)
br label %390
164: ; preds = %154
%165 = call i32* (...) @BN_new()
store i32* %165, i32** %22
%166 = icmp eq i32* %165, null
br i1 %166, label %167, label %172
167: ; preds = %164
%168 = load i32, i32* @stderr
%169 = call i32 @fprintf(i32 %168, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.1, i64 0, i64 0), i32 95)
%170 = load i32, i32* @stderr
%171 = call i32 @fflush(i32 %170)
br label %390
172: ; preds = %164
%173 = call i32* (...) @BN_new()
store i32* %173, i32** %23
%174 = icmp eq i32* %173, null
br i1 %174, label %175, label %180
175: ; preds = %172
%176 = load i32, i32* @stderr
%177 = call i32 @fprintf(i32 %176, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.1, i64 0, i64 0), i32 96)
%178 = load i32, i32* @stderr
%179 = call i32 @fflush(i32 %178)
br label %390
180: ; preds = %172
%181 = call i32* (...) @BN_new()
store i32* %181, i32** %24
%182 = icmp eq i32* %181, null
br i1 %182, label %183, label %188
183: ; preds = %180
%184 = load i32, i32* @stderr
%185 = call i32 @fprintf(i32 %184, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.1, i64 0, i64 0), i32 97)
%186 = load i32, i32* @stderr
%187 = call i32 @fflush(i32 %186)
br label %390
188: ; preds = %180
%189 = load i32*, i32** %24
%190 = call i32 @BN_zero(i32* %189)
store i32 %190, i32* %13
%191 = load i32, i32* %13
%192 = icmp ne i32 %191, 1
br i1 %192, label %193, label %198
193: ; preds = %188
%194 = load i32, i32* @stderr
%195 = call i32 @fprintf(i32 %194, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.1, i64 0, i64 0), i32 98)
%196 = load i32, i32* @stderr
%197 = call i32 @fflush(i32 %196)
br label %390
198: ; preds = %188
%199 = load i32*, i32** %23
%200 = call i32 @BN_one(i32* %199)
store i32 %200, i32* %13
%201 = load i32, i32* %13
%202 = icmp ne i32 %201, 1
br i1 %202, label %203, label %208
203: ; preds = %198
%204 = load i32, i32* @stderr
%205 = call i32 @fprintf(i32 %204, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.1, i64 0, i64 0), i32 99)
%206 = load i32, i32* @stderr
%207 = call i32 @fflush(i32 %206)
br label %390
208: ; preds = %198
%209 = call i32* (...) @BN_new()
store i32* %209, i32** %25
%210 = icmp eq i32* %209, null
br i1 %210, label %211, label %216
211: ; preds = %208
%212 = load i32, i32* @stderr
%213 = call i32 @fprintf(i32 %212, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.1, i64 0, i64 0), i32 100)
%214 = load i32, i32* @stderr
%215 = call i32 @fflush(i32 %214)
br label %390
216: ; preds = %208
br label %217
217: ; preds = %216, %322
%218 = load i32*, i32** %25
%219 = load i32*, i32** %16
%220 = load i32*, i32** %18
%221 = load i32*, i32** %17
%222 = load i32*, i32** %12
%223 = call i32 @BN_div(i32* %218, i32* %219, i32* %220, i32* %221, i32* %222)
store i32 %223, i32* %13
%224 = load i32, i32* %13
%225 = icmp ne i32 %224, 1
br i1 %225, label %226, label %231
226: ; preds = %217
%227 = load i32, i32* @stderr
%228 = call i32 @fprintf(i32 %227, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.1, i64 0, i64 0), i32 103)
%229 = load i32, i32* @stderr
%230 = call i32 @fflush(i32 %229)
br label %390
231: ; preds = %217
%232 = load i32*, i32** %19
%233 = load i32*, i32** %25
%234 = load i32*, i32** %20
%235 = load i32*, i32** %12
%236 = call i32 @BN_mul(i32* %232, i32* %233, i32* %234, i32* %235)
store i32 %236, i32* %13
%237 = load i32, i32* %13
%238 = icmp ne i32 %237, 1
br i1 %238, label %239, label %244
239: ; preds = %231
%240 = load i32, i32* @stderr
%241 = call i32 @fprintf(i32 %240, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.1, i64 0, i64 0), i32 105)
%242 = load i32, i32* @stderr
%243 = call i32 @fflush(i32 %242)
br label %390
244: ; preds = %231
%245 = load i32*, i32** %19
%246 = load i32*, i32** %21
%247 = load i32*, i32** %19
%248 = call i32 @BN_sub(i32* %245, i32* %246, i32* %247)
store i32 %248, i32* %13
%249 = load i32, i32* %13
%250 = icmp ne i32 %249, 1
br i1 %250, label %251, label %256
251: ; preds = %244
%252 = load i32, i32* @stderr
%253 = call i32 @fprintf(i32 %252, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.1, i64 0, i64 0), i32 106)
%254 = load i32, i32* @stderr
%255 = call i32 @fflush(i32 %254)
br label %390
256: ; preds = %244
%257 = load i32*, i32** %22
%258 = load i32*, i32** %25
%259 = load i32*, i32** %23
%260 = load i32*, i32** %12
%261 = call i32 @BN_mul(i32* %257, i32* %258, i32* %259, i32* %260)
store i32 %261, i32* %13
%262 = load i32, i32* %13
%263 = icmp ne i32 %262, 1
br i1 %263, label %264, label %269
264: ; preds = %256
%265 = load i32, i32* @stderr
%266 = call i32 @fprintf(i32 %265, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.1, i64 0, i64 0), i32 108)
%267 = load i32, i32* @stderr
%268 = call i32 @fflush(i32 %267)
br label %390
269: ; preds = %256
%270 = load i32*, i32** %22
%271 = load i32*, i32** %24
%272 = load i32*, i32** %22
%273 = call i32 @BN_sub(i32* %270, i32* %271, i32* %272)
store i32 %273, i32* %13
%274 = load i32, i32* %13
%275 = icmp ne i32 %274, 1
br i1 %275, label %276, label %281
276: ; preds = %269
%277 = load i32, i32* @stderr
%278 = call i32 @fprintf(i32 %277, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.1, i64 0, i64 0), i32 109)
%279 = load i32, i32* @stderr
%280 = call i32 @fflush(i32 %279)
br label %390
281: ; preds = %269
%282 = load i32*, i32** %16
%283 = call i32 @BN_is_zero(i32* %282)
%284 = icmp ne i32 %283, 0
br i1 %284, label %285, label %286
285: ; preds = %281
br label %323
286: ; preds = %281
%287 = load i32*, i32** %18
%288 = call i32 @BN_free(i32* %287)
%289 = load i32*, i32** %17
store i32* %289, i32** %18
%290 = load i32*, i32** %16
store i32* %290, i32** %17
%291 = call i32* (...) @BN_new()
store i32* %291, i32** %16
%292 = icmp eq i32* %291, null
br i1 %292, label %293, label %298
293: ; preds = %286
%294 = load i32, i32* @stderr
%295 = call i32 @fprintf(i32 %294, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.1, i64 0, i64 0), i32 118)
%296 = load i32, i32* @stderr
%297 = call i32 @fflush(i32 %296)
br label %390
298: ; preds = %286
%299 = load i32*, i32** %21
%300 = call i32 @BN_free(i32* %299)
%301 = load i32*, i32** %20
store i32* %301, i32** %21
%302 = load i32*, i32** %19
store i32* %302, i32** %20
%303 = call i32* (...) @BN_new()
store i32* %303, i32** %19
%304 = icmp eq i32* %303, null
br i1 %304, label %305, label %310
305: ; preds = %298
%306 = load i32, i32* @stderr
%307 = call i32 @fprintf(i32 %306, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.1, i64 0, i64 0), i32 122)
%308 = load i32, i32* @stderr
%309 = call i32 @fflush(i32 %308)
br label %390
310: ; preds = %298
%311 = load i32*, i32** %24
%312 = call i32 @BN_free(i32* %311)
%313 = load i32*, i32** %23
store i32* %313, i32** %24
%314 = load i32*, i32** %22
store i32* %314, i32** %23
%315 = call i32* (...) @BN_new()
store i32* %315, i32** %22
%316 = icmp eq i32* %315, null
br i1 %316, label %317, label %322
317: ; preds = %310
%318 = load i32, i32* @stderr
%319 = call i32 @fprintf(i32 %318, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.1, i64 0, i64 0), i32 126)
%320 = load i32, i32* @stderr
%321 = call i32 @fflush(i32 %320)
br label %390
322: ; preds = %310
br label %217
323: ; preds = %285
%324 = load i32*, i32** %7
%325 = icmp ne i32* %324, null
br i1 %325, label %326, label %337
326: ; preds = %323
%327 = load i32*, i32** %7
%328 = load i32*, i32** %17
%329 = call i32* @BN_copy(i32* %327, i32* %328)
%330 = icmp eq i32* %329, null
br i1 %330, label %331, label %336
331: ; preds = %326
%332 = load i32, i32* @stderr
%333 = call i32 @fprintf(i32 %332, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.1, i64 0, i64 0), i32 129)
%334 = load i32, i32* @stderr
%335 = call i32 @fflush(i32 %334)
br label %390
336: ; preds = %326
br label %337
337: ; preds = %336, %323
%338 = load i32*, i32** %8
%339 = icmp ne i32* %338, null
br i1 %339, label %340, label %389
340: ; preds = %337
%341 = load i32*, i32** %9
%342 = icmp ne i32* %341, null
br i1 %342, label %343, label %389
343: ; preds = %340
%344 = load i32, i32* %15
%345 = icmp ne i32 %344, 0
br i1 %345, label %346, label %367
346: ; preds = %343
%347 = load i32*, i32** %8
%348 = load i32*, i32** %23
%349 = call i32* @BN_copy(i32* %347, i32* %348)
%350 = icmp eq i32* %349, null
br i1 %350, label %351, label %356
351: ; preds = %346
%352 = load i32, i32* @stderr
%353 = call i32 @fprintf(i32 %352, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.1, i64 0, i64 0), i32 133)
%354 = load i32, i32* @stderr
%355 = call i32 @fflush(i32 %354)
br label %390
356: ; preds = %346
%357 = load i32*, i32** %9
%358 = load i32*, i32** %20
%359 = call i32* @BN_copy(i32* %357, i32* %358)
%360 = icmp eq i32* %359, null
br i1 %360, label %361, label %366
361: ; preds = %356
%362 = load i32, i32* @stderr
%363 = call i32 @fprintf(i32 %362, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.1, i64 0, i64 0), i32 134)
%364 = load i32, i32* @stderr
%365 = call i32 @fflush(i32 %364)
br label %390
366: ; preds = %356
br label %388
367: ; preds = %343
%368 = load i32*, i32** %8
%369 = load i32*, i32** %20
%370 = call i32* @BN_copy(i32* %368, i32* %369)
%371 = icmp eq i32* %370, null
br i1 %371, label %372, label %377
372: ; preds = %367
%373 = load i32, i32* @stderr
%374 = call i32 @fprintf(i32 %373, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.1, i64 0, i64 0), i32 136)
%375 = load i32, i32* @stderr
%376 = call i32 @fflush(i32 %375)
br label %390
377: ; preds = %367
%378 = load i32*, i32** %9
%379 = load i32*, i32** %23
%380 = call i32* @BN_copy(i32* %378, i32* %379)
%381 = icmp eq i32* %380, null
br i1 %381, label %382, label %387
382: ; preds = %377
%383 = load i32, i32* @stderr
%384 = call i32 @fprintf(i32 %383, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.1, i64 0, i64 0), i32 137)
%385 = load i32, i32* @stderr
%386 = call i32 @fflush(i32 %385)
br label %390
387: ; preds = %377
br label %388
388: ; preds = %387, %366
br label %389
389: ; preds = %388, %340, %337
store i32 1, i32* %14
br label %391
390: ; preds = %382, %372, %361, %351, %331, %317, %305, %293, %276, %264, %251, %239, %226, %211, %203, %193, %183, %175, %167, %159, %149, %139, %131, %123, %115, %106, %97, %87, %78, %64, %56, %46, %36, %28
store i32 0, i32* %14
br label %391
391: ; preds = %390, %389
%392 = load i32*, i32** %16
%393 = call i32 @BN_free(i32* %392)
%394 = load i32*, i32** %17
%395 = call i32 @BN_free(i32* %394)
%396 = load i32*, i32** %18
%397 = call i32 @BN_free(i32* %396)
%398 = load i32*, i32** %19
%399 = call i32 @BN_free(i32* %398)
%400 = load i32*, i32** %20
%401 = call i32 @BN_free(i32* %400)
%402 = load i32*, i32** %21
%403 = call i32 @BN_free(i32* %402)
%404 = load i32*, i32** %22
%405 = call i32 @BN_free(i32* %404)
%406 = load i32*, i32** %23
%407 = call i32 @BN_free(i32* %406)
%408 = load i32*, i32** %24
%409 = call i32 @BN_free(i32* %408)
%410 = load i32*, i32** %25
%411 = call i32 @BN_free(i32* %410)
%412 = load i32, i32* %14
ret i32 %412
}

LLVM IR (-O2):
@stderr = global i32 0
@.str = [15 x i8] c"@@@ %s:%d @@@\0A\00"
@.str.1 = [133 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/dstebila/daps/refs/heads/master/bn_extra.c\00"
define i32 @BN_extended_gcd(i32* %0, i32* %1, i32* %2, i32* %3, i32* %4, i32* %5) {
%7 = icmp eq i32* %3, null
br i1 %7, label %132, label %8
8: ; preds = %6
%9 = icmp eq i32* %4, null
br i1 %9, label %132, label %10
10: ; preds = %8
%11 = tail call i32 @BN_is_zero(i32* %3)
%12 = icmp eq i32 %11, 0
br i1 %12, label %13, label %132
13: ; preds = %10
%14 = tail call i32 @BN_is_zero(i32* %4)
%15 = icmp eq i32 %14, 0
br i1 %15, label %16, label %132
16: ; preds = %13
%17 = icmp eq i32* %5, null
br i1 %17, label %132, label %18
18: ; preds = %16
%19 = tail call i64 @BN_cmp(i32* %3, i32* %4)
%20 = icmp sgt i64 %19, -1
br i1 %20, label %21, label %27
21: ; preds = %18
%22 = tail call i32* @BN_dup(i32* %3)
%23 = icmp eq i32* %22, null
br i1 %23, label %132, label %24
24: ; preds = %21
%25 = tail call i32* @BN_dup(i32* %4)
%26 = icmp eq i32* %25, null
br i1 %26, label %132, label %33
27: ; preds = %18
%28 = tail call i32* @BN_dup(i32* %4)
%29 = icmp eq i32* %28, null
br i1 %29, label %132, label %30
30: ; preds = %27
%31 = tail call i32* @BN_dup(i32* %3)
%32 = icmp eq i32* %31, null
br i1 %32, label %132, label %33
33: ; preds = %30, %24
%34 = phi i32* [ %25, %24 ], [ %31, %30 ]
%35 = phi i32* [ %22, %24 ], [ %28, %30 ]
%36 = tail call i32* (...) @BN_new()
%37 = icmp eq i32* %36, null
br i1 %37, label %132, label %38
38: ; preds = %33
%39 = tail call i32* (...) @BN_new()
%40 = icmp eq i32* %39, null
br i1 %40, label %132, label %41
41: ; preds = %38
%42 = tail call i32* (...) @BN_new()
%43 = icmp eq i32* %42, null
br i1 %43, label %132, label %44
44: ; preds = %41
%45 = tail call i32* (...) @BN_new()
%46 = icmp eq i32* %45, null
br i1 %46, label %132, label %47
47: ; preds = %44
%48 = tail call i32 @BN_one(i32* %45)
%49 = icmp eq i32 %48, 1
br i1 %49, label %50, label %132
50: ; preds = %47
%51 = tail call i32 @BN_zero(i32* %42)
%52 = icmp eq i32 %51, 1
br i1 %52, label %53, label %132
53: ; preds = %50
%54 = tail call i32* (...) @BN_new()
%55 = icmp eq i32* %54, null
br i1 %55, label %132, label %56
56: ; preds = %53
%57 = tail call i32* (...) @BN_new()
%58 = icmp eq i32* %57, null
br i1 %58, label %132, label %59
59: ; preds = %56
%60 = tail call i32* (...) @BN_new()
%61 = icmp eq i32* %60, null
br i1 %61, label %132, label %62
62: ; preds = %59
%63 = tail call i32 @BN_zero(i32* %60)
%64 = icmp eq i32 %63, 1
br i1 %64, label %65, label %132
65: ; preds = %62
%66 = tail call i32 @BN_one(i32* %57)
%67 = icmp eq i32 %66, 1
br i1 %67, label %68, label %132
68: ; preds = %65
%69 = tail call i32* (...) @BN_new()
%70 = icmp eq i32* %69, null
br i1 %70, label %132, label %71
71: ; preds = %68, %106
%72 = phi i32* [ %100, %106 ], [ %36, %68 ]
%73 = phi i32* [ %72, %106 ], [ %34, %68 ]
%74 = phi i32* [ %73, %106 ], [ %35, %68 ]
%75 = phi i32* [ %104, %106 ], [ %39, %68 ]
%76 = phi i32* [ %75, %106 ], [ %42, %68 ]
%77 = phi i32* [ %76, %106 ], [ %45, %68 ]
%78 = phi i32* [ %108, %106 ], [ %54, %68 ]
%79 = phi i32* [ %78, %106 ], [ %57, %68 ]
%80 = phi i32* [ %79, %106 ], [ %60, %68 ]
%81 = tail call i32 @BN_div(i32* %69, i32* %72, i32* %74, i32* %73, i32* %5)
%82 = icmp eq i32 %81, 1
br i1 %82, label %83, label %132
83: ; preds = %71
%84 = tail call i32 @BN_mul(i32* %75, i32* %69, i32* %76, i32* %5)
%85 = icmp eq i32 %84, 1
br i1 %85, label %86, label %132
86: ; preds = %83
%87 = tail call i32 @BN_sub(i32* %75, i32* %77, i32* %75)
%88 = icmp eq i32 %87, 1
br i1 %88, label %89, label %132
89: ; preds = %86
%90 = tail call i32 @BN_mul(i32* %78, i32* %69, i32* %79, i32* %5)
%91 = icmp eq i32 %90, 1
br i1 %91, label %92, label %132
92: ; preds = %89
%93 = tail call i32 @BN_sub(i32* %78, i32* %80, i32* %78)
%94 = icmp eq i32 %93, 1
br i1 %94, label %95, label %132
95: ; preds = %92
%96 = tail call i32 @BN_is_zero(i32* %72)
%97 = icmp eq i32 %96, 0
br i1 %97, label %98, label %110
98: ; preds = %95
%99 = tail call i32 @BN_free(i32* %74)
%100 = tail call i32* (...) @BN_new()
%101 = icmp eq i32* %100, null
br i1 %101, label %132, label %102
102: ; preds = %98
%103 = tail call i32 @BN_free(i32* %77)
%104 = tail call i32* (...) @BN_new()
%105 = icmp eq i32* %104, null
br i1 %105, label %132, label %106
106: ; preds = %102
%107 = tail call i32 @BN_free(i32* %80)
%108 = tail call i32* (...) @BN_new()
%109 = icmp eq i32* %108, null
br i1 %109, label %132, label %71
110: ; preds = %95
%111 = icmp eq i32* %0, null
br i1 %111, label %115, label %112
112: ; preds = %110
%113 = tail call i32* @BN_copy(i32* %0, i32* %73)
%114 = icmp eq i32* %113, null
br i1 %114, label %132, label %115
115: ; preds = %112, %110
%116 = icmp ne i32* %1, null
%117 = icmp ne i32* %2, null
%118 = and i1 %116, %117
br i1 %118, label %119, label %148
119: ; preds = %115
br i1 %20, label %126, label %120
120: ; preds = %119
%121 = tail call i32* @BN_copy(i32* %1, i32* %79)
%122 = icmp eq i32* %121, null
br i1 %122, label %132, label %123
123: ; preds = %120
%124 = tail call i32* @BN_copy(i32* %2, i32* %76)
%125 = icmp eq i32* %124, null
br i1 %125, label %132, label %148
126: ; preds = %119
%127 = tail call i32* @BN_copy(i32* %1, i32* %76)
%128 = icmp eq i32* %127, null
br i1 %128, label %132, label %129
129: ; preds = %126
%130 = tail call i32* @BN_copy(i32* %2, i32* %79)
%131 = icmp eq i32* %130, null
br i1 %131, label %132, label %148
132: ; preds = %106, %102, %98, %92, %89, %86, %83, %71, %129, %126, %123, %120, %112, %68, %65, %62, %59, %56, %53, %50, %47, %44, %41, %38, %33, %30, %27, %24, %21, %16, %13, %10, %8, %6
%133 = phi i32 [ 76, %6 ], [ 77, %8 ], [ 78, %10 ], [ 79, %13 ], [ 80, %16 ], [ 82, %21 ], [ 83, %24 ], [ 85, %27 ], [ 86, %30 ], [ 89, %33 ], [ 90, %38 ], [ 91, %41 ], [ 92, %44 ], [ 93, %47 ], [ 94, %50 ], [ 95, %53 ], [ 96, %56 ], [ 97, %59 ], [ 98, %62 ], [ 99, %65 ], [ 100, %68 ], [ 129, %112 ], [ 133, %120 ], [ 134, %123 ], [ 136, %126 ], [ 137, %129 ], [ 103, %71 ], [ 105, %83 ], [ 106, %86 ], [ 108, %89 ], [ 109, %92 ], [ 118, %98 ], [ 122, %102 ], [ 126, %106 ]
%134 = phi i32* [ null, %6 ], [ null, %8 ], [ null, %10 ], [ null, %13 ], [ null, %16 ], [ null, %21 ], [ null, %24 ], [ null, %27 ], [ null, %30 ], [ null, %33 ], [ %36, %38 ], [ %36, %41 ], [ %36, %44 ], [ %36, %47 ], [ %36, %50 ], [ %36, %53 ], [ %36, %56 ], [ %36, %59 ], [ %36, %62 ], [ %36, %65 ], [ %36, %68 ], [ %72, %112 ], [ %72, %120 ], [ %72, %123 ], [ %72, %126 ], [ %72, %129 ], [ %72, %71 ], [ %72, %83 ], [ %72, %86 ], [ %72, %89 ], [ %72, %92 ], [ null, %98 ], [ %100, %102 ], [ %100, %106 ]
%135 = phi i32* [ null, %6 ], [ null, %8 ], [ null, %10 ], [ null, %13 ], [ null, %16 ], [ null, %21 ], [ null, %24 ], [ null, %27 ], [ null, %30 ], [ %34, %33 ], [ %34, %38 ], [ %34, %41 ], [ %34, %44 ], [ %34, %47 ], [ %34, %50 ], [ %34, %53 ], [ %34, %56 ], [ %34, %59 ], [ %34, %62 ], [ %34, %65 ], [ %34, %68 ], [ %73, %112 ], [ %73, %120 ], [ %73, %123 ], [ %73, %126 ], [ %73, %129 ], [ %73, %71 ], [ %73, %83 ], [ %73, %86 ], [ %73, %89 ], [ %73, %92 ], [ %72, %98 ], [ %72, %102 ], [ %72, %106 ]
%136 = phi i32* [ null, %6 ], [ null, %8 ], [ null, %10 ], [ null, %13 ], [ null, %16 ], [ null, %21 ], [ %22, %24 ], [ null, %27 ], [ %28, %30 ], [ %35, %33 ], [ %35, %38 ], [ %35, %41 ], [ %35, %44 ], [ %35, %47 ], [ %35, %50 ], [ %35, %53 ], [ %35, %56 ], [ %35, %59 ], [ %35, %62 ], [ %35, %65 ], [ %35, %68 ], [ %74, %112 ], [ %74, %120 ], [ %74, %123 ], [ %74, %126 ], [ %74, %129 ], [ %74, %71 ], [ %74, %83 ], [ %74, %86 ], [ %74, %89 ], [ %74, %92 ], [ %73, %98 ], [ %73, %102 ], [ %73, %106 ]
%137 = phi i32* [ null, %6 ], [ null, %8 ], [ null, %10 ], [ null, %13 ], [ null, %16 ], [ null, %21 ], [ null, %24 ], [ null, %27 ], [ null, %30 ], [ null, %33 ], [ null, %38 ], [ %39, %41 ], [ %39, %44 ], [ %39, %47 ], [ %39, %50 ], [ %39, %53 ], [ %39, %56 ], [ %39, %59 ], [ %39, %62 ], [ %39, %65 ], [ %39, %68 ], [ %75, %112 ], [ %75, %120 ], [ %75, %123 ], [ %75, %126 ], [ %75, %129 ], [ %75, %71 ], [ %75, %83 ], [ %75, %86 ], [ %75, %89 ], [ %75, %92 ], [ %75, %98 ], [ null, %102 ], [ %104, %106 ]
%138 = phi i32* [ null, %6 ], [ null, %8 ], [ null, %10 ], [ null, %13 ], [ null, %16 ], [ null, %21 ], [ null, %24 ], [ null, %27 ], [ null, %30 ], [ null, %33 ], [ null, %38 ], [ null, %41 ], [ %42, %44 ], [ %42, %47 ], [ %42, %50 ], [ %42, %53 ], [ %42, %56 ], [ %42, %59 ], [ %42, %62 ], [ %42, %65 ], [ %42, %68 ], [ %76, %112 ], [ %76, %120 ], [ %76, %123 ], [ %76, %126 ], [ %76, %129 ], [ %76, %71 ], [ %76, %83 ], [ %76, %86 ], [ %76, %89 ], [ %76, %92 ], [ %76, %98 ], [ %75, %102 ], [ %75, %106 ]
%139 = phi i32* [ null, %6 ], [ null, %8 ], [ null, %10 ], [ null, %13 ], [ null, %16 ], [ null, %21 ], [ null, %24 ], [ null, %27 ], [ null, %30 ], [ null, %33 ], [ null, %38 ], [ null, %41 ], [ null, %44 ], [ %45, %47 ], [ %45, %50 ], [ %45, %53 ], [ %45, %56 ], [ %45, %59 ], [ %45, %62 ], [ %45, %65 ], [ %45, %68 ], [ %77, %112 ], [ %77, %120 ], [ %77, %123 ], [ %77, %126 ], [ %77, %129 ], [ %77, %71 ], [ %77, %83 ], [ %77, %86 ], [ %77, %89 ], [ %77, %92 ], [ %77, %98 ], [ %76, %102 ], [ %76, %106 ]
%140 = phi i32* [ null, %6 ], [ null, %8 ], [ null, %10 ], [ null, %13 ], [ null, %16 ], [ null, %21 ], [ null, %24 ], [ null, %27 ], [ null, %30 ], [ null, %33 ], [ null, %38 ], [ null, %41 ], [ null, %44 ], [ null, %47 ], [ null, %50 ], [ null, %53 ], [ %54, %56 ], [ %54, %59 ], [ %54, %62 ], [ %54, %65 ], [ %54, %68 ], [ %78, %112 ], [ %78, %120 ], [ %78, %123 ], [ %78, %126 ], [ %78, %129 ], [ %78, %71 ], [ %78, %83 ], [ %78, %86 ], [ %78, %89 ], [ %78, %92 ], [ %78, %98 ], [ %78, %102 ], [ null, %106 ]
%141 = phi i32* [ null, %6 ], [ null, %8 ], [ null, %10 ], [ null, %13 ], [ null, %16 ], [ null, %21 ], [ null, %24 ], [ null, %27 ], [ null, %30 ], [ null, %33 ], [ null, %38 ], [ null, %41 ], [ null, %44 ], [ null, %47 ], [ null, %50 ], [ null, %53 ], [ null, %56 ], [ %57, %59 ], [ %57, %62 ], [ %57, %65 ], [ %57, %68 ], [ %79, %112 ], [ %79, %120 ], [ %79, %123 ], [ %79, %126 ], [ %79, %129 ], [ %79, %71 ], [ %79, %83 ], [ %79, %86 ], [ %79, %89 ], [ %79, %92 ], [ %79, %98 ], [ %79, %102 ], [ %78, %106 ]
%142 = phi i32* [ null, %6 ], [ null, %8 ], [ null, %10 ], [ null, %13 ], [ null, %16 ], [ null, %21 ], [ null, %24 ], [ null, %27 ], [ null, %30 ], [ null, %33 ], [ null, %38 ], [ null, %41 ], [ null, %44 ], [ null, %47 ], [ null, %50 ], [ null, %53 ], [ null, %56 ], [ null, %59 ], [ %60, %62 ], [ %60, %65 ], [ %60, %68 ], [ %80, %112 ], [ %80, %120 ], [ %80, %123 ], [ %80, %126 ], [ %80, %129 ], [ %80, %71 ], [ %80, %83 ], [ %80, %86 ], [ %80, %89 ], [ %80, %92 ], [ %80, %98 ], [ %80, %102 ], [ %79, %106 ]
%143 = phi i32* [ null, %6 ], [ null, %8 ], [ null, %10 ], [ null, %13 ], [ null, %16 ], [ null, %21 ], [ null, %24 ], [ null, %27 ], [ null, %30 ], [ null, %33 ], [ null, %38 ], [ null, %41 ], [ null, %44 ], [ null, %47 ], [ null, %50 ], [ null, %53 ], [ null, %56 ], [ null, %59 ], [ null, %62 ], [ null, %65 ], [ null, %68 ], [ %69, %112 ], [ %69, %120 ], [ %69, %123 ], [ %69, %126 ], [ %69, %129 ], [ %69, %71 ], [ %69, %83 ], [ %69, %86 ], [ %69, %89 ], [ %69, %92 ], [ %69, %98 ], [ %69, %102 ], [ %69, %106 ]
%144 = load i32, i32* @stderr
%145 = tail call i32 @fprintf(i32 %144, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.1, i64 0, i64 0), i32 %133)
%146 = load i32, i32* @stderr
%147 = tail call i32 @fflush(i32 %146)
br label %148
148: ; preds = %132, %115, %129, %123
%149 = phi i32 [ 1, %123 ], [ 1, %129 ], [ 1, %115 ], [ 0, %132 ]
%150 = phi i32* [ %72, %123 ], [ %72, %129 ], [ %72, %115 ], [ %134, %132 ]
%151 = phi i32* [ %73, %123 ], [ %73, %129 ], [ %73, %115 ], [ %135, %132 ]
%152 = phi i32* [ %74, %123 ], [ %74, %129 ], [ %74, %115 ], [ %136, %132 ]
%153 = phi i32* [ %75, %123 ], [ %75, %129 ], [ %75, %115 ], [ %137, %132 ]
%154 = phi i32* [ %76, %123 ], [ %76, %129 ], [ %76, %115 ], [ %138, %132 ]
%155 = phi i32* [ %77, %123 ], [ %77, %129 ], [ %77, %115 ], [ %139, %132 ]
%156 = phi i32* [ %78, %123 ], [ %78, %129 ], [ %78, %115 ], [ %140, %132 ]
%157 = phi i32* [ %79, %123 ], [ %79, %129 ], [ %79, %115 ], [ %141, %132 ]
%158 = phi i32* [ %80, %123 ], [ %80, %129 ], [ %80, %115 ], [ %142, %132 ]
%159 = phi i32* [ %69, %123 ], [ %69, %129 ], [ %69, %115 ], [ %143, %132 ]
%160 = tail call i32 @BN_free(i32* %150)
%161 = tail call i32 @BN_free(i32* %151)
%162 = tail call i32 @BN_free(i32* %152)
%163 = tail call i32 @BN_free(i32* %153)
%164 = tail call i32 @BN_free(i32* %154)
%165 = tail call i32 @BN_free(i32* %155)
%166 = tail call i32 @BN_free(i32* %156)
%167 = tail call i32 @BN_free(i32* %157)
%168 = tail call i32 @BN_free(i32* %158)
%169 = tail call i32 @BN_free(i32* %159)
ret i32 %149
}