// File: /workspace/github_c_makefile_star2_O0/randyrossi[P]fisher-modem/mkfilter/src/mkfilter.C
// Function: compute_s()
static void compute_s() /* compute S-plane poles for prototype LP filter */
{
  splane.numpoles = 0;
  if (options & opt_be) {        /* Bessel filter */
    int p = (order * order) / 4; /* ptr into table */
    if (order & 1)
      choosepole(bessel_poles[p++]);
    for (int i = 0; i < order / 2; i++) {
      choosepole(bessel_poles[p]);
      choosepole(cconj(bessel_poles[p]));
      p++;
    }
  }
  if (options & (opt_bu | opt_ch)) { /* Butterworth filter */
    for (int i = 0; i < 2 * order; i++) {
      double theta = (order & 1) ? (i * PI) / order : ((i + 0.5) * PI) / order;
      choosepole(expj(theta));
    }
  }
  if (options & opt_ch) { /* modify for Chebyshev (p. 136 DeFatta et al.) */
    if (chebrip >= 0.0) {
      fprintf(stderr, "mkfilter: Chebyshev ripple is %g dB; must be .lt. 0.0\n",
              chebrip);
      exit(1);
    }
    double rip = pow(10.0, -chebrip / 10.0);
    double eps = sqrt(rip - 1.0);
    double y = asinh(1.0 / eps) / (double)order;
    if (y <= 0.0) {
      fprintf(stderr, "mkfilter: bug: Chebyshev y=%g; must be .gt. 0.0\n", y);
      exit(1);
    }
    for (int i = 0; i < splane.numpoles; i++) {
      splane.poles[i].re *= sinh(y);
      splane.poles[i].im *= cosh(y);
    }
  }
}

