user: 请将这段汇编代码片段转换成等效的C代码:

```asm
<fiat_p384_from_bytes>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x118,%rsp
  mov    %rdi,-0x188(%rbp)
  mov    %rsi,-0x190(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0x178,%rax
  mov    (%rax),%rax
  shl    $0x18,%eax
  mov    %eax,-0x180(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0x170,%rax
  mov    (%rax),%rax
  shl    $0x10,%eax
  mov    %eax,-0x17c(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0x168,%rax
  mov    (%rax),%rax
  shl    $0x8,%eax
  mov    %eax,-0x178(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0x160,%rax
  mov    (%rax),%rax
  mov    %rax,-0x60(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0x158,%rax
  mov    (%rax),%rax
  shl    $0x18,%eax
  mov    %eax,-0x174(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0x150,%rax
  mov    (%rax),%rax
  shl    $0x10,%eax
  mov    %eax,-0x170(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0x148,%rax
  mov    (%rax),%rax
  shl    $0x8,%eax
  mov    %eax,-0x16c(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0x140,%rax
  mov    (%rax),%rax
  mov    %rax,-0x58(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0x138,%rax
  mov    (%rax),%rax
  shl    $0x18,%eax
  mov    %eax,-0x168(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0x130,%rax
  mov    (%rax),%rax
  shl    $0x10,%eax
  mov    %eax,-0x164(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0x128,%rax
  mov    (%rax),%rax
  shl    $0x8,%eax
  mov    %eax,-0x160(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0x120,%rax
  mov    (%rax),%rax
  mov    %rax,-0x50(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0x118,%rax
  mov    (%rax),%rax
  shl    $0x18,%eax
  mov    %eax,-0x15c(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0x110,%rax
  mov    (%rax),%rax
  shl    $0x10,%eax
  mov    %eax,-0x158(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0x108,%rax
  mov    (%rax),%rax
  shl    $0x8,%eax
  mov    %eax,-0x154(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0x100,%rax
  mov    (%rax),%rax
  mov    %rax,-0x48(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0xf8,%rax
  mov    (%rax),%rax
  shl    $0x18,%eax
  mov    %eax,-0x150(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0xf0,%rax
  mov    (%rax),%rax
  shl    $0x10,%eax
  mov    %eax,-0x14c(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0xe8,%rax
  mov    (%rax),%rax
  shl    $0x8,%eax
  mov    %eax,-0x148(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0xe0,%rax
  mov    (%rax),%rax
  mov    %rax,-0x40(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0xd8,%rax
  mov    (%rax),%rax
  shl    $0x18,%eax
  mov    %eax,-0x144(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0xd0,%rax
  mov    (%rax),%rax
  shl    $0x10,%eax
  mov    %eax,-0x140(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0xc8,%rax
  mov    (%rax),%rax
  shl    $0x8,%eax
  mov    %eax,-0x13c(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0xc0,%rax
  mov    (%rax),%rax
  mov    %rax,-0x38(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0xb8,%rax
  mov    (%rax),%rax
  shl    $0x18,%eax
  mov    %eax,-0x138(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0xb0,%rax
  mov    (%rax),%rax
  shl    $0x10,%eax
  mov    %eax,-0x134(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0xa8,%rax
  mov    (%rax),%rax
  shl    $0x8,%eax
  mov    %eax,-0x130(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0xa0,%rax
  mov    (%rax),%rax
  mov    %rax,-0x30(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0x98,%rax
  mov    (%rax),%rax
  shl    $0x18,%eax
  mov    %eax,-0x12c(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0x90,%rax
  mov    (%rax),%rax
  shl    $0x10,%eax
  mov    %eax,-0x128(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0x88,%rax
  mov    (%rax),%rax
  shl    $0x8,%eax
  mov    %eax,-0x124(%rbp)
  mov    -0x190(%rbp),%rax
  sub    $0xffffffffffffff80,%rax
  mov    (%rax),%rax
  mov    %rax,-0x28(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0x78,%rax
  mov    (%rax),%rax
  shl    $0x18,%eax
  mov    %eax,-0x120(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0x70,%rax
  mov    (%rax),%rax
  shl    $0x10,%eax
  mov    %eax,-0x11c(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0x68,%rax
  mov    (%rax),%rax
  shl    $0x8,%eax
  mov    %eax,-0x118(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0x60,%rax
  mov    (%rax),%rax
  mov    %rax,-0x20(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0x58,%rax
  mov    (%rax),%rax
  shl    $0x18,%eax
  mov    %eax,-0x114(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0x50,%rax
  mov    (%rax),%rax
  shl    $0x10,%eax
  mov    %eax,-0x110(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0x48,%rax
  mov    (%rax),%rax
  shl    $0x8,%eax
  mov    %eax,-0x10c(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0x40,%rax
  mov    (%rax),%rax
  mov    %rax,-0x18(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%rax
  shl    $0x18,%eax
  mov    %eax,-0x108(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0x30,%rax
  mov    (%rax),%rax
  shl    $0x10,%eax
  mov    %eax,-0x104(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%rax
  shl    $0x8,%eax
  mov    %eax,-0x100(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%rax
  shl    $0x18,%eax
  mov    %eax,-0xfc(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  shl    $0x10,%eax
  mov    %eax,-0xf8(%rbp)
  mov    -0x190(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  shl    $0x8,%eax
  mov    %eax,-0xf4(%rbp)
  mov    -0x190(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x8(%rbp)
  mov    -0x8(%rbp),%rax
  mov    %eax,%edx
  mov    -0xf4(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0xf0(%rbp)
  mov    -0xf8(%rbp),%edx
  mov    -0xf0(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0xec(%rbp)
  mov    -0xfc(%rbp),%edx
  mov    -0xec(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0xe8(%rbp)
  mov    -0x10(%rbp),%rax
  mov    %eax,%edx
  mov    -0x100(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0xe4(%rbp)
  mov    -0x104(%rbp),%edx
  mov    -0xe4(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0xe0(%rbp)
  mov    -0x108(%rbp),%edx
  mov    -0xe0(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0xdc(%rbp)
  mov    -0x18(%rbp),%rax
  mov    %eax,%edx
  mov    -0x10c(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0xd8(%rbp)
  mov    -0x110(%rbp),%edx
  mov    -0xd8(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0xd4(%rbp)
  mov    -0x114(%rbp),%edx
  mov    -0xd4(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0xd0(%rbp)
  mov    -0x20(%rbp),%rax
  mov    %eax,%edx
  mov    -0x118(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0xcc(%rbp)
  mov    -0x11c(%rbp),%edx
  mov    -0xcc(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0xc8(%rbp)
  mov    -0x120(%rbp),%edx
  mov    -0xc8(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0xc4(%rbp)
  mov    -0x28(%rbp),%rax
  mov    %eax,%edx
  mov    -0x124(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0xc0(%rbp)
  mov    -0x128(%rbp),%edx
  mov    -0xc0(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0xbc(%rbp)
  mov    -0x12c(%rbp),%edx
  mov    -0xbc(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0xb8(%rbp)
  mov    -0x30(%rbp),%rax
  mov    %eax,%edx
  mov    -0x130(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0xb4(%rbp)
  mov    -0x134(%rbp),%edx
  mov    -0xb4(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0xb0(%rbp)
  mov    -0x138(%rbp),%edx
  mov    -0xb0(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0xac(%rbp)
  mov    -0x38(%rbp),%rax
  mov    %eax,%edx
  mov    -0x13c(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0xa8(%rbp)
  mov    -0x140(%rbp),%edx
  mov    -0xa8(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0xa4(%rbp)
  mov    -0x144(%rbp),%edx
  mov    -0xa4(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0xa0(%rbp)
  mov    -0x40(%rbp),%rax
  mov    %eax,%edx
  mov    -0x148(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x9c(%rbp)
  mov    -0x14c(%rbp),%edx
  mov    -0x9c(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x98(%rbp)
  mov    -0x150(%rbp),%edx
  mov    -0x98(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x94(%rbp)
  mov    -0x48(%rbp),%rax
  mov    %eax,%edx
  mov    -0x154(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x90(%rbp)
  mov    -0x158(%rbp),%edx
  mov    -0x90(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x8c(%rbp)
  mov    -0x15c(%rbp),%edx
  mov    -0x8c(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x88(%rbp)
  mov    -0x50(%rbp),%rax
  mov    %eax,%edx
  mov    -0x160(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x84(%rbp)
  mov    -0x164(%rbp),%edx
  mov    -0x84(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x80(%rbp)
  mov    -0x168(%rbp),%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x7c(%rbp)
  mov    -0x58(%rbp),%rax
  mov    %eax,%edx
  mov    -0x16c(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x78(%rbp)
  mov    -0x170(%rbp),%edx
  mov    -0x78(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x74(%rbp)
  mov    -0x174(%rbp),%edx
  mov    -0x74(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x70(%rbp)
  mov    -0x60(%rbp),%rax
  mov    %eax,%edx
  mov    -0x178(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x6c(%rbp)
  mov    -0x17c(%rbp),%edx
  mov    -0x6c(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x68(%rbp)
  mov    -0x180(%rbp),%edx
  mov    -0x68(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x64(%rbp)
  mov    -0x188(%rbp),%rax
  mov    -0xe8(%rbp),%edx
  mov    %edx,(%rax)
  mov    -0x188(%rbp),%rax
  lea    0x4(%rax),%rdx
  mov    -0xdc(%rbp),%eax
  mov    %eax,(%rdx)
  mov    -0x188(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    -0xd0(%rbp),%eax
  mov    %eax,(%rdx)
  mov    -0x188(%rbp),%rax
  lea    0xc(%rax),%rdx
  mov    -0xc4(%rbp),%eax
  mov    %eax,(%rdx)
  mov    -0x188(%rbp),%rax
  lea    0x10(%rax),%rdx
  mov    -0xb8(%rbp),%eax
  mov    %eax,(%rdx)
  mov    -0x188(%rbp),%rax
  lea    0x14(%rax),%rdx
  mov    -0xac(%rbp),%eax
  mov    %eax,(%rdx)
  mov    -0x188(%rbp),%rax
  lea    0x18(%rax),%rdx
  mov    -0xa0(%rbp),%eax
  mov    %eax,(%rdx)
  mov    -0x188(%rbp),%rax
  lea    0x1c(%rax),%rdx
  mov    -0x94(%rbp),%eax
  mov    %eax,(%rdx)
  mov    -0x188(%rbp),%rax
  lea    0x20(%rax),%rdx
  mov    -0x88(%rbp),%eax
  mov    %eax,(%rdx)
  mov    -0x188(%rbp),%rax
  lea    0x24(%rax),%rdx
  mov    -0x7c(%rbp),%eax
  mov    %eax,(%rdx)
  mov    -0x188(%rbp),%rax
  lea    0x28(%rax),%rdx
  mov    -0x70(%rbp),%eax
  mov    %eax,(%rdx)
  mov    -0x188(%rbp),%rax
  lea    0x2c(%rax),%rdx
  mov    -0x64(%rbp),%eax
  mov    %eax,(%rdx)
  nop
  leave
  ret
```

assistant: ```c
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;
}
```