user: 请将以下的汇编代码转换成C语言代码：

```asm
<fiat_p384_from_bytes>:
  endbr64
  sub    $0x30,%rsp
  movdqu 0x70(%rsi),%xmm5
  movdqu (%rsi),%xmm3
  movdqu 0xa0(%rsi),%xmm4
  movdqu 0x30(%rsi),%xmm13
  movdqu 0xb0(%rsi),%xmm7
  movaps %xmm5,-0x68(%rsp)
  movdqu 0xe0(%rsi),%xmm6
  movaps %xmm4,-0x48(%rsp)
  movdqu 0x20(%rsi),%xmm14
  movdqu 0x10(%rsi),%xmm2
  movdqu 0x80(%rsi),%xmm5
  movdqu 0xf0(%rsi),%xmm1
  movaps %xmm13,-0x78(%rsp)
  movdqu 0x120(%rsi),%xmm15
  movdqu 0x160(%rsi),%xmm4
  movaps %xmm7,-0x38(%rsp)
  movdqu 0x60(%rsi),%xmm13
  movdqu 0x40(%rsi),%xmm9
  movaps %xmm5,-0x58(%rsp)
  movdqu 0x50(%rsi),%xmm8
  movaps %xmm6,-0x28(%rsp)
  movdqu 0x90(%rsi),%xmm12
  movdqu 0xc0(%rsi),%xmm7
  movdqu 0x140(%rsi),%xmm6
  movaps %xmm1,-0x18(%rsp)
  movdqa %xmm9,%xmm0
  movdqu 0xd0(%rsi),%xmm11
  movdqu 0x110(%rsi),%xmm1
  movaps %xmm15,-0x8(%rsp)
  punpckhqdq %xmm13,%xmm0
  movdqu 0x100(%rsi),%xmm10
  movdqu 0x150(%rsi),%xmm5
  punpcklqdq %xmm13,%xmm9
  movdqu 0x130(%rsi),%xmm15
  movaps %xmm4,0x8(%rsp)
  movdqu 0x170(%rsi),%xmm4
  movdqa -0x78(%rsp),%xmm13
  movaps %xmm4,0x18(%rsp)
  movdqa %xmm3,%xmm4
  punpcklqdq %xmm14,%xmm3
  punpckhqdq %xmm14,%xmm4
  movdqa -0x68(%rsp),%xmm14
  shufps $0x88,%xmm9,%xmm3
  movdqa %xmm8,%xmm9
  shufps $0x88,%xmm0,%xmm4
  movdqa %xmm2,%xmm0
  pslld  $0x8,%xmm4
  punpckhqdq %xmm13,%xmm2
  punpcklqdq %xmm13,%xmm0
  paddd  %xmm4,%xmm3
  punpcklqdq %xmm14,%xmm9
  movdqa %xmm0,%xmm4
  punpckhqdq %xmm14,%xmm8
  shufps $0x88,%xmm9,%xmm4
  pslld  $0x10,%xmm4
  shufps $0x88,%xmm8,%xmm2
  pslld  $0x18,%xmm2
  paddd  %xmm3,%xmm4
  movdqa -0x58(%rsp),%xmm9
  movdqa %xmm7,%xmm3
  movdqa -0x28(%rsp),%xmm8
  paddd  %xmm2,%xmm4
  movups %xmm4,(%rdi)
  movdqa -0x48(%rsp),%xmm4
  movdqa %xmm9,%xmm0
  punpckhqdq %xmm8,%xmm3
  punpcklqdq %xmm8,%xmm7
  punpckhqdq %xmm4,%xmm0
  movdqa %xmm0,%xmm2
  movdqa %xmm9,%xmm0
  punpcklqdq %xmm4,%xmm0
  shufps $0x88,%xmm3,%xmm2
  movdqa -0x18(%rsp),%xmm4
  pslld  $0x8,%xmm2
  shufps $0x88,%xmm7,%xmm0
  movdqa -0x38(%rsp),%xmm7
  paddd  %xmm2,%xmm0
  movdqa %xmm11,%xmm3
  movdqa %xmm12,%xmm2
  punpcklqdq %xmm4,%xmm3
  punpckhqdq %xmm4,%xmm11
  punpcklqdq %xmm7,%xmm2
  shufps $0x88,%xmm3,%xmm2
  pslld  $0x10,%xmm2
  movdqa 0x8(%rsp),%xmm3
  paddd  %xmm2,%xmm0
  movdqa %xmm12,%xmm2
  punpckhqdq %xmm7,%xmm2
  movdqa -0x8(%rsp),%xmm7
  shufps $0x88,%xmm11,%xmm2
  pslld  $0x18,%xmm2
  paddd  %xmm2,%xmm0
  movdqa %xmm6,%xmm2
  punpcklqdq %xmm3,%xmm6
  movups %xmm0,0x10(%rdi)
  movdqa %xmm10,%xmm0
  punpckhqdq %xmm3,%xmm2
  movdqa %xmm5,%xmm3
  punpckhqdq %xmm7,%xmm0
  shufps $0x88,%xmm2,%xmm0
  movdqa %xmm10,%xmm2
  pslld  $0x8,%xmm0
  punpcklqdq %xmm7,%xmm2
  shufps $0x88,%xmm6,%xmm2
  movdqa 0x18(%rsp),%xmm6
  paddd  %xmm2,%xmm0
  movdqa %xmm1,%xmm2
  punpcklqdq %xmm15,%xmm2
  punpckhqdq %xmm15,%xmm1
  punpcklqdq %xmm6,%xmm3
  punpckhqdq %xmm6,%xmm5
  shufps $0x88,%xmm3,%xmm2
  pslld  $0x10,%xmm2
  shufps $0x88,%xmm5,%xmm1
  pslld  $0x18,%xmm1
  paddd  %xmm2,%xmm0
  paddd  %xmm0,%xmm1
  movups %xmm1,0x20(%rdi)
  add    $0x30,%rsp
  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;
}
```