#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 uintptr_t x7;
typedef uintptr_t x6;
typedef uintptr_t x5;
typedef uintptr_t x43;
typedef uintptr_t x41;
typedef uintptr_t x4;
typedef uintptr_t x39;
typedef uintptr_t x37;
typedef uintptr_t x35;
typedef uintptr_t x33;
typedef uintptr_t x31;
typedef uintptr_t x3;
typedef uintptr_t x29;
typedef uintptr_t x27;
typedef uintptr_t x25;
typedef uintptr_t x23;
typedef uintptr_t x21;
typedef uintptr_t x2;
typedef uintptr_t x19;
typedef uintptr_t x17;
typedef uintptr_t x16;
typedef uintptr_t x1;
typedef uintptr_t x0;
typedef int /*<<< orphan*/ out0;
typedef int /*<<< orphan*/ in1;
typedef int /*<<< orphan*/ in0;

/* Variables and functions */
uintptr_t _br2_load(int /*<<< orphan*/, int);
int /*<<< orphan*/ _br2_store(int /*<<< orphan*/, uintptr_t, int);
void internal_fiat_secp256k1_sub(uintptr_t out0, uintptr_t in0, uintptr_t in1) {
  uintptr_t x8, x9, x0, x10, x1, x17, x11, x2, x19, x12, x3, x21, x13, x4, x23,
      x14, x5, x25, x15, x6, x27, x7, x29, x16, x33, x18, x35, x20, x37, x22,
      x39, x24, x41, x26, x43, x28, x30, x31, x32, x34, x36, x38, x40, x42, x44,
      x45, x46, x47, x48, x49, x50, x51, x52, x53;
  x0 = _br2_load((in0) + ((uintptr_t)0ULL), sizeof(uintptr_t));
  x1 = _br2_load((in0) + ((uintptr_t)4ULL), sizeof(uintptr_t));
  x2 = _br2_load((in0) + ((uintptr_t)8ULL), sizeof(uintptr_t));
  x3 = _br2_load((in0) + ((uintptr_t)12ULL), sizeof(uintptr_t));
  x4 = _br2_load((in0) + ((uintptr_t)16ULL), sizeof(uintptr_t));
  x5 = _br2_load((in0) + ((uintptr_t)20ULL), sizeof(uintptr_t));
  x6 = _br2_load((in0) + ((uintptr_t)24ULL), sizeof(uintptr_t));
  x7 = _br2_load((in0) + ((uintptr_t)28ULL), sizeof(uintptr_t));
  x8 = _br2_load((in1) + ((uintptr_t)0ULL), sizeof(uintptr_t));
  x9 = _br2_load((in1) + ((uintptr_t)4ULL), sizeof(uintptr_t));
  x10 = _br2_load((in1) + ((uintptr_t)8ULL), sizeof(uintptr_t));
  x11 = _br2_load((in1) + ((uintptr_t)12ULL), sizeof(uintptr_t));
  x12 = _br2_load((in1) + ((uintptr_t)16ULL), sizeof(uintptr_t));
  x13 = _br2_load((in1) + ((uintptr_t)20ULL), sizeof(uintptr_t));
  x14 = _br2_load((in1) + ((uintptr_t)24ULL), sizeof(uintptr_t));
  x15 = _br2_load((in1) + ((uintptr_t)28ULL), sizeof(uintptr_t));
  x16 = (x0) - (x8);
  x17 = (x1) - (x9);
  x18 = (x17) - ((x0) < (x16));
  x19 = (x2) - (x10);
  x20 = (x19) - (((x1) < (x17)) + ((x17) < (x18)));
  x21 = (x3) - (x11);
  x22 = (x21) - (((x2) < (x19)) + ((x19) < (x20)));
  x23 = (x4) - (x12);
  x24 = (x23) - (((x3) < (x21)) + ((x21) < (x22)));
  x25 = (x5) - (x13);
  x26 = (x25) - (((x4) < (x23)) + ((x23) < (x24)));
  x27 = (x6) - (x14);
  x28 = (x27) - (((x5) < (x25)) + ((x25) < (x26)));
  x29 = (x7) - (x15);
  x30 = (x29) - (((x6) < (x27)) + ((x27) < (x28)));
  x31 = ((uintptr_t)-1ULL) +
        ((((x7) < (x29)) + ((x29) < (x30))) == ((uintptr_t)0ULL));
  x32 = (x16) + ((x31) & ((uintptr_t)4294966319ULL));
  x33 = ((x32) < (x16)) + (x18);
  x34 = (x33) + ((x31) & ((uintptr_t)4294967294ULL));
  x35 = (((x33) < (x18)) + ((x34) < ((x31) & ((uintptr_t)4294967294ULL)))) +
        (x20);
  x36 = (x35) + (x31);
  x37 = (((x35) < (x20)) + ((x36) < (x31))) + (x22);
  x38 = (x37) + (x31);
  x39 = (((x37) < (x22)) + ((x38) < (x31))) + (x24);
  x40 = (x39) + (x31);
  x41 = (((x39) < (x24)) + ((x40) < (x31))) + (x26);
  x42 = (x41) + (x31);
  x43 = (((x41) < (x26)) + ((x42) < (x31))) + (x28);
  x44 = (x43) + (x31);
  x45 = ((((x43) < (x28)) + ((x44) < (x31))) + (x30)) + (x31);
  x46 = x32;
  x47 = x34;
  x48 = x36;
  x49 = x38;
  x50 = x40;
  x51 = x42;
  x52 = x44;
  x53 = x45;
  _br2_store((out0) + ((uintptr_t)0ULL), x46, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)4ULL), x47, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)8ULL), x48, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)12ULL), x49, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)16ULL), x50, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)20ULL), x51, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)24ULL), x52, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)28ULL), x53, sizeof(uintptr_t));
  return;
}


