user: 下面的汇编指令对应的C源代码是什么:

```asm
<fht_double>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    %esi,-0xc(%rbp)
  cmpl   $0x0,-0xc(%rbp)
  jne    L91
  mov    $0x0,%eax
  jmp    L360
L91:
  cmpl   $0x1,-0xc(%rbp)
  jne    L377
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <helper_double_1@plt>
  mov    $0x0,%eax
  jmp    L360
L377:
  cmpl   $0x2,-0xc(%rbp)
  jne    L368
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <helper_double_2@plt>
  mov    $0x0,%eax
  jmp    L360
L368:
  cmpl   $0x3,-0xc(%rbp)
  jne    L311
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <helper_double_3@plt>
  mov    $0x0,%eax
  jmp    L360
L311:
  cmpl   $0x4,-0xc(%rbp)
  jne    L38
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <helper_double_4@plt>
  mov    $0x0,%eax
  jmp    L360
L38:
  cmpl   $0x5,-0xc(%rbp)
  jne    L506
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <helper_double_5@plt>
  mov    $0x0,%eax
  jmp    L360
L506:
  cmpl   $0x6,-0xc(%rbp)
  jne    L67
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <helper_double_6@plt>
  mov    $0x0,%eax
  jmp    L360
L67:
  cmpl   $0x7,-0xc(%rbp)
  jne    L261
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <helper_double_7@plt>
  mov    $0x0,%eax
  jmp    L360
L261:
  cmpl   $0x8,-0xc(%rbp)
  jne    L121
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <helper_double_8@plt>
  mov    $0x0,%eax
  jmp    L360
L121:
  cmpl   $0x9,-0xc(%rbp)
  jne    L567
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <helper_double_9@plt>
  mov    $0x0,%eax
  jmp    L360
L567:
  cmpl   $0xa,-0xc(%rbp)
  jne    L607
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <helper_double_10@plt>
  mov    $0x0,%eax
  jmp    L360
L607:
  cmpl   $0xb,-0xc(%rbp)
  jne    L30
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <helper_double_11@plt>
  mov    $0x0,%eax
  jmp    L360
L30:
  cmpl   $0xc,-0xc(%rbp)
  jne    L383
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <helper_double_12@plt>
  mov    $0x0,%eax
  jmp    L360
L383:
  cmpl   $0xd,-0xc(%rbp)
  jne    L165
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <helper_double_13@plt>
  mov    $0x0,%eax
  jmp    L360
L165:
  cmpl   $0xe,-0xc(%rbp)
  jne    L555
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <helper_double_14@plt>
  mov    $0x0,%eax
  jmp    L360
L555:
  cmpl   $0xf,-0xc(%rbp)
  jne    L168
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <helper_double_15@plt>
  mov    $0x0,%eax
  jmp    L360
L168:
  cmpl   $0x10,-0xc(%rbp)
  jne    L248
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <helper_double_16@plt>
  mov    $0x0,%eax
  jmp    L360
L248:
  cmpl   $0x11,-0xc(%rbp)
  jne    L210
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <helper_double_17@plt>
  mov    $0x0,%eax
  jmp    L360
L210:
  cmpl   $0x12,-0xc(%rbp)
  jne    L240
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <helper_double_18@plt>
  mov    $0x0,%eax
  jmp    L360
L240:
  cmpl   $0x13,-0xc(%rbp)
  jne    L108
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <helper_double_19@plt>
  mov    $0x0,%eax
  jmp    L360
L108:
  cmpl   $0x14,-0xc(%rbp)
  jne    L220
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <helper_double_20@plt>
  mov    $0x0,%eax
  jmp    L360
L220:
  cmpl   $0x15,-0xc(%rbp)
  jne    L13
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <helper_double_21@plt>
  mov    $0x0,%eax
  jmp    L360
L13:
  cmpl   $0x16,-0xc(%rbp)
  jne    L478
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <helper_double_22@plt>
  mov    $0x0,%eax
  jmp    L360
L478:
  cmpl   $0x17,-0xc(%rbp)
  jne    L413
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <helper_double_23@plt>
  mov    $0x0,%eax
  jmp    L360
L413:
  cmpl   $0x18,-0xc(%rbp)
  jne    L0
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <helper_double_24@plt>
  mov    $0x0,%eax
  jmp    L360
L0:
  cmpl   $0x19,-0xc(%rbp)
  jne    L152
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <helper_double_25@plt>
  mov    $0x0,%eax
  jmp    L360
L152:
  cmpl   $0x1a,-0xc(%rbp)
  jne    L614
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <helper_double_26@plt>
  mov    $0x0,%eax
  jmp    L360
L614:
  cmpl   $0x1b,-0xc(%rbp)
  jne    L259
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <helper_double_27@plt>
  mov    $0x0,%eax
  jmp    L360
L259:
  cmpl   $0x1c,-0xc(%rbp)
  jne    L544
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <helper_double_28@plt>
  mov    $0x0,%eax
  jmp    L360
L544:
  cmpl   $0x1d,-0xc(%rbp)
  jne    L71
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <helper_double_29@plt>
  mov    $0x0,%eax
  jmp    L360
L71:
  cmpl   $0x1e,-0xc(%rbp)
  jne    L608
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <helper_double_30@plt>
  mov    $0x0,%eax
  jmp    L360
L608:
  mov    $0x1,%eax
L360:
  leave
  ret
```

