#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 x40;
typedef uintptr_t x39;
typedef uintptr_t x38;
typedef uintptr_t x37;
typedef uintptr_t x36;
typedef uintptr_t x35;
typedef uintptr_t x34;
typedef uintptr_t x33;
typedef uintptr_t x32;
typedef uintptr_t x31;
typedef uintptr_t x30;
typedef uintptr_t x29;
typedef uintptr_t x28;
typedef uintptr_t x27;
typedef uintptr_t x26;
typedef uintptr_t x25;
typedef uintptr_t x24;
typedef uintptr_t x23;
typedef uintptr_t x22;
typedef uintptr_t x21;
typedef uintptr_t x20;
typedef uintptr_t x19;
typedef uintptr_t x18;
typedef uintptr_t x17;
typedef uintptr_t x16;
typedef uintptr_t x15;
typedef uintptr_t x14;
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_p434_add(uintptr_t out0, uintptr_t in0, uintptr_t in1) {
  uintptr_t x7, x0, x15, x1, x8, x17, x2, x9, x19, x3, x10, x21, x4, x11, x23,
      x5, x12, x25, x6, x13, x29, x31, x33, x35, x37, x27, x39, x14, x42, x28,
      x43, x16, x45, x30, x46, x18, x48, x32, x49, x20, x51, x34, x52, x22, x54,
      x36, x55, x24, x57, x38, x58, x41, x26, x60, x40, x61, x44, x47, x50, x53,
      x56, x59, x62, x63, x64, x65, x66, x67, x68, x69;
  x0 = _br2_load((in0) + ((uintptr_t)0ULL), sizeof(uintptr_t));
  x1 = _br2_load((in0) + ((uintptr_t)8ULL), sizeof(uintptr_t));
  x2 = _br2_load((in0) + ((uintptr_t)16ULL), sizeof(uintptr_t));
  x3 = _br2_load((in0) + ((uintptr_t)24ULL), sizeof(uintptr_t));
  x4 = _br2_load((in0) + ((uintptr_t)32ULL), sizeof(uintptr_t));
  x5 = _br2_load((in0) + ((uintptr_t)40ULL), sizeof(uintptr_t));
  x6 = _br2_load((in0) + ((uintptr_t)48ULL), sizeof(uintptr_t));
  x7 = _br2_load((in1) + ((uintptr_t)0ULL), sizeof(uintptr_t));
  x8 = _br2_load((in1) + ((uintptr_t)8ULL), sizeof(uintptr_t));
  x9 = _br2_load((in1) + ((uintptr_t)16ULL), sizeof(uintptr_t));
  x10 = _br2_load((in1) + ((uintptr_t)24ULL), sizeof(uintptr_t));
  x11 = _br2_load((in1) + ((uintptr_t)32ULL), sizeof(uintptr_t));
  x12 = _br2_load((in1) + ((uintptr_t)40ULL), sizeof(uintptr_t));
  x13 = _br2_load((in1) + ((uintptr_t)48ULL), sizeof(uintptr_t));
  x14 = (x0) + (x7);
  x15 = ((x14) < (x0)) + (x1);
  x16 = (x15) + (x8);
  x17 = (((x15) < (x1)) + ((x16) < (x8))) + (x2);
  x18 = (x17) + (x9);
  x19 = (((x17) < (x2)) + ((x18) < (x9))) + (x3);
  x20 = (x19) + (x10);
  x21 = (((x19) < (x3)) + ((x20) < (x10))) + (x4);
  x22 = (x21) + (x11);
  x23 = (((x21) < (x4)) + ((x22) < (x11))) + (x5);
  x24 = (x23) + (x12);
  x25 = (((x23) < (x5)) + ((x24) < (x12))) + (x6);
  x26 = (x25) + (x13);
  x27 = ((x25) < (x6)) + ((x26) < (x13));
  x28 = (x14) - ((uintptr_t)18446744073709551615ULL);
  x29 = (x16) - ((uintptr_t)18446744073709551615ULL);
  x30 = (x29) - ((x14) < (x28));
  x31 = (x18) - ((uintptr_t)18446744073709551615ULL);
  x32 = (x31) - (((x16) < (x29)) + ((x29) < (x30)));
  x33 = (x20) - ((uintptr_t)18285026232267440127ULL);
  x34 = (x33) - (((x18) < (x31)) + ((x31) < (x32)));
  x35 = (x22) - ((uintptr_t)8918917783347572387ULL);
  x36 = (x35) - (((x20) < (x33)) + ((x33) < (x34)));
  x37 = (x24) - ((uintptr_t)7853257225132122198ULL);
  x38 = (x37) - (((x22) < (x35)) + ((x35) < (x36)));
  x39 = (x26) - ((uintptr_t)620258357900100ULL);
  x40 = (x39) - (((x24) < (x37)) + ((x37) < (x38)));
  x41 = (x27) < ((x27) - (((x26) < (x39)) + ((x39) < (x40))));
  x42 = ((uintptr_t)-1ULL) + ((x41) == ((uintptr_t)0ULL));
  x43 = (x42) ^ ((uintptr_t)18446744073709551615ULL);
  x44 = ((x14) & (x42)) | ((x28) & (x43));
  x45 = ((uintptr_t)-1ULL) + ((x41) == ((uintptr_t)0ULL));
  x46 = (x45) ^ ((uintptr_t)18446744073709551615ULL);
  x47 = ((x16) & (x45)) | ((x30) & (x46));
  x48 = ((uintptr_t)-1ULL) + ((x41) == ((uintptr_t)0ULL));
  x49 = (x48) ^ ((uintptr_t)18446744073709551615ULL);
  x50 = ((x18) & (x48)) | ((x32) & (x49));
  x51 = ((uintptr_t)-1ULL) + ((x41) == ((uintptr_t)0ULL));
  x52 = (x51) ^ ((uintptr_t)18446744073709551615ULL);
  x53 = ((x20) & (x51)) | ((x34) & (x52));
  x54 = ((uintptr_t)-1ULL) + ((x41) == ((uintptr_t)0ULL));
  x55 = (x54) ^ ((uintptr_t)18446744073709551615ULL);
  x56 = ((x22) & (x54)) | ((x36) & (x55));
  x57 = ((uintptr_t)-1ULL) + ((x41) == ((uintptr_t)0ULL));
  x58 = (x57) ^ ((uintptr_t)18446744073709551615ULL);
  x59 = ((x24) & (x57)) | ((x38) & (x58));
  x60 = ((uintptr_t)-1ULL) + ((x41) == ((uintptr_t)0ULL));
  x61 = (x60) ^ ((uintptr_t)18446744073709551615ULL);
  x62 = ((x26) & (x60)) | ((x40) & (x61));
  x63 = x44;
  x64 = x47;
  x65 = x50;
  x66 = x53;
  x67 = x56;
  x68 = x59;
  x69 = x62;
  _br2_store((out0) + ((uintptr_t)0ULL), x63, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)8ULL), x64, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)16ULL), x65, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)24ULL), x66, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)32ULL), x67, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)40ULL), x68, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)48ULL), x69, sizeof(uintptr_t));
  return;
}


