user: What would the C source look like for the assembly code provided here:

```asm
<dwt_encode_97>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  push   %rbx
  sub    $0x38,%rsp
  mov    %rdi,-0x28(%rbp)
  mov    %esi,-0x2c(%rbp)
  mov    %edx,-0x30(%rbp)
  mov    %ecx,-0x34(%rbp)
  cmpl   $0x0,-0x34(%rbp)
  jne    L387
  cmpl   $0x0,-0x2c(%rbp)
  jg     L153
  cmpl   $0x1,-0x30(%rbp)
  jle    L40
L153:
  movl   $0x0,-0x14(%rbp)
  jmp    L463
L656:
  cmpl   $0x0,-0x14(%rbp)
  jns    L659
  mov    -0x28(%rbp),%rax
  mov    (%rax),%edx
  jmp    L58
L659:
  mov    -0x14(%rbp),%eax
  cmp    -0x30(%rbp),%eax
  jl     L35
  mov    -0x30(%rbp),%eax
  sub    $0x1,%eax
  add    %eax,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x28(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%edx
  jmp    L58
L35:
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x28(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%edx
L58:
  cmpl   $0xffffffff,-0x14(%rbp)
  jge    L664
  mov    -0x28(%rbp),%rax
  mov    (%rax),%eax
  jmp    L821
L664:
  mov    -0x14(%rbp),%eax
  add    $0x1,%eax
  cmp    %eax,-0x30(%rbp)
  jg     L276
  mov    -0x30(%rbp),%eax
  sub    $0x1,%eax
  add    %eax,%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x28(%rbp),%rax
  add    %rcx,%rax
  mov    (%rax),%eax
  jmp    L821
L276:
  mov    -0x14(%rbp),%eax
  add    $0x1,%eax
  add    %eax,%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x28(%rbp),%rax
  add    %rcx,%rax
  mov    (%rax),%eax
L821:
  add    %edx,%eax
  mov    $0x32c1,%esi
  mov    %eax,%edi
  mov    $0x0,%eax
  call   <fix_mul@plt>
  mov    %eax,%ecx
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  add    $0x1,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x28(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%edx
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  add    $0x1,%eax
  cltq
  lea    0x0(,%rax,4),%rsi
  mov    -0x28(%rbp),%rax
  add    %rsi,%rax
  sub    %ecx,%edx
  mov    %edx,(%rax)
  addl   $0x1,-0x14(%rbp)
L463:
  mov    -0x14(%rbp),%eax
  cmp    -0x2c(%rbp),%eax
  jl     L656
  movl   $0x0,-0x14(%rbp)
  jmp    L133
L330:
  cmpl   $0x0,-0x14(%rbp)
  jg     L115
  mov    -0x28(%rbp),%rax
  mov    0x4(%rax),%edx
  jmp    L587
L115:
  mov    -0x14(%rbp),%eax
  cmp    -0x2c(%rbp),%eax
  jle    L827
  mov    -0x2c(%rbp),%eax
  sub    $0x1,%eax
  add    %eax,%eax
  add    $0x1,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x28(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%edx
  jmp    L587
L827:
  mov    -0x14(%rbp),%eax
  sub    $0x1,%eax
  add    %eax,%eax
  add    $0x1,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x28(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%edx
L587:
  cmpl   $0x0,-0x14(%rbp)
  jns    L292
  mov    -0x28(%rbp),%rax
  mov    0x4(%rax),%eax
  jmp    L494
L292:
  mov    -0x14(%rbp),%eax
  cmp    -0x2c(%rbp),%eax
  jl     L865
  mov    -0x2c(%rbp),%eax
  sub    $0x1,%eax
  add    %eax,%eax
  add    $0x1,%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x28(%rbp),%rax
  add    %rcx,%rax
  mov    (%rax),%eax
  jmp    L494
L865:
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  add    $0x1,%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x28(%rbp),%rax
  add    %rcx,%rax
  mov    (%rax),%eax
L494:
  add    %edx,%eax
  mov    $0x1b2,%esi
  mov    %eax,%edi
  mov    $0x0,%eax
  call   <fix_mul@plt>
  mov    %eax,%ecx
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x28(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%edx
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  cltq
  lea    0x0(,%rax,4),%rsi
  mov    -0x28(%rbp),%rax
  add    %rsi,%rax
  sub    %ecx,%edx
  mov    %edx,(%rax)
  addl   $0x1,-0x14(%rbp)
L133:
  mov    -0x14(%rbp),%eax
  cmp    -0x30(%rbp),%eax
  jl     L330
  movl   $0x0,-0x14(%rbp)
  jmp    L697
L42:
  cmpl   $0x0,-0x14(%rbp)
  jns    L780
  mov    -0x28(%rbp),%rax
  mov    (%rax),%edx
  jmp    L161
L780:
  mov    -0x14(%rbp),%eax
  cmp    -0x30(%rbp),%eax
  jl     L875
  mov    -0x30(%rbp),%eax
  sub    $0x1,%eax
  add    %eax,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x28(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%edx
  jmp    L161
L875:
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x28(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%edx
L161:
  cmpl   $0xffffffff,-0x14(%rbp)
  jge    L43
  mov    -0x28(%rbp),%rax
  mov    (%rax),%eax
  jmp    L484
L43:
  mov    -0x14(%rbp),%eax
  add    $0x1,%eax
  cmp    %eax,-0x30(%rbp)
  jg     L356
  mov    -0x30(%rbp),%eax
  sub    $0x1,%eax
  add    %eax,%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x28(%rbp),%rax
  add    %rcx,%rax
  mov    (%rax),%eax
  jmp    L484
L356:
  mov    -0x14(%rbp),%eax
  add    $0x1,%eax
  add    %eax,%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x28(%rbp),%rax
  add    %rcx,%rax
  mov    (%rax),%eax
L484:
  add    %edx,%eax
  mov    $0x1c41,%esi
  mov    %eax,%edi
  mov    $0x0,%eax
  call   <fix_mul@plt>
  mov    %eax,%edx
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  add    $0x1,%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x28(%rbp),%rax
  add    %rcx,%rax
  mov    (%rax),%ecx
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  add    $0x1,%eax
  cltq
  lea    0x0(,%rax,4),%rsi
  mov    -0x28(%rbp),%rax
  add    %rsi,%rax
  add    %ecx,%edx
  mov    %edx,(%rax)
  addl   $0x1,-0x14(%rbp)
L697:
  mov    -0x14(%rbp),%eax
  cmp    -0x2c(%rbp),%eax
  jl     L42
  movl   $0x0,-0x14(%rbp)
  jmp    L746
L728:
  cmpl   $0x0,-0x14(%rbp)
  jg     L263
  mov    -0x28(%rbp),%rax
  mov    0x4(%rax),%edx
  jmp    L797
L263:
  mov    -0x14(%rbp),%eax
  cmp    -0x2c(%rbp),%eax
  jle    L131
  mov    -0x2c(%rbp),%eax
  sub    $0x1,%eax
  add    %eax,%eax
  add    $0x1,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x28(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%edx
  jmp    L797
L131:
  mov    -0x14(%rbp),%eax
  sub    $0x1,%eax
  add    %eax,%eax
  add    $0x1,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x28(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%edx
L797:
  cmpl   $0x0,-0x14(%rbp)
  jns    L915
  mov    -0x28(%rbp),%rax
  mov    0x4(%rax),%eax
  jmp    L841
L915:
  mov    -0x14(%rbp),%eax
  cmp    -0x2c(%rbp),%eax
  jl     L126
  mov    -0x2c(%rbp),%eax
  sub    $0x1,%eax
  add    %eax,%eax
  add    $0x1,%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x28(%rbp),%rax
  add    %rcx,%rax
  mov    (%rax),%eax
  jmp    L841
L126:
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  add    $0x1,%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x28(%rbp),%rax
  add    %rcx,%rax
  mov    (%rax),%eax
L841:
  add    %edx,%eax
  mov    $0xe31,%esi
  mov    %eax,%edi
  mov    $0x0,%eax
  call   <fix_mul@plt>
  mov    %eax,%edx
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x28(%rbp),%rax
  add    %rcx,%rax
  mov    (%rax),%ecx
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  cltq
  lea    0x0(,%rax,4),%rsi
  mov    -0x28(%rbp),%rax
  add    %rsi,%rax
  add    %ecx,%edx
  mov    %edx,(%rax)
  addl   $0x1,-0x14(%rbp)
L746:
  mov    -0x14(%rbp),%eax
  cmp    -0x30(%rbp),%eax
  jl     L728
  movl   $0x0,-0x14(%rbp)
  jmp    L735
L550:
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  add    $0x1,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x28(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    -0x14(%rbp),%edx
  add    %edx,%edx
  add    $0x1,%edx
  movslq %edx,%rdx
  lea    0x0(,%rdx,4),%rcx
  mov    -0x28(%rbp),%rdx
  lea    (%rcx,%rdx,1),%rbx
  mov    $0x13ae,%esi
  mov    %eax,%edi
  mov    $0x0,%eax
  call   <fix_mul@plt>
  mov    %eax,(%rbx)
  addl   $0x1,-0x14(%rbp)
L735:
  mov    -0x14(%rbp),%eax
  cmp    -0x2c(%rbp),%eax
  jl     L550
  movl   $0x0,-0x14(%rbp)
  jmp    L639
L278:
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x28(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    -0x14(%rbp),%edx
  add    %edx,%edx
  movslq %edx,%rdx
  lea    0x0(,%rdx,4),%rcx
  mov    -0x28(%rbp),%rdx
  lea    (%rcx,%rdx,1),%rbx
  mov    $0x1a03,%esi
  mov    %eax,%edi
  mov    $0x0,%eax
  call   <fix_mul@plt>
  mov    %eax,(%rbx)
  addl   $0x1,-0x14(%rbp)
L639:
  mov    -0x14(%rbp),%eax
  cmp    -0x30(%rbp),%eax
  jl     L278
  jmp    L40
L387:
  cmpl   $0x0,-0x30(%rbp)
  jg     L388
  cmpl   $0x1,-0x2c(%rbp)
  jle    L40
L388:
  movl   $0x0,-0x14(%rbp)
  jmp    L487
L698:
  cmpl   $0x0,-0x14(%rbp)
  jns    L687
  mov    -0x28(%rbp),%rax
  mov    0x4(%rax),%edx
  jmp    L67
L687:
  mov    -0x14(%rbp),%eax
  cmp    -0x30(%rbp),%eax
  jl     L599
  mov    -0x30(%rbp),%eax
  sub    $0x1,%eax
  add    %eax,%eax
  add    $0x1,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x28(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%edx
  jmp    L67
L599:
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  add    $0x1,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x28(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%edx
L67:
  cmpl   $0x0,-0x14(%rbp)
  jg     L106
  mov    -0x28(%rbp),%rax
  mov    0x4(%rax),%eax
  jmp    L486
L106:
  mov    -0x14(%rbp),%eax
  cmp    -0x30(%rbp),%eax
  jle    L657
  mov    -0x30(%rbp),%eax
  sub    $0x1,%eax
  add    %eax,%eax
  add    $0x1,%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x28(%rbp),%rax
  add    %rcx,%rax
  mov    (%rax),%eax
  jmp    L486
L657:
  mov    -0x14(%rbp),%eax
  sub    $0x1,%eax
  add    %eax,%eax
  add    $0x1,%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x28(%rbp),%rax
  add    %rcx,%rax
  mov    (%rax),%eax
L486:
  add    %edx,%eax
  mov    $0x32c1,%esi
  mov    %eax,%edi
  mov    $0x0,%eax
  call   <fix_mul@plt>
  mov    %eax,%ecx
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x28(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%edx
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  cltq
  lea    0x0(,%rax,4),%rsi
  mov    -0x28(%rbp),%rax
  add    %rsi,%rax
  sub    %ecx,%edx
  mov    %edx,(%rax)
  addl   $0x1,-0x14(%rbp)
L487:
  mov    -0x14(%rbp),%eax
  cmp    -0x2c(%rbp),%eax
  jl     L698
  movl   $0x0,-0x14(%rbp)
  jmp    L872
L448:
  cmpl   $0x0,-0x14(%rbp)
  jns    L403
  mov    -0x28(%rbp),%rax
  mov    (%rax),%edx
  jmp    L440
L403:
  mov    -0x14(%rbp),%eax
  cmp    -0x2c(%rbp),%eax
  jl     L480
  mov    -0x2c(%rbp),%eax
  sub    $0x1,%eax
  add    %eax,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x28(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%edx
  jmp    L440
L480:
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x28(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%edx
L440:
  cmpl   $0xffffffff,-0x14(%rbp)
  jge    L321
  mov    -0x28(%rbp),%rax
  mov    (%rax),%eax
  jmp    L119
L321:
  mov    -0x14(%rbp),%eax
  add    $0x1,%eax
  cmp    %eax,-0x2c(%rbp)
  jg     L673
  mov    -0x2c(%rbp),%eax
  sub    $0x1,%eax
  add    %eax,%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x28(%rbp),%rax
  add    %rcx,%rax
  mov    (%rax),%eax
  jmp    L119
L673:
  mov    -0x14(%rbp),%eax
  add    $0x1,%eax
  add    %eax,%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x28(%rbp),%rax
  add    %rcx,%rax
  mov    (%rax),%eax
L119:
  add    %edx,%eax
  mov    $0x1b2,%esi
  mov    %eax,%edi
  mov    $0x0,%eax
  call   <fix_mul@plt>
  mov    %eax,%ecx
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  add    $0x1,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x28(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%edx
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  add    $0x1,%eax
  cltq
  lea    0x0(,%rax,4),%rsi
  mov    -0x28(%rbp),%rax
  add    %rsi,%rax
  sub    %ecx,%edx
  mov    %edx,(%rax)
  addl   $0x1,-0x14(%rbp)
L872:
  mov    -0x14(%rbp),%eax
  cmp    -0x30(%rbp),%eax
  jl     L448
  movl   $0x0,-0x14(%rbp)
  jmp    L737
L764:
  cmpl   $0x0,-0x14(%rbp)
  jns    L28
  mov    -0x28(%rbp),%rax
  mov    0x4(%rax),%edx
  jmp    L922
L28:
  mov    -0x14(%rbp),%eax
  cmp    -0x30(%rbp),%eax
  jl     L622
  mov    -0x30(%rbp),%eax
  sub    $0x1,%eax
  add    %eax,%eax
  add    $0x1,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x28(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%edx
  jmp    L922
L622:
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  add    $0x1,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x28(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%edx
L922:
  cmpl   $0x0,-0x14(%rbp)
  jg     L87
  mov    -0x28(%rbp),%rax
  mov    0x4(%rax),%eax
  jmp    L138
L87:
  mov    -0x14(%rbp),%eax
  cmp    -0x30(%rbp),%eax
  jle    L766
  mov    -0x30(%rbp),%eax
  sub    $0x1,%eax
  add    %eax,%eax
  add    $0x1,%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x28(%rbp),%rax
  add    %rcx,%rax
  mov    (%rax),%eax
  jmp    L138
L766:
  mov    -0x14(%rbp),%eax
  sub    $0x1,%eax
  add    %eax,%eax
  add    $0x1,%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x28(%rbp),%rax
  add    %rcx,%rax
  mov    (%rax),%eax
L138:
  add    %edx,%eax
  mov    $0x1c41,%esi
  mov    %eax,%edi
  mov    $0x0,%eax
  call   <fix_mul@plt>
  mov    %eax,%edx
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x28(%rbp),%rax
  add    %rcx,%rax
  mov    (%rax),%ecx
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  cltq
  lea    0x0(,%rax,4),%rsi
  mov    -0x28(%rbp),%rax
  add    %rsi,%rax
  add    %ecx,%edx
  mov    %edx,(%rax)
  addl   $0x1,-0x14(%rbp)
L737:
  mov    -0x14(%rbp),%eax
  cmp    -0x2c(%rbp),%eax
  jl     L764
  movl   $0x0,-0x14(%rbp)
  jmp    L348
L674:
  cmpl   $0x0,-0x14(%rbp)
  jns    L654
  mov    -0x28(%rbp),%rax
  mov    (%rax),%edx
  jmp    L613
L654:
  mov    -0x14(%rbp),%eax
  cmp    -0x2c(%rbp),%eax
  jl     L455
  mov    -0x2c(%rbp),%eax
  sub    $0x1,%eax
  add    %eax,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x28(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%edx
  jmp    L613
L455:
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x28(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%edx
L613:
  cmpl   $0xffffffff,-0x14(%rbp)
  jge    L722
  mov    -0x28(%rbp),%rax
  mov    (%rax),%eax
  jmp    L302
L722:
  mov    -0x14(%rbp),%eax
  add    $0x1,%eax
  cmp    %eax,-0x2c(%rbp)
  jg     L544
  mov    -0x2c(%rbp),%eax
  sub    $0x1,%eax
  add    %eax,%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x28(%rbp),%rax
  add    %rcx,%rax
  mov    (%rax),%eax
  jmp    L302
L544:
  mov    -0x14(%rbp),%eax
  add    $0x1,%eax
  add    %eax,%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x28(%rbp),%rax
  add    %rcx,%rax
  mov    (%rax),%eax
L302:
  add    %edx,%eax
  mov    $0xe31,%esi
  mov    %eax,%edi
  mov    $0x0,%eax
  call   <fix_mul@plt>
  mov    %eax,%edx
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  add    $0x1,%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x28(%rbp),%rax
  add    %rcx,%rax
  mov    (%rax),%ecx
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  add    $0x1,%eax
  cltq
  lea    0x0(,%rax,4),%rsi
  mov    -0x28(%rbp),%rax
  add    %rsi,%rax
  add    %ecx,%edx
  mov    %edx,(%rax)
  addl   $0x1,-0x14(%rbp)
L348:
  mov    -0x14(%rbp),%eax
  cmp    -0x30(%rbp),%eax
  jl     L674
  movl   $0x0,-0x14(%rbp)
  jmp    L530
L338:
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x28(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    -0x14(%rbp),%edx
  add    %edx,%edx
  movslq %edx,%rdx
  lea    0x0(,%rdx,4),%rcx
  mov    -0x28(%rbp),%rdx
  lea    (%rcx,%rdx,1),%rbx
  mov    $0x13ae,%esi
  mov    %eax,%edi
  mov    $0x0,%eax
  call   <fix_mul@plt>
  mov    %eax,(%rbx)
  addl   $0x1,-0x14(%rbp)
L530:
  mov    -0x14(%rbp),%eax
  cmp    -0x2c(%rbp),%eax
  jl     L338
  movl   $0x0,-0x14(%rbp)
  jmp    L668
L540:
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  add    $0x1,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x28(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    -0x14(%rbp),%edx
  add    %edx,%edx
  add    $0x1,%edx
  movslq %edx,%rdx
  lea    0x0(,%rdx,4),%rcx
  mov    -0x28(%rbp),%rdx
  lea    (%rcx,%rdx,1),%rbx
  mov    $0x1a03,%esi
  mov    %eax,%edi
  mov    $0x0,%eax
  call   <fix_mul@plt>
  mov    %eax,(%rbx)
  addl   $0x1,-0x14(%rbp)
L668:
  mov    -0x14(%rbp),%eax
  cmp    -0x30(%rbp),%eax
  jl     L540
L40:
  nop
  mov    -0x8(%rbp),%rbx
  leave
  ret
```

