// File: /workspace/github_c_makefile_star2_O0/randyrossi[P]fisher-modem/mkfilter/src/gencode.C
// Function: pr_xpart(char const*)
static void pr_xpart(const char* vs) { /* output contribution from X vec */
  nxfacs = 0;
  for (int i = 0; i < (nzeros + 1) / 2; i++) {
    int j = nzeros - i;
    double xi = xcoeffs[i], xj = xcoeffs[j];
    /* they should be paired, except for allpass resonator */
    if (xi == xj) {
      unless(xi == 0.0) {
        prxfac(xi);
        printf("(%s[%d] + %s[%d])", vs, i, vs, j);
      }
    } else if (xi == -xj) {
      if (xi > 0.0) {
        prxfac(xi);
        printf("(%s[%d] - %s[%d])", vs, i, vs, j);
      } else {
        prxfac(xj);
        printf("(%s[%d] - %s[%d])", vs, j, vs, i);
      }
    } else {
      unless(xi == 0.0) {
        prxfac(xi);
        printf("%s[%d]", vs, i);
      }
      unless(xj == 0.0) {
        prxfac(xj);
        printf("%s[%d]", vs, j);
      }
    }
  }
  if ((nzeros + 1) & 1) {
    int j = nzeros / 2;
    double xj = xcoeffs[j];
    unless(xj == 0.0) {
      prxfac(xj);
      printf("%s[%d]", vs, j);
    }
  }
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movl $0x0, 0x594d(%rip)      # 0x7210
movl $0x0, 0x2c(%rsp)
movl 0x2c(%rsp), %eax
movl %eax, 0x4(%rsp)
movl 0x3907(%rip), %eax      # 0x51e0
addl $0x1, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl 0x4(%rsp), %eax
cmpl %ecx, %eax
jge 0x1a98
movl 0x38e8(%rip), %eax      # 0x51e0
subl 0x2c(%rsp), %eax
movl %eax, 0x28(%rsp)
movslq 0x2c(%rsp), %rcx
leaq 0x38e4(%rip), %rax      # 0x51f0
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, 0x20(%rsp)
movslq 0x28(%rsp), %rcx
leaq 0x38cd(%rip), %rax      # 0x51f0
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, 0x18(%rsp)
movsd 0x20(%rsp), %xmm0
ucomisd 0x18(%rsp), %xmm0
jne 0x1982
jp 0x1982
movsd 0x20(%rsp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x1951
jp 0x1951
jmp 0x197d
movsd 0x20(%rsp), %xmm0
callq 0x1b50
movq 0x30(%rsp), %rsi
movl 0x2c(%rsp), %edx
movq 0x30(%rsp), %rcx
movl 0x28(%rsp), %r8d
leaq 0x1890(%rip), %rdi      # 0x3206
movb $0x0, %al
callq 0x1030
jmp 0x1a86
movsd 0x20(%rsp), %xmm0
movsd 0x18(%rsp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
ucomisd %xmm1, %xmm0
jne 0x1a18
jp 0x1a18
movsd 0x20(%rsp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x19ea
movsd 0x20(%rsp), %xmm0
callq 0x1b50
movq 0x30(%rsp), %rsi
movl 0x2c(%rsp), %edx
movq 0x30(%rsp), %rcx
movl 0x28(%rsp), %r8d
leaq 0x1837(%rip), %rdi      # 0x3218
movb $0x0, %al
callq 0x1030
jmp 0x1a16
movsd 0x18(%rsp), %xmm0
callq 0x1b50
movq 0x30(%rsp), %rsi
movl 0x28(%rsp), %edx
movq 0x30(%rsp), %rcx
movl 0x2c(%rsp), %r8d
leaq 0x1809(%rip), %rdi      # 0x3218
movb $0x0, %al
callq 0x1030
jmp 0x1a84
movsd 0x20(%rsp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x1a2b
jp 0x1a2b
jmp 0x1a4d
movsd 0x20(%rsp), %xmm0
callq 0x1b50
movq 0x30(%rsp), %rsi
movl 0x2c(%rsp), %edx
leaq 0x17e4(%rip), %rdi      # 0x322a
movb $0x0, %al
callq 0x1030
movsd 0x18(%rsp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x1a60
jp 0x1a60
jmp 0x1a82
movsd 0x18(%rsp), %xmm0
callq 0x1b50
movq 0x30(%rsp), %rsi
movl 0x28(%rsp), %edx
leaq 0x17af(%rip), %rdi      # 0x322a
movb $0x0, %al
callq 0x1030
jmp 0x1a84
jmp 0x1a86
jmp 0x1a88
movl 0x2c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x2c(%rsp)
jmp 0x18cb
movl 0x3742(%rip), %eax      # 0x51e0
addl $0x1, %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x1b09
movl 0x3731(%rip), %eax      # 0x51e0
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, 0x14(%rsp)
movslq 0x14(%rsp), %rcx
leaq 0x3729(%rip), %rax      # 0x51f0
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, 0x8(%rsp)
movsd 0x8(%rsp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x1ae5
jp 0x1ae5
jmp 0x1b07
movsd 0x8(%rsp), %xmm0
callq 0x1b50
movq 0x30(%rsp), %rsi
movl 0x14(%rsp), %edx
leaq 0x172a(%rip), %rdi      # 0x322a
movb $0x0, %al
callq 0x1030
jmp 0x1b09
addq $0x38, %rsp
retq
nop