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

```asm
<fiat_p224_to_bytes>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x78,%rsp
  mov    0x18(%rsi),%r14d
  mov    0x14(%rsi),%ebx
  mov    0x10(%rsi),%ebp
  mov    0xc(%rsi),%r12d
  mov    %rdi,0x68(%rsp)
  mov    $0xff,%edi
  mov    0x8(%rsi),%r13d
  mov    (%rsi),%r15d
  mov    %r14d,0x64(%rsp)
  mov    0x4(%rsi),%r14d
  call   <UINT8_C@plt>
  mov    $0xff,%edi
  mov    %eax,0x60(%rsp)
  call   <UINT8_C@plt>
  mov    $0xff,%edi
  mov    %eax,%r8d
  mov    0x60(%rsp),%eax
  and    %r15d,%eax
  cltq
  movq   %rax,%xmm1
  mov    %r15d,%eax
  sar    $0x8,%eax
  and    %r8d,%eax
  cltq
  movq   %rax,%xmm7
  punpcklqdq %xmm7,%xmm1
  movaps %xmm1,0x50(%rsp)
  call   <UINT8_C@plt>
  mov    $0xff,%edi
  mov    %eax,0x60(%rsp)
  call   <UINT8_C@plt>
  mov    $0xff,%edi
  and    %r14d,%eax
  mov    %eax,(%rsp)
  call   <UINT8_C@plt>
  mov    %r14d,%ecx
  mov    $0xff,%edi
  sar    $0x8,%ecx
  and    %eax,%ecx
  mov    %ecx,0x10(%rsp)
  call   <UINT8_C@plt>
  mov    %r15d,%esi
  movd   0x10(%rsp),%xmm0
  mov    $0xff,%edi
  sar    $0x18,%esi
  mov    %eax,%r8d
  movd   %esi,%xmm5
  mov    %r14d,%esi
  sar    $0x18,%r14d
  sar    $0x10,%esi
  mov    %esi,%eax
  and    %r8d,%eax
  movd   %eax,%xmm1
  punpckldq %xmm1,%xmm0
  movd   (%rsp),%xmm1
  punpckldq %xmm1,%xmm5
  punpcklqdq %xmm0,%xmm5
  movaps %xmm5,0x40(%rsp)
  call   <UINT8_C@plt>
  mov    $0xff,%edi
  and    %r13d,%eax
  mov    %eax,(%rsp)
  call   <UINT8_C@plt>
  mov    %r13d,%ecx
  mov    $0xff,%edi
  sar    $0x8,%ecx
  and    %eax,%ecx
  mov    %ecx,0x10(%rsp)
  call   <UINT8_C@plt>
  mov    %r13d,%esi
  movd   (%rsp),%xmm7
  movd   0x10(%rsp),%xmm0
  sar    $0x10,%esi
  mov    %eax,%r8d
  movd   %r14d,%xmm6
  mov    $0xff,%edi
  mov    %esi,%eax
  punpckldq %xmm7,%xmm6
  sar    $0x18,%r13d
  and    %r8d,%eax
  movd   %eax,%xmm2
  punpckldq %xmm2,%xmm0
  punpcklqdq %xmm0,%xmm6
  movaps %xmm6,0x30(%rsp)
  call   <UINT8_C@plt>
  mov    $0xff,%edi
  and    %r12d,%eax
  mov    %eax,(%rsp)
  call   <UINT8_C@plt>
  mov    %r12d,%ecx
  mov    $0xff,%edi
  sar    $0x8,%ecx
  and    %eax,%ecx
  mov    %ecx,%r14d
  call   <UINT8_C@plt>
  mov    %r12d,%edx
  movd   (%rsp),%xmm1
  movd   %r14d,%xmm0
  sar    $0x10,%edx
  mov    %eax,%r8d
  movd   %r13d,%xmm4
  mov    $0xff,%edi
  sar    $0x18,%r12d
  mov    %edx,%eax
  punpckldq %xmm1,%xmm4
  sar    $0x10,%r15d
  and    %r8d,%eax
  movd   %eax,%xmm6
  punpckldq %xmm6,%xmm0
  punpcklqdq %xmm0,%xmm4
  movaps %xmm4,0x20(%rsp)
  call   <UINT8_C@plt>
  mov    $0xff,%edi
  and    %ebp,%eax
  mov    %eax,%r14d
  call   <UINT8_C@plt>
  mov    %ebp,%ecx
  mov    $0xff,%edi
  sar    $0x8,%ecx
  mov    %ecx,%r13d
  and    %eax,%r13d
  call   <UINT8_C@plt>
  movd   %r13d,%xmm0
  movd   %r14d,%xmm2
  mov    $0xff,%edi
  mov    %eax,%r8d
  mov    %ebp,%eax
  sar    $0x18,%ebp
  sar    $0x10,%eax
  and    %r8d,%eax
  movd   %eax,%xmm3
  punpckldq %xmm3,%xmm0
  movd   %r12d,%xmm3
  mov    %ebx,%r12d
  punpckldq %xmm2,%xmm3
  sar    $0x8,%r12d
  punpcklqdq %xmm0,%xmm3
  movaps %xmm3,0x10(%rsp)
  call   <UINT8_C@plt>
  mov    $0xff,%edi
  mov    %eax,%r13d
  call   <UINT8_C@plt>
  mov    $0xff,%edi
  and    %ebx,%r13d
  and    %eax,%r12d
  call   <UINT8_C@plt>
  movd   %r13d,%xmm7
  movd   %r12d,%xmm0
  movd   %ebp,%xmm2
  mov    %eax,%r8d
  mov    %ebx,%eax
  punpckldq %xmm7,%xmm2
  mov    $0xff,%edi
  sar    $0x10,%eax
  sar    $0x18,%ebx
  and    %r8d,%eax
  movd   %eax,%xmm6
  punpckldq %xmm6,%xmm0
  punpcklqdq %xmm0,%xmm2
  movaps %xmm2,(%rsp)
  call   <UINT8_C@plt>
  mov    0x64(%rsp),%r14d
  mov    $0xff,%edi
  mov    %eax,%r12d
  call   <UINT8_C@plt>
  mov    %r14d,%ebp
  mov    $0xff,%edi
  and    %r14d,%r12d
  sar    $0x8,%ebp
  and    %eax,%ebp
  call   <UINT8_C@plt>
  movd   %ebp,%xmm7
  mov    0x68(%rsp),%rdx
  movd   %r12d,%xmm3
  mov    %eax,%r8d
  mov    %r14d,%eax
  movd   %ebx,%xmm0
  movdqa 0x40(%rsp),%xmm5
  sar    $0x10,%eax
  punpckldq %xmm3,%xmm0
  movdqa (%rsp),%xmm2
  movdqa 0x30(%rsp),%xmm6
  and    %r8d,%eax
  movdqa %xmm5,%xmm8
  and    0x60(%rsp),%r15d
  movdqa 0x20(%rsp),%xmm4
  movd   %eax,%xmm1
  movdqa 0x10(%rsp),%xmm3
  mov    %r14d,%eax
  movslq %r15d,%r15
  punpckldq %xmm1,%xmm7
  movdqa 0x50(%rsp),%xmm1
  sar    $0x18,%eax
  mov    %r15,0x10(%rdx)
  punpcklqdq %xmm7,%xmm0
  cltq
  movups %xmm1,(%rdx)
  pxor   %xmm1,%xmm1
  movdqa %xmm1,%xmm7
  mov    %rax,0xd8(%rdx)
  pcmpgtd %xmm5,%xmm7
  punpckhdq %xmm7,%xmm5
  punpckldq %xmm7,%xmm8
  movdqa %xmm6,%xmm7
  movups %xmm5,0x28(%rdx)
  movdqa %xmm1,%xmm5
  pcmpgtd %xmm6,%xmm5
  movups %xmm8,0x18(%rdx)
  punpckhdq %xmm5,%xmm6
  punpckldq %xmm5,%xmm7
  movdqa %xmm1,%xmm5
  pcmpgtd %xmm4,%xmm5
  movups %xmm6,0x48(%rdx)
  movdqa %xmm4,%xmm6
  movups %xmm7,0x38(%rdx)
  punpckhdq %xmm5,%xmm4
  punpckldq %xmm5,%xmm6
  movdqa %xmm3,%xmm5
  movups %xmm4,0x68(%rdx)
  movdqa %xmm1,%xmm4
  pcmpgtd %xmm3,%xmm4
  movups %xmm6,0x58(%rdx)
  punpckhdq %xmm4,%xmm3
  punpckldq %xmm4,%xmm5
  movdqa %xmm2,%xmm4
  movups %xmm3,0x88(%rdx)
  movdqa %xmm1,%xmm3
  pcmpgtd %xmm0,%xmm1
  pcmpgtd %xmm2,%xmm3
  movups %xmm5,0x78(%rdx)
  punpckhdq %xmm3,%xmm2
  punpckldq %xmm3,%xmm4
  movups %xmm2,0xa8(%rdx)
  movdqa %xmm0,%xmm2
  punpckhdq %xmm1,%xmm0
  punpckldq %xmm1,%xmm2
  movups %xmm4,0x98(%rdx)
  movups %xmm2,0xb8(%rdx)
  movups %xmm0,0xc8(%rdx)
  add    $0x78,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
```

