// File: /workspace/github_cpp_makefile_star2_O1/ef-gy[P]libefgy/include/ef.gy/big-integers.h
// Function: efgy::math::numeric::bigIntegers<long long, unsigned long long, unsigned int, 32u>::operator/=(efgy::math::numeric::bigIntegers<long long, unsigned long long, unsigned int, 32u> const&)
bigIntegers &operator/=(const bigIntegers &b) {
    if (*this == zero()) {
      return (*this = zero());
    } else if (b == zero()) {
      return (*this = zero());
    } else if (b == one()) {
      return *this;
    } else if (b == negativeOne()) {
      return (*this = -*this);
    }

    if ((cell.size() <= cellsPerLong) && (b.cell.size() <= cellsPerLong)) {
      *this = bigIntegers((*this).toInteger() / (b).toInteger(),
                          (negative != b.negative));
      return *this;
    }

    bool rnegative = (negative != b.negative);
    const bigIntegers &aa = negative ? -*this : *this;
    const bigIntegers &ba = b.negative ? -b : b;
    doDivide(aa, ba);
    negative = rnegative && (cell.size() > 0);
    return *this;
  }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq %rdi, %rbx
leaq 0x8(%rdi), %r14
movq 0x8(%rdi), %rdi
movq 0x10(%rbx), %r8
subq %rdi, %r8
je 0x18e72
movq %rsi, %r15
movq 0x8(%rsi), %rdx
movq 0x10(%rsi), %rsi
subq %rdx, %rsi
je 0x18ea7
movb (%r15), %bpl
cmpq $0x4, %rsi
setne %al
orb %bpl, %al
jne 0x18e26
cmpl $0x1, (%rdx)
je 0x19053
movl %ebp, %eax
xorb $0x1, %al
cmpq $0x4, %rsi
setne %cl
orb %al, %cl
jne 0x18edc
cmpl $0x1, (%rdx)
jne 0x18edc
leaq 0x8(%rsp), %r15
movq %r15, %rdi
movq %rbx, %rsi
callq 0x18b2e
cmpq %rbx, %r15
je 0x1903c
leaq 0x10(%rsp), %rsi
movb -0x8(%rsi), %al
movb %al, (%rbx)
movq %r14, %rdi
callq 0x18980
jmp 0x1903c
xorps %xmm0, %xmm0
leaq 0x8(%rsp), %rax
movups %xmm0, 0x8(%rax)
movq $0x0, 0x18(%rax)
movb $0x0, (%rax)
cmpq %rbx, %rax
je 0x1903c
leaq 0x10(%rsp), %rsi
movb $0x0, (%rbx)
movq %r14, %rdi
callq 0x18980
jmp 0x1903c
xorps %xmm0, %xmm0
leaq 0x8(%rsp), %rax
movups %xmm0, 0x8(%rax)
movq $0x0, 0x18(%rax)
movb $0x0, (%rax)
cmpq %rbx, %rax
je 0x1903c
leaq 0x10(%rsp), %rsi
movb $0x0, (%rbx)
movq %r14, %rdi
callq 0x18980
jmp 0x1903c
movq 0x10(%rbx), %rax
subq %rdi, %rax
cmpq $0x8, %rax
ja 0x18f81
movq 0x10(%r15), %rax
subq %rdx, %rax
cmpq $0x8, %rax
ja 0x18f81
sarq $0x2, %r8
xorl %ecx, %ecx
xorl %r9d, %r9d
xorl %eax, %eax
movl (%rdi,%r9,4), %r10d
shlq %cl, %r10
orq %r10, %rax
incq %r9
movl %r9d, %r10d
addl $0x20, %ecx
cmpq %r10, %r8
ja 0x18f09
sarq $0x2, %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %edi, %edi
movl (%rdx,%r8,4), %r9d
shlq %cl, %r9
orq %r9, %rdi
incq %r8
movl %r8d, %r9d
addl $0x20, %ecx
cmpq %r9, %rsi
ja 0x18f2c
xorl %edx, %edx
divq %rdi
xorl %edx, %edx
cmpb %bpl, (%rbx)
setne %dl
leaq 0x8(%rsp), %r15
movq %r15, %rdi
movq %rax, %rsi
callq 0x18694
cmpq %rbx, %r15
je 0x1903c
leaq 0x10(%rsp), %rsi
movb -0x8(%rsi), %al
movb %al, (%rbx)
movq %r14, %rdi
callq 0x18980
jmp 0x1903c
movb (%rbx), %r13b
cmpb $0x1, %r13b
jne 0x18f99
leaq 0x8(%rsp), %rdi
movq %rbx, %rsi
callq 0x18b2e
jmp 0x18fbe
leaq 0x10(%rsp), %r12
movb %r13b, -0x8(%r12)
movq %r12, %rdi
movq %r14, %rsi
callq 0x18aae
movq 0x8(%r12), %rax
cmpq (%r12), %rax
jne 0x18fbe
movb $0x0, 0x8(%rsp)
movb (%r15), %al
cmpb $0x1, %al
jne 0x18fd4
leaq 0x28(%rsp), %rdi
movq %r15, %rsi
callq 0x18b2e
jmp 0x18ff9
addq $0x8, %r15
leaq 0x30(%rsp), %rdi
movb %al, -0x8(%rdi)
movq %r15, %rsi
callq 0x18aae
movq 0x38(%rsp), %rax
cmpq 0x30(%rsp), %rax
jne 0x18ff9
movb $0x0, 0x28(%rsp)
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
movq %rbx, %rdi
movl $0x1, %ecx
callq 0x19a8e
cmpb %bpl, %r13b
setne %al
movq 0x8(%rbx), %rcx
cmpq %rcx, 0x10(%rbx)
setne %cl
andb %al, %cl
movb %cl, (%rbx)
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x1903c
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0x4260
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x19053
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x4260
movq %rbx, %rax
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x19089
jmp 0x19089
jmp 0x19089
movq %rax, %rbx
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x1908c
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0x4260
jmp 0x1908c
jmp 0x19089
movq %rax, %rbx
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x190a3
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x4260
movq %rbx, %rdi
callq 0x43f0