#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 scalar_t__ uint8_t;
typedef int uint32_t;

/* Variables and functions */
void fiat_p384_from_bytes(uint32_t out1[12], const uint8_t arg1[48]) {
  uint32_t x1;
  uint32_t x2;
  uint32_t x3;
  uint8_t x4;
  uint32_t x5;
  uint32_t x6;
  uint32_t x7;
  uint8_t x8;
  uint32_t x9;
  uint32_t x10;
  uint32_t x11;
  uint8_t x12;
  uint32_t x13;
  uint32_t x14;
  uint32_t x15;
  uint8_t x16;
  uint32_t x17;
  uint32_t x18;
  uint32_t x19;
  uint8_t x20;
  uint32_t x21;
  uint32_t x22;
  uint32_t x23;
  uint8_t x24;
  uint32_t x25;
  uint32_t x26;
  uint32_t x27;
  uint8_t x28;
  uint32_t x29;
  uint32_t x30;
  uint32_t x31;
  uint8_t x32;
  uint32_t x33;
  uint32_t x34;
  uint32_t x35;
  uint8_t x36;
  uint32_t x37;
  uint32_t x38;
  uint32_t x39;
  uint8_t x40;
  uint32_t x41;
  uint32_t x42;
  uint32_t x43;
  uint8_t x44;
  uint32_t x45;
  uint32_t x46;
  uint32_t x47;
  uint8_t x48;
  uint32_t x49;
  uint32_t x50;
  uint32_t x51;
  uint32_t x52;
  uint32_t x53;
  uint32_t x54;
  uint32_t x55;
  uint32_t x56;
  uint32_t x57;
  uint32_t x58;
  uint32_t x59;
  uint32_t x60;
  uint32_t x61;
  uint32_t x62;
  uint32_t x63;
  uint32_t x64;
  uint32_t x65;
  uint32_t x66;
  uint32_t x67;
  uint32_t x68;
  uint32_t x69;
  uint32_t x70;
  uint32_t x71;
  uint32_t x72;
  uint32_t x73;
  uint32_t x74;
  uint32_t x75;
  uint32_t x76;
  uint32_t x77;
  uint32_t x78;
  uint32_t x79;
  uint32_t x80;
  uint32_t x81;
  uint32_t x82;
  uint32_t x83;
  uint32_t x84;
  x1 = ((uint32_t)(arg1[47]) << 24);
  x2 = ((uint32_t)(arg1[46]) << 16);
  x3 = ((uint32_t)(arg1[45]) << 8);
  x4 = (arg1[44]);
  x5 = ((uint32_t)(arg1[43]) << 24);
  x6 = ((uint32_t)(arg1[42]) << 16);
  x7 = ((uint32_t)(arg1[41]) << 8);
  x8 = (arg1[40]);
  x9 = ((uint32_t)(arg1[39]) << 24);
  x10 = ((uint32_t)(arg1[38]) << 16);
  x11 = ((uint32_t)(arg1[37]) << 8);
  x12 = (arg1[36]);
  x13 = ((uint32_t)(arg1[35]) << 24);
  x14 = ((uint32_t)(arg1[34]) << 16);
  x15 = ((uint32_t)(arg1[33]) << 8);
  x16 = (arg1[32]);
  x17 = ((uint32_t)(arg1[31]) << 24);
  x18 = ((uint32_t)(arg1[30]) << 16);
  x19 = ((uint32_t)(arg1[29]) << 8);
  x20 = (arg1[28]);
  x21 = ((uint32_t)(arg1[27]) << 24);
  x22 = ((uint32_t)(arg1[26]) << 16);
  x23 = ((uint32_t)(arg1[25]) << 8);
  x24 = (arg1[24]);
  x25 = ((uint32_t)(arg1[23]) << 24);
  x26 = ((uint32_t)(arg1[22]) << 16);
  x27 = ((uint32_t)(arg1[21]) << 8);
  x28 = (arg1[20]);
  x29 = ((uint32_t)(arg1[19]) << 24);
  x30 = ((uint32_t)(arg1[18]) << 16);
  x31 = ((uint32_t)(arg1[17]) << 8);
  x32 = (arg1[16]);
  x33 = ((uint32_t)(arg1[15]) << 24);
  x34 = ((uint32_t)(arg1[14]) << 16);
  x35 = ((uint32_t)(arg1[13]) << 8);
  x36 = (arg1[12]);
  x37 = ((uint32_t)(arg1[11]) << 24);
  x38 = ((uint32_t)(arg1[10]) << 16);
  x39 = ((uint32_t)(arg1[9]) << 8);
  x40 = (arg1[8]);
  x41 = ((uint32_t)(arg1[7]) << 24);
  x42 = ((uint32_t)(arg1[6]) << 16);
  x43 = ((uint32_t)(arg1[5]) << 8);
  x44 = (arg1[4]);
  x45 = ((uint32_t)(arg1[3]) << 24);
  x46 = ((uint32_t)(arg1[2]) << 16);
  x47 = ((uint32_t)(arg1[1]) << 8);
  x48 = (arg1[0]);
  x49 = (x47 + (uint32_t)x48);
  x50 = (x46 + x49);
  x51 = (x45 + x50);
  x52 = (x43 + (uint32_t)x44);
  x53 = (x42 + x52);
  x54 = (x41 + x53);
  x55 = (x39 + (uint32_t)x40);
  x56 = (x38 + x55);
  x57 = (x37 + x56);
  x58 = (x35 + (uint32_t)x36);
  x59 = (x34 + x58);
  x60 = (x33 + x59);
  x61 = (x31 + (uint32_t)x32);
  x62 = (x30 + x61);
  x63 = (x29 + x62);
  x64 = (x27 + (uint32_t)x28);
  x65 = (x26 + x64);
  x66 = (x25 + x65);
  x67 = (x23 + (uint32_t)x24);
  x68 = (x22 + x67);
  x69 = (x21 + x68);
  x70 = (x19 + (uint32_t)x20);
  x71 = (x18 + x70);
  x72 = (x17 + x71);
  x73 = (x15 + (uint32_t)x16);
  x74 = (x14 + x73);
  x75 = (x13 + x74);
  x76 = (x11 + (uint32_t)x12);
  x77 = (x10 + x76);
  x78 = (x9 + x77);
  x79 = (x7 + (uint32_t)x8);
  x80 = (x6 + x79);
  x81 = (x5 + x80);
  x82 = (x3 + (uint32_t)x4);
  x83 = (x2 + x82);
  x84 = (x1 + x83);
  out1[0] = x51;
  out1[1] = x54;
  out1[2] = x57;
  out1[3] = x60;
  out1[4] = x63;
  out1[5] = x66;
  out1[6] = x69;
  out1[7] = x72;
  out1[8] = x75;
  out1[9] = x78;
  out1[10] = x81;
  out1[11] = x84;
}