x86 assembly (clang, -O0):
<internal_fiat_p434_add>:
push   %rbp
mov    %rsp,%rbp
sub    $0x250,%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,-0x28(%rbp)
mov    -0x10(%rbp),%rax
add    $0x8,%rax
mov    %eax,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x38(%rbp)
mov    -0x10(%rbp),%rax
add    $0x10,%rax
mov    %eax,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x50(%rbp)
mov    -0x10(%rbp),%rax
add    $0x18,%rax
mov    %eax,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x68(%rbp)
mov    -0x10(%rbp),%rax
add    $0x20,%rax
mov    %eax,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x80(%rbp)
mov    -0x10(%rbp),%rax
add    $0x28,%rax
mov    %eax,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x98(%rbp)
mov    -0x10(%rbp),%rax
add    $0x30,%rax
mov    %eax,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0xb0(%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    $0x8,%rax
mov    %eax,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x40(%rbp)
mov    -0x18(%rbp),%rax
add    $0x10,%rax
mov    %eax,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x58(%rbp)
mov    -0x18(%rbp),%rax
add    $0x18,%rax
mov    %eax,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x70(%rbp)
mov    -0x18(%rbp),%rax
add    $0x20,%rax
mov    %eax,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x88(%rbp)
mov    -0x18(%rbp),%rax
add    $0x28,%rax
mov    %eax,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0xa0(%rbp)
mov    -0x18(%rbp),%rax
add    $0x30,%rax
mov    %eax,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0xb8(%rbp)
mov    -0x28(%rbp),%rax
add    -0x20(%rbp),%rax
mov    %rax,-0xf8(%rbp)
mov    -0xf8(%rbp),%rax
cmp    -0x28(%rbp),%rax
setb   %al
and    $0x1,%al
movzbl %al,%eax
cltq
add    -0x38(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x30(%rbp),%rax
add    -0x40(%rbp),%rax
mov    %rax,-0x118(%rbp)
mov    -0x30(%rbp),%rax
cmp    -0x38(%rbp),%rax
setb   %al
and    $0x1,%al
movzbl %al,%eax
mov    -0x118(%rbp),%rcx
cmp    -0x40(%rbp),%rcx
setb   %cl
and    $0x1,%cl
movzbl %cl,%ecx
add    %ecx,%eax
cltq
add    -0x50(%rbp),%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
add    -0x58(%rbp),%rax
mov    %rax,-0x138(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x50(%rbp),%rax
setb   %al
and    $0x1,%al
movzbl %al,%eax
mov    -0x138(%rbp),%rcx
cmp    -0x58(%rbp),%rcx
setb   %cl
and    $0x1,%cl
movzbl %cl,%ecx
add    %ecx,%eax
cltq
add    -0x68(%rbp),%rax
mov    %rax,-0x60(%rbp)
mov    -0x60(%rbp),%rax
add    -0x70(%rbp),%rax
mov    %rax,-0x158(%rbp)
mov    -0x60(%rbp),%rax
cmp    -0x68(%rbp),%rax
setb   %al
and    $0x1,%al
movzbl %al,%eax
mov    -0x158(%rbp),%rcx
cmp    -0x70(%rbp),%rcx
setb   %cl
and    $0x1,%cl
movzbl %cl,%ecx
add    %ecx,%eax
cltq
add    -0x80(%rbp),%rax
mov    %rax,-0x78(%rbp)
mov    -0x78(%rbp),%rax
add    -0x88(%rbp),%rax
mov    %rax,-0x178(%rbp)
mov    -0x78(%rbp),%rax
cmp    -0x80(%rbp),%rax
setb   %al
and    $0x1,%al
movzbl %al,%eax
mov    -0x178(%rbp),%rcx
cmp    -0x88(%rbp),%rcx
setb   %cl
and    $0x1,%cl
movzbl %cl,%ecx
add    %ecx,%eax
cltq
add    -0x98(%rbp),%rax
mov    %rax,-0x90(%rbp)
mov    -0x90(%rbp),%rax
add    -0xa0(%rbp),%rax
mov    %rax,-0x198(%rbp)
mov    -0x90(%rbp),%rax
cmp    -0x98(%rbp),%rax
setb   %al
and    $0x1,%al
movzbl %al,%eax
mov    -0x198(%rbp),%rcx
cmp    -0xa0(%rbp),%rcx
setb   %cl
and    $0x1,%cl
movzbl %cl,%ecx
add    %ecx,%eax
cltq
add    -0xb0(%rbp),%rax
mov    %rax,-0xa8(%rbp)
mov    -0xa8(%rbp),%rax
add    -0xb8(%rbp),%rax
mov    %rax,-0x1c0(%rbp)
mov    -0xa8(%rbp),%rax
cmp    -0xb0(%rbp),%rax
setb   %al
and    $0x1,%al
movzbl %al,%eax
mov    -0x1c0(%rbp),%rcx
cmp    -0xb8(%rbp),%rcx
setb   %cl
and    $0x1,%cl
movzbl %cl,%ecx
add    %ecx,%eax
cltq
mov    %rax,-0xe8(%rbp)
mov    -0xf8(%rbp),%rax
sub    $0xffffffffffffffff,%rax
mov    %rax,-0x108(%rbp)
mov    -0x118(%rbp),%rax
sub    $0xffffffffffffffff,%rax
mov    %rax,-0xc0(%rbp)
mov    -0xc0(%rbp),%rax
mov    -0xf8(%rbp),%rcx
cmp    -0x108(%rbp),%rcx
setb   %cl
and    $0x1,%cl
movzbl %cl,%ecx
movslq %ecx,%rcx
sub    %rcx,%rax
mov    %rax,-0x128(%rbp)
mov    -0x138(%rbp),%rax
sub    $0xffffffffffffffff,%rax
mov    %rax,-0xc8(%rbp)
mov    -0xc8(%rbp),%rax
mov    -0x118(%rbp),%rcx
cmp    -0xc0(%rbp),%rcx
setb   %cl
and    $0x1,%cl
movzbl %cl,%ecx
mov    -0xc0(%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,-0x148(%rbp)
mov    -0x158(%rbp),%rax
movabs $0xfdc1767ae2ffffff,%rcx
76 c1 fd
sub    %rcx,%rax
mov    %rax,-0xd0(%rbp)
mov    -0xd0(%rbp),%rax
mov    -0x138(%rbp),%rcx
cmp    -0xc8(%rbp),%rcx
setb   %cl
and    $0x1,%cl
movzbl %cl,%ecx
mov    -0xc8(%rbp),%rdx
cmp    -0x148(%rbp),%rdx
setb   %dl
and    $0x1,%dl
movzbl %dl,%edx
add    %edx,%ecx
movslq %ecx,%rcx
sub    %rcx,%rax
mov    %rax,-0x168(%rbp)
mov    -0x178(%rbp),%rax
movabs $0x7bc65c783158aea3,%rcx
5c c6 7b
sub    %rcx,%rax
mov    %rax,-0xd8(%rbp)
mov    -0xd8(%rbp),%rax
mov    -0x158(%rbp),%rcx
cmp    -0xd0(%rbp),%rcx
setb   %cl
and    $0x1,%cl
movzbl %cl,%ecx
mov    -0xd0(%rbp),%rdx
cmp    -0x168(%rbp),%rdx
setb   %dl
and    $0x1,%dl
movzbl %dl,%edx
add    %edx,%ecx
movslq %ecx,%rcx
sub    %rcx,%rax
mov    %rax,-0x188(%rbp)
mov    -0x198(%rbp),%rax
movabs $0x6cfc5fd681c52056,%rcx
5f fc 6c
sub    %rcx,%rax
mov    %rax,-0xe0(%rbp)
mov    -0xe0(%rbp),%rax
mov    -0x178(%rbp),%rcx
cmp    -0xd8(%rbp),%rcx
setb   %cl
and    $0x1,%cl
movzbl %cl,%ecx
mov    -0xd8(%rbp),%rdx
cmp    -0x188(%rbp),%rdx
setb   %dl
and    $0x1,%dl
movzbl %dl,%edx
add    %edx,%ecx
movslq %ecx,%rcx
sub    %rcx,%rax
mov    %rax,-0x1a8(%rbp)
mov    -0x1c0(%rbp),%rax
movabs $0x2341f27177344,%rcx
sub    %rcx,%rax
mov    %rax,-0xf0(%rbp)
mov    -0xf0(%rbp),%rax
mov    -0x198(%rbp),%rcx
cmp    -0xe0(%rbp),%rcx
setb   %cl
and    $0x1,%cl
movzbl %cl,%ecx
mov    -0xe0(%rbp),%rdx
cmp    -0x1a8(%rbp),%rdx
setb   %dl
and    $0x1,%dl
movzbl %dl,%edx
add    %edx,%ecx
movslq %ecx,%rcx
sub    %rcx,%rax
mov    %rax,-0x1d0(%rbp)
mov    -0xe8(%rbp),%rax
mov    -0xe8(%rbp),%rcx
mov    -0x1c0(%rbp),%rdx
cmp    -0xf0(%rbp),%rdx
setb   %dl
and    $0x1,%dl
movzbl %dl,%edx
mov    -0xf0(%rbp),%rsi
cmp    -0x1d0(%rbp),%rsi
setb   %sil
and    $0x1,%sil
movzbl %sil,%esi
add    %esi,%edx
movslq %edx,%rdx
sub    %rdx,%rcx
cmp    %rcx,%rax
setb   %al
and    $0x1,%al
movzbl %al,%eax
cltq
mov    %rax,-0x1b8(%rbp)
cmpq   $0x0,-0x1b8(%rbp)
sete   %al
and    $0x1,%al
movzbl %al,%eax
cltq
add    $0xffffffffffffffff,%rax
mov    %rax,-0x100(%rbp)
mov    -0x100(%rbp),%rax
xor    $0xffffffffffffffff,%rax
mov    %rax,-0x110(%rbp)
mov    -0xf8(%rbp),%rax
and    -0x100(%rbp),%rax
mov    -0x108(%rbp),%rcx
and    -0x110(%rbp),%rcx
or     %rcx,%rax
mov    %rax,-0x1e0(%rbp)
cmpq   $0x0,-0x1b8(%rbp)
sete   %al
and    $0x1,%al
movzbl %al,%eax
cltq
add    $0xffffffffffffffff,%rax
mov    %rax,-0x120(%rbp)
mov    -0x120(%rbp),%rax
xor    $0xffffffffffffffff,%rax
mov    %rax,-0x130(%rbp)
mov    -0x118(%rbp),%rax
and    -0x120(%rbp),%rax
mov    -0x128(%rbp),%rcx
and    -0x130(%rbp),%rcx
or     %rcx,%rax
mov    %rax,-0x1e8(%rbp)
cmpq   $0x0,-0x1b8(%rbp)
sete   %al
and    $0x1,%al
movzbl %al,%eax
cltq
add    $0xffffffffffffffff,%rax
mov    %rax,-0x140(%rbp)
mov    -0x140(%rbp),%rax
xor    $0xffffffffffffffff,%rax
mov    %rax,-0x150(%rbp)
mov    -0x138(%rbp),%rax
and    -0x140(%rbp),%rax
mov    -0x148(%rbp),%rcx
and    -0x150(%rbp),%rcx
or     %rcx,%rax
mov    %rax,-0x1f0(%rbp)
cmpq   $0x0,-0x1b8(%rbp)
sete   %al
and    $0x1,%al
movzbl %al,%eax
cltq
add    $0xffffffffffffffff,%rax
mov    %rax,-0x160(%rbp)
mov    -0x160(%rbp),%rax
xor    $0xffffffffffffffff,%rax
mov    %rax,-0x170(%rbp)
mov    -0x158(%rbp),%rax
and    -0x160(%rbp),%rax
mov    -0x168(%rbp),%rcx
and    -0x170(%rbp),%rcx
or     %rcx,%rax
mov    %rax,-0x1f8(%rbp)
cmpq   $0x0,-0x1b8(%rbp)
sete   %al
and    $0x1,%al
movzbl %al,%eax
cltq
add    $0xffffffffffffffff,%rax
mov    %rax,-0x180(%rbp)
mov    -0x180(%rbp),%rax
xor    $0xffffffffffffffff,%rax
mov    %rax,-0x190(%rbp)
mov    -0x178(%rbp),%rax
and    -0x180(%rbp),%rax
mov    -0x188(%rbp),%rcx
and    -0x190(%rbp),%rcx
or     %rcx,%rax
mov    %rax,-0x200(%rbp)
cmpq   $0x0,-0x1b8(%rbp)
sete   %al
and    $0x1,%al
movzbl %al,%eax
cltq
add    $0xffffffffffffffff,%rax
mov    %rax,-0x1a0(%rbp)
mov    -0x1a0(%rbp),%rax
xor    $0xffffffffffffffff,%rax
mov    %rax,-0x1b0(%rbp)
mov    -0x198(%rbp),%rax
and    -0x1a0(%rbp),%rax
mov    -0x1a8(%rbp),%rcx
and    -0x1b0(%rbp),%rcx
or     %rcx,%rax
mov    %rax,-0x208(%rbp)
cmpq   $0x0,-0x1b8(%rbp)
sete   %al
and    $0x1,%al
movzbl %al,%eax
cltq
add    $0xffffffffffffffff,%rax
mov    %rax,-0x1c8(%rbp)
mov    -0x1c8(%rbp),%rax
xor    $0xffffffffffffffff,%rax
mov    %rax,-0x1d8(%rbp)
mov    -0x1c0(%rbp),%rax
and    -0x1c8(%rbp),%rax
mov    -0x1d0(%rbp),%rcx
and    -0x1d8(%rbp),%rcx
or     %rcx,%rax
mov    %rax,-0x210(%rbp)
mov    -0x1e0(%rbp),%rax
mov    %rax,-0x218(%rbp)
mov    -0x1e8(%rbp),%rax
mov    %rax,-0x220(%rbp)
mov    -0x1f0(%rbp),%rax
mov    %rax,-0x228(%rbp)
mov    -0x1f8(%rbp),%rax
mov    %rax,-0x230(%rbp)
mov    -0x200(%rbp),%rax
mov    %rax,-0x238(%rbp)
mov    -0x208(%rbp),%rax
mov    %rax,-0x240(%rbp)
mov    -0x210(%rbp),%rax
mov    %rax,-0x248(%rbp)
mov    -0x8(%rbp),%rax
add    $0x0,%rax
mov    %eax,%edi
mov    -0x218(%rbp),%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
mov    -0x8(%rbp),%rax
add    $0x8,%rax
mov    %eax,%edi
mov    -0x220(%rbp),%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
mov    -0x8(%rbp),%rax
add    $0x10,%rax
mov    %eax,%edi
mov    -0x228(%rbp),%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
mov    -0x8(%rbp),%rax
add    $0x18,%rax
mov    %eax,%edi
mov    -0x230(%rbp),%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
mov    -0x8(%rbp),%rax
add    $0x20,%rax
mov    %eax,%edi
mov    -0x238(%rbp),%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
mov    -0x8(%rbp),%rax
add    $0x28,%rax
mov    %eax,%edi
mov    -0x240(%rbp),%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
mov    -0x8(%rbp),%rax
add    $0x30,%rax
mov    %eax,%edi
mov    -0x248(%rbp),%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
add    $0x250,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<internal_fiat_p434_add>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x48,%rsp
mov    %rdx,%rbx
mov    %rsi,%rbp
mov    %rdi,0x40(%rsp)
mov    %ebp,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,%r15
lea    0x8(%rbp),%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,%r13
lea    0x10(%rbp),%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,%r14
mov    %rax,0x8(%rsp)
lea    0x18(%rbp),%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,0x28(%rsp)
lea    0x20(%rbp),%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,0x30(%rsp)
lea    0x28(%rbp),%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,0x38(%rsp)
add    $0x30,%ebp
mov    %ebp,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,0x10(%rsp)
mov    %ebx,%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    %rbp,%rcx
add    %r15,%rcx
mov    %rax,%r12
adc    %r13,%r12
add    %r15,%rbp
mov    %rbp,0x18(%rsp)
adc    %r13,%rax
mov    %r14,%r15
adc    $0x0,%r15
lea    0x10(%rbx),%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,%r13
lea    0x18(%rbx),%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,%r14
lea    0x20(%rbx),%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,%rbp
lea    0x28(%rbx),%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,0x20(%rsp)
add    $0x30,%ebx
mov    %ebx,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
xor    %r9d,%r9d
cmp    0x8(%rsp),%r15
setb   %r9b
add    %r15,%r13
mov    0x28(%rsp),%rcx
adc    %rcx,%r9
xor    %r11d,%r11d
cmp    %rcx,%r9
setb   %r11b
add    %r14,%r9
mov    0x30(%rsp),%rcx
adc    %rcx,%r11
xor    %r8d,%r8d
cmp    %rcx,%r11
setb   %r8b
add    %rbp,%r11
mov    0x38(%rsp),%rdx
adc    %rdx,%r8
xor    %ecx,%ecx
cmp    %rdx,%r8
setb   %cl
add    0x20(%rsp),%r8
mov    0x10(%rsp),%rdx
adc    %rdx,%rcx
xor    %esi,%esi
cmp    %rdx,%rcx
setb   %sil
add    %rax,%rcx
adc    $0x0,%rsi
mov    %r12,%r14
lea    0x1(%r12),%rax
xor    %ebp,%ebp
cmpq   $0xffffffffffffffff,0x18(%rsp)
setne  %bpl
neg    %rbp
lea    (%r12,%rbp,1),%rdx
add    $0x1,%rdx
mov    %rdx,0x10(%rsp)
lea    0x1(%r13),%rbp
xor    %ebx,%ebx
cmp    $0xffffffffffffffff,%r12
setne  %bl
cmp    %rdx,%rax
adc    $0x0,%rbx
neg    %rbx
mov    %r13,0x8(%rsp)
lea    (%rbx,%r13,1),%r10
add    $0x1,%r10
xor    %eax,%eax
cmp    $0xffffffffffffffff,%r13
setne  %al
cmp    %r10,%rbp
adc    $0x0,%rax
movabs $0xfdc1767ae2ffffff,%rbx
76 c1 fd
mov    %r9,%rbp
sub    %rbx,%rbp
sbb    %r12,%r12
mov    %rbp,%r13
sub    %rax,%r13
cmp    %r13,%rbp
sbb    $0x0,%r12
movabs $0x7bc65c783158aea3,%rax
5c c6 7b
mov    %r11,%rdx
sub    %rax,%rdx
sbb    %rbp,%rbp
add    %rdx,%r12
cmp    %r12,%rdx
sbb    $0x0,%rbp
movabs $0x6cfc5fd681c52056,%rax
5f fc 6c
mov    %r8,%rdx
sub    %rax,%rdx
sbb    %r15,%r15
add    %rdx,%rbp
movabs $0x2341f27177344,%rbx
xor    %eax,%eax
mov    %rcx,%rdi
sub    %rbx,%rdi
setb   %al
cmp    %rbp,%rdx
sbb    $0x0,%r15
add    %rdi,%r15
cmp    %r15,%rdi
mov    %rsi,%rdx
sbb    %rax,%rdx
cmp    %rdx,%rsi
mov    0x18(%rsp),%rax
sbb    $0xffffffffffffffff,%rax
cmp    %rdx,%rsi
cmovae 0x10(%rsp),%r14
mov    0x8(%rsp),%rdx
cmovae %r10,%rdx
mov    %rdx,0x8(%rsp)
cmovb  %r9,%r13
cmovb  %r11,%r12
cmovb  %r8,%rbp
cmovb  %rcx,%r15
mov    0x40(%rsp),%rbx
mov    %ebx,%edi
mov    %rax,%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
lea    0x8(%rbx),%edi
mov    %r14,%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
lea    0x10(%rbx),%edi
mov    0x8(%rsp),%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
lea    0x18(%rbx),%edi
mov    %r13,%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
lea    0x20(%rbx),%edi
mov    %r12,%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
lea    0x28(%rbx),%edi
mov    %rbp,%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
add    $0x30,%ebx
mov    %ebx,%edi
mov    %r15,%rsi
mov    $0x8,%edx
add    $0x48,%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_p434_add(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
%61 = alloca i64
%62 = alloca i64
%63 = alloca i64
%64 = alloca i64
%65 = alloca i64
%66 = alloca i64
%67 = alloca i64
%68 = alloca i64
%69 = alloca i64
%70 = alloca i64
%71 = alloca i64
%72 = alloca i64
%73 = alloca i64
%74 = alloca i64
%75 = alloca i64
%76 = alloca i64
store i64 %0, i64* %4
store i64 %1, i64* %5
store i64 %2, i64* %6
%77 = load i64, i64* %5
%78 = add i64 %77, 0
%79 = trunc i64 %78 to i32
%80 = call i64 @_br2_load(i32 %79, i32 8)
store i64 %80, i64* %8
%81 = load i64, i64* %5
%82 = add i64 %81, 8
%83 = trunc i64 %82 to i32
%84 = call i64 @_br2_load(i32 %83, i32 8)
store i64 %84, i64* %10
%85 = load i64, i64* %5
%86 = add i64 %85, 16
%87 = trunc i64 %86 to i32
%88 = call i64 @_br2_load(i32 %87, i32 8)
store i64 %88, i64* %13
%89 = load i64, i64* %5
%90 = add i64 %89, 24
%91 = trunc i64 %90 to i32
%92 = call i64 @_br2_load(i32 %91, i32 8)
store i64 %92, i64* %16
%93 = load i64, i64* %5
%94 = add i64 %93, 32
%95 = trunc i64 %94 to i32
%96 = call i64 @_br2_load(i32 %95, i32 8)
store i64 %96, i64* %19
%97 = load i64, i64* %5
%98 = add i64 %97, 40
%99 = trunc i64 %98 to i32
%100 = call i64 @_br2_load(i32 %99, i32 8)
store i64 %100, i64* %22
%101 = load i64, i64* %5
%102 = add i64 %101, 48
%103 = trunc i64 %102 to i32
%104 = call i64 @_br2_load(i32 %103, i32 8)
store i64 %104, i64* %25
%105 = load i64, i64* %6
%106 = add i64 %105, 0
%107 = trunc i64 %106 to i32
%108 = call i64 @_br2_load(i32 %107, i32 8)
store i64 %108, i64* %7
%109 = load i64, i64* %6
%110 = add i64 %109, 8
%111 = trunc i64 %110 to i32
%112 = call i64 @_br2_load(i32 %111, i32 8)
store i64 %112, i64* %11
%113 = load i64, i64* %6
%114 = add i64 %113, 16
%115 = trunc i64 %114 to i32
%116 = call i64 @_br2_load(i32 %115, i32 8)
store i64 %116, i64* %14
%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* %17
%121 = load i64, i64* %6
%122 = add i64 %121, 32
%123 = trunc i64 %122 to i32
%124 = call i64 @_br2_load(i32 %123, i32 8)
store i64 %124, i64* %20
%125 = load i64, i64* %6
%126 = add i64 %125, 40
%127 = trunc i64 %126 to i32
%128 = call i64 @_br2_load(i32 %127, i32 8)
store i64 %128, i64* %23
%129 = load i64, i64* %6
%130 = add i64 %129, 48
%131 = trunc i64 %130 to i32
%132 = call i64 @_br2_load(i32 %131, i32 8)
store i64 %132, i64* %26
%133 = load i64, i64* %8
%134 = load i64, i64* %7
%135 = add i64 %133, %134
store i64 %135, i64* %34
%136 = load i64, i64* %34
%137 = load i64, i64* %8
%138 = icmp ult i64 %136, %137
%139 = zext i1 %138 to i32
%140 = sext i32 %139 to i64
%141 = load i64, i64* %10
%142 = add i64 %140, %141
store i64 %142, i64* %9
%143 = load i64, i64* %9
%144 = load i64, i64* %11
%145 = add i64 %143, %144
store i64 %145, i64* %38
%146 = load i64, i64* %9
%147 = load i64, i64* %10
%148 = icmp ult i64 %146, %147
%149 = zext i1 %148 to i32
%150 = load i64, i64* %38
%151 = load i64, i64* %11
%152 = icmp ult i64 %150, %151
%153 = zext i1 %152 to i32
%154 = add nsw i32 %149, %153
%155 = sext i32 %154 to i64
%156 = load i64, i64* %13
%157 = add i64 %155, %156
store i64 %157, i64* %12
%158 = load i64, i64* %12
%159 = load i64, i64* %14
%160 = add i64 %158, %159
store i64 %160, i64* %42
%161 = load i64, i64* %12
%162 = load i64, i64* %13
%163 = icmp ult i64 %161, %162
%164 = zext i1 %163 to i32
%165 = load i64, i64* %42
%166 = load i64, i64* %14
%167 = icmp ult i64 %165, %166
%168 = zext i1 %167 to i32
%169 = add nsw i32 %164, %168
%170 = sext i32 %169 to i64
%171 = load i64, i64* %16
%172 = add i64 %170, %171
store i64 %172, i64* %15
%173 = load i64, i64* %15
%174 = load i64, i64* %17
%175 = add i64 %173, %174
store i64 %175, i64* %46
%176 = load i64, i64* %15
%177 = load i64, i64* %16
%178 = icmp ult i64 %176, %177
%179 = zext i1 %178 to i32
%180 = load i64, i64* %46
%181 = load i64, i64* %17
%182 = icmp ult i64 %180, %181
%183 = zext i1 %182 to i32
%184 = add nsw i32 %179, %183
%185 = sext i32 %184 to i64
%186 = load i64, i64* %19
%187 = add i64 %185, %186
store i64 %187, i64* %18
%188 = load i64, i64* %18
%189 = load i64, i64* %20
%190 = add i64 %188, %189
store i64 %190, i64* %50
%191 = load i64, i64* %18
%192 = load i64, i64* %19
%193 = icmp ult i64 %191, %192
%194 = zext i1 %193 to i32
%195 = load i64, i64* %50
%196 = load i64, i64* %20
%197 = icmp ult i64 %195, %196
%198 = zext i1 %197 to i32
%199 = add nsw i32 %194, %198
%200 = sext i32 %199 to i64
%201 = load i64, i64* %22
%202 = add i64 %200, %201
store i64 %202, i64* %21
%203 = load i64, i64* %21
%204 = load i64, i64* %23
%205 = add i64 %203, %204
store i64 %205, i64* %54
%206 = load i64, i64* %21
%207 = load i64, i64* %22
%208 = icmp ult i64 %206, %207
%209 = zext i1 %208 to i32
%210 = load i64, i64* %54
%211 = load i64, i64* %23
%212 = icmp ult i64 %210, %211
%213 = zext i1 %212 to i32
%214 = add nsw i32 %209, %213
%215 = sext i32 %214 to i64
%216 = load i64, i64* %25
%217 = add i64 %215, %216
store i64 %217, i64* %24
%218 = load i64, i64* %24
%219 = load i64, i64* %26
%220 = add i64 %218, %219
store i64 %220, i64* %59
%221 = load i64, i64* %24
%222 = load i64, i64* %25
%223 = icmp ult i64 %221, %222
%224 = zext i1 %223 to i32
%225 = load i64, i64* %59
%226 = load i64, i64* %26
%227 = icmp ult i64 %225, %226
%228 = zext i1 %227 to i32
%229 = add nsw i32 %224, %228
%230 = sext i32 %229 to i64
store i64 %230, i64* %32
%231 = load i64, i64* %34
%232 = sub i64 %231, -1
store i64 %232, i64* %36
%233 = load i64, i64* %38
%234 = sub i64 %233, -1
store i64 %234, i64* %27
%235 = load i64, i64* %27
%236 = load i64, i64* %34
%237 = load i64, i64* %36
%238 = icmp ult i64 %236, %237
%239 = zext i1 %238 to i32
%240 = sext i32 %239 to i64
%241 = sub i64 %235, %240
store i64 %241, i64* %40
%242 = load i64, i64* %42
%243 = sub i64 %242, -1
store i64 %243, i64* %28
%244 = load i64, i64* %28
%245 = load i64, i64* %38
%246 = load i64, i64* %27
%247 = icmp ult i64 %245, %246
%248 = zext i1 %247 to i32
%249 = load i64, i64* %27
%250 = load i64, i64* %40
%251 = icmp ult i64 %249, %250
%252 = zext i1 %251 to i32
%253 = add nsw i32 %248, %252
%254 = sext i32 %253 to i64
%255 = sub i64 %244, %254
store i64 %255, i64* %44
%256 = load i64, i64* %46
%257 = sub i64 %256, -161717841442111489
store i64 %257, i64* %29
%258 = load i64, i64* %29
%259 = load i64, i64* %42
%260 = load i64, i64* %28
%261 = icmp ult i64 %259, %260
%262 = zext i1 %261 to i32
%263 = load i64, i64* %28
%264 = load i64, i64* %44
%265 = icmp ult i64 %263, %264
%266 = zext i1 %265 to i32
%267 = add nsw i32 %262, %266
%268 = sext i32 %267 to i64
%269 = sub i64 %258, %268
store i64 %269, i64* %48
%270 = load i64, i64* %50
%271 = sub i64 %270, 8918917783347572387
store i64 %271, i64* %30
%272 = load i64, i64* %30
%273 = load i64, i64* %46
%274 = load i64, i64* %29
%275 = icmp ult i64 %273, %274
%276 = zext i1 %275 to i32
%277 = load i64, i64* %29
%278 = load i64, i64* %48
%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 = sub i64 %272, %282
store i64 %283, i64* %52
%284 = load i64, i64* %54
%285 = sub i64 %284, 7853257225132122198
store i64 %285, i64* %31
%286 = load i64, i64* %31
%287 = load i64, i64* %50
%288 = load i64, i64* %30
%289 = icmp ult i64 %287, %288
%290 = zext i1 %289 to i32
%291 = load i64, i64* %30
%292 = load i64, i64* %52
%293 = icmp ult i64 %291, %292
%294 = zext i1 %293 to i32
%295 = add nsw i32 %290, %294
%296 = sext i32 %295 to i64
%297 = sub i64 %286, %296
store i64 %297, i64* %56
%298 = load i64, i64* %59
%299 = sub i64 %298, 620258357900100
store i64 %299, i64* %33
%300 = load i64, i64* %33
%301 = load i64, i64* %54
%302 = load i64, i64* %31
%303 = icmp ult i64 %301, %302
%304 = zext i1 %303 to i32
%305 = load i64, i64* %31
%306 = load i64, i64* %56
%307 = icmp ult i64 %305, %306
%308 = zext i1 %307 to i32
%309 = add nsw i32 %304, %308
%310 = sext i32 %309 to i64
%311 = sub i64 %300, %310
store i64 %311, i64* %61
%312 = load i64, i64* %32
%313 = load i64, i64* %32
%314 = load i64, i64* %59
%315 = load i64, i64* %33
%316 = icmp ult i64 %314, %315
%317 = zext i1 %316 to i32
%318 = load i64, i64* %33
%319 = load i64, i64* %61
%320 = icmp ult i64 %318, %319
%321 = zext i1 %320 to i32
%322 = add nsw i32 %317, %321
%323 = sext i32 %322 to i64
%324 = sub i64 %313, %323
%325 = icmp ult i64 %312, %324
%326 = zext i1 %325 to i32
%327 = sext i32 %326 to i64
store i64 %327, i64* %58
%328 = load i64, i64* %58
%329 = icmp eq i64 %328, 0
%330 = zext i1 %329 to i32
%331 = sext i32 %330 to i64
%332 = add i64 -1, %331
store i64 %332, i64* %35
%333 = load i64, i64* %35
%334 = xor i64 %333, -1
store i64 %334, i64* %37
%335 = load i64, i64* %34
%336 = load i64, i64* %35
%337 = and i64 %335, %336
%338 = load i64, i64* %36
%339 = load i64, i64* %37
%340 = and i64 %338, %339
%341 = or i64 %337, %340
store i64 %341, i64* %63
%342 = load i64, i64* %58
%343 = icmp eq i64 %342, 0
%344 = zext i1 %343 to i32
%345 = sext i32 %344 to i64
%346 = add i64 -1, %345
store i64 %346, i64* %39
%347 = load i64, i64* %39
%348 = xor i64 %347, -1
store i64 %348, i64* %41
%349 = load i64, i64* %38
%350 = load i64, i64* %39
%351 = and i64 %349, %350
%352 = load i64, i64* %40
%353 = load i64, i64* %41
%354 = and i64 %352, %353
%355 = or i64 %351, %354
store i64 %355, i64* %64
%356 = load i64, i64* %58
%357 = icmp eq i64 %356, 0
%358 = zext i1 %357 to i32
%359 = sext i32 %358 to i64
%360 = add i64 -1, %359
store i64 %360, i64* %43
%361 = load i64, i64* %43
%362 = xor i64 %361, -1
store i64 %362, i64* %45
%363 = load i64, i64* %42
%364 = load i64, i64* %43
%365 = and i64 %363, %364
%366 = load i64, i64* %44
%367 = load i64, i64* %45
%368 = and i64 %366, %367
%369 = or i64 %365, %368
store i64 %369, i64* %65
%370 = load i64, i64* %58
%371 = icmp eq i64 %370, 0
%372 = zext i1 %371 to i32
%373 = sext i32 %372 to i64
%374 = add i64 -1, %373
store i64 %374, i64* %47
%375 = load i64, i64* %47
%376 = xor i64 %375, -1
store i64 %376, i64* %49
%377 = load i64, i64* %46
%378 = load i64, i64* %47
%379 = and i64 %377, %378
%380 = load i64, i64* %48
%381 = load i64, i64* %49
%382 = and i64 %380, %381
%383 = or i64 %379, %382
store i64 %383, i64* %66
%384 = load i64, i64* %58
%385 = icmp eq i64 %384, 0
%386 = zext i1 %385 to i32
%387 = sext i32 %386 to i64
%388 = add i64 -1, %387
store i64 %388, i64* %51
%389 = load i64, i64* %51
%390 = xor i64 %389, -1
store i64 %390, i64* %53
%391 = load i64, i64* %50
%392 = load i64, i64* %51
%393 = and i64 %391, %392
%394 = load i64, i64* %52
%395 = load i64, i64* %53
%396 = and i64 %394, %395
%397 = or i64 %393, %396
store i64 %397, i64* %67
%398 = load i64, i64* %58
%399 = icmp eq i64 %398, 0
%400 = zext i1 %399 to i32
%401 = sext i32 %400 to i64
%402 = add i64 -1, %401
store i64 %402, i64* %55
%403 = load i64, i64* %55
%404 = xor i64 %403, -1
store i64 %404, i64* %57
%405 = load i64, i64* %54
%406 = load i64, i64* %55
%407 = and i64 %405, %406
%408 = load i64, i64* %56
%409 = load i64, i64* %57
%410 = and i64 %408, %409
%411 = or i64 %407, %410
store i64 %411, i64* %68
%412 = load i64, i64* %58
%413 = icmp eq i64 %412, 0
%414 = zext i1 %413 to i32
%415 = sext i32 %414 to i64
%416 = add i64 -1, %415
store i64 %416, i64* %60
%417 = load i64, i64* %60
%418 = xor i64 %417, -1
store i64 %418, i64* %62
%419 = load i64, i64* %59
%420 = load i64, i64* %60
%421 = and i64 %419, %420
%422 = load i64, i64* %61
%423 = load i64, i64* %62
%424 = and i64 %422, %423
%425 = or i64 %421, %424
store i64 %425, i64* %69
%426 = load i64, i64* %63
store i64 %426, i64* %70
%427 = load i64, i64* %64
store i64 %427, i64* %71
%428 = load i64, i64* %65
store i64 %428, i64* %72
%429 = load i64, i64* %66
store i64 %429, i64* %73
%430 = load i64, i64* %67
store i64 %430, i64* %74
%431 = load i64, i64* %68
store i64 %431, i64* %75
%432 = load i64, i64* %69
store i64 %432, i64* %76
%433 = load i64, i64* %4
%434 = add i64 %433, 0
%435 = trunc i64 %434 to i32
%436 = load i64, i64* %70
%437 = call i32 @_br2_store(i32 %435, i64 %436, i32 8)
%438 = load i64, i64* %4
%439 = add i64 %438, 8
%440 = trunc i64 %439 to i32
%441 = load i64, i64* %71
%442 = call i32 @_br2_store(i32 %440, i64 %441, i32 8)
%443 = load i64, i64* %4
%444 = add i64 %443, 16
%445 = trunc i64 %444 to i32
%446 = load i64, i64* %72
%447 = call i32 @_br2_store(i32 %445, i64 %446, i32 8)
%448 = load i64, i64* %4
%449 = add i64 %448, 24
%450 = trunc i64 %449 to i32
%451 = load i64, i64* %73
%452 = call i32 @_br2_store(i32 %450, i64 %451, i32 8)
%453 = load i64, i64* %4
%454 = add i64 %453, 32
%455 = trunc i64 %454 to i32
%456 = load i64, i64* %74
%457 = call i32 @_br2_store(i32 %455, i64 %456, i32 8)
%458 = load i64, i64* %4
%459 = add i64 %458, 40
%460 = trunc i64 %459 to i32
%461 = load i64, i64* %75
%462 = call i32 @_br2_store(i32 %460, i64 %461, i32 8)
%463 = load i64, i64* %4
%464 = add i64 %463, 48
%465 = trunc i64 %464 to i32
%466 = load i64, i64* %76
%467 = call i32 @_br2_store(i32 %465, i64 %466, i32 8)
ret void
}

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