user: Converte this assembly snippet into its equivalent C code:

```asm
<fht_double>:
  endbr64
  cmp    $0x1e,%esi
  ja     L197
  sub    $0x8,%rsp
  mov    %esi,%eax
  lea    D3(%rip),%rdx
  movslq (%rdx,%rax,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
  mov    %esi,%eax
L105:
  add    $0x8,%rsp
  ret
  call   <helper_double_1@plt>
  mov    $0x0,%eax
  jmp    L105
  call   <helper_double_2@plt>
  mov    $0x0,%eax
  jmp    L105
  call   <helper_double_3@plt>
  mov    $0x0,%eax
  jmp    L105
  call   <helper_double_4@plt>
  mov    $0x0,%eax
  jmp    L105
  call   <helper_double_5@plt>
  mov    $0x0,%eax
  jmp    L105
  call   <helper_double_6@plt>
  mov    $0x0,%eax
  jmp    L105
  call   <helper_double_7@plt>
  mov    $0x0,%eax
  jmp    L105
  call   <helper_double_8@plt>
  mov    $0x0,%eax
  jmp    L105
  call   <helper_double_9@plt>
  mov    $0x0,%eax
  jmp    L105
  call   <helper_double_10@plt>
  mov    $0x0,%eax
  jmp    L105
  call   <helper_double_11@plt>
  mov    $0x0,%eax
  jmp    L105
  call   <helper_double_12@plt>
  mov    $0x0,%eax
  jmp    L105
  call   <helper_double_13@plt>
  mov    $0x0,%eax
  jmp    L105
  call   <helper_double_14@plt>
  mov    $0x0,%eax
  jmp    L105
  call   <helper_double_15@plt>
  mov    $0x0,%eax
  jmp    L105
  call   <helper_double_16@plt>
  mov    $0x0,%eax
  jmp    L105
  call   <helper_double_17@plt>
  mov    $0x0,%eax
  jmp    L105
  call   <helper_double_18@plt>
  mov    $0x0,%eax
  jmp    L105
  call   <helper_double_19@plt>
  mov    $0x0,%eax
  jmp    L105
  call   <helper_double_20@plt>
  mov    $0x0,%eax
  jmp    L105
  call   <helper_double_21@plt>
  mov    $0x0,%eax
  jmp    L105
  call   <helper_double_22@plt>
  mov    $0x0,%eax
  jmp    L105
  call   <helper_double_23@plt>
  mov    $0x0,%eax
  jmp    L105
  call   <helper_double_24@plt>
  mov    $0x0,%eax
  jmp    L105
  call   <helper_double_25@plt>
  mov    $0x0,%eax
  jmp    L105
  call   <helper_double_26@plt>
  mov    $0x0,%eax
  jmp    L105
  call   <helper_double_27@plt>
  mov    $0x0,%eax
  jmp    L105
  call   <helper_double_28@plt>
  mov    $0x0,%eax
  jmp    L105
  call   <helper_double_29@plt>
  mov    $0x0,%eax
  jmp    L105
  call   <helper_double_30@plt>
  mov    $0x0,%eax
  jmp    L105
L197:
  mov    $0x1,%eax
  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;
}
```