x86 assembly (clang, -O0):
<fiat_p384_from_bytes>:
push   %rbp
mov    %rsp,%rbp
sub    $0x140,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    0x178(%rax),%rax
shl    $0x18,%eax
mov    %eax,-0x14(%rbp)
mov    -0x10(%rbp),%rax
mov    0x170(%rax),%rax
shl    $0x10,%eax
mov    %eax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x168(%rax),%rax
shl    $0x8,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x10(%rbp),%rax
mov    0x160(%rax),%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x158(%rax),%rax
shl    $0x18,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x10(%rbp),%rax
mov    0x150(%rax),%rax
shl    $0x10,%eax
mov    %eax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    0x148(%rax),%rax
shl    $0x8,%eax
mov    %eax,-0x34(%rbp)
mov    -0x10(%rbp),%rax
mov    0x140(%rax),%rax
mov    %rax,-0x40(%rbp)
mov    -0x10(%rbp),%rax
mov    0x138(%rax),%rax
shl    $0x18,%eax
mov    %eax,-0x44(%rbp)
mov    -0x10(%rbp),%rax
mov    0x130(%rax),%rax
shl    $0x10,%eax
mov    %eax,-0x48(%rbp)
mov    -0x10(%rbp),%rax
mov    0x128(%rax),%rax
shl    $0x8,%eax
mov    %eax,-0x4c(%rbp)
mov    -0x10(%rbp),%rax
mov    0x120(%rax),%rax
mov    %rax,-0x58(%rbp)
mov    -0x10(%rbp),%rax
mov    0x118(%rax),%rax
shl    $0x18,%eax
mov    %eax,-0x5c(%rbp)
mov    -0x10(%rbp),%rax
mov    0x110(%rax),%rax
shl    $0x10,%eax
mov    %eax,-0x60(%rbp)
mov    -0x10(%rbp),%rax
mov    0x108(%rax),%rax
shl    $0x8,%eax
mov    %eax,-0x64(%rbp)
mov    -0x10(%rbp),%rax
mov    0x100(%rax),%rax
mov    %rax,-0x70(%rbp)
mov    -0x10(%rbp),%rax
mov    0xf8(%rax),%rax
shl    $0x18,%eax
mov    %eax,-0x74(%rbp)
mov    -0x10(%rbp),%rax
mov    0xf0(%rax),%rax
shl    $0x10,%eax
mov    %eax,-0x78(%rbp)
mov    -0x10(%rbp),%rax
mov    0xe8(%rax),%rax
shl    $0x8,%eax
mov    %eax,-0x7c(%rbp)
mov    -0x10(%rbp),%rax
mov    0xe0(%rax),%rax
mov    %rax,-0x88(%rbp)
mov    -0x10(%rbp),%rax
mov    0xd8(%rax),%rax
shl    $0x18,%eax
mov    %eax,-0x8c(%rbp)
mov    -0x10(%rbp),%rax
mov    0xd0(%rax),%rax
shl    $0x10,%eax
mov    %eax,-0x90(%rbp)
mov    -0x10(%rbp),%rax
mov    0xc8(%rax),%rax
shl    $0x8,%eax
mov    %eax,-0x94(%rbp)
mov    -0x10(%rbp),%rax
mov    0xc0(%rax),%rax
mov    %rax,-0xa0(%rbp)
mov    -0x10(%rbp),%rax
mov    0xb8(%rax),%rax
shl    $0x18,%eax
mov    %eax,-0xa4(%rbp)
mov    -0x10(%rbp),%rax
mov    0xb0(%rax),%rax
shl    $0x10,%eax
mov    %eax,-0xa8(%rbp)
mov    -0x10(%rbp),%rax
mov    0xa8(%rax),%rax
shl    $0x8,%eax
mov    %eax,-0xac(%rbp)
mov    -0x10(%rbp),%rax
mov    0xa0(%rax),%rax
mov    %rax,-0xb8(%rbp)
mov    -0x10(%rbp),%rax
mov    0x98(%rax),%rax
shl    $0x18,%eax
mov    %eax,-0xbc(%rbp)
mov    -0x10(%rbp),%rax
mov    0x90(%rax),%rax
shl    $0x10,%eax
mov    %eax,-0xc0(%rbp)
mov    -0x10(%rbp),%rax
mov    0x88(%rax),%rax
shl    $0x8,%eax
mov    %eax,-0xc4(%rbp)
mov    -0x10(%rbp),%rax
mov    0x80(%rax),%rax
mov    %rax,-0xd0(%rbp)
mov    -0x10(%rbp),%rax
mov    0x78(%rax),%rax
shl    $0x18,%eax
mov    %eax,-0xd4(%rbp)
mov    -0x10(%rbp),%rax
mov    0x70(%rax),%rax
shl    $0x10,%eax
mov    %eax,-0xd8(%rbp)
mov    -0x10(%rbp),%rax
mov    0x68(%rax),%rax
shl    $0x8,%eax
mov    %eax,-0xdc(%rbp)
mov    -0x10(%rbp),%rax
mov    0x60(%rax),%rax
mov    %rax,-0xe8(%rbp)
mov    -0x10(%rbp),%rax
mov    0x58(%rax),%rax
shl    $0x18,%eax
mov    %eax,-0xec(%rbp)
mov    -0x10(%rbp),%rax
mov    0x50(%rax),%rax
shl    $0x10,%eax
mov    %eax,-0xf0(%rbp)
mov    -0x10(%rbp),%rax
mov    0x48(%rax),%rax
shl    $0x8,%eax
mov    %eax,-0xf4(%rbp)
mov    -0x10(%rbp),%rax
mov    0x40(%rax),%rax
mov    %rax,-0x100(%rbp)
mov    -0x10(%rbp),%rax
mov    0x38(%rax),%rax
shl    $0x18,%eax
mov    %eax,-0x104(%rbp)
mov    -0x10(%rbp),%rax
mov    0x30(%rax),%rax
shl    $0x10,%eax
mov    %eax,-0x108(%rbp)
mov    -0x10(%rbp),%rax
mov    0x28(%rax),%rax
shl    $0x8,%eax
mov    %eax,-0x10c(%rbp)
mov    -0x10(%rbp),%rax
mov    0x20(%rax),%rax
mov    %rax,-0x118(%rbp)
mov    -0x10(%rbp),%rax
mov    0x18(%rax),%rax
shl    $0x18,%eax
mov    %eax,-0x11c(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rax
shl    $0x10,%eax
mov    %eax,-0x120(%rbp)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
shl    $0x8,%eax
mov    %eax,-0x124(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
mov    %rax,-0x130(%rbp)
mov    -0x124(%rbp),%eax
mov    -0x130(%rbp),%rcx
add    %ecx,%eax
mov    %eax,-0x134(%rbp)
mov    -0x120(%rbp),%eax
add    -0x134(%rbp),%eax
mov    %eax,-0x138(%rbp)
mov    -0x11c(%rbp),%eax
add    -0x138(%rbp),%eax
mov    %eax,-0x13c(%rbp)
mov    -0x10c(%rbp),%eax
mov    -0x118(%rbp),%rcx
add    %ecx,%eax
mov    %eax,-0x140(%rbp)
mov    -0x108(%rbp),%eax
add    -0x140(%rbp),%eax
mov    %eax,-0x144(%rbp)
mov    -0x104(%rbp),%eax
add    -0x144(%rbp),%eax
mov    %eax,-0x148(%rbp)
mov    -0xf4(%rbp),%eax
mov    -0x100(%rbp),%rcx
add    %ecx,%eax
mov    %eax,-0x14c(%rbp)
mov    -0xf0(%rbp),%eax
add    -0x14c(%rbp),%eax
mov    %eax,-0x150(%rbp)
mov    -0xec(%rbp),%eax
add    -0x150(%rbp),%eax
mov    %eax,-0x154(%rbp)
mov    -0xdc(%rbp),%eax
mov    -0xe8(%rbp),%rcx
add    %ecx,%eax
mov    %eax,-0x158(%rbp)
mov    -0xd8(%rbp),%eax
add    -0x158(%rbp),%eax
mov    %eax,-0x15c(%rbp)
mov    -0xd4(%rbp),%eax
add    -0x15c(%rbp),%eax
mov    %eax,-0x160(%rbp)
mov    -0xc4(%rbp),%eax
mov    -0xd0(%rbp),%rcx
add    %ecx,%eax
mov    %eax,-0x164(%rbp)
mov    -0xc0(%rbp),%eax
add    -0x164(%rbp),%eax
mov    %eax,-0x168(%rbp)
mov    -0xbc(%rbp),%eax
add    -0x168(%rbp),%eax
mov    %eax,-0x16c(%rbp)
mov    -0xac(%rbp),%eax
mov    -0xb8(%rbp),%rcx
add    %ecx,%eax
mov    %eax,-0x170(%rbp)
mov    -0xa8(%rbp),%eax
add    -0x170(%rbp),%eax
mov    %eax,-0x174(%rbp)
mov    -0xa4(%rbp),%eax
add    -0x174(%rbp),%eax
mov    %eax,-0x178(%rbp)
mov    -0x94(%rbp),%eax
mov    -0xa0(%rbp),%rcx
add    %ecx,%eax
mov    %eax,-0x17c(%rbp)
mov    -0x90(%rbp),%eax
add    -0x17c(%rbp),%eax
mov    %eax,-0x180(%rbp)
mov    -0x8c(%rbp),%eax
add    -0x180(%rbp),%eax
mov    %eax,-0x184(%rbp)
mov    -0x7c(%rbp),%eax
mov    -0x88(%rbp),%rcx
add    %ecx,%eax
mov    %eax,-0x188(%rbp)
mov    -0x78(%rbp),%eax
add    -0x188(%rbp),%eax
mov    %eax,-0x18c(%rbp)
mov    -0x74(%rbp),%eax
add    -0x18c(%rbp),%eax
mov    %eax,-0x190(%rbp)
mov    -0x64(%rbp),%eax
mov    -0x70(%rbp),%rcx
add    %ecx,%eax
mov    %eax,-0x194(%rbp)
mov    -0x60(%rbp),%eax
add    -0x194(%rbp),%eax
mov    %eax,-0x198(%rbp)
mov    -0x5c(%rbp),%eax
add    -0x198(%rbp),%eax
mov    %eax,-0x19c(%rbp)
mov    -0x4c(%rbp),%eax
mov    -0x58(%rbp),%rcx
add    %ecx,%eax
mov    %eax,-0x1a0(%rbp)
mov    -0x48(%rbp),%eax
add    -0x1a0(%rbp),%eax
mov    %eax,-0x1a4(%rbp)
mov    -0x44(%rbp),%eax
add    -0x1a4(%rbp),%eax
mov    %eax,-0x1a8(%rbp)
mov    -0x34(%rbp),%eax
mov    -0x40(%rbp),%rcx
add    %ecx,%eax
mov    %eax,-0x1ac(%rbp)
mov    -0x30(%rbp),%eax
add    -0x1ac(%rbp),%eax
mov    %eax,-0x1b0(%rbp)
mov    -0x2c(%rbp),%eax
add    -0x1b0(%rbp),%eax
mov    %eax,-0x1b4(%rbp)
mov    -0x1c(%rbp),%eax
mov    -0x28(%rbp),%rcx
add    %ecx,%eax
mov    %eax,-0x1b8(%rbp)
mov    -0x18(%rbp),%eax
add    -0x1b8(%rbp),%eax
mov    %eax,-0x1bc(%rbp)
mov    -0x14(%rbp),%eax
add    -0x1bc(%rbp),%eax
mov    %eax,-0x1c0(%rbp)
mov    -0x13c(%rbp),%ecx
mov    -0x8(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x148(%rbp),%ecx
mov    -0x8(%rbp),%rax
mov    %ecx,0x4(%rax)
mov    -0x154(%rbp),%ecx
mov    -0x8(%rbp),%rax
mov    %ecx,0x8(%rax)
mov    -0x160(%rbp),%ecx
mov    -0x8(%rbp),%rax
mov    %ecx,0xc(%rax)
mov    -0x16c(%rbp),%ecx
mov    -0x8(%rbp),%rax
mov    %ecx,0x10(%rax)
mov    -0x178(%rbp),%ecx
mov    -0x8(%rbp),%rax
mov    %ecx,0x14(%rax)
mov    -0x184(%rbp),%ecx
mov    -0x8(%rbp),%rax
mov    %ecx,0x18(%rax)
mov    -0x190(%rbp),%ecx
mov    -0x8(%rbp),%rax
mov    %ecx,0x1c(%rax)
mov    -0x19c(%rbp),%ecx
mov    -0x8(%rbp),%rax
mov    %ecx,0x20(%rax)
mov    -0x1a8(%rbp),%ecx
mov    -0x8(%rbp),%rax
mov    %ecx,0x24(%rax)
mov    -0x1b4(%rbp),%ecx
mov    -0x8(%rbp),%rax
mov    %ecx,0x28(%rax)
mov    -0x1c0(%rbp),%ecx
mov    -0x8(%rbp),%rax
mov    %ecx,0x2c(%rax)
add    $0x140,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<fiat_p384_from_bytes>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
mov    0x178(%rsi),%eax
shl    $0x18,%eax
mov    0x170(%rsi),%r8d
shl    $0x10,%r8d
add    %eax,%r8d
mov    0x158(%rsi),%eax
shl    $0x18,%eax
mov    0x150(%rsi),%r9d
shl    $0x10,%r9d
add    %eax,%r9d
mov    0x138(%rsi),%eax
shl    $0x18,%eax
mov    0x130(%rsi),%r10d
shl    $0x10,%r10d
add    %eax,%r10d
mov    0x118(%rsi),%eax
shl    $0x18,%eax
mov    0x110(%rsi),%r11d
shl    $0x10,%r11d
add    %eax,%r11d
mov    0xf8(%rsi),%eax
shl    $0x18,%eax
mov    0xf0(%rsi),%r14d
shl    $0x10,%r14d
add    %eax,%r14d
mov    0xd8(%rsi),%eax
shl    $0x18,%eax
mov    0xd0(%rsi),%r15d
shl    $0x10,%r15d
add    %eax,%r15d
mov    0xb8(%rsi),%eax
shl    $0x18,%eax
mov    0xb0(%rsi),%r12d
shl    $0x10,%r12d
add    %eax,%r12d
mov    0x98(%rsi),%eax
shl    $0x18,%eax
mov    0x90(%rsi),%r13d
shl    $0x10,%r13d
add    %eax,%r13d
mov    0x78(%rsi),%eax
shl    $0x18,%eax
mov    0x70(%rsi),%ebp
shl    $0x10,%ebp
add    %eax,%ebp
mov    0x58(%rsi),%eax
shl    $0x18,%eax
mov    0x50(%rsi),%ecx
shl    $0x10,%ecx
add    %eax,%ecx
mov    0x38(%rsi),%eax
shl    $0x18,%eax
mov    0x30(%rsi),%edx
shl    $0x10,%edx
add    %eax,%edx
mov    0x18(%rsi),%ebx
shl    $0x18,%ebx
mov    0x10(%rsi),%eax
shl    $0x10,%eax
add    %ebx,%eax
mov    0x8(%rsi),%ebx
shl    $0x8,%ebx
add    (%rsi),%eax
add    %ebx,%eax
mov    0x28(%rsi),%ebx
add    0x20(%rsi),%edx
shl    $0x8,%ebx
add    %ebx,%edx
mov    0x48(%rsi),%ebx
shl    $0x8,%ebx
add    0x40(%rsi),%ecx
add    %ebx,%ecx
mov    0x68(%rsi),%ebx
shl    $0x8,%ebx
add    0x60(%rsi),%ebp
add    %ebx,%ebp
mov    0x88(%rsi),%ebx
shl    $0x8,%ebx
add    0x80(%rsi),%r13d
add    %ebx,%r13d
mov    0xa8(%rsi),%ebx
add    0xa0(%rsi),%r12d
shl    $0x8,%ebx
add    %ebx,%r12d
mov    0xc8(%rsi),%ebx
shl    $0x8,%ebx
add    0xc0(%rsi),%r15d
add    %ebx,%r15d
mov    0xe8(%rsi),%ebx
shl    $0x8,%ebx
add    0xe0(%rsi),%r14d
add    %ebx,%r14d
mov    0x108(%rsi),%ebx
shl    $0x8,%ebx
add    0x100(%rsi),%r11d
add    %ebx,%r11d
mov    0x128(%rsi),%ebx
add    0x120(%rsi),%r10d
shl    $0x8,%ebx
add    %ebx,%r10d
mov    0x148(%rsi),%ebx
shl    $0x8,%ebx
add    0x140(%rsi),%r9d
add    0x160(%rsi),%r8d
add    %ebx,%r9d
mov    0x168(%rsi),%esi
shl    $0x8,%esi
add    %esi,%r8d
mov    %eax,(%rdi)
mov    %edx,0x4(%rdi)
mov    %ecx,0x8(%rdi)
mov    %ebp,0xc(%rdi)
mov    %r13d,0x10(%rdi)
mov    %r12d,0x14(%rdi)
mov    %r15d,0x18(%rdi)
mov    %r14d,0x1c(%rdi)
mov    %r11d,0x20(%rdi)
mov    %r10d,0x24(%rdi)
mov    %r9d,0x28(%rdi)
mov    %r8d,0x2c(%rdi)
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

LLVM IR (-O2):
define void @fiat_p384_from_bytes(i32* nocapture writeonly %0, i64* %1) {
%3 = getelementptr inbounds i64, i64* %1, i64 47
%4 = load i64, i64* %3
%5 = trunc i64 %4 to i32
%6 = shl i32 %5, 24
%7 = getelementptr inbounds i64, i64* %1, i64 46
%8 = load i64, i64* %7
%9 = trunc i64 %8 to i32
%10 = shl i32 %9, 16
%11 = getelementptr inbounds i64, i64* %1, i64 45
%12 = load i64, i64* %11
%13 = trunc i64 %12 to i32
%14 = shl i32 %13, 8
%15 = getelementptr inbounds i64, i64* %1, i64 44
%16 = load i64, i64* %15
%17 = getelementptr inbounds i64, i64* %1, i64 43
%18 = load i64, i64* %17
%19 = trunc i64 %18 to i32
%20 = shl i32 %19, 24
%21 = getelementptr inbounds i64, i64* %1, i64 42
%22 = load i64, i64* %21
%23 = trunc i64 %22 to i32
%24 = shl i32 %23, 16
%25 = getelementptr inbounds i64, i64* %1, i64 41
%26 = load i64, i64* %25
%27 = trunc i64 %26 to i32
%28 = shl i32 %27, 8
%29 = getelementptr inbounds i64, i64* %1, i64 40
%30 = load i64, i64* %29
%31 = getelementptr inbounds i64, i64* %1, i64 39
%32 = load i64, i64* %31
%33 = trunc i64 %32 to i32
%34 = shl i32 %33, 24
%35 = getelementptr inbounds i64, i64* %1, i64 38
%36 = load i64, i64* %35
%37 = trunc i64 %36 to i32
%38 = shl i32 %37, 16
%39 = getelementptr inbounds i64, i64* %1, i64 37
%40 = load i64, i64* %39
%41 = trunc i64 %40 to i32
%42 = shl i32 %41, 8
%43 = getelementptr inbounds i64, i64* %1, i64 36
%44 = load i64, i64* %43
%45 = getelementptr inbounds i64, i64* %1, i64 35
%46 = load i64, i64* %45
%47 = trunc i64 %46 to i32
%48 = shl i32 %47, 24
%49 = getelementptr inbounds i64, i64* %1, i64 34
%50 = load i64, i64* %49
%51 = trunc i64 %50 to i32
%52 = shl i32 %51, 16
%53 = getelementptr inbounds i64, i64* %1, i64 33
%54 = load i64, i64* %53
%55 = trunc i64 %54 to i32
%56 = shl i32 %55, 8
%57 = getelementptr inbounds i64, i64* %1, i64 32
%58 = load i64, i64* %57
%59 = getelementptr inbounds i64, i64* %1, i64 31
%60 = load i64, i64* %59
%61 = trunc i64 %60 to i32
%62 = shl i32 %61, 24
%63 = getelementptr inbounds i64, i64* %1, i64 30
%64 = load i64, i64* %63
%65 = trunc i64 %64 to i32
%66 = shl i32 %65, 16
%67 = getelementptr inbounds i64, i64* %1, i64 29
%68 = load i64, i64* %67
%69 = trunc i64 %68 to i32
%70 = shl i32 %69, 8
%71 = getelementptr inbounds i64, i64* %1, i64 28
%72 = load i64, i64* %71
%73 = getelementptr inbounds i64, i64* %1, i64 27
%74 = load i64, i64* %73
%75 = trunc i64 %74 to i32
%76 = shl i32 %75, 24
%77 = getelementptr inbounds i64, i64* %1, i64 26
%78 = load i64, i64* %77
%79 = trunc i64 %78 to i32
%80 = shl i32 %79, 16
%81 = getelementptr inbounds i64, i64* %1, i64 25
%82 = load i64, i64* %81
%83 = trunc i64 %82 to i32
%84 = shl i32 %83, 8
%85 = getelementptr inbounds i64, i64* %1, i64 24
%86 = load i64, i64* %85
%87 = getelementptr inbounds i64, i64* %1, i64 23
%88 = load i64, i64* %87
%89 = trunc i64 %88 to i32
%90 = shl i32 %89, 24
%91 = getelementptr inbounds i64, i64* %1, i64 22
%92 = load i64, i64* %91
%93 = trunc i64 %92 to i32
%94 = shl i32 %93, 16
%95 = getelementptr inbounds i64, i64* %1, i64 21
%96 = load i64, i64* %95
%97 = trunc i64 %96 to i32
%98 = shl i32 %97, 8
%99 = getelementptr inbounds i64, i64* %1, i64 20
%100 = load i64, i64* %99
%101 = getelementptr inbounds i64, i64* %1, i64 19
%102 = load i64, i64* %101
%103 = trunc i64 %102 to i32
%104 = shl i32 %103, 24
%105 = getelementptr inbounds i64, i64* %1, i64 18
%106 = load i64, i64* %105
%107 = trunc i64 %106 to i32
%108 = shl i32 %107, 16
%109 = getelementptr inbounds i64, i64* %1, i64 17
%110 = load i64, i64* %109
%111 = trunc i64 %110 to i32
%112 = shl i32 %111, 8
%113 = getelementptr inbounds i64, i64* %1, i64 16
%114 = load i64, i64* %113
%115 = getelementptr inbounds i64, i64* %1, i64 15
%116 = load i64, i64* %115
%117 = trunc i64 %116 to i32
%118 = shl i32 %117, 24
%119 = getelementptr inbounds i64, i64* %1, i64 14
%120 = load i64, i64* %119
%121 = trunc i64 %120 to i32
%122 = shl i32 %121, 16
%123 = getelementptr inbounds i64, i64* %1, i64 13
%124 = load i64, i64* %123
%125 = trunc i64 %124 to i32
%126 = shl i32 %125, 8
%127 = getelementptr inbounds i64, i64* %1, i64 12
%128 = load i64, i64* %127
%129 = getelementptr inbounds i64, i64* %1, i64 11
%130 = load i64, i64* %129
%131 = trunc i64 %130 to i32
%132 = shl i32 %131, 24
%133 = getelementptr inbounds i64, i64* %1, i64 10
%134 = load i64, i64* %133
%135 = trunc i64 %134 to i32
%136 = shl i32 %135, 16
%137 = getelementptr inbounds i64, i64* %1, i64 9
%138 = load i64, i64* %137
%139 = trunc i64 %138 to i32
%140 = shl i32 %139, 8
%141 = getelementptr inbounds i64, i64* %1, i64 8
%142 = load i64, i64* %141
%143 = getelementptr inbounds i64, i64* %1, i64 7
%144 = load i64, i64* %143
%145 = trunc i64 %144 to i32
%146 = shl i32 %145, 24
%147 = getelementptr inbounds i64, i64* %1, i64 6
%148 = load i64, i64* %147
%149 = trunc i64 %148 to i32
%150 = shl i32 %149, 16
%151 = getelementptr inbounds i64, i64* %1, i64 5
%152 = load i64, i64* %151
%153 = trunc i64 %152 to i32
%154 = shl i32 %153, 8
%155 = getelementptr inbounds i64, i64* %1, i64 4
%156 = load i64, i64* %155
%157 = getelementptr inbounds i64, i64* %1, i64 3
%158 = load i64, i64* %157
%159 = trunc i64 %158 to i32
%160 = shl i32 %159, 24
%161 = getelementptr inbounds i64, i64* %1, i64 2
%162 = load i64, i64* %161
%163 = trunc i64 %162 to i32
%164 = shl i32 %163, 16
%165 = getelementptr inbounds i64, i64* %1, i64 1
%166 = load i64, i64* %165
%167 = trunc i64 %166 to i32
%168 = shl i32 %167, 8
%169 = load i64, i64* %1
%170 = trunc i64 %169 to i32
%171 = add i32 %164, %160
%172 = add i32 %171, %170
%173 = add i32 %172, %168
%174 = trunc i64 %156 to i32
%175 = add i32 %150, %146
%176 = add i32 %175, %174
%177 = add i32 %176, %154
%178 = trunc i64 %142 to i32
%179 = add i32 %136, %132
%180 = add i32 %179, %178
%181 = add i32 %180, %140
%182 = trunc i64 %128 to i32
%183 = add i32 %122, %118
%184 = add i32 %183, %182
%185 = add i32 %184, %126
%186 = trunc i64 %114 to i32
%187 = add i32 %108, %104
%188 = add i32 %187, %186
%189 = add i32 %188, %112
%190 = trunc i64 %100 to i32
%191 = add i32 %94, %90
%192 = add i32 %191, %190
%193 = add i32 %192, %98
%194 = trunc i64 %86 to i32
%195 = add i32 %80, %76
%196 = add i32 %195, %194
%197 = add i32 %196, %84
%198 = trunc i64 %72 to i32
%199 = add i32 %66, %62
%200 = add i32 %199, %198
%201 = add i32 %200, %70
%202 = trunc i64 %58 to i32
%203 = add i32 %52, %48
%204 = add i32 %203, %202
%205 = add i32 %204, %56
%206 = trunc i64 %44 to i32
%207 = add i32 %38, %34
%208 = add i32 %207, %206
%209 = add i32 %208, %42
%210 = trunc i64 %30 to i32
%211 = add i32 %24, %20
%212 = add i32 %211, %210
%213 = add i32 %212, %28
%214 = trunc i64 %16 to i32
%215 = add i32 %10, %6
%216 = add i32 %215, %214
%217 = add i32 %216, %14
store i32 %173, i32* %0
%218 = getelementptr inbounds i32, i32* %0, i64 1
store i32 %177, i32* %218
%219 = getelementptr inbounds i32, i32* %0, i64 2
store i32 %181, i32* %219
%220 = getelementptr inbounds i32, i32* %0, i64 3
store i32 %185, i32* %220
%221 = getelementptr inbounds i32, i32* %0, i64 4
store i32 %189, i32* %221
%222 = getelementptr inbounds i32, i32* %0, i64 5
store i32 %193, i32* %222
%223 = getelementptr inbounds i32, i32* %0, i64 6
store i32 %197, i32* %223
%224 = getelementptr inbounds i32, i32* %0, i64 7
store i32 %201, i32* %224
%225 = getelementptr inbounds i32, i32* %0, i64 8
store i32 %205, i32* %225
%226 = getelementptr inbounds i32, i32* %0, i64 9
store i32 %209, i32* %226
%227 = getelementptr inbounds i32, i32* %0, i64 10
store i32 %213, i32* %227
%228 = getelementptr inbounds i32, i32* %0, i64 11
store i32 %217, i32* %228
ret void
}