#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 x54;
typedef uintptr_t x53;
typedef uintptr_t x52;
typedef uintptr_t x50;
typedef uintptr_t x49;
typedef uintptr_t x48;
typedef uintptr_t x46;
typedef uintptr_t x45;
typedef uintptr_t x44;
typedef uintptr_t x42;
typedef uintptr_t x41;
typedef uintptr_t x40;
typedef uintptr_t x38;
typedef uintptr_t x37;
typedef uintptr_t x36;
typedef uintptr_t x34;
typedef uintptr_t x33;
typedef uintptr_t x32;
typedef uintptr_t x30;
typedef uintptr_t x29;
typedef uintptr_t x28;
typedef int /*<<< orphan*/ out0;
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_p224_from_bytes(uintptr_t out0, uintptr_t in0) {
  uintptr_t x27, x26, x25, x24, x23, x22, x21, x20, x19, x18, x17, x16, x15,
      x14, x13, x12, x11, x10, x9, x8, x7, x6, x5, x4, x3, x2, x1, x0, x54, x55,
      x53, x56, x52, x57, x50, x51, x49, x59, x48, x60, x46, x47, x45, x62, x44,
      x63, x42, x43, x41, x65, x40, x66, x38, x39, x37, x68, x36, x69, x34, x35,
      x33, x71, x32, x72, x30, x31, x29, x74, x28, x75, x58, x61, x64, x67, x70,
      x73, x76, x77, x78, x79, x80, x81, x82, x83;
  x0 = _br2_load((in0) + ((uintptr_t)0ULL), 1);
  x1 = _br2_load((in0) + ((uintptr_t)1ULL), 1);
  x2 = _br2_load((in0) + ((uintptr_t)2ULL), 1);
  x3 = _br2_load((in0) + ((uintptr_t)3ULL), 1);
  x4 = _br2_load((in0) + ((uintptr_t)4ULL), 1);
  x5 = _br2_load((in0) + ((uintptr_t)5ULL), 1);
  x6 = _br2_load((in0) + ((uintptr_t)6ULL), 1);
  x7 = _br2_load((in0) + ((uintptr_t)7ULL), 1);
  x8 = _br2_load((in0) + ((uintptr_t)8ULL), 1);
  x9 = _br2_load((in0) + ((uintptr_t)9ULL), 1);
  x10 = _br2_load((in0) + ((uintptr_t)10ULL), 1);
  x11 = _br2_load((in0) + ((uintptr_t)11ULL), 1);
  x12 = _br2_load((in0) + ((uintptr_t)12ULL), 1);
  x13 = _br2_load((in0) + ((uintptr_t)13ULL), 1);
  x14 = _br2_load((in0) + ((uintptr_t)14ULL), 1);
  x15 = _br2_load((in0) + ((uintptr_t)15ULL), 1);
  x16 = _br2_load((in0) + ((uintptr_t)16ULL), 1);
  x17 = _br2_load((in0) + ((uintptr_t)17ULL), 1);
  x18 = _br2_load((in0) + ((uintptr_t)18ULL), 1);
  x19 = _br2_load((in0) + ((uintptr_t)19ULL), 1);
  x20 = _br2_load((in0) + ((uintptr_t)20ULL), 1);
  x21 = _br2_load((in0) + ((uintptr_t)21ULL), 1);
  x22 = _br2_load((in0) + ((uintptr_t)22ULL), 1);
  x23 = _br2_load((in0) + ((uintptr_t)23ULL), 1);
  x24 = _br2_load((in0) + ((uintptr_t)24ULL), 1);
  x25 = _br2_load((in0) + ((uintptr_t)25ULL), 1);
  x26 = _br2_load((in0) + ((uintptr_t)26ULL), 1);
  x27 = _br2_load((in0) + ((uintptr_t)27ULL), 1);
  x28 = (x27) << ((uintptr_t)24ULL);
  x29 = (x26) << ((uintptr_t)16ULL);
  x30 = (x25) << ((uintptr_t)8ULL);
  x31 = x24;
  x32 = (x23) << ((uintptr_t)24ULL);
  x33 = (x22) << ((uintptr_t)16ULL);
  x34 = (x21) << ((uintptr_t)8ULL);
  x35 = x20;
  x36 = (x19) << ((uintptr_t)24ULL);
  x37 = (x18) << ((uintptr_t)16ULL);
  x38 = (x17) << ((uintptr_t)8ULL);
  x39 = x16;
  x40 = (x15) << ((uintptr_t)24ULL);
  x41 = (x14) << ((uintptr_t)16ULL);
  x42 = (x13) << ((uintptr_t)8ULL);
  x43 = x12;
  x44 = (x11) << ((uintptr_t)24ULL);
  x45 = (x10) << ((uintptr_t)16ULL);
  x46 = (x9) << ((uintptr_t)8ULL);
  x47 = x8;
  x48 = (x7) << ((uintptr_t)24ULL);
  x49 = (x6) << ((uintptr_t)16ULL);
  x50 = (x5) << ((uintptr_t)8ULL);
  x51 = x4;
  x52 = (x3) << ((uintptr_t)24ULL);
  x53 = (x2) << ((uintptr_t)16ULL);
  x54 = (x1) << ((uintptr_t)8ULL);
  x55 = x0;
  x56 = (x54) + (x55);
  x57 = (x53) + (x56);
  x58 = (x52) + (x57);
  x59 = (x50) + (x51);
  x60 = (x49) + (x59);
  x61 = (x48) + (x60);
  x62 = (x46) + (x47);
  x63 = (x45) + (x62);
  x64 = (x44) + (x63);
  x65 = (x42) + (x43);
  x66 = (x41) + (x65);
  x67 = (x40) + (x66);
  x68 = (x38) + (x39);
  x69 = (x37) + (x68);
  x70 = (x36) + (x69);
  x71 = (x34) + (x35);
  x72 = (x33) + (x71);
  x73 = (x32) + (x72);
  x74 = (x30) + (x31);
  x75 = (x29) + (x74);
  x76 = (x28) + (x75);
  x77 = x58;
  x78 = x61;
  x79 = x64;
  x80 = x67;
  x81 = x70;
  x82 = x73;
  x83 = x76;
  _br2_store((out0) + ((uintptr_t)0ULL), x77, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)4ULL), x78, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)8ULL), x79, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)12ULL), x80, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)16ULL), x81, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)20ULL), x82, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)24ULL), x83, sizeof(uintptr_t));
  return;
}


