#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 x99;
typedef uintptr_t x97;
typedef uintptr_t x93;
typedef uintptr_t x91;
typedef uintptr_t x9;
typedef uintptr_t x89;
typedef uintptr_t x86;
typedef uintptr_t x84;
typedef uintptr_t x82;
typedef uintptr_t x79;
typedef uintptr_t x77;
typedef uintptr_t x75;
typedef uintptr_t x72;
typedef uintptr_t x70;
typedef uintptr_t x7;
typedef uintptr_t x68;
typedef uintptr_t x67;
typedef uintptr_t x66;
typedef uintptr_t x65;
typedef uintptr_t x64;
typedef uintptr_t x63;
typedef uintptr_t x62;
typedef uintptr_t x58;
typedef uintptr_t x57;
typedef uintptr_t x56;
typedef uintptr_t x55;
typedef uintptr_t x51;
typedef uintptr_t x50;
typedef uintptr_t x5;
typedef uintptr_t x49;
typedef uintptr_t x48;
typedef uintptr_t x44;
typedef uintptr_t x43;
typedef uintptr_t x42;
typedef uintptr_t x41;
typedef uintptr_t x40;
typedef uintptr_t x4;
typedef uintptr_t x38;
typedef uintptr_t x37;
typedef uintptr_t x32;
typedef uintptr_t x31;
typedef uintptr_t x30;
typedef uintptr_t x3;
typedef uintptr_t x25;
typedef uintptr_t x24;
typedef uintptr_t x23;
typedef uintptr_t x2;
typedef uintptr_t x18;
typedef uintptr_t x17;
typedef uintptr_t x16;
typedef uintptr_t x11;
typedef uintptr_t x10;
typedef uintptr_t x1;
typedef uintptr_t x0;
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_poly1305_to_bytes(uintptr_t out0, uintptr_t in0) {
  uintptr_t x0, x6, x5, x1, x8, x9, x10, x12, x13, x11, x2, x15, x16, x17, x19,
      x20, x18, x3, x22, x23, x24, x26, x27, x25, x4, x29, x30, x31, x33, x34,
      x32, x36, x7, x38, x39, x41, x14, x42, x43, x45, x44, x46, x48, x21, x49,
      x50, x52, x51, x53, x55, x28, x56, x57, x59, x58, x60, x62, x35, x63, x37,
      x64, x61, x54, x47, x40, x70, x72, x68, x74, x75, x77, x79, x67, x81, x82,
      x84, x86, x66, x88, x89, x91, x93, x65, x97, x99, x69, x71, x73, x76, x78,
      x80, x83, x85, x87, x90, x92, x94, x95, x96, x98, x100, x101, x102, x103,
      x104, x105, x106, x107, x108, x109, x110, x111, x112, x113, x114, x115,
      x116, x117, x118;
  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 = (x0) - ((uintptr_t)67108859ULL);
  x6 = (x0) < (x5);
  x7 = (x5) & ((uintptr_t)67108863ULL);
  x8 = ((x6) << ((uintptr_t)6ULL)) - ((x5) >> ((uintptr_t)26ULL));
  x9 = (x1) - ((uintptr_t)67108863ULL);
  x10 = (x1) < (x9);
  x11 = (x9) - (x8);
  x12 = (x9) < (x11);
  x13 = (x10) + (x12);
  x14 = (x11) & ((uintptr_t)67108863ULL);
  x15 = ((x13) << ((uintptr_t)6ULL)) - ((x11) >> ((uintptr_t)26ULL));
  x16 = (x2) - ((uintptr_t)67108863ULL);
  x17 = (x2) < (x16);
  x18 = (x16) - (x15);
  x19 = (x16) < (x18);
  x20 = (x17) + (x19);
  x21 = (x18) & ((uintptr_t)67108863ULL);
  x22 = ((x20) << ((uintptr_t)6ULL)) - ((x18) >> ((uintptr_t)26ULL));
  x23 = (x3) - ((uintptr_t)67108863ULL);
  x24 = (x3) < (x23);
  x25 = (x23) - (x22);
  x26 = (x23) < (x25);
  x27 = (x24) + (x26);
  x28 = (x25) & ((uintptr_t)67108863ULL);
  x29 = ((x27) << ((uintptr_t)6ULL)) - ((x25) >> ((uintptr_t)26ULL));
  x30 = (x4) - ((uintptr_t)67108863ULL);
  x31 = (x4) < (x30);
  x32 = (x30) - (x29);
  x33 = (x30) < (x32);
  x34 = (x31) + (x33);
  x35 = (x32) & ((uintptr_t)67108863ULL);
  x36 = ((x34) << ((uintptr_t)6ULL)) - ((x32) >> ((uintptr_t)26ULL));
  x37 = ((uintptr_t)-1ULL) + ((x36) == ((uintptr_t)0ULL));
  x38 = (x7) + ((x37) & ((uintptr_t)67108859ULL));
  x39 = (x38) < (x7);
  x40 = (x38) & ((uintptr_t)67108863ULL);
  x41 = ((x38) >> ((uintptr_t)26ULL)) + ((x39) << ((uintptr_t)6ULL));
  x42 = (x41) + (x14);
  x43 = (x42) < (x14);
  x44 = (x42) + ((x37) & ((uintptr_t)67108863ULL));
  x45 = (x44) < ((x37) & ((uintptr_t)67108863ULL));
  x46 = (x43) + (x45);
  x47 = (x44) & ((uintptr_t)67108863ULL);
  x48 = ((x44) >> ((uintptr_t)26ULL)) + ((x46) << ((uintptr_t)6ULL));
  x49 = (x48) + (x21);
  x50 = (x49) < (x21);
  x51 = (x49) + ((x37) & ((uintptr_t)67108863ULL));
  x52 = (x51) < ((x37) & ((uintptr_t)67108863ULL));
  x53 = (x50) + (x52);
  x54 = (x51) & ((uintptr_t)67108863ULL);
  x55 = ((x51) >> ((uintptr_t)26ULL)) + ((x53) << ((uintptr_t)6ULL));
  x56 = (x55) + (x28);
  x57 = (x56) < (x28);
  x58 = (x56) + ((x37) & ((uintptr_t)67108863ULL));
  x59 = (x58) < ((x37) & ((uintptr_t)67108863ULL));
  x60 = (x57) + (x59);
  x61 = (x58) & ((uintptr_t)67108863ULL);
  x62 = ((x58) >> ((uintptr_t)26ULL)) + ((x60) << ((uintptr_t)6ULL));
  x63 = (x62) + (x35);
  x64 = (x63) + ((x37) & ((uintptr_t)67108863ULL));
  x65 = (x64) & ((uintptr_t)67108863ULL);
  x66 = (x61) << ((uintptr_t)6ULL);
  x67 = (x54) << ((uintptr_t)4ULL);
  x68 = (x47) << ((uintptr_t)2ULL);
  x69 = (x40) & ((uintptr_t)255ULL);
  x70 = (x40) >> ((uintptr_t)8ULL);
  x71 = (x70) & ((uintptr_t)255ULL);
  x72 = (x70) >> ((uintptr_t)8ULL);
  x73 = (x72) & ((uintptr_t)255ULL);
  x74 = (x72) >> ((uintptr_t)8ULL);
  x75 = (x68) + (x74);
  x76 = (x75) & ((uintptr_t)255ULL);
  x77 = (x75) >> ((uintptr_t)8ULL);
  x78 = (x77) & ((uintptr_t)255ULL);
  x79 = (x77) >> ((uintptr_t)8ULL);
  x80 = (x79) & ((uintptr_t)255ULL);
  x81 = (x79) >> ((uintptr_t)8ULL);
  x82 = (x67) + (x81);
  x83 = (x82) & ((uintptr_t)255ULL);
  x84 = (x82) >> ((uintptr_t)8ULL);
  x85 = (x84) & ((uintptr_t)255ULL);
  x86 = (x84) >> ((uintptr_t)8ULL);
  x87 = (x86) & ((uintptr_t)255ULL);
  x88 = (x86) >> ((uintptr_t)8ULL);
  x89 = (x66) + (x88);
  x90 = (x89) & ((uintptr_t)255ULL);
  x91 = (x89) >> ((uintptr_t)8ULL);
  x92 = (x91) & ((uintptr_t)255ULL);
  x93 = (x91) >> ((uintptr_t)8ULL);
  x94 = (x93) & ((uintptr_t)255ULL);
  x95 = (x93) >> ((uintptr_t)8ULL);
  x96 = (x65) & ((uintptr_t)255ULL);
  x97 = (x65) >> ((uintptr_t)8ULL);
  x98 = (x97) & ((uintptr_t)255ULL);
  x99 = (x97) >> ((uintptr_t)8ULL);
  x100 = (x99) & ((uintptr_t)255ULL);
  x101 = (x99) >> ((uintptr_t)8ULL);
  x102 = x69;
  x103 = x71;
  x104 = x73;
  x105 = x76;
  x106 = x78;
  x107 = x80;
  x108 = x83;
  x109 = x85;
  x110 = x87;
  x111 = x90;
  x112 = x92;
  x113 = x94;
  x114 = x95;
  x115 = x96;
  x116 = x98;
  x117 = x100;
  x118 = x101;
  _br2_store((out0) + ((uintptr_t)0ULL), x102, 1);
  _br2_store((out0) + ((uintptr_t)1ULL), x103, 1);
  _br2_store((out0) + ((uintptr_t)2ULL), x104, 1);
  _br2_store((out0) + ((uintptr_t)3ULL), x105, 1);
  _br2_store((out0) + ((uintptr_t)4ULL), x106, 1);
  _br2_store((out0) + ((uintptr_t)5ULL), x107, 1);
  _br2_store((out0) + ((uintptr_t)6ULL), x108, 1);
  _br2_store((out0) + ((uintptr_t)7ULL), x109, 1);
  _br2_store((out0) + ((uintptr_t)8ULL), x110, 1);
  _br2_store((out0) + ((uintptr_t)9ULL), x111, 1);
  _br2_store((out0) + ((uintptr_t)10ULL), x112, 1);
  _br2_store((out0) + ((uintptr_t)11ULL), x113, 1);
  _br2_store((out0) + ((uintptr_t)12ULL), x114, 1);
  _br2_store((out0) + ((uintptr_t)13ULL), x115, 1);
  _br2_store((out0) + ((uintptr_t)14ULL), x116, 1);
  _br2_store((out0) + ((uintptr_t)15ULL), x117, 1);
  _br2_store((out0) + ((uintptr_t)16ULL), x118, 1);
  return;
}


