// File: /workspace/github_cpp_makefile_star2_O1/marxn[P]pupp/3rdparty/gmp/gen-trialdivtab.c
// Function: mpn_mod_1s_4p_cps
void
mpn_mod_1s_4p_cps (mpz_t cps[7], mpz_t bparm)
{
  mpz_t b, bi;
  mpz_t B1modb, B2modb, B3modb, B4modb, B5modb;
  mpz_t t;
  int cnt;

  mpz_init_set (b, bparm);

  cnt = limb_bits - mpz_log2 (b);

  mpz_init (bi);
  mpz_init (t);
  mpz_init (B1modb);
  mpz_init (B2modb);
  mpz_init (B3modb);
  mpz_init (B4modb);
  mpz_init (B5modb);

  mpz_set_ui (t, 1);
  mpz_mul_2exp (t, t, limb_bits - cnt);
  mpz_sub (t, t, b);
  mpz_mul_2exp (t, t, limb_bits);
  mpz_tdiv_q (bi, t, b);		/* bi = B^2/b, except msb */

  mpz_set_ui (t, 1);
  mpz_mul_2exp (t, t, limb_bits);	/* t = B */
  mpz_tdiv_r (B1modb, t, b);

  mpz_mul_2exp (t, B1modb, limb_bits);
  mpz_tdiv_r (B2modb, t, b);

  mpz_mul_2exp (t, B2modb, limb_bits);
  mpz_tdiv_r (B3modb, t, b);

  mpz_mul_2exp (t, B3modb, limb_bits);
  mpz_tdiv_r (B4modb, t, b);

  mpz_mul_2exp (t, B4modb, limb_bits);
  mpz_tdiv_r (B5modb, t, b);

  mpz_set (cps[0], bi);
  mpz_set_ui (cps[1], cnt);
  mpz_tdiv_q_2exp (cps[2], B1modb, 0);
  mpz_tdiv_q_2exp (cps[3], B2modb, 0);
  mpz_tdiv_q_2exp (cps[4], B3modb, 0);
  mpz_tdiv_q_2exp (cps[5], B4modb, 0);
  mpz_tdiv_q_2exp (cps[6], B5modb, 0);

  mpz_clear (b);
  mpz_clear (bi);
  mpz_clear (t);
  mpz_clear (B1modb);
  mpz_clear (B2modb);
  mpz_clear (B3modb);
  mpz_clear (B4modb);
  mpz_clear (B5modb);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x88, %rsp
movq %rsi, %r15
movq %rdi, %rbx
movl $0x1, %r12d
leaq -0xa0(%rbp), %r14
movq %r12, (%r14)
movl $0x8, %edi
callq *0x6054(%rip)           # 0xf0a0
movq %rax, 0x8(%r14)
movq %r14, %rdi
movq %r15, %rsi
callq 0x249e
movl 0x606f(%rip), %eax      # 0xf0d0
movl %eax, -0x2c(%rbp)
movq %r14, %rdi
callq 0x9425
movq %rax, %r14
leaq -0x50(%rbp), %r13
movq %r12, (%r13)
movl $0x8, %edi
callq *0x601e(%rip)           # 0xf0a0
movq %rax, 0x8(%r13)
leaq -0xb0(%rbp), %r13
movq %r12, (%r13)
movl $0x8, %edi
callq *0x6004(%rip)           # 0xf0a0
movq %rax, 0x8(%r13)
leaq -0x40(%rbp), %r15
movq %r12, (%r15)
movl $0x8, %edi
callq *0x5fee(%rip)           # 0xf0a0
movq %rax, 0x8(%r15)
leaq -0x90(%rbp), %r15
movq %r12, (%r15)
movl $0x8, %edi
callq *0x5fd5(%rip)           # 0xf0a0
movq %rax, 0x8(%r15)
leaq -0x80(%rbp), %r15
movq %r12, (%r15)
movl $0x8, %edi
callq *0x5fbf(%rip)           # 0xf0a0
movq %rax, 0x8(%r15)
leaq -0x70(%rbp), %rax
movq %r12, (%rax)
movq %rax, %r15
movl $0x8, %edi
callq *0x5fa6(%rip)           # 0xf0a0
movq %rax, 0x8(%r15)
leaq -0x60(%rbp), %r15
movq %r12, (%r15)
movl $0x8, %edi
callq *0x5f90(%rip)           # 0xf0a0
movq %rax, 0x8(%r15)
movl $0x1, %eax
movl %eax, 0x4(%r13)
movq 0x8(%r13), %rax
movq %r12, (%rax)
movslq 0x5fa5(%rip), %rdx      # 0xf0d0
movl -0x2c(%rbp), %eax
subl %r14d, %eax
cltq
subq %rax, %rdx
movq %r13, %rdi
movq %r13, %rsi
callq 0x364f
movq %r13, %rdi
movq %r13, %rsi
leaq -0xa0(%rbp), %r15
movq %r15, %rdx
callq 0x33f2
movslq 0x5f73(%rip), %rdx      # 0xf0d0
movq %r13, %rdi
movq %r13, %rsi
callq 0x364f
leaq -0x50(%rbp), %rdi
xorl %esi, %esi
movq %r13, %rdx
movq %r15, %rcx
movl $0x2, %r8d
callq 0x3969
movl $0x1, %eax
movl %eax, 0x4(%r13)
movq 0x8(%r13), %rax
movq %r12, (%rax)
movslq 0x5f3a(%rip), %rdx      # 0xf0d0
movq %r13, %rdi
movq %r13, %rsi
callq 0x364f
xorl %edi, %edi
leaq -0x40(%rbp), %r12
movq %r12, %rsi
movq %r13, %rdx
movq %r15, %rcx
movl $0x2, %r8d
callq 0x3969
movslq 0x5f0e(%rip), %rdx      # 0xf0d0
movq %r13, %rdi
movq %r12, %rsi
callq 0x364f
xorl %edi, %edi
leaq -0x90(%rbp), %r12
movq %r12, %rsi
movq %r13, %rdx
movq %r15, %rcx
movl $0x2, %r8d
callq 0x3969
movslq 0x5edf(%rip), %rdx      # 0xf0d0
movq %r13, %rdi
movq %r12, %rsi
callq 0x364f
xorl %edi, %edi
leaq -0x80(%rbp), %r12
movq %r12, %rsi
movq %r13, %rdx
movq %r15, %rcx
movl $0x2, %r8d
callq 0x3969
movslq 0x5eb3(%rip), %rdx      # 0xf0d0
movq %r13, %rdi
movq %r12, %rsi
callq 0x364f
xorl %edi, %edi
leaq -0x70(%rbp), %r12
movq %r12, %rsi
movq %r13, %rdx
movq %r15, %rcx
movl $0x2, %r8d
callq 0x3969
movslq 0x5e87(%rip), %rdx      # 0xf0d0
movq %r13, %rdi
movq %r12, %rsi
callq 0x364f
xorl %edi, %edi
leaq -0x60(%rbp), %rsi
movq %r13, %rdx
movq %r15, %rcx
movl $0x2, %r8d
callq 0x3969
movq %rbx, %rdi
leaq -0x50(%rbp), %rsi
callq 0x249e
movl -0x2c(%rbp), %eax
subl %r14d, %eax
jne 0x9288
movl $0x0, 0x14(%rbx)
jmp 0x9298
cltq
movl $0x1, 0x14(%rbx)
movq 0x18(%rbx), %rcx
movq %rax, (%rcx)
leaq 0x20(%rbx), %rdi
leaq -0x40(%rbp), %rsi
xorl %edx, %edx
movl $0x2, %ecx
callq 0x3e82
leaq 0x30(%rbx), %rdi
leaq -0x90(%rbp), %r15
movq %r15, %rsi
xorl %edx, %edx
movl $0x2, %ecx
callq 0x3e82
leaq 0x40(%rbx), %rdi
leaq -0x80(%rbp), %r12
movq %r12, %rsi
xorl %edx, %edx
movl $0x2, %ecx
callq 0x3e82
leaq 0x50(%rbx), %rdi
leaq -0x70(%rbp), %r13
movq %r13, %rsi
xorl %edx, %edx
movl $0x2, %ecx
callq 0x3e82
addq $0x60, %rbx
leaq -0x60(%rbp), %r14
movq %rbx, %rdi
movq %r14, %rsi
xorl %edx, %edx
movl $0x2, %ecx
callq 0x3e82
movq -0x98(%rbp), %rdi
xorl %esi, %esi
callq *0x5d93(%rip)           # 0xf0b0
movq -0x48(%rbp), %rdi
xorl %esi, %esi
callq *0x5d87(%rip)           # 0xf0b0
movq -0xa8(%rbp), %rdi
xorl %esi, %esi
callq *0x5d78(%rip)           # 0xf0b0
leaq -0x40(%rbp), %rax
movq 0x8(%rax), %rdi
xorl %esi, %esi
callq *0x5d68(%rip)           # 0xf0b0
movq 0x8(%r15), %rdi
xorl %esi, %esi
callq *0x5d5c(%rip)           # 0xf0b0
movq 0x8(%r12), %rdi
xorl %esi, %esi
callq *0x5d4f(%rip)           # 0xf0b0
movq 0x8(%r13), %rdi
xorl %esi, %esi
callq *0x5d43(%rip)           # 0xf0b0
movq 0x8(%r14), %rdi
xorl %esi, %esi
callq *0x5d37(%rip)           # 0xf0b0
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq