// File: /workspace/github_c_makefile_star2_O0/randyrossi[P]fisher-modem/mkfilter/src/mkfilter.C
// Function: normalize()
static void normalize() /* called for trad, not for -Re or -Pi */
{
  double w1 = TWOPI * warped_alpha1;
  double w2 = TWOPI * warped_alpha2;
  /* transform prototype into appropriate filter type (lp/hp/bp/bs) */
  switch (options & (opt_lp | opt_hp | opt_bp | opt_bs)) {
    case opt_lp: {
      for (int i = 0; i < splane.numpoles; i++)
        splane.poles[i] = splane.poles[i] * w1;
      splane.numzeros = 0;
      break;
    }

    case opt_hp: {
      int i;
      for (i = 0; i < splane.numpoles; i++)
        splane.poles[i] = w1 / splane.poles[i];
      for (i = 0; i < splane.numpoles; i++)
        splane.zeros[i] = 0.0; /* also N zeros at (0,0) */
      splane.numzeros = splane.numpoles;
      break;
    }

    case opt_bp: {
      double w0 = sqrt(w1 * w2), bw = w2 - w1;
      int i;
      for (i = 0; i < splane.numpoles; i++) {
        complex hba = 0.5 * (splane.poles[i] * bw);
        complex temp = csqrt(1.0 - sqr(w0 / hba));
        splane.poles[i] = hba * (1.0 + temp);
        splane.poles[splane.numpoles + i] = hba * (1.0 - temp);
      }
      for (i = 0; i < splane.numpoles; i++)
        splane.zeros[i] = 0.0; /* also N zeros at (0,0) */
      splane.numzeros = splane.numpoles;
      splane.numpoles *= 2;
      break;
    }

    case opt_bs: {
      double w0 = sqrt(w1 * w2), bw = w2 - w1;
      int i;
      for (i = 0; i < splane.numpoles; i++) {
        complex hba = 0.5 * (bw / splane.poles[i]);
        complex temp = csqrt(1.0 - sqr(w0 / hba));
        splane.poles[i] = hba * (1.0 + temp);
        splane.poles[splane.numpoles + i] = hba * (1.0 - temp);
      }
      for (i = 0; i < splane.numpoles; i++) /* also 2N zeros at (0, +-w0) */
      {
        splane.zeros[i] = complex(0.0, +w0);
        splane.zeros[splane.numpoles + i] = complex(0.0, -w0);
      }
      splane.numpoles *= 2;
      splane.numzeros = splane.numpoles;
      break;
    }
  }
}