x86 assembly (clang, -O0):
<internal_fiat_p224_from_bytes>:
push   %rbp
mov    %rsp,%rbp
sub    $0x2b0,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    -0x10(%rbp),%rax
add    $0x0,%rax
mov    %eax,%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0xf0(%rbp)
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %eax,%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0xe8(%rbp)
mov    -0x10(%rbp),%rax
add    $0x2,%rax
mov    %eax,%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0xe0(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %eax,%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0xd8(%rbp)
mov    -0x10(%rbp),%rax
add    $0x4,%rax
mov    %eax,%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0xd0(%rbp)
mov    -0x10(%rbp),%rax
add    $0x5,%rax
mov    %eax,%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0xc8(%rbp)
mov    -0x10(%rbp),%rax
add    $0x6,%rax
mov    %eax,%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0xc0(%rbp)
mov    -0x10(%rbp),%rax
add    $0x7,%rax
mov    %eax,%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0xb8(%rbp)
mov    -0x10(%rbp),%rax
add    $0x8,%rax
mov    %eax,%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0xb0(%rbp)
mov    -0x10(%rbp),%rax
add    $0x9,%rax
mov    %eax,%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0xa8(%rbp)
mov    -0x10(%rbp),%rax
add    $0xa,%rax
mov    %eax,%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0xa0(%rbp)
mov    -0x10(%rbp),%rax
add    $0xb,%rax
mov    %eax,%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x98(%rbp)
mov    -0x10(%rbp),%rax
add    $0xc,%rax
mov    %eax,%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x90(%rbp)
mov    -0x10(%rbp),%rax
add    $0xd,%rax
mov    %eax,%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x88(%rbp)
mov    -0x10(%rbp),%rax
add    $0xe,%rax
mov    %eax,%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x80(%rbp)
mov    -0x10(%rbp),%rax
add    $0xf,%rax
mov    %eax,%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x78(%rbp)
mov    -0x10(%rbp),%rax
add    $0x10,%rax
mov    %eax,%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x70(%rbp)
mov    -0x10(%rbp),%rax
add    $0x11,%rax
mov    %eax,%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x68(%rbp)
mov    -0x10(%rbp),%rax
add    $0x12,%rax
mov    %eax,%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x60(%rbp)
mov    -0x10(%rbp),%rax
add    $0x13,%rax
mov    %eax,%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x58(%rbp)
mov    -0x10(%rbp),%rax
add    $0x14,%rax
mov    %eax,%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x50(%rbp)
mov    -0x10(%rbp),%rax
add    $0x15,%rax
mov    %eax,%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x48(%rbp)
mov    -0x10(%rbp),%rax
add    $0x16,%rax
mov    %eax,%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x40(%rbp)
mov    -0x10(%rbp),%rax
add    $0x17,%rax
mov    %eax,%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x38(%rbp)
mov    -0x10(%rbp),%rax
add    $0x18,%rax
mov    %eax,%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
add    $0x19,%rax
mov    %eax,%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
add    $0x1a,%rax
mov    %eax,%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x20(%rbp)
mov    -0x10(%rbp),%rax
add    $0x1b,%rax
mov    %eax,%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x18(%rbp)
mov    -0x18(%rbp),%rax
shl    $0x18,%rax
mov    %rax,-0x238(%rbp)
mov    -0x20(%rbp),%rax
shl    $0x10,%rax
mov    %rax,-0x228(%rbp)
mov    -0x28(%rbp),%rax
shl    $0x8,%rax
mov    %rax,-0x218(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x220(%rbp)
mov    -0x38(%rbp),%rax
shl    $0x18,%rax
mov    %rax,-0x208(%rbp)
mov    -0x40(%rbp),%rax
shl    $0x10,%rax
mov    %rax,-0x1f8(%rbp)
mov    -0x48(%rbp),%rax
shl    $0x8,%rax
mov    %rax,-0x1e8(%rbp)
mov    -0x50(%rbp),%rax
mov    %rax,-0x1f0(%rbp)
mov    -0x58(%rbp),%rax
shl    $0x18,%rax
mov    %rax,-0x1d8(%rbp)
mov    -0x60(%rbp),%rax
shl    $0x10,%rax
mov    %rax,-0x1c8(%rbp)
mov    -0x68(%rbp),%rax
shl    $0x8,%rax
mov    %rax,-0x1b8(%rbp)
mov    -0x70(%rbp),%rax
mov    %rax,-0x1c0(%rbp)
mov    -0x78(%rbp),%rax
shl    $0x18,%rax
mov    %rax,-0x1a8(%rbp)
mov    -0x80(%rbp),%rax
shl    $0x10,%rax
mov    %rax,-0x198(%rbp)
mov    -0x88(%rbp),%rax
shl    $0x8,%rax
mov    %rax,-0x188(%rbp)
mov    -0x90(%rbp),%rax
mov    %rax,-0x190(%rbp)
mov    -0x98(%rbp),%rax
shl    $0x18,%rax
mov    %rax,-0x178(%rbp)
mov    -0xa0(%rbp),%rax
shl    $0x10,%rax
mov    %rax,-0x168(%rbp)
mov    -0xa8(%rbp),%rax
shl    $0x8,%rax
mov    %rax,-0x158(%rbp)
mov    -0xb0(%rbp),%rax
mov    %rax,-0x160(%rbp)
mov    -0xb8(%rbp),%rax
shl    $0x18,%rax
mov    %rax,-0x148(%rbp)
mov    -0xc0(%rbp),%rax
shl    $0x10,%rax
mov    %rax,-0x138(%rbp)
mov    -0xc8(%rbp),%rax
shl    $0x8,%rax
mov    %rax,-0x128(%rbp)
mov    -0xd0(%rbp),%rax
mov    %rax,-0x130(%rbp)
mov    -0xd8(%rbp),%rax
shl    $0x18,%rax
mov    %rax,-0x118(%rbp)
mov    -0xe0(%rbp),%rax
shl    $0x10,%rax
mov    %rax,-0x108(%rbp)
mov    -0xe8(%rbp),%rax
shl    $0x8,%rax
mov    %rax,-0xf8(%rbp)
mov    -0xf0(%rbp),%rax
mov    %rax,-0x100(%rbp)
mov    -0xf8(%rbp),%rax
add    -0x100(%rbp),%rax
mov    %rax,-0x110(%rbp)
mov    -0x108(%rbp),%rax
add    -0x110(%rbp),%rax
mov    %rax,-0x120(%rbp)
mov    -0x118(%rbp),%rax
add    -0x120(%rbp),%rax
mov    %rax,-0x248(%rbp)
mov    -0x128(%rbp),%rax
add    -0x130(%rbp),%rax
mov    %rax,-0x140(%rbp)
mov    -0x138(%rbp),%rax
add    -0x140(%rbp),%rax
mov    %rax,-0x150(%rbp)
mov    -0x148(%rbp),%rax
add    -0x150(%rbp),%rax
mov    %rax,-0x250(%rbp)
mov    -0x158(%rbp),%rax
add    -0x160(%rbp),%rax
mov    %rax,-0x170(%rbp)
mov    -0x168(%rbp),%rax
add    -0x170(%rbp),%rax
mov    %rax,-0x180(%rbp)
mov    -0x178(%rbp),%rax
add    -0x180(%rbp),%rax
mov    %rax,-0x258(%rbp)
mov    -0x188(%rbp),%rax
add    -0x190(%rbp),%rax
mov    %rax,-0x1a0(%rbp)
mov    -0x198(%rbp),%rax
add    -0x1a0(%rbp),%rax
mov    %rax,-0x1b0(%rbp)
mov    -0x1a8(%rbp),%rax
add    -0x1b0(%rbp),%rax
mov    %rax,-0x260(%rbp)
mov    -0x1b8(%rbp),%rax
add    -0x1c0(%rbp),%rax
mov    %rax,-0x1d0(%rbp)
mov    -0x1c8(%rbp),%rax
add    -0x1d0(%rbp),%rax
mov    %rax,-0x1e0(%rbp)
mov    -0x1d8(%rbp),%rax
add    -0x1e0(%rbp),%rax
mov    %rax,-0x268(%rbp)
mov    -0x1e8(%rbp),%rax
add    -0x1f0(%rbp),%rax
mov    %rax,-0x200(%rbp)
mov    -0x1f8(%rbp),%rax
add    -0x200(%rbp),%rax
mov    %rax,-0x210(%rbp)
mov    -0x208(%rbp),%rax
add    -0x210(%rbp),%rax
mov    %rax,-0x270(%rbp)
mov    -0x218(%rbp),%rax
add    -0x220(%rbp),%rax
mov    %rax,-0x230(%rbp)
mov    -0x228(%rbp),%rax
add    -0x230(%rbp),%rax
mov    %rax,-0x240(%rbp)
mov    -0x238(%rbp),%rax
add    -0x240(%rbp),%rax
mov    %rax,-0x278(%rbp)
mov    -0x248(%rbp),%rax
mov    %rax,-0x280(%rbp)
mov    -0x250(%rbp),%rax
mov    %rax,-0x288(%rbp)
mov    -0x258(%rbp),%rax
mov    %rax,-0x290(%rbp)
mov    -0x260(%rbp),%rax
mov    %rax,-0x298(%rbp)
mov    -0x268(%rbp),%rax
mov    %rax,-0x2a0(%rbp)
mov    -0x270(%rbp),%rax
mov    %rax,-0x2a8(%rbp)
mov    -0x278(%rbp),%rax
mov    %rax,-0x2b0(%rbp)
mov    -0x8(%rbp),%rax
add    $0x0,%rax
mov    %eax,%edi
mov    -0x280(%rbp),%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
mov    -0x8(%rbp),%rax
add    $0x4,%rax
mov    %eax,%edi
mov    -0x288(%rbp),%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
mov    -0x8(%rbp),%rax
add    $0x8,%rax
mov    %eax,%edi
mov    -0x290(%rbp),%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
mov    -0x8(%rbp),%rax
add    $0xc,%rax
mov    %eax,%edi
mov    -0x298(%rbp),%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
mov    -0x8(%rbp),%rax
add    $0x10,%rax
mov    %eax,%edi
mov    -0x2a0(%rbp),%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
mov    -0x8(%rbp),%rax
add    $0x14,%rax
mov    %eax,%edi
mov    -0x2a8(%rbp),%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
mov    -0x8(%rbp),%rax
add    $0x18,%rax
mov    %eax,%edi
mov    -0x2b0(%rbp),%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
add    $0x2b0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<internal_fiat_p224_from_bytes>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0xb8,%rsp
mov    %rsi,%r12
mov    %rdi,0xb0(%rsp)
mov    %r12d,%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,0xa8(%rsp)
lea    0x1(%r12),%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,%rbx
lea    0x2(%r12),%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,0xa0(%rsp)
lea    0x3(%r12),%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,0x98(%rsp)
lea    0x4(%r12),%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,0x90(%rsp)
lea    0x5(%r12),%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,0x88(%rsp)
lea    0x6(%r12),%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,0x80(%rsp)
lea    0x7(%r12),%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,0x78(%rsp)
lea    0x8(%r12),%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,0x70(%rsp)
lea    0x9(%r12),%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,(%rsp)
lea    0xa(%r12),%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,0x68(%rsp)
lea    0xb(%r12),%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,0x60(%rsp)
lea    0xc(%r12),%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,0x58(%rsp)
lea    0xd(%r12),%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,%rbp
lea    0xe(%r12),%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,0x50(%rsp)
lea    0xf(%r12),%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,0x48(%rsp)
lea    0x10(%r12),%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,0x40(%rsp)
lea    0x11(%r12),%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,%r14
lea    0x12(%r12),%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,0x38(%rsp)
lea    0x13(%r12),%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,0x30(%rsp)
lea    0x14(%r12),%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,0x28(%rsp)
lea    0x15(%r12),%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,%r15
lea    0x16(%r12),%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,0x20(%rsp)
lea    0x17(%r12),%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,0x18(%rsp)
lea    0x18(%r12),%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,0x10(%rsp)
lea    0x19(%r12),%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,%r13
lea    0x1a(%r12),%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
mov    %rax,0x8(%rsp)
add    $0x1b,%r12d
mov    %r12d,%edi
mov    $0x1,%esi
call   1030 <_br2_load@plt>
shl    $0x8,%rbx
add    0xa8(%rsp),%rbx
mov    0xa0(%rsp),%rcx
shl    $0x10,%rcx
add    %rcx,%rbx
mov    0x98(%rsp),%rcx
shl    $0x18,%rcx
add    %rcx,%rbx
mov    %rbx,%rsi
mov    0x88(%rsp),%r12
shl    $0x8,%r12
add    0x90(%rsp),%r12
mov    0x80(%rsp),%rcx
shl    $0x10,%rcx
add    %rcx,%r12
mov    0x78(%rsp),%rcx
shl    $0x18,%rcx
add    %rcx,%r12
mov    (%rsp),%rcx
shl    $0x8,%rcx
add    0x70(%rsp),%rcx
mov    0x68(%rsp),%rdx
shl    $0x10,%rdx
add    %rdx,%rcx
mov    0x60(%rsp),%rdx
shl    $0x18,%rdx
add    %rdx,%rcx
mov    %rcx,(%rsp)
shl    $0x8,%rbp
add    0x58(%rsp),%rbp
mov    0x50(%rsp),%rcx
shl    $0x10,%rcx
add    %rcx,%rbp
mov    0x48(%rsp),%rcx
shl    $0x18,%rcx
add    %rcx,%rbp
shl    $0x8,%r14
add    0x40(%rsp),%r14
mov    0x38(%rsp),%rcx
shl    $0x10,%rcx
add    %rcx,%r14
mov    0x30(%rsp),%rcx
shl    $0x18,%rcx
add    %rcx,%r14
shl    $0x8,%r15
add    0x28(%rsp),%r15
mov    0x20(%rsp),%rcx
shl    $0x10,%rcx
add    %rcx,%r15
mov    0x18(%rsp),%rcx
shl    $0x18,%rcx
add    %rcx,%r15
shl    $0x8,%r13
add    0x10(%rsp),%r13
mov    0x8(%rsp),%rcx
shl    $0x10,%rcx
add    %rcx,%r13
shl    $0x18,%rax
add    %rax,%r13
mov    0xb0(%rsp),%rbx
mov    %ebx,%edi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
lea    0x4(%rbx),%edi
mov    %r12,%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
lea    0x8(%rbx),%edi
mov    (%rsp),%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
lea    0xc(%rbx),%edi
mov    %rbp,%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
lea    0x10(%rbx),%edi
mov    %r14,%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
lea    0x14(%rbx),%edi
mov    %r15,%rsi
mov    $0x8,%edx
call   1040 <_br2_store@plt>
add    $0x18,%ebx
mov    %ebx,%edi
mov    %r13,%rsi
mov    $0x8,%edx
add    $0xb8,%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_p224_from_bytes(i64 %0, i64 %1) {
%3 = alloca i64
%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
%77 = alloca i64
%78 = alloca i64
%79 = alloca i64
%80 = alloca i64
%81 = alloca i64
%82 = alloca i64
%83 = alloca i64
%84 = alloca i64
%85 = alloca i64
%86 = alloca i64
%87 = alloca i64
%88 = alloca i64
store i64 %0, i64* %3
store i64 %1, i64* %4
%89 = load i64, i64* %4
%90 = add i64 %89, 0
%91 = trunc i64 %90 to i32
%92 = call i64 @_br2_load(i32 %91, i32 1)
store i64 %92, i64* %32
%93 = load i64, i64* %4
%94 = add i64 %93, 1
%95 = trunc i64 %94 to i32
%96 = call i64 @_br2_load(i32 %95, i32 1)
store i64 %96, i64* %31
%97 = load i64, i64* %4
%98 = add i64 %97, 2
%99 = trunc i64 %98 to i32
%100 = call i64 @_br2_load(i32 %99, i32 1)
store i64 %100, i64* %30
%101 = load i64, i64* %4
%102 = add i64 %101, 3
%103 = trunc i64 %102 to i32
%104 = call i64 @_br2_load(i32 %103, i32 1)
store i64 %104, i64* %29
%105 = load i64, i64* %4
%106 = add i64 %105, 4
%107 = trunc i64 %106 to i32
%108 = call i64 @_br2_load(i32 %107, i32 1)
store i64 %108, i64* %28
%109 = load i64, i64* %4
%110 = add i64 %109, 5
%111 = trunc i64 %110 to i32
%112 = call i64 @_br2_load(i32 %111, i32 1)
store i64 %112, i64* %27
%113 = load i64, i64* %4
%114 = add i64 %113, 6
%115 = trunc i64 %114 to i32
%116 = call i64 @_br2_load(i32 %115, i32 1)
store i64 %116, i64* %26
%117 = load i64, i64* %4
%118 = add i64 %117, 7
%119 = trunc i64 %118 to i32
%120 = call i64 @_br2_load(i32 %119, i32 1)
store i64 %120, i64* %25
%121 = load i64, i64* %4
%122 = add i64 %121, 8
%123 = trunc i64 %122 to i32
%124 = call i64 @_br2_load(i32 %123, i32 1)
store i64 %124, i64* %24
%125 = load i64, i64* %4
%126 = add i64 %125, 9
%127 = trunc i64 %126 to i32
%128 = call i64 @_br2_load(i32 %127, i32 1)
store i64 %128, i64* %23
%129 = load i64, i64* %4
%130 = add i64 %129, 10
%131 = trunc i64 %130 to i32
%132 = call i64 @_br2_load(i32 %131, i32 1)
store i64 %132, i64* %22
%133 = load i64, i64* %4
%134 = add i64 %133, 11
%135 = trunc i64 %134 to i32
%136 = call i64 @_br2_load(i32 %135, i32 1)
store i64 %136, i64* %21
%137 = load i64, i64* %4
%138 = add i64 %137, 12
%139 = trunc i64 %138 to i32
%140 = call i64 @_br2_load(i32 %139, i32 1)
store i64 %140, i64* %20
%141 = load i64, i64* %4
%142 = add i64 %141, 13
%143 = trunc i64 %142 to i32
%144 = call i64 @_br2_load(i32 %143, i32 1)
store i64 %144, i64* %19
%145 = load i64, i64* %4
%146 = add i64 %145, 14
%147 = trunc i64 %146 to i32
%148 = call i64 @_br2_load(i32 %147, i32 1)
store i64 %148, i64* %18
%149 = load i64, i64* %4
%150 = add i64 %149, 15
%151 = trunc i64 %150 to i32
%152 = call i64 @_br2_load(i32 %151, i32 1)
store i64 %152, i64* %17
%153 = load i64, i64* %4
%154 = add i64 %153, 16
%155 = trunc i64 %154 to i32
%156 = call i64 @_br2_load(i32 %155, i32 1)
store i64 %156, i64* %16
%157 = load i64, i64* %4
%158 = add i64 %157, 17
%159 = trunc i64 %158 to i32
%160 = call i64 @_br2_load(i32 %159, i32 1)
store i64 %160, i64* %15
%161 = load i64, i64* %4
%162 = add i64 %161, 18
%163 = trunc i64 %162 to i32
%164 = call i64 @_br2_load(i32 %163, i32 1)
store i64 %164, i64* %14
%165 = load i64, i64* %4
%166 = add i64 %165, 19
%167 = trunc i64 %166 to i32
%168 = call i64 @_br2_load(i32 %167, i32 1)
store i64 %168, i64* %13
%169 = load i64, i64* %4
%170 = add i64 %169, 20
%171 = trunc i64 %170 to i32
%172 = call i64 @_br2_load(i32 %171, i32 1)
store i64 %172, i64* %12
%173 = load i64, i64* %4
%174 = add i64 %173, 21
%175 = trunc i64 %174 to i32
%176 = call i64 @_br2_load(i32 %175, i32 1)
store i64 %176, i64* %11
%177 = load i64, i64* %4
%178 = add i64 %177, 22
%179 = trunc i64 %178 to i32
%180 = call i64 @_br2_load(i32 %179, i32 1)
store i64 %180, i64* %10
%181 = load i64, i64* %4
%182 = add i64 %181, 23
%183 = trunc i64 %182 to i32
%184 = call i64 @_br2_load(i32 %183, i32 1)
store i64 %184, i64* %9
%185 = load i64, i64* %4
%186 = add i64 %185, 24
%187 = trunc i64 %186 to i32
%188 = call i64 @_br2_load(i32 %187, i32 1)
store i64 %188, i64* %8
%189 = load i64, i64* %4
%190 = add i64 %189, 25
%191 = trunc i64 %190 to i32
%192 = call i64 @_br2_load(i32 %191, i32 1)
store i64 %192, i64* %7
%193 = load i64, i64* %4
%194 = add i64 %193, 26
%195 = trunc i64 %194 to i32
%196 = call i64 @_br2_load(i32 %195, i32 1)
store i64 %196, i64* %6
%197 = load i64, i64* %4
%198 = add i64 %197, 27
%199 = trunc i64 %198 to i32
%200 = call i64 @_br2_load(i32 %199, i32 1)
store i64 %200, i64* %5
%201 = load i64, i64* %5
%202 = shl i64 %201, 24
store i64 %202, i64* %73
%203 = load i64, i64* %6
%204 = shl i64 %203, 16
store i64 %204, i64* %71
%205 = load i64, i64* %7
%206 = shl i64 %205, 8
store i64 %206, i64* %69
%207 = load i64, i64* %8
store i64 %207, i64* %70
%208 = load i64, i64* %9
%209 = shl i64 %208, 24
store i64 %209, i64* %67
%210 = load i64, i64* %10
%211 = shl i64 %210, 16
store i64 %211, i64* %65
%212 = load i64, i64* %11
%213 = shl i64 %212, 8
store i64 %213, i64* %63
%214 = load i64, i64* %12
store i64 %214, i64* %64
%215 = load i64, i64* %13
%216 = shl i64 %215, 24
store i64 %216, i64* %61
%217 = load i64, i64* %14
%218 = shl i64 %217, 16
store i64 %218, i64* %59
%219 = load i64, i64* %15
%220 = shl i64 %219, 8
store i64 %220, i64* %57
%221 = load i64, i64* %16
store i64 %221, i64* %58
%222 = load i64, i64* %17
%223 = shl i64 %222, 24
store i64 %223, i64* %55
%224 = load i64, i64* %18
%225 = shl i64 %224, 16
store i64 %225, i64* %53
%226 = load i64, i64* %19
%227 = shl i64 %226, 8
store i64 %227, i64* %51
%228 = load i64, i64* %20
store i64 %228, i64* %52
%229 = load i64, i64* %21
%230 = shl i64 %229, 24
store i64 %230, i64* %49
%231 = load i64, i64* %22
%232 = shl i64 %231, 16
store i64 %232, i64* %47
%233 = load i64, i64* %23
%234 = shl i64 %233, 8
store i64 %234, i64* %45
%235 = load i64, i64* %24
store i64 %235, i64* %46
%236 = load i64, i64* %25
%237 = shl i64 %236, 24
store i64 %237, i64* %43
%238 = load i64, i64* %26
%239 = shl i64 %238, 16
store i64 %239, i64* %41
%240 = load i64, i64* %27
%241 = shl i64 %240, 8
store i64 %241, i64* %39
%242 = load i64, i64* %28
store i64 %242, i64* %40
%243 = load i64, i64* %29
%244 = shl i64 %243, 24
store i64 %244, i64* %37
%245 = load i64, i64* %30
%246 = shl i64 %245, 16
store i64 %246, i64* %35
%247 = load i64, i64* %31
%248 = shl i64 %247, 8
store i64 %248, i64* %33
%249 = load i64, i64* %32
store i64 %249, i64* %34
%250 = load i64, i64* %33
%251 = load i64, i64* %34
%252 = add i64 %250, %251
store i64 %252, i64* %36
%253 = load i64, i64* %35
%254 = load i64, i64* %36
%255 = add i64 %253, %254
store i64 %255, i64* %38
%256 = load i64, i64* %37
%257 = load i64, i64* %38
%258 = add i64 %256, %257
store i64 %258, i64* %75
%259 = load i64, i64* %39
%260 = load i64, i64* %40
%261 = add i64 %259, %260
store i64 %261, i64* %42
%262 = load i64, i64* %41
%263 = load i64, i64* %42
%264 = add i64 %262, %263
store i64 %264, i64* %44
%265 = load i64, i64* %43
%266 = load i64, i64* %44
%267 = add i64 %265, %266
store i64 %267, i64* %76
%268 = load i64, i64* %45
%269 = load i64, i64* %46
%270 = add i64 %268, %269
store i64 %270, i64* %48
%271 = load i64, i64* %47
%272 = load i64, i64* %48
%273 = add i64 %271, %272
store i64 %273, i64* %50
%274 = load i64, i64* %49
%275 = load i64, i64* %50
%276 = add i64 %274, %275
store i64 %276, i64* %77
%277 = load i64, i64* %51
%278 = load i64, i64* %52
%279 = add i64 %277, %278
store i64 %279, i64* %54
%280 = load i64, i64* %53
%281 = load i64, i64* %54
%282 = add i64 %280, %281
store i64 %282, i64* %56
%283 = load i64, i64* %55
%284 = load i64, i64* %56
%285 = add i64 %283, %284
store i64 %285, i64* %78
%286 = load i64, i64* %57
%287 = load i64, i64* %58
%288 = add i64 %286, %287
store i64 %288, i64* %60
%289 = load i64, i64* %59
%290 = load i64, i64* %60
%291 = add i64 %289, %290
store i64 %291, i64* %62
%292 = load i64, i64* %61
%293 = load i64, i64* %62
%294 = add i64 %292, %293
store i64 %294, i64* %79
%295 = load i64, i64* %63
%296 = load i64, i64* %64
%297 = add i64 %295, %296
store i64 %297, i64* %66
%298 = load i64, i64* %65
%299 = load i64, i64* %66
%300 = add i64 %298, %299
store i64 %300, i64* %68
%301 = load i64, i64* %67
%302 = load i64, i64* %68
%303 = add i64 %301, %302
store i64 %303, i64* %80
%304 = load i64, i64* %69
%305 = load i64, i64* %70
%306 = add i64 %304, %305
store i64 %306, i64* %72
%307 = load i64, i64* %71
%308 = load i64, i64* %72
%309 = add i64 %307, %308
store i64 %309, i64* %74
%310 = load i64, i64* %73
%311 = load i64, i64* %74
%312 = add i64 %310, %311
store i64 %312, i64* %81
%313 = load i64, i64* %75
store i64 %313, i64* %82
%314 = load i64, i64* %76
store i64 %314, i64* %83
%315 = load i64, i64* %77
store i64 %315, i64* %84
%316 = load i64, i64* %78
store i64 %316, i64* %85
%317 = load i64, i64* %79
store i64 %317, i64* %86
%318 = load i64, i64* %80
store i64 %318, i64* %87
%319 = load i64, i64* %81
store i64 %319, i64* %88
%320 = load i64, i64* %3
%321 = add i64 %320, 0
%322 = trunc i64 %321 to i32
%323 = load i64, i64* %82
%324 = call i32 @_br2_store(i32 %322, i64 %323, i32 8)
%325 = load i64, i64* %3
%326 = add i64 %325, 4
%327 = trunc i64 %326 to i32
%328 = load i64, i64* %83
%329 = call i32 @_br2_store(i32 %327, i64 %328, i32 8)
%330 = load i64, i64* %3
%331 = add i64 %330, 8
%332 = trunc i64 %331 to i32
%333 = load i64, i64* %84
%334 = call i32 @_br2_store(i32 %332, i64 %333, i32 8)
%335 = load i64, i64* %3
%336 = add i64 %335, 12
%337 = trunc i64 %336 to i32
%338 = load i64, i64* %85
%339 = call i32 @_br2_store(i32 %337, i64 %338, i32 8)
%340 = load i64, i64* %3
%341 = add i64 %340, 16
%342 = trunc i64 %341 to i32
%343 = load i64, i64* %86
%344 = call i32 @_br2_store(i32 %342, i64 %343, i32 8)
%345 = load i64, i64* %3
%346 = add i64 %345, 20
%347 = trunc i64 %346 to i32
%348 = load i64, i64* %87
%349 = call i32 @_br2_store(i32 %347, i64 %348, i32 8)
%350 = load i64, i64* %3
%351 = add i64 %350, 24
%352 = trunc i64 %351 to i32
%353 = load i64, i64* %88
%354 = call i32 @_br2_store(i32 %352, i64 %353, i32 8)
ret void
}

LLVM IR (-O2):
define void @internal_fiat_p224_from_bytes(i64 %0, i64 %1) {
%3 = trunc i64 %1 to i32
%4 = tail call i64 @_br2_load(i32 %3, i32 1)
%5 = add i32 %3, 1
%6 = tail call i64 @_br2_load(i32 %5, i32 1)
%7 = add i32 %3, 2
%8 = tail call i64 @_br2_load(i32 %7, i32 1)
%9 = add i32 %3, 3
%10 = tail call i64 @_br2_load(i32 %9, i32 1)
%11 = add i32 %3, 4
%12 = tail call i64 @_br2_load(i32 %11, i32 1)
%13 = add i32 %3, 5
%14 = tail call i64 @_br2_load(i32 %13, i32 1)
%15 = add i32 %3, 6
%16 = tail call i64 @_br2_load(i32 %15, i32 1)
%17 = add i32 %3, 7
%18 = tail call i64 @_br2_load(i32 %17, i32 1)
%19 = add i32 %3, 8
%20 = tail call i64 @_br2_load(i32 %19, i32 1)
%21 = add i32 %3, 9
%22 = tail call i64 @_br2_load(i32 %21, i32 1)
%23 = add i32 %3, 10
%24 = tail call i64 @_br2_load(i32 %23, i32 1)
%25 = add i32 %3, 11
%26 = tail call i64 @_br2_load(i32 %25, i32 1)
%27 = add i32 %3, 12
%28 = tail call i64 @_br2_load(i32 %27, i32 1)
%29 = add i32 %3, 13
%30 = tail call i64 @_br2_load(i32 %29, i32 1)
%31 = add i32 %3, 14
%32 = tail call i64 @_br2_load(i32 %31, i32 1)
%33 = add i32 %3, 15
%34 = tail call i64 @_br2_load(i32 %33, i32 1)
%35 = add i32 %3, 16
%36 = tail call i64 @_br2_load(i32 %35, i32 1)
%37 = add i32 %3, 17
%38 = tail call i64 @_br2_load(i32 %37, i32 1)
%39 = add i32 %3, 18
%40 = tail call i64 @_br2_load(i32 %39, i32 1)
%41 = add i32 %3, 19
%42 = tail call i64 @_br2_load(i32 %41, i32 1)
%43 = add i32 %3, 20
%44 = tail call i64 @_br2_load(i32 %43, i32 1)
%45 = add i32 %3, 21
%46 = tail call i64 @_br2_load(i32 %45, i32 1)
%47 = add i32 %3, 22
%48 = tail call i64 @_br2_load(i32 %47, i32 1)
%49 = add i32 %3, 23
%50 = tail call i64 @_br2_load(i32 %49, i32 1)
%51 = add i32 %3, 24
%52 = tail call i64 @_br2_load(i32 %51, i32 1)
%53 = add i32 %3, 25
%54 = tail call i64 @_br2_load(i32 %53, i32 1)
%55 = add i32 %3, 26
%56 = tail call i64 @_br2_load(i32 %55, i32 1)
%57 = add i32 %3, 27
%58 = tail call i64 @_br2_load(i32 %57, i32 1)
%59 = shl i64 %58, 24
%60 = shl i64 %56, 16
%61 = shl i64 %54, 8
%62 = shl i64 %50, 24
%63 = shl i64 %48, 16
%64 = shl i64 %46, 8
%65 = shl i64 %42, 24
%66 = shl i64 %40, 16
%67 = shl i64 %38, 8
%68 = shl i64 %34, 24
%69 = shl i64 %32, 16
%70 = shl i64 %30, 8
%71 = shl i64 %26, 24
%72 = shl i64 %24, 16
%73 = shl i64 %22, 8
%74 = shl i64 %18, 24
%75 = shl i64 %16, 16
%76 = shl i64 %14, 8
%77 = shl i64 %10, 24
%78 = shl i64 %8, 16
%79 = shl i64 %6, 8
%80 = add i64 %79, %4
%81 = add i64 %80, %78
%82 = add i64 %81, %77
%83 = add i64 %76, %12
%84 = add i64 %83, %75
%85 = add i64 %84, %74
%86 = add i64 %73, %20
%87 = add i64 %86, %72
%88 = add i64 %87, %71
%89 = add i64 %70, %28
%90 = add i64 %89, %69
%91 = add i64 %90, %68
%92 = add i64 %67, %36
%93 = add i64 %92, %66
%94 = add i64 %93, %65
%95 = add i64 %64, %44
%96 = add i64 %95, %63
%97 = add i64 %96, %62
%98 = add i64 %61, %52
%99 = add i64 %98, %60
%100 = add i64 %99, %59
%101 = trunc i64 %0 to i32
%102 = tail call i32 @_br2_store(i32 %101, i64 %82, i32 8)
%103 = add i32 %101, 4
%104 = tail call i32 @_br2_store(i32 %103, i64 %85, i32 8)
%105 = add i32 %101, 8
%106 = tail call i32 @_br2_store(i32 %105, i64 %88, i32 8)
%107 = add i32 %101, 12
%108 = tail call i32 @_br2_store(i32 %107, i64 %91, i32 8)
%109 = add i32 %101, 16
%110 = tail call i32 @_br2_store(i32 %109, i64 %94, i32 8)
%111 = add i32 %101, 20
%112 = tail call i32 @_br2_store(i32 %111, i64 %97, i32 8)
%113 = add i32 %101, 24
%114 = tail call i32 @_br2_store(i32 %113, i64 %100, i32 8)
ret void
}