user: 请从给定的汇编指令推导出C源代码:

```asm
<fcontract>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %rdi,-0x38(%rbp)
  mov    %rsi,-0x40(%rbp)
  movl   $0x0,-0x24(%rbp)
  jmp    L9
L11:
  movl   $0x0,-0x28(%rbp)
  jmp    L37
L24:
  mov    -0x28(%rbp),%eax
  and    $0x1,%eax
  test   %eax,%eax
  je     L16
  mov    -0x28(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  sar    $0x1f,%eax
  mov    %eax,-0x8(%rbp)
  mov    -0x28(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  and    -0x8(%rbp),%eax
  sar    $0x19,%eax
  neg    %eax
  mov    %eax,-0x4(%rbp)
  mov    -0x28(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%edx
  mov    -0x4(%rbp),%eax
  shl    $0x19,%eax
  mov    %eax,%ecx
  mov    -0x28(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rsi
  mov    -0x40(%rbp),%rax
  add    %rsi,%rax
  add    %ecx,%edx
  mov    %edx,(%rax)
  mov    -0x28(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    -0x28(%rbp),%edx
  movslq %edx,%rdx
  add    $0x1,%rdx
  lea    0x0(,%rdx,4),%rcx
  mov    -0x40(%rbp),%rdx
  add    %rcx,%rdx
  sub    -0x4(%rbp),%eax
  mov    %eax,(%rdx)
  jmp    L4
L16:
  mov    -0x28(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  sar    $0x1f,%eax
  mov    %eax,-0x10(%rbp)
  mov    -0x28(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  and    -0x10(%rbp),%eax
  sar    $0x1a,%eax
  neg    %eax
  mov    %eax,-0xc(%rbp)
  mov    -0x28(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%edx
  mov    -0xc(%rbp),%eax
  shl    $0x1a,%eax
  mov    %eax,%ecx
  mov    -0x28(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rsi
  mov    -0x40(%rbp),%rax
  add    %rsi,%rax
  add    %ecx,%edx
  mov    %edx,(%rax)
  mov    -0x28(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    -0x28(%rbp),%edx
  movslq %edx,%rdx
  add    $0x1,%rdx
  lea    0x0(,%rdx,4),%rcx
  mov    -0x40(%rbp),%rdx
  add    %rcx,%rdx
  sub    -0xc(%rbp),%eax
  mov    %eax,(%rdx)
L4:
  addl   $0x1,-0x28(%rbp)
L37:
  cmpl   $0x8,-0x28(%rbp)
  jle    L24
  mov    -0x40(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  sar    $0x1f,%eax
  mov    %eax,-0x18(%rbp)
  mov    -0x40(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  and    -0x18(%rbp),%eax
  sar    $0x19,%eax
  neg    %eax
  mov    %eax,-0x14(%rbp)
  mov    -0x40(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%edx
  mov    -0x14(%rbp),%eax
  shl    $0x19,%eax
  mov    %eax,%ecx
  mov    -0x40(%rbp),%rax
  add    $0x24,%rax
  add    %ecx,%edx
  mov    %edx,(%rax)
  mov    -0x40(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x14(%rbp),%eax
  imul   $0xffffffed,%eax,%eax
  add    %eax,%edx
  mov    -0x40(%rbp),%rax
  mov    %edx,(%rax)
  addl   $0x1,-0x24(%rbp)
L9:
  cmpl   $0x1,-0x24(%rbp)
  jle    L11
  mov    -0x40(%rbp),%rax
  mov    (%rax),%eax
  sar    $0x1f,%eax
  mov    %eax,-0x20(%rbp)
  mov    -0x40(%rbp),%rax
  mov    (%rax),%eax
  and    -0x20(%rbp),%eax
  sar    $0x1a,%eax
  neg    %eax
  mov    %eax,-0x1c(%rbp)
  mov    -0x40(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x1c(%rbp),%eax
  shl    $0x1a,%eax
  add    %eax,%edx
  mov    -0x40(%rbp),%rax
  mov    %edx,(%rax)
  mov    -0x40(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%eax
  mov    -0x40(%rbp),%rdx
  add    $0x4,%rdx
  sub    -0x1c(%rbp),%eax
  mov    %eax,(%rdx)
  mov    -0x40(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%edx
  mov    -0x40(%rbp),%rax
  add    $0x4,%rax
  shl    $0x2,%edx
  mov    %edx,(%rax)
  mov    -0x40(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%edx
  mov    -0x40(%rbp),%rax
  add    $0x8,%rax
  shl    $0x3,%edx
  mov    %edx,(%rax)
  mov    -0x40(%rbp),%rax
  add    $0xc,%rax
  mov    (%rax),%edx
  mov    -0x40(%rbp),%rax
  add    $0xc,%rax
  shl    $0x5,%edx
  mov    %edx,(%rax)
  mov    -0x40(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%edx
  mov    -0x40(%rbp),%rax
  add    $0x10,%rax
  shl    $0x6,%edx
  mov    %edx,(%rax)
  mov    -0x40(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%edx
  mov    -0x40(%rbp),%rax
  add    $0x18,%rax
  add    %edx,%edx
  mov    %edx,(%rax)
  mov    -0x40(%rbp),%rax
  add    $0x1c,%rax
  mov    (%rax),%edx
  mov    -0x40(%rbp),%rax
  add    $0x1c,%rax
  shl    $0x3,%edx
  mov    %edx,(%rax)
  mov    -0x40(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%edx
  mov    -0x40(%rbp),%rax
  add    $0x20,%rax
  shl    $0x4,%edx
  mov    %edx,(%rax)
  mov    -0x40(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%edx
  mov    -0x40(%rbp),%rax
  add    $0x24,%rax
  shl    $0x6,%edx
  mov    %edx,(%rax)
  mov    -0x38(%rbp),%rax
  movl   $0x0,(%rax)
  mov    -0x38(%rbp),%rax
  add    $0x40,%rax
  movl   $0x0,(%rax)
  mov    -0x38(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x40(%rbp),%rax
  mov    (%rax),%eax
  movzbl %al,%eax
  or     %eax,%edx
  mov    -0x38(%rbp),%rax
  mov    %edx,(%rax)
  mov    -0x40(%rbp),%rax
  mov    (%rax),%eax
  sar    $0x8,%eax
  mov    %eax,%ecx
  mov    -0x38(%rbp),%rax
  lea    0x4(%rax),%rdx
  movzbl %cl,%eax
  mov    %eax,(%rdx)
  mov    -0x40(%rbp),%rax
  mov    (%rax),%eax
  sar    $0x10,%eax
  mov    %eax,%ecx
  mov    -0x38(%rbp),%rax
  lea    0x8(%rax),%rdx
  movzbl %cl,%eax
  mov    %eax,(%rdx)
  mov    -0x40(%rbp),%rax
  mov    (%rax),%eax
  shr    $0x18,%eax
  mov    %eax,%edx
  mov    -0x38(%rbp),%rax
  add    $0xc,%rax
  mov    %edx,(%rax)
  mov    -0x38(%rbp),%rax
  add    $0xc,%rax
  mov    (%rax),%ecx
  mov    -0x40(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%eax
  movzbl %al,%edx
  mov    -0x38(%rbp),%rax
  add    $0xc,%rax
  or     %ecx,%edx
  mov    %edx,(%rax)
  mov    -0x40(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%eax
  sar    $0x8,%eax
  mov    %eax,%ecx
  mov    -0x38(%rbp),%rax
  lea    0x10(%rax),%rdx
  movzbl %cl,%eax
  mov    %eax,(%rdx)
  mov    -0x40(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%eax
  sar    $0x10,%eax
  mov    %eax,%ecx
  mov    -0x38(%rbp),%rax
  lea    0x14(%rax),%rdx
  movzbl %cl,%eax
  mov    %eax,(%rdx)
  mov    -0x40(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%eax
  shr    $0x18,%eax
  mov    %eax,%edx
  mov    -0x38(%rbp),%rax
  add    $0x18,%rax
  mov    %edx,(%rax)
  mov    -0x38(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%ecx
  mov    -0x40(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%eax
  movzbl %al,%edx
  mov    -0x38(%rbp),%rax
  add    $0x18,%rax
  or     %ecx,%edx
  mov    %edx,(%rax)
  mov    -0x40(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%eax
  sar    $0x8,%eax
  mov    %eax,%ecx
  mov    -0x38(%rbp),%rax
  lea    0x1c(%rax),%rdx
  movzbl %cl,%eax
  mov    %eax,(%rdx)
  mov    -0x40(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%eax
  sar    $0x10,%eax
  mov    %eax,%ecx
  mov    -0x38(%rbp),%rax
  lea    0x20(%rax),%rdx
  movzbl %cl,%eax
  mov    %eax,(%rdx)
  mov    -0x40(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%eax
  shr    $0x18,%eax
  mov    %eax,%edx
  mov    -0x38(%rbp),%rax
  add    $0x24,%rax
  mov    %edx,(%rax)
  mov    -0x38(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%ecx
  mov    -0x40(%rbp),%rax
  add    $0xc,%rax
  mov    (%rax),%eax
  movzbl %al,%edx
  mov    -0x38(%rbp),%rax
  add    $0x24,%rax
  or     %ecx,%edx
  mov    %edx,(%rax)
  mov    -0x40(%rbp),%rax
  add    $0xc,%rax
  mov    (%rax),%eax
  sar    $0x8,%eax
  mov    %eax,%ecx
  mov    -0x38(%rbp),%rax
  lea    0x28(%rax),%rdx
  movzbl %cl,%eax
  mov    %eax,(%rdx)
  mov    -0x40(%rbp),%rax
  add    $0xc,%rax
  mov    (%rax),%eax
  sar    $0x10,%eax
  mov    %eax,%ecx
  mov    -0x38(%rbp),%rax
  lea    0x2c(%rax),%rdx
  movzbl %cl,%eax
  mov    %eax,(%rdx)
  mov    -0x40(%rbp),%rax
  add    $0xc,%rax
  mov    (%rax),%eax
  shr    $0x18,%eax
  mov    %eax,%edx
  mov    -0x38(%rbp),%rax
  add    $0x30,%rax
  mov    %edx,(%rax)
  mov    -0x38(%rbp),%rax
  add    $0x30,%rax
  mov    (%rax),%ecx
  mov    -0x40(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%eax
  movzbl %al,%edx
  mov    -0x38(%rbp),%rax
  add    $0x30,%rax
  or     %ecx,%edx
  mov    %edx,(%rax)
  mov    -0x40(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%eax
  sar    $0x8,%eax
  mov    %eax,%ecx
  mov    -0x38(%rbp),%rax
  lea    0x34(%rax),%rdx
  movzbl %cl,%eax
  mov    %eax,(%rdx)
  mov    -0x40(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%eax
  sar    $0x10,%eax
  mov    %eax,%ecx
  mov    -0x38(%rbp),%rax
  lea    0x38(%rax),%rdx
  movzbl %cl,%eax
  mov    %eax,(%rdx)
  mov    -0x40(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%eax
  shr    $0x18,%eax
  mov    %eax,%edx
  mov    -0x38(%rbp),%rax
  add    $0x3c,%rax
  mov    %edx,(%rax)
  mov    -0x38(%rbp),%rax
  add    $0x40,%rax
  mov    (%rax),%ecx
  mov    -0x40(%rbp),%rax
  add    $0x14,%rax
  mov    (%rax),%eax
  movzbl %al,%edx
  mov    -0x38(%rbp),%rax
  add    $0x40,%rax
  or     %ecx,%edx
  mov    %edx,(%rax)
  mov    -0x40(%rbp),%rax
  add    $0x14,%rax
  mov    (%rax),%eax
  sar    $0x8,%eax
  mov    %eax,%ecx
  mov    -0x38(%rbp),%rax
  lea    0x44(%rax),%rdx
  movzbl %cl,%eax
  mov    %eax,(%rdx)
  mov    -0x40(%rbp),%rax
  add    $0x14,%rax
  mov    (%rax),%eax
  sar    $0x10,%eax
  mov    %eax,%ecx
  mov    -0x38(%rbp),%rax
  lea    0x48(%rax),%rdx
  movzbl %cl,%eax
  mov    %eax,(%rdx)
  mov    -0x40(%rbp),%rax
  add    $0x14,%rax
  mov    (%rax),%eax
  shr    $0x18,%eax
  mov    %eax,%edx
  mov    -0x38(%rbp),%rax
  add    $0x4c,%rax
  mov    %edx,(%rax)
  mov    -0x38(%rbp),%rax
  add    $0x4c,%rax
  mov    (%rax),%ecx
  mov    -0x40(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%eax
  movzbl %al,%edx
  mov    -0x38(%rbp),%rax
  add    $0x4c,%rax
  or     %ecx,%edx
  mov    %edx,(%rax)
  mov    -0x40(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%eax
  sar    $0x8,%eax
  mov    %eax,%ecx
  mov    -0x38(%rbp),%rax
  lea    0x50(%rax),%rdx
  movzbl %cl,%eax
  mov    %eax,(%rdx)
  mov    -0x40(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%eax
  sar    $0x10,%eax
  mov    %eax,%ecx
  mov    -0x38(%rbp),%rax
  lea    0x54(%rax),%rdx
  movzbl %cl,%eax
  mov    %eax,(%rdx)
  mov    -0x40(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%eax
  shr    $0x18,%eax
  mov    %eax,%edx
  mov    -0x38(%rbp),%rax
  add    $0x58,%rax
  mov    %edx,(%rax)
  mov    -0x38(%rbp),%rax
  add    $0x58,%rax
  mov    (%rax),%ecx
  mov    -0x40(%rbp),%rax
  add    $0x1c,%rax
  mov    (%rax),%eax
  movzbl %al,%edx
  mov    -0x38(%rbp),%rax
  add    $0x58,%rax
  or     %ecx,%edx
  mov    %edx,(%rax)
  mov    -0x40(%rbp),%rax
  add    $0x1c,%rax
  mov    (%rax),%eax
  sar    $0x8,%eax
  mov    %eax,%ecx
  mov    -0x38(%rbp),%rax
  lea    0x5c(%rax),%rdx
  movzbl %cl,%eax
  mov    %eax,(%rdx)
  mov    -0x40(%rbp),%rax
  add    $0x1c,%rax
  mov    (%rax),%eax
  sar    $0x10,%eax
  mov    %eax,%ecx
  mov    -0x38(%rbp),%rax
  lea    0x60(%rax),%rdx
  movzbl %cl,%eax
  mov    %eax,(%rdx)
  mov    -0x40(%rbp),%rax
  add    $0x1c,%rax
  mov    (%rax),%eax
  shr    $0x18,%eax
  mov    %eax,%edx
  mov    -0x38(%rbp),%rax
  add    $0x64,%rax
  mov    %edx,(%rax)
  mov    -0x38(%rbp),%rax
  add    $0x64,%rax
  mov    (%rax),%ecx
  mov    -0x40(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%eax
  movzbl %al,%edx
  mov    -0x38(%rbp),%rax
  add    $0x64,%rax
  or     %ecx,%edx
  mov    %edx,(%rax)
  mov    -0x40(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%eax
  sar    $0x8,%eax
  mov    %eax,%ecx
  mov    -0x38(%rbp),%rax
  lea    0x68(%rax),%rdx
  movzbl %cl,%eax
  mov    %eax,(%rdx)
  mov    -0x40(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%eax
  sar    $0x10,%eax
  mov    %eax,%ecx
  mov    -0x38(%rbp),%rax
  lea    0x6c(%rax),%rdx
  movzbl %cl,%eax
  mov    %eax,(%rdx)
  mov    -0x40(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%eax
  shr    $0x18,%eax
  mov    %eax,%edx
  mov    -0x38(%rbp),%rax
  add    $0x70,%rax
  mov    %edx,(%rax)
  mov    -0x38(%rbp),%rax
  add    $0x70,%rax
  mov    (%rax),%ecx
  mov    -0x40(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  movzbl %al,%edx
  mov    -0x38(%rbp),%rax
  add    $0x70,%rax
  or     %ecx,%edx
  mov    %edx,(%rax)
  mov    -0x40(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  sar    $0x8,%eax
  mov    %eax,%ecx
  mov    -0x38(%rbp),%rax
  lea    0x74(%rax),%rdx
  movzbl %cl,%eax
  mov    %eax,(%rdx)
  mov    -0x40(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  sar    $0x10,%eax
  mov    %eax,%ecx
  mov    -0x38(%rbp),%rax
  lea    0x78(%rax),%rdx
  movzbl %cl,%eax
  mov    %eax,(%rdx)
  mov    -0x40(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  shr    $0x18,%eax
  mov    %eax,%edx
  mov    -0x38(%rbp),%rax
  add    $0x7c,%rax
  mov    %edx,(%rax)
  nop
  pop    %rbp
  ret
```