x86 assembly (clang, -O0):
<internal_fiat_secp256k1_sub>:
push   %rbp
mov    %rsp,%rbp
sub    $0x1d0,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    -0x10(%rbp),%rax
add    $0x0,%rax
mov    %eax,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
add    $0x4,%rax
mov    %eax,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x40(%rbp)
mov    -0x10(%rbp),%rax
add    $0x8,%rax
mov    %eax,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x58(%rbp)
mov    -0x10(%rbp),%rax
add    $0xc,%rax
mov    %eax,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x70(%rbp)
mov    -0x10(%rbp),%rax
add    $0x10,%rax
mov    %eax,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x88(%rbp)
mov    -0x10(%rbp),%rax
add    $0x14,%rax
mov    %eax,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0xa0(%rbp)
mov    -0x10(%rbp),%rax
add    $0x18,%rax
mov    %eax,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0xb8(%rbp)
mov    -0x10(%rbp),%rax
add    $0x1c,%rax
mov    %eax,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0xc8(%rbp)
mov    -0x18(%rbp),%rax
add    $0x0,%rax
mov    %eax,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
add    $0x4,%rax
mov    %eax,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x28(%rbp)
mov    -0x18(%rbp),%rax
add    $0x8,%rax
mov    %eax,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x38(%rbp)
mov    -0x18(%rbp),%rax
add    $0xc,%rax
mov    %eax,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x50(%rbp)
mov    -0x18(%rbp),%rax
add    $0x10,%rax
mov    %eax,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x68(%rbp)
mov    -0x18(%rbp),%rax
add    $0x14,%rax
mov    %eax,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x80(%rbp)
mov    -0x18(%rbp),%rax
add    $0x18,%rax
mov    %eax,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x98(%rbp)
mov    -0x18(%rbp),%rax
add    $0x1c,%rax
mov    %eax,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0xb0(%rbp)
mov    -0x30(%rbp),%rax
sub    -0x20(%rbp),%rax
mov    %rax,-0xd8(%rbp)
mov    -0x40(%rbp),%rax
sub    -0x28(%rbp),%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
mov    -0x30(%rbp),%rcx
cmp    -0xd8(%rbp),%rcx
setb   %cl
and    $0x1,%cl
movzbl %cl,%ecx
movslq %ecx,%rcx
sub    %rcx,%rax
mov    %rax,-0xe8(%rbp)
mov    -0x58(%rbp),%rax
sub    -0x38(%rbp),%rax
mov    %rax,-0x60(%rbp)
mov    -0x60(%rbp),%rax
mov    -0x40(%rbp),%rcx
cmp    -0x48(%rbp),%rcx
setb   %cl
and    $0x1,%cl
movzbl %cl,%ecx
mov    -0x48(%rbp),%rdx
cmp    -0xe8(%rbp),%rdx
setb   %dl
and    $0x1,%dl
movzbl %dl,%edx
add    %edx,%ecx
movslq %ecx,%rcx
sub    %rcx,%rax
mov    %rax,-0xf8(%rbp)
mov    -0x70(%rbp),%rax
sub    -0x50(%rbp),%rax
mov    %rax,-0x78(%rbp)
mov    -0x78(%rbp),%rax
mov    -0x58(%rbp),%rcx
cmp    -0x60(%rbp),%rcx
setb   %cl
and    $0x1,%cl
movzbl %cl,%ecx
mov    -0x60(%rbp),%rdx
cmp    -0xf8(%rbp),%rdx
setb   %dl
and    $0x1,%dl
movzbl %dl,%edx
add    %edx,%ecx
movslq %ecx,%rcx
sub    %rcx,%rax
mov    %rax,-0x108(%rbp)
mov    -0x88(%rbp),%rax
sub    -0x68(%rbp),%rax
mov    %rax,-0x90(%rbp)
mov    -0x90(%rbp),%rax
mov    -0x70(%rbp),%rcx
cmp    -0x78(%rbp),%rcx
setb   %cl
and    $0x1,%cl
movzbl %cl,%ecx
mov    -0x78(%rbp),%rdx
cmp    -0x108(%rbp),%rdx
setb   %dl
and    $0x1,%dl
movzbl %dl,%edx
add    %edx,%ecx
movslq %ecx,%rcx
sub    %rcx,%rax
mov    %rax,-0x118(%rbp)
mov    -0xa0(%rbp),%rax
sub    -0x80(%rbp),%rax
mov    %rax,-0xa8(%rbp)
mov    -0xa8(%rbp),%rax
mov    -0x88(%rbp),%rcx
cmp    -0x90(%rbp),%rcx
setb   %cl
and    $0x1,%cl
movzbl %cl,%ecx
mov    -0x90(%rbp),%rdx
cmp    -0x118(%rbp),%rdx
setb   %dl
and    $0x1,%dl
movzbl %dl,%edx
add    %edx,%ecx
movslq %ecx,%rcx
sub    %rcx,%rax
mov    %rax,-0x128(%rbp)
mov    -0xb8(%rbp),%rax
sub    -0x98(%rbp),%rax
mov    %rax,-0xc0(%rbp)
mov    -0xc0(%rbp),%rax
mov    -0xa0(%rbp),%rcx
cmp    -0xa8(%rbp),%rcx
setb   %cl
and    $0x1,%cl
movzbl %cl,%ecx
mov    -0xa8(%rbp),%rdx
cmp    -0x128(%rbp),%rdx
setb   %dl
and    $0x1,%dl
movzbl %dl,%edx
add    %edx,%ecx
movslq %ecx,%rcx
sub    %rcx,%rax
mov    %rax,-0x138(%rbp)
mov    -0xc8(%rbp),%rax
sub    -0xb0(%rbp),%rax
mov    %rax,-0xd0(%rbp)
mov    -0xd0(%rbp),%rax
mov    -0xb8(%rbp),%rcx
cmp    -0xc0(%rbp),%rcx
setb   %cl
and    $0x1,%cl
movzbl %cl,%ecx
mov    -0xc0(%rbp),%rdx
cmp    -0x138(%rbp),%rdx
setb   %dl
and    $0x1,%dl
movzbl %dl,%edx
add    %edx,%ecx
movslq %ecx,%rcx
sub    %rcx,%rax
mov    %rax,-0x140(%rbp)
mov    -0xc8(%rbp),%rax
cmp    -0xd0(%rbp),%rax
setb   %al
and    $0x1,%al
movzbl %al,%eax
mov    -0xd0(%rbp),%rcx
cmp    -0x140(%rbp),%rcx
setb   %cl
and    $0x1,%cl
movzbl %cl,%ecx
add    %ecx,%eax
cltq
cmp    $0x0,%rax
sete   %al
and    $0x1,%al
movzbl %al,%eax
cltq
add    $0xffffffffffffffff,%rax
mov    %rax,-0x148(%rbp)
mov    -0xd8(%rbp),%rax
movabs $0xfffffc2f,%rcx
and    -0x148(%rbp),%rcx
add    %rcx,%rax
mov    %rax,-0x150(%rbp)
mov    -0x150(%rbp),%rax
cmp    -0xd8(%rbp),%rax
setb   %al
and    $0x1,%al
movzbl %al,%eax
cltq
add    -0xe8(%rbp),%rax
mov    %rax,-0xe0(%rbp)
mov    -0xe0(%rbp),%rax
movabs $0xfffffffe,%rcx
and    -0x148(%rbp),%rcx
add    %rcx,%rax
mov    %rax,-0x158(%rbp)
mov    -0xe0(%rbp),%rax
cmp    -0xe8(%rbp),%rax
setb   %al
and    $0x1,%al
movzbl %al,%eax
mov    -0x158(%rbp),%rcx
movabs $0xfffffffe,%rdx
and    -0x148(%rbp),%rdx
cmp    %rdx,%rcx
setb   %cl
and    $0x1,%cl
movzbl %cl,%ecx
add    %ecx,%eax
cltq
add    -0xf8(%rbp),%rax
mov    %rax,-0xf0(%rbp)
mov    -0xf0(%rbp),%rax
add    -0x148(%rbp),%rax
mov    %rax,-0x160(%rbp)
mov    -0xf0(%rbp),%rax
cmp    -0xf8(%rbp),%rax
setb   %al
and    $0x1,%al
movzbl %al,%eax
mov    -0x160(%rbp),%rcx
cmp    -0x148(%rbp),%rcx
setb   %cl
and    $0x1,%cl
movzbl %cl,%ecx
add    %ecx,%eax
cltq
add    -0x108(%rbp),%rax
mov    %rax,-0x100(%rbp)
mov    -0x100(%rbp),%rax
add    -0x148(%rbp),%rax
mov    %rax,-0x168(%rbp)
mov    -0x100(%rbp),%rax
cmp    -0x108(%rbp),%rax
setb   %al
and    $0x1,%al
movzbl %al,%eax
mov    -0x168(%rbp),%rcx
cmp    -0x148(%rbp),%rcx
setb   %cl
and    $0x1,%cl
movzbl %cl,%ecx
add    %ecx,%eax
cltq
add    -0x118(%rbp),%rax
mov    %rax,-0x110(%rbp)
mov    -0x110(%rbp),%rax
add    -0x148(%rbp),%rax
mov    %rax,-0x170(%rbp)
mov    -0x110(%rbp),%rax
cmp    -0x118(%rbp),%rax
setb   %al
and    $0x1,%al
movzbl %al,%eax
mov    -0x170(%rbp),%rcx
cmp    -0x148(%rbp),%rcx
setb   %cl
and    $0x1,%cl
movzbl %cl,%ecx
add    %ecx,%eax
cltq
add    -0x128(%rbp),%rax
mov    %rax,-0x120(%rbp)
mov    -0x120(%rbp),%rax
add    -0x148(%rbp),%rax
mov    %rax,-0x178(%rbp)
mov    -0x120(%rbp),%rax
cmp    -0x128(%rbp),%rax
setb   %al
and    $0x1,%al
movzbl %al,%eax
mov    -0x178(%rbp),%rcx
cmp    -0x148(%rbp),%rcx
setb   %cl
and    $0x1,%cl
movzbl %cl,%ecx
add    %ecx,%eax
cltq
add    -0x138(%rbp),%rax
mov    %rax,-0x130(%rbp)
mov    -0x130(%rbp),%rax
add    -0x148(%rbp),%rax
mov    %rax,-0x180(%rbp)
mov    -0x130(%rbp),%rax
cmp    -0x138(%rbp),%rax
setb   %al
and    $0x1,%al
movzbl %al,%eax
mov    -0x180(%rbp),%rcx
cmp    -0x148(%rbp),%rcx
setb   %cl
and    $0x1,%cl
movzbl %cl,%ecx
add    %ecx,%eax
cltq
add    -0x140(%rbp),%rax
add    -0x148(%rbp),%rax
mov    %rax,-0x188(%rbp)
mov    -0x150(%rbp),%rax
mov    %rax,-0x190(%rbp)
mov    -0x158(%rbp),%rax
mov    %rax,-0x198(%rbp)
mov    -0x160(%rbp),%rax
mov    %rax,-0x1a0(%rbp)
mov    -0x168(%rbp),%rax
mov    %rax,-0x1a8(%rbp)
mov    -0x170(%rbp),%rax
mov    %rax,-0x1b0(%rbp)
mov    -0x178(%rbp),%rax
mov    %rax,-0x1b8(%rbp)
mov    -0x180(%rbp),%rax
mov    %rax,-0x1c0(%rbp)
mov    -0x188(%rbp),%rax
mov    %rax,-0x1c8(%rbp)
mov    -0x8(%rbp),%rax
add    $0x0,%rax
mov    %eax,%edi
mov    -0x190(%rbp),%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
mov    -0x8(%rbp),%rax
add    $0x4,%rax
mov    %eax,%edi
mov    -0x198(%rbp),%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
mov    -0x8(%rbp),%rax
add    $0x8,%rax
mov    %eax,%edi
mov    -0x1a0(%rbp),%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
mov    -0x8(%rbp),%rax
add    $0xc,%rax
mov    %eax,%edi
mov    -0x1a8(%rbp),%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
mov    -0x8(%rbp),%rax
add    $0x10,%rax
mov    %eax,%edi
mov    -0x1b0(%rbp),%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
mov    -0x8(%rbp),%rax
add    $0x14,%rax
mov    %eax,%edi
mov    -0x1b8(%rbp),%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
mov    -0x8(%rbp),%rax
add    $0x18,%rax
mov    %eax,%edi
mov    -0x1c0(%rbp),%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
mov    -0x8(%rbp),%rax
add    $0x1c,%rax
mov    %eax,%edi
mov    -0x1c8(%rbp),%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
add    $0x1d0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<internal_fiat_secp256k1_sub>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x58,%rsp
mov    %rdx,%rbx
mov    %rsi,%rbp
mov    %rdi,0x50(%rsp)
mov    %ebp,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,0x10(%rsp)
lea    0x4(%rbp),%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,0x8(%rsp)
lea    0x8(%rbp),%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,%r13
lea    0xc(%rbp),%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,%r12
lea    0x10(%rbp),%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,%r15
lea    0x14(%rbp),%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,%r14
lea    0x18(%rbp),%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,0x40(%rsp)
add    $0x1c,%ebp
mov    %ebp,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,0x48(%rsp)
mov    %ebx,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,(%rsp)
lea    0x4(%rbx),%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,%rbp
lea    0x8(%rbx),%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,0x18(%rsp)
lea    0xc(%rbx),%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,0x20(%rsp)
lea    0x10(%rbx),%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,0x28(%rsp)
lea    0x14(%rbx),%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,0x30(%rsp)
lea    0x18(%rbx),%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,0x38(%rsp)
add    $0x1c,%ebx
mov    %ebx,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
xor    %esi,%esi
mov    (%rsp),%rcx
sub    %rcx,0x10(%rsp)
setb   %sil
xor    %ecx,%ecx
mov    0x8(%rsp),%rdx
sub    %rbp,%rdx
mov    %rdx,0x8(%rsp)
setb   %cl
mov    %rdx,%rbx
sub    %rsi,%rbx
neg    %rsi
mov    %rsi,(%rsp)
xor    %esi,%esi
sub    0x18(%rsp),%r13
setb   %sil
cmp    %rbx,%rdx
mov    %r13,%rdx
sbb    %rcx,%rdx
xor    %ecx,%ecx
sub    0x20(%rsp),%r12
setb   %cl
cmp    %rdx,%r13
mov    %r12,%rdi
sbb    %rsi,%rdi
xor    %esi,%esi
sub    0x28(%rsp),%r15
setb   %sil
cmp    %rdi,%r12
mov    %r15,%rbp
sbb    %rcx,%rbp
xor    %r9d,%r9d
sub    0x30(%rsp),%r14
setb   %r9b
cmp    %rbp,%r15
mov    %r14,%r10
sbb    %rsi,%r10
xor    %esi,%esi
mov    0x40(%rsp),%rcx
sub    0x38(%rsp),%rcx
setb   %sil
cmp    %r10,%r14
mov    %rcx,%r8
mov    %rcx,%r11
sbb    %r9,%r8
xor    %r14d,%r14d
mov    0x48(%rsp),%rcx
sub    %rax,%rcx
setb   %r14b
cmp    %r8,%r11
mov    %rcx,%rax
sbb    %rsi,%rax
cmp    %rax,%rcx
sbb    %rsi,%rsi
xor    %r11d,%r11d
xor    %r9d,%r9d
cmp    %rsi,%r14
mov    $0xfffffc2f,%esi
lea    0x3cf(%rsi),%r14
cmove  %r11,%rsi
cmove  %r11,%r14
setne  %r9b
mov    %rsi,%rcx
mov    0x10(%rsp),%r11
add    %r11,%rcx
mov    (%rsp),%rcx
adc    0x8(%rsp),%rcx
add    %r11,%rsi
adc    %r14,%rbx
mov    %rdx,%rbx
adc    $0x0,%rbx
mov    %r9,%r11
neg    %r11
add    %r14,%rcx
mov    %rcx,(%rsp)
xor    %r12d,%r12d
cmp    %rdx,%rbx
setb   %r12b
add    %r11,%rbx
mov    %rbx,0x8(%rsp)
adc    %rdi,%r12
xor    %r13d,%r13d
cmp    %rdi,%r12
setb   %r13b
add    %r11,%r12
adc    %rbp,%r13
xor    %r15d,%r15d
cmp    %rbp,%r13
setb   %r15b
add    %r11,%r13
adc    %r10,%r15
xor    %ebp,%ebp
cmp    %r10,%r15
setb   %bpl
add    %r11,%r15
adc    %r8,%rbp
xor    %ebx,%ebx
cmp    %r8,%rbp
setb   %bl
sub    %r9,%rax
add    %r11,%rbp
adc    %rax,%rbx
mov    0x50(%rsp),%r14
mov    %r14d,%edi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
lea    0x4(%r14),%edi
mov    (%rsp),%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
lea    0x8(%r14),%edi
mov    0x8(%rsp),%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
lea    0xc(%r14),%edi
mov    %r12,%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
lea    0x10(%r14),%edi
mov    %r13,%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
lea    0x14(%r14),%edi
mov    %r15,%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
lea    0x18(%r14),%edi
mov    %rbp,%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
add    $0x1c,%r14d
mov    %r14d,%edi
mov    %rbx,%rsi
mov    $0x8,%edx
add    $0x58,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1040 <_br2_store@plt>

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