assistant: ```c
int fht_double(double *buf, int log_n) {
  if (log_n == 0) {
    return 0;
  }
  if (log_n == 1) {
    helper_double_1(buf);
    return 0;
  }
  if (log_n == 2) {
    helper_double_2(buf);
    return 0;
  }
  if (log_n == 3) {
    helper_double_3(buf);
    return 0;
  }
  if (log_n == 4) {
    helper_double_4(buf);
    return 0;
  }
  if (log_n == 5) {
    helper_double_5(buf);
    return 0;
  }
  if (log_n == 6) {
    helper_double_6(buf);
    return 0;
  }
  if (log_n == 7) {
    helper_double_7(buf);
    return 0;
  }
  if (log_n == 8) {
    helper_double_8(buf);
    return 0;
  }
  if (log_n == 9) {
    helper_double_9(buf);
    return 0;
  }
  if (log_n == 10) {
    helper_double_10(buf);
    return 0;
  }
  if (log_n == 11) {
    helper_double_11(buf);
    return 0;
  }
  if (log_n == 12) {
    helper_double_12(buf);
    return 0;
  }
  if (log_n == 13) {
    helper_double_13(buf);
    return 0;
  }
  if (log_n == 14) {
    helper_double_14(buf);
    return 0;
  }
  if (log_n == 15) {
    helper_double_15(buf);
    return 0;
  }
  if (log_n == 16) {
    helper_double_16(buf);
    return 0;
  }
  if (log_n == 17) {
    helper_double_17(buf);
    return 0;
  }
  if (log_n == 18) {
    helper_double_18(buf);
    return 0;
  }
  if (log_n == 19) {
    helper_double_19(buf);
    return 0;
  }
  if (log_n == 20) {
    helper_double_20(buf);
    return 0;
  }
  if (log_n == 21) {
    helper_double_21(buf);
    return 0;
  }
  if (log_n == 22) {
    helper_double_22(buf);
    return 0;
  }
  if (log_n == 23) {
    helper_double_23(buf);
    return 0;
  }
  if (log_n == 24) {
    helper_double_24(buf);
    return 0;
  }
  if (log_n == 25) {
    helper_double_25(buf);
    return 0;
  }
  if (log_n == 26) {
    helper_double_26(buf);
    return 0;
  }
  if (log_n == 27) {
    helper_double_27(buf);
    return 0;
  }
  if (log_n == 28) {
    helper_double_28(buf);
    return 0;
  }
  if (log_n == 29) {
    helper_double_29(buf);
    return 0;
  }
  if (log_n == 30) {
    helper_double_30(buf);
    return 0;
  }
  return 1;
}
```