assistant: ```c
void fcontract(uint8_t *output, int64_t *input) {
  int i;
  int j;
  for (j = 0; j < 2; ++j) {
    for (i = 0; i < 9; ++i) {
      if ((i & 1) == 1) {
        const int32_t mask = (int32_t)(input[i]) >> 31;
        const int32_t carry = -(((int32_t)(input[i]) & mask) >> 25);
        input[i] = (int32_t)(input[i]) + (carry << 25);
        input[i + 1] = (int32_t)(input[i + 1]) - carry;
      } else {
        const int32_t mask = (int32_t)(input[i]) >> 31;
        const int32_t carry = -(((int32_t)(input[i]) & mask) >> 26);
        input[i] = (int32_t)(input[i]) + (carry << 26);
        input[i + 1] = (int32_t)(input[i + 1]) - carry;
      }
    }
    const int32_t mask = (int32_t)(input[9]) >> 31;
    const int32_t carry = -(((int32_t)(input[9]) & mask) >> 25);
    input[9] = (int32_t)(input[9]) + (carry << 25);
    input[0] = (int32_t)(input[0]) - (carry * 19);
  }
  const int32_t mask = (int32_t)(input[0]) >> 31;
  const int32_t carry = -(((int32_t)(input[0]) & mask) >> 26);
  input[0] = (int32_t)(input[0]) + (carry << 26);
  input[1] = (int32_t)(input[1]) - carry;
  input[1] <<= 2;
  input[2] <<= 3;
  input[3] <<= 5;
  input[4] <<= 6;
  input[6] <<= 1;
  input[7] <<= 3;
  input[8] <<= 4;
  input[9] <<= 6;
  output[0] = 0;
  output[16] = 0;
  output[0 + 0] |= input[0] & 0xff;
  output[0 + 1] = (input[0] >> 8) & 0xff;
  output[0 + 2] = (input[0] >> 16) & 0xff;
  output[0 + 3] = (input[0] >> 24) & 0xff;
  ;
  output[3 + 0] |= input[1] & 0xff;
  output[3 + 1] = (input[1] >> 8) & 0xff;
  output[3 + 2] = (input[1] >> 16) & 0xff;
  output[3 + 3] = (input[1] >> 24) & 0xff;
  ;
  output[6 + 0] |= input[2] & 0xff;
  output[6 + 1] = (input[2] >> 8) & 0xff;
  output[6 + 2] = (input[2] >> 16) & 0xff;
  output[6 + 3] = (input[2] >> 24) & 0xff;
  ;
  output[9 + 0] |= input[3] & 0xff;
  output[9 + 1] = (input[3] >> 8) & 0xff;
  output[9 + 2] = (input[3] >> 16) & 0xff;
  output[9 + 3] = (input[3] >> 24) & 0xff;
  ;
  output[12 + 0] |= input[4] & 0xff;
  output[12 + 1] = (input[4] >> 8) & 0xff;
  output[12 + 2] = (input[4] >> 16) & 0xff;
  output[12 + 3] = (input[4] >> 24) & 0xff;
  ;
  output[16 + 0] |= input[5] & 0xff;
  output[16 + 1] = (input[5] >> 8) & 0xff;
  output[16 + 2] = (input[5] >> 16) & 0xff;
  output[16 + 3] = (input[5] >> 24) & 0xff;
  ;
  output[19 + 0] |= input[6] & 0xff;
  output[19 + 1] = (input[6] >> 8) & 0xff;
  output[19 + 2] = (input[6] >> 16) & 0xff;
  output[19 + 3] = (input[6] >> 24) & 0xff;
  ;
  output[22 + 0] |= input[7] & 0xff;
  output[22 + 1] = (input[7] >> 8) & 0xff;
  output[22 + 2] = (input[7] >> 16) & 0xff;
  output[22 + 3] = (input[7] >> 24) & 0xff;
  ;
  output[25 + 0] |= input[8] & 0xff;
  output[25 + 1] = (input[8] >> 8) & 0xff;
  output[25 + 2] = (input[8] >> 16) & 0xff;
  output[25 + 3] = (input[8] >> 24) & 0xff;
  ;
  output[28 + 0] |= input[9] & 0xff;
  output[28 + 1] = (input[9] >> 8) & 0xff;
  output[28 + 2] = (input[9] >> 16) & 0xff;
  output[28 + 3] = (input[9] >> 24) & 0xff;
  ;
}
```