assistant: ```c
void fiat_p224_to_bytes(uint8_t out1[28], const uint32_t arg1[7]) {
  uint32_t x1;
  uint32_t x2;
  uint32_t x3;
  uint32_t x4;
  uint32_t x5;
  uint32_t x6;
  uint32_t x7;
  uint8_t x8;
  uint32_t x9;
  uint8_t x10;
  uint32_t x11;
  uint8_t x12;
  uint8_t x13;
  uint8_t x14;
  uint32_t x15;
  uint8_t x16;
  uint32_t x17;
  uint8_t x18;
  uint8_t x19;
  uint8_t x20;
  uint32_t x21;
  uint8_t x22;
  uint32_t x23;
  uint8_t x24;
  uint8_t x25;
  uint8_t x26;
  uint32_t x27;
  uint8_t x28;
  uint32_t x29;
  uint8_t x30;
  uint8_t x31;
  uint8_t x32;
  uint32_t x33;
  uint8_t x34;
  uint32_t x35;
  uint8_t x36;
  uint8_t x37;
  uint8_t x38;
  uint32_t x39;
  uint8_t x40;
  uint32_t x41;
  uint8_t x42;
  uint8_t x43;
  uint8_t x44;
  uint32_t x45;
  uint8_t x46;
  uint32_t x47;
  uint8_t x48;
  uint8_t x49;
  x1 = (arg1[6]);
  x2 = (arg1[5]);
  x3 = (arg1[4]);
  x4 = (arg1[3]);
  x5 = (arg1[2]);
  x6 = (arg1[1]);
  x7 = (arg1[0]);
  x8 = (uint8_t)(x7 & UINT8_C(0xff));
  x9 = (x7 >> 8);
  x10 = (uint8_t)(x9 & UINT8_C(0xff));
  x11 = (x9 >> 8);
  x12 = (uint8_t)(x11 & UINT8_C(0xff));
  x13 = (uint8_t)(x11 >> 8);
  x14 = (uint8_t)(x6 & UINT8_C(0xff));
  x15 = (x6 >> 8);
  x16 = (uint8_t)(x15 & UINT8_C(0xff));
  x17 = (x15 >> 8);
  x18 = (uint8_t)(x17 & UINT8_C(0xff));
  x19 = (uint8_t)(x17 >> 8);
  x20 = (uint8_t)(x5 & UINT8_C(0xff));
  x21 = (x5 >> 8);
  x22 = (uint8_t)(x21 & UINT8_C(0xff));
  x23 = (x21 >> 8);
  x24 = (uint8_t)(x23 & UINT8_C(0xff));
  x25 = (uint8_t)(x23 >> 8);
  x26 = (uint8_t)(x4 & UINT8_C(0xff));
  x27 = (x4 >> 8);
  x28 = (uint8_t)(x27 & UINT8_C(0xff));
  x29 = (x27 >> 8);
  x30 = (uint8_t)(x29 & UINT8_C(0xff));
  x31 = (uint8_t)(x29 >> 8);
  x32 = (uint8_t)(x3 & UINT8_C(0xff));
  x33 = (x3 >> 8);
  x34 = (uint8_t)(x33 & UINT8_C(0xff));
  x35 = (x33 >> 8);
  x36 = (uint8_t)(x35 & UINT8_C(0xff));
  x37 = (uint8_t)(x35 >> 8);
  x38 = (uint8_t)(x2 & UINT8_C(0xff));
  x39 = (x2 >> 8);
  x40 = (uint8_t)(x39 & UINT8_C(0xff));
  x41 = (x39 >> 8);
  x42 = (uint8_t)(x41 & UINT8_C(0xff));
  x43 = (uint8_t)(x41 >> 8);
  x44 = (uint8_t)(x1 & UINT8_C(0xff));
  x45 = (x1 >> 8);
  x46 = (uint8_t)(x45 & UINT8_C(0xff));
  x47 = (x45 >> 8);
  x48 = (uint8_t)(x47 & UINT8_C(0xff));
  x49 = (uint8_t)(x47 >> 8);
  out1[0] = x8;
  out1[1] = x10;
  out1[2] = x12;
  out1[3] = x13;
  out1[4] = x14;
  out1[5] = x16;
  out1[6] = x18;
  out1[7] = x19;
  out1[8] = x20;
  out1[9] = x22;
  out1[10] = x24;
  out1[11] = x25;
  out1[12] = x26;
  out1[13] = x28;
  out1[14] = x30;
  out1[15] = x31;
  out1[16] = x32;
  out1[17] = x34;
  out1[18] = x36;
  out1[19] = x37;
  out1[20] = x38;
  out1[21] = x40;
  out1[22] = x42;
  out1[23] = x43;
  out1[24] = x44;
  out1[25] = x46;
  out1[26] = x48;
  out1[27] = x49;
}
```