user: Translate the below assembly code into C programming language:

```asm
<dwt_decode_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    L300
  cmpl   $0x0,-0x2c(%rbp)
  jg     L308
  cmpl   $0x1,-0x30(%rbp)
  jle    L741
L308:
  movl   $0x0,-0x14(%rbp)
  jmp    L517
L767:
  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    $0x275e,%esi
  mov    %eax,%edi
  mov    $0x0,%eax
  call   <fix_mul@plt>
  mov    %eax,(%rbx)
  addl   $0x1,-0x14(%rbp)
L517:
  mov    -0x14(%rbp),%eax
  cmp    -0x30(%rbp),%eax
  jl     L767
  movl   $0x0,-0x14(%rbp)
  jmp    L812
L259:
  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    $0x3406,%esi
  mov    %eax,%edi
  mov    $0x0,%eax
  call   <fix_mul@plt>
  mov    %eax,(%rbx)
  addl   $0x1,-0x14(%rbp)
L812:
  mov    -0x14(%rbp),%eax
  cmp    -0x2c(%rbp),%eax
  jl     L259
  movl   $0x0,-0x14(%rbp)
  jmp    L873
L30:
  cmpl   $0x0,-0x14(%rbp)
  jg     L289
  mov    -0x28(%rbp),%rax
  mov    0x4(%rax),%edx
  jmp    L118
L289:
  mov    -0x14(%rbp),%eax
  cmp    -0x2c(%rbp),%eax
  jle    L387
  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    L118
L387:
  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
L118:
  cmpl   $0x0,-0x14(%rbp)
  jns    L152
  mov    -0x28(%rbp),%rax
  mov    0x4(%rax),%eax
  jmp    L937
L152:
  mov    -0x14(%rbp),%eax
  cmp    -0x2c(%rbp),%eax
  jl     L431
  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    L937
L431:
  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
L937:
  add    %edx,%eax
  mov    $0xe31,%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)
L873:
  mov    -0x14(%rbp),%eax
  cmp    -0x30(%rbp),%eax
  jl     L30
  movl   $0x0,-0x14(%rbp)
  jmp    L637
L525:
  cmpl   $0x0,-0x14(%rbp)
  jns    L690
  mov    -0x28(%rbp),%rax
  mov    (%rax),%edx
  jmp    L390
L690:
  mov    -0x14(%rbp),%eax
  cmp    -0x30(%rbp),%eax
  jl     L181
  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    L390
L181:
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x28(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%edx
L390:
  cmpl   $0xffffffff,-0x14(%rbp)
  jge    L331
  mov    -0x28(%rbp),%rax
  mov    (%rax),%eax
  jmp    L129
L331:
  mov    -0x14(%rbp),%eax
  add    $0x1,%eax
  cmp    %eax,-0x30(%rbp)
  jg     L193
  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    L129
L193:
  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
L129:
  add    %edx,%eax
  mov    $0x1c41,%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)
L637:
  mov    -0x14(%rbp),%eax
  cmp    -0x2c(%rbp),%eax
  jl     L525
  movl   $0x0,-0x14(%rbp)
  jmp    L1
L187:
  cmpl   $0x0,-0x14(%rbp)
  jg     L644
  mov    -0x28(%rbp),%rax
  mov    0x4(%rax),%edx
  jmp    L936
L644:
  mov    -0x14(%rbp),%eax
  cmp    -0x2c(%rbp),%eax
  jle    L267
  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    L936
L267:
  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
L936:
  cmpl   $0x0,-0x14(%rbp)
  jns    L561
  mov    -0x28(%rbp),%rax
  mov    0x4(%rax),%eax
  jmp    L881
L561:
  mov    -0x14(%rbp),%eax
  cmp    -0x2c(%rbp),%eax
  jl     L156
  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    L881
L156:
  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
L881:
  add    %edx,%eax
  mov    $0x1b2,%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)
L1:
  mov    -0x14(%rbp),%eax
  cmp    -0x30(%rbp),%eax
  jl     L187
  movl   $0x0,-0x14(%rbp)
  jmp    L782
L917:
  cmpl   $0x0,-0x14(%rbp)
  jns    L378
  mov    -0x28(%rbp),%rax
  mov    (%rax),%edx
  jmp    L81
L378:
  mov    -0x14(%rbp),%eax
  cmp    -0x30(%rbp),%eax
  jl     L565
  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    L81
L565:
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x28(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%edx
L81:
  cmpl   $0xffffffff,-0x14(%rbp)
  jge    L64
  mov    -0x28(%rbp),%rax
  mov    (%rax),%eax
  jmp    L68
L64:
  mov    -0x14(%rbp),%eax
  add    $0x1,%eax
  cmp    %eax,-0x30(%rbp)
  jg     L194
  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    L68
L194:
  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
L68:
  add    %edx,%eax
  mov    $0x32c2,%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)
L782:
  mov    -0x14(%rbp),%eax
  cmp    -0x2c(%rbp),%eax
  jl     L917
  jmp    L741
L300:
  cmpl   $0x0,-0x30(%rbp)
  jg     L540
  cmpl   $0x1,-0x2c(%rbp)
  jle    L741
L540:
  movl   $0x0,-0x14(%rbp)
  jmp    L49
L177:
  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    $0x275e,%esi
  mov    %eax,%edi
  mov    $0x0,%eax
  call   <fix_mul@plt>
  mov    %eax,(%rbx)
  addl   $0x1,-0x14(%rbp)
L49:
  mov    -0x14(%rbp),%eax
  cmp    -0x30(%rbp),%eax
  jl     L177
  movl   $0x0,-0x14(%rbp)
  jmp    L237
L455:
  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    $0x3406,%esi
  mov    %eax,%edi
  mov    $0x0,%eax
  call   <fix_mul@plt>
  mov    %eax,(%rbx)
  addl   $0x1,-0x14(%rbp)
L237:
  mov    -0x14(%rbp),%eax
  cmp    -0x2c(%rbp),%eax
  jl     L455
  movl   $0x0,-0x14(%rbp)
  jmp    L420
L307:
  cmpl   $0x0,-0x14(%rbp)
  jns    L157
  mov    -0x28(%rbp),%rax
  mov    (%rax),%edx
  jmp    L574
L157:
  mov    -0x14(%rbp),%eax
  cmp    -0x2c(%rbp),%eax
  jl     L639
  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    L574
L639:
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x28(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%edx
L574:
  cmpl   $0xffffffff,-0x14(%rbp)
  jge    L489
  mov    -0x28(%rbp),%rax
  mov    (%rax),%eax
  jmp    L896
L489:
  mov    -0x14(%rbp),%eax
  add    $0x1,%eax
  cmp    %eax,-0x2c(%rbp)
  jg     L339
  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    L896
L339:
  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
L896:
  add    %edx,%eax
  mov    $0xe31,%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)
L420:
  mov    -0x14(%rbp),%eax
  cmp    -0x30(%rbp),%eax
  jl     L307
  movl   $0x0,-0x14(%rbp)
  jmp    L593
L484:
  cmpl   $0x0,-0x14(%rbp)
  jns    L462
  mov    -0x28(%rbp),%rax
  mov    0x4(%rax),%edx
  jmp    L44
L462:
  mov    -0x14(%rbp),%eax
  cmp    -0x30(%rbp),%eax
  jl     L189
  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    L44
L189:
  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
L44:
  cmpl   $0x0,-0x14(%rbp)
  jg     L468
  mov    -0x28(%rbp),%rax
  mov    0x4(%rax),%eax
  jmp    L173
L468:
  mov    -0x14(%rbp),%eax
  cmp    -0x30(%rbp),%eax
  jle    L675
  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    L173
L675:
  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
L173:
  add    %edx,%eax
  mov    $0x1c41,%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)
L593:
  mov    -0x14(%rbp),%eax
  cmp    -0x2c(%rbp),%eax
  jl     L484
  movl   $0x0,-0x14(%rbp)
  jmp    L699
L657:
  cmpl   $0x0,-0x14(%rbp)
  jns    L374
  mov    -0x28(%rbp),%rax
  mov    (%rax),%edx
  jmp    L138
L374:
  mov    -0x14(%rbp),%eax
  cmp    -0x2c(%rbp),%eax
  jl     L8
  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    L138
L8:
  mov    -0x14(%rbp),%eax
  add    %eax,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x28(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%edx
L138:
  cmpl   $0xffffffff,-0x14(%rbp)
  jge    L919
  mov    -0x28(%rbp),%rax
  mov    (%rax),%eax
  jmp    L348
L919:
  mov    -0x14(%rbp),%eax
  add    $0x1,%eax
  cmp    %eax,-0x2c(%rbp)
  jg     L901
  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    L348
L901:
  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
L348:
  add    %edx,%eax
  mov    $0x1b2,%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)
L699:
  mov    -0x14(%rbp),%eax
  cmp    -0x30(%rbp),%eax
  jl     L657
  movl   $0x0,-0x14(%rbp)
  jmp    L57
L623:
  cmpl   $0x0,-0x14(%rbp)
  jns    L627
  mov    -0x28(%rbp),%rax
  mov    0x4(%rax),%edx
  jmp    L221
L627:
  mov    -0x14(%rbp),%eax
  cmp    -0x30(%rbp),%eax
  jl     L239
  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    L221
L239:
  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
L221:
  cmpl   $0x0,-0x14(%rbp)
  jg     L429
  mov    -0x28(%rbp),%rax
  mov    0x4(%rax),%eax
  jmp    L736
L429:
  mov    -0x14(%rbp),%eax
  cmp    -0x30(%rbp),%eax
  jle    L379
  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    L736
L379:
  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
L736:
  add    %edx,%eax
  mov    $0x32c2,%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)
L57:
  mov    -0x14(%rbp),%eax
  cmp    -0x2c(%rbp),%eax
  jl     L623
L741:
  nop
  mov    -0x8(%rbp),%rbx
  leave
  ret
```

assistant: ```c
void dwt_decode_97(int *a, int dn, int sn, int cas) {
  int i;
  if (!cas) {
    if ((dn > 0) || (sn > 1)) {
      for (i = 0; i < sn; i++)
        a[(i)*2] = fix_mul(a[(i)*2], 10078);
      for (i = 0; i < dn; i++)
        a[(1 + (i)*2)] = fix_mul(a[(1 + (i)*2)], 13318);
      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(((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)])), 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])), 12994);
    }
  } else {
    if ((sn > 0) || (dn > 1)) {
      for (i = 0; i < sn; i++)
        a[(1 + (i)*2)] = fix_mul(a[(1 + (i)*2)], 10078);
      for (i = 0; i < dn; i++)
        a[(i)*2] = fix_mul(a[(i)*2], 13318);
      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(((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])), 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)])), 12994);
    }
  }
}
```