LLVM IR (-O2):
define void @internal_fiat_secp256k1_sub(i64 %0, i64 %1, i64 %2) {
%4 = trunc i64 %1 to i32
%5 = tail call i64 @_br2_load(i32 %4, i32 8)
%6 = add i32 %4, 4
%7 = tail call i64 @_br2_load(i32 %6, i32 8)
%8 = add i32 %4, 8
%9 = tail call i64 @_br2_load(i32 %8, i32 8)
%10 = add i32 %4, 12
%11 = tail call i64 @_br2_load(i32 %10, i32 8)
%12 = add i32 %4, 16
%13 = tail call i64 @_br2_load(i32 %12, i32 8)
%14 = add i32 %4, 20
%15 = tail call i64 @_br2_load(i32 %14, i32 8)
%16 = add i32 %4, 24
%17 = tail call i64 @_br2_load(i32 %16, i32 8)
%18 = add i32 %4, 28
%19 = tail call i64 @_br2_load(i32 %18, i32 8)
%20 = trunc i64 %2 to i32
%21 = tail call i64 @_br2_load(i32 %20, i32 8)
%22 = add i32 %20, 4
%23 = tail call i64 @_br2_load(i32 %22, i32 8)
%24 = add i32 %20, 8
%25 = tail call i64 @_br2_load(i32 %24, i32 8)
%26 = add i32 %20, 12
%27 = tail call i64 @_br2_load(i32 %26, i32 8)
%28 = add i32 %20, 16
%29 = tail call i64 @_br2_load(i32 %28, i32 8)
%30 = add i32 %20, 20
%31 = tail call i64 @_br2_load(i32 %30, i32 8)
%32 = add i32 %20, 24
%33 = tail call i64 @_br2_load(i32 %32, i32 8)
%34 = add i32 %20, 28
%35 = tail call i64 @_br2_load(i32 %34, i32 8)
%36 = sub i64 %5, %21
%37 = sub i64 %7, %23
%38 = icmp ult i64 %5, %21
%39 = sext i1 %38 to i64
%40 = add i64 %37, %39
%41 = sub i64 %9, %25
%42 = icmp ult i64 %7, %23
%43 = sext i1 %42 to i64
%44 = icmp ult i64 %37, %40
%45 = sext i1 %44 to i64
%46 = add i64 %41, %43
%47 = add i64 %46, %45
%48 = sub i64 %11, %27
%49 = icmp ult i64 %9, %25
%50 = sext i1 %49 to i64
%51 = icmp ult i64 %41, %47
%52 = sext i1 %51 to i64
%53 = add i64 %48, %50
%54 = add i64 %53, %52
%55 = sub i64 %13, %29
%56 = icmp ult i64 %11, %27
%57 = sext i1 %56 to i64
%58 = icmp ult i64 %48, %54
%59 = sext i1 %58 to i64
%60 = add i64 %55, %57
%61 = add i64 %60, %59
%62 = sub i64 %15, %31
%63 = icmp ult i64 %13, %29
%64 = sext i1 %63 to i64
%65 = icmp ult i64 %55, %61
%66 = sext i1 %65 to i64
%67 = add i64 %62, %64
%68 = add i64 %67, %66
%69 = sub i64 %17, %33
%70 = icmp ult i64 %15, %31
%71 = sext i1 %70 to i64
%72 = icmp ult i64 %62, %68
%73 = sext i1 %72 to i64
%74 = add i64 %69, %71
%75 = add i64 %74, %73
%76 = sub i64 %19, %35
%77 = icmp ult i64 %17, %33
%78 = sext i1 %77 to i64
%79 = icmp ult i64 %69, %75
%80 = sext i1 %79 to i64
%81 = add i64 %76, %78
%82 = add i64 %81, %80
%83 = icmp ult i64 %19, %35
%84 = zext i1 %83 to i64
%85 = icmp ult i64 %76, %82
%86 = sext i1 %85 to i64
%87 = icmp ne i64 %84, %86
%88 = sext i1 %87 to i64
%89 = select i1 %87, i64 4294966319, i64 0
%90 = add i64 %89, %36
%91 = icmp ult i64 %90, %36
%92 = zext i1 %91 to i64
%93 = add i64 %40, %92
%94 = select i1 %87, i64 4294967294, i64 0
%95 = add i64 %93, %94
%96 = icmp ult i64 %93, %40
%97 = zext i1 %96 to i64
%98 = icmp ult i64 %95, %94
%99 = zext i1 %98 to i64
%100 = add i64 %47, %97
%101 = add i64 %100, %99
%102 = add i64 %101, %88
%103 = icmp ult i64 %101, %47
%104 = zext i1 %103 to i64
%105 = icmp ult i64 %102, %88
%106 = zext i1 %105 to i64
%107 = add i64 %54, %104
%108 = add i64 %107, %106
%109 = add i64 %108, %88
%110 = icmp ult i64 %108, %54
%111 = zext i1 %110 to i64
%112 = icmp ult i64 %109, %88
%113 = zext i1 %112 to i64
%114 = add i64 %61, %111
%115 = add i64 %114, %113
%116 = add i64 %115, %88
%117 = icmp ult i64 %115, %61
%118 = zext i1 %117 to i64
%119 = icmp ult i64 %116, %88
%120 = zext i1 %119 to i64
%121 = add i64 %68, %118
%122 = add i64 %121, %120
%123 = add i64 %122, %88
%124 = icmp ult i64 %122, %68
%125 = zext i1 %124 to i64
%126 = icmp ult i64 %123, %88
%127 = zext i1 %126 to i64
%128 = add i64 %75, %125
%129 = add i64 %128, %127
%130 = add i64 %129, %88
%131 = icmp ult i64 %129, %75
%132 = zext i1 %131 to i64
%133 = icmp ult i64 %130, %88
%134 = zext i1 %133 to i64
%135 = add i64 %82, %88
%136 = add i64 %135, %132
%137 = add i64 %136, %134
%138 = trunc i64 %0 to i32
%139 = tail call i32 @_br2_store(i32 %138, i64 %90, i32 8)
%140 = add i32 %138, 4
%141 = tail call i32 @_br2_store(i32 %140, i64 %95, i32 8)
%142 = add i32 %138, 8
%143 = tail call i32 @_br2_store(i32 %142, i64 %102, i32 8)
%144 = add i32 %138, 12
%145 = tail call i32 @_br2_store(i32 %144, i64 %109, i32 8)
%146 = add i32 %138, 16
%147 = tail call i32 @_br2_store(i32 %146, i64 %116, i32 8)
%148 = add i32 %138, 20
%149 = tail call i32 @_br2_store(i32 %148, i64 %123, i32 8)
%150 = add i32 %138, 24
%151 = tail call i32 @_br2_store(i32 %150, i64 %130, i32 8)
%152 = add i32 %138, 28
%153 = tail call i32 @_br2_store(i32 %152, i64 %137, i32 8)
ret void
}