// Assembly:
subq $0xc8, %rsp
movl $0x0, 0xb0df(%rip)      # 0xd2e0
movl 0xf119(%rip), %eax      # 0x11320
andl $0x1, %eax
cmpl $0x0, %eax
je 0x23d1
movl 0xf11b(%rip), %eax      # 0x11334
imull 0xf114(%rip), %eax      # 0x11334
movl $0x4, %ecx
cltd
idivl %ecx
movl %eax, 0xc4(%rsp)
movl 0xf0ff(%rip), %eax      # 0x11334
andl $0x1, %eax
cmpl $0x0, %eax
je 0x22ae
movl 0xc4(%rsp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, 0xc4(%rsp)
movslq %eax, %rcx
leaq 0x6e86(%rip), %rax      # 0x90e0
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rcx
movq %rcx, 0xa0(%rsp)
movq 0x8(%rax), %rax
movq %rax, 0xa8(%rsp)
movsd 0xa0(%rsp), %xmm0
movsd 0xa8(%rsp), %xmm1
leaq 0xb0(%rsp), %rdi
callq 0x4f30
movsd 0xb0(%rsp), %xmm0
movsd 0xb8(%rsp), %xmm1
callq 0x41f0
movl $0x0, 0x9c(%rsp)
movl 0x9c(%rsp), %eax
movl %eax, 0x8(%rsp)
movl 0xf06a(%rip), %eax      # 0x11334
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl 0x8(%rsp), %eax
cmpl %ecx, %eax
jge 0x23cf
movslq 0xc4(%rsp), %rcx
leaq 0x6df1(%rip), %rax      # 0x90e0
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rcx
movq %rcx, 0x78(%rsp)
movq 0x8(%rax), %rax
movq %rax, 0x80(%rsp)
movsd 0x78(%rsp), %xmm0
movsd 0x80(%rsp), %xmm1
leaq 0x88(%rsp), %rdi
callq 0x4f30
movsd 0x88(%rsp), %xmm0
movsd 0x90(%rsp), %xmm1
callq 0x41f0
movslq 0xc4(%rsp), %rcx
leaq 0x6d94(%rip), %rax      # 0x90e0
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rcx
movq %rcx, 0x48(%rsp)
movq 0x8(%rax), %rax
movq %rax, 0x50(%rsp)
movsd 0x48(%rsp), %xmm0
movsd 0x50(%rsp), %xmm1
leaq 0x58(%rsp), %rdi
callq 0x4f30
movsd 0x58(%rsp), %xmm0
movsd 0x60(%rsp), %xmm1
callq 0x4f60
movsd %xmm0, 0x68(%rsp)
movsd %xmm1, 0x70(%rsp)
movsd 0x68(%rsp), %xmm0
movsd 0x70(%rsp), %xmm1
callq 0x41f0
movl 0xc4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xc4(%rsp)
movl 0x9c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x9c(%rsp)
jmp 0x22b9
jmp 0x23d1
movl 0xef49(%rip), %eax      # 0x11320
andl $0x6, %eax
cmpl $0x0, %eax
je 0x24a6
movl $0x0, 0x44(%rsp)
movl 0x44(%rsp), %eax
movl 0xef3f(%rip), %ecx      # 0x11334
shll %ecx
cmpl %ecx, %eax
jge 0x24a4
movl 0xef2f(%rip), %eax      # 0x11334
andl $0x1, %eax
cmpl $0x0, %eax
je 0x2432
cvtsi2sdl 0x44(%rsp), %xmm0
movsd 0x3c0d(%rip), %xmm1     # 0x6028
mulsd %xmm1, %xmm0
cvtsi2sdl 0xef0d(%rip), %xmm1 # 0x11334
divsd %xmm1, %xmm0
movsd %xmm0, (%rsp)
jmp 0x2461
cvtsi2sdl 0x44(%rsp), %xmm0
movsd 0x3c00(%rip), %xmm1     # 0x6040
addsd %xmm1, %xmm0
movsd 0x3bdc(%rip), %xmm1     # 0x6028
mulsd %xmm1, %xmm0
cvtsi2sdl 0xeedc(%rip), %xmm1 # 0x11334
divsd %xmm1, %xmm0
movsd %xmm0, (%rsp)
movsd (%rsp), %xmm0
movsd %xmm0, 0x38(%rsp)
movsd 0x38(%rsp), %xmm0
callq 0x5750
movsd %xmm0, 0x28(%rsp)
movsd %xmm1, 0x30(%rsp)
movsd 0x28(%rsp), %xmm0
movsd 0x30(%rsp), %xmm1
callq 0x41f0
movl 0x44(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x44(%rsp)
jmp 0x23eb
jmp 0x24a6
movl 0xee74(%rip), %eax      # 0x11320
andl $0x4, %eax
cmpl $0x0, %eax
je 0x2617
movsd 0xee78(%rip), %xmm0     # 0x11338
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0x24f3
movq 0x6b10(%rip), %rax      # 0x8fe0
movq (%rax), %rdi
movsd 0xee5d(%rip), %xmm0     # 0x11338
leaq 0x418d(%rip), %rsi      # 0x666f
movb $0x1, %al
callq 0x1140
movl $0x1, %edi
callq 0x10e0
movsd 0xee3d(%rip), %xmm0     # 0x11338
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
movsd 0x3b2e(%rip), %xmm0     # 0x6048
divsd %xmm0, %xmm1
movsd 0x3b22(%rip), %xmm0     # 0x6048
callq 0x1160
movsd %xmm0, 0x20(%rsp)
movsd 0x20(%rsp), %xmm0
movsd 0x3ae1(%rip), %xmm1     # 0x6020
subsd %xmm1, %xmm0
callq 0x10a0
movsd %xmm0, 0x18(%rsp)
movsd 0x3aca(%rip), %xmm0     # 0x6020
divsd 0x18(%rsp), %xmm0
callq 0x4fa0
cvtsi2sdl 0xedcb(%rip), %xmm1 # 0x11334
divsd %xmm1, %xmm0
movsd %xmm0, 0x10(%rsp)
xorps %xmm0, %xmm0
ucomisd 0x10(%rsp), %xmm0
jb 0x25a6
movq 0x6a5b(%rip), %rax      # 0x8fe0
movq (%rax), %rdi
movsd 0x10(%rsp), %xmm0
leaq 0x4111(%rip), %rsi      # 0x66a6
movb $0x1, %al
callq 0x1140
movl $0x1, %edi
callq 0x10e0
movl $0x0, 0xc(%rsp)
movl 0xc(%rsp), %eax
cmpl 0xad28(%rip), %eax      # 0xd2e0
jge 0x2615
movsd 0x10(%rsp), %xmm0
callq 0x10c0
movslq 0xc(%rsp), %rcx
leaq 0x6d0f(%rip), %rax      # 0x92e0
shlq $0x4, %rcx
addq %rcx, %rax
mulsd (%rax), %xmm0
movsd %xmm0, (%rax)
movsd 0x10(%rsp), %xmm0
callq 0x1120
movslq 0xc(%rsp), %rcx
leaq 0x6ce9(%rip), %rax      # 0x92e0
shlq $0x4, %rcx
addq %rcx, %rax
mulsd 0x8(%rax), %xmm0
movsd %xmm0, 0x8(%rax)
movl 0xc(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xc(%rsp)
jmp 0x25ae
jmp 0x2617
addq $0xc8, %rsp
retq
nop