x86 assembly (clang, -O0):
<internal_fiat_poly1305_to_bytes>:
push   %rbp
mov    %rsp,%rbp
sub    $0x3d0,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    -0x10(%rbp),%rax
add    $0x0,%rax
mov    %eax,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
add    $0x4,%rax
mov    %eax,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
add    $0x8,%rax
mov    %eax,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0x68(%rbp)
mov    -0x10(%rbp),%rax
add    $0xc,%rax
mov    %eax,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0xa0(%rbp)
mov    -0x10(%rbp),%rax
add    $0x10,%rax
mov    %eax,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,-0xd8(%rbp)
mov    -0x18(%rbp),%rax
sub    $0x3fffffb,%rax
mov    %rax,-0x28(%rbp)
mov    -0x18(%rbp),%rax
cmp    -0x28(%rbp),%rax
setb   %al
and    $0x1,%al
movzbl %al,%eax
cltq
mov    %rax,-0x20(%rbp)
mov    -0x28(%rbp),%rax
and    $0x3ffffff,%rax
mov    %rax,-0x118(%rbp)
mov    -0x20(%rbp),%rax
shl    $0x6,%rax
mov    -0x28(%rbp),%rcx
shr    $0x1a,%rcx
sub    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
sub    $0x3ffffff,%rax
mov    %rax,-0x40(%rbp)
mov    -0x30(%rbp),%rax
cmp    -0x40(%rbp),%rax
setb   %al
and    $0x1,%al
movzbl %al,%eax
cltq
mov    %rax,-0x48(%rbp)
mov    -0x40(%rbp),%rax
sub    -0x38(%rbp),%rax
mov    %rax,-0x60(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x60(%rbp),%rax
setb   %al
and    $0x1,%al
movzbl %al,%eax
cltq
mov    %rax,-0x50(%rbp)
mov    -0x48(%rbp),%rax
add    -0x50(%rbp),%rax
mov    %rax,-0x58(%rbp)
mov    -0x60(%rbp),%rax
and    $0x3ffffff,%rax
mov    %rax,-0x138(%rbp)
mov    -0x58(%rbp),%rax
shl    $0x6,%rax
mov    -0x60(%rbp),%rcx
shr    $0x1a,%rcx
sub    %rcx,%rax
mov    %rax,-0x70(%rbp)
mov    -0x68(%rbp),%rax
sub    $0x3ffffff,%rax
mov    %rax,-0x78(%rbp)
mov    -0x68(%rbp),%rax
cmp    -0x78(%rbp),%rax
setb   %al
and    $0x1,%al
movzbl %al,%eax
cltq
mov    %rax,-0x80(%rbp)
mov    -0x78(%rbp),%rax
sub    -0x70(%rbp),%rax
mov    %rax,-0x98(%rbp)
mov    -0x78(%rbp),%rax
cmp    -0x98(%rbp),%rax
setb   %al
and    $0x1,%al
movzbl %al,%eax
cltq
mov    %rax,-0x88(%rbp)
mov    -0x80(%rbp),%rax
add    -0x88(%rbp),%rax
mov    %rax,-0x90(%rbp)
mov    -0x98(%rbp),%rax
and    $0x3ffffff,%rax
mov    %rax,-0x170(%rbp)
mov    -0x90(%rbp),%rax
shl    $0x6,%rax
mov    -0x98(%rbp),%rcx
shr    $0x1a,%rcx
sub    %rcx,%rax
mov    %rax,-0xa8(%rbp)
mov    -0xa0(%rbp),%rax
sub    $0x3ffffff,%rax
mov    %rax,-0xb0(%rbp)
mov    -0xa0(%rbp),%rax
cmp    -0xb0(%rbp),%rax
setb   %al
and    $0x1,%al
movzbl %al,%eax
cltq
mov    %rax,-0xb8(%rbp)
mov    -0xb0(%rbp),%rax
sub    -0xa8(%rbp),%rax
mov    %rax,-0xd0(%rbp)
mov    -0xb0(%rbp),%rax
cmp    -0xd0(%rbp),%rax
setb   %al
and    $0x1,%al
movzbl %al,%eax
cltq
mov    %rax,-0xc0(%rbp)
mov    -0xb8(%rbp),%rax
add    -0xc0(%rbp),%rax
mov    %rax,-0xc8(%rbp)
mov    -0xd0(%rbp),%rax
and    $0x3ffffff,%rax
mov    %rax,-0x1a8(%rbp)
mov    -0xc8(%rbp),%rax
shl    $0x6,%rax
mov    -0xd0(%rbp),%rcx
shr    $0x1a,%rcx
sub    %rcx,%rax
mov    %rax,-0xe0(%rbp)
mov    -0xd8(%rbp),%rax
sub    $0x3ffffff,%rax
mov    %rax,-0xe8(%rbp)
mov    -0xd8(%rbp),%rax
cmp    -0xe8(%rbp),%rax
setb   %al
and    $0x1,%al
movzbl %al,%eax
cltq
mov    %rax,-0xf0(%rbp)
mov    -0xe8(%rbp),%rax
sub    -0xe0(%rbp),%rax
mov    %rax,-0x108(%rbp)
mov    -0xe8(%rbp),%rax
cmp    -0x108(%rbp),%rax
setb   %al
and    $0x1,%al
movzbl %al,%eax
cltq
mov    %rax,-0xf8(%rbp)
mov    -0xf0(%rbp),%rax
add    -0xf8(%rbp),%rax
mov    %rax,-0x100(%rbp)
mov    -0x108(%rbp),%rax
and    $0x3ffffff,%rax
mov    %rax,-0x1e0(%rbp)
mov    -0x100(%rbp),%rax
shl    $0x6,%rax
mov    -0x108(%rbp),%rcx
shr    $0x1a,%rcx
sub    %rcx,%rax
mov    %rax,-0x110(%rbp)
cmpq   $0x0,-0x110(%rbp)
sete   %al
and    $0x1,%al
movzbl %al,%eax
cltq
add    $0xffffffffffffffff,%rax
mov    %rax,-0x1f0(%rbp)
mov    -0x118(%rbp),%rax
mov    -0x1f0(%rbp),%rcx
and    $0x3fffffb,%rcx
add    %rcx,%rax
mov    %rax,-0x120(%rbp)
mov    -0x120(%rbp),%rax
cmp    -0x118(%rbp),%rax
setb   %al
and    $0x1,%al
movzbl %al,%eax
cltq
mov    %rax,-0x128(%rbp)
mov    -0x120(%rbp),%rax
and    $0x3ffffff,%rax
mov    %rax,-0x218(%rbp)
mov    -0x120(%rbp),%rax
shr    $0x1a,%rax
mov    -0x128(%rbp),%rcx
shl    $0x6,%rcx
add    %rcx,%rax
mov    %rax,-0x130(%rbp)
mov    -0x130(%rbp),%rax
add    -0x138(%rbp),%rax
mov    %rax,-0x140(%rbp)
mov    -0x140(%rbp),%rax
cmp    -0x138(%rbp),%rax
setb   %al
and    $0x1,%al
movzbl %al,%eax
cltq
mov    %rax,-0x148(%rbp)
mov    -0x140(%rbp),%rax
mov    -0x1f0(%rbp),%rcx
and    $0x3ffffff,%rcx
add    %rcx,%rax
mov    %rax,-0x158(%rbp)
mov    -0x158(%rbp),%rax
mov    -0x1f0(%rbp),%rcx
and    $0x3ffffff,%rcx
cmp    %rcx,%rax
setb   %al
and    $0x1,%al
movzbl %al,%eax
cltq
mov    %rax,-0x150(%rbp)
mov    -0x148(%rbp),%rax
add    -0x150(%rbp),%rax
mov    %rax,-0x160(%rbp)
mov    -0x158(%rbp),%rax
and    $0x3ffffff,%rax
mov    %rax,-0x210(%rbp)
mov    -0x158(%rbp),%rax
shr    $0x1a,%rax
mov    -0x160(%rbp),%rcx
shl    $0x6,%rcx
add    %rcx,%rax
mov    %rax,-0x168(%rbp)
mov    -0x168(%rbp),%rax
add    -0x170(%rbp),%rax
mov    %rax,-0x178(%rbp)
mov    -0x178(%rbp),%rax
cmp    -0x170(%rbp),%rax
setb   %al
and    $0x1,%al
movzbl %al,%eax
cltq
mov    %rax,-0x180(%rbp)
mov    -0x178(%rbp),%rax
mov    -0x1f0(%rbp),%rcx
and    $0x3ffffff,%rcx
add    %rcx,%rax
mov    %rax,-0x190(%rbp)
mov    -0x190(%rbp),%rax
mov    -0x1f0(%rbp),%rcx
and    $0x3ffffff,%rcx
cmp    %rcx,%rax
setb   %al
and    $0x1,%al
movzbl %al,%eax
cltq
mov    %rax,-0x188(%rbp)
mov    -0x180(%rbp),%rax
add    -0x188(%rbp),%rax
mov    %rax,-0x198(%rbp)
mov    -0x190(%rbp),%rax
and    $0x3ffffff,%rax
mov    %rax,-0x208(%rbp)
mov    -0x190(%rbp),%rax
shr    $0x1a,%rax
mov    -0x198(%rbp),%rcx
shl    $0x6,%rcx
add    %rcx,%rax
mov    %rax,-0x1a0(%rbp)
mov    -0x1a0(%rbp),%rax
add    -0x1a8(%rbp),%rax
mov    %rax,-0x1b0(%rbp)
mov    -0x1b0(%rbp),%rax
cmp    -0x1a8(%rbp),%rax
setb   %al
and    $0x1,%al
movzbl %al,%eax
cltq
mov    %rax,-0x1b8(%rbp)
mov    -0x1b0(%rbp),%rax
mov    -0x1f0(%rbp),%rcx
and    $0x3ffffff,%rcx
add    %rcx,%rax
mov    %rax,-0x1c8(%rbp)
mov    -0x1c8(%rbp),%rax
mov    -0x1f0(%rbp),%rcx
and    $0x3ffffff,%rcx
cmp    %rcx,%rax
setb   %al
and    $0x1,%al
movzbl %al,%eax
cltq
mov    %rax,-0x1c0(%rbp)
mov    -0x1b8(%rbp),%rax
add    -0x1c0(%rbp),%rax
mov    %rax,-0x1d0(%rbp)
mov    -0x1c8(%rbp),%rax
and    $0x3ffffff,%rax
mov    %rax,-0x200(%rbp)
mov    -0x1c8(%rbp),%rax
shr    $0x1a,%rax
mov    -0x1d0(%rbp),%rcx
shl    $0x6,%rcx
add    %rcx,%rax
mov    %rax,-0x1d8(%rbp)
mov    -0x1d8(%rbp),%rax
add    -0x1e0(%rbp),%rax
mov    %rax,-0x1e8(%rbp)
mov    -0x1e8(%rbp),%rax
mov    -0x1f0(%rbp),%rcx
and    $0x3ffffff,%rcx
add    %rcx,%rax
mov    %rax,-0x1f8(%rbp)
mov    -0x1f8(%rbp),%rax
and    $0x3ffffff,%rax
mov    %rax,-0x2a8(%rbp)
mov    -0x200(%rbp),%rax
shl    $0x6,%rax
mov    %rax,-0x280(%rbp)
mov    -0x208(%rbp),%rax
shl    $0x4,%rax
mov    %rax,-0x258(%rbp)
mov    -0x210(%rbp),%rax
shl    $0x2,%rax
mov    %rax,-0x230(%rbp)
mov    -0x218(%rbp),%rax
and    $0xff,%rax
mov    %rax,-0x2c0(%rbp)
mov    -0x218(%rbp),%rax
shr    $0x8,%rax
mov    %rax,-0x220(%rbp)
mov    -0x220(%rbp),%rax
and    $0xff,%rax
mov    %rax,-0x2c8(%rbp)
mov    -0x220(%rbp),%rax
shr    $0x8,%rax
mov    %rax,-0x228(%rbp)
mov    -0x228(%rbp),%rax
and    $0xff,%rax
mov    %rax,-0x2d0(%rbp)
mov    -0x228(%rbp),%rax
shr    $0x8,%rax
mov    %rax,-0x238(%rbp)
mov    -0x230(%rbp),%rax
add    -0x238(%rbp),%rax
mov    %rax,-0x240(%rbp)
mov    -0x240(%rbp),%rax
and    $0xff,%rax
mov    %rax,-0x2d8(%rbp)
mov    -0x240(%rbp),%rax
shr    $0x8,%rax
mov    %rax,-0x248(%rbp)
mov    -0x248(%rbp),%rax
and    $0xff,%rax
mov    %rax,-0x2e0(%rbp)
mov    -0x248(%rbp),%rax
shr    $0x8,%rax
mov    %rax,-0x250(%rbp)
mov    -0x250(%rbp),%rax
and    $0xff,%rax
mov    %rax,-0x2e8(%rbp)
mov    -0x250(%rbp),%rax
shr    $0x8,%rax
mov    %rax,-0x260(%rbp)
mov    -0x258(%rbp),%rax
add    -0x260(%rbp),%rax
mov    %rax,-0x268(%rbp)
mov    -0x268(%rbp),%rax
and    $0xff,%rax
mov    %rax,-0x2f0(%rbp)
mov    -0x268(%rbp),%rax
shr    $0x8,%rax
mov    %rax,-0x270(%rbp)
mov    -0x270(%rbp),%rax
and    $0xff,%rax
mov    %rax,-0x2f8(%rbp)
mov    -0x270(%rbp),%rax
shr    $0x8,%rax
mov    %rax,-0x278(%rbp)
mov    -0x278(%rbp),%rax
and    $0xff,%rax
mov    %rax,-0x300(%rbp)
mov    -0x278(%rbp),%rax
shr    $0x8,%rax
mov    %rax,-0x288(%rbp)
mov    -0x280(%rbp),%rax
add    -0x288(%rbp),%rax
mov    %rax,-0x290(%rbp)
mov    -0x290(%rbp),%rax
and    $0xff,%rax
mov    %rax,-0x308(%rbp)
mov    -0x290(%rbp),%rax
shr    $0x8,%rax
mov    %rax,-0x298(%rbp)
mov    -0x298(%rbp),%rax
and    $0xff,%rax
mov    %rax,-0x310(%rbp)
mov    -0x298(%rbp),%rax
shr    $0x8,%rax
mov    %rax,-0x2a0(%rbp)
mov    -0x2a0(%rbp),%rax
and    $0xff,%rax
mov    %rax,-0x318(%rbp)
mov    -0x2a0(%rbp),%rax
shr    $0x8,%rax
mov    %rax,-0x320(%rbp)
mov    -0x2a8(%rbp),%rax
and    $0xff,%rax
mov    %rax,-0x328(%rbp)
mov    -0x2a8(%rbp),%rax
shr    $0x8,%rax
mov    %rax,-0x2b0(%rbp)
mov    -0x2b0(%rbp),%rax
and    $0xff,%rax
mov    %rax,-0x330(%rbp)
mov    -0x2b0(%rbp),%rax
shr    $0x8,%rax
mov    %rax,-0x2b8(%rbp)
mov    -0x2b8(%rbp),%rax
and    $0xff,%rax
mov    %rax,-0x338(%rbp)
mov    -0x2b8(%rbp),%rax
shr    $0x8,%rax
mov    %rax,-0x340(%rbp)
mov    -0x2c0(%rbp),%rax
mov    %rax,-0x348(%rbp)
mov    -0x2c8(%rbp),%rax
mov    %rax,-0x350(%rbp)
mov    -0x2d0(%rbp),%rax
mov    %rax,-0x358(%rbp)
mov    -0x2d8(%rbp),%rax
mov    %rax,-0x360(%rbp)
mov    -0x2e0(%rbp),%rax
mov    %rax,-0x368(%rbp)
mov    -0x2e8(%rbp),%rax
mov    %rax,-0x370(%rbp)
mov    -0x2f0(%rbp),%rax
mov    %rax,-0x378(%rbp)
mov    -0x2f8(%rbp),%rax
mov    %rax,-0x380(%rbp)
mov    -0x300(%rbp),%rax
mov    %rax,-0x388(%rbp)
mov    -0x308(%rbp),%rax
mov    %rax,-0x390(%rbp)
mov    -0x310(%rbp),%rax
mov    %rax,-0x398(%rbp)
mov    -0x318(%rbp),%rax
mov    %rax,-0x3a0(%rbp)
mov    -0x320(%rbp),%rax
mov    %rax,-0x3a8(%rbp)
mov    -0x328(%rbp),%rax
mov    %rax,-0x3b0(%rbp)
mov    -0x330(%rbp),%rax
mov    %rax,-0x3b8(%rbp)
mov    -0x338(%rbp),%rax
mov    %rax,-0x3c0(%rbp)
mov    -0x340(%rbp),%rax
mov    %rax,-0x3c8(%rbp)
mov    -0x8(%rbp),%rax
add    $0x0,%rax
mov    %eax,%edi
mov    -0x348(%rbp),%rsi
mov    $0x1,%edx
call   1040 <_br2_store@plt>
mov    -0x8(%rbp),%rax
add    $0x1,%rax
mov    %eax,%edi
mov    -0x350(%rbp),%rsi
mov    $0x1,%edx
call   1040 <_br2_store@plt>
mov    -0x8(%rbp),%rax
add    $0x2,%rax
mov    %eax,%edi
mov    -0x358(%rbp),%rsi
mov    $0x1,%edx
call   1040 <_br2_store@plt>
mov    -0x8(%rbp),%rax
add    $0x3,%rax
mov    %eax,%edi
mov    -0x360(%rbp),%rsi
mov    $0x1,%edx
call   1040 <_br2_store@plt>
mov    -0x8(%rbp),%rax
add    $0x4,%rax
mov    %eax,%edi
mov    -0x368(%rbp),%rsi
mov    $0x1,%edx
call   1040 <_br2_store@plt>
mov    -0x8(%rbp),%rax
add    $0x5,%rax
mov    %eax,%edi
mov    -0x370(%rbp),%rsi
mov    $0x1,%edx
call   1040 <_br2_store@plt>
mov    -0x8(%rbp),%rax
add    $0x6,%rax
mov    %eax,%edi
mov    -0x378(%rbp),%rsi
mov    $0x1,%edx
call   1040 <_br2_store@plt>
mov    -0x8(%rbp),%rax
add    $0x7,%rax
mov    %eax,%edi
mov    -0x380(%rbp),%rsi
mov    $0x1,%edx
call   1040 <_br2_store@plt>
mov    -0x8(%rbp),%rax
add    $0x8,%rax
mov    %eax,%edi
mov    -0x388(%rbp),%rsi
mov    $0x1,%edx
call   1040 <_br2_store@plt>
mov    -0x8(%rbp),%rax
add    $0x9,%rax
mov    %eax,%edi
mov    -0x390(%rbp),%rsi
mov    $0x1,%edx
call   1040 <_br2_store@plt>
mov    -0x8(%rbp),%rax
add    $0xa,%rax
mov    %eax,%edi
mov    -0x398(%rbp),%rsi
mov    $0x1,%edx
call   1040 <_br2_store@plt>
mov    -0x8(%rbp),%rax
add    $0xb,%rax
mov    %eax,%edi
mov    -0x3a0(%rbp),%rsi
mov    $0x1,%edx
call   1040 <_br2_store@plt>
mov    -0x8(%rbp),%rax
add    $0xc,%rax
mov    %eax,%edi
mov    -0x3a8(%rbp),%rsi
mov    $0x1,%edx
call   1040 <_br2_store@plt>
mov    -0x8(%rbp),%rax
add    $0xd,%rax
mov    %eax,%edi
mov    -0x3b0(%rbp),%rsi
mov    $0x1,%edx
call   1040 <_br2_store@plt>
mov    -0x8(%rbp),%rax
add    $0xe,%rax
mov    %eax,%edi
mov    -0x3b8(%rbp),%rsi
mov    $0x1,%edx
call   1040 <_br2_store@plt>
mov    -0x8(%rbp),%rax
add    $0xf,%rax
mov    %eax,%edi
mov    -0x3c0(%rbp),%rsi
mov    $0x1,%edx
call   1040 <_br2_store@plt>
mov    -0x8(%rbp),%rax
add    $0x10,%rax
mov    %eax,%edi
mov    -0x3c8(%rbp),%rsi
mov    $0x1,%edx
call   1040 <_br2_store@plt>
add    $0x3d0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<internal_fiat_poly1305_to_bytes>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x58,%rsp
mov    %rsi,%rbx
mov    %rdi,%r15
mov    %ebx,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,%r14
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,%r13
lea    0xc(%rbx),%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
mov    %rax,%r12
add    $0x10,%ebx
mov    %ebx,%edi
mov    $0x8,%esi
call   1030 <_br2_load@plt>
xor    %ecx,%ecx
sub    $0x3fffffb,%r14
setae  %cl
shl    $0x6,%rcx
mov    %r14,%rdx
shr    $0x1a,%rdx
add    %rcx,%rdx
sub    $0x3ffffff,%rbp
sbb    %rcx,%rcx
lea    (%rdx,%rbp,1),%r9
add    $0xffffffffffffffc0,%r9
cmp    %r9,%rbp
sbb    $0x0,%rcx
shl    $0x6,%rcx
mov    %r9,%rdx
shr    $0x1a,%rdx
sub    $0x3ffffff,%r13
sbb    %rsi,%rsi
add    %r13,%rdx
add    %rcx,%rdx
cmp    %rdx,%r13
sbb    $0x0,%rsi
shl    $0x6,%rsi
mov    %rdx,%rcx
shr    $0x1a,%rcx
sub    $0x3ffffff,%r12
sbb    %rbp,%rbp
add    %r12,%rcx
add    %rsi,%rcx
cmp    %rcx,%r12
sbb    $0x0,%rbp
shl    $0x6,%rbp
mov    %rcx,%rdi
shr    $0x1a,%rdi
lea    -0x3ffffff(%rax),%rbx
add    %rbx,%rdi
add    %rbp,%rdi
xor    %ebp,%ebp
cmp    %rdi,%rbx
setb   %bpl
cmp    $0x3ffffff,%rax
adc    $0x0,%rbp
and    $0x3ffffff,%r14d
and    $0x3ffffff,%r9d
and    $0x3ffffff,%edx
and    $0x3ffffff,%ecx
shl    $0x6,%rbp
mov    %rdi,%rsi
shr    $0x1a,%rsi
lea    0x3fffffb(%r14),%rax
xor    %r8d,%r8d
cmp    %rsi,%rbp
cmove  %r14,%rax
mov    $0x3ffffff,%ebx
cmove  %r8,%rbx
mov    %rax,%rsi
shr    $0x1a,%rsi
add    %rbx,%r9
add    %rsi,%r9
mov    %r9,%rsi
shr    $0x1a,%rsi
add    %rbx,%rdx
add    %rsi,%rdx
mov    %rdx,%rsi
shr    $0x1a,%rsi
add    %rbx,%rcx
add    %rsi,%rcx
mov    %rcx,%rsi
shr    $0x1a,%rsi
add    %rdi,%rbx
add    %rsi,%rbx
mov    %ecx,%r8d
shl    $0x6,%r8d
mov    %edx,%ebp
shl    $0x4,%ebp
movzbl %al,%esi
movzbl %ah,%edi
mov    %rdi,%r14
mov    %eax,%edi
shr    $0x10,%edi
movzbl %dil,%edi
mov    %rdi,0x8(%rsp)
shr    $0x18,%eax
and    $0x3,%eax
mov    %r9d,%edi
and    $0x3f,%edi
lea    (%rax,%rdi,4),%rax
mov    %rax,(%rsp)
mov    %r9d,%eax
shr    $0x6,%eax
movzbl %al,%eax
mov    %rax,0x10(%rsp)
mov    %r9d,%eax
shr    $0xe,%eax
movzbl %al,%eax
mov    %rax,0x18(%rsp)
shr    $0x16,%r9d
and    $0xf,%r9d
movzbl %bpl,%r13d
or     %r9,%r13
mov    %edx,%eax
shr    $0x4,%eax
movzbl %al,%eax
mov    %rax,0x20(%rsp)
mov    %edx,%eax
shr    $0xc,%eax
movzbl %al,%eax
mov    %rax,0x28(%rsp)
shr    $0x14,%edx
and    $0x3f,%edx
movzbl %r8b,%r12d
or     %rdx,%r12
mov    %ecx,%eax
shr    $0x2,%eax
movzbl %al,%eax
mov    %rax,0x30(%rsp)
mov    %ecx,%eax
shr    $0xa,%eax
movzbl %al,%eax
mov    %rax,0x40(%rsp)
shr    $0x12,%ecx
movzbl %cl,%eax
mov    %rax,0x48(%rsp)
mov    %ebx,%eax
shr    $0x10,%eax
movzbl %al,%eax
mov    %rax,0x50(%rsp)
movzbl %bl,%eax
mov    %rax,0x38(%rsp)
movzbl %bh,%ebp
shr    $0x18,%ebx
and    $0x3,%ebx
mov    %r15d,%edi
mov    $0x1,%edx
call   1040 <_br2_store@plt>
lea    0x1(%r15),%edi
mov    %r14,%rsi
mov    $0x1,%edx
call   1040 <_br2_store@plt>
lea    0x2(%r15),%edi
mov    0x8(%rsp),%rsi
mov    $0x1,%edx
call   1040 <_br2_store@plt>
lea    0x3(%r15),%edi
mov    (%rsp),%rsi
mov    $0x1,%edx
call   1040 <_br2_store@plt>
lea    0x4(%r15),%edi
mov    0x10(%rsp),%rsi
mov    $0x1,%edx
call   1040 <_br2_store@plt>
lea    0x5(%r15),%edi
mov    0x18(%rsp),%rsi
mov    $0x1,%edx
call   1040 <_br2_store@plt>
lea    0x6(%r15),%edi
mov    %r13,%rsi
mov    $0x1,%edx
call   1040 <_br2_store@plt>
lea    0x7(%r15),%edi
mov    0x20(%rsp),%rsi
mov    $0x1,%edx
call   1040 <_br2_store@plt>
lea    0x8(%r15),%edi
mov    0x28(%rsp),%rsi
mov    $0x1,%edx
call   1040 <_br2_store@plt>
lea    0x9(%r15),%edi
mov    %r12,%rsi
mov    $0x1,%edx
call   1040 <_br2_store@plt>
lea    0xa(%r15),%edi
mov    0x30(%rsp),%rsi
mov    $0x1,%edx
call   1040 <_br2_store@plt>
lea    0xb(%r15),%edi
mov    0x40(%rsp),%rsi
mov    $0x1,%edx
call   1040 <_br2_store@plt>
lea    0xc(%r15),%edi
mov    0x48(%rsp),%rsi
mov    $0x1,%edx
call   1040 <_br2_store@plt>
lea    0xd(%r15),%edi
mov    0x38(%rsp),%rsi
mov    $0x1,%edx
call   1040 <_br2_store@plt>
lea    0xe(%r15),%edi
mov    %rbp,%rsi
mov    $0x1,%edx
call   1040 <_br2_store@plt>
lea    0xf(%r15),%edi
mov    0x50(%rsp),%rsi
mov    $0x1,%edx
call   1040 <_br2_store@plt>
add    $0x10,%r15d
mov    %r15d,%edi
mov    %rbx,%rsi
mov    $0x1,%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_poly1305_to_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
%89 = alloca i64
%90 = alloca i64
%91 = alloca i64
%92 = alloca i64
%93 = alloca i64
%94 = alloca i64
%95 = alloca i64
%96 = alloca i64
%97 = alloca i64
%98 = alloca i64
%99 = alloca i64
%100 = alloca i64
%101 = alloca i64
%102 = alloca i64
%103 = alloca i64
%104 = alloca i64
%105 = alloca i64
%106 = alloca i64
%107 = alloca i64
%108 = alloca i64
%109 = alloca i64
%110 = alloca i64
%111 = alloca i64
%112 = alloca i64
%113 = alloca i64
%114 = alloca i64
%115 = alloca i64
%116 = alloca i64
%117 = alloca i64
%118 = alloca i64
%119 = alloca i64
%120 = alloca i64
%121 = alloca i64
%122 = alloca i64
%123 = alloca i64
store i64 %0, i64* %3
store i64 %1, i64* %4
%124 = load i64, i64* %4
%125 = add i64 %124, 0
%126 = trunc i64 %125 to i32
%127 = call i64 @_br2_load(i32 %126, i32 8)
store i64 %127, i64* %5
%128 = load i64, i64* %4
%129 = add i64 %128, 4
%130 = trunc i64 %129 to i32
%131 = call i64 @_br2_load(i32 %130, i32 8)
store i64 %131, i64* %8
%132 = load i64, i64* %4
%133 = add i64 %132, 8
%134 = trunc i64 %133 to i32
%135 = call i64 @_br2_load(i32 %134, i32 8)
store i64 %135, i64* %15
%136 = load i64, i64* %4
%137 = add i64 %136, 12
%138 = trunc i64 %137 to i32
%139 = call i64 @_br2_load(i32 %138, i32 8)
store i64 %139, i64* %22
%140 = load i64, i64* %4
%141 = add i64 %140, 16
%142 = trunc i64 %141 to i32
%143 = call i64 @_br2_load(i32 %142, i32 8)
store i64 %143, i64* %29
%144 = load i64, i64* %5
%145 = sub i64 %144, 67108859
store i64 %145, i64* %7
%146 = load i64, i64* %5
%147 = load i64, i64* %7
%148 = icmp ult i64 %146, %147
%149 = zext i1 %148 to i32
%150 = sext i32 %149 to i64
store i64 %150, i64* %6
%151 = load i64, i64* %7
%152 = and i64 %151, 67108863
store i64 %152, i64* %37
%153 = load i64, i64* %6
%154 = shl i64 %153, 6
%155 = load i64, i64* %7
%156 = lshr i64 %155, 26
%157 = sub i64 %154, %156
store i64 %157, i64* %9
%158 = load i64, i64* %8
%159 = sub i64 %158, 67108863
store i64 %159, i64* %10
%160 = load i64, i64* %8
%161 = load i64, i64* %10
%162 = icmp ult i64 %160, %161
%163 = zext i1 %162 to i32
%164 = sext i32 %163 to i64
store i64 %164, i64* %11
%165 = load i64, i64* %10
%166 = load i64, i64* %9
%167 = sub i64 %165, %166
store i64 %167, i64* %14
%168 = load i64, i64* %10
%169 = load i64, i64* %14
%170 = icmp ult i64 %168, %169
%171 = zext i1 %170 to i32
%172 = sext i32 %171 to i64
store i64 %172, i64* %12
%173 = load i64, i64* %11
%174 = load i64, i64* %12
%175 = add i64 %173, %174
store i64 %175, i64* %13
%176 = load i64, i64* %14
%177 = and i64 %176, 67108863
store i64 %177, i64* %41
%178 = load i64, i64* %13
%179 = shl i64 %178, 6
%180 = load i64, i64* %14
%181 = lshr i64 %180, 26
%182 = sub i64 %179, %181
store i64 %182, i64* %16
%183 = load i64, i64* %15
%184 = sub i64 %183, 67108863
store i64 %184, i64* %17
%185 = load i64, i64* %15
%186 = load i64, i64* %17
%187 = icmp ult i64 %185, %186
%188 = zext i1 %187 to i32
%189 = sext i32 %188 to i64
store i64 %189, i64* %18
%190 = load i64, i64* %17
%191 = load i64, i64* %16
%192 = sub i64 %190, %191
store i64 %192, i64* %21
%193 = load i64, i64* %17
%194 = load i64, i64* %21
%195 = icmp ult i64 %193, %194
%196 = zext i1 %195 to i32
%197 = sext i32 %196 to i64
store i64 %197, i64* %19
%198 = load i64, i64* %18
%199 = load i64, i64* %19
%200 = add i64 %198, %199
store i64 %200, i64* %20
%201 = load i64, i64* %21
%202 = and i64 %201, 67108863
store i64 %202, i64* %48
%203 = load i64, i64* %20
%204 = shl i64 %203, 6
%205 = load i64, i64* %21
%206 = lshr i64 %205, 26
%207 = sub i64 %204, %206
store i64 %207, i64* %23
%208 = load i64, i64* %22
%209 = sub i64 %208, 67108863
store i64 %209, i64* %24
%210 = load i64, i64* %22
%211 = load i64, i64* %24
%212 = icmp ult i64 %210, %211
%213 = zext i1 %212 to i32
%214 = sext i32 %213 to i64
store i64 %214, i64* %25
%215 = load i64, i64* %24
%216 = load i64, i64* %23
%217 = sub i64 %215, %216
store i64 %217, i64* %28
%218 = load i64, i64* %24
%219 = load i64, i64* %28
%220 = icmp ult i64 %218, %219
%221 = zext i1 %220 to i32
%222 = sext i32 %221 to i64
store i64 %222, i64* %26
%223 = load i64, i64* %25
%224 = load i64, i64* %26
%225 = add i64 %223, %224
store i64 %225, i64* %27
%226 = load i64, i64* %28
%227 = and i64 %226, 67108863
store i64 %227, i64* %55
%228 = load i64, i64* %27
%229 = shl i64 %228, 6
%230 = load i64, i64* %28
%231 = lshr i64 %230, 26
%232 = sub i64 %229, %231
store i64 %232, i64* %30
%233 = load i64, i64* %29
%234 = sub i64 %233, 67108863
store i64 %234, i64* %31
%235 = load i64, i64* %29
%236 = load i64, i64* %31
%237 = icmp ult i64 %235, %236
%238 = zext i1 %237 to i32
%239 = sext i32 %238 to i64
store i64 %239, i64* %32
%240 = load i64, i64* %31
%241 = load i64, i64* %30
%242 = sub i64 %240, %241
store i64 %242, i64* %35
%243 = load i64, i64* %31
%244 = load i64, i64* %35
%245 = icmp ult i64 %243, %244
%246 = zext i1 %245 to i32
%247 = sext i32 %246 to i64
store i64 %247, i64* %33
%248 = load i64, i64* %32
%249 = load i64, i64* %33
%250 = add i64 %248, %249
store i64 %250, i64* %34
%251 = load i64, i64* %35
%252 = and i64 %251, 67108863
store i64 %252, i64* %62
%253 = load i64, i64* %34
%254 = shl i64 %253, 6
%255 = load i64, i64* %35
%256 = lshr i64 %255, 26
%257 = sub i64 %254, %256
store i64 %257, i64* %36
%258 = load i64, i64* %36
%259 = icmp eq i64 %258, 0
%260 = zext i1 %259 to i32
%261 = sext i32 %260 to i64
%262 = add i64 -1, %261
store i64 %262, i64* %64
%263 = load i64, i64* %37
%264 = load i64, i64* %64
%265 = and i64 %264, 67108859
%266 = add i64 %263, %265
store i64 %266, i64* %38
%267 = load i64, i64* %38
%268 = load i64, i64* %37
%269 = icmp ult i64 %267, %268
%270 = zext i1 %269 to i32
%271 = sext i32 %270 to i64
store i64 %271, i64* %39
%272 = load i64, i64* %38
%273 = and i64 %272, 67108863
store i64 %273, i64* %69
%274 = load i64, i64* %38
%275 = lshr i64 %274, 26
%276 = load i64, i64* %39
%277 = shl i64 %276, 6
%278 = add i64 %275, %277
store i64 %278, i64* %40
%279 = load i64, i64* %40
%280 = load i64, i64* %41
%281 = add i64 %279, %280
store i64 %281, i64* %42
%282 = load i64, i64* %42
%283 = load i64, i64* %41
%284 = icmp ult i64 %282, %283
%285 = zext i1 %284 to i32
%286 = sext i32 %285 to i64
store i64 %286, i64* %43
%287 = load i64, i64* %42
%288 = load i64, i64* %64
%289 = and i64 %288, 67108863
%290 = add i64 %287, %289
store i64 %290, i64* %45
%291 = load i64, i64* %45
%292 = load i64, i64* %64
%293 = and i64 %292, 67108863
%294 = icmp ult i64 %291, %293
%295 = zext i1 %294 to i32
%296 = sext i32 %295 to i64
store i64 %296, i64* %44
%297 = load i64, i64* %43
%298 = load i64, i64* %44
%299 = add i64 %297, %298
store i64 %299, i64* %46
%300 = load i64, i64* %45
%301 = and i64 %300, 67108863
store i64 %301, i64* %68
%302 = load i64, i64* %45
%303 = lshr i64 %302, 26
%304 = load i64, i64* %46
%305 = shl i64 %304, 6
%306 = add i64 %303, %305
store i64 %306, i64* %47
%307 = load i64, i64* %47
%308 = load i64, i64* %48
%309 = add i64 %307, %308
store i64 %309, i64* %49
%310 = load i64, i64* %49
%311 = load i64, i64* %48
%312 = icmp ult i64 %310, %311
%313 = zext i1 %312 to i32
%314 = sext i32 %313 to i64
store i64 %314, i64* %50
%315 = load i64, i64* %49
%316 = load i64, i64* %64
%317 = and i64 %316, 67108863
%318 = add i64 %315, %317
store i64 %318, i64* %52
%319 = load i64, i64* %52
%320 = load i64, i64* %64
%321 = and i64 %320, 67108863
%322 = icmp ult i64 %319, %321
%323 = zext i1 %322 to i32
%324 = sext i32 %323 to i64
store i64 %324, i64* %51
%325 = load i64, i64* %50
%326 = load i64, i64* %51
%327 = add i64 %325, %326
store i64 %327, i64* %53
%328 = load i64, i64* %52
%329 = and i64 %328, 67108863
store i64 %329, i64* %67
%330 = load i64, i64* %52
%331 = lshr i64 %330, 26
%332 = load i64, i64* %53
%333 = shl i64 %332, 6
%334 = add i64 %331, %333
store i64 %334, i64* %54
%335 = load i64, i64* %54
%336 = load i64, i64* %55
%337 = add i64 %335, %336
store i64 %337, i64* %56
%338 = load i64, i64* %56
%339 = load i64, i64* %55
%340 = icmp ult i64 %338, %339
%341 = zext i1 %340 to i32
%342 = sext i32 %341 to i64
store i64 %342, i64* %57
%343 = load i64, i64* %56
%344 = load i64, i64* %64
%345 = and i64 %344, 67108863
%346 = add i64 %343, %345
store i64 %346, i64* %59
%347 = load i64, i64* %59
%348 = load i64, i64* %64
%349 = and i64 %348, 67108863
%350 = icmp ult i64 %347, %349
%351 = zext i1 %350 to i32
%352 = sext i32 %351 to i64
store i64 %352, i64* %58
%353 = load i64, i64* %57
%354 = load i64, i64* %58
%355 = add i64 %353, %354
store i64 %355, i64* %60
%356 = load i64, i64* %59
%357 = and i64 %356, 67108863
store i64 %357, i64* %66
%358 = load i64, i64* %59
%359 = lshr i64 %358, 26
%360 = load i64, i64* %60
%361 = shl i64 %360, 6
%362 = add i64 %359, %361
store i64 %362, i64* %61
%363 = load i64, i64* %61
%364 = load i64, i64* %62
%365 = add i64 %363, %364
store i64 %365, i64* %63
%366 = load i64, i64* %63
%367 = load i64, i64* %64
%368 = and i64 %367, 67108863
%369 = add i64 %366, %368
store i64 %369, i64* %65
%370 = load i64, i64* %65
%371 = and i64 %370, 67108863
store i64 %371, i64* %87
%372 = load i64, i64* %66
%373 = shl i64 %372, 6
store i64 %373, i64* %82
%374 = load i64, i64* %67
%375 = shl i64 %374, 4
store i64 %375, i64* %77
%376 = load i64, i64* %68
%377 = shl i64 %376, 2
store i64 %377, i64* %72
%378 = load i64, i64* %69
%379 = and i64 %378, 255
store i64 %379, i64* %90
%380 = load i64, i64* %69
%381 = lshr i64 %380, 8
store i64 %381, i64* %70
%382 = load i64, i64* %70
%383 = and i64 %382, 255
store i64 %383, i64* %91
%384 = load i64, i64* %70
%385 = lshr i64 %384, 8
store i64 %385, i64* %71
%386 = load i64, i64* %71
%387 = and i64 %386, 255
store i64 %387, i64* %92
%388 = load i64, i64* %71
%389 = lshr i64 %388, 8
store i64 %389, i64* %73
%390 = load i64, i64* %72
%391 = load i64, i64* %73
%392 = add i64 %390, %391
store i64 %392, i64* %74
%393 = load i64, i64* %74
%394 = and i64 %393, 255
store i64 %394, i64* %93
%395 = load i64, i64* %74
%396 = lshr i64 %395, 8
store i64 %396, i64* %75
%397 = load i64, i64* %75
%398 = and i64 %397, 255
store i64 %398, i64* %94
%399 = load i64, i64* %75
%400 = lshr i64 %399, 8
store i64 %400, i64* %76
%401 = load i64, i64* %76
%402 = and i64 %401, 255
store i64 %402, i64* %95
%403 = load i64, i64* %76
%404 = lshr i64 %403, 8
store i64 %404, i64* %78
%405 = load i64, i64* %77
%406 = load i64, i64* %78
%407 = add i64 %405, %406
store i64 %407, i64* %79
%408 = load i64, i64* %79
%409 = and i64 %408, 255
store i64 %409, i64* %96
%410 = load i64, i64* %79
%411 = lshr i64 %410, 8
store i64 %411, i64* %80
%412 = load i64, i64* %80
%413 = and i64 %412, 255
store i64 %413, i64* %97
%414 = load i64, i64* %80
%415 = lshr i64 %414, 8
store i64 %415, i64* %81
%416 = load i64, i64* %81
%417 = and i64 %416, 255
store i64 %417, i64* %98
%418 = load i64, i64* %81
%419 = lshr i64 %418, 8
store i64 %419, i64* %83
%420 = load i64, i64* %82
%421 = load i64, i64* %83
%422 = add i64 %420, %421
store i64 %422, i64* %84
%423 = load i64, i64* %84
%424 = and i64 %423, 255
store i64 %424, i64* %99
%425 = load i64, i64* %84
%426 = lshr i64 %425, 8
store i64 %426, i64* %85
%427 = load i64, i64* %85
%428 = and i64 %427, 255
store i64 %428, i64* %100
%429 = load i64, i64* %85
%430 = lshr i64 %429, 8
store i64 %430, i64* %86
%431 = load i64, i64* %86
%432 = and i64 %431, 255
store i64 %432, i64* %101
%433 = load i64, i64* %86
%434 = lshr i64 %433, 8
store i64 %434, i64* %102
%435 = load i64, i64* %87
%436 = and i64 %435, 255
store i64 %436, i64* %103
%437 = load i64, i64* %87
%438 = lshr i64 %437, 8
store i64 %438, i64* %88
%439 = load i64, i64* %88
%440 = and i64 %439, 255
store i64 %440, i64* %104
%441 = load i64, i64* %88
%442 = lshr i64 %441, 8
store i64 %442, i64* %89
%443 = load i64, i64* %89
%444 = and i64 %443, 255
store i64 %444, i64* %105
%445 = load i64, i64* %89
%446 = lshr i64 %445, 8
store i64 %446, i64* %106
%447 = load i64, i64* %90
store i64 %447, i64* %107
%448 = load i64, i64* %91
store i64 %448, i64* %108
%449 = load i64, i64* %92
store i64 %449, i64* %109
%450 = load i64, i64* %93
store i64 %450, i64* %110
%451 = load i64, i64* %94
store i64 %451, i64* %111
%452 = load i64, i64* %95
store i64 %452, i64* %112
%453 = load i64, i64* %96
store i64 %453, i64* %113
%454 = load i64, i64* %97
store i64 %454, i64* %114
%455 = load i64, i64* %98
store i64 %455, i64* %115
%456 = load i64, i64* %99
store i64 %456, i64* %116
%457 = load i64, i64* %100
store i64 %457, i64* %117
%458 = load i64, i64* %101
store i64 %458, i64* %118
%459 = load i64, i64* %102
store i64 %459, i64* %119
%460 = load i64, i64* %103
store i64 %460, i64* %120
%461 = load i64, i64* %104
store i64 %461, i64* %121
%462 = load i64, i64* %105
store i64 %462, i64* %122
%463 = load i64, i64* %106
store i64 %463, i64* %123
%464 = load i64, i64* %3
%465 = add i64 %464, 0
%466 = trunc i64 %465 to i32
%467 = load i64, i64* %107
%468 = call i32 @_br2_store(i32 %466, i64 %467, i32 1)
%469 = load i64, i64* %3
%470 = add i64 %469, 1
%471 = trunc i64 %470 to i32
%472 = load i64, i64* %108
%473 = call i32 @_br2_store(i32 %471, i64 %472, i32 1)
%474 = load i64, i64* %3
%475 = add i64 %474, 2
%476 = trunc i64 %475 to i32
%477 = load i64, i64* %109
%478 = call i32 @_br2_store(i32 %476, i64 %477, i32 1)
%479 = load i64, i64* %3
%480 = add i64 %479, 3
%481 = trunc i64 %480 to i32
%482 = load i64, i64* %110
%483 = call i32 @_br2_store(i32 %481, i64 %482, i32 1)
%484 = load i64, i64* %3
%485 = add i64 %484, 4
%486 = trunc i64 %485 to i32
%487 = load i64, i64* %111
%488 = call i32 @_br2_store(i32 %486, i64 %487, i32 1)
%489 = load i64, i64* %3
%490 = add i64 %489, 5
%491 = trunc i64 %490 to i32
%492 = load i64, i64* %112
%493 = call i32 @_br2_store(i32 %491, i64 %492, i32 1)
%494 = load i64, i64* %3
%495 = add i64 %494, 6
%496 = trunc i64 %495 to i32
%497 = load i64, i64* %113
%498 = call i32 @_br2_store(i32 %496, i64 %497, i32 1)
%499 = load i64, i64* %3
%500 = add i64 %499, 7
%501 = trunc i64 %500 to i32
%502 = load i64, i64* %114
%503 = call i32 @_br2_store(i32 %501, i64 %502, i32 1)
%504 = load i64, i64* %3
%505 = add i64 %504, 8
%506 = trunc i64 %505 to i32
%507 = load i64, i64* %115
%508 = call i32 @_br2_store(i32 %506, i64 %507, i32 1)
%509 = load i64, i64* %3
%510 = add i64 %509, 9
%511 = trunc i64 %510 to i32
%512 = load i64, i64* %116
%513 = call i32 @_br2_store(i32 %511, i64 %512, i32 1)
%514 = load i64, i64* %3
%515 = add i64 %514, 10
%516 = trunc i64 %515 to i32
%517 = load i64, i64* %117
%518 = call i32 @_br2_store(i32 %516, i64 %517, i32 1)
%519 = load i64, i64* %3
%520 = add i64 %519, 11
%521 = trunc i64 %520 to i32
%522 = load i64, i64* %118
%523 = call i32 @_br2_store(i32 %521, i64 %522, i32 1)
%524 = load i64, i64* %3
%525 = add i64 %524, 12
%526 = trunc i64 %525 to i32
%527 = load i64, i64* %119
%528 = call i32 @_br2_store(i32 %526, i64 %527, i32 1)
%529 = load i64, i64* %3
%530 = add i64 %529, 13
%531 = trunc i64 %530 to i32
%532 = load i64, i64* %120
%533 = call i32 @_br2_store(i32 %531, i64 %532, i32 1)
%534 = load i64, i64* %3
%535 = add i64 %534, 14
%536 = trunc i64 %535 to i32
%537 = load i64, i64* %121
%538 = call i32 @_br2_store(i32 %536, i64 %537, i32 1)
%539 = load i64, i64* %3
%540 = add i64 %539, 15
%541 = trunc i64 %540 to i32
%542 = load i64, i64* %122
%543 = call i32 @_br2_store(i32 %541, i64 %542, i32 1)
%544 = load i64, i64* %3
%545 = add i64 %544, 16
%546 = trunc i64 %545 to i32
%547 = load i64, i64* %123
%548 = call i32 @_br2_store(i32 %546, i64 %547, i32 1)
ret void
}

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