assistant: ```c
void dwt_encode_97(int *a, int dn, int sn, int cas) {
  int i;
  if (!cas) {
    if ((dn > 0) || (sn > 1)) {
      for (i = 0; i < dn; i++)
        a[(1 + (i)*2)] -= fix_mul(((i) < 0 ? a[(0) * 2] : ((i) >= sn ? a[(sn - 1) * 2] : a[(i)*2])) + ((i + 1) < 0 ? a[(0) * 2] : ((i + 1) >= sn ? a[(sn - 1) * 2] : a[(i + 1) * 2])), 12993);
      for (i = 0; i < sn; i++)
        a[(i)*2] -= fix_mul(((i - 1) < 0 ? a[(1 + (0) * 2)] : ((i - 1) >= dn ? a[(1 + (dn - 1) * 2)] : a[(1 + (i - 1) * 2)])) + ((i) < 0 ? a[(1 + (0) * 2)] : ((i) >= dn ? a[(1 + (dn - 1) * 2)] : a[(1 + (i)*2)])), 434);
      for (i = 0; i < dn; i++)
        a[(1 + (i)*2)] += fix_mul(((i) < 0 ? a[(0) * 2] : ((i) >= sn ? a[(sn - 1) * 2] : a[(i)*2])) + ((i + 1) < 0 ? a[(0) * 2] : ((i + 1) >= sn ? a[(sn - 1) * 2] : a[(i + 1) * 2])), 7233);
      for (i = 0; i < sn; i++)
        a[(i)*2] += fix_mul(((i - 1) < 0 ? a[(1 + (0) * 2)] : ((i - 1) >= dn ? a[(1 + (dn - 1) * 2)] : a[(1 + (i - 1) * 2)])) + ((i) < 0 ? a[(1 + (0) * 2)] : ((i) >= dn ? a[(1 + (dn - 1) * 2)] : a[(1 + (i)*2)])), 3633);
      for (i = 0; i < dn; i++)
        a[(1 + (i)*2)] = fix_mul(a[(1 + (i)*2)], 5038);
      for (i = 0; i < sn; i++)
        a[(i)*2] = fix_mul(a[(i)*2], 6659);
    }
  } else {
    if ((sn > 0) || (dn > 1)) {
      for (i = 0; i < dn; i++)
        a[(i)*2] -= fix_mul(((i) < 0 ? a[(1 + (0) * 2)] : ((i) >= sn ? a[(1 + (sn - 1) * 2)] : a[(1 + (i)*2)])) + ((i - 1) < 0 ? a[(1 + (0) * 2)] : ((i - 1) >= sn ? a[(1 + (sn - 1) * 2)] : a[(1 + (i - 1) * 2)])), 12993);
      for (i = 0; i < sn; i++)
        a[(1 + (i)*2)] -= fix_mul(((i) < 0 ? a[(0) * 2] : ((i) >= dn ? a[(dn - 1) * 2] : a[(i)*2])) + ((i + 1) < 0 ? a[(0) * 2] : ((i + 1) >= dn ? a[(dn - 1) * 2] : a[(i + 1) * 2])), 434);
      for (i = 0; i < dn; i++)
        a[(i)*2] += fix_mul(((i) < 0 ? a[(1 + (0) * 2)] : ((i) >= sn ? a[(1 + (sn - 1) * 2)] : a[(1 + (i)*2)])) + ((i - 1) < 0 ? a[(1 + (0) * 2)] : ((i - 1) >= sn ? a[(1 + (sn - 1) * 2)] : a[(1 + (i - 1) * 2)])), 7233);
      for (i = 0; i < sn; i++)
        a[(1 + (i)*2)] += fix_mul(((i) < 0 ? a[(0) * 2] : ((i) >= dn ? a[(dn - 1) * 2] : a[(i)*2])) + ((i + 1) < 0 ? a[(0) * 2] : ((i + 1) >= dn ? a[(dn - 1) * 2] : a[(i + 1) * 2])), 3633);
      for (i = 0; i < dn; i++)
        a[(i)*2] = fix_mul(a[(i)*2], 5038);
      for (i = 0; i < sn; i++)
        a[(1 + (i)*2)] = fix_mul(a[(1 + (i)*2)], 6659);
    }
  }
}
```