// Assembly:
subq $0x398, %rsp            # imm = 0x398
movsd 0xecf9(%rip), %xmm0     # 0x11328
movsd 0x39d9(%rip), %xmm1     # 0x6010
mulsd %xmm1, %xmm0
movsd %xmm0, 0x390(%rsp)
movsd 0xed2c(%rip), %xmm0     # 0x11378
mulsd %xmm1, %xmm0
movsd %xmm0, 0x388(%rsp)
movl 0xecc1(%rip), %eax      # 0x11320
andl $0x1e0, %eax            # imm = 0x1E0
movl %eax, 0x4(%rsp)
subl $0x20, %eax
je 0x26a3
jmp 0x266f
movl 0x4(%rsp), %eax
subl $0x40, %eax
je 0x2794
jmp 0x267e
movl 0x4(%rsp), %eax
subl $0x80, %eax
je 0x28fa
jmp 0x268f
movl 0x4(%rsp), %eax
subl $0x100, %eax            # imm = 0x100
je 0x2dc4
jmp 0x32b0
movl $0x0, 0x384(%rsp)
movl 0x384(%rsp), %eax
cmpl 0xac25(%rip), %eax      # 0xd2e0
jge 0x2785
movslq 0x384(%rsp), %rcx
leaq 0x6c10(%rip), %rax      # 0x92e0
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rcx
movq %rcx, 0x360(%rsp)
movq 0x8(%rax), %rax
movq %rax, 0x368(%rsp)
movsd 0x390(%rsp), %xmm0
leaq 0x350(%rsp), %rdi
xorps %xmm1, %xmm1
callq 0x4ea0
movsd 0x360(%rsp), %xmm0
movsd 0x368(%rsp), %xmm1
movsd 0x350(%rsp), %xmm2
movsd 0x358(%rsp), %xmm3
callq 0x57a0
movsd %xmm0, 0x370(%rsp)
movsd %xmm1, 0x378(%rsp)
movslq 0x384(%rsp), %rcx
leaq 0x6b8f(%rip), %rax      # 0x92e0
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x370(%rsp), %rcx
movq %rcx, (%rax)
movq 0x378(%rsp), %rcx
movq %rcx, 0x8(%rax)
movl 0x384(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x384(%rsp)
jmp 0x26ae
movl $0x0, 0xab55(%rip)      # 0xd2e4
jmp 0x32b0
movl $0x0, 0x34c(%rsp)
movl 0x34c(%rsp), %eax
cmpl 0xab34(%rip), %eax      # 0xd2e0
jge 0x2876
movsd 0x390(%rsp), %xmm0
leaq 0x328(%rsp), %rdi
xorps %xmm1, %xmm1
callq 0x4ea0
movslq 0x34c(%rsp), %rcx
leaq 0x6b06(%rip), %rax      # 0x92e0
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rcx
movq %rcx, 0x318(%rsp)
movq 0x8(%rax), %rax
movq %rax, 0x320(%rsp)
movsd 0x328(%rsp), %xmm0
movsd 0x330(%rsp), %xmm1
movsd 0x318(%rsp), %xmm2
movsd 0x320(%rsp), %xmm3
callq 0x5400
movsd %xmm0, 0x338(%rsp)
movsd %xmm1, 0x340(%rsp)
movslq 0x34c(%rsp), %rcx
leaq 0x6a9e(%rip), %rax      # 0x92e0
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x338(%rsp), %rcx
movq %rcx, (%rax)
movq 0x340(%rsp), %rcx
movq %rcx, 0x8(%rax)
movl 0x34c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x34c(%rsp)
jmp 0x279f
movl $0x0, 0x34c(%rsp)
movl 0x34c(%rsp), %eax
cmpl 0xaa52(%rip), %eax      # 0xd2e0
jge 0x28e9
leaq 0x308(%rsp), %rdi
xorps %xmm1, %xmm1
movaps %xmm1, %xmm0
callq 0x4ea0
movslq 0x34c(%rsp), %rcx
leaq 0x6a2e(%rip), %rax      # 0x92e0
addq $0x2000, %rax           # imm = 0x2000
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x308(%rsp), %rcx
movq %rcx, (%rax)
movq 0x310(%rsp), %rcx
movq %rcx, 0x8(%rax)
movl 0x34c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x34c(%rsp)
jmp 0x2881
movl 0xa9f1(%rip), %eax      # 0xd2e0
movl %eax, 0xa9ef(%rip)      # 0xd2e4
jmp 0x32b0
movsd 0x390(%rsp), %xmm0
mulsd 0x388(%rsp), %xmm0
callq 0x10a0
movsd %xmm0, 0x300(%rsp)
movsd 0x388(%rsp), %xmm0
subsd 0x390(%rsp), %xmm0
movsd %xmm0, 0x2f8(%rsp)
movl $0x0, 0x2f4(%rsp)
movl 0x2f4(%rsp), %eax
cmpl 0xa993(%rip), %eax      # 0xd2e0
jge 0x2d32
movslq 0x2f4(%rsp), %rcx
leaq 0x697e(%rip), %rax      # 0x92e0
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rcx
movq %rcx, 0x2c0(%rsp)
movq 0x8(%rax), %rax
movq %rax, 0x2c8(%rsp)
movsd 0x2f8(%rsp), %xmm0
leaq 0x2b0(%rsp), %rdi
xorps %xmm1, %xmm1
callq 0x4ea0
movsd 0x2c0(%rsp), %xmm0
movsd 0x2c8(%rsp), %xmm1
movsd 0x2b0(%rsp), %xmm2
movsd 0x2b8(%rsp), %xmm3
callq 0x57a0
movsd %xmm0, 0x2d0(%rsp)
movsd %xmm1, 0x2d8(%rsp)
movsd 0x2d0(%rsp), %xmm1
movsd 0x2d8(%rsp), %xmm2
movsd 0x3652(%rip), %xmm0     # 0x6040
callq 0x5030
movsd %xmm0, 0x2e0(%rsp)
movsd %xmm1, 0x2e8(%rsp)
leaq 0x280(%rsp), %rdi
movsd 0x360b(%rip), %xmm0     # 0x6020
xorps %xmm1, %xmm1
callq 0x4ea0
movsd 0x300(%rsp), %xmm0
leaq 0x250(%rsp), %rdi
xorps %xmm1, %xmm1
callq 0x4ea0
movq 0x2e0(%rsp), %rax
movq %rax, 0x240(%rsp)
movq 0x2e8(%rsp), %rax
movq %rax, 0x248(%rsp)
movsd 0x250(%rsp), %xmm0
movsd 0x258(%rsp), %xmm1
movsd 0x240(%rsp), %xmm2
movsd 0x248(%rsp), %xmm3
callq 0x5400
movsd %xmm0, 0x260(%rsp)
movsd %xmm1, 0x268(%rsp)
movsd 0x260(%rsp), %xmm0
movsd 0x268(%rsp), %xmm1
callq 0x50f0
movsd %xmm0, 0x270(%rsp)
movsd %xmm1, 0x278(%rsp)
movsd 0x280(%rsp), %xmm0
movsd 0x288(%rsp), %xmm1
movsd 0x270(%rsp), %xmm2
movsd 0x278(%rsp), %xmm3
callq 0x5090
movsd %xmm0, 0x290(%rsp)
movsd %xmm1, 0x298(%rsp)
movsd 0x290(%rsp), %xmm0
movsd 0x298(%rsp), %xmm1
callq 0x55c0
movsd %xmm0, 0x2a0(%rsp)
movsd %xmm1, 0x2a8(%rsp)
movq 0x2e0(%rsp), %rax
movq %rax, 0x220(%rsp)
movq 0x2e8(%rsp), %rax
movq %rax, 0x228(%rsp)
leaq 0x200(%rsp), %rdi
movsd 0x34d2(%rip), %xmm0     # 0x6020
xorps %xmm1, %xmm1
callq 0x4ea0
movq 0x2a0(%rsp), %rax
movq %rax, 0x1f0(%rsp)
movq 0x2a8(%rsp), %rax
movq %rax, 0x1f8(%rsp)
movsd 0x200(%rsp), %xmm0
movsd 0x208(%rsp), %xmm1
movsd 0x1f0(%rsp), %xmm2
movsd 0x1f8(%rsp), %xmm3
callq 0x5150
movsd %xmm0, 0x210(%rsp)
movsd %xmm1, 0x218(%rsp)
movsd 0x220(%rsp), %xmm0
movsd 0x228(%rsp), %xmm1
movsd 0x210(%rsp), %xmm2
movsd 0x218(%rsp), %xmm3
callq 0x57a0
movsd %xmm0, 0x230(%rsp)
movsd %xmm1, 0x238(%rsp)
movslq 0x2f4(%rsp), %rcx
leaq 0x66e5(%rip), %rax      # 0x92e0
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x230(%rsp), %rcx
movq %rcx, (%rax)
movq 0x238(%rsp), %rcx
movq %rcx, 0x8(%rax)
movq 0x2e0(%rsp), %rax
movq %rax, 0x1d0(%rsp)
movq 0x2e8(%rsp), %rax
movq %rax, 0x1d8(%rsp)
leaq 0x1b0(%rsp), %rdi
movsd 0x33d7(%rip), %xmm0     # 0x6020
xorps %xmm1, %xmm1
callq 0x4ea0
movq 0x2a0(%rsp), %rax
movq %rax, 0x1a0(%rsp)
movq 0x2a8(%rsp), %rax
movq %rax, 0x1a8(%rsp)
movsd 0x1b0(%rsp), %xmm0
movsd 0x1b8(%rsp), %xmm1
movsd 0x1a0(%rsp), %xmm2
movsd 0x1a8(%rsp), %xmm3
callq 0x5090
movsd %xmm0, 0x1c0(%rsp)
movsd %xmm1, 0x1c8(%rsp)
movsd 0x1d0(%rsp), %xmm0
movsd 0x1d8(%rsp), %xmm1
movsd 0x1c0(%rsp), %xmm2
movsd 0x1c8(%rsp), %xmm3
callq 0x57a0
movsd %xmm0, 0x1e0(%rsp)
movsd %xmm1, 0x1e8(%rsp)
movl 0xa5f3(%rip), %eax      # 0xd2e0
addl 0x2f4(%rsp), %eax
movslq %eax, %rcx
leaq 0x65e2(%rip), %rax      # 0x92e0
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x1e0(%rsp), %rcx
movq %rcx, (%rax)
movq 0x1e8(%rsp), %rcx
movq %rcx, 0x8(%rax)
movl 0x2f4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x2f4(%rsp)
jmp 0x2940
movl $0x0, 0x2f4(%rsp)
movl 0x2f4(%rsp), %eax
cmpl 0xa596(%rip), %eax      # 0xd2e0
jge 0x2da5
leaq 0x190(%rsp), %rdi
xorps %xmm1, %xmm1
movaps %xmm1, %xmm0
callq 0x4ea0
movslq 0x2f4(%rsp), %rcx
leaq 0x6572(%rip), %rax      # 0x92e0
addq $0x2000, %rax           # imm = 0x2000
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x190(%rsp), %rcx
movq %rcx, (%rax)
movq 0x198(%rsp), %rcx
movq %rcx, 0x8(%rax)
movl 0x2f4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x2f4(%rsp)
jmp 0x2d3d
movl 0xa535(%rip), %eax      # 0xd2e0
movl %eax, 0xa533(%rip)      # 0xd2e4
movl 0xa529(%rip), %eax      # 0xd2e0
shll %eax
movl %eax, 0xa521(%rip)      # 0xd2e0
jmp 0x32b0
movsd 0x390(%rsp), %xmm0
mulsd 0x388(%rsp), %xmm0
callq 0x10a0
movsd %xmm0, 0x188(%rsp)
movsd 0x388(%rsp), %xmm0
subsd 0x390(%rsp), %xmm0
movsd %xmm0, 0x180(%rsp)
movl $0x0, 0x17c(%rsp)
movl 0x17c(%rsp), %eax
cmpl 0xa4c9(%rip), %eax      # 0xd2e0
jge 0x31bd
movsd 0x180(%rsp), %xmm0
leaq 0x148(%rsp), %rdi
xorps %xmm1, %xmm1
callq 0x4ea0
movslq 0x17c(%rsp), %rcx
leaq 0x649b(%rip), %rax      # 0x92e0
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rcx
movq %rcx, 0x138(%rsp)
movq 0x8(%rax), %rax
movq %rax, 0x140(%rsp)
movsd 0x148(%rsp), %xmm0
movsd 0x150(%rsp), %xmm1
movsd 0x138(%rsp), %xmm2
movsd 0x140(%rsp), %xmm3
callq 0x5400
movsd %xmm0, 0x158(%rsp)
movsd %xmm1, 0x160(%rsp)
movsd 0x158(%rsp), %xmm1
movsd 0x160(%rsp), %xmm2
movsd 0x3188(%rip), %xmm0     # 0x6040
callq 0x5030
movsd %xmm0, 0x168(%rsp)
movsd %xmm1, 0x170(%rsp)
leaq 0x108(%rsp), %rdi
movsd 0x3141(%rip), %xmm0     # 0x6020
xorps %xmm1, %xmm1
callq 0x4ea0
movsd 0x188(%rsp), %xmm0
leaq 0xd8(%rsp), %rdi
xorps %xmm1, %xmm1
callq 0x4ea0
movq 0x168(%rsp), %rax
movq %rax, 0xc8(%rsp)
movq 0x170(%rsp), %rax
movq %rax, 0xd0(%rsp)
movsd 0xd8(%rsp), %xmm0
movsd 0xe0(%rsp), %xmm1
movsd 0xc8(%rsp), %xmm2
movsd 0xd0(%rsp), %xmm3
callq 0x5400
movsd %xmm0, 0xe8(%rsp)
movsd %xmm1, 0xf0(%rsp)
movsd 0xe8(%rsp), %xmm0
movsd 0xf0(%rsp), %xmm1
callq 0x50f0
movsd %xmm0, 0xf8(%rsp)
movsd %xmm1, 0x100(%rsp)
movsd 0x108(%rsp), %xmm0
movsd 0x110(%rsp), %xmm1
movsd 0xf8(%rsp), %xmm2
movsd 0x100(%rsp), %xmm3
callq 0x5090
movsd %xmm0, 0x118(%rsp)
movsd %xmm1, 0x120(%rsp)
movsd 0x118(%rsp), %xmm0
movsd 0x120(%rsp), %xmm1
callq 0x55c0
movsd %xmm0, 0x128(%rsp)
movsd %xmm1, 0x130(%rsp)
movq 0x168(%rsp), %rax
movq %rax, 0xa8(%rsp)
movq 0x170(%rsp), %rax
movq %rax, 0xb0(%rsp)
leaq 0x88(%rsp), %rdi
movsd 0x3008(%rip), %xmm0     # 0x6020
xorps %xmm1, %xmm1
callq 0x4ea0
movq 0x128(%rsp), %rax
movq %rax, 0x78(%rsp)
movq 0x130(%rsp), %rax
movq %rax, 0x80(%rsp)
movsd 0x88(%rsp), %xmm0
movsd 0x90(%rsp), %xmm1
movsd 0x78(%rsp), %xmm2
movsd 0x80(%rsp), %xmm3
callq 0x5150
movsd %xmm0, 0x98(%rsp)
movsd %xmm1, 0xa0(%rsp)
movsd 0xa8(%rsp), %xmm0
movsd 0xb0(%rsp), %xmm1
movsd 0x98(%rsp), %xmm2
movsd 0xa0(%rsp), %xmm3
callq 0x57a0
movsd %xmm0, 0xb8(%rsp)
movsd %xmm1, 0xc0(%rsp)
movslq 0x17c(%rsp), %rcx
leaq 0x6221(%rip), %rax      # 0x92e0
shlq $0x4, %rcx
addq %rcx, %rax
movq 0xb8(%rsp), %rcx
movq %rcx, (%rax)
movq 0xc0(%rsp), %rcx
movq %rcx, 0x8(%rax)
movq 0x168(%rsp), %rax
movq %rax, 0x58(%rsp)
movq 0x170(%rsp), %rax
movq %rax, 0x60(%rsp)
leaq 0x38(%rsp), %rdi
movsd 0x2f1c(%rip), %xmm0     # 0x6020
xorps %xmm1, %xmm1
callq 0x4ea0
movq 0x128(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x130(%rsp), %rax
movq %rax, 0x30(%rsp)
movsd 0x38(%rsp), %xmm0
movsd 0x40(%rsp), %xmm1
movsd 0x28(%rsp), %xmm2
movsd 0x30(%rsp), %xmm3
callq 0x5090
movsd %xmm0, 0x48(%rsp)
movsd %xmm1, 0x50(%rsp)
movsd 0x58(%rsp), %xmm0
movsd 0x60(%rsp), %xmm1
movsd 0x48(%rsp), %xmm2
movsd 0x50(%rsp), %xmm3
callq 0x57a0
movsd %xmm0, 0x68(%rsp)
movsd %xmm1, 0x70(%rsp)
movl 0xa162(%rip), %eax      # 0xd2e0
addl 0x17c(%rsp), %eax
movslq %eax, %rcx
leaq 0x6151(%rip), %rax      # 0x92e0
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x68(%rsp), %rcx
movq %rcx, (%rax)
movq 0x70(%rsp), %rcx
movq %rcx, 0x8(%rax)
movl 0x17c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x17c(%rsp)
jmp 0x2e0a
movl $0x0, 0x17c(%rsp)
movl 0x17c(%rsp), %eax
cmpl 0xa10b(%rip), %eax      # 0xd2e0
jge 0x3296
movsd 0x188(%rsp), %xmm1
leaq 0x18(%rsp), %rdi
xorps %xmm0, %xmm0
callq 0x4ea0
movslq 0x17c(%rsp), %rcx
leaq 0x60e0(%rip), %rax      # 0x92e0
addq $0x2000, %rax           # imm = 0x2000
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x18(%rsp), %rcx
movq %rcx, (%rax)
movq 0x20(%rsp), %rcx
movq %rcx, 0x8(%rax)
movsd 0x188(%rsp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
leaq 0x8(%rsp), %rdi
xorps %xmm0, %xmm0
callq 0x4ea0
movl 0xa08f(%rip), %eax      # 0xd2e0
addl 0x17c(%rsp), %eax
movslq %eax, %rcx
leaq 0x607e(%rip), %rax      # 0x92e0
addq $0x2000, %rax           # imm = 0x2000
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rsp), %rcx
movq %rcx, (%rax)
movq 0x10(%rsp), %rcx
movq %rcx, 0x8(%rax)
movl 0x17c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x17c(%rsp)
jmp 0x31c8
movl 0xa044(%rip), %eax      # 0xd2e0
shll %eax
movl %eax, 0xa03c(%rip)      # 0xd2e0
movl 0xa036(%rip), %eax      # 0xd2e0
movl %eax, 0xa034(%rip)      # 0xd2e4
addq $0x398, %rsp            # imm = 0x398
retq
nopl (